!function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=428)}([function(e,t,n){"use strict";e.exports=n(202)},function(e,t,n){"use strict";n.r(t),n.d(t,"ACESFilmicToneMapping",(function(){return ne})),n.d(t,"AddEquation",(function(){return O})),n.d(t,"AddOperation",(function(){return Z})),n.d(t,"AdditiveAnimationBlendMode",(function(){return Tt})),n.d(t,"AdditiveBlending",(function(){return _})),n.d(t,"AlphaFormat",(function(){return je})),n.d(t,"AlwaysDepth",(function(){return U})),n.d(t,"AlwaysStencilFunc",(function(){return nn})),n.d(t,"AmbientLight",(function(){return Bd})),n.d(t,"AmbientLightProbe",(function(){return nh})),n.d(t,"AnimationClip",(function(){return ud})),n.d(t,"AnimationLoader",(function(){return vd})),n.d(t,"AnimationMixer",(function(){return Rh})),n.d(t,"AnimationObjectGroup",(function(){return $h})),n.d(t,"AnimationUtils",(function(){return Zu})),n.d(t,"ArcCurve",(function(){return yc})),n.d(t,"ArrayCamera",(function(){return Ja})),n.d(t,"ArrowHelper",(function(){return _p})),n.d(t,"Audio",(function(){return fh})),n.d(t,"AudioAnalyser",(function(){return Sh})),n.d(t,"AudioContext",(function(){return Kd})),n.d(t,"AudioListener",(function(){return ph})),n.d(t,"AudioLoader",(function(){return eh})),n.d(t,"AxesHelper",(function(){return xp})),n.d(t,"AxisHelper",(function(){return rf})),n.d(t,"BackSide",(function(){return m})),n.d(t,"BasicDepthPacking",(function(){return jt})),n.d(t,"BasicShadowMap",(function(){return u})),n.d(t,"BinaryTextureLoader",(function(){return cf})),n.d(t,"Bone",(function(){return Ll})),n.d(t,"BooleanKeyframeTrack",(function(){return rd})),n.d(t,"BoundingBoxHelper",(function(){return of})),n.d(t,"Box2",(function(){return Qh})),n.d(t,"Box3",(function(){return cr})),n.d(t,"Box3Helper",(function(){return gp})),n.d(t,"BoxBufferGeometry",(function(){return co})),n.d(t,"BoxGeometry",(function(){return co})),n.d(t,"BoxHelper",(function(){return mp})),n.d(t,"BufferAttribute",(function(){return Oi})),n.d(t,"BufferGeometry",(function(){return Qi})),n.d(t,"BufferGeometryLoader",(function(){return Hd})),n.d(t,"ByteType",(function(){return ke})),n.d(t,"Cache",(function(){return hd})),n.d(t,"Camera",(function(){return mo})),n.d(t,"CameraHelper",(function(){return hp})),n.d(t,"CanvasRenderer",(function(){return df})),n.d(t,"CanvasTexture",(function(){return gc})),n.d(t,"CapsuleBufferGeometry",(function(){return zc})),n.d(t,"CapsuleGeometry",(function(){return zc})),n.d(t,"CatmullRomCurve3",(function(){return Oc})),n.d(t,"CineonToneMapping",(function(){return te})),n.d(t,"CircleBufferGeometry",(function(){return Fc})),n.d(t,"CircleGeometry",(function(){return Fc})),n.d(t,"ClampToEdgeWrapping",(function(){return de})),n.d(t,"Clock",(function(){return ah})),n.d(t,"Color",(function(){return Gn})),n.d(t,"ColorKeyframeTrack",(function(){return id})),n.d(t,"ColorManagement",(function(){return Ln})),n.d(t,"CompressedTexture",(function(){return mc})),n.d(t,"CompressedTextureLoader",(function(){return yd})),n.d(t,"ConeBufferGeometry",(function(){return Qc})),n.d(t,"ConeGeometry",(function(){return Qc})),n.d(t,"CubeCamera",(function(){return bo})),n.d(t,"CubeReflectionMapping",(function(){return oe})),n.d(t,"CubeRefractionMapping",(function(){return se})),n.d(t,"CubeTexture",(function(){return vo})),n.d(t,"CubeTextureLoader",(function(){return _d})),n.d(t,"CubeUVReflectionMapping",(function(){return ce})),n.d(t,"CubicBezierCurve",(function(){return Cc})),n.d(t,"CubicBezierCurve3",(function(){return Mc})),n.d(t,"CubicInterpolant",(function(){return Ku})),n.d(t,"CullFaceBack",(function(){return a})),n.d(t,"CullFaceFront",(function(){return l})),n.d(t,"CullFaceFrontBack",(function(){return c})),n.d(t,"CullFaceNone",(function(){return s})),n.d(t,"Curve",(function(){return bc})),n.d(t,"CurvePath",(function(){return Ic})),n.d(t,"CustomBlending",(function(){return k})),n.d(t,"CustomToneMapping",(function(){return re})),n.d(t,"CylinderBufferGeometry",(function(){return Uc})),n.d(t,"CylinderGeometry",(function(){return Uc})),n.d(t,"Cylindrical",(function(){return Fh})),n.d(t,"Data3DTexture",(function(){return nr})),n.d(t,"DataArrayTexture",(function(){return er})),n.d(t,"DataTexture",(function(){return Bl})),n.d(t,"DataTexture2DArray",(function(){return _f})),n.d(t,"DataTexture3D",(function(){return xf})),n.d(t,"DataTextureLoader",(function(){return xd})),n.d(t,"DataUtils",(function(){return kp})),n.d(t,"DecrementStencilOp",(function(){return Gt})),n.d(t,"DecrementWrapStencilOp",(function(){return Vt})),n.d(t,"DefaultLoadingManager",(function(){return fd})),n.d(t,"DepthFormat",(function(){return Be})),n.d(t,"DepthStencilFormat",(function(){return ze})),n.d(t,"DepthTexture",(function(){return nl})),n.d(t,"DirectionalLight",(function(){return Ld})),n.d(t,"DirectionalLightHelper",(function(){return cp})),n.d(t,"DiscreteInterpolant",(function(){return td})),n.d(t,"DodecahedronBufferGeometry",(function(){return Gc})),n.d(t,"DodecahedronGeometry",(function(){return Gc})),n.d(t,"DoubleSide",(function(){return g})),n.d(t,"DstAlphaFactor",(function(){return D})),n.d(t,"DstColorFactor",(function(){return L})),n.d(t,"DynamicBufferAttribute",(function(){return Vp})),n.d(t,"DynamicCopyUsage",(function(){return dn})),n.d(t,"DynamicDrawUsage",(function(){return on})),n.d(t,"DynamicReadUsage",(function(){return ln})),n.d(t,"EdgesGeometry",(function(){return Yc})),n.d(t,"EdgesHelper",(function(){return sf})),n.d(t,"EllipseCurve",(function(){return vc})),n.d(t,"EqualDepth",(function(){return G})),n.d(t,"EqualStencilFunc",(function(){return Zt})),n.d(t,"EquirectangularReflectionMapping",(function(){return ae})),n.d(t,"EquirectangularRefractionMapping",(function(){return le})),n.d(t,"Euler",(function(){return Vr})),n.d(t,"EventDispatcher",(function(){return gn})),n.d(t,"ExtrudeBufferGeometry",(function(){return Eu})),n.d(t,"ExtrudeGeometry",(function(){return Eu})),n.d(t,"FaceColors",(function(){return Dp})),n.d(t,"FileLoader",(function(){return bd})),n.d(t,"FlatShading",(function(){return b})),n.d(t,"Float16BufferAttribute",(function(){return Ri})),n.d(t,"Float32Attribute",(function(){return tf})),n.d(t,"Float32BufferAttribute",(function(){return ji})),n.d(t,"Float64Attribute",(function(){return nf})),n.d(t,"Float64BufferAttribute",(function(){return Ni})),n.d(t,"FloatType",(function(){return Ce})),n.d(t,"Fog",(function(){return ll})),n.d(t,"FogExp2",(function(){return al})),n.d(t,"Font",(function(){return vf})),n.d(t,"FontLoader",(function(){return bf})),n.d(t,"FramebufferTexture",(function(){return fc})),n.d(t,"FrontSide",(function(){return f})),n.d(t,"Frustum",(function(){return Eo})),n.d(t,"GLBufferAttribute",(function(){return Dh})),n.d(t,"GLSL1",(function(){return pn})),n.d(t,"GLSL3",(function(){return fn})),n.d(t,"GreaterDepth",(function(){return V})),n.d(t,"GreaterEqualDepth",(function(){return H})),n.d(t,"GreaterEqualStencilFunc",(function(){return tn})),n.d(t,"GreaterStencilFunc",(function(){return Kt})),n.d(t,"GridHelper",(function(){return ip})),n.d(t,"Group",(function(){return Ka})),n.d(t,"HalfFloatType",(function(){return Me})),n.d(t,"HemisphereLight",(function(){return Od})),n.d(t,"HemisphereLightHelper",(function(){return rp})),n.d(t,"HemisphereLightProbe",(function(){return th})),n.d(t,"IcosahedronBufferGeometry",(function(){return Tu})),n.d(t,"IcosahedronGeometry",(function(){return Tu})),n.d(t,"ImageBitmapLoader",(function(){return Zd})),n.d(t,"ImageLoader",(function(){return Sd})),n.d(t,"ImageUtils",(function(){return Vn})),n.d(t,"ImmediateRenderObject",(function(){return yf})),n.d(t,"IncrementStencilOp",(function(){return qt})),n.d(t,"IncrementWrapStencilOp",(function(){return Ht})),n.d(t,"InstancedBufferAttribute",(function(){return Ql})),n.d(t,"InstancedBufferGeometry",(function(){return Gd})),n.d(t,"InstancedInterleavedBuffer",(function(){return Nh})),n.d(t,"InstancedMesh",(function(){return Wl})),n.d(t,"Int16Attribute",(function(){return Zp})),n.d(t,"Int16BufferAttribute",(function(){return Ci})),n.d(t,"Int32Attribute",(function(){return Kp})),n.d(t,"Int32BufferAttribute",(function(){return $i})),n.d(t,"Int8Attribute",(function(){return Wp})),n.d(t,"Int8BufferAttribute",(function(){return Ei})),n.d(t,"IntType",(function(){return Ae})),n.d(t,"InterleavedBuffer",(function(){return ul})),n.d(t,"InterleavedBufferAttribute",(function(){return hl})),n.d(t,"Interpolant",(function(){return Ju})),n.d(t,"InterpolateDiscrete",(function(){return _t})),n.d(t,"InterpolateLinear",(function(){return xt})),n.d(t,"InterpolateSmooth",(function(){return wt})),n.d(t,"InvertStencilOp",(function(){return Wt})),n.d(t,"JSONLoader",(function(){return hf})),n.d(t,"KeepStencilOp",(function(){return Ut})),n.d(t,"KeyframeTrack",(function(){return nd})),n.d(t,"LOD",(function(){return $l})),n.d(t,"LatheBufferGeometry",(function(){return Bc})),n.d(t,"LatheGeometry",(function(){return Bc})),n.d(t,"Layers",(function(){return Wr})),n.d(t,"LensFlare",(function(){return ff})),n.d(t,"LessDepth",(function(){return Q})),n.d(t,"LessEqualDepth",(function(){return q})),n.d(t,"LessEqualStencilFunc",(function(){return Jt})),n.d(t,"LessStencilFunc",(function(){return Yt})),n.d(t,"Light",(function(){return kd})),n.d(t,"LightProbe",(function(){return Ud})),n.d(t,"Line",(function(){return tc})),n.d(t,"Line3",(function(){return Hh})),n.d(t,"LineBasicMaterial",(function(){return Xl})),n.d(t,"LineCurve",(function(){return $c})),n.d(t,"LineCurve3",(function(){return Pc})),n.d(t,"LineDashedMaterial",(function(){return Xu})),n.d(t,"LineLoop",(function(){return oc})),n.d(t,"LinePieces",(function(){return jp})),n.d(t,"LineSegments",(function(){return ic})),n.d(t,"LineStrip",(function(){return Rp})),n.d(t,"LinearEncoding",(function(){return Pt})),n.d(t,"LinearFilter",(function(){return ve})),n.d(t,"LinearInterpolant",(function(){return ed})),n.d(t,"LinearMipMapLinearFilter",(function(){return xe})),n.d(t,"LinearMipMapNearestFilter",(function(){return Se})),n.d(t,"LinearMipmapLinearFilter",(function(){return _e})),n.d(t,"LinearMipmapNearestFilter",(function(){return ye})),n.d(t,"LinearSRGBColorSpace",(function(){return zt})),n.d(t,"LinearToneMapping",(function(){return K})),n.d(t,"Loader",(function(){return md})),n.d(t,"LoaderUtils",(function(){return qd})),n.d(t,"LoadingManager",(function(){return pd})),n.d(t,"LoopOnce",(function(){return vt})),n.d(t,"LoopPingPong",(function(){return St})),n.d(t,"LoopRepeat",(function(){return yt})),n.d(t,"LuminanceAlphaFormat",(function(){return Le})),n.d(t,"LuminanceFormat",(function(){return Ie})),n.d(t,"MOUSE",(function(){return i})),n.d(t,"Material",(function(){return _i})),n.d(t,"MaterialLoader",(function(){return Qd})),n.d(t,"Math",(function(){return Tn})),n.d(t,"MathUtils",(function(){return Tn})),n.d(t,"Matrix3",(function(){return Mn})),n.d(t,"Matrix4",(function(){return Ir})),n.d(t,"MaxEquation",(function(){return C})),n.d(t,"Mesh",(function(){return ao})),n.d(t,"MeshBasicMaterial",(function(){return xi})),n.d(t,"MeshDepthMaterial",(function(){return Ha})),n.d(t,"MeshDistanceMaterial",(function(){return Va})),n.d(t,"MeshFaceMaterial",(function(){return Lp})),n.d(t,"MeshLambertMaterial",(function(){return Vu})),n.d(t,"MeshMatcapMaterial",(function(){return Wu})),n.d(t,"MeshNormalMaterial",(function(){return Hu})),n.d(t,"MeshPhongMaterial",(function(){return qu})),n.d(t,"MeshPhysicalMaterial",(function(){return Qu})),n.d(t,"MeshStandardMaterial",(function(){return Uu})),n.d(t,"MeshToonMaterial",(function(){return Gu})),n.d(t,"MinEquation",(function(){return T})),n.d(t,"MirroredRepeatWrapping",(function(){return he})),n.d(t,"MixOperation",(function(){return Y})),n.d(t,"MultiMaterial",(function(){return Bp})),n.d(t,"MultiplyBlending",(function(){return w})),n.d(t,"MultiplyOperation",(function(){return X})),n.d(t,"NearestFilter",(function(){return pe})),n.d(t,"NearestMipMapLinearFilter",(function(){return be})),n.d(t,"NearestMipMapNearestFilter",(function(){return me})),n.d(t,"NearestMipmapLinearFilter",(function(){return ge})),n.d(t,"NearestMipmapNearestFilter",(function(){return fe})),n.d(t,"NeverDepth",(function(){return F})),n.d(t,"NeverStencilFunc",(function(){return Xt})),n.d(t,"NoBlending",(function(){return y})),n.d(t,"NoColorSpace",(function(){return Lt})),n.d(t,"NoColors",(function(){return Np})),n.d(t,"NoToneMapping",(function(){return J})),n.d(t,"NormalAnimationBlendMode",(function(){return At})),n.d(t,"NormalBlending",(function(){return S})),n.d(t,"NotEqualDepth",(function(){return W})),n.d(t,"NotEqualStencilFunc",(function(){return en})),n.d(t,"NumberKeyframeTrack",(function(){return od})),n.d(t,"Object3D",(function(){return li})),n.d(t,"ObjectLoader",(function(){return Vd})),n.d(t,"ObjectSpaceNormalMap",(function(){return It})),n.d(t,"OctahedronBufferGeometry",(function(){return Cu})),n.d(t,"OctahedronGeometry",(function(){return Cu})),n.d(t,"OneFactor",(function(){return $})),n.d(t,"OneMinusDstAlphaFactor",(function(){return I})),n.d(t,"OneMinusDstColorFactor",(function(){return B})),n.d(t,"OneMinusSrcAlphaFactor",(function(){return N})),n.d(t,"OneMinusSrcColorFactor",(function(){return R})),n.d(t,"OrthographicCamera",(function(){return Bo})),n.d(t,"PCFShadowMap",(function(){return d})),n.d(t,"PCFSoftShadowMap",(function(){return h})),n.d(t,"PMREMGenerator",(function(){return Vo})),n.d(t,"ParametricGeometry",(function(){return mf})),n.d(t,"Particle",(function(){return Fp})),n.d(t,"ParticleBasicMaterial",(function(){return qp})),n.d(t,"ParticleSystem",(function(){return Up})),n.d(t,"ParticleSystemMaterial",(function(){return Gp})),n.d(t,"Path",(function(){return Lc})),n.d(t,"PerspectiveCamera",(function(){return go})),n.d(t,"Plane",(function(){return wo})),n.d(t,"PlaneBufferGeometry",(function(){return Co})),n.d(t,"PlaneGeometry",(function(){return Co})),n.d(t,"PlaneHelper",(function(){return bp})),n.d(t,"PointCloud",(function(){return zp})),n.d(t,"PointCloudMaterial",(function(){return Qp})),n.d(t,"PointLight",(function(){return Dd})),n.d(t,"PointLightHelper",(function(){return Kh})),n.d(t,"Points",(function(){return dc})),n.d(t,"PointsMaterial",(function(){return sc})),n.d(t,"PolarGridHelper",(function(){return op})),n.d(t,"PolyhedronBufferGeometry",(function(){return qc})),n.d(t,"PolyhedronGeometry",(function(){return qc})),n.d(t,"PositionalAudio",(function(){return yh})),n.d(t,"PropertyBinding",(function(){return Mh})),n.d(t,"PropertyMixer",(function(){return _h})),n.d(t,"QuadraticBezierCurve",(function(){return Rc})),n.d(t,"QuadraticBezierCurve3",(function(){return jc})),n.d(t,"Quaternion",(function(){return or})),n.d(t,"QuaternionKeyframeTrack",(function(){return ad})),n.d(t,"QuaternionLinearInterpolant",(function(){return sd})),n.d(t,"REVISION",(function(){return r})),n.d(t,"RGBADepthPacking",(function(){return Nt})),n.d(t,"RGBAFormat",(function(){return De})),n.d(t,"RGBAIntegerFormat",(function(){return Ge})),n.d(t,"RGBA_ASTC_10x10_Format",(function(){return ft})),n.d(t,"RGBA_ASTC_10x5_Format",(function(){return dt})),n.d(t,"RGBA_ASTC_10x6_Format",(function(){return ht})),n.d(t,"RGBA_ASTC_10x8_Format",(function(){return pt})),n.d(t,"RGBA_ASTC_12x10_Format",(function(){return mt})),n.d(t,"RGBA_ASTC_12x12_Format",(function(){return gt})),n.d(t,"RGBA_ASTC_4x4_Format",(function(){return rt})),n.d(t,"RGBA_ASTC_5x4_Format",(function(){return it})),n.d(t,"RGBA_ASTC_5x5_Format",(function(){return ot})),n.d(t,"RGBA_ASTC_6x5_Format",(function(){return st})),n.d(t,"RGBA_ASTC_6x6_Format",(function(){return at})),n.d(t,"RGBA_ASTC_8x5_Format",(function(){return lt})),n.d(t,"RGBA_ASTC_8x6_Format",(function(){return ct})),n.d(t,"RGBA_ASTC_8x8_Format",(function(){return ut})),n.d(t,"RGBA_BPTC_Format",(function(){return bt})),n.d(t,"RGBA_ETC2_EAC_Format",(function(){return nt})),n.d(t,"RGBA_PVRTC_2BPPV1_Format",(function(){return Ke})),n.d(t,"RGBA_PVRTC_4BPPV1_Format",(function(){return Je})),n.d(t,"RGBA_S3TC_DXT1_Format",(function(){return Ve})),n.d(t,"RGBA_S3TC_DXT3_Format",(function(){return We})),n.d(t,"RGBA_S3TC_DXT5_Format",(function(){return Xe})),n.d(t,"RGBFormat",(function(){return Ne})),n.d(t,"RGB_ETC1_Format",(function(){return et})),n.d(t,"RGB_ETC2_Format",(function(){return tt})),n.d(t,"RGB_PVRTC_2BPPV1_Format",(function(){return Ze})),n.d(t,"RGB_PVRTC_4BPPV1_Format",(function(){return Ye})),n.d(t,"RGB_S3TC_DXT1_Format",(function(){return He})),n.d(t,"RGFormat",(function(){return Qe})),n.d(t,"RGIntegerFormat",(function(){return qe})),n.d(t,"RawShaderMaterial",(function(){return Fu})),n.d(t,"Ray",(function(){return Dr})),n.d(t,"Raycaster",(function(){return Ih})),n.d(t,"RectAreaLight",(function(){return zd})),n.d(t,"RedFormat",(function(){return Fe})),n.d(t,"RedIntegerFormat",(function(){return Ue})),n.d(t,"ReinhardToneMapping",(function(){return ee})),n.d(t,"RepeatWrapping",(function(){return ue})),n.d(t,"ReplaceStencilOp",(function(){return Qt})),n.d(t,"ReverseSubtractEquation",(function(){return A})),n.d(t,"RingBufferGeometry",(function(){return Mu})),n.d(t,"RingGeometry",(function(){return Mu})),n.d(t,"SRGBColorSpace",(function(){return Bt})),n.d(t,"Scene",(function(){return cl})),n.d(t,"SceneUtils",(function(){return pf})),n.d(t,"ShaderChunk",(function(){return Mo})),n.d(t,"ShaderLib",(function(){return Po})),n.d(t,"ShaderMaterial",(function(){return fo})),n.d(t,"ShadowMaterial",(function(){return zu})),n.d(t,"Shape",(function(){return Zc})),n.d(t,"ShapeBufferGeometry",(function(){return $u})),n.d(t,"ShapeGeometry",(function(){return $u})),n.d(t,"ShapePath",(function(){return wp})),n.d(t,"ShapeUtils",(function(){return wu})),n.d(t,"ShortType",(function(){return Oe})),n.d(t,"Skeleton",(function(){return Ul})),n.d(t,"SkeletonHelper",(function(){return Jh})),n.d(t,"SkinnedMesh",(function(){return Il})),n.d(t,"SmoothShading",(function(){return v})),n.d(t,"Source",(function(){return Wn})),n.d(t,"Sphere",(function(){return Tr})),n.d(t,"SphereBufferGeometry",(function(){return Pu})),n.d(t,"SphereGeometry",(function(){return Pu})),n.d(t,"Spherical",(function(){return zh})),n.d(t,"SphericalHarmonics3",(function(){return Fd})),n.d(t,"SplineCurve",(function(){return Nc})),n.d(t,"SpotLight",(function(){return $d})),n.d(t,"SpotLightHelper",(function(){return Wh})),n.d(t,"Sprite",(function(){return Al})),n.d(t,"SpriteMaterial",(function(){return pl})),n.d(t,"SrcAlphaFactor",(function(){return j})),n.d(t,"SrcAlphaSaturateFactor",(function(){return z})),n.d(t,"SrcColorFactor",(function(){return P})),n.d(t,"StaticCopyUsage",(function(){return un})),n.d(t,"StaticDrawUsage",(function(){return rn})),n.d(t,"StaticReadUsage",(function(){return an})),n.d(t,"StereoCamera",(function(){return sh})),n.d(t,"StreamCopyUsage",(function(){return hn})),n.d(t,"StreamDrawUsage",(function(){return sn})),n.d(t,"StreamReadUsage",(function(){return cn})),n.d(t,"StringKeyframeTrack",(function(){return ld})),n.d(t,"SubtractEquation",(function(){return E})),n.d(t,"SubtractiveBlending",(function(){return x})),n.d(t,"TOUCH",(function(){return o})),n.d(t,"TangentSpaceNormalMap",(function(){return Dt})),n.d(t,"TetrahedronBufferGeometry",(function(){return Ru})),n.d(t,"TetrahedronGeometry",(function(){return Ru})),n.d(t,"TextGeometry",(function(){return gf})),n.d(t,"Texture",(function(){return Zn})),n.d(t,"TextureLoader",(function(){return wd})),n.d(t,"TorusBufferGeometry",(function(){return ju})),n.d(t,"TorusGeometry",(function(){return ju})),n.d(t,"TorusKnotBufferGeometry",(function(){return Nu})),n.d(t,"TorusKnotGeometry",(function(){return Nu})),n.d(t,"Triangle",(function(){return yi})),n.d(t,"TriangleFanDrawMode",(function(){return $t})),n.d(t,"TriangleStripDrawMode",(function(){return Mt})),n.d(t,"TrianglesDrawMode",(function(){return Ct})),n.d(t,"TubeBufferGeometry",(function(){return Du})),n.d(t,"TubeGeometry",(function(){return Du})),n.d(t,"UVMapping",(function(){return ie})),n.d(t,"Uint16Attribute",(function(){return Jp})),n.d(t,"Uint16BufferAttribute",(function(){return Mi})),n.d(t,"Uint32Attribute",(function(){return ef})),n.d(t,"Uint32BufferAttribute",(function(){return Pi})),n.d(t,"Uint8Attribute",(function(){return Xp})),n.d(t,"Uint8BufferAttribute",(function(){return Ai})),n.d(t,"Uint8ClampedAttribute",(function(){return Yp})),n.d(t,"Uint8ClampedBufferAttribute",(function(){return Ti})),n.d(t,"Uniform",(function(){return jh})),n.d(t,"UniformsLib",(function(){return $o})),n.d(t,"UniformsUtils",(function(){return po})),n.d(t,"UnsignedByteType",(function(){return we})),n.d(t,"UnsignedInt248Type",(function(){return Re})),n.d(t,"UnsignedIntType",(function(){return Te})),n.d(t,"UnsignedShort4444Type",(function(){return $e})),n.d(t,"UnsignedShort5551Type",(function(){return Pe})),n.d(t,"UnsignedShortType",(function(){return Ee})),n.d(t,"VSMShadowMap",(function(){return p})),n.d(t,"Vector2",(function(){return Cn})),n.d(t,"Vector3",(function(){return sr})),n.d(t,"Vector4",(function(){return Jn})),n.d(t,"VectorKeyframeTrack",(function(){return cd})),n.d(t,"Vertex",(function(){return Hp})),n.d(t,"VertexColors",(function(){return Ip})),n.d(t,"VideoTexture",(function(){return pc})),n.d(t,"WebGL1Renderer",(function(){return sl})),n.d(t,"WebGL3DRenderTarget",(function(){return rr})),n.d(t,"WebGLArrayRenderTarget",(function(){return tr})),n.d(t,"WebGLCubeRenderTarget",(function(){return yo})),n.d(t,"WebGLMultipleRenderTargets",(function(){return ir})),n.d(t,"WebGLMultisampleRenderTarget",(function(){return Sf})),n.d(t,"WebGLRenderTarget",(function(){return Kn})),n.d(t,"WebGLRenderTargetCube",(function(){return uf})),n.d(t,"WebGLRenderer",(function(){return ol})),n.d(t,"WebGLUtils",(function(){return Za})),n.d(t,"WireframeGeometry",(function(){return Iu})),n.d(t,"WireframeHelper",(function(){return af})),n.d(t,"WrapAroundEnding",(function(){return Et})),n.d(t,"XHRLoader",(function(){return lf})),n.d(t,"ZeroCurvatureEnding",(function(){return kt})),n.d(t,"ZeroFactor",(function(){return M})),n.d(t,"ZeroSlopeEnding",(function(){return Ot})),n.d(t,"ZeroStencilOp",(function(){return Ft})),n.d(t,"_SRGBAFormat",(function(){return mn})),n.d(t,"sRGBEncoding",(function(){return Rt})); /** * @license * Copyright 2010-2022 Three.js Authors * SPDX-License-Identifier: MIT */ const r="140",i={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},o={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},s=0,a=1,l=2,c=3,u=0,d=1,h=2,p=3,f=0,m=1,g=2,b=1,v=2,y=0,S=1,_=2,x=3,w=4,k=5,O=100,E=101,A=102,T=103,C=104,M=200,$=201,P=202,R=203,j=204,N=205,D=206,I=207,L=208,B=209,z=210,F=0,U=1,Q=2,q=3,G=4,H=5,V=6,W=7,X=0,Y=1,Z=2,J=0,K=1,ee=2,te=3,ne=4,re=5,ie=300,oe=301,se=302,ae=303,le=304,ce=306,ue=1e3,de=1001,he=1002,pe=1003,fe=1004,me=1004,ge=1005,be=1005,ve=1006,ye=1007,Se=1007,_e=1008,xe=1008,we=1009,ke=1010,Oe=1011,Ee=1012,Ae=1013,Te=1014,Ce=1015,Me=1016,$e=1017,Pe=1018,Re=1020,je=1021,Ne=1022,De=1023,Ie=1024,Le=1025,Be=1026,ze=1027,Fe=1028,Ue=1029,Qe=1030,qe=1031,Ge=1033,He=33776,Ve=33777,We=33778,Xe=33779,Ye=35840,Ze=35841,Je=35842,Ke=35843,et=36196,tt=37492,nt=37496,rt=37808,it=37809,ot=37810,st=37811,at=37812,lt=37813,ct=37814,ut=37815,dt=37816,ht=37817,pt=37818,ft=37819,mt=37820,gt=37821,bt=36492,vt=2200,yt=2201,St=2202,_t=2300,xt=2301,wt=2302,kt=2400,Ot=2401,Et=2402,At=2500,Tt=2501,Ct=0,Mt=1,$t=2,Pt=3e3,Rt=3001,jt=3200,Nt=3201,Dt=0,It=1,Lt="",Bt="srgb",zt="srgb-linear",Ft=0,Ut=7680,Qt=7681,qt=7682,Gt=7683,Ht=34055,Vt=34056,Wt=5386,Xt=512,Yt=513,Zt=514,Jt=515,Kt=516,en=517,tn=518,nn=519,rn=35044,on=35048,sn=35040,an=35045,ln=35049,cn=35041,un=35046,dn=35050,hn=35042,pn="100",fn="300 es",mn=1035;class gn{addEventListener(e,t){void 0===this._listeners&&(this._listeners={});const n=this._listeners;void 0===n[e]&&(n[e]=[]),-1===n[e].indexOf(t)&&n[e].push(t)}hasEventListener(e,t){if(void 0===this._listeners)return!1;const n=this._listeners;return void 0!==n[e]&&-1!==n[e].indexOf(t)}removeEventListener(e,t){if(void 0===this._listeners)return;const n=this._listeners[e];if(void 0!==n){const e=n.indexOf(t);-1!==e&&n.splice(e,1)}}dispatchEvent(e){if(void 0===this._listeners)return;const t=this._listeners[e.type];if(void 0!==t){e.target=this;const n=t.slice(0);for(let t=0,r=n.length;t>8&255]+bn[e>>16&255]+bn[e>>24&255]+"-"+bn[255&t]+bn[t>>8&255]+"-"+bn[t>>16&15|64]+bn[t>>24&255]+"-"+bn[63&n|128]+bn[n>>8&255]+"-"+bn[n>>16&255]+bn[n>>24&255]+bn[255&r]+bn[r>>8&255]+bn[r>>16&255]+bn[r>>24&255]).toLowerCase()}function xn(e,t,n){return Math.max(t,Math.min(n,e))}function wn(e,t){return(e%t+t)%t}function kn(e,t,n){return(1-n)*e+n*t}function On(e){return 0==(e&e-1)&&0!==e}function En(e){return Math.pow(2,Math.ceil(Math.log(e)/Math.LN2))}function An(e){return Math.pow(2,Math.floor(Math.log(e)/Math.LN2))}var Tn=Object.freeze({__proto__:null,DEG2RAD:yn,RAD2DEG:Sn,generateUUID:_n,clamp:xn,euclideanModulo:wn,mapLinear:function(e,t,n,r,i){return r+(e-t)*(i-r)/(n-t)},inverseLerp:function(e,t,n){return e!==t?(n-e)/(t-e):0},lerp:kn,damp:function(e,t,n,r){return kn(e,t,1-Math.exp(-n*r))},pingpong:function(e,t=1){return t-Math.abs(wn(e,2*t)-t)},smoothstep:function(e,t,n){return e<=t?0:e>=n?1:(e=(e-t)/(n-t))*e*(3-2*e)},smootherstep:function(e,t,n){return e<=t?0:e>=n?1:(e=(e-t)/(n-t))*e*e*(e*(6*e-15)+10)},randInt:function(e,t){return e+Math.floor(Math.random()*(t-e+1))},randFloat:function(e,t){return e+Math.random()*(t-e)},randFloatSpread:function(e){return e*(.5-Math.random())},seededRandom:function(e){void 0!==e&&(vn=e);let t=vn+=1831565813;return t=Math.imul(t^t>>>15,1|t),t^=t+Math.imul(t^t>>>7,61|t),((t^t>>>14)>>>0)/4294967296},degToRad:function(e){return e*yn},radToDeg:function(e){return e*Sn},isPowerOfTwo:On,ceilPowerOfTwo:En,floorPowerOfTwo:An,setQuaternionFromProperEuler:function(e,t,n,r,i){const o=Math.cos,s=Math.sin,a=o(n/2),l=s(n/2),c=o((t+r)/2),u=s((t+r)/2),d=o((t-r)/2),h=s((t-r)/2),p=o((r-t)/2),f=s((r-t)/2);switch(i){case"XYX":e.set(a*u,l*d,l*h,a*c);break;case"YZY":e.set(l*h,a*u,l*d,a*c);break;case"ZXZ":e.set(l*d,l*h,a*u,a*c);break;case"XZX":e.set(a*u,l*f,l*p,a*c);break;case"YXY":e.set(l*p,a*u,l*f,a*c);break;case"ZYZ":e.set(l*f,l*p,a*u,a*c);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+i)}},normalize:function(e,t){switch(t.constructor){case Float32Array:return e;case Uint16Array:return Math.round(65535*e);case Uint8Array:return Math.round(255*e);case Int16Array:return Math.round(32767*e);case Int8Array:return Math.round(127*e);default:throw new Error("Invalid component type.")}},denormalize:function(e,t){switch(t.constructor){case Float32Array:return e;case Uint16Array:return e/65535;case Uint8Array:return e/255;case Int16Array:return Math.max(e/32767,-1);case Int8Array:return Math.max(e/127,-1);default:throw new Error("Invalid component type.")}}});class Cn{constructor(e=0,t=0){this.x=e,this.y=t}get width(){return this.x}set width(e){this.x=e}get height(){return this.y}set height(e){this.y=e}set(e,t){return this.x=e,this.y=t,this}setScalar(e){return this.x=e,this.y=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y)}copy(e){return this.x=e.x,this.y=e.y,this}add(e,t){return void 0!==t?(console.warn("THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(e,t)):(this.x+=e.x,this.y+=e.y,this)}addScalar(e){return this.x+=e,this.y+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this}sub(e,t){return void 0!==t?(console.warn("THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(e,t)):(this.x-=e.x,this.y-=e.y,this)}subScalar(e){return this.x-=e,this.y-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this}multiply(e){return this.x*=e.x,this.y*=e.y,this}multiplyScalar(e){return this.x*=e,this.y*=e,this}divide(e){return this.x/=e.x,this.y/=e.y,this}divideScalar(e){return this.multiplyScalar(1/e)}applyMatrix3(e){const t=this.x,n=this.y,r=e.elements;return this.x=r[0]*t+r[3]*n+r[6],this.y=r[1]*t+r[4]*n+r[7],this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this}clampLength(e,t){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(e,Math.min(t,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(e){return this.x*e.x+this.y*e.y}cross(e){return this.x*e.y-this.y*e.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const t=this.x-e.x,n=this.y-e.y;return t*t+n*n}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this}lerpVectors(e,t,n){return this.x=e.x+(t.x-e.x)*n,this.y=e.y+(t.y-e.y)*n,this}equals(e){return e.x===this.x&&e.y===this.y}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e}fromBufferAttribute(e,t,n){return void 0!==n&&console.warn("THREE.Vector2: offset has been removed from .fromBufferAttribute()."),this.x=e.getX(t),this.y=e.getY(t),this}rotateAround(e,t){const n=Math.cos(t),r=Math.sin(t),i=this.x-e.x,o=this.y-e.y;return this.x=i*n-o*r+e.x,this.y=i*r+o*n+e.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}Cn.prototype.isVector2=!0;class Mn{constructor(){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.")}set(e,t,n,r,i,o,s,a,l){const c=this.elements;return c[0]=e,c[1]=r,c[2]=s,c[3]=t,c[4]=i,c[5]=a,c[6]=n,c[7]=o,c[8]=l,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(e){const t=this.elements,n=e.elements;return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],t[6]=n[6],t[7]=n[7],t[8]=n[8],this}extractBasis(e,t,n){return e.setFromMatrix3Column(this,0),t.setFromMatrix3Column(this,1),n.setFromMatrix3Column(this,2),this}setFromMatrix4(e){const t=e.elements;return this.set(t[0],t[4],t[8],t[1],t[5],t[9],t[2],t[6],t[10]),this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){const n=e.elements,r=t.elements,i=this.elements,o=n[0],s=n[3],a=n[6],l=n[1],c=n[4],u=n[7],d=n[2],h=n[5],p=n[8],f=r[0],m=r[3],g=r[6],b=r[1],v=r[4],y=r[7],S=r[2],_=r[5],x=r[8];return i[0]=o*f+s*b+a*S,i[3]=o*m+s*v+a*_,i[6]=o*g+s*y+a*x,i[1]=l*f+c*b+u*S,i[4]=l*m+c*v+u*_,i[7]=l*g+c*y+u*x,i[2]=d*f+h*b+p*S,i[5]=d*m+h*v+p*_,i[8]=d*g+h*y+p*x,this}multiplyScalar(e){const t=this.elements;return t[0]*=e,t[3]*=e,t[6]*=e,t[1]*=e,t[4]*=e,t[7]*=e,t[2]*=e,t[5]*=e,t[8]*=e,this}determinant(){const e=this.elements,t=e[0],n=e[1],r=e[2],i=e[3],o=e[4],s=e[5],a=e[6],l=e[7],c=e[8];return t*o*c-t*s*l-n*i*c+n*s*a+r*i*l-r*o*a}invert(){const e=this.elements,t=e[0],n=e[1],r=e[2],i=e[3],o=e[4],s=e[5],a=e[6],l=e[7],c=e[8],u=c*o-s*l,d=s*a-c*i,h=l*i-o*a,p=t*u+n*d+r*h;if(0===p)return this.set(0,0,0,0,0,0,0,0,0);const f=1/p;return e[0]=u*f,e[1]=(r*l-c*n)*f,e[2]=(s*n-r*o)*f,e[3]=d*f,e[4]=(c*t-r*a)*f,e[5]=(r*i-s*t)*f,e[6]=h*f,e[7]=(n*a-l*t)*f,e[8]=(o*t-n*i)*f,this}transpose(){let e;const t=this.elements;return e=t[1],t[1]=t[3],t[3]=e,e=t[2],t[2]=t[6],t[6]=e,e=t[5],t[5]=t[7],t[7]=e,this}getNormalMatrix(e){return this.setFromMatrix4(e).invert().transpose()}transposeIntoArray(e){const t=this.elements;return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],this}setUvTransform(e,t,n,r,i,o,s){const a=Math.cos(i),l=Math.sin(i);return this.set(n*a,n*l,-n*(a*o+l*s)+o+e,-r*l,r*a,-r*(-l*o+a*s)+s+t,0,0,1),this}scale(e,t){const n=this.elements;return n[0]*=e,n[3]*=e,n[6]*=e,n[1]*=t,n[4]*=t,n[7]*=t,this}rotate(e){const t=Math.cos(e),n=Math.sin(e),r=this.elements,i=r[0],o=r[3],s=r[6],a=r[1],l=r[4],c=r[7];return r[0]=t*i+n*a,r[3]=t*o+n*l,r[6]=t*s+n*c,r[1]=-n*i+t*a,r[4]=-n*o+t*l,r[7]=-n*s+t*c,this}translate(e,t){const n=this.elements;return n[0]+=e*n[2],n[3]+=e*n[5],n[6]+=e*n[8],n[1]+=t*n[2],n[4]+=t*n[5],n[7]+=t*n[8],this}equals(e){const t=this.elements,n=e.elements;for(let e=0;e<9;e++)if(t[e]!==n[e])return!1;return!0}fromArray(e,t=0){for(let n=0;n<9;n++)this.elements[n]=e[n+t];return this}toArray(e=[],t=0){const n=this.elements;return e[t]=n[0],e[t+1]=n[1],e[t+2]=n[2],e[t+3]=n[3],e[t+4]=n[4],e[t+5]=n[5],e[t+6]=n[6],e[t+7]=n[7],e[t+8]=n[8],e}clone(){return(new this.constructor).fromArray(this.elements)}}function $n(e){for(let t=e.length-1;t>=0;--t)if(e[t]>65535)return!0;return!1}Mn.prototype.isMatrix3=!0;const Pn={Int8Array:Int8Array,Uint8Array:Uint8Array,Uint8ClampedArray:Uint8ClampedArray,Int16Array:Int16Array,Uint16Array:Uint16Array,Int32Array:Int32Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array};function Rn(e,t){return new Pn[e](t)}function jn(e){return document.createElementNS("http://www.w3.org/1999/xhtml",e)}function Nn(e){return e<.04045?.0773993808*e:Math.pow(.9478672986*e+.0521327014,2.4)}function Dn(e){return e<.0031308?12.92*e:1.055*Math.pow(e,.41666)-.055}const In={[Bt]:{[zt]:Nn},[zt]:{[Bt]:Dn}},Ln={legacyMode:!0,get workingColorSpace(){return zt},set workingColorSpace(e){console.warn("THREE.ColorManagement: .workingColorSpace is readonly.")},convert:function(e,t,n){if(this.legacyMode||t===n||!t||!n)return e;if(In[t]&&void 0!==In[t][n]){const r=In[t][n];return e.r=r(e.r),e.g=r(e.g),e.b=r(e.b),e}throw new Error("Unsupported color space conversion.")},fromWorkingColorSpace:function(e,t){return this.convert(e,this.workingColorSpace,t)},toWorkingColorSpace:function(e,t){return this.convert(e,t,this.workingColorSpace)}},Bn={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},zn={r:0,g:0,b:0},Fn={h:0,s:0,l:0},Un={h:0,s:0,l:0};function Qn(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+6*(t-e)*n:n<.5?t:n<2/3?e+6*(t-e)*(2/3-n):e}function qn(e,t){return t.r=e.r,t.g=e.g,t.b=e.b,t}class Gn{constructor(e,t,n){return void 0===t&&void 0===n?this.set(e):this.setRGB(e,t,n)}set(e){return e&&e.isColor?this.copy(e):"number"==typeof e?this.setHex(e):"string"==typeof e&&this.setStyle(e),this}setScalar(e){return this.r=e,this.g=e,this.b=e,this}setHex(e,t=Bt){return e=Math.floor(e),this.r=(e>>16&255)/255,this.g=(e>>8&255)/255,this.b=(255&e)/255,Ln.toWorkingColorSpace(this,t),this}setRGB(e,t,n,r=zt){return this.r=e,this.g=t,this.b=n,Ln.toWorkingColorSpace(this,r),this}setHSL(e,t,n,r=zt){if(e=wn(e,1),t=xn(t,0,1),n=xn(n,0,1),0===t)this.r=this.g=this.b=n;else{const r=n<=.5?n*(1+t):n+t-n*t,i=2*n-r;this.r=Qn(i,r,e+1/3),this.g=Qn(i,r,e),this.b=Qn(i,r,e-1/3)}return Ln.toWorkingColorSpace(this,r),this}setStyle(e,t=Bt){function n(t){void 0!==t&&parseFloat(t)<1&&console.warn("THREE.Color: Alpha component of "+e+" will be ignored.")}let r;if(r=/^((?:rgb|hsl)a?)\(([^\)]*)\)/.exec(e)){let e;const i=r[1],o=r[2];switch(i){case"rgb":case"rgba":if(e=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(o))return this.r=Math.min(255,parseInt(e[1],10))/255,this.g=Math.min(255,parseInt(e[2],10))/255,this.b=Math.min(255,parseInt(e[3],10))/255,Ln.toWorkingColorSpace(this,t),n(e[4]),this;if(e=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(o))return this.r=Math.min(100,parseInt(e[1],10))/100,this.g=Math.min(100,parseInt(e[2],10))/100,this.b=Math.min(100,parseInt(e[3],10))/100,Ln.toWorkingColorSpace(this,t),n(e[4]),this;break;case"hsl":case"hsla":if(e=/^\s*(\d*\.?\d+)\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(o)){const r=parseFloat(e[1])/360,i=parseInt(e[2],10)/100,o=parseInt(e[3],10)/100;return n(e[4]),this.setHSL(r,i,o,t)}}}else if(r=/^\#([A-Fa-f\d]+)$/.exec(e)){const e=r[1],n=e.length;if(3===n)return this.r=parseInt(e.charAt(0)+e.charAt(0),16)/255,this.g=parseInt(e.charAt(1)+e.charAt(1),16)/255,this.b=parseInt(e.charAt(2)+e.charAt(2),16)/255,Ln.toWorkingColorSpace(this,t),this;if(6===n)return this.r=parseInt(e.charAt(0)+e.charAt(1),16)/255,this.g=parseInt(e.charAt(2)+e.charAt(3),16)/255,this.b=parseInt(e.charAt(4)+e.charAt(5),16)/255,Ln.toWorkingColorSpace(this,t),this}return e&&e.length>0?this.setColorName(e,t):this}setColorName(e,t=Bt){const n=Bn[e.toLowerCase()];return void 0!==n?this.setHex(n,t):console.warn("THREE.Color: Unknown color "+e),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(e){return this.r=e.r,this.g=e.g,this.b=e.b,this}copySRGBToLinear(e){return this.r=Nn(e.r),this.g=Nn(e.g),this.b=Nn(e.b),this}copyLinearToSRGB(e){return this.r=Dn(e.r),this.g=Dn(e.g),this.b=Dn(e.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(e=Bt){return Ln.fromWorkingColorSpace(qn(this,zn),e),xn(255*zn.r,0,255)<<16^xn(255*zn.g,0,255)<<8^xn(255*zn.b,0,255)<<0}getHexString(e=Bt){return("000000"+this.getHex(e).toString(16)).slice(-6)}getHSL(e,t=zt){Ln.fromWorkingColorSpace(qn(this,zn),t);const n=zn.r,r=zn.g,i=zn.b,o=Math.max(n,r,i),s=Math.min(n,r,i);let a,l;const c=(s+o)/2;if(s===o)a=0,l=0;else{const e=o-s;switch(l=c<=.5?e/(o+s):e/(2-o-s),o){case n:a=(r-i)/e+(r2048||t.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",e),t.toDataURL("image/jpeg",.6)):t.toDataURL("image/png")}static sRGBToLinear(e){if("undefined"!=typeof HTMLImageElement&&e instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&e instanceof ImageBitmap){const t=jn("canvas");t.width=e.width,t.height=e.height;const n=t.getContext("2d");n.drawImage(e,0,0,e.width,e.height);const r=n.getImageData(0,0,e.width,e.height),i=r.data;for(let e=0;e1)switch(this.wrapS){case ue:e.x=e.x-Math.floor(e.x);break;case de:e.x=e.x<0?0:1;break;case he:1===Math.abs(Math.floor(e.x)%2)?e.x=Math.ceil(e.x)-e.x:e.x=e.x-Math.floor(e.x)}if(e.y<0||e.y>1)switch(this.wrapT){case ue:e.y=e.y-Math.floor(e.y);break;case de:e.y=e.y<0?0:1;break;case he:1===Math.abs(Math.floor(e.y)%2)?e.y=Math.ceil(e.y)-e.y:e.y=e.y-Math.floor(e.y)}return this.flipY&&(e.y=1-e.y),e}set needsUpdate(e){!0===e&&(this.version++,this.source.needsUpdate=!0)}}Zn.DEFAULT_IMAGE=null,Zn.DEFAULT_MAPPING=ie,Zn.prototype.isTexture=!0;class Jn{constructor(e=0,t=0,n=0,r=1){this.x=e,this.y=t,this.z=n,this.w=r}get width(){return this.z}set width(e){this.z=e}get height(){return this.w}set height(e){this.w=e}set(e,t,n,r){return this.x=e,this.y=t,this.z=n,this.w=r,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this.w=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setW(e){return this.w=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;case 3:this.w=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){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: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=void 0!==e.w?e.w:1,this}add(e,t){return void 0!==t?(console.warn("THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(e,t)):(this.x+=e.x,this.y+=e.y,this.z+=e.z,this.w+=e.w,this)}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this.w+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this.w=e.w+t.w,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this.w+=e.w*t,this}sub(e,t){return void 0!==t?(console.warn("THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(e,t)):(this.x-=e.x,this.y-=e.y,this.z-=e.z,this.w-=e.w,this)}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this.w-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this.w=e.w-t.w,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this.w*=e.w,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this.w*=e,this}applyMatrix4(e){const t=this.x,n=this.y,r=this.z,i=this.w,o=e.elements;return this.x=o[0]*t+o[4]*n+o[8]*r+o[12]*i,this.y=o[1]*t+o[5]*n+o[9]*r+o[13]*i,this.z=o[2]*t+o[6]*n+o[10]*r+o[14]*i,this.w=o[3]*t+o[7]*n+o[11]*r+o[15]*i,this}divideScalar(e){return this.multiplyScalar(1/e)}setAxisAngleFromQuaternion(e){this.w=2*Math.acos(e.w);const t=Math.sqrt(1-e.w*e.w);return t<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=e.x/t,this.y=e.y/t,this.z=e.z/t),this}setAxisAngleFromRotationMatrix(e){let t,n,r,i;const o=e.elements,s=o[0],a=o[4],l=o[8],c=o[1],u=o[5],d=o[9],h=o[2],p=o[6],f=o[10];if(Math.abs(a-c)<.01&&Math.abs(l-h)<.01&&Math.abs(d-p)<.01){if(Math.abs(a+c)<.1&&Math.abs(l+h)<.1&&Math.abs(d+p)<.1&&Math.abs(s+u+f-3)<.1)return this.set(1,0,0,0),this;t=Math.PI;const e=(s+1)/2,o=(u+1)/2,m=(f+1)/2,g=(a+c)/4,b=(l+h)/4,v=(d+p)/4;return e>o&&e>m?e<.01?(n=0,r=.707106781,i=.707106781):(n=Math.sqrt(e),r=g/n,i=b/n):o>m?o<.01?(n=.707106781,r=0,i=.707106781):(r=Math.sqrt(o),n=g/r,i=v/r):m<.01?(n=.707106781,r=.707106781,i=0):(i=Math.sqrt(m),n=b/i,r=v/i),this.set(n,r,i,t),this}let m=Math.sqrt((p-d)*(p-d)+(l-h)*(l-h)+(c-a)*(c-a));return Math.abs(m)<.001&&(m=1),this.x=(p-d)/m,this.y=(l-h)/m,this.z=(c-a)/m,this.w=Math.acos((s+u+f-1)/2),this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this.w=Math.min(this.w,e.w),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this.w=Math.max(this.w,e.w),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this.z=Math.max(e.z,Math.min(t.z,this.z)),this.w=Math.max(e.w,Math.min(t.w,this.w)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this.z=Math.max(e,Math.min(t,this.z)),this.w=Math.max(e,Math.min(t,this.w)),this}clampLength(e,t){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(e,Math.min(t,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this.w=this.w<0?Math.ceil(this.w):Math.floor(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z+this.w*e.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this.w+=(e.w-this.w)*t,this}lerpVectors(e,t,n){return this.x=e.x+(t.x-e.x)*n,this.y=e.y+(t.y-e.y)*n,this.z=e.z+(t.z-e.z)*n,this.w=e.w+(t.w-e.w)*n,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z&&e.w===this.w}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this.w=e[t+3],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e[t+3]=this.w,e}fromBufferAttribute(e,t,n){return void 0!==n&&console.warn("THREE.Vector4: offset has been removed from .fromBufferAttribute()."),this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this.w=e.getW(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}}Jn.prototype.isVector4=!0;class Kn extends gn{constructor(e,t,n={}){super(),this.width=e,this.height=t,this.depth=1,this.scissor=new Jn(0,0,e,t),this.scissorTest=!1,this.viewport=new Jn(0,0,e,t);const r={width:e,height:t,depth:1};this.texture=new Zn(r,n.mapping,n.wrapS,n.wrapT,n.magFilter,n.minFilter,n.format,n.type,n.anisotropy,n.encoding),this.texture.isRenderTargetTexture=!0,this.texture.flipY=!1,this.texture.generateMipmaps=void 0!==n.generateMipmaps&&n.generateMipmaps,this.texture.internalFormat=void 0!==n.internalFormat?n.internalFormat:null,this.texture.minFilter=void 0!==n.minFilter?n.minFilter:ve,this.depthBuffer=void 0===n.depthBuffer||n.depthBuffer,this.stencilBuffer=void 0!==n.stencilBuffer&&n.stencilBuffer,this.depthTexture=void 0!==n.depthTexture?n.depthTexture:null,this.samples=void 0!==n.samples?n.samples:0}setSize(e,t,n=1){this.width===e&&this.height===t&&this.depth===n||(this.width=e,this.height=t,this.depth=n,this.texture.image.width=e,this.texture.image.height=t,this.texture.image.depth=n,this.dispose()),this.viewport.set(0,0,e,t),this.scissor.set(0,0,e,t)}clone(){return(new this.constructor).copy(this)}copy(e){this.width=e.width,this.height=e.height,this.depth=e.depth,this.viewport.copy(e.viewport),this.texture=e.texture.clone(),this.texture.isRenderTargetTexture=!0;const t=Object.assign({},e.texture.image);return this.texture.source=new Wn(t),this.depthBuffer=e.depthBuffer,this.stencilBuffer=e.stencilBuffer,null!==e.depthTexture&&(this.depthTexture=e.depthTexture.clone()),this.samples=e.samples,this}dispose(){this.dispatchEvent({type:"dispose"})}}Kn.prototype.isWebGLRenderTarget=!0;class er extends Zn{constructor(e=null,t=1,n=1,r=1){super(null),this.image={data:e,width:t,height:n,depth:r},this.magFilter=pe,this.minFilter=pe,this.wrapR=de,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}er.prototype.isDataArrayTexture=!0;class tr extends Kn{constructor(e,t,n){super(e,t),this.depth=n,this.texture=new er(null,e,t,n),this.texture.isRenderTargetTexture=!0}}tr.prototype.isWebGLArrayRenderTarget=!0;class nr extends Zn{constructor(e=null,t=1,n=1,r=1){super(null),this.image={data:e,width:t,height:n,depth:r},this.magFilter=pe,this.minFilter=pe,this.wrapR=de,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}nr.prototype.isData3DTexture=!0;class rr extends Kn{constructor(e,t,n){super(e,t),this.depth=n,this.texture=new nr(null,e,t,n),this.texture.isRenderTargetTexture=!0}}rr.prototype.isWebGL3DRenderTarget=!0;class ir extends Kn{constructor(e,t,n,r={}){super(e,t,r);const i=this.texture;this.texture=[];for(let e=0;e=0?1:-1,r=1-t*t;if(r>Number.EPSILON){const i=Math.sqrt(r),o=Math.atan2(i,t*n);e=Math.sin(e*o)/i,s=Math.sin(s*o)/i}const i=s*n;if(a=a*e+d*i,l=l*e+h*i,c=c*e+p*i,u=u*e+f*i,e===1-s){const e=1/Math.sqrt(a*a+l*l+c*c+u*u);a*=e,l*=e,c*=e,u*=e}}e[t]=a,e[t+1]=l,e[t+2]=c,e[t+3]=u}static multiplyQuaternionsFlat(e,t,n,r,i,o){const s=n[r],a=n[r+1],l=n[r+2],c=n[r+3],u=i[o],d=i[o+1],h=i[o+2],p=i[o+3];return e[t]=s*p+c*u+a*h-l*d,e[t+1]=a*p+c*d+l*u-s*h,e[t+2]=l*p+c*h+s*d-a*u,e[t+3]=c*p-s*u-a*d-l*h,e}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get w(){return this._w}set w(e){this._w=e,this._onChangeCallback()}set(e,t,n,r){return this._x=e,this._y=t,this._z=n,this._w=r,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(e){return this._x=e.x,this._y=e.y,this._z=e.z,this._w=e.w,this._onChangeCallback(),this}setFromEuler(e,t){if(!e||!e.isEuler)throw new Error("THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.");const n=e._x,r=e._y,i=e._z,o=e._order,s=Math.cos,a=Math.sin,l=s(n/2),c=s(r/2),u=s(i/2),d=a(n/2),h=a(r/2),p=a(i/2);switch(o){case"XYZ":this._x=d*c*u+l*h*p,this._y=l*h*u-d*c*p,this._z=l*c*p+d*h*u,this._w=l*c*u-d*h*p;break;case"YXZ":this._x=d*c*u+l*h*p,this._y=l*h*u-d*c*p,this._z=l*c*p-d*h*u,this._w=l*c*u+d*h*p;break;case"ZXY":this._x=d*c*u-l*h*p,this._y=l*h*u+d*c*p,this._z=l*c*p+d*h*u,this._w=l*c*u-d*h*p;break;case"ZYX":this._x=d*c*u-l*h*p,this._y=l*h*u+d*c*p,this._z=l*c*p-d*h*u,this._w=l*c*u+d*h*p;break;case"YZX":this._x=d*c*u+l*h*p,this._y=l*h*u+d*c*p,this._z=l*c*p-d*h*u,this._w=l*c*u-d*h*p;break;case"XZY":this._x=d*c*u-l*h*p,this._y=l*h*u-d*c*p,this._z=l*c*p+d*h*u,this._w=l*c*u+d*h*p;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+o)}return!1!==t&&this._onChangeCallback(),this}setFromAxisAngle(e,t){const n=t/2,r=Math.sin(n);return this._x=e.x*r,this._y=e.y*r,this._z=e.z*r,this._w=Math.cos(n),this._onChangeCallback(),this}setFromRotationMatrix(e){const t=e.elements,n=t[0],r=t[4],i=t[8],o=t[1],s=t[5],a=t[9],l=t[2],c=t[6],u=t[10],d=n+s+u;if(d>0){const e=.5/Math.sqrt(d+1);this._w=.25/e,this._x=(c-a)*e,this._y=(i-l)*e,this._z=(o-r)*e}else if(n>s&&n>u){const e=2*Math.sqrt(1+n-s-u);this._w=(c-a)/e,this._x=.25*e,this._y=(r+o)/e,this._z=(i+l)/e}else if(s>u){const e=2*Math.sqrt(1+s-n-u);this._w=(i-l)/e,this._x=(r+o)/e,this._y=.25*e,this._z=(a+c)/e}else{const e=2*Math.sqrt(1+u-n-s);this._w=(o-r)/e,this._x=(i+l)/e,this._y=(a+c)/e,this._z=.25*e}return this._onChangeCallback(),this}setFromUnitVectors(e,t){let n=e.dot(t)+1;return nMath.abs(e.z)?(this._x=-e.y,this._y=e.x,this._z=0,this._w=n):(this._x=0,this._y=-e.z,this._z=e.y,this._w=n)):(this._x=e.y*t.z-e.z*t.y,this._y=e.z*t.x-e.x*t.z,this._z=e.x*t.y-e.y*t.x,this._w=n),this.normalize()}angleTo(e){return 2*Math.acos(Math.abs(xn(this.dot(e),-1,1)))}rotateTowards(e,t){const n=this.angleTo(e);if(0===n)return this;const r=Math.min(1,t/n);return this.slerp(e,r),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(e){return this._x*e._x+this._y*e._y+this._z*e._z+this._w*e._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let e=this.length();return 0===e?(this._x=0,this._y=0,this._z=0,this._w=1):(e=1/e,this._x=this._x*e,this._y=this._y*e,this._z=this._z*e,this._w=this._w*e),this._onChangeCallback(),this}multiply(e,t){return void 0!==t?(console.warn("THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead."),this.multiplyQuaternions(e,t)):this.multiplyQuaternions(this,e)}premultiply(e){return this.multiplyQuaternions(e,this)}multiplyQuaternions(e,t){const n=e._x,r=e._y,i=e._z,o=e._w,s=t._x,a=t._y,l=t._z,c=t._w;return this._x=n*c+o*s+r*l-i*a,this._y=r*c+o*a+i*s-n*l,this._z=i*c+o*l+n*a-r*s,this._w=o*c-n*s-r*a-i*l,this._onChangeCallback(),this}slerp(e,t){if(0===t)return this;if(1===t)return this.copy(e);const n=this._x,r=this._y,i=this._z,o=this._w;let s=o*e._w+n*e._x+r*e._y+i*e._z;if(s<0?(this._w=-e._w,this._x=-e._x,this._y=-e._y,this._z=-e._z,s=-s):this.copy(e),s>=1)return this._w=o,this._x=n,this._y=r,this._z=i,this;const a=1-s*s;if(a<=Number.EPSILON){const e=1-t;return this._w=e*o+t*this._w,this._x=e*n+t*this._x,this._y=e*r+t*this._y,this._z=e*i+t*this._z,this.normalize(),this._onChangeCallback(),this}const l=Math.sqrt(a),c=Math.atan2(l,s),u=Math.sin((1-t)*c)/l,d=Math.sin(t*c)/l;return this._w=o*u+this._w*d,this._x=n*u+this._x*d,this._y=r*u+this._y*d,this._z=i*u+this._z*d,this._onChangeCallback(),this}slerpQuaternions(e,t,n){return this.copy(e).slerp(t,n)}random(){const e=Math.random(),t=Math.sqrt(1-e),n=Math.sqrt(e),r=2*Math.PI*Math.random(),i=2*Math.PI*Math.random();return this.set(t*Math.cos(r),n*Math.sin(i),n*Math.cos(i),t*Math.sin(r))}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._w===this._w}fromArray(e,t=0){return this._x=e[t],this._y=e[t+1],this._z=e[t+2],this._w=e[t+3],this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._w,e}fromBufferAttribute(e,t){return this._x=e.getX(t),this._y=e.getY(t),this._z=e.getZ(t),this._w=e.getW(t),this}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}or.prototype.isQuaternion=!0;class sr{constructor(e=0,t=0,n=0){this.x=e,this.y=t,this.z=n}set(e,t,n){return void 0===n&&(n=this.z),this.x=e,this.y=t,this.z=n,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this}add(e,t){return void 0!==t?(console.warn("THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(e,t)):(this.x+=e.x,this.y+=e.y,this.z+=e.z,this)}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this}sub(e,t){return void 0!==t?(console.warn("THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(e,t)):(this.x-=e.x,this.y-=e.y,this.z-=e.z,this)}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this}multiply(e,t){return void 0!==t?(console.warn("THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead."),this.multiplyVectors(e,t)):(this.x*=e.x,this.y*=e.y,this.z*=e.z,this)}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this}multiplyVectors(e,t){return this.x=e.x*t.x,this.y=e.y*t.y,this.z=e.z*t.z,this}applyEuler(e){return e&&e.isEuler||console.error("THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order."),this.applyQuaternion(lr.setFromEuler(e))}applyAxisAngle(e,t){return this.applyQuaternion(lr.setFromAxisAngle(e,t))}applyMatrix3(e){const t=this.x,n=this.y,r=this.z,i=e.elements;return this.x=i[0]*t+i[3]*n+i[6]*r,this.y=i[1]*t+i[4]*n+i[7]*r,this.z=i[2]*t+i[5]*n+i[8]*r,this}applyNormalMatrix(e){return this.applyMatrix3(e).normalize()}applyMatrix4(e){const t=this.x,n=this.y,r=this.z,i=e.elements,o=1/(i[3]*t+i[7]*n+i[11]*r+i[15]);return this.x=(i[0]*t+i[4]*n+i[8]*r+i[12])*o,this.y=(i[1]*t+i[5]*n+i[9]*r+i[13])*o,this.z=(i[2]*t+i[6]*n+i[10]*r+i[14])*o,this}applyQuaternion(e){const t=this.x,n=this.y,r=this.z,i=e.x,o=e.y,s=e.z,a=e.w,l=a*t+o*r-s*n,c=a*n+s*t-i*r,u=a*r+i*n-o*t,d=-i*t-o*n-s*r;return this.x=l*a+d*-i+c*-s-u*-o,this.y=c*a+d*-o+u*-i-l*-s,this.z=u*a+d*-s+l*-o-c*-i,this}project(e){return this.applyMatrix4(e.matrixWorldInverse).applyMatrix4(e.projectionMatrix)}unproject(e){return this.applyMatrix4(e.projectionMatrixInverse).applyMatrix4(e.matrixWorld)}transformDirection(e){const t=this.x,n=this.y,r=this.z,i=e.elements;return this.x=i[0]*t+i[4]*n+i[8]*r,this.y=i[1]*t+i[5]*n+i[9]*r,this.z=i[2]*t+i[6]*n+i[10]*r,this.normalize()}divide(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this}divideScalar(e){return this.multiplyScalar(1/e)}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this.z=Math.max(e.z,Math.min(t.z,this.z)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this.z=Math.max(e,Math.min(t,this.z)),this}clampLength(e,t){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(e,Math.min(t,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this}lerpVectors(e,t,n){return this.x=e.x+(t.x-e.x)*n,this.y=e.y+(t.y-e.y)*n,this.z=e.z+(t.z-e.z)*n,this}cross(e,t){return void 0!==t?(console.warn("THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead."),this.crossVectors(e,t)):this.crossVectors(this,e)}crossVectors(e,t){const n=e.x,r=e.y,i=e.z,o=t.x,s=t.y,a=t.z;return this.x=r*a-i*s,this.y=i*o-n*a,this.z=n*s-r*o,this}projectOnVector(e){const t=e.lengthSq();if(0===t)return this.set(0,0,0);const n=e.dot(this)/t;return this.copy(e).multiplyScalar(n)}projectOnPlane(e){return ar.copy(this).projectOnVector(e),this.sub(ar)}reflect(e){return this.sub(ar.copy(e).multiplyScalar(2*this.dot(e)))}angleTo(e){const t=Math.sqrt(this.lengthSq()*e.lengthSq());if(0===t)return Math.PI/2;const n=this.dot(e)/t;return Math.acos(xn(n,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const t=this.x-e.x,n=this.y-e.y,r=this.z-e.z;return t*t+n*n+r*r}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)+Math.abs(this.z-e.z)}setFromSpherical(e){return this.setFromSphericalCoords(e.radius,e.phi,e.theta)}setFromSphericalCoords(e,t,n){const r=Math.sin(t)*e;return this.x=r*Math.sin(n),this.y=Math.cos(t)*e,this.z=r*Math.cos(n),this}setFromCylindrical(e){return this.setFromCylindricalCoords(e.radius,e.theta,e.y)}setFromCylindricalCoords(e,t,n){return this.x=e*Math.sin(t),this.y=n,this.z=e*Math.cos(t),this}setFromMatrixPosition(e){const t=e.elements;return this.x=t[12],this.y=t[13],this.z=t[14],this}setFromMatrixScale(e){const t=this.setFromMatrixColumn(e,0).length(),n=this.setFromMatrixColumn(e,1).length(),r=this.setFromMatrixColumn(e,2).length();return this.x=t,this.y=n,this.z=r,this}setFromMatrixColumn(e,t){return this.fromArray(e.elements,4*t)}setFromMatrix3Column(e,t){return this.fromArray(e.elements,3*t)}setFromEuler(e){return this.x=e._x,this.y=e._y,this.z=e._z,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e}fromBufferAttribute(e,t,n){return void 0!==n&&console.warn("THREE.Vector3: offset has been removed from .fromBufferAttribute()."),this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const e=2*(Math.random()-.5),t=Math.random()*Math.PI*2,n=Math.sqrt(1-e**2);return this.x=n*Math.cos(t),this.y=n*Math.sin(t),this.z=e,this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}sr.prototype.isVector3=!0;const ar=new sr,lr=new or;class cr{constructor(e=new sr(1/0,1/0,1/0),t=new sr(-1/0,-1/0,-1/0)){this.min=e,this.max=t}set(e,t){return this.min.copy(e),this.max.copy(t),this}setFromArray(e){let t=1/0,n=1/0,r=1/0,i=-1/0,o=-1/0,s=-1/0;for(let a=0,l=e.length;ai&&(i=l),c>o&&(o=c),u>s&&(s=u)}return this.min.set(t,n,r),this.max.set(i,o,s),this}setFromBufferAttribute(e){let t=1/0,n=1/0,r=1/0,i=-1/0,o=-1/0,s=-1/0;for(let a=0,l=e.count;ai&&(i=l),c>o&&(o=c),u>s&&(s=u)}return this.min.set(t,n,r),this.max.set(i,o,s),this}setFromPoints(e){this.makeEmpty();for(let t=0,n=e.length;tthis.max.x||e.ythis.max.y||e.zthis.max.z)}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y&&this.min.z<=e.min.z&&e.max.z<=this.max.z}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y),(e.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(e){return!(e.max.xthis.max.x||e.max.ythis.max.y||e.max.zthis.max.z)}intersectsSphere(e){return this.clampPoint(e.center,dr),dr.distanceToSquared(e.center)<=e.radius*e.radius}intersectsPlane(e){let t,n;return e.normal.x>0?(t=e.normal.x*this.min.x,n=e.normal.x*this.max.x):(t=e.normal.x*this.max.x,n=e.normal.x*this.min.x),e.normal.y>0?(t+=e.normal.y*this.min.y,n+=e.normal.y*this.max.y):(t+=e.normal.y*this.max.y,n+=e.normal.y*this.min.y),e.normal.z>0?(t+=e.normal.z*this.min.z,n+=e.normal.z*this.max.z):(t+=e.normal.z*this.max.z,n+=e.normal.z*this.min.z),t<=-e.constant&&n>=-e.constant}intersectsTriangle(e){if(this.isEmpty())return!1;this.getCenter(yr),Sr.subVectors(this.max,yr),pr.subVectors(e.a,yr),fr.subVectors(e.b,yr),mr.subVectors(e.c,yr),gr.subVectors(fr,pr),br.subVectors(mr,fr),vr.subVectors(pr,mr);let t=[0,-gr.z,gr.y,0,-br.z,br.y,0,-vr.z,vr.y,gr.z,0,-gr.x,br.z,0,-br.x,vr.z,0,-vr.x,-gr.y,gr.x,0,-br.y,br.x,0,-vr.y,vr.x,0];return!!wr(t,pr,fr,mr,Sr)&&(t=[1,0,0,0,1,0,0,0,1],!!wr(t,pr,fr,mr,Sr)&&(_r.crossVectors(gr,br),t=[_r.x,_r.y,_r.z],wr(t,pr,fr,mr,Sr)))}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return dr.copy(e).clamp(this.min,this.max).sub(e).length()}getBoundingSphere(e){return this.getCenter(e.center),e.radius=.5*this.getSize(dr).length(),e}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}applyMatrix4(e){return this.isEmpty()||(ur[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),ur[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),ur[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),ur[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),ur[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),ur[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),ur[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),ur[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints(ur)),this}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}}cr.prototype.isBox3=!0;const ur=[new sr,new sr,new sr,new sr,new sr,new sr,new sr,new sr],dr=new sr,hr=new cr,pr=new sr,fr=new sr,mr=new sr,gr=new sr,br=new sr,vr=new sr,yr=new sr,Sr=new sr,_r=new sr,xr=new sr;function wr(e,t,n,r,i){for(let o=0,s=e.length-3;o<=s;o+=3){xr.fromArray(e,o);const s=i.x*Math.abs(xr.x)+i.y*Math.abs(xr.y)+i.z*Math.abs(xr.z),a=t.dot(xr),l=n.dot(xr),c=r.dot(xr);if(Math.max(-Math.max(a,l,c),Math.min(a,l,c))>s)return!1}return!0}const kr=new cr,Or=new sr,Er=new sr,Ar=new sr;class Tr{constructor(e=new sr,t=-1){this.center=e,this.radius=t}set(e,t){return this.center.copy(e),this.radius=t,this}setFromPoints(e,t){const n=this.center;void 0!==t?n.copy(t):kr.setFromPoints(e).getCenter(n);let r=0;for(let t=0,i=e.length;tthis.radius*this.radius&&(t.sub(this.center).normalize(),t.multiplyScalar(this.radius).add(this.center)),t}getBoundingBox(e){return this.isEmpty()?(e.makeEmpty(),e):(e.set(this.center,this.center),e.expandByScalar(this.radius),e)}applyMatrix4(e){return this.center.applyMatrix4(e),this.radius=this.radius*e.getMaxScaleOnAxis(),this}translate(e){return this.center.add(e),this}expandByPoint(e){Ar.subVectors(e,this.center);const t=Ar.lengthSq();if(t>this.radius*this.radius){const e=Math.sqrt(t),n=.5*(e-this.radius);this.center.add(Ar.multiplyScalar(n/e)),this.radius+=n}return this}union(e){return!0===this.center.equals(e.center)?Er.set(0,0,1).multiplyScalar(e.radius):Er.subVectors(e.center,this.center).normalize().multiplyScalar(e.radius),this.expandByPoint(Or.copy(e.center).add(Er)),this.expandByPoint(Or.copy(e.center).sub(Er)),this}equals(e){return e.center.equals(this.center)&&e.radius===this.radius}clone(){return(new this.constructor).copy(this)}}const Cr=new sr,Mr=new sr,$r=new sr,Pr=new sr,Rr=new sr,jr=new sr,Nr=new sr;class Dr{constructor(e=new sr,t=new sr(0,0,-1)){this.origin=e,this.direction=t}set(e,t){return this.origin.copy(e),this.direction.copy(t),this}copy(e){return this.origin.copy(e.origin),this.direction.copy(e.direction),this}at(e,t){return t.copy(this.direction).multiplyScalar(e).add(this.origin)}lookAt(e){return this.direction.copy(e).sub(this.origin).normalize(),this}recast(e){return this.origin.copy(this.at(e,Cr)),this}closestPointToPoint(e,t){t.subVectors(e,this.origin);const n=t.dot(this.direction);return n<0?t.copy(this.origin):t.copy(this.direction).multiplyScalar(n).add(this.origin)}distanceToPoint(e){return Math.sqrt(this.distanceSqToPoint(e))}distanceSqToPoint(e){const t=Cr.subVectors(e,this.origin).dot(this.direction);return t<0?this.origin.distanceToSquared(e):(Cr.copy(this.direction).multiplyScalar(t).add(this.origin),Cr.distanceToSquared(e))}distanceSqToSegment(e,t,n,r){Mr.copy(e).add(t).multiplyScalar(.5),$r.copy(t).sub(e).normalize(),Pr.copy(this.origin).sub(Mr);const i=.5*e.distanceTo(t),o=-this.direction.dot($r),s=Pr.dot(this.direction),a=-Pr.dot($r),l=Pr.lengthSq(),c=Math.abs(1-o*o);let u,d,h,p;if(c>0)if(u=o*a-s,d=o*s-a,p=i*c,u>=0)if(d>=-p)if(d<=p){const e=1/c;u*=e,d*=e,h=u*(u+o*d+2*s)+d*(o*u+d+2*a)+l}else d=i,u=Math.max(0,-(o*d+s)),h=-u*u+d*(d+2*a)+l;else d=-i,u=Math.max(0,-(o*d+s)),h=-u*u+d*(d+2*a)+l;else d<=-p?(u=Math.max(0,-(-o*i+s)),d=u>0?-i:Math.min(Math.max(-i,-a),i),h=-u*u+d*(d+2*a)+l):d<=p?(u=0,d=Math.min(Math.max(-i,-a),i),h=d*(d+2*a)+l):(u=Math.max(0,-(o*i+s)),d=u>0?i:Math.min(Math.max(-i,-a),i),h=-u*u+d*(d+2*a)+l);else d=o>0?-i:i,u=Math.max(0,-(o*d+s)),h=-u*u+d*(d+2*a)+l;return n&&n.copy(this.direction).multiplyScalar(u).add(this.origin),r&&r.copy($r).multiplyScalar(d).add(Mr),h}intersectSphere(e,t){Cr.subVectors(e.center,this.origin);const n=Cr.dot(this.direction),r=Cr.dot(Cr)-n*n,i=e.radius*e.radius;if(r>i)return null;const o=Math.sqrt(i-r),s=n-o,a=n+o;return s<0&&a<0?null:s<0?this.at(a,t):this.at(s,t)}intersectsSphere(e){return this.distanceSqToPoint(e.center)<=e.radius*e.radius}distanceToPlane(e){const t=e.normal.dot(this.direction);if(0===t)return 0===e.distanceToPoint(this.origin)?0:null;const n=-(this.origin.dot(e.normal)+e.constant)/t;return n>=0?n:null}intersectPlane(e,t){const n=this.distanceToPlane(e);return null===n?null:this.at(n,t)}intersectsPlane(e){const t=e.distanceToPoint(this.origin);if(0===t)return!0;return e.normal.dot(this.direction)*t<0}intersectBox(e,t){let n,r,i,o,s,a;const l=1/this.direction.x,c=1/this.direction.y,u=1/this.direction.z,d=this.origin;return l>=0?(n=(e.min.x-d.x)*l,r=(e.max.x-d.x)*l):(n=(e.max.x-d.x)*l,r=(e.min.x-d.x)*l),c>=0?(i=(e.min.y-d.y)*c,o=(e.max.y-d.y)*c):(i=(e.max.y-d.y)*c,o=(e.min.y-d.y)*c),n>o||i>r?null:((i>n||n!=n)&&(n=i),(o=0?(s=(e.min.z-d.z)*u,a=(e.max.z-d.z)*u):(s=(e.max.z-d.z)*u,a=(e.min.z-d.z)*u),n>a||s>r?null:((s>n||n!=n)&&(n=s),(a=0?n:r,t)))}intersectsBox(e){return null!==this.intersectBox(e,Cr)}intersectTriangle(e,t,n,r,i){Rr.subVectors(t,e),jr.subVectors(n,e),Nr.crossVectors(Rr,jr);let o,s=this.direction.dot(Nr);if(s>0){if(r)return null;o=1}else{if(!(s<0))return null;o=-1,s=-s}Pr.subVectors(this.origin,e);const a=o*this.direction.dot(jr.crossVectors(Pr,jr));if(a<0)return null;const l=o*this.direction.dot(Rr.cross(Pr));if(l<0)return null;if(a+l>s)return null;const c=-o*Pr.dot(Nr);return c<0?null:this.at(c/s,i)}applyMatrix4(e){return this.origin.applyMatrix4(e),this.direction.transformDirection(e),this}equals(e){return e.origin.equals(this.origin)&&e.direction.equals(this.direction)}clone(){return(new this.constructor).copy(this)}}class Ir{constructor(){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.")}set(e,t,n,r,i,o,s,a,l,c,u,d,h,p,f,m){const g=this.elements;return g[0]=e,g[4]=t,g[8]=n,g[12]=r,g[1]=i,g[5]=o,g[9]=s,g[13]=a,g[2]=l,g[6]=c,g[10]=u,g[14]=d,g[3]=h,g[7]=p,g[11]=f,g[15]=m,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return(new Ir).fromArray(this.elements)}copy(e){const t=this.elements,n=e.elements;return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],t[6]=n[6],t[7]=n[7],t[8]=n[8],t[9]=n[9],t[10]=n[10],t[11]=n[11],t[12]=n[12],t[13]=n[13],t[14]=n[14],t[15]=n[15],this}copyPosition(e){const t=this.elements,n=e.elements;return t[12]=n[12],t[13]=n[13],t[14]=n[14],this}setFromMatrix3(e){const t=e.elements;return this.set(t[0],t[3],t[6],0,t[1],t[4],t[7],0,t[2],t[5],t[8],0,0,0,0,1),this}extractBasis(e,t,n){return e.setFromMatrixColumn(this,0),t.setFromMatrixColumn(this,1),n.setFromMatrixColumn(this,2),this}makeBasis(e,t,n){return this.set(e.x,t.x,n.x,0,e.y,t.y,n.y,0,e.z,t.z,n.z,0,0,0,0,1),this}extractRotation(e){const t=this.elements,n=e.elements,r=1/Lr.setFromMatrixColumn(e,0).length(),i=1/Lr.setFromMatrixColumn(e,1).length(),o=1/Lr.setFromMatrixColumn(e,2).length();return t[0]=n[0]*r,t[1]=n[1]*r,t[2]=n[2]*r,t[3]=0,t[4]=n[4]*i,t[5]=n[5]*i,t[6]=n[6]*i,t[7]=0,t[8]=n[8]*o,t[9]=n[9]*o,t[10]=n[10]*o,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromEuler(e){e&&e.isEuler||console.error("THREE.Matrix4: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.");const t=this.elements,n=e.x,r=e.y,i=e.z,o=Math.cos(n),s=Math.sin(n),a=Math.cos(r),l=Math.sin(r),c=Math.cos(i),u=Math.sin(i);if("XYZ"===e.order){const e=o*c,n=o*u,r=s*c,i=s*u;t[0]=a*c,t[4]=-a*u,t[8]=l,t[1]=n+r*l,t[5]=e-i*l,t[9]=-s*a,t[2]=i-e*l,t[6]=r+n*l,t[10]=o*a}else if("YXZ"===e.order){const e=a*c,n=a*u,r=l*c,i=l*u;t[0]=e+i*s,t[4]=r*s-n,t[8]=o*l,t[1]=o*u,t[5]=o*c,t[9]=-s,t[2]=n*s-r,t[6]=i+e*s,t[10]=o*a}else if("ZXY"===e.order){const e=a*c,n=a*u,r=l*c,i=l*u;t[0]=e-i*s,t[4]=-o*u,t[8]=r+n*s,t[1]=n+r*s,t[5]=o*c,t[9]=i-e*s,t[2]=-o*l,t[6]=s,t[10]=o*a}else if("ZYX"===e.order){const e=o*c,n=o*u,r=s*c,i=s*u;t[0]=a*c,t[4]=r*l-n,t[8]=e*l+i,t[1]=a*u,t[5]=i*l+e,t[9]=n*l-r,t[2]=-l,t[6]=s*a,t[10]=o*a}else if("YZX"===e.order){const e=o*a,n=o*l,r=s*a,i=s*l;t[0]=a*c,t[4]=i-e*u,t[8]=r*u+n,t[1]=u,t[5]=o*c,t[9]=-s*c,t[2]=-l*c,t[6]=n*u+r,t[10]=e-i*u}else if("XZY"===e.order){const e=o*a,n=o*l,r=s*a,i=s*l;t[0]=a*c,t[4]=-u,t[8]=l*c,t[1]=e*u+i,t[5]=o*c,t[9]=n*u-r,t[2]=r*u-n,t[6]=s*c,t[10]=i*u+e}return t[3]=0,t[7]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromQuaternion(e){return this.compose(zr,e,Fr)}lookAt(e,t,n){const r=this.elements;return qr.subVectors(e,t),0===qr.lengthSq()&&(qr.z=1),qr.normalize(),Ur.crossVectors(n,qr),0===Ur.lengthSq()&&(1===Math.abs(n.z)?qr.x+=1e-4:qr.z+=1e-4,qr.normalize(),Ur.crossVectors(n,qr)),Ur.normalize(),Qr.crossVectors(qr,Ur),r[0]=Ur.x,r[4]=Qr.x,r[8]=qr.x,r[1]=Ur.y,r[5]=Qr.y,r[9]=qr.y,r[2]=Ur.z,r[6]=Qr.z,r[10]=qr.z,this}multiply(e,t){return void 0!==t?(console.warn("THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead."),this.multiplyMatrices(e,t)):this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){const n=e.elements,r=t.elements,i=this.elements,o=n[0],s=n[4],a=n[8],l=n[12],c=n[1],u=n[5],d=n[9],h=n[13],p=n[2],f=n[6],m=n[10],g=n[14],b=n[3],v=n[7],y=n[11],S=n[15],_=r[0],x=r[4],w=r[8],k=r[12],O=r[1],E=r[5],A=r[9],T=r[13],C=r[2],M=r[6],$=r[10],P=r[14],R=r[3],j=r[7],N=r[11],D=r[15];return i[0]=o*_+s*O+a*C+l*R,i[4]=o*x+s*E+a*M+l*j,i[8]=o*w+s*A+a*$+l*N,i[12]=o*k+s*T+a*P+l*D,i[1]=c*_+u*O+d*C+h*R,i[5]=c*x+u*E+d*M+h*j,i[9]=c*w+u*A+d*$+h*N,i[13]=c*k+u*T+d*P+h*D,i[2]=p*_+f*O+m*C+g*R,i[6]=p*x+f*E+m*M+g*j,i[10]=p*w+f*A+m*$+g*N,i[14]=p*k+f*T+m*P+g*D,i[3]=b*_+v*O+y*C+S*R,i[7]=b*x+v*E+y*M+S*j,i[11]=b*w+v*A+y*$+S*N,i[15]=b*k+v*T+y*P+S*D,this}multiplyScalar(e){const t=this.elements;return t[0]*=e,t[4]*=e,t[8]*=e,t[12]*=e,t[1]*=e,t[5]*=e,t[9]*=e,t[13]*=e,t[2]*=e,t[6]*=e,t[10]*=e,t[14]*=e,t[3]*=e,t[7]*=e,t[11]*=e,t[15]*=e,this}determinant(){const e=this.elements,t=e[0],n=e[4],r=e[8],i=e[12],o=e[1],s=e[5],a=e[9],l=e[13],c=e[2],u=e[6],d=e[10],h=e[14];return e[3]*(+i*a*u-r*l*u-i*s*d+n*l*d+r*s*h-n*a*h)+e[7]*(+t*a*h-t*l*d+i*o*d-r*o*h+r*l*c-i*a*c)+e[11]*(+t*l*u-t*s*h-i*o*u+n*o*h+i*s*c-n*l*c)+e[15]*(-r*s*c-t*a*u+t*s*d+r*o*u-n*o*d+n*a*c)}transpose(){const e=this.elements;let t;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}setPosition(e,t,n){const r=this.elements;return e.isVector3?(r[12]=e.x,r[13]=e.y,r[14]=e.z):(r[12]=e,r[13]=t,r[14]=n),this}invert(){const e=this.elements,t=e[0],n=e[1],r=e[2],i=e[3],o=e[4],s=e[5],a=e[6],l=e[7],c=e[8],u=e[9],d=e[10],h=e[11],p=e[12],f=e[13],m=e[14],g=e[15],b=u*m*l-f*d*l+f*a*h-s*m*h-u*a*g+s*d*g,v=p*d*l-c*m*l-p*a*h+o*m*h+c*a*g-o*d*g,y=c*f*l-p*u*l+p*s*h-o*f*h-c*s*g+o*u*g,S=p*u*a-c*f*a-p*s*d+o*f*d+c*s*m-o*u*m,_=t*b+n*v+r*y+i*S;if(0===_)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const x=1/_;return e[0]=b*x,e[1]=(f*d*i-u*m*i-f*r*h+n*m*h+u*r*g-n*d*g)*x,e[2]=(s*m*i-f*a*i+f*r*l-n*m*l-s*r*g+n*a*g)*x,e[3]=(u*a*i-s*d*i-u*r*l+n*d*l+s*r*h-n*a*h)*x,e[4]=v*x,e[5]=(c*m*i-p*d*i+p*r*h-t*m*h-c*r*g+t*d*g)*x,e[6]=(p*a*i-o*m*i-p*r*l+t*m*l+o*r*g-t*a*g)*x,e[7]=(o*d*i-c*a*i+c*r*l-t*d*l-o*r*h+t*a*h)*x,e[8]=y*x,e[9]=(p*u*i-c*f*i-p*n*h+t*f*h+c*n*g-t*u*g)*x,e[10]=(o*f*i-p*s*i+p*n*l-t*f*l-o*n*g+t*s*g)*x,e[11]=(c*s*i-o*u*i-c*n*l+t*u*l+o*n*h-t*s*h)*x,e[12]=S*x,e[13]=(c*f*r-p*u*r+p*n*d-t*f*d-c*n*m+t*u*m)*x,e[14]=(p*s*r-o*f*r-p*n*a+t*f*a+o*n*m-t*s*m)*x,e[15]=(o*u*r-c*s*r+c*n*a-t*u*a-o*n*d+t*s*d)*x,this}scale(e){const t=this.elements,n=e.x,r=e.y,i=e.z;return t[0]*=n,t[4]*=r,t[8]*=i,t[1]*=n,t[5]*=r,t[9]*=i,t[2]*=n,t[6]*=r,t[10]*=i,t[3]*=n,t[7]*=r,t[11]*=i,this}getMaxScaleOnAxis(){const e=this.elements,t=e[0]*e[0]+e[1]*e[1]+e[2]*e[2],n=e[4]*e[4]+e[5]*e[5]+e[6]*e[6],r=e[8]*e[8]+e[9]*e[9]+e[10]*e[10];return Math.sqrt(Math.max(t,n,r))}makeTranslation(e,t,n){return this.set(1,0,0,e,0,1,0,t,0,0,1,n,0,0,0,1),this}makeRotationX(e){const t=Math.cos(e),n=Math.sin(e);return this.set(1,0,0,0,0,t,-n,0,0,n,t,0,0,0,0,1),this}makeRotationY(e){const t=Math.cos(e),n=Math.sin(e);return this.set(t,0,n,0,0,1,0,0,-n,0,t,0,0,0,0,1),this}makeRotationZ(e){const t=Math.cos(e),n=Math.sin(e);return this.set(t,-n,0,0,n,t,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(e,t){const n=Math.cos(t),r=Math.sin(t),i=1-n,o=e.x,s=e.y,a=e.z,l=i*o,c=i*s;return this.set(l*o+n,l*s-r*a,l*a+r*s,0,l*s+r*a,c*s+n,c*a-r*o,0,l*a-r*s,c*a+r*o,i*a*a+n,0,0,0,0,1),this}makeScale(e,t,n){return this.set(e,0,0,0,0,t,0,0,0,0,n,0,0,0,0,1),this}makeShear(e,t,n,r,i,o){return this.set(1,n,i,0,e,1,o,0,t,r,1,0,0,0,0,1),this}compose(e,t,n){const r=this.elements,i=t._x,o=t._y,s=t._z,a=t._w,l=i+i,c=o+o,u=s+s,d=i*l,h=i*c,p=i*u,f=o*c,m=o*u,g=s*u,b=a*l,v=a*c,y=a*u,S=n.x,_=n.y,x=n.z;return r[0]=(1-(f+g))*S,r[1]=(h+y)*S,r[2]=(p-v)*S,r[3]=0,r[4]=(h-y)*_,r[5]=(1-(d+g))*_,r[6]=(m+b)*_,r[7]=0,r[8]=(p+v)*x,r[9]=(m-b)*x,r[10]=(1-(d+f))*x,r[11]=0,r[12]=e.x,r[13]=e.y,r[14]=e.z,r[15]=1,this}decompose(e,t,n){const r=this.elements;let i=Lr.set(r[0],r[1],r[2]).length();const o=Lr.set(r[4],r[5],r[6]).length(),s=Lr.set(r[8],r[9],r[10]).length();this.determinant()<0&&(i=-i),e.x=r[12],e.y=r[13],e.z=r[14],Br.copy(this);const a=1/i,l=1/o,c=1/s;return Br.elements[0]*=a,Br.elements[1]*=a,Br.elements[2]*=a,Br.elements[4]*=l,Br.elements[5]*=l,Br.elements[6]*=l,Br.elements[8]*=c,Br.elements[9]*=c,Br.elements[10]*=c,t.setFromRotationMatrix(Br),n.x=i,n.y=o,n.z=s,this}makePerspective(e,t,n,r,i,o){void 0===o&&console.warn("THREE.Matrix4: .makePerspective() has been redefined and has a new signature. Please check the docs.");const s=this.elements,a=2*i/(t-e),l=2*i/(n-r),c=(t+e)/(t-e),u=(n+r)/(n-r),d=-(o+i)/(o-i),h=-2*o*i/(o-i);return s[0]=a,s[4]=0,s[8]=c,s[12]=0,s[1]=0,s[5]=l,s[9]=u,s[13]=0,s[2]=0,s[6]=0,s[10]=d,s[14]=h,s[3]=0,s[7]=0,s[11]=-1,s[15]=0,this}makeOrthographic(e,t,n,r,i,o){const s=this.elements,a=1/(t-e),l=1/(n-r),c=1/(o-i),u=(t+e)*a,d=(n+r)*l,h=(o+i)*c;return s[0]=2*a,s[4]=0,s[8]=0,s[12]=-u,s[1]=0,s[5]=2*l,s[9]=0,s[13]=-d,s[2]=0,s[6]=0,s[10]=-2*c,s[14]=-h,s[3]=0,s[7]=0,s[11]=0,s[15]=1,this}equals(e){const t=this.elements,n=e.elements;for(let e=0;e<16;e++)if(t[e]!==n[e])return!1;return!0}fromArray(e,t=0){for(let n=0;n<16;n++)this.elements[n]=e[n+t];return this}toArray(e=[],t=0){const n=this.elements;return e[t]=n[0],e[t+1]=n[1],e[t+2]=n[2],e[t+3]=n[3],e[t+4]=n[4],e[t+5]=n[5],e[t+6]=n[6],e[t+7]=n[7],e[t+8]=n[8],e[t+9]=n[9],e[t+10]=n[10],e[t+11]=n[11],e[t+12]=n[12],e[t+13]=n[13],e[t+14]=n[14],e[t+15]=n[15],e}}Ir.prototype.isMatrix4=!0;const Lr=new sr,Br=new Ir,zr=new sr(0,0,0),Fr=new sr(1,1,1),Ur=new sr,Qr=new sr,qr=new sr,Gr=new Ir,Hr=new or;class Vr{constructor(e=0,t=0,n=0,r=Vr.DefaultOrder){this._x=e,this._y=t,this._z=n,this._order=r}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get order(){return this._order}set order(e){this._order=e,this._onChangeCallback()}set(e,t,n,r=this._order){return this._x=e,this._y=t,this._z=n,this._order=r,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(e){return this._x=e._x,this._y=e._y,this._z=e._z,this._order=e._order,this._onChangeCallback(),this}setFromRotationMatrix(e,t=this._order,n=!0){const r=e.elements,i=r[0],o=r[4],s=r[8],a=r[1],l=r[5],c=r[9],u=r[2],d=r[6],h=r[10];switch(t){case"XYZ":this._y=Math.asin(xn(s,-1,1)),Math.abs(s)<.9999999?(this._x=Math.atan2(-c,h),this._z=Math.atan2(-o,i)):(this._x=Math.atan2(d,l),this._z=0);break;case"YXZ":this._x=Math.asin(-xn(c,-1,1)),Math.abs(c)<.9999999?(this._y=Math.atan2(s,h),this._z=Math.atan2(a,l)):(this._y=Math.atan2(-u,i),this._z=0);break;case"ZXY":this._x=Math.asin(xn(d,-1,1)),Math.abs(d)<.9999999?(this._y=Math.atan2(-u,h),this._z=Math.atan2(-o,l)):(this._y=0,this._z=Math.atan2(a,i));break;case"ZYX":this._y=Math.asin(-xn(u,-1,1)),Math.abs(u)<.9999999?(this._x=Math.atan2(d,h),this._z=Math.atan2(a,i)):(this._x=0,this._z=Math.atan2(-o,l));break;case"YZX":this._z=Math.asin(xn(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(-c,l),this._y=Math.atan2(-u,i)):(this._x=0,this._y=Math.atan2(s,h));break;case"XZY":this._z=Math.asin(-xn(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(d,l),this._y=Math.atan2(s,i)):(this._x=Math.atan2(-c,h),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+t)}return this._order=t,!0===n&&this._onChangeCallback(),this}setFromQuaternion(e,t,n){return Gr.makeRotationFromQuaternion(e),this.setFromRotationMatrix(Gr,t,n)}setFromVector3(e,t=this._order){return this.set(e.x,e.y,e.z,t)}reorder(e){return Hr.setFromEuler(this),this.setFromQuaternion(Hr,e)}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._order===this._order}fromArray(e){return this._x=e[0],this._y=e[1],this._z=e[2],void 0!==e[3]&&(this._order=e[3]),this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._order,e}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}Vr.prototype.isEuler=!0,Vr.DefaultOrder="XYZ",Vr.RotationOrders=["XYZ","YZX","ZXY","XZY","YXZ","ZYX"];class Wr{constructor(){this.mask=1}set(e){this.mask=(1<>>0}enable(e){this.mask|=1<1){for(let e=0;e1){for(let e=0;e0){r.children=[];for(let t=0;t0){r.animations=[];for(let t=0;t0&&(n.geometries=t),r.length>0&&(n.materials=r),i.length>0&&(n.textures=i),s.length>0&&(n.images=s),a.length>0&&(n.shapes=a),l.length>0&&(n.skeletons=l),c.length>0&&(n.animations=c),u.length>0&&(n.nodes=u)}return n.object=r,n;function o(e){const t=[];for(const n in e){const r=e[n];delete r.metadata,t.push(r)}return t}}clone(e){return(new this.constructor).copy(this,e)}copy(e,t=!0){if(this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.rotation.order=e.rotation.order,this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.userData=JSON.parse(JSON.stringify(e.userData)),!0===t)for(let t=0;t0?r.multiplyScalar(1/Math.sqrt(i)):r.set(0,0,0)}static getBarycoord(e,t,n,r,i){ci.subVectors(r,t),ui.subVectors(n,t),di.subVectors(e,t);const o=ci.dot(ci),s=ci.dot(ui),a=ci.dot(di),l=ui.dot(ui),c=ui.dot(di),u=o*l-s*s;if(0===u)return i.set(-2,-1,-1);const d=1/u,h=(l*a-s*c)*d,p=(o*c-s*a)*d;return i.set(1-h-p,p,h)}static containsPoint(e,t,n,r){return this.getBarycoord(e,t,n,r,hi),hi.x>=0&&hi.y>=0&&hi.x+hi.y<=1}static getUV(e,t,n,r,i,o,s,a){return this.getBarycoord(e,t,n,r,hi),a.set(0,0),a.addScaledVector(i,hi.x),a.addScaledVector(o,hi.y),a.addScaledVector(s,hi.z),a}static isFrontFacing(e,t,n,r){return ci.subVectors(n,t),ui.subVectors(e,t),ci.cross(ui).dot(r)<0}set(e,t,n){return this.a.copy(e),this.b.copy(t),this.c.copy(n),this}setFromPointsAndIndices(e,t,n,r){return this.a.copy(e[t]),this.b.copy(e[n]),this.c.copy(e[r]),this}setFromAttributeAndIndices(e,t,n,r){return this.a.fromBufferAttribute(e,t),this.b.fromBufferAttribute(e,n),this.c.fromBufferAttribute(e,r),this}clone(){return(new this.constructor).copy(this)}copy(e){return this.a.copy(e.a),this.b.copy(e.b),this.c.copy(e.c),this}getArea(){return ci.subVectors(this.c,this.b),ui.subVectors(this.a,this.b),.5*ci.cross(ui).length()}getMidpoint(e){return e.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(e){return yi.getNormal(this.a,this.b,this.c,e)}getPlane(e){return e.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(e,t){return yi.getBarycoord(e,this.a,this.b,this.c,t)}getUV(e,t,n,r,i){return yi.getUV(e,this.a,this.b,this.c,t,n,r,i)}containsPoint(e){return yi.containsPoint(e,this.a,this.b,this.c)}isFrontFacing(e){return yi.isFrontFacing(this.a,this.b,this.c,e)}intersectsBox(e){return e.intersectsTriangle(this)}closestPointToPoint(e,t){const n=this.a,r=this.b,i=this.c;let o,s;pi.subVectors(r,n),fi.subVectors(i,n),gi.subVectors(e,n);const a=pi.dot(gi),l=fi.dot(gi);if(a<=0&&l<=0)return t.copy(n);bi.subVectors(e,r);const c=pi.dot(bi),u=fi.dot(bi);if(c>=0&&u<=c)return t.copy(r);const d=a*u-c*l;if(d<=0&&a>=0&&c<=0)return o=a/(a-c),t.copy(n).addScaledVector(pi,o);vi.subVectors(e,i);const h=pi.dot(vi),p=fi.dot(vi);if(p>=0&&h<=p)return t.copy(i);const f=h*l-a*p;if(f<=0&&l>=0&&p<=0)return s=l/(l-p),t.copy(n).addScaledVector(fi,s);const m=c*p-h*u;if(m<=0&&u-c>=0&&h-p>=0)return mi.subVectors(i,r),s=(u-c)/(u-c+(h-p)),t.copy(r).addScaledVector(mi,s);const g=1/(m+f+d);return o=f*g,s=d*g,t.copy(n).addScaledVector(pi,o).addScaledVector(fi,s)}equals(e){return e.a.equals(this.a)&&e.b.equals(this.b)&&e.c.equals(this.c)}}let Si=0;class _i extends gn{constructor(){super(),Object.defineProperty(this,"id",{value:Si++}),this.uuid=_n(),this.name="",this.type="Material",this.blending=S,this.side=f,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.blendSrc=j,this.blendDst=N,this.blendEquation=O,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.depthFunc=q,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=nn,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=Ut,this.stencilZFail=Ut,this.stencilZPass=Ut,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaToCoverage=!1,this.premultipliedAlpha=!1,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0,this._alphaTest=0}get alphaTest(){return this._alphaTest}set alphaTest(e){this._alphaTest>0!=e>0&&this.version++,this._alphaTest=e}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(e){if(void 0!==e)for(const t in e){const n=e[t];if(void 0===n){console.warn("THREE.Material: '"+t+"' parameter is undefined.");continue}if("shading"===t){console.warn("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead."),this.flatShading=n===b;continue}const r=this[t];void 0!==r?r&&r.isColor?r.set(n):r&&r.isVector3&&n&&n.isVector3?r.copy(n):this[t]=n:console.warn("THREE."+this.type+": '"+t+"' is not a property of this material.")}}toJSON(e){const t=void 0===e||"string"==typeof e;t&&(e={textures:{},images:{}});const n={metadata:{version:4.5,type:"Material",generator:"Material.toJSON"}};function r(e){const t=[];for(const n in e){const r=e[n];delete r.metadata,t.push(r)}return t}if(n.uuid=this.uuid,n.type=this.type,""!==this.name&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),void 0!==this.roughness&&(n.roughness=this.roughness),void 0!==this.metalness&&(n.metalness=this.metalness),void 0!==this.sheen&&(n.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(n.sheenColor=this.sheenColor.getHex()),void 0!==this.sheenRoughness&&(n.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),this.emissiveIntensity&&1!==this.emissiveIntensity&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),void 0!==this.specularIntensity&&(n.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(n.specularColor=this.specularColor.getHex()),void 0!==this.shininess&&(n.shininess=this.shininess),void 0!==this.clearcoat&&(n.clearcoat=this.clearcoat),void 0!==this.clearcoatRoughness&&(n.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(e).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(n.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(e).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(n.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(e).uuid,n.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(e).uuid),this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(e).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(e).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(e).uuid,n.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(n.aoMap=this.aoMap.toJSON(e).uuid,n.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(e).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(e).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(e).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(e).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(e).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(e).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(e).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(n.specularIntensityMap=this.specularIntensityMap.toJSON(e).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(n.specularColorMap=this.specularColorMap.toJSON(e).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(e).uuid,void 0!==this.combine&&(n.combine=this.combine)),void 0!==this.envMapIntensity&&(n.envMapIntensity=this.envMapIntensity),void 0!==this.reflectivity&&(n.reflectivity=this.reflectivity),void 0!==this.refractionRatio&&(n.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(e).uuid),void 0!==this.transmission&&(n.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(n.transmissionMap=this.transmissionMap.toJSON(e).uuid),void 0!==this.thickness&&(n.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(n.thicknessMap=this.thicknessMap.toJSON(e).uuid),void 0!==this.attenuationDistance&&(n.attenuationDistance=this.attenuationDistance),void 0!==this.attenuationColor&&(n.attenuationColor=this.attenuationColor.getHex()),void 0!==this.size&&(n.size=this.size),null!==this.shadowSide&&(n.shadowSide=this.shadowSide),void 0!==this.sizeAttenuation&&(n.sizeAttenuation=this.sizeAttenuation),this.blending!==S&&(n.blending=this.blending),this.side!==f&&(n.side=this.side),this.vertexColors&&(n.vertexColors=!0),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,n.colorWrite=this.colorWrite,n.stencilWrite=this.stencilWrite,n.stencilWriteMask=this.stencilWriteMask,n.stencilFunc=this.stencilFunc,n.stencilRef=this.stencilRef,n.stencilFuncMask=this.stencilFuncMask,n.stencilFail=this.stencilFail,n.stencilZFail=this.stencilZFail,n.stencilZPass=this.stencilZPass,void 0!==this.rotation&&0!==this.rotation&&(n.rotation=this.rotation),!0===this.polygonOffset&&(n.polygonOffset=!0),0!==this.polygonOffsetFactor&&(n.polygonOffsetFactor=this.polygonOffsetFactor),0!==this.polygonOffsetUnits&&(n.polygonOffsetUnits=this.polygonOffsetUnits),void 0!==this.linewidth&&1!==this.linewidth&&(n.linewidth=this.linewidth),void 0!==this.dashSize&&(n.dashSize=this.dashSize),void 0!==this.gapSize&&(n.gapSize=this.gapSize),void 0!==this.scale&&(n.scale=this.scale),!0===this.dithering&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),!0===this.alphaToCoverage&&(n.alphaToCoverage=this.alphaToCoverage),!0===this.premultipliedAlpha&&(n.premultipliedAlpha=this.premultipliedAlpha),!0===this.wireframe&&(n.wireframe=this.wireframe),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),"round"!==this.wireframeLinecap&&(n.wireframeLinecap=this.wireframeLinecap),"round"!==this.wireframeLinejoin&&(n.wireframeLinejoin=this.wireframeLinejoin),!0===this.flatShading&&(n.flatShading=this.flatShading),!1===this.visible&&(n.visible=!1),!1===this.toneMapped&&(n.toneMapped=!1),!1===this.fog&&(n.fog=!1),"{}"!==JSON.stringify(this.userData)&&(n.userData=this.userData),t){const t=r(e.textures),i=r(e.images);t.length>0&&(n.textures=t),i.length>0&&(n.images=i)}return n}clone(){return(new this.constructor).copy(this)}copy(e){this.name=e.name,this.blending=e.blending,this.side=e.side,this.vertexColors=e.vertexColors,this.opacity=e.opacity,this.transparent=e.transparent,this.blendSrc=e.blendSrc,this.blendDst=e.blendDst,this.blendEquation=e.blendEquation,this.blendSrcAlpha=e.blendSrcAlpha,this.blendDstAlpha=e.blendDstAlpha,this.blendEquationAlpha=e.blendEquationAlpha,this.depthFunc=e.depthFunc,this.depthTest=e.depthTest,this.depthWrite=e.depthWrite,this.stencilWriteMask=e.stencilWriteMask,this.stencilFunc=e.stencilFunc,this.stencilRef=e.stencilRef,this.stencilFuncMask=e.stencilFuncMask,this.stencilFail=e.stencilFail,this.stencilZFail=e.stencilZFail,this.stencilZPass=e.stencilZPass,this.stencilWrite=e.stencilWrite;const t=e.clippingPlanes;let n=null;if(null!==t){const e=t.length;n=new Array(e);for(let r=0;r!==e;++r)n[r]=t[r].clone()}return this.clippingPlanes=n,this.clipIntersection=e.clipIntersection,this.clipShadows=e.clipShadows,this.shadowSide=e.shadowSide,this.colorWrite=e.colorWrite,this.precision=e.precision,this.polygonOffset=e.polygonOffset,this.polygonOffsetFactor=e.polygonOffsetFactor,this.polygonOffsetUnits=e.polygonOffsetUnits,this.dithering=e.dithering,this.alphaTest=e.alphaTest,this.alphaToCoverage=e.alphaToCoverage,this.premultipliedAlpha=e.premultipliedAlpha,this.visible=e.visible,this.toneMapped=e.toneMapped,this.userData=JSON.parse(JSON.stringify(e.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(e){!0===e&&this.version++}}_i.prototype.isMaterial=!0,_i.fromType=function(){return null};class xi extends _i{constructor(e){super(),this.type="MeshBasicMaterial",this.color=new Gn(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=X,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}}xi.prototype.isMeshBasicMaterial=!0;const wi=new sr,ki=new Cn;class Oi{constructor(e,t,n){if(Array.isArray(e))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.name="",this.array=e,this.itemSize=t,this.count=void 0!==e?e.length/t:0,this.normalized=!0===n,this.usage=rn,this.updateRange={offset:0,count:-1},this.version=0}onUploadCallback(){}set needsUpdate(e){!0===e&&this.version++}setUsage(e){return this.usage=e,this}copy(e){return this.name=e.name,this.array=new e.array.constructor(e.array),this.itemSize=e.itemSize,this.count=e.count,this.normalized=e.normalized,this.usage=e.usage,this}copyAt(e,t,n){e*=this.itemSize,n*=t.itemSize;for(let r=0,i=this.itemSize;r0&&(e.userData=this.userData),void 0!==this.parameters){const t=this.parameters;for(const n in t)void 0!==t[n]&&(e[n]=t[n]);return e}e.data={attributes:{}};const t=this.index;null!==t&&(e.data.index={type:t.array.constructor.name,array:Array.prototype.slice.call(t.array)});const n=this.attributes;for(const t in n){const r=n[t];e.data.attributes[t]=r.toJSON(e.data)}const r={};let i=!1;for(const t in this.morphAttributes){const n=this.morphAttributes[t],o=[];for(let t=0,r=n.length;t0&&(r[t]=o,i=!0)}i&&(e.data.morphAttributes=r,e.data.morphTargetsRelative=this.morphTargetsRelative);const o=this.groups;o.length>0&&(e.data.groups=JSON.parse(JSON.stringify(o)));const s=this.boundingSphere;return null!==s&&(e.data.boundingSphere={center:s.center.toArray(),radius:s.radius}),e}clone(){return(new this.constructor).copy(this)}copy(e){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const t={};this.name=e.name;const n=e.index;null!==n&&this.setIndex(n.clone(t));const r=e.attributes;for(const e in r){const n=r[e];this.setAttribute(e,n.clone(t))}const i=e.morphAttributes;for(const e in i){const n=[],r=i[e];for(let e=0,i=r.length;e0){const e=t[n[0]];if(void 0!==e){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let t=0,n=e.length;t0&&console.error("THREE.Mesh.updateMorphTargets() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.")}}raycast(e,t){const n=this.geometry,r=this.material,i=this.matrixWorld;if(void 0===r)return;if(null===n.boundingSphere&&n.computeBoundingSphere(),Hi.copy(n.boundingSphere),Hi.applyMatrix4(i),!1===e.ray.intersectsSphere(Hi))return;if(qi.copy(i).invert(),Gi.copy(e.ray).applyMatrix4(qi),null!==n.boundingBox&&!1===Gi.intersectsBox(n.boundingBox))return;let o;if(n.isBufferGeometry){const i=n.index,s=n.attributes.position,a=n.morphAttributes.position,l=n.morphTargetsRelative,c=n.attributes.uv,u=n.attributes.uv2,d=n.groups,h=n.drawRange;if(null!==i)if(Array.isArray(r))for(let n=0,p=d.length;nn.far?null:{distance:c,point:so.clone(),object:e}}(e,t,n,r,Vi,Wi,Xi,oo);if(p){a&&(no.fromBufferAttribute(a,c),ro.fromBufferAttribute(a,u),io.fromBufferAttribute(a,d),p.uv=yi.getUV(oo,Vi,Wi,Xi,no,ro,io,new Cn)),l&&(no.fromBufferAttribute(l,c),ro.fromBufferAttribute(l,u),io.fromBufferAttribute(l,d),p.uv2=yi.getUV(oo,Vi,Wi,Xi,no,ro,io,new Cn));const e={a:c,b:u,c:d,normal:new sr,materialIndex:0};yi.getNormal(Vi,Wi,Xi,e.normal),p.face=e}return p}ao.prototype.isMesh=!0;class co extends Qi{constructor(e=1,t=1,n=1,r=1,i=1,o=1){super(),this.type="BoxGeometry",this.parameters={width:e,height:t,depth:n,widthSegments:r,heightSegments:i,depthSegments:o};const s=this;r=Math.floor(r),i=Math.floor(i),o=Math.floor(o);const a=[],l=[],c=[],u=[];let d=0,h=0;function p(e,t,n,r,i,o,p,f,m,g,b){const v=o/m,y=p/g,S=o/2,_=p/2,x=f/2,w=m+1,k=g+1;let O=0,E=0;const A=new sr;for(let o=0;o0?1:-1,c.push(A.x,A.y,A.z),u.push(a/m),u.push(1-o/g),O+=1}}for(let e=0;e0&&(t.defines=this.defines),t.vertexShader=this.vertexShader,t.fragmentShader=this.fragmentShader;const n={};for(const e in this.extensions)!0===this.extensions[e]&&(n[e]=!0);return Object.keys(n).length>0&&(t.extensions=n),t}}fo.prototype.isShaderMaterial=!0;class mo extends li{constructor(){super(),this.type="Camera",this.matrixWorldInverse=new Ir,this.projectionMatrix=new Ir,this.projectionMatrixInverse=new Ir}copy(e,t){return super.copy(e,t),this.matrixWorldInverse.copy(e.matrixWorldInverse),this.projectionMatrix.copy(e.projectionMatrix),this.projectionMatrixInverse.copy(e.projectionMatrixInverse),this}getWorldDirection(e){this.updateWorldMatrix(!0,!1);const t=this.matrixWorld.elements;return e.set(-t[8],-t[9],-t[10]).normalize()}updateMatrixWorld(e){super.updateMatrixWorld(e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(e,t){super.updateWorldMatrix(e,t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return(new this.constructor).copy(this)}}mo.prototype.isCamera=!0;class go extends mo{constructor(e=50,t=1,n=.1,r=2e3){super(),this.type="PerspectiveCamera",this.fov=e,this.zoom=1,this.near=n,this.far=r,this.focus=10,this.aspect=t,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),this.fov=e.fov,this.zoom=e.zoom,this.near=e.near,this.far=e.far,this.focus=e.focus,this.aspect=e.aspect,this.view=null===e.view?null:Object.assign({},e.view),this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this}setFocalLength(e){const t=.5*this.getFilmHeight()/e;this.fov=2*Sn*Math.atan(t),this.updateProjectionMatrix()}getFocalLength(){const e=Math.tan(.5*yn*this.fov);return.5*this.getFilmHeight()/e}getEffectiveFOV(){return 2*Sn*Math.atan(Math.tan(.5*yn*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}setViewOffset(e,t,n,r,i,o){this.aspect=e/t,null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=n,this.view.offsetY=r,this.view.width=i,this.view.height=o,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const e=this.near;let t=e*Math.tan(.5*yn*this.fov)/this.zoom,n=2*t,r=this.aspect*n,i=-.5*r;const o=this.view;if(null!==this.view&&this.view.enabled){const e=o.fullWidth,s=o.fullHeight;i+=o.offsetX*r/e,t-=o.offsetY*n/s,r*=o.width/e,n*=o.height/s}const s=this.filmOffset;0!==s&&(i+=e*s/this.getFilmWidth()),this.projectionMatrix.makePerspective(i,i+r,t,t-n,e,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){const t=super.toJSON(e);return t.object.fov=this.fov,t.object.zoom=this.zoom,t.object.near=this.near,t.object.far=this.far,t.object.focus=this.focus,t.object.aspect=this.aspect,null!==this.view&&(t.object.view=Object.assign({},this.view)),t.object.filmGauge=this.filmGauge,t.object.filmOffset=this.filmOffset,t}}go.prototype.isPerspectiveCamera=!0;class bo extends li{constructor(e,t,n){if(super(),this.type="CubeCamera",!0!==n.isWebGLCubeRenderTarget)return void console.error("THREE.CubeCamera: The constructor now expects an instance of WebGLCubeRenderTarget as third parameter.");this.renderTarget=n;const r=new go(90,1,e,t);r.layers=this.layers,r.up.set(0,-1,0),r.lookAt(new sr(1,0,0)),this.add(r);const i=new go(90,1,e,t);i.layers=this.layers,i.up.set(0,-1,0),i.lookAt(new sr(-1,0,0)),this.add(i);const o=new go(90,1,e,t);o.layers=this.layers,o.up.set(0,0,1),o.lookAt(new sr(0,1,0)),this.add(o);const s=new go(90,1,e,t);s.layers=this.layers,s.up.set(0,0,-1),s.lookAt(new sr(0,-1,0)),this.add(s);const a=new go(90,1,e,t);a.layers=this.layers,a.up.set(0,-1,0),a.lookAt(new sr(0,0,1)),this.add(a);const l=new go(90,1,e,t);l.layers=this.layers,l.up.set(0,-1,0),l.lookAt(new sr(0,0,-1)),this.add(l)}update(e,t){null===this.parent&&this.updateMatrixWorld();const n=this.renderTarget,[r,i,o,s,a,l]=this.children,c=e.getRenderTarget(),u=e.toneMapping,d=e.xr.enabled;e.toneMapping=J,e.xr.enabled=!1;const h=n.texture.generateMipmaps;n.texture.generateMipmaps=!1,e.setRenderTarget(n,0),e.render(t,r),e.setRenderTarget(n,1),e.render(t,i),e.setRenderTarget(n,2),e.render(t,o),e.setRenderTarget(n,3),e.render(t,s),e.setRenderTarget(n,4),e.render(t,a),n.texture.generateMipmaps=h,e.setRenderTarget(n,5),e.render(t,l),e.setRenderTarget(c),e.toneMapping=u,e.xr.enabled=d,n.texture.needsPMREMUpdate=!0}}class vo extends Zn{constructor(e,t,n,r,i,o,s,a,l,c){super(e=void 0!==e?e:[],t=void 0!==t?t:oe,n,r,i,o,s,a,l,c),this.flipY=!1}get images(){return this.image}set images(e){this.image=e}}vo.prototype.isCubeTexture=!0;class yo extends Kn{constructor(e,t={}){super(e,e,t);const n={width:e,height:e,depth:1},r=[n,n,n,n,n,n];this.texture=new vo(r,t.mapping,t.wrapS,t.wrapT,t.magFilter,t.minFilter,t.format,t.type,t.anisotropy,t.encoding),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=void 0!==t.generateMipmaps&&t.generateMipmaps,this.texture.minFilter=void 0!==t.minFilter?t.minFilter:ve}fromEquirectangularTexture(e,t){this.texture.type=t.type,this.texture.encoding=t.encoding,this.texture.generateMipmaps=t.generateMipmaps,this.texture.minFilter=t.minFilter,this.texture.magFilter=t.magFilter;const n={uniforms:{tEquirect:{value:null}},vertexShader:"\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\n\t\t\t\t\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvWorldDirection = transformDirection( position, modelMatrix );\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\n\t\t\t\t}\n\t\t\t",fragmentShader:"\n\n\t\t\t\tuniform sampler2D tEquirect;\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\t#include \n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec3 direction = normalize( vWorldDirection );\n\n\t\t\t\t\tvec2 sampleUV = equirectUv( direction );\n\n\t\t\t\t\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\n\t\t\t\t}\n\t\t\t"},r=new co(5,5,5),i=new fo({name:"CubemapFromEquirect",uniforms:uo(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:m,blending:y});i.uniforms.tEquirect.value=t;const o=new ao(r,i),s=t.minFilter;t.minFilter===_e&&(t.minFilter=ve);return new bo(1,10,this).update(e,o),t.minFilter=s,o.geometry.dispose(),o.material.dispose(),this}clear(e,t,n,r){const i=e.getRenderTarget();for(let i=0;i<6;i++)e.setRenderTarget(this,i),e.clear(t,n,r);e.setRenderTarget(i)}}yo.prototype.isWebGLCubeRenderTarget=!0;const So=new sr,_o=new sr,xo=new Mn;class wo{constructor(e=new sr(1,0,0),t=0){this.normal=e,this.constant=t}set(e,t){return this.normal.copy(e),this.constant=t,this}setComponents(e,t,n,r){return this.normal.set(e,t,n),this.constant=r,this}setFromNormalAndCoplanarPoint(e,t){return this.normal.copy(e),this.constant=-t.dot(this.normal),this}setFromCoplanarPoints(e,t,n){const r=So.subVectors(n,t).cross(_o.subVectors(e,t)).normalize();return this.setFromNormalAndCoplanarPoint(r,e),this}copy(e){return this.normal.copy(e.normal),this.constant=e.constant,this}normalize(){const e=1/this.normal.length();return this.normal.multiplyScalar(e),this.constant*=e,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(e){return this.normal.dot(e)+this.constant}distanceToSphere(e){return this.distanceToPoint(e.center)-e.radius}projectPoint(e,t){return t.copy(this.normal).multiplyScalar(-this.distanceToPoint(e)).add(e)}intersectLine(e,t){const n=e.delta(So),r=this.normal.dot(n);if(0===r)return 0===this.distanceToPoint(e.start)?t.copy(e.start):null;const i=-(e.start.dot(this.normal)+this.constant)/r;return i<0||i>1?null:t.copy(n).multiplyScalar(i).add(e.start)}intersectsLine(e){const t=this.distanceToPoint(e.start),n=this.distanceToPoint(e.end);return t<0&&n>0||n<0&&t>0}intersectsBox(e){return e.intersectsPlane(this)}intersectsSphere(e){return e.intersectsPlane(this)}coplanarPoint(e){return e.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(e,t){const n=t||xo.getNormalMatrix(e),r=this.coplanarPoint(So).applyMatrix4(e),i=this.normal.applyMatrix3(n).normalize();return this.constant=-r.dot(i),this}translate(e){return this.constant-=e.dot(this.normal),this}equals(e){return e.normal.equals(this.normal)&&e.constant===this.constant}clone(){return(new this.constructor).copy(this)}}wo.prototype.isPlane=!0;const ko=new Tr,Oo=new sr;class Eo{constructor(e=new wo,t=new wo,n=new wo,r=new wo,i=new wo,o=new wo){this.planes=[e,t,n,r,i,o]}set(e,t,n,r,i,o){const s=this.planes;return s[0].copy(e),s[1].copy(t),s[2].copy(n),s[3].copy(r),s[4].copy(i),s[5].copy(o),this}copy(e){const t=this.planes;for(let n=0;n<6;n++)t[n].copy(e.planes[n]);return this}setFromProjectionMatrix(e){const t=this.planes,n=e.elements,r=n[0],i=n[1],o=n[2],s=n[3],a=n[4],l=n[5],c=n[6],u=n[7],d=n[8],h=n[9],p=n[10],f=n[11],m=n[12],g=n[13],b=n[14],v=n[15];return t[0].setComponents(s-r,u-a,f-d,v-m).normalize(),t[1].setComponents(s+r,u+a,f+d,v+m).normalize(),t[2].setComponents(s+i,u+l,f+h,v+g).normalize(),t[3].setComponents(s-i,u-l,f-h,v-g).normalize(),t[4].setComponents(s-o,u-c,f-p,v-b).normalize(),t[5].setComponents(s+o,u+c,f+p,v+b).normalize(),this}intersectsObject(e){const t=e.geometry;return null===t.boundingSphere&&t.computeBoundingSphere(),ko.copy(t.boundingSphere).applyMatrix4(e.matrixWorld),this.intersectsSphere(ko)}intersectsSprite(e){return ko.center.set(0,0,0),ko.radius=.7071067811865476,ko.applyMatrix4(e.matrixWorld),this.intersectsSphere(ko)}intersectsSphere(e){const t=this.planes,n=e.center,r=-e.radius;for(let e=0;e<6;e++){if(t[e].distanceToPoint(n)0?e.max.x:e.min.x,Oo.y=r.normal.y>0?e.max.y:e.min.y,Oo.z=r.normal.z>0?e.max.z:e.min.z,r.distanceToPoint(Oo)<0)return!1}return!0}containsPoint(e){const t=this.planes;for(let n=0;n<6;n++)if(t[n].distanceToPoint(e)<0)return!1;return!0}clone(){return(new this.constructor).copy(this)}}function Ao(){let e=null,t=!1,n=null,r=null;function i(t,o){n(t,o),r=e.requestAnimationFrame(i)}return{start:function(){!0!==t&&null!==n&&(r=e.requestAnimationFrame(i),t=!0)},stop:function(){e.cancelAnimationFrame(r),t=!1},setAnimationLoop:function(e){n=e},setContext:function(t){e=t}}}function To(e,t){const n=t.isWebGL2,r=new WeakMap;return{get:function(e){return e.isInterleavedBufferAttribute&&(e=e.data),r.get(e)},remove:function(t){t.isInterleavedBufferAttribute&&(t=t.data);const n=r.get(t);n&&(e.deleteBuffer(n.buffer),r.delete(t))},update:function(t,i){if(t.isGLBufferAttribute){const e=r.get(t);return void((!e||e.version 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\nfloat G_BlinnPhong_Implicit( ) {\n\treturn 0.25;\n}\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\n\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\n}\nvec3 BRDF_BlinnPhong( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float shininess ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, 1.0, dotVH );\n\tfloat G = G_BlinnPhong_Implicit( );\n\tfloat D = D_BlinnPhong( shininess, dotNH );\n\treturn F * ( G * D );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie( float roughness, float dotNH ) {\n\tfloat alpha = pow2( roughness );\n\tfloat invAlpha = 1.0 / alpha;\n\tfloat cos2h = dotNH * dotNH;\n\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\n\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\n}\nfloat V_Neubelt( float dotNV, float dotNL ) {\n\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\n}\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat D = D_Charlie( sheenRoughness, dotNH );\n\tfloat V = V_Neubelt( dotNV, dotNL );\n\treturn sheenColor * ( D * V );\n}\n#endif",bumpmap_pars_fragment:"#ifdef USE_BUMPMAP\n\tuniform sampler2D bumpMap;\n\tuniform float bumpScale;\n\tvec2 dHdxy_fwd() {\n\t\tvec2 dSTdx = dFdx( vUv );\n\t\tvec2 dSTdy = dFdy( vUv );\n\t\tfloat Hll = bumpScale * texture2D( bumpMap, vUv ).x;\n\t\tfloat dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll;\n\t\tfloat dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll;\n\t\treturn vec2( dBx, dBy );\n\t}\n\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) {\n\t\tvec3 vSigmaX = vec3( dFdx( surf_pos.x ), dFdx( surf_pos.y ), dFdx( surf_pos.z ) );\n\t\tvec3 vSigmaY = vec3( dFdy( surf_pos.x ), dFdy( surf_pos.y ), dFdy( surf_pos.z ) );\n\t\tvec3 vN = surf_norm;\n\t\tvec3 R1 = cross( vSigmaY, vN );\n\t\tvec3 R2 = cross( vN, vSigmaX );\n\t\tfloat fDet = dot( vSigmaX, R1 ) * faceDirection;\n\t\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\n\t\treturn normalize( abs( fDet ) * surf_norm - vGrad );\n\t}\n#endif",clipping_planes_fragment:"#if NUM_CLIPPING_PLANES > 0\n\tvec4 plane;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\tplane = clippingPlanes[ i ];\n\t\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\n\t}\n\t#pragma unroll_loop_end\n\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\tbool clipped = true;\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t\tif ( clipped ) discard;\n\t#endif\n#endif",clipping_planes_pars_fragment:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif",clipping_planes_pars_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n#endif",clipping_planes_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvClipPosition = - mvPosition.xyz;\n#endif",color_fragment:"#if defined( USE_COLOR_ALPHA )\n\tdiffuseColor *= vColor;\n#elif defined( USE_COLOR )\n\tdiffuseColor.rgb *= vColor;\n#endif",color_pars_fragment:"#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR )\n\tvarying vec3 vColor;\n#endif",color_pars_vertex:"#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvarying vec3 vColor;\n#endif",color_vertex:"#if defined( USE_COLOR_ALPHA )\n\tvColor = vec4( 1.0 );\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvColor = vec3( 1.0 );\n#endif\n#ifdef USE_COLOR\n\tvColor *= color;\n#endif\n#ifdef USE_INSTANCING_COLOR\n\tvColor.xyz *= instanceColor.xyz;\n#endif",common:"#define PI 3.141592653589793\n#define PI2 6.283185307179586\n#define PI_HALF 1.5707963267948966\n#define RECIPROCAL_PI 0.3183098861837907\n#define RECIPROCAL_PI2 0.15915494309189535\n#define EPSILON 1e-6\n#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\n#define whiteComplement( a ) ( 1.0 - saturate( a ) )\nfloat pow2( const in float x ) { return x*x; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\nfloat max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }\nfloat average( const in vec3 color ) { return dot( color, vec3( 0.3333 ) ); }\nhighp float rand( const in vec2 uv ) {\n\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\n\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n\treturn fract( sin( sn ) * c );\n}\n#ifdef HIGH_PRECISION\n\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\n#else\n\tfloat precisionSafeLength( vec3 v ) {\n\t\tfloat maxComponent = max3( abs( v ) );\n\t\treturn length( v / maxComponent ) * maxComponent;\n\t}\n#endif\nstruct IncidentLight {\n\tvec3 color;\n\tvec3 direction;\n\tbool visible;\n};\nstruct ReflectedLight {\n\tvec3 directDiffuse;\n\tvec3 directSpecular;\n\tvec3 indirectDiffuse;\n\tvec3 indirectSpecular;\n};\nstruct GeometricContext {\n\tvec3 position;\n\tvec3 normal;\n\tvec3 viewDir;\n#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal;\n#endif\n};\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n}\nmat3 transposeMat3( const in mat3 m ) {\n\tmat3 tmp;\n\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n\treturn tmp;\n}\nfloat linearToRelativeLuminance( const in vec3 color ) {\n\tvec3 weights = vec3( 0.2126, 0.7152, 0.0722 );\n\treturn dot( weights, color.rgb );\n}\nbool isPerspectiveMatrix( mat4 m ) {\n\treturn m[ 2 ][ 3 ] == - 1.0;\n}\nvec2 equirectUv( in vec3 dir ) {\n\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\n\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\treturn vec2( u, v );\n}",cube_uv_reflection_fragment:"#ifdef ENVMAP_TYPE_CUBE_UV\n\t#define cubeUV_minMipLevel 4.0\n\t#define cubeUV_minTileSize 16.0\n\tfloat getFace( vec3 direction ) {\n\t\tvec3 absDirection = abs( direction );\n\t\tfloat face = - 1.0;\n\t\tif ( absDirection.x > absDirection.z ) {\n\t\t\tif ( absDirection.x > absDirection.y )\n\t\t\t\tface = direction.x > 0.0 ? 0.0 : 3.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t} else {\n\t\t\tif ( absDirection.z > absDirection.y )\n\t\t\t\tface = direction.z > 0.0 ? 2.0 : 5.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t}\n\t\treturn face;\n\t}\n\tvec2 getUV( vec3 direction, float face ) {\n\t\tvec2 uv;\n\t\tif ( face == 0.0 ) {\n\t\t\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 1.0 ) {\n\t\t\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\n\t\t} else if ( face == 2.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\n\t\t} else if ( face == 3.0 ) {\n\t\t\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 4.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\n\t\t} else {\n\t\t\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\n\t\t}\n\t\treturn 0.5 * ( uv + 1.0 );\n\t}\n\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\n\t\tfloat face = getFace( direction );\n\t\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\n\t\tmipInt = max( mipInt, cubeUV_minMipLevel );\n\t\tfloat faceSize = exp2( mipInt );\n\t\tvec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0;\n\t\tif ( face > 2.0 ) {\n\t\t\tuv.y += faceSize;\n\t\t\tface -= 3.0;\n\t\t}\n\t\tuv.x += face * faceSize;\n\t\tuv.x += filterInt * 3.0 * cubeUV_minTileSize;\n\t\tuv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );\n\t\tuv.x *= CUBEUV_TEXEL_WIDTH;\n\t\tuv.y *= CUBEUV_TEXEL_HEIGHT;\n\t\t#ifdef texture2DGradEXT\n\t\t\treturn texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb;\n\t\t#else\n\t\t\treturn texture2D( envMap, uv ).rgb;\n\t\t#endif\n\t}\n\t#define r0 1.0\n\t#define v0 0.339\n\t#define m0 - 2.0\n\t#define r1 0.8\n\t#define v1 0.276\n\t#define m1 - 1.0\n\t#define r4 0.4\n\t#define v4 0.046\n\t#define m4 2.0\n\t#define r5 0.305\n\t#define v5 0.016\n\t#define m5 3.0\n\t#define r6 0.21\n\t#define v6 0.0038\n\t#define m6 4.0\n\tfloat roughnessToMip( float roughness ) {\n\t\tfloat mip = 0.0;\n\t\tif ( roughness >= r1 ) {\n\t\t\tmip = ( r0 - roughness ) * ( m1 - m0 ) / ( r0 - r1 ) + m0;\n\t\t} else if ( roughness >= r4 ) {\n\t\t\tmip = ( r1 - roughness ) * ( m4 - m1 ) / ( r1 - r4 ) + m1;\n\t\t} else if ( roughness >= r5 ) {\n\t\t\tmip = ( r4 - roughness ) * ( m5 - m4 ) / ( r4 - r5 ) + m4;\n\t\t} else if ( roughness >= r6 ) {\n\t\t\tmip = ( r5 - roughness ) * ( m6 - m5 ) / ( r5 - r6 ) + m5;\n\t\t} else {\n\t\t\tmip = - 2.0 * log2( 1.16 * roughness );\t\t}\n\t\treturn mip;\n\t}\n\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\n\t\tfloat mip = clamp( roughnessToMip( roughness ), m0, CUBEUV_MAX_MIP );\n\t\tfloat mipF = fract( mip );\n\t\tfloat mipInt = floor( mip );\n\t\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\n\t\tif ( mipF == 0.0 ) {\n\t\t\treturn vec4( color0, 1.0 );\n\t\t} else {\n\t\t\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\n\t\t\treturn vec4( mix( color0, color1, mipF ), 1.0 );\n\t\t}\n\t}\n#endif",defaultnormal_vertex:"vec3 transformedNormal = objectNormal;\n#ifdef USE_INSTANCING\n\tmat3 m = mat3( instanceMatrix );\n\ttransformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) );\n\ttransformedNormal = m * transformedNormal;\n#endif\ntransformedNormal = normalMatrix * transformedNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal = - transformedNormal;\n#endif\n#ifdef USE_TANGENT\n\tvec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#ifdef FLIP_SIDED\n\t\ttransformedTangent = - transformedTangent;\n\t#endif\n#endif",displacementmap_pars_vertex:"#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif",displacementmap_vertex:"#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vUv ).x * displacementScale + displacementBias );\n#endif",emissivemap_fragment:"#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vUv );\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif",emissivemap_pars_fragment:"#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif",encodings_fragment:"gl_FragColor = linearToOutputTexel( gl_FragColor );",encodings_pars_fragment:"vec4 LinearToLinear( in vec4 value ) {\n\treturn value;\n}\nvec4 LinearTosRGB( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\n}",envmap_fragment:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvec3 cameraToFrag;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\n\t\t#endif\n\t#else\n\t\tvec3 reflectVec = vReflect;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\tvec4 envColor = textureCubeUV( envMap, reflectVec, 0.0 );\n\t#else\n\t\tvec4 envColor = vec4( 0.0 );\n\t#endif\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\n\t#endif\n#endif",envmap_common_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float envMapIntensity;\n\tuniform float flipEnvMap;\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\t\n#endif",envmap_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float reflectivity;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\tvarying vec3 vWorldPosition;\n\t\tuniform float refractionRatio;\n\t#else\n\t\tvarying vec3 vReflect;\n\t#endif\n#endif",envmap_pars_vertex:"#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) ||defined( PHONG )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\t\n\t\tvarying vec3 vWorldPosition;\n\t#else\n\t\tvarying vec3 vReflect;\n\t\tuniform float refractionRatio;\n\t#endif\n#endif",envmap_physical_pars_fragment:"#if defined( USE_ENVMAP )\n\tvec3 getIBLIrradiance( const in vec3 normal ) {\n\t\t#if defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\n\t\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\n\t\t#if defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 reflectVec = reflect( - viewDir, normal );\n\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\n\t\t\treturn envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n#endif",envmap_vertex:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvWorldPosition = worldPosition.xyz;\n\t#else\n\t\tvec3 cameraToVertex;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvReflect = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#endif\n#endif",fog_vertex:"#ifdef USE_FOG\n\tvFogDepth = - mvPosition.z;\n#endif",fog_pars_vertex:"#ifdef USE_FOG\n\tvarying float vFogDepth;\n#endif",fog_fragment:"#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, vFogDepth );\n\t#endif\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif",fog_pars_fragment:"#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\tvarying float vFogDepth;\n\t#ifdef FOG_EXP2\n\t\tuniform float fogDensity;\n\t#else\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n#endif",gradientmap_pars_fragment:"#ifdef USE_GRADIENTMAP\n\tuniform sampler2D gradientMap;\n#endif\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n\tfloat dotNL = dot( normal, lightDirection );\n\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n\t#ifdef USE_GRADIENTMAP\n\t\treturn vec3( texture2D( gradientMap, coord ).r );\n\t#else\n\t\treturn ( coord.x < 0.7 ) ? vec3( 0.7 ) : vec3( 1.0 );\n\t#endif\n}",lightmap_fragment:"#ifdef USE_LIGHTMAP\n\tvec4 lightMapTexel = texture2D( lightMap, vUv2 );\n\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\treflectedLight.indirectDiffuse += lightMapIrradiance;\n#endif",lightmap_pars_fragment:"#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif",lights_lambert_vertex:"vec3 diffuse = vec3( 1.0 );\nGeometricContext geometry;\ngeometry.position = mvPosition.xyz;\ngeometry.normal = normalize( transformedNormal );\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( -mvPosition.xyz );\nGeometricContext backGeometry;\nbackGeometry.position = geometry.position;\nbackGeometry.normal = -geometry.normal;\nbackGeometry.viewDir = geometry.viewDir;\nvLightFront = vec3( 0.0 );\nvIndirectFront = vec3( 0.0 );\n#ifdef DOUBLE_SIDED\n\tvLightBack = vec3( 0.0 );\n\tvIndirectBack = vec3( 0.0 );\n#endif\nIncidentLight directLight;\nfloat dotNL;\nvec3 directLightColor_Diffuse;\nvIndirectFront += getAmbientLightIrradiance( ambientLightColor );\nvIndirectFront += getLightProbeIrradiance( lightProbe, geometry.normal );\n#ifdef DOUBLE_SIDED\n\tvIndirectBack += getAmbientLightIrradiance( ambientLightColor );\n\tvIndirectBack += getLightProbeIrradiance( lightProbe, backGeometry.normal );\n#endif\n#if NUM_POINT_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tgetPointLightInfo( pointLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( - dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tgetSpotLightInfo( spotLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( - dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if NUM_DIR_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tgetDirectionalLightInfo( directionalLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( - dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\tvIndirectFront += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal );\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvIndirectBack += getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry.normal );\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif",lights_pars_begin:"uniform bool receiveShadow;\nuniform vec3 ambientLightColor;\nuniform vec3 lightProbe[ 9 ];\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\n\tfloat x = normal.x, y = normal.y, z = normal.z;\n\tvec3 result = shCoefficients[ 0 ] * 0.886227;\n\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\n\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\n\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\n\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\n\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\n\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\n\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\n\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\n\treturn result;\n}\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\n\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\n\treturn irradiance;\n}\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\treturn irradiance;\n}\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n\t#if defined ( PHYSICALLY_CORRECT_LIGHTS )\n\t\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\t\tif ( cutoffDistance > 0.0 ) {\n\t\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t\t}\n\t\treturn distanceFalloff;\n\t#else\n\t\tif ( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\n\t\t\treturn pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent );\n\t\t}\n\t\treturn 1.0;\n\t#endif\n}\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\n\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalLightInfo( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tlight.color = directionalLight.color;\n\t\tlight.direction = directionalLight.direction;\n\t\tlight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointLightInfo( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = pointLight.position - geometry.position;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tlight.color = pointLight.color;\n\t\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\n\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotLightInfo( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = spotLight.position - geometry.position;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat angleCos = dot( light.direction, spotLight.direction );\n\t\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\tif ( spotAttenuation > 0.0 ) {\n\t\t\tfloat lightDistance = length( lVector );\n\t\t\tlight.color = spotLight.color * spotAttenuation;\n\t\t\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t\t} else {\n\t\t\tlight.color = vec3( 0.0 );\n\t\t\tlight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltc_1;\tuniform sampler2D ltc_2;\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\n\t\tfloat dotNL = dot( normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\treturn irradiance;\n\t}\n#endif",lights_toon_fragment:"ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;",lights_toon_pars_fragment:"varying vec3 vViewPosition;\nstruct ToonMaterial {\n\tvec3 diffuseColor;\n};\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\tvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Toon\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Toon\n#define Material_LightProbeLOD( material )\t(0)",lights_phong_fragment:"BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;",lights_phong_pars_fragment:"varying vec3 vViewPosition;\nstruct BlinnPhongMaterial {\n\tvec3 diffuseColor;\n\tvec3 specularColor;\n\tfloat specularShininess;\n\tfloat specularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong\n#define Material_LightProbeLOD( material )\t(0)",lights_physical_fragment:"PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\nmaterial.roughness = min( material.roughness, 1.0 );\n#ifdef IOR\n\t#ifdef SPECULAR\n\t\tfloat specularIntensityFactor = specularIntensity;\n\t\tvec3 specularColorFactor = specularColor;\n\t\t#ifdef USE_SPECULARINTENSITYMAP\n\t\t\tspecularIntensityFactor *= texture2D( specularIntensityMap, vUv ).a;\n\t\t#endif\n\t\t#ifdef USE_SPECULARCOLORMAP\n\t\t\tspecularColorFactor *= texture2D( specularColorMap, vUv ).rgb;\n\t\t#endif\n\t\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\n\t#else\n\t\tfloat specularIntensityFactor = 1.0;\n\t\tvec3 specularColorFactor = vec3( 1.0 );\n\t\tmaterial.specularF90 = 1.0;\n\t#endif\n\tmaterial.specularColor = mix( min( pow2( ( ior - 1.0 ) / ( ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\n\tmaterial.specularF90 = 1.0;\n#endif\n#ifdef USE_CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\n\tmaterial.clearcoatF0 = vec3( 0.04 );\n\tmaterial.clearcoatF90 = 1.0;\n\t#ifdef USE_CLEARCOATMAP\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vUv ).y;\n\t#endif\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n\tmaterial.clearcoatRoughness += geometryRoughness;\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheenColor;\n\t#ifdef USE_SHEENCOLORMAP\n\t\tmaterial.sheenColor *= texture2D( sheenColorMap, vUv ).rgb;\n\t#endif\n\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\n\t#ifdef USE_SHEENROUGHNESSMAP\n\t\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vUv ).a;\n\t#endif\n#endif",lights_physical_pars_fragment:"struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat roughness;\n\tvec3 specularColor;\n\tfloat specularF90;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat clearcoat;\n\t\tfloat clearcoatRoughness;\n\t\tvec3 clearcoatF0;\n\t\tfloat clearcoatF90;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tvec3 sheenColor;\n\t\tfloat sheenRoughness;\n\t#endif\n};\nvec3 clearcoatSpecular = vec3( 0.0 );\nvec3 sheenSpecular = vec3( 0.0 );\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat r2 = roughness * roughness;\n\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\n\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\n\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\n\treturn saturate( DG * RECIPROCAL_PI );\n}\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\n\treturn fab;\n}\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\treturn specularColor * fab.x + specularF90 * fab.y;\n}\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\tvec3 FssEss = specularColor * fab.x + specularF90 * fab.y;\n\tfloat Ess = fab.x + fab.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = specularColor + ( 1.0 - specularColor ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometry.normal;\n\t\tvec3 viewDir = geometry.viewDir;\n\t\tvec3 position = geometry.position;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.roughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3( 0, 1, 0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNLcc = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = dotNLcc * directLight.color;\n\t\tclearcoatSpecular += ccIrradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.clearcoatNormal, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * BRDF_Sheen( directLight.direction, geometry.viewDir, geometry.normal, material.sheenColor, material.sheenRoughness );\n\t#endif\n\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularF90, material.roughness );\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatSpecular += clearcoatRadiance * EnvironmentBRDF( geometry.clearcoatNormal, geometry.viewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * material.sheenColor * IBLSheenBRDF( geometry.normal, geometry.viewDir, material.sheenRoughness );\n\t#endif\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\tcomputeMultiscattering( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - ( singleScattering + multiScattering ) );\n\treflectedLight.indirectSpecular += radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}",lights_fragment_begin:"\nGeometricContext geometry;\ngeometry.position = - vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\n#ifdef USE_CLEARCOAT\n\tgeometry.clearcoatNormal = clearcoatNormal;\n#endif\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointLightInfo( pointLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n\t\tpointLightShadow = pointLightShadows[ i ];\n\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotLightInfo( spotLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\tspotLightShadow = spotLightShadows[ i ];\n\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalLightInfo( directionalLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n\t\tdirectionalLightShadow = directionalLightShadows[ i ];\n\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 iblIrradiance = vec3( 0.0 );\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\tirradiance += getLightProbeIrradiance( lightProbe, geometry.normal );\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal );\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearcoatRadiance = vec3( 0.0 );\n#endif",lights_fragment_maps:"#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vUv2 );\n\t\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getIBLIrradiance( geometry.normal );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\tradiance += getIBLRadiance( geometry.viewDir, geometry.normal, material.roughness );\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatRadiance += getIBLRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness );\n\t#endif\n#endif",lights_fragment_end:"#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight );\n#endif",logdepthbuf_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif",logdepthbuf_pars_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tuniform float logDepthBufFC;\n\tvarying float vFragDepth;\n\tvarying float vIsPerspective;\n#endif",logdepthbuf_pars_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t\tvarying float vIsPerspective;\n\t#else\n\t\tuniform float logDepthBufFC;\n\t#endif\n#endif",logdepthbuf_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvFragDepth = 1.0 + gl_Position.w;\n\t\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\n\t#else\n\t\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\n\t\t\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\n\t\t\tgl_Position.z *= gl_Position.w;\n\t\t}\n\t#endif\n#endif",map_fragment:"#ifdef USE_MAP\n\tvec4 sampledDiffuseColor = texture2D( map, vUv );\n\t#ifdef DECODE_VIDEO_TEXTURE\n\t\tsampledDiffuseColor = vec4( mix( pow( sampledDiffuseColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), sampledDiffuseColor.rgb * 0.0773993808, vec3( lessThanEqual( sampledDiffuseColor.rgb, vec3( 0.04045 ) ) ) ), sampledDiffuseColor.w );\n\t#endif\n\tdiffuseColor *= sampledDiffuseColor;\n#endif",map_pars_fragment:"#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif",map_particle_fragment:"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n#endif\n#ifdef USE_MAP\n\tdiffuseColor *= texture2D( map, uv );\n#endif\n#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\n#endif",map_particle_pars_fragment:"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\tuniform mat3 uvTransform;\n#endif\n#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif",metalnessmap_fragment:"float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vUv );\n\tmetalnessFactor *= texelMetalness.b;\n#endif",metalnessmap_pars_fragment:"#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif",morphcolor_vertex:"#if defined( USE_MORPHCOLORS ) && defined( MORPHTARGETS_TEXTURE )\n\tvColor *= morphTargetBaseInfluence;\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t#if defined( USE_COLOR_ALPHA )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];\n\t\t#elif defined( USE_COLOR )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ];\n\t\t#endif\n\t}\n#endif",morphnormal_vertex:"#ifdef USE_MORPHNORMALS\n\tobjectNormal *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\n\t\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\n\t\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\n\t\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\n\t#endif\n#endif",morphtarget_pars_vertex:"#ifdef USE_MORPHTARGETS\n\tuniform float morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tuniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\n\t\tuniform sampler2DArray morphTargetsTexture;\n\t\tuniform ivec2 morphTargetsTextureSize;\n\t\tvec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {\n\t\t\tint texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;\n\t\t\tint y = texelIndex / morphTargetsTextureSize.x;\n\t\t\tint x = texelIndex - y * morphTargetsTextureSize.x;\n\t\t\tivec3 morphUV = ivec3( x, y, morphTargetIndex );\n\t\t\treturn texelFetch( morphTargetsTexture, morphUV, 0 );\n\t\t}\n\t#else\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\tuniform float morphTargetInfluences[ 8 ];\n\t\t#else\n\t\t\tuniform float morphTargetInfluences[ 4 ];\n\t\t#endif\n\t#endif\n#endif",morphtarget_vertex:"#ifdef USE_MORPHTARGETS\n\ttransformed *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\n\t\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\n\t\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\n\t\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\n\t\t\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\n\t\t\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\n\t\t\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\n\t\t#endif\n\t#endif\n#endif",normal_fragment_begin:"float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\n#ifdef FLAT_SHADED\n\tvec3 fdx = vec3( dFdx( vViewPosition.x ), dFdx( vViewPosition.y ), dFdx( vViewPosition.z ) );\n\tvec3 fdy = vec3( dFdy( vViewPosition.x ), dFdy( vViewPosition.y ), dFdy( vViewPosition.z ) );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * faceDirection;\n\t#endif\n\t#ifdef USE_TANGENT\n\t\tvec3 tangent = normalize( vTangent );\n\t\tvec3 bitangent = normalize( vBitangent );\n\t\t#ifdef DOUBLE_SIDED\n\t\t\ttangent = tangent * faceDirection;\n\t\t\tbitangent = bitangent * faceDirection;\n\t\t#endif\n\t\t#if defined( TANGENTSPACE_NORMALMAP ) || defined( USE_CLEARCOAT_NORMALMAP )\n\t\t\tmat3 vTBN = mat3( tangent, bitangent, normal );\n\t\t#endif\n\t#endif\n#endif\nvec3 geometryNormal = normal;",normal_fragment_maps:"#ifdef OBJECTSPACE_NORMALMAP\n\tnormal = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\t#ifdef FLIP_SIDED\n\t\tnormal = - normal;\n\t#endif\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * faceDirection;\n\t#endif\n\tnormal = normalize( normalMatrix * normal );\n#elif defined( TANGENTSPACE_NORMALMAP )\n\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\tmapN.xy *= normalScale;\n\t#ifdef USE_TANGENT\n\t\tnormal = normalize( vTBN * mapN );\n\t#else\n\t\tnormal = perturbNormal2Arb( - vViewPosition, normal, mapN, faceDirection );\n\t#endif\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\n#endif",normal_pars_fragment:"#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif",normal_pars_vertex:"#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif",normal_vertex:"#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif",normalmap_pars_fragment:"#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef OBJECTSPACE_NORMALMAP\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( TANGENTSPACE_NORMALMAP ) || defined ( USE_CLEARCOAT_NORMALMAP ) )\n\tvec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec3 mapN, float faceDirection ) {\n\t\tvec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );\n\t\tvec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );\n\t\tvec2 st0 = dFdx( vUv.st );\n\t\tvec2 st1 = dFdy( vUv.st );\n\t\tvec3 N = surf_norm;\n\t\tvec3 q1perp = cross( q1, N );\n\t\tvec3 q0perp = cross( N, q0 );\n\t\tvec3 T = q1perp * st0.x + q0perp * st1.x;\n\t\tvec3 B = q1perp * st0.y + q0perp * st1.y;\n\t\tfloat det = max( dot( T, T ), dot( B, B ) );\n\t\tfloat scale = ( det == 0.0 ) ? 0.0 : faceDirection * inversesqrt( det );\n\t\treturn normalize( T * ( mapN.x * scale ) + B * ( mapN.y * scale ) + N * mapN.z );\n\t}\n#endif",clearcoat_normal_fragment_begin:"#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal = geometryNormal;\n#endif",clearcoat_normal_fragment_maps:"#ifdef USE_CLEARCOAT_NORMALMAP\n\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vUv ).xyz * 2.0 - 1.0;\n\tclearcoatMapN.xy *= clearcoatNormalScale;\n\t#ifdef USE_TANGENT\n\t\tclearcoatNormal = normalize( vTBN * clearcoatMapN );\n\t#else\n\t\tclearcoatNormal = perturbNormal2Arb( - vViewPosition, clearcoatNormal, clearcoatMapN, faceDirection );\n\t#endif\n#endif",clearcoat_pars_fragment:"#ifdef USE_CLEARCOATMAP\n\tuniform sampler2D clearcoatMap;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform sampler2D clearcoatRoughnessMap;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform sampler2D clearcoatNormalMap;\n\tuniform vec2 clearcoatNormalScale;\n#endif",output_fragment:"#ifdef OPAQUE\ndiffuseColor.a = 1.0;\n#endif\n#ifdef USE_TRANSMISSION\ndiffuseColor.a *= transmissionAlpha + 0.1;\n#endif\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );",packing:"vec3 packNormalToRGB( const in vec3 normal ) {\n\treturn normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n\treturn 2.0 * rgb.xyz - 1.0;\n}\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\nconst float ShiftRight8 = 1. / 256.;\nvec4 packDepthToRGBA( const in float v ) {\n\tvec4 r = vec4( fract( v * PackFactors ), v );\n\tr.yzw -= r.xyz * ShiftRight8;\treturn r * PackUpscale;\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n\treturn dot( v, UnpackFactors );\n}\nvec4 pack2HalfToRGBA( vec2 v ) {\n\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );\n\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );\n}\nvec2 unpackRGBATo2Half( vec4 v ) {\n\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\n}\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( viewZ + near ) / ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float linearClipZ, const in float near, const in float far ) {\n\treturn linearClipZ * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) {\n\treturn ( near * far ) / ( ( far - near ) * invClipZ - far );\n}",premultiplied_alpha_fragment:"#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *= gl_FragColor.a;\n#endif",project_vertex:"vec4 mvPosition = vec4( transformed, 1.0 );\n#ifdef USE_INSTANCING\n\tmvPosition = instanceMatrix * mvPosition;\n#endif\nmvPosition = modelViewMatrix * mvPosition;\ngl_Position = projectionMatrix * mvPosition;",dithering_fragment:"#ifdef DITHERING\n\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif",dithering_pars_fragment:"#ifdef DITHERING\n\tvec3 dithering( vec3 color ) {\n\t\tfloat grid_position = rand( gl_FragCoord.xy );\n\t\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\n\t\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n\t\treturn color + dither_shift_RGB;\n\t}\n#endif",roughnessmap_fragment:"float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vUv );\n\troughnessFactor *= texelRoughness.g;\n#endif",roughnessmap_pars_fragment:"#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif",shadowmap_pars_fragment:"#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n\t\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\n\t}\n\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\n\t\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\n\t}\n\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\n\t\tfloat occlusion = 1.0;\n\t\tvec2 distribution = texture2DDistribution( shadow, uv );\n\t\tfloat hard_shadow = step( compare , distribution.x );\n\t\tif (hard_shadow != 1.0 ) {\n\t\t\tfloat distance = compare - distribution.x ;\n\t\t\tfloat variance = max( 0.00000, distribution.y * distribution.y );\n\t\t\tfloat softness_probability = variance / (variance + distance * distance );\t\t\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\t\t\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\n\t\t}\n\t\treturn occlusion;\n\t}\n\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n\t\tfloat shadow = 1.0;\n\t\tshadowCoord.xyz /= shadowCoord.w;\n\t\tshadowCoord.z += shadowBias;\n\t\tbvec4 inFrustumVec = bvec4 ( shadowCoord.x >= 0.0, shadowCoord.x <= 1.0, shadowCoord.y >= 0.0, shadowCoord.y <= 1.0 );\n\t\tbool inFrustum = all( inFrustumVec );\n\t\tbvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 );\n\t\tbool frustumTest = all( frustumTestVec );\n\t\tif ( frustumTest ) {\n\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tfloat dx2 = dx0 / 2.0;\n\t\t\tfloat dy2 = dy0 / 2.0;\n\t\t\tfloat dx3 = dx1 / 2.0;\n\t\t\tfloat dy3 = dy1 / 2.0;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 17.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx = texelSize.x;\n\t\t\tfloat dy = texelSize.y;\n\t\t\tvec2 uv = shadowCoord.xy;\n\t\t\tvec2 f = fract( uv * shadowMapSize + 0.5 );\n\t\t\tuv -= f * texelSize;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ), \n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ), \n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ), \n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ), \n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ), \n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ), \n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t f.y )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_VSM )\n\t\t\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#else\n\t\t\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#endif\n\t\t}\n\t\treturn shadow;\n\t}\n\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\n\t\tvec3 absV = abs( v );\n\t\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\n\t\tabsV *= scaleToCube;\n\t\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n\t\tvec2 planar = v.xy;\n\t\tfloat almostATexel = 1.5 * texelSizeY;\n\t\tfloat almostOne = 1.0 - almostATexel;\n\t\tif ( absV.z >= almostOne ) {\n\t\t\tif ( v.z > 0.0 )\n\t\t\t\tplanar.x = 4.0 - v.x;\n\t\t} else if ( absV.x >= almostOne ) {\n\t\t\tfloat signX = sign( v.x );\n\t\t\tplanar.x = v.z * signX + 2.0 * signX;\n\t\t} else if ( absV.y >= almostOne ) {\n\t\t\tfloat signY = sign( v.y );\n\t\t\tplanar.x = v.x + 2.0 * signY + 2.0;\n\t\t\tplanar.y = v.z * signY - 2.0;\n\t\t}\n\t\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\n\t}\n\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n\t\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\tvec3 lightToPosition = shadowCoord.xyz;\n\t\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\t\tdp += shadowBias;\n\t\tvec3 bd3D = normalize( lightToPosition );\n\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\n\t\t\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n\t\t\treturn (\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#else\n\t\t\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n\t\t#endif\n\t}\n#endif",shadowmap_pars_vertex:"#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 spotShadowMatrix[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n#endif",shadowmap_vertex:"#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0 || NUM_SPOT_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0\n\t\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\tvec4 shadowWorldPosition;\n\t#endif\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\n\t\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias, 0 );\n\t\tvSpotShadowCoord[ i ] = spotShadowMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\n\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n#endif",shadowmask_pars_fragment:"float getShadowMask() {\n\tfloat shadow = 1.0;\n\t#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tdirectionalLight = directionalLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tspotLight = spotLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tpointLight = pointLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#endif\n\treturn shadow;\n}",skinbase_vertex:"#ifdef USE_SKINNING\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\n#endif",skinning_pars_vertex:"#ifdef USE_SKINNING\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\tuniform highp sampler2D boneTexture;\n\tuniform int boneTextureSize;\n\tmat4 getBoneMatrix( const in float i ) {\n\t\tfloat j = i * 4.0;\n\t\tfloat x = mod( j, float( boneTextureSize ) );\n\t\tfloat y = floor( j / float( boneTextureSize ) );\n\t\tfloat dx = 1.0 / float( boneTextureSize );\n\t\tfloat dy = 1.0 / float( boneTextureSize );\n\t\ty = dy * ( y + 0.5 );\n\t\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\n\t\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\n\t\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\n\t\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\n\t\tmat4 bone = mat4( v1, v2, v3, v4 );\n\t\treturn bone;\n\t}\n#endif",skinning_vertex:"#ifdef USE_SKINNING\n\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\n\tvec4 skinned = vec4( 0.0 );\n\tskinned += boneMatX * skinVertex * skinWeight.x;\n\tskinned += boneMatY * skinVertex * skinWeight.y;\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\n\tskinned += boneMatW * skinVertex * skinWeight.w;\n\ttransformed = ( bindMatrixInverse * skinned ).xyz;\n#endif",skinnormal_vertex:"#ifdef USE_SKINNING\n\tmat4 skinMatrix = mat4( 0.0 );\n\tskinMatrix += skinWeight.x * boneMatX;\n\tskinMatrix += skinWeight.y * boneMatY;\n\tskinMatrix += skinWeight.z * boneMatZ;\n\tskinMatrix += skinWeight.w * boneMatW;\n\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\n\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n\t#ifdef USE_TANGENT\n\t\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#endif\n#endif",specularmap_fragment:"float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif",specularmap_pars_fragment:"#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif",tonemapping_fragment:"#if defined( TONE_MAPPING )\n\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif",tonemapping_pars_fragment:"#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn toneMappingExposure * color;\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\n}\nvec3 OptimizedCineonToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\tcolor = max( vec3( 0.0 ), color - 0.004 );\n\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\nvec3 RRTAndODTFit( vec3 v ) {\n\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\n\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\n\treturn a / b;\n}\nvec3 ACESFilmicToneMapping( vec3 color ) {\n\tconst mat3 ACESInputMat = mat3(\n\t\tvec3( 0.59719, 0.07600, 0.02840 ),\t\tvec3( 0.35458, 0.90834, 0.13383 ),\n\t\tvec3( 0.04823, 0.01566, 0.83777 )\n\t);\n\tconst mat3 ACESOutputMat = mat3(\n\t\tvec3( 1.60475, -0.10208, -0.00327 ),\t\tvec3( -0.53108, 1.10813, -0.07276 ),\n\t\tvec3( -0.07367, -0.00605, 1.07602 )\n\t);\n\tcolor *= toneMappingExposure / 0.6;\n\tcolor = ACESInputMat * color;\n\tcolor = RRTAndODTFit( color );\n\tcolor = ACESOutputMat * color;\n\treturn saturate( color );\n}\nvec3 CustomToneMapping( vec3 color ) { return color; }",transmission_fragment:"#ifdef USE_TRANSMISSION\n\tfloat transmissionAlpha = 1.0;\n\tfloat transmissionFactor = transmission;\n\tfloat thicknessFactor = thickness;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\ttransmissionFactor *= texture2D( transmissionMap, vUv ).r;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tthicknessFactor *= texture2D( thicknessMap, vUv ).g;\n\t#endif\n\tvec3 pos = vWorldPosition;\n\tvec3 v = normalize( cameraPosition - pos );\n\tvec3 n = inverseTransformDirection( normal, viewMatrix );\n\tvec4 transmission = getIBLVolumeRefraction(\n\t\tn, v, roughnessFactor, material.diffuseColor, material.specularColor, material.specularF90,\n\t\tpos, modelMatrix, viewMatrix, projectionMatrix, ior, thicknessFactor,\n\t\tattenuationColor, attenuationDistance );\n\ttotalDiffuse = mix( totalDiffuse, transmission.rgb, transmissionFactor );\n\ttransmissionAlpha = mix( transmissionAlpha, transmission.a, transmissionFactor );\n#endif",transmission_pars_fragment:"#ifdef USE_TRANSMISSION\n\tuniform float transmission;\n\tuniform float thickness;\n\tuniform float attenuationDistance;\n\tuniform vec3 attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tuniform sampler2D transmissionMap;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tuniform sampler2D thicknessMap;\n\t#endif\n\tuniform vec2 transmissionSamplerSize;\n\tuniform sampler2D transmissionSamplerMap;\n\tuniform mat4 modelMatrix;\n\tuniform mat4 projectionMatrix;\n\tvarying vec3 vWorldPosition;\n\tvec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\n\t\tvec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\n\t\tvec3 modelScale;\n\t\tmodelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\n\t\tmodelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\n\t\tmodelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\n\t\treturn normalize( refractionVector ) * thickness * modelScale;\n\t}\n\tfloat applyIorToRoughness( const in float roughness, const in float ior ) {\n\t\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\n\t}\n\tvec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\n\t\tfloat framebufferLod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\n\t\t#ifdef texture2DLodEXT\n\t\t\treturn texture2DLodEXT( transmissionSamplerMap, fragCoord.xy, framebufferLod );\n\t\t#else\n\t\t\treturn texture2D( transmissionSamplerMap, fragCoord.xy, framebufferLod );\n\t\t#endif\n\t}\n\tvec3 applyVolumeAttenuation( const in vec3 radiance, const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tif ( attenuationDistance == 0.0 ) {\n\t\t\treturn radiance;\n\t\t} else {\n\t\t\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\n\t\t\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\t\t\treturn transmittance * radiance;\n\t\t}\n\t}\n\tvec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\n\t\tconst in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\n\t\tconst in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness,\n\t\tconst in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\n\t\tvec3 refractedRayExit = position + transmissionRay;\n\t\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n\t\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\n\t\trefractionCoords += 1.0;\n\t\trefractionCoords /= 2.0;\n\t\tvec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\n\t\tvec3 attenuatedColor = applyVolumeAttenuation( transmittedLight.rgb, length( transmissionRay ), attenuationColor, attenuationDistance );\n\t\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\n\t\treturn vec4( ( 1.0 - F ) * attenuatedColor * diffuseColor, transmittedLight.a );\n\t}\n#endif",uv_pars_fragment:"#if ( defined( USE_UV ) && ! defined( UVS_VERTEX_ONLY ) )\n\tvarying vec2 vUv;\n#endif",uv_pars_vertex:"#ifdef USE_UV\n\t#ifdef UVS_VERTEX_ONLY\n\t\tvec2 vUv;\n\t#else\n\t\tvarying vec2 vUv;\n\t#endif\n\tuniform mat3 uvTransform;\n#endif",uv_vertex:"#ifdef USE_UV\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n#endif",uv2_pars_fragment:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvarying vec2 vUv2;\n#endif",uv2_pars_vertex:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tattribute vec2 uv2;\n\tvarying vec2 vUv2;\n\tuniform mat3 uv2Transform;\n#endif",uv2_vertex:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvUv2 = ( uv2Transform * vec3( uv2, 1 ) ).xy;\n#endif",worldpos_vertex:"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION )\n\tvec4 worldPosition = vec4( transformed, 1.0 );\n\t#ifdef USE_INSTANCING\n\t\tworldPosition = instanceMatrix * worldPosition;\n\t#endif\n\tworldPosition = modelMatrix * worldPosition;\n#endif",background_vert:"varying vec2 vUv;\nuniform mat3 uvTransform;\nvoid main() {\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\tgl_Position = vec4( position.xy, 1.0, 1.0 );\n}",background_frag:"uniform sampler2D t2D;\nvarying vec2 vUv;\nvoid main() {\n\tgl_FragColor = texture2D( t2D, vUv );\n\t#ifdef DECODE_VIDEO_TEXTURE\n\t\tgl_FragColor = vec4( mix( pow( gl_FragColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), gl_FragColor.rgb * 0.0773993808, vec3( lessThanEqual( gl_FragColor.rgb, vec3( 0.04045 ) ) ) ), gl_FragColor.w );\n\t#endif\n\t#include \n\t#include \n}",cube_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}",cube_frag:"#include \nuniform float opacity;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvec3 vReflect = vWorldDirection;\n\t#include \n\tgl_FragColor = envColor;\n\tgl_FragColor.a *= opacity;\n\t#include \n\t#include \n}",depth_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\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\tvHighPrecisionZW = gl_Position.zw;\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 \n#include \nvarying vec2 vHighPrecisionZW;\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\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\n\t#if DEPTH_PACKING == 3200\n\t\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\n\t#elif DEPTH_PACKING == 3201\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\t#endif\n}",distanceRGBA_vert:"#define DISTANCE\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\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\tvWorldPosition = worldPosition.xyz;\n}",distanceRGBA_frag:"#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\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#include \n\t#include \n\t#include \n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist );\n\tgl_FragColor = packDepthToRGBA( dist );\n}",equirect_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n}",equirect_frag:"uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvec3 direction = normalize( vWorldDirection );\n\tvec2 sampleUV = equirectUv( direction );\n\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\t#include \n\t#include \n}",linedashed_vert:"uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvLineDistance = scale * lineDistance;\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}",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\t#include \n\t#include \n\t#include \n\t#include \n\t#include \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#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\n\t\t#include \n\t\t#include \n\t\t#include \n\t\t#include \n\t\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}",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 \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\tvec4 lightMapTexel = texture2D( lightMap, vUv2 );\n\t\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\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\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshlambert_vert:"#define LAMBERT\nvarying vec3 vLightFront;\nvarying vec3 vIndirectFront;\n#ifdef DOUBLE_SIDED\n\tvarying vec3 vLightBack;\n\tvarying vec3 vIndirectBack;\n#endif\n#include \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\t#include \n}",meshlambert_frag:"uniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\nvarying vec3 vLightFront;\nvarying vec3 vIndirectFront;\n#ifdef DOUBLE_SIDED\n\tvarying vec3 vLightBack;\n\tvarying vec3 vIndirectBack;\n#endif\n#include \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#ifdef DOUBLE_SIDED\n\t\treflectedLight.indirectDiffuse += ( gl_FrontFacing ) ? vIndirectFront : vIndirectBack;\n\t#else\n\t\treflectedLight.indirectDiffuse += vIndirectFront;\n\t#endif\n\t#include \n\treflectedLight.indirectDiffuse *= BRDF_Lambert( diffuseColor.rgb );\n\t#ifdef DOUBLE_SIDED\n\t\treflectedLight.directDiffuse = ( gl_FrontFacing ) ? vLightFront : vLightBack;\n\t#else\n\t\treflectedLight.directDiffuse = vLightFront;\n\t#endif\n\treflectedLight.directDiffuse *= BRDF_Lambert( diffuseColor.rgb ) * getShadowMask();\n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshmatcap_vert:"#define MATCAP\nvarying vec3 vViewPosition;\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\tvViewPosition = - mvPosition.xyz;\n}",meshmatcap_frag:"#define MATCAP\nuniform vec3 diffuse;\nuniform float opacity;\nuniform sampler2D matcap;\nvarying vec3 vViewPosition;\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\t#include \n\tvec3 viewDir = normalize( vViewPosition );\n\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\n\tvec3 y = cross( viewDir, x );\n\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\n\t#ifdef USE_MATCAP\n\t\tvec4 matcapColor = texture2D( matcap, uv );\n\t#else\n\t\tvec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 );\n\t#endif\n\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshnormal_vert:"#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvarying vec3 vViewPosition;\n#endif\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#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n}",meshnormal_frag:"#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvarying vec3 vViewPosition;\n#endif\n#include \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\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\n\t#ifdef OPAQUE\n\t\tgl_FragColor.a = 1.0;\n\t#endif\n}",meshphong_vert:"#define PHONG\nvarying vec3 vViewPosition;\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\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \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 \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\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshphysical_vert:"#define STANDARD\nvarying vec3 vViewPosition;\n#ifdef USE_TRANSMISSION\n\tvarying vec3 vWorldPosition;\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\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\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n#ifdef USE_TRANSMISSION\n\tvWorldPosition = worldPosition.xyz;\n#endif\n}",meshphysical_frag:"#define STANDARD\n#ifdef PHYSICAL\n\t#define IOR\n\t#define SPECULAR\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef IOR\n\tuniform float ior;\n#endif\n#ifdef SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\t#ifdef USE_SPECULARINTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n\t#ifdef USE_SPECULARCOLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheenColor;\n\tuniform float sheenRoughness;\n\t#ifdef USE_SHEENCOLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\t#ifdef USE_SHEENROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\nvarying vec3 vViewPosition;\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 \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\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\t#include \n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\t#ifdef USE_SHEEN\n\t\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\t\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular;\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshtoon_vert:"#define TOON\nvarying vec3 vViewPosition;\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\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n}",meshtoon_frag:"#define TOON\nuniform vec3 diffuse;\nuniform vec3 emissive;\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\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \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#include \n\t#include \n\tgl_PointSize = size;\n\t#ifdef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n}",points_frag:"uniform vec3 diffuse;\nuniform float opacity;\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\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",shadow_vert:"#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}",shadow_frag:"uniform vec3 color;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n\t#include \n\t#include \n\t#include \n}",sprite_vert:"uniform float rotation;\nuniform vec2 center;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\n\tvec2 scale;\n\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\n\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\n\t#ifndef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) scale *= - mvPosition.z;\n\t#endif\n\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\n\tvec2 rotatedPosition;\n\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n\tmvPosition.xy += rotatedPosition;\n\tgl_Position = projectionMatrix * mvPosition;\n\t#include \n\t#include \n\t#include \n}",sprite_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\t#include \n\t#include \n\t#include \n\t#include \n}"},$o={common:{diffuse:{value:new Gn(16777215)},opacity:{value:1},map:{value:null},uvTransform:{value:new Mn},uv2Transform:{value:new Mn},alphaMap:{value:null},alphaTest:{value:0}},specularmap:{specularMap:{value:null}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},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 Cn(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 Gn(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotShadowMap:{value:[]},spotShadowMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Gn(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaTest:{value:0},uvTransform:{value:new Mn}},sprite:{diffuse:{value:new Gn(16777215)},opacity:{value:1},center:{value:new Cn(.5,.5)},rotation:{value:0},map:{value:null},alphaMap:{value:null},alphaTest:{value:0},uvTransform:{value:new Mn}}},Po={basic:{uniforms:ho([$o.common,$o.specularmap,$o.envmap,$o.aomap,$o.lightmap,$o.fog]),vertexShader:Mo.meshbasic_vert,fragmentShader:Mo.meshbasic_frag},lambert:{uniforms:ho([$o.common,$o.specularmap,$o.envmap,$o.aomap,$o.lightmap,$o.emissivemap,$o.fog,$o.lights,{emissive:{value:new Gn(0)}}]),vertexShader:Mo.meshlambert_vert,fragmentShader:Mo.meshlambert_frag},phong:{uniforms:ho([$o.common,$o.specularmap,$o.envmap,$o.aomap,$o.lightmap,$o.emissivemap,$o.bumpmap,$o.normalmap,$o.displacementmap,$o.fog,$o.lights,{emissive:{value:new Gn(0)},specular:{value:new Gn(1118481)},shininess:{value:30}}]),vertexShader:Mo.meshphong_vert,fragmentShader:Mo.meshphong_frag},standard:{uniforms:ho([$o.common,$o.envmap,$o.aomap,$o.lightmap,$o.emissivemap,$o.bumpmap,$o.normalmap,$o.displacementmap,$o.roughnessmap,$o.metalnessmap,$o.fog,$o.lights,{emissive:{value:new Gn(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:Mo.meshphysical_vert,fragmentShader:Mo.meshphysical_frag},toon:{uniforms:ho([$o.common,$o.aomap,$o.lightmap,$o.emissivemap,$o.bumpmap,$o.normalmap,$o.displacementmap,$o.gradientmap,$o.fog,$o.lights,{emissive:{value:new Gn(0)}}]),vertexShader:Mo.meshtoon_vert,fragmentShader:Mo.meshtoon_frag},matcap:{uniforms:ho([$o.common,$o.bumpmap,$o.normalmap,$o.displacementmap,$o.fog,{matcap:{value:null}}]),vertexShader:Mo.meshmatcap_vert,fragmentShader:Mo.meshmatcap_frag},points:{uniforms:ho([$o.points,$o.fog]),vertexShader:Mo.points_vert,fragmentShader:Mo.points_frag},dashed:{uniforms:ho([$o.common,$o.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Mo.linedashed_vert,fragmentShader:Mo.linedashed_frag},depth:{uniforms:ho([$o.common,$o.displacementmap]),vertexShader:Mo.depth_vert,fragmentShader:Mo.depth_frag},normal:{uniforms:ho([$o.common,$o.bumpmap,$o.normalmap,$o.displacementmap,{opacity:{value:1}}]),vertexShader:Mo.meshnormal_vert,fragmentShader:Mo.meshnormal_frag},sprite:{uniforms:ho([$o.sprite,$o.fog]),vertexShader:Mo.sprite_vert,fragmentShader:Mo.sprite_frag},background:{uniforms:{uvTransform:{value:new Mn},t2D:{value:null}},vertexShader:Mo.background_vert,fragmentShader:Mo.background_frag},cube:{uniforms:ho([$o.envmap,{opacity:{value:1}}]),vertexShader:Mo.cube_vert,fragmentShader:Mo.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Mo.equirect_vert,fragmentShader:Mo.equirect_frag},distanceRGBA:{uniforms:ho([$o.common,$o.displacementmap,{referencePosition:{value:new sr},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:Mo.distanceRGBA_vert,fragmentShader:Mo.distanceRGBA_frag},shadow:{uniforms:ho([$o.lights,$o.fog,{color:{value:new Gn(0)},opacity:{value:1}}]),vertexShader:Mo.shadow_vert,fragmentShader:Mo.shadow_frag}};function Ro(e,t,n,r,i,o){const s=new Gn(0);let a,l,c=!0===i?0:1,u=null,d=0,h=null;function p(e,t){n.buffers.color.setClear(e.r,e.g,e.b,t,o)}return{getClearColor:function(){return s},setClearColor:function(e,t=1){s.set(e),c=t,p(s,c)},getClearAlpha:function(){return c},setClearAlpha:function(e){c=e,p(s,c)},render:function(n,i){let o=!1,g=!0===i.isScene?i.background:null;g&&g.isTexture&&(g=t.get(g));const b=e.xr,v=b.getSession&&b.getSession();v&&"additive"===v.environmentBlendMode&&(g=null),null===g?p(s,c):g&&g.isColor&&(p(g,1),o=!0),(e.autoClear||o)&&e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil),g&&(g.isCubeTexture||g.mapping===ce)?(void 0===l&&(l=new ao(new co(1,1,1),new fo({name:"BackgroundCubeMaterial",uniforms:uo(Po.cube.uniforms),vertexShader:Po.cube.vertexShader,fragmentShader:Po.cube.fragmentShader,side:m,depthTest:!1,depthWrite:!1,fog:!1})),l.geometry.deleteAttribute("normal"),l.geometry.deleteAttribute("uv"),l.onBeforeRender=function(e,t,n){this.matrixWorld.copyPosition(n.matrixWorld)},Object.defineProperty(l.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),r.update(l)),l.material.uniforms.envMap.value=g,l.material.uniforms.flipEnvMap.value=g.isCubeTexture&&!1===g.isRenderTargetTexture?-1:1,u===g&&d===g.version&&h===e.toneMapping||(l.material.needsUpdate=!0,u=g,d=g.version,h=e.toneMapping),l.layers.enableAll(),n.unshift(l,l.geometry,l.material,0,0,null)):g&&g.isTexture&&(void 0===a&&(a=new ao(new Co(2,2),new fo({name:"BackgroundMaterial",uniforms:uo(Po.background.uniforms),vertexShader:Po.background.vertexShader,fragmentShader:Po.background.fragmentShader,side:f,depthTest:!1,depthWrite:!1,fog:!1})),a.geometry.deleteAttribute("normal"),Object.defineProperty(a.material,"map",{get:function(){return this.uniforms.t2D.value}}),r.update(a)),a.material.uniforms.t2D.value=g,!0===g.matrixAutoUpdate&&g.updateMatrix(),a.material.uniforms.uvTransform.value.copy(g.matrix),u===g&&d===g.version&&h===e.toneMapping||(a.material.needsUpdate=!0,u=g,d=g.version,h=e.toneMapping),a.layers.enableAll(),n.unshift(a,a.geometry,a.material,0,0,null))}}}function jo(e,t,n,r){const i=e.getParameter(34921),o=r.isWebGL2?null:t.get("OES_vertex_array_object"),s=r.isWebGL2||null!==o,a={},l=p(null);let c=l,u=!1;function d(t){return r.isWebGL2?e.bindVertexArray(t):o.bindVertexArrayOES(t)}function h(t){return r.isWebGL2?e.deleteVertexArray(t):o.deleteVertexArrayOES(t)}function p(e){const t=[],n=[],r=[];for(let e=0;e=0){const n=i[t];let r=o[t];if(void 0===r&&("instanceMatrix"===t&&e.instanceMatrix&&(r=e.instanceMatrix),"instanceColor"===t&&e.instanceColor&&(r=e.instanceColor)),void 0===n)return!0;if(n.attribute!==r)return!0;if(r&&n.data!==r.data)return!0;s++}}return c.attributesNum!==s||c.index!==r}(i,y,h,S),_&&function(e,t,n,r){const i={},o=t.attributes;let s=0;const a=n.getAttributes();for(const t in a){if(a[t].location>=0){let n=o[t];void 0===n&&("instanceMatrix"===t&&e.instanceMatrix&&(n=e.instanceMatrix),"instanceColor"===t&&e.instanceColor&&(n=e.instanceColor));const r={};r.attribute=n,n&&n.data&&(r.data=n.data),i[t]=r,s++}}c.attributes=i,c.attributesNum=s,c.index=r}(i,y,h,S)}else{const e=!0===l.wireframe;c.geometry===y.id&&c.program===h.id&&c.wireframe===e||(c.geometry=y.id,c.program=h.id,c.wireframe=e,_=!0)}null!==S&&n.update(S,34963),(_||u)&&(u=!1,function(i,o,s,a){if(!1===r.isWebGL2&&(i.isInstancedMesh||a.isInstancedBufferGeometry)&&null===t.get("ANGLE_instanced_arrays"))return;f();const l=a.attributes,c=s.getAttributes(),u=o.defaultAttributeValues;for(const t in c){const r=c[t];if(r.location>=0){let o=l[t];if(void 0===o&&("instanceMatrix"===t&&i.instanceMatrix&&(o=i.instanceMatrix),"instanceColor"===t&&i.instanceColor&&(o=i.instanceColor)),void 0!==o){const t=o.normalized,s=o.itemSize,l=n.get(o);if(void 0===l)continue;const c=l.buffer,u=l.type,d=l.bytesPerElement;if(o.isInterleavedBufferAttribute){const n=o.data,l=n.stride,h=o.offset;if(n.isInstancedInterleavedBuffer){for(let e=0;e0&&e.getShaderPrecisionFormat(35632,36338).precision>0)return"highp";t="mediump"}return"mediump"===t&&e.getShaderPrecisionFormat(35633,36337).precision>0&&e.getShaderPrecisionFormat(35632,36337).precision>0?"mediump":"lowp"}const o="undefined"!=typeof WebGL2RenderingContext&&e instanceof WebGL2RenderingContext||"undefined"!=typeof WebGL2ComputeRenderingContext&&e instanceof WebGL2ComputeRenderingContext;let s=void 0!==n.precision?n.precision:"highp";const a=i(s);a!==s&&(console.warn("THREE.WebGLRenderer:",s,"not supported, using",a,"instead."),s=a);const l=o||t.has("WEBGL_draw_buffers"),c=!0===n.logarithmicDepthBuffer,u=e.getParameter(34930),d=e.getParameter(35660),h=e.getParameter(3379),p=e.getParameter(34076),f=e.getParameter(34921),m=e.getParameter(36347),g=e.getParameter(36348),b=e.getParameter(36349),v=d>0,y=o||t.has("OES_texture_float");return{isWebGL2:o,drawBuffers:l,getMaxAnisotropy:function(){if(void 0!==r)return r;if(!0===t.has("EXT_texture_filter_anisotropic")){const n=t.get("EXT_texture_filter_anisotropic");r=e.getParameter(n.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else r=0;return r},getMaxPrecision:i,precision:s,logarithmicDepthBuffer:c,maxTextures:u,maxVertexTextures:d,maxTextureSize:h,maxCubemapSize:p,maxAttributes:f,maxVertexUniforms:m,maxVaryings:g,maxFragmentUniforms:b,vertexTextures:v,floatFragmentTextures:y,floatVertexTextures:v&&y,maxSamples:o?e.getParameter(36183):0}}function Io(e){const t=this;let n=null,r=0,i=!1,o=!1;const s=new wo,a=new Mn,l={value:null,needsUpdate:!1};function c(){l.value!==n&&(l.value=n,l.needsUpdate=r>0),t.numPlanes=r,t.numIntersection=0}function u(e,n,r,i){const o=null!==e?e.length:0;let c=null;if(0!==o){if(c=l.value,!0!==i||null===c){const t=r+4*o,i=n.matrixWorldInverse;a.getNormalMatrix(i),(null===c||c.length0){const s=new yo(o.height/2);return s.fromEquirectangularTexture(e,i),t.set(i,s),i.addEventListener("dispose",r),n(s.texture,i.mapping)}return null}}}return i},dispose:function(){t=new WeakMap}}}Po.physical={uniforms:ho([Po.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatNormalScale:{value:new Cn(1,1)},clearcoatNormalMap:{value:null},sheen:{value:0},sheenColor:{value:new Gn(0)},sheenColorMap:{value:null},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},transmission:{value:0},transmissionMap:{value:null},transmissionSamplerSize:{value:new Cn},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},attenuationDistance:{value:0},attenuationColor:{value:new Gn(0)},specularIntensity:{value:1},specularIntensityMap:{value:null},specularColor:{value:new Gn(1,1,1)},specularColorMap:{value:null}}]),vertexShader:Mo.meshphysical_vert,fragmentShader:Mo.meshphysical_frag};class Bo extends mo{constructor(e=-1,t=1,n=1,r=-1,i=.1,o=2e3){super(),this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=e,this.right=t,this.top=n,this.bottom=r,this.near=i,this.far=o,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),this.left=e.left,this.right=e.right,this.top=e.top,this.bottom=e.bottom,this.near=e.near,this.far=e.far,this.zoom=e.zoom,this.view=null===e.view?null:Object.assign({},e.view),this}setViewOffset(e,t,n,r,i,o){null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=n,this.view.offsetY=r,this.view.width=i,this.view.height=o,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const e=(this.right-this.left)/(2*this.zoom),t=(this.top-this.bottom)/(2*this.zoom),n=(this.right+this.left)/2,r=(this.top+this.bottom)/2;let i=n-e,o=n+e,s=r+t,a=r-t;if(null!==this.view&&this.view.enabled){const e=(this.right-this.left)/this.view.fullWidth/this.zoom,t=(this.top-this.bottom)/this.view.fullHeight/this.zoom;i+=e*this.view.offsetX,o=i+e*this.view.width,s-=t*this.view.offsetY,a=s-t*this.view.height}this.projectionMatrix.makeOrthographic(i,o,s,a,this.near,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){const t=super.toJSON(e);return t.object.zoom=this.zoom,t.object.left=this.left,t.object.right=this.right,t.object.top=this.top,t.object.bottom=this.bottom,t.object.near=this.near,t.object.far=this.far,null!==this.view&&(t.object.view=Object.assign({},this.view)),t}}Bo.prototype.isOrthographicCamera=!0;const zo=[.125,.215,.35,.446,.526,.582],Fo=new Bo,Uo=new Gn;let Qo=null;const qo=(1+Math.sqrt(5))/2,Go=1/qo,Ho=[new sr(1,1,1),new sr(-1,1,1),new sr(1,1,-1),new sr(-1,1,-1),new sr(0,qo,Go),new sr(0,qo,-Go),new sr(Go,0,qo),new sr(-Go,0,qo),new sr(qo,Go,0),new sr(-qo,Go,0)];class Vo{constructor(e){this._renderer=e,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(e,t=0,n=.1,r=100){Qo=this._renderer.getRenderTarget(),this._setSize(256);const i=this._allocateTargets();return i.depthBuffer=!0,this._sceneToCubeUV(e,n,r,i),t>0&&this._blur(i,0,0,t),this._applyPMREM(i),this._cleanup(i),i}fromEquirectangular(e,t=null){return this._fromTexture(e,t)}fromCubemap(e,t=null){return this._fromTexture(e,t)}compileCubemapShader(){null===this._cubemapMaterial&&(this._cubemapMaterial=Zo(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){null===this._equirectMaterial&&(this._equirectMaterial=Yo(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),null!==this._cubemapMaterial&&this._cubemapMaterial.dispose(),null!==this._equirectMaterial&&this._equirectMaterial.dispose()}_setSize(e){this._lodMax=Math.floor(Math.log2(e)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){null!==this._blurMaterial&&this._blurMaterial.dispose(),null!==this._pingPongRenderTarget&&this._pingPongRenderTarget.dispose();for(let e=0;ee-4?a=zo[s-e+4-1]:0===s&&(a=0),r.push(a);const l=1/(o-2),c=-l,u=1+l,d=[c,c,u,c,u,u,c,c,u,u,c,u],h=6,p=6,f=3,m=2,g=1,b=new Float32Array(f*p*h),v=new Float32Array(m*p*h),y=new Float32Array(g*p*h);for(let e=0;e2?0:-1,r=[t,n,0,t+2/3,n,0,t+2/3,n+1,0,t,n,0,t+2/3,n+1,0,t,n+1,0];b.set(r,f*p*e),v.set(d,m*p*e);const i=[e,e,e,e,e,e];y.set(i,g*p*e)}const S=new Qi;S.setAttribute("position",new Oi(b,f)),S.setAttribute("uv",new Oi(v,m)),S.setAttribute("faceIndex",new Oi(y,g)),t.push(S),i>4&&i--}return{lodPlanes:t,sizeLods:n,sigmas:r}}(r)),this._blurMaterial=function(e,t,n){const r=new Float32Array(20),i=new sr(0,1,0);return new fo({name:"SphericalGaussianBlur",defines:{n:20,CUBEUV_TEXEL_WIDTH:1/t,CUBEUV_TEXEL_HEIGHT:1/n,CUBEUV_MAX_MIP:e+".0"},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:r},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:i}},vertexShader:Jo(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\t\t\tuniform int samples;\n\t\t\tuniform float weights[ n ];\n\t\t\tuniform bool latitudinal;\n\t\t\tuniform float dTheta;\n\t\t\tuniform float mipInt;\n\t\t\tuniform vec3 poleAxis;\n\n\t\t\t#define ENVMAP_TYPE_CUBE_UV\n\t\t\t#include \n\n\t\t\tvec3 getSample( float theta, vec3 axis ) {\n\n\t\t\t\tfloat cosTheta = cos( theta );\n\t\t\t\t// Rodrigues' axis-angle rotation\n\t\t\t\tvec3 sampleDirection = vOutputDirection * cosTheta\n\t\t\t\t\t+ cross( axis, vOutputDirection ) * sin( theta )\n\t\t\t\t\t+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );\n\n\t\t\t\treturn bilinearCubeUV( envMap, sampleDirection, mipInt );\n\n\t\t\t}\n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );\n\n\t\t\t\tif ( all( equal( axis, vec3( 0.0 ) ) ) ) {\n\n\t\t\t\t\taxis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );\n\n\t\t\t\t}\n\n\t\t\t\taxis = normalize( axis );\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t\t\t\tgl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );\n\n\t\t\t\tfor ( int i = 1; i < n; i++ ) {\n\n\t\t\t\t\tif ( i >= samples ) {\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfloat theta = dTheta * float( i );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( theta, axis );\n\n\t\t\t\t}\n\n\t\t\t}\n\t\t",blending:y,depthTest:!1,depthWrite:!1})}(r,e,t)}return r}_compileMaterial(e){const t=new ao(this._lodPlanes[0],e);this._renderer.compile(t,Fo)}_sceneToCubeUV(e,t,n,r){const i=new go(90,1,t,n),o=[1,-1,1,1,1,1],s=[1,1,1,-1,-1,-1],a=this._renderer,l=a.autoClear,c=a.toneMapping;a.getClearColor(Uo),a.toneMapping=J,a.autoClear=!1;const u=new xi({name:"PMREM.Background",side:m,depthWrite:!1,depthTest:!1}),d=new ao(new co,u);let h=!1;const p=e.background;p?p.isColor&&(u.color.copy(p),e.background=null,h=!0):(u.color.copy(Uo),h=!0);for(let t=0;t<6;t++){const n=t%3;0===n?(i.up.set(0,o[t],0),i.lookAt(s[t],0,0)):1===n?(i.up.set(0,0,o[t]),i.lookAt(0,s[t],0)):(i.up.set(0,o[t],0),i.lookAt(0,0,s[t]));const l=this._cubeSize;Xo(r,n*l,t>2?l:0,l,l),a.setRenderTarget(r),h&&a.render(d,i),a.render(e,i)}d.geometry.dispose(),d.material.dispose(),a.toneMapping=c,a.autoClear=l,e.background=p}_textureToCubeUV(e,t){const n=this._renderer,r=e.mapping===oe||e.mapping===se;r?(null===this._cubemapMaterial&&(this._cubemapMaterial=Zo()),this._cubemapMaterial.uniforms.flipEnvMap.value=!1===e.isRenderTargetTexture?-1:1):null===this._equirectMaterial&&(this._equirectMaterial=Yo());const i=r?this._cubemapMaterial:this._equirectMaterial,o=new ao(this._lodPlanes[0],i);i.uniforms.envMap.value=e;const s=this._cubeSize;Xo(t,0,0,3*s,2*s),n.setRenderTarget(t),n.render(o,Fo)}_applyPMREM(e){const t=this._renderer,n=t.autoClear;t.autoClear=!1;for(let t=1;t20&&console.warn(`sigmaRadians, ${i}, is too large and will clip, as it requested ${f} samples when the maximum is set to 20`);const m=[];let g=0;for(let e=0;e<20;++e){const t=e/p,n=Math.exp(-t*t/2);m.push(n),0===e?g+=n:eb-4?r-b+4:0),4*(this._cubeSize-v),3*v,2*v),a.setRenderTarget(t),a.render(c,Fo)}}function Wo(e,t,n){const r=new Kn(e,t,n);return r.texture.mapping=ce,r.texture.name="PMREM.cubeUv",r.scissorTest=!0,r}function Xo(e,t,n,r,i){e.viewport.set(t,n,r,i),e.scissor.set(t,n,r,i)}function Yo(){return new fo({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:Jo(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\n\t\t\t#include \n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 outputDirection = normalize( vOutputDirection );\n\t\t\t\tvec2 uv = equirectUv( outputDirection );\n\n\t\t\t\tgl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 );\n\n\t\t\t}\n\t\t",blending:y,depthTest:!1,depthWrite:!1})}function Zo(){return new fo({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:Jo(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tuniform float flipEnvMap;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform samplerCube envMap;\n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) );\n\n\t\t\t}\n\t\t",blending:y,depthTest:!1,depthWrite:!1})}function Jo(){return"\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t"}function Ko(e){let t=new WeakMap,n=null;function r(e){const n=e.target;n.removeEventListener("dispose",r);const i=t.get(n);void 0!==i&&(t.delete(n),i.dispose())}return{get:function(i){if(i&&i.isTexture){const o=i.mapping,s=o===ae||o===le,a=o===oe||o===se;if(s||a){if(i.isRenderTargetTexture&&!0===i.needsPMREMUpdate){i.needsPMREMUpdate=!1;let r=t.get(i);return null===n&&(n=new Vo(e)),r=s?n.fromEquirectangular(i,r):n.fromCubemap(i,r),t.set(i,r),r.texture}if(t.has(i))return t.get(i).texture;{const o=i.image;if(s&&o&&o.height>0||a&&o&&function(e){let t=0;for(let n=0;n<6;n++)void 0!==e[n]&&t++;return 6===t}(o)){null===n&&(n=new Vo(e));const o=s?n.fromEquirectangular(i):n.fromCubemap(i);return t.set(i,o),i.addEventListener("dispose",r),o.texture}return null}}}return i},dispose:function(){t=new WeakMap,null!==n&&(n.dispose(),n=null)}}}function es(e){const t={};function n(n){if(void 0!==t[n])return t[n];let r;switch(n){case"WEBGL_depth_texture":r=e.getExtension("WEBGL_depth_texture")||e.getExtension("MOZ_WEBGL_depth_texture")||e.getExtension("WEBKIT_WEBGL_depth_texture");break;case"EXT_texture_filter_anisotropic":r=e.getExtension("EXT_texture_filter_anisotropic")||e.getExtension("MOZ_EXT_texture_filter_anisotropic")||e.getExtension("WEBKIT_EXT_texture_filter_anisotropic");break;case"WEBGL_compressed_texture_s3tc":r=e.getExtension("WEBGL_compressed_texture_s3tc")||e.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||e.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");break;case"WEBGL_compressed_texture_pvrtc":r=e.getExtension("WEBGL_compressed_texture_pvrtc")||e.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");break;default:r=e.getExtension(n)}return t[n]=r,r}return{has:function(e){return null!==n(e)},init:function(e){e.isWebGL2?n("EXT_color_buffer_float"):(n("WEBGL_depth_texture"),n("OES_texture_float"),n("OES_texture_half_float"),n("OES_texture_half_float_linear"),n("OES_standard_derivatives"),n("OES_element_index_uint"),n("OES_vertex_array_object"),n("ANGLE_instanced_arrays")),n("OES_texture_float_linear"),n("EXT_color_buffer_half_float"),n("WEBGL_multisampled_render_to_texture")},get:function(e){const t=n(e);return null===t&&console.warn("THREE.WebGLRenderer: "+e+" extension not supported."),t}}}function ts(e,t,n,r){const i={},o=new WeakMap;function s(e){const a=e.target;null!==a.index&&t.remove(a.index);for(const e in a.attributes)t.remove(a.attributes[e]);a.removeEventListener("dispose",s),delete i[a.id];const l=o.get(a);l&&(t.remove(l),o.delete(a)),r.releaseStatesOfGeometry(a),!0===a.isInstancedBufferGeometry&&delete a._maxInstanceCount,n.memory.geometries--}function a(e){const n=[],r=e.index,i=e.attributes.position;let s=0;if(null!==r){const e=r.array;s=r.version;for(let t=0,r=e.length;tt.maxTextureSize&&(f=Math.ceil(p/t.maxTextureSize),p=t.maxTextureSize);const m=new Float32Array(p*f*4*i),g=new er(m,p,f,i);g.type=Ce,g.needsUpdate=!0;const b=4*h;for(let t=0;t0)return e;const i=t*n;let o=ps[i];if(void 0===o&&(o=new Float32Array(i),ps[i]=o),0!==t){r.toArray(o,0);for(let r=1,i=0;r!==t;++r)i+=n,e[r].toArray(o,i)}return o}function ys(e,t){if(e.length!==t.length)return!1;for(let n=0,r=e.length;n/gm;function xa(e){return e.replace(_a,wa)}function wa(e,t){const n=Mo[t];if(void 0===n)throw new Error("Can not resolve #include <"+t+">");return xa(n)}const ka=/#pragma unroll_loop[\s]+?for \( int i \= (\d+)\; i < (\d+)\; i \+\+ \) \{([\s\S]+?)(?=\})\}/g,Oa=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function Ea(e){return e.replace(Oa,Ta).replace(ka,Aa)}function Aa(e,t,n,r){return console.warn("WebGLProgram: #pragma unroll_loop shader syntax is deprecated. Please use #pragma unroll_loop_start syntax instead."),Ta(e,t,n,r)}function Ta(e,t,n,r){let i="";for(let e=parseInt(t);e0&&(y+="\n"),S=[g,b].filter(va).join("\n"),S.length>0&&(S+="\n")):(y=[Ca(n),"#define SHADER_NAME "+n.shaderName,b,n.instancing?"#define USE_INSTANCING":"",n.instancingColor?"#define USE_INSTANCING_COLOR":"",n.supportsVertexTextures?"#define VERTEX_TEXTURES":"",n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+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.normalMap&&n.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",n.normalMap&&n.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.displacementMap&&n.supportsVertexTextures?"#define USE_DISPLACEMENTMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularIntensityMap?"#define USE_SPECULARINTENSITYMAP":"",n.specularColorMap?"#define USE_SPECULARCOLORMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.sheenColorMap?"#define USE_SHEENCOLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEENROUGHNESSMAP":"",n.vertexTangents?"#define USE_TANGENT":"",n.vertexColors?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUvs?"#define USE_UV":"",n.uvsVertexOnly?"#define UVS_VERTEX_ONLY":"",n.flatShading?"#define FLAT_SHADED":"",n.skinning?"#define USE_SKINNING":"",n.morphTargets?"#define USE_MORPHTARGETS":"",n.morphNormals&&!1===n.flatShading?"#define USE_MORPHNORMALS":"",n.morphColors&&n.isWebGL2?"#define USE_MORPHCOLORS":"",n.morphTargetsCount>0&&n.isWebGL2?"#define MORPHTARGETS_TEXTURE":"",n.morphTargetsCount>0&&n.isWebGL2?"#define MORPHTARGETS_TEXTURE_STRIDE "+n.morphTextureStride:"",n.morphTargetsCount>0&&n.isWebGL2?"#define MORPHTARGETS_COUNT "+n.morphTargetsCount:"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+l:"",n.sizeAttenuation?"#define USE_SIZEATTENUATION":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING","\tattribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR","\tattribute vec3 instanceColor;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_TANGENT","\tattribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )","\tattribute vec4 color;","#elif defined( USE_COLOR )","\tattribute vec3 color;","#endif","#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )","\tattribute vec3 morphTarget0;","\tattribute vec3 morphTarget1;","\tattribute vec3 morphTarget2;","\tattribute vec3 morphTarget3;","\t#ifdef USE_MORPHNORMALS","\t\tattribute vec3 morphNormal0;","\t\tattribute vec3 morphNormal1;","\t\tattribute vec3 morphNormal2;","\t\tattribute vec3 morphNormal3;","\t#else","\t\tattribute vec3 morphTarget4;","\t\tattribute vec3 morphTarget5;","\t\tattribute vec3 morphTarget6;","\t\tattribute vec3 morphTarget7;","\t#endif","#endif","#ifdef USE_SKINNING","\tattribute vec4 skinIndex;","\tattribute vec4 skinWeight;","#endif","\n"].filter(va).join("\n"),S=[g,Ca(n),"#define SHADER_NAME "+n.shaderName,b,n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.matcap?"#define USE_MATCAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+c:"",n.envMap?"#define "+u:"",n.envMap?"#define "+f:"",m?"#define CUBEUV_TEXEL_WIDTH "+m.texelWidth:"",m?"#define CUBEUV_TEXEL_HEIGHT "+m.texelHeight:"",m?"#define CUBEUV_MAX_MIP "+m.maxMip+".0":"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMap&&n.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",n.normalMap&&n.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",n.clearcoat?"#define USE_CLEARCOAT":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularIntensityMap?"#define USE_SPECULARINTENSITYMAP":"",n.specularColorMap?"#define USE_SPECULARCOLORMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.alphaTest?"#define USE_ALPHATEST":"",n.sheen?"#define USE_SHEEN":"",n.sheenColorMap?"#define USE_SHEENCOLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEENROUGHNESSMAP":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",n.vertexTangents?"#define USE_TANGENT":"",n.vertexColors||n.instancingColor?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUvs?"#define USE_UV":"",n.uvsVertexOnly?"#define UVS_VERTEX_ONLY":"",n.gradientMap?"#define USE_GRADIENTMAP":"",n.flatShading?"#define FLAT_SHADED":"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+l:"",n.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",n.physicallyCorrectLights?"#define PHYSICALLY_CORRECT_LIGHTS":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",n.toneMapping!==J?"#define TONE_MAPPING":"",n.toneMapping!==J?Mo.tonemapping_pars_fragment:"",n.toneMapping!==J?ba("toneMapping",n.toneMapping):"",n.dithering?"#define DITHERING":"",n.opaque?"#define OPAQUE":"",Mo.encodings_pars_fragment,ga("linearToOutputTexel",n.outputEncoding),n.useDepthPacking?"#define DEPTH_PACKING "+n.depthPacking:"","\n"].filter(va).join("\n")),s=xa(s),s=ya(s,n),s=Sa(s,n),a=xa(a),a=ya(a,n),a=Sa(a,n),s=Ea(s),a=Ea(a),n.isWebGL2&&!0!==n.isRawShaderMaterial&&(_="#version 300 es\n",y=["precision mediump sampler2DArray;","#define attribute in","#define varying out","#define texture2D texture"].join("\n")+"\n"+y,S=["#define varying in",n.glslVersion===fn?"":"layout(location = 0) out highp vec4 pc_fragColor;",n.glslVersion===fn?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join("\n")+"\n"+S);const x=_+S+a,w=pa(i,35633,_+y+s),k=pa(i,35632,x);if(i.attachShader(v,w),i.attachShader(v,k),void 0!==n.index0AttributeName?i.bindAttribLocation(v,0,n.index0AttributeName):!0===n.morphTargets&&i.bindAttribLocation(v,0,"position"),i.linkProgram(v),e.debug.checkShaderErrors){const e=i.getProgramInfoLog(v).trim(),t=i.getShaderInfoLog(w).trim(),n=i.getShaderInfoLog(k).trim();let r=!0,o=!0;if(!1===i.getProgramParameter(v,35714)){r=!1;const t=ma(i,w,"vertex"),n=ma(i,k,"fragment");console.error("THREE.WebGLProgram: Shader Error "+i.getError()+" - VALIDATE_STATUS "+i.getProgramParameter(v,35715)+"\n\nProgram Info Log: "+e+"\n"+t+"\n"+n)}else""!==e?console.warn("THREE.WebGLProgram: Program Info Log:",e):""!==t&&""!==n||(o=!1);o&&(this.diagnostics={runnable:r,programLog:e,vertexShader:{log:t,prefix:y},fragmentShader:{log:n,prefix:S}})}let O,E;return i.deleteShader(w),i.deleteShader(k),this.getUniforms=function(){return void 0===O&&(O=new ha(i,v)),O},this.getAttributes=function(){return void 0===E&&(E=function(e,t){const n={},r=e.getProgramParameter(t,35721);for(let i=0;i0,N=o.clearcoat>0;return{isWebGL2:u,shaderID:O,shaderName:o.type,vertexShader:T,fragmentShader:C,defines:o.defines,customVertexShaderID:M,customFragmentShaderID:$,isRawShaderMaterial:!0===o.isRawShaderMaterial,glslVersion:o.glslVersion,precision:p,instancing:!0===v.isInstancedMesh,instancingColor:!0===v.isInstancedMesh&&null!==v.instanceColor,supportsVertexTextures:h,outputEncoding:null===R?e.outputEncoding:!0===R.isXRRenderTarget?R.texture.encoding:Pt,map:!!o.map,matcap:!!o.matcap,envMap:!!w,envMapMode:w&&w.mapping,envMapCubeUVHeight:k,lightMap:!!o.lightMap,aoMap:!!o.aoMap,emissiveMap:!!o.emissiveMap,bumpMap:!!o.bumpMap,normalMap:!!o.normalMap,objectSpaceNormalMap:o.normalMapType===It,tangentSpaceNormalMap:o.normalMapType===Dt,decodeVideoTexture:!!o.map&&!0===o.map.isVideoTexture&&o.map.encoding===Rt,clearcoat:N,clearcoatMap:N&&!!o.clearcoatMap,clearcoatRoughnessMap:N&&!!o.clearcoatRoughnessMap,clearcoatNormalMap:N&&!!o.clearcoatNormalMap,displacementMap:!!o.displacementMap,roughnessMap:!!o.roughnessMap,metalnessMap:!!o.metalnessMap,specularMap:!!o.specularMap,specularIntensityMap:!!o.specularIntensityMap,specularColorMap:!!o.specularColorMap,opaque:!1===o.transparent&&o.blending===S,alphaMap:!!o.alphaMap,alphaTest:j,gradientMap:!!o.gradientMap,sheen:o.sheen>0,sheenColorMap:!!o.sheenColorMap,sheenRoughnessMap:!!o.sheenRoughnessMap,transmission:o.transmission>0,transmissionMap:!!o.transmissionMap,thicknessMap:!!o.thicknessMap,combine:o.combine,vertexTangents:!!o.normalMap&&!!_.attributes.tangent,vertexColors:o.vertexColors,vertexAlphas:!0===o.vertexColors&&!!_.attributes.color&&4===_.attributes.color.itemSize,vertexUvs:!!(o.map||o.bumpMap||o.normalMap||o.specularMap||o.alphaMap||o.emissiveMap||o.roughnessMap||o.metalnessMap||o.clearcoatMap||o.clearcoatRoughnessMap||o.clearcoatNormalMap||o.displacementMap||o.transmissionMap||o.thicknessMap||o.specularIntensityMap||o.specularColorMap||o.sheenColorMap||o.sheenRoughnessMap),uvsVertexOnly:!(o.map||o.bumpMap||o.normalMap||o.specularMap||o.alphaMap||o.emissiveMap||o.roughnessMap||o.metalnessMap||o.clearcoatNormalMap||o.transmission>0||o.transmissionMap||o.thicknessMap||o.specularIntensityMap||o.specularColorMap||o.sheen>0||o.sheenColorMap||o.sheenRoughnessMap||!o.displacementMap),fog:!!y,useFog:!0===o.fog,fogExp2:y&&y.isFogExp2,flatShading:!!o.flatShading,sizeAttenuation:o.sizeAttenuation,logarithmicDepthBuffer:d,skinning:!0===v.isSkinnedMesh,morphTargets:void 0!==_.morphAttributes.position,morphNormals:void 0!==_.morphAttributes.normal,morphColors:void 0!==_.morphAttributes.color,morphTargetsCount:A,morphTextureStride:P,numDirLights:a.directional.length,numPointLights:a.point.length,numSpotLights:a.spot.length,numRectAreaLights:a.rectArea.length,numHemiLights:a.hemi.length,numDirLightShadows:a.directionalShadowMap.length,numPointLightShadows:a.pointShadowMap.length,numSpotLightShadows:a.spotShadowMap.length,numClippingPlanes:s.numPlanes,numClipIntersection:s.numIntersection,dithering:o.dithering,shadowMapEnabled:e.shadowMap.enabled&&c.length>0,shadowMapType:e.shadowMap.type,toneMapping:o.toneMapped?e.toneMapping:J,physicallyCorrectLights:e.physicallyCorrectLights,premultipliedAlpha:o.premultipliedAlpha,doubleSided:o.side===g,flipSided:o.side===m,useDepthPacking:!!o.depthPacking,depthPacking:o.depthPacking||0,index0AttributeName:o.index0AttributeName,extensionDerivatives:o.extensions&&o.extensions.derivatives,extensionFragDepth:o.extensions&&o.extensions.fragDepth,extensionDrawBuffers:o.extensions&&o.extensions.drawBuffers,extensionShaderTextureLOD:o.extensions&&o.extensions.shaderTextureLOD,rendererExtensionFragDepth:u||r.has("EXT_frag_depth"),rendererExtensionDrawBuffers:u||r.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:u||r.has("EXT_shader_texture_lod"),customProgramCacheKey:o.customProgramCacheKey()}},getProgramCacheKey:function(t){const n=[];if(t.shaderID?n.push(t.shaderID):(n.push(t.customVertexShaderID),n.push(t.customFragmentShaderID)),void 0!==t.defines)for(const e in t.defines)n.push(e),n.push(t.defines[e]);return!1===t.isRawShaderMaterial&&(!function(e,t){e.push(t.precision),e.push(t.outputEncoding),e.push(t.envMapMode),e.push(t.envMapCubeUVHeight),e.push(t.combine),e.push(t.vertexUvs),e.push(t.fogExp2),e.push(t.sizeAttenuation),e.push(t.morphTargetsCount),e.push(t.morphAttributeCount),e.push(t.numDirLights),e.push(t.numPointLights),e.push(t.numSpotLights),e.push(t.numHemiLights),e.push(t.numRectAreaLights),e.push(t.numDirLightShadows),e.push(t.numPointLightShadows),e.push(t.numSpotLightShadows),e.push(t.shadowMapType),e.push(t.toneMapping),e.push(t.numClippingPlanes),e.push(t.numClipIntersection),e.push(t.depthPacking)}(n,t),function(e,t){a.disableAll(),t.isWebGL2&&a.enable(0);t.supportsVertexTextures&&a.enable(1);t.instancing&&a.enable(2);t.instancingColor&&a.enable(3);t.map&&a.enable(4);t.matcap&&a.enable(5);t.envMap&&a.enable(6);t.lightMap&&a.enable(7);t.aoMap&&a.enable(8);t.emissiveMap&&a.enable(9);t.bumpMap&&a.enable(10);t.normalMap&&a.enable(11);t.objectSpaceNormalMap&&a.enable(12);t.tangentSpaceNormalMap&&a.enable(13);t.clearcoat&&a.enable(14);t.clearcoatMap&&a.enable(15);t.clearcoatRoughnessMap&&a.enable(16);t.clearcoatNormalMap&&a.enable(17);t.displacementMap&&a.enable(18);t.specularMap&&a.enable(19);t.roughnessMap&&a.enable(20);t.metalnessMap&&a.enable(21);t.gradientMap&&a.enable(22);t.alphaMap&&a.enable(23);t.alphaTest&&a.enable(24);t.vertexColors&&a.enable(25);t.vertexAlphas&&a.enable(26);t.vertexUvs&&a.enable(27);t.vertexTangents&&a.enable(28);t.uvsVertexOnly&&a.enable(29);t.fog&&a.enable(30);e.push(a.mask),a.disableAll(),t.useFog&&a.enable(0);t.flatShading&&a.enable(1);t.logarithmicDepthBuffer&&a.enable(2);t.skinning&&a.enable(3);t.morphTargets&&a.enable(4);t.morphNormals&&a.enable(5);t.morphColors&&a.enable(6);t.premultipliedAlpha&&a.enable(7);t.shadowMapEnabled&&a.enable(8);t.physicallyCorrectLights&&a.enable(9);t.doubleSided&&a.enable(10);t.flipSided&&a.enable(11);t.useDepthPacking&&a.enable(12);t.dithering&&a.enable(13);t.specularIntensityMap&&a.enable(14);t.specularColorMap&&a.enable(15);t.transmission&&a.enable(16);t.transmissionMap&&a.enable(17);t.thicknessMap&&a.enable(18);t.sheen&&a.enable(19);t.sheenColorMap&&a.enable(20);t.sheenRoughnessMap&&a.enable(21);t.decodeVideoTexture&&a.enable(22);t.opaque&&a.enable(23);e.push(a.mask)}(n,t),n.push(e.outputEncoding)),n.push(t.customProgramCacheKey),n.join()},getUniforms:function(e){const t=f[e.type];let n;if(t){const e=Po[t];n=po.clone(e.uniforms)}else n=e.uniforms;return n},acquireProgram:function(t,n){let r;for(let e=0,t=c.length;e0?r.push(u):!0===s.transparent?i.push(u):n.push(u)},unshift:function(e,t,s,a,l,c){const u=o(e,t,s,a,l,c);s.transmission>0?r.unshift(u):!0===s.transparent?i.unshift(u):n.unshift(u)},finish:function(){for(let n=t,r=e.length;n1&&n.sort(e||Da),r.length>1&&r.sort(t||Ia),i.length>1&&i.sort(t||Ia)}}}function Ba(){let e=new WeakMap;return{get:function(t,n){let r;return!1===e.has(t)?(r=new La,e.set(t,[r])):n>=e.get(t).length?(r=new La,e.get(t).push(r)):r=e.get(t)[n],r},dispose:function(){e=new WeakMap}}}function za(){const e={};return{get:function(t){if(void 0!==e[t.id])return e[t.id];let n;switch(t.type){case"DirectionalLight":n={direction:new sr,color:new Gn};break;case"SpotLight":n={position:new sr,direction:new sr,color:new Gn,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":n={position:new sr,color:new Gn,distance:0,decay:0};break;case"HemisphereLight":n={direction:new sr,skyColor:new Gn,groundColor:new Gn};break;case"RectAreaLight":n={color:new Gn,position:new sr,halfWidth:new sr,halfHeight:new sr}}return e[t.id]=n,n}}}let Fa=0;function Ua(e,t){return(t.castShadow?1:0)-(e.castShadow?1:0)}function Qa(e,t){const n=new za,r=function(){const e={};return{get:function(t){if(void 0!==e[t.id])return e[t.id];let n;switch(t.type){case"DirectionalLight":case"SpotLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Cn};break;case"PointLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Cn,shadowCameraNear:1,shadowCameraFar:1e3}}return e[t.id]=n,n}}}(),i={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotShadow:[],spotShadowMap:[],spotShadowMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[]};for(let e=0;e<9;e++)i.probe.push(new sr);const o=new sr,s=new Ir,a=new Ir;return{setup:function(o,s){let a=0,l=0,c=0;for(let e=0;e<9;e++)i.probe[e].set(0,0,0);let u=0,d=0,h=0,p=0,f=0,m=0,g=0,b=0;o.sort(Ua);const v=!0!==s?Math.PI:1;for(let e=0,t=o.length;e0&&(t.isWebGL2||!0===e.has("OES_texture_float_linear")?(i.rectAreaLTC1=$o.LTC_FLOAT_1,i.rectAreaLTC2=$o.LTC_FLOAT_2):!0===e.has("OES_texture_half_float_linear")?(i.rectAreaLTC1=$o.LTC_HALF_1,i.rectAreaLTC2=$o.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),i.ambient[0]=a,i.ambient[1]=l,i.ambient[2]=c;const y=i.hash;y.directionalLength===u&&y.pointLength===d&&y.spotLength===h&&y.rectAreaLength===p&&y.hemiLength===f&&y.numDirectionalShadows===m&&y.numPointShadows===g&&y.numSpotShadows===b||(i.directional.length=u,i.spot.length=h,i.rectArea.length=p,i.point.length=d,i.hemi.length=f,i.directionalShadow.length=m,i.directionalShadowMap.length=m,i.pointShadow.length=g,i.pointShadowMap.length=g,i.spotShadow.length=b,i.spotShadowMap.length=b,i.directionalShadowMatrix.length=m,i.pointShadowMatrix.length=g,i.spotShadowMatrix.length=b,y.directionalLength=u,y.pointLength=d,y.spotLength=h,y.rectAreaLength=p,y.hemiLength=f,y.numDirectionalShadows=m,y.numPointShadows=g,y.numSpotShadows=b,i.version=Fa++)},setupView:function(e,t){let n=0,r=0,l=0,c=0,u=0;const d=t.matrixWorldInverse;for(let t=0,h=e.length;t=n.get(r).length?(o=new qa(e,t),n.get(r).push(o)):o=n.get(r)[i],o},dispose:function(){n=new WeakMap}}}class Ha extends _i{constructor(e){super(),this.type="MeshDepthMaterial",this.depthPacking=jt,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(e)}copy(e){return super.copy(e),this.depthPacking=e.depthPacking,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this}}Ha.prototype.isMeshDepthMaterial=!0;class Va extends _i{constructor(e){super(),this.type="MeshDistanceMaterial",this.referencePosition=new sr,this.nearDistance=1,this.farDistance=1e3,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(e)}copy(e){return super.copy(e),this.referencePosition.copy(e.referencePosition),this.nearDistance=e.nearDistance,this.farDistance=e.farDistance,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this}}Va.prototype.isMeshDistanceMaterial=!0;function Wa(e,t,n){let r=new Eo;const i=new Cn,o=new Cn,s=new Jn,a=new Ha({depthPacking:Nt}),l=new Va,c={},u=n.maxTextureSize,h={0:m,1:f,2:g},b=new fo({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new Cn},radius:{value:4}},vertexShader:"void main() {\n\tgl_Position = vec4( position, 1.0 );\n}",fragmentShader:"uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include \nvoid main() {\n\tconst float samples = float( VSM_SAMPLES );\n\tfloat mean = 0.0;\n\tfloat squared_mean = 0.0;\n\tfloat uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );\n\tfloat uvStart = samples <= 1.0 ? 0.0 : - 1.0;\n\tfor ( float i = 0.0; i < samples; i ++ ) {\n\t\tfloat uvOffset = uvStart + i * uvStride;\n\t\t#ifdef HORIZONTAL_PASS\n\t\t\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );\n\t\t\tmean += distribution.x;\n\t\t\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n\t\t#else\n\t\t\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );\n\t\t\tmean += depth;\n\t\t\tsquared_mean += depth * depth;\n\t\t#endif\n\t}\n\tmean = mean / samples;\n\tsquared_mean = squared_mean / samples;\n\tfloat std_dev = sqrt( squared_mean - mean * mean );\n\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}"}),v=b.clone();v.defines.HORIZONTAL_PASS=1;const S=new Qi;S.setAttribute("position",new Oi(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const _=new ao(S,b),x=this;function w(n,r){const i=t.update(_);b.defines.VSM_SAMPLES!==n.blurSamples&&(b.defines.VSM_SAMPLES=n.blurSamples,v.defines.VSM_SAMPLES=n.blurSamples,b.needsUpdate=!0,v.needsUpdate=!0),b.uniforms.shadow_pass.value=n.map.texture,b.uniforms.resolution.value=n.mapSize,b.uniforms.radius.value=n.radius,e.setRenderTarget(n.mapPass),e.clear(),e.renderBufferDirect(r,null,i,b,_,null),v.uniforms.shadow_pass.value=n.mapPass.texture,v.uniforms.resolution.value=n.mapSize,v.uniforms.radius.value=n.radius,e.setRenderTarget(n.map),e.clear(),e.renderBufferDirect(r,null,i,v,_,null)}function k(t,n,r,i,o,s){let u=null;const d=!0===r.isPointLight?t.customDistanceMaterial:t.customDepthMaterial;if(u=void 0!==d?d:!0===r.isPointLight?l:a,e.localClippingEnabled&&!0===n.clipShadows&&0!==n.clippingPlanes.length||n.displacementMap&&0!==n.displacementScale||n.alphaMap&&n.alphaTest>0){const e=u.uuid,t=n.uuid;let r=c[e];void 0===r&&(r={},c[e]=r);let i=r[t];void 0===i&&(i=u.clone(),r[t]=i),u=i}return u.visible=n.visible,u.wireframe=n.wireframe,u.side=s===p?null!==n.shadowSide?n.shadowSide:n.side:null!==n.shadowSide?n.shadowSide:h[n.side],u.alphaMap=n.alphaMap,u.alphaTest=n.alphaTest,u.clipShadows=n.clipShadows,u.clippingPlanes=n.clippingPlanes,u.clipIntersection=n.clipIntersection,u.displacementMap=n.displacementMap,u.displacementScale=n.displacementScale,u.displacementBias=n.displacementBias,u.wireframeLinewidth=n.wireframeLinewidth,u.linewidth=n.linewidth,!0===r.isPointLight&&!0===u.isMeshDistanceMaterial&&(u.referencePosition.setFromMatrixPosition(r.matrixWorld),u.nearDistance=i,u.farDistance=o),u}function O(n,i,o,s,a){if(!1===n.visible)return;if(n.layers.test(i.layers)&&(n.isMesh||n.isLine||n.isPoints)&&(n.castShadow||n.receiveShadow&&a===p)&&(!n.frustumCulled||r.intersectsObject(n))){n.modelViewMatrix.multiplyMatrices(o.matrixWorldInverse,n.matrixWorld);const r=t.update(n),i=n.material;if(Array.isArray(i)){const t=r.groups;for(let l=0,c=t.length;lu||i.y>u)&&(i.x>u&&(o.x=Math.floor(u/f.x),i.x=o.x*f.x,d.mapSize.x=o.x),i.y>u&&(o.y=Math.floor(u/f.y),i.y=o.y*f.y,d.mapSize.y=o.y)),null!==d.map||d.isPointLightShadow||this.type!==p||(d.map=new Kn(i.x,i.y),d.map.texture.name=c.name+".shadowMap",d.mapPass=new Kn(i.x,i.y),d.camera.updateProjectionMatrix()),null===d.map){const e={minFilter:pe,magFilter:pe,format:De};d.map=new Kn(i.x,i.y,e),d.map.texture.name=c.name+".shadowMap",d.camera.updateProjectionMatrix()}e.setRenderTarget(d.map),e.clear();const m=d.getViewportCount();for(let e=0;e=1):-1!==ue.indexOf("OpenGL ES")&&(ce=parseFloat(/^OpenGL ES (\d)/.exec(ue)[1]),le=ce>=2);let de=null,he={};const pe=e.getParameter(3088),fe=e.getParameter(2978),me=(new Jn).fromArray(pe),ge=(new Jn).fromArray(fe);function be(t,n,r){const i=new Uint8Array(4),o=e.createTexture();e.bindTexture(t,o),e.texParameteri(t,10241,9728),e.texParameteri(t,10240,9728);for(let t=0;tr||e.height>r)&&(i=r/Math.max(e.width,e.height)),i<1||!0===t){if("undefined"!=typeof HTMLImageElement&&e instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&e instanceof ImageBitmap){const r=t?An:Math.floor,o=r(i*e.width),s=r(i*e.height);void 0===m&&(m=v(o,s));const a=n?v(o,s):m;a.width=o,a.height=s;return a.getContext("2d").drawImage(e,0,0,o,s),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+e.width+"x"+e.height+") to ("+o+"x"+s+")."),a}return"data"in e&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+e.width+"x"+e.height+")."),e}return e}function S(e){return On(e.width)&&On(e.height)}function _(e,t){return e.generateMipmaps&&t&&e.minFilter!==pe&&e.minFilter!==ve}function x(t){e.generateMipmap(t)}function w(n,r,i,o,s=!1){if(!1===a)return r;if(null!==n){if(void 0!==e[n])return e[n];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+n+"'")}let l=r;return 6403===r&&(5126===i&&(l=33326),5131===i&&(l=33325),5121===i&&(l=33321)),33319===r&&(5126===i&&(l=33328),5131===i&&(l=33327),5121===i&&(l=33323)),6408===r&&(5126===i&&(l=34836),5131===i&&(l=34842),5121===i&&(l=o===Rt&&!1===s?35907:32856),32819===i&&(l=32854),32820===i&&(l=32855)),33325!==l&&33326!==l&&33327!==l&&33328!==l&&34842!==l&&34836!==l||t.get("EXT_color_buffer_float"),l}function k(e,t,n){return!0===_(e,n)||e.isFramebufferTexture&&e.minFilter!==pe&&e.minFilter!==ve?Math.log2(Math.max(t.width,t.height))+1:void 0!==e.mipmaps&&e.mipmaps.length>0?e.mipmaps.length:e.isCompressedTexture&&Array.isArray(e.image)?t.mipmaps.length:1}function O(e){return e===pe||e===fe||e===ge?9728:9729}function E(e){const t=e.target;t.removeEventListener("dispose",E),function(e){const t=r.get(e);if(void 0===t.__webglInit)return;const n=e.source,i=g.get(n);if(i){const r=i[t.__cacheKey];r.usedTimes--,0===r.usedTimes&&T(e),0===Object.keys(i).length&&g.delete(n)}r.remove(e)}(t),t.isVideoTexture&&f.delete(t)}function A(t){const n=t.target;n.removeEventListener("dispose",A),function(t){const n=t.texture,i=r.get(t),o=r.get(n);void 0!==o.__webglTexture&&(e.deleteTexture(o.__webglTexture),s.memory.textures--);t.depthTexture&&t.depthTexture.dispose();if(t.isWebGLCubeRenderTarget)for(let t=0;t<6;t++)e.deleteFramebuffer(i.__webglFramebuffer[t]),i.__webglDepthbuffer&&e.deleteRenderbuffer(i.__webglDepthbuffer[t]);else e.deleteFramebuffer(i.__webglFramebuffer),i.__webglDepthbuffer&&e.deleteRenderbuffer(i.__webglDepthbuffer),i.__webglMultisampledFramebuffer&&e.deleteFramebuffer(i.__webglMultisampledFramebuffer),i.__webglColorRenderbuffer&&e.deleteRenderbuffer(i.__webglColorRenderbuffer),i.__webglDepthRenderbuffer&&e.deleteRenderbuffer(i.__webglDepthRenderbuffer);if(t.isWebGLMultipleRenderTargets)for(let t=0,i=n.length;t0&&i.__version!==e.version){const n=e.image;if(null===n)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else{if(!1!==n.complete)return void N(i,e,t);console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete")}}n.activeTexture(33984+t),n.bindTexture(3553,i.__webglTexture)}const $={[ue]:10497,[de]:33071,[he]:33648},P={[pe]:9728,[fe]:9984,[ge]:9986,[ve]:9729,[ye]:9985,[_e]:9987};function R(n,o,s){if(s?(e.texParameteri(n,10242,$[o.wrapS]),e.texParameteri(n,10243,$[o.wrapT]),32879!==n&&35866!==n||e.texParameteri(n,32882,$[o.wrapR]),e.texParameteri(n,10240,P[o.magFilter]),e.texParameteri(n,10241,P[o.minFilter])):(e.texParameteri(n,10242,33071),e.texParameteri(n,10243,33071),32879!==n&&35866!==n||e.texParameteri(n,32882,33071),o.wrapS===de&&o.wrapT===de||console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),e.texParameteri(n,10240,O(o.magFilter)),e.texParameteri(n,10241,O(o.minFilter)),o.minFilter!==pe&&o.minFilter!==ve&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),!0===t.has("EXT_texture_filter_anisotropic")){const s=t.get("EXT_texture_filter_anisotropic");if(o.type===Ce&&!1===t.has("OES_texture_float_linear"))return;if(!1===a&&o.type===Me&&!1===t.has("OES_texture_half_float_linear"))return;(o.anisotropy>1||r.get(o).__currentAnisotropy)&&(e.texParameterf(n,s.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(o.anisotropy,i.getMaxAnisotropy())),r.get(o).__currentAnisotropy=o.anisotropy)}}function j(t,n){let r=!1;void 0===t.__webglInit&&(t.__webglInit=!0,n.addEventListener("dispose",E));const i=n.source;let o=g.get(i);void 0===o&&(o={},g.set(i,o));const a=function(e){const t=[];return t.push(e.wrapS),t.push(e.wrapT),t.push(e.magFilter),t.push(e.minFilter),t.push(e.anisotropy),t.push(e.internalFormat),t.push(e.format),t.push(e.type),t.push(e.generateMipmaps),t.push(e.premultiplyAlpha),t.push(e.flipY),t.push(e.unpackAlignment),t.push(e.encoding),t.join()}(n);if(a!==t.__cacheKey){void 0===o[a]&&(o[a]={texture:e.createTexture(),usedTimes:0},s.memory.textures++,r=!0),o[a].usedTimes++;const i=o[t.__cacheKey];void 0!==i&&(o[t.__cacheKey].usedTimes--,0===i.usedTimes&&T(n)),t.__cacheKey=a,t.__webglTexture=o[a].texture}return r}function N(t,r,i){let s=3553;r.isDataArrayTexture&&(s=35866),r.isData3DTexture&&(s=32879);const l=j(t,r),c=r.source;if(n.activeTexture(33984+i),n.bindTexture(s,t.__webglTexture),c.version!==c.__currentVersion||!0===l){e.pixelStorei(37440,r.flipY),e.pixelStorei(37441,r.premultiplyAlpha),e.pixelStorei(3317,r.unpackAlignment),e.pixelStorei(37443,0);const i=function(e){return!a&&(e.wrapS!==de||e.wrapT!==de||e.minFilter!==pe&&e.minFilter!==ve)}(r)&&!1===S(r.image);let d=y(r.image,i,!1,u);d=F(r,d);const h=S(d)||a,p=o.convert(r.format,r.encoding);let f,m=o.convert(r.type),g=w(r.internalFormat,p,m,r.encoding,r.isVideoTexture);R(s,r,h);const b=r.mipmaps,v=a&&!0!==r.isVideoTexture,O=void 0===t.__version||!0===l,E=k(r,d,h);if(r.isDepthTexture)g=6402,a?g=r.type===Ce?36012:r.type===Te?33190:r.type===Re?35056:33189:r.type===Ce&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),r.format===Be&&6402===g&&r.type!==Ee&&r.type!==Te&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),r.type=Ee,m=o.convert(r.type)),r.format===ze&&6402===g&&(g=34041,r.type!==Re&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),r.type=Re,m=o.convert(r.type))),O&&(v?n.texStorage2D(3553,1,g,d.width,d.height):n.texImage2D(3553,0,g,d.width,d.height,0,p,m,null));else if(r.isDataTexture)if(b.length>0&&h){v&&O&&n.texStorage2D(3553,E,g,b[0].width,b[0].height);for(let e=0,t=b.length;e>=1,t>>=1}}else if(b.length>0&&h){v&&O&&n.texStorage2D(3553,E,g,b[0].width,b[0].height);for(let e=0,t=b.length;e0&&!0===t.has("WEBGL_multisampled_render_to_texture")&&!1!==n.__useRenderToTexture}function F(e,n){const r=e.encoding,i=e.format,o=e.type;return!0===e.isCompressedTexture||!0===e.isVideoTexture||e.format===mn||r!==Pt&&(r===Rt?!1===a?!0===t.has("EXT_sRGB")&&i===De?(e.format=mn,e.minFilter=ve,e.generateMipmaps=!1):n=Vn.sRGBToLinear(n):i===De&&o===we||console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture encoding:",r)),n}this.allocateTextureUnit=function(){const e=C;return e>=l&&console.warn("THREE.WebGLTextures: Trying to use "+e+" texture units while this GPU supports only "+l),C+=1,e},this.resetTextureUnits=function(){C=0},this.setTexture2D=M,this.setTexture2DArray=function(e,t){const i=r.get(e);e.version>0&&i.__version!==e.version?N(i,e,t):(n.activeTexture(33984+t),n.bindTexture(35866,i.__webglTexture))},this.setTexture3D=function(e,t){const i=r.get(e);e.version>0&&i.__version!==e.version?N(i,e,t):(n.activeTexture(33984+t),n.bindTexture(32879,i.__webglTexture))},this.setTextureCube=function(t,i){const s=r.get(t);t.version>0&&s.__version!==t.version?function(t,r,i){if(6!==r.image.length)return;const s=j(t,r),l=r.source;if(n.activeTexture(33984+i),n.bindTexture(34067,t.__webglTexture),l.version!==l.__currentVersion||!0===s){e.pixelStorei(37440,r.flipY),e.pixelStorei(37441,r.premultiplyAlpha),e.pixelStorei(3317,r.unpackAlignment),e.pixelStorei(37443,0);const i=r.isCompressedTexture||r.image[0].isCompressedTexture,s=r.image[0]&&r.image[0].isDataTexture,u=[];for(let e=0;e<6;e++)u[e]=i||s?s?r.image[e].image:r.image[e]:y(r.image[e],!1,!0,c),u[e]=F(r,u[e]);const d=u[0],h=S(d)||a,p=o.convert(r.format,r.encoding),f=o.convert(r.type),m=w(r.internalFormat,p,f,r.encoding),g=a&&!0!==r.isVideoTexture,b=void 0===t.__version;let v,O=k(r,d,h);if(R(34067,r,h),i){g&&b&&n.texStorage2D(34067,O,m,d.width,d.height);for(let e=0;e<6;e++){v=u[e].mipmaps;for(let t=0;t0&&O++,n.texStorage2D(34067,O,m,u[0].width,u[0].height));for(let e=0;e<6;e++)if(s){g?n.texSubImage2D(34069+e,0,0,0,u[e].width,u[e].height,p,f,u[e].data):n.texImage2D(34069+e,0,m,u[e].width,u[e].height,0,p,f,u[e].data);for(let t=0;t0&&!1===z(t)){c.__webglMultisampledFramebuffer=e.createFramebuffer(),c.__webglColorRenderbuffer=e.createRenderbuffer(),e.bindRenderbuffer(36161,c.__webglColorRenderbuffer);const r=o.convert(l.format,l.encoding),i=o.convert(l.type),s=w(l.internalFormat,r,i,l.encoding),a=B(t);e.renderbufferStorageMultisample(36161,a,s,t.width,t.height),n.bindFramebuffer(36160,c.__webglMultisampledFramebuffer),e.framebufferRenderbuffer(36160,36064,36161,c.__webglColorRenderbuffer),e.bindRenderbuffer(36161,null),t.depthBuffer&&(c.__webglDepthRenderbuffer=e.createRenderbuffer(),I(c.__webglDepthRenderbuffer,t,!0)),n.bindFramebuffer(36160,null)}if(d){n.bindTexture(34067,u.__webglTexture),R(34067,l,p);for(let e=0;e<6;e++)D(c.__webglFramebuffer[e],t,l,36064,34069+e);_(l,p)&&x(34067),n.unbindTexture()}else if(h){const e=t.texture;for(let i=0,o=e.length;i0&&!1===z(t)){const i=t.width,o=t.height;let s=16384;const a=[36064],l=t.stencilBuffer?33306:36096;t.depthBuffer&&a.push(l);const c=r.get(t),u=void 0!==c.__ignoreDepthValues&&c.__ignoreDepthValues;!1===u&&(t.depthBuffer&&(s|=256),t.stencilBuffer&&(s|=1024)),n.bindFramebuffer(36008,c.__webglMultisampledFramebuffer),n.bindFramebuffer(36009,c.__webglFramebuffer),!0===u&&(e.invalidateFramebuffer(36008,[l]),e.invalidateFramebuffer(36009,[l])),e.blitFramebuffer(0,0,i,o,0,0,i,o,s,9728),p&&e.invalidateFramebuffer(36008,a),n.bindFramebuffer(36008,null),n.bindFramebuffer(36009,c.__webglMultisampledFramebuffer)}},this.setupDepthRenderbuffer=L,this.setupFrameBufferTexture=D,this.useMultisampledRTT=z}function Za(e,t,n){const r=n.isWebGL2;return{convert:function(n,i=null){let o;if(n===we)return 5121;if(n===$e)return 32819;if(n===Pe)return 32820;if(n===ke)return 5120;if(n===Oe)return 5122;if(n===Ee)return 5123;if(n===Ae)return 5124;if(n===Te)return 5125;if(n===Ce)return 5126;if(n===Me)return r?5131:(o=t.get("OES_texture_half_float"),null!==o?o.HALF_FLOAT_OES:null);if(n===je)return 6406;if(n===De)return 6408;if(n===Ie)return 6409;if(n===Le)return 6410;if(n===Be)return 6402;if(n===ze)return 34041;if(n===Fe)return 6403;if(n===Ne)return console.warn("THREE.WebGLRenderer: THREE.RGBFormat has been removed. Use THREE.RGBAFormat instead. https://github.com/mrdoob/three.js/pull/23228"),6408;if(n===mn)return o=t.get("EXT_sRGB"),null!==o?o.SRGB_ALPHA_EXT:null;if(n===Ue)return 36244;if(n===Qe)return 33319;if(n===qe)return 33320;if(n===Ge)return 36249;if(n===He||n===Ve||n===We||n===Xe)if(i===Rt){if(o=t.get("WEBGL_compressed_texture_s3tc_srgb"),null===o)return null;if(n===He)return o.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(n===Ve)return o.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(n===We)return o.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(n===Xe)return o.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else{if(o=t.get("WEBGL_compressed_texture_s3tc"),null===o)return null;if(n===He)return o.COMPRESSED_RGB_S3TC_DXT1_EXT;if(n===Ve)return o.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(n===We)return o.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(n===Xe)return o.COMPRESSED_RGBA_S3TC_DXT5_EXT}if(n===Ye||n===Ze||n===Je||n===Ke){if(o=t.get("WEBGL_compressed_texture_pvrtc"),null===o)return null;if(n===Ye)return o.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(n===Ze)return o.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(n===Je)return o.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(n===Ke)return o.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}if(n===et)return o=t.get("WEBGL_compressed_texture_etc1"),null!==o?o.COMPRESSED_RGB_ETC1_WEBGL:null;if(n===tt||n===nt){if(o=t.get("WEBGL_compressed_texture_etc"),null===o)return null;if(n===tt)return i===Rt?o.COMPRESSED_SRGB8_ETC2:o.COMPRESSED_RGB8_ETC2;if(n===nt)return i===Rt?o.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:o.COMPRESSED_RGBA8_ETC2_EAC}if(n===rt||n===it||n===ot||n===st||n===at||n===lt||n===ct||n===ut||n===dt||n===ht||n===pt||n===ft||n===mt||n===gt){if(o=t.get("WEBGL_compressed_texture_astc"),null===o)return null;if(n===rt)return i===Rt?o.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:o.COMPRESSED_RGBA_ASTC_4x4_KHR;if(n===it)return i===Rt?o.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:o.COMPRESSED_RGBA_ASTC_5x4_KHR;if(n===ot)return i===Rt?o.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:o.COMPRESSED_RGBA_ASTC_5x5_KHR;if(n===st)return i===Rt?o.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:o.COMPRESSED_RGBA_ASTC_6x5_KHR;if(n===at)return i===Rt?o.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:o.COMPRESSED_RGBA_ASTC_6x6_KHR;if(n===lt)return i===Rt?o.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:o.COMPRESSED_RGBA_ASTC_8x5_KHR;if(n===ct)return i===Rt?o.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:o.COMPRESSED_RGBA_ASTC_8x6_KHR;if(n===ut)return i===Rt?o.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:o.COMPRESSED_RGBA_ASTC_8x8_KHR;if(n===dt)return i===Rt?o.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:o.COMPRESSED_RGBA_ASTC_10x5_KHR;if(n===ht)return i===Rt?o.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:o.COMPRESSED_RGBA_ASTC_10x6_KHR;if(n===pt)return i===Rt?o.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:o.COMPRESSED_RGBA_ASTC_10x8_KHR;if(n===ft)return i===Rt?o.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:o.COMPRESSED_RGBA_ASTC_10x10_KHR;if(n===mt)return i===Rt?o.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:o.COMPRESSED_RGBA_ASTC_12x10_KHR;if(n===gt)return i===Rt?o.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:o.COMPRESSED_RGBA_ASTC_12x12_KHR}if(n===bt){if(o=t.get("EXT_texture_compression_bptc"),null===o)return null;if(n===bt)return i===Rt?o.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:o.COMPRESSED_RGBA_BPTC_UNORM_EXT}return n===Re?r?34042:(o=t.get("WEBGL_depth_texture"),null!==o?o.UNSIGNED_INT_24_8_WEBGL:null):void 0!==e[n]?e[n]:null}}}class Ja extends go{constructor(e=[]){super(),this.cameras=e}}Ja.prototype.isArrayCamera=!0;class Ka extends li{constructor(){super(),this.type="Group"}}Ka.prototype.isGroup=!0;const el={type:"move"};class tl{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return null===this._hand&&(this._hand=new Ka,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return null===this._targetRay&&(this._targetRay=new Ka,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new sr,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new sr),this._targetRay}getGripSpace(){return null===this._grip&&(this._grip=new Ka,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new sr,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new sr),this._grip}dispatchEvent(e){return null!==this._targetRay&&this._targetRay.dispatchEvent(e),null!==this._grip&&this._grip.dispatchEvent(e),null!==this._hand&&this._hand.dispatchEvent(e),this}disconnect(e){return this.dispatchEvent({type:"disconnected",data:e}),null!==this._targetRay&&(this._targetRay.visible=!1),null!==this._grip&&(this._grip.visible=!1),null!==this._hand&&(this._hand.visible=!1),this}update(e,t,n){let r=null,i=null,o=null;const s=this._targetRay,a=this._grip,l=this._hand;if(e&&"visible-blurred"!==t.session.visibilityState)if(null!==s&&(r=t.getPose(e.targetRaySpace,n),null!==r&&(s.matrix.fromArray(r.transform.matrix),s.matrix.decompose(s.position,s.rotation,s.scale),r.linearVelocity?(s.hasLinearVelocity=!0,s.linearVelocity.copy(r.linearVelocity)):s.hasLinearVelocity=!1,r.angularVelocity?(s.hasAngularVelocity=!0,s.angularVelocity.copy(r.angularVelocity)):s.hasAngularVelocity=!1,this.dispatchEvent(el))),l&&e.hand){o=!0;for(const r of e.hand.values()){const e=t.getJointPose(r,n);if(void 0===l.joints[r.jointName]){const e=new Ka;e.matrixAutoUpdate=!1,e.visible=!1,l.joints[r.jointName]=e,l.add(e)}const i=l.joints[r.jointName];null!==e&&(i.matrix.fromArray(e.transform.matrix),i.matrix.decompose(i.position,i.rotation,i.scale),i.jointRadius=e.radius),i.visible=null!==e}const r=l.joints["index-finger-tip"],i=l.joints["thumb-tip"],s=r.position.distanceTo(i.position),a=.02,c=.005;l.inputState.pinching&&s>a+c?(l.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:e.handedness,target:this})):!l.inputState.pinching&&s<=a-c&&(l.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:e.handedness,target:this}))}else null!==a&&e.gripSpace&&(i=t.getPose(e.gripSpace,n),null!==i&&(a.matrix.fromArray(i.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),i.linearVelocity?(a.hasLinearVelocity=!0,a.linearVelocity.copy(i.linearVelocity)):a.hasLinearVelocity=!1,i.angularVelocity?(a.hasAngularVelocity=!0,a.angularVelocity.copy(i.angularVelocity)):a.hasAngularVelocity=!1));return null!==s&&(s.visible=null!==r),null!==a&&(a.visible=null!==i),null!==l&&(l.visible=null!==o),this}}class nl extends Zn{constructor(e,t,n,r,i,o,s,a,l,c){if((c=void 0!==c?c:Be)!==Be&&c!==ze)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");void 0===n&&c===Be&&(n=Ee),void 0===n&&c===ze&&(n=Re),super(null,r,i,o,s,a,c,n,l),this.image={width:e,height:t},this.magFilter=void 0!==s?s:pe,this.minFilter=void 0!==a?a:pe,this.flipY=!1,this.generateMipmaps=!1}}nl.prototype.isDepthTexture=!0;class rl extends gn{constructor(e,t){super();const n=this;let r=null,i=1,o=null,s="local-floor",a=null,l=null,c=null,u=null,d=null,h=null;const p=t.getContextAttributes();let f=null,m=null;const g=[],b=new Map,v=new go;v.layers.enable(1),v.viewport=new Jn;const y=new go;y.layers.enable(2),y.viewport=new Jn;const S=[v,y],_=new Ja;_.layers.enable(1),_.layers.enable(2);let x=null,w=null;function k(e){const t=b.get(e.inputSource);t&&t.dispatchEvent({type:e.type,data:e.inputSource})}function O(){b.forEach((function(e,t){e.disconnect(t)})),b.clear(),x=null,w=null,e.setRenderTarget(f),d=null,u=null,c=null,r=null,m=null,$.stop(),n.isPresenting=!1,n.dispatchEvent({type:"sessionend"})}function E(e){const t=r.inputSources;for(let e=0;e0&&(n.alphaTest.value=r.alphaTest);const i=t.get(r).envMap;if(i&&(n.envMap.value=i,n.flipEnvMap.value=i.isCubeTexture&&!1===i.isRenderTargetTexture?-1:1,n.reflectivity.value=r.reflectivity,n.ior.value=r.ior,n.refractionRatio.value=r.refractionRatio),r.lightMap){n.lightMap.value=r.lightMap;const t=!0!==e.physicallyCorrectLights?Math.PI:1;n.lightMapIntensity.value=r.lightMapIntensity*t}let o,s;r.aoMap&&(n.aoMap.value=r.aoMap,n.aoMapIntensity.value=r.aoMapIntensity),r.map?o=r.map:r.specularMap?o=r.specularMap:r.displacementMap?o=r.displacementMap:r.normalMap?o=r.normalMap:r.bumpMap?o=r.bumpMap:r.roughnessMap?o=r.roughnessMap:r.metalnessMap?o=r.metalnessMap:r.alphaMap?o=r.alphaMap:r.emissiveMap?o=r.emissiveMap:r.clearcoatMap?o=r.clearcoatMap:r.clearcoatNormalMap?o=r.clearcoatNormalMap:r.clearcoatRoughnessMap?o=r.clearcoatRoughnessMap:r.specularIntensityMap?o=r.specularIntensityMap:r.specularColorMap?o=r.specularColorMap:r.transmissionMap?o=r.transmissionMap:r.thicknessMap?o=r.thicknessMap:r.sheenColorMap?o=r.sheenColorMap:r.sheenRoughnessMap&&(o=r.sheenRoughnessMap),void 0!==o&&(o.isWebGLRenderTarget&&(o=o.texture),!0===o.matrixAutoUpdate&&o.updateMatrix(),n.uvTransform.value.copy(o.matrix)),r.aoMap?s=r.aoMap:r.lightMap&&(s=r.lightMap),void 0!==s&&(s.isWebGLRenderTarget&&(s=s.texture),!0===s.matrixAutoUpdate&&s.updateMatrix(),n.uv2Transform.value.copy(s.matrix))}return{refreshFogUniforms:function(e,t){e.fogColor.value.copy(t.color),t.isFog?(e.fogNear.value=t.near,e.fogFar.value=t.far):t.isFogExp2&&(e.fogDensity.value=t.density)},refreshMaterialUniforms:function(e,r,i,o,s){r.isMeshBasicMaterial||r.isMeshLambertMaterial?n(e,r):r.isMeshToonMaterial?(n(e,r),function(e,t){t.gradientMap&&(e.gradientMap.value=t.gradientMap)}(e,r)):r.isMeshPhongMaterial?(n(e,r),function(e,t){e.specular.value.copy(t.specular),e.shininess.value=Math.max(t.shininess,1e-4)}(e,r)):r.isMeshStandardMaterial?(n(e,r),function(e,n){e.roughness.value=n.roughness,e.metalness.value=n.metalness,n.roughnessMap&&(e.roughnessMap.value=n.roughnessMap);n.metalnessMap&&(e.metalnessMap.value=n.metalnessMap);t.get(n).envMap&&(e.envMapIntensity.value=n.envMapIntensity)}(e,r),r.isMeshPhysicalMaterial&&function(e,t,n){e.ior.value=t.ior,t.sheen>0&&(e.sheenColor.value.copy(t.sheenColor).multiplyScalar(t.sheen),e.sheenRoughness.value=t.sheenRoughness,t.sheenColorMap&&(e.sheenColorMap.value=t.sheenColorMap),t.sheenRoughnessMap&&(e.sheenRoughnessMap.value=t.sheenRoughnessMap));t.clearcoat>0&&(e.clearcoat.value=t.clearcoat,e.clearcoatRoughness.value=t.clearcoatRoughness,t.clearcoatMap&&(e.clearcoatMap.value=t.clearcoatMap),t.clearcoatRoughnessMap&&(e.clearcoatRoughnessMap.value=t.clearcoatRoughnessMap),t.clearcoatNormalMap&&(e.clearcoatNormalScale.value.copy(t.clearcoatNormalScale),e.clearcoatNormalMap.value=t.clearcoatNormalMap,t.side===m&&e.clearcoatNormalScale.value.negate()));t.transmission>0&&(e.transmission.value=t.transmission,e.transmissionSamplerMap.value=n.texture,e.transmissionSamplerSize.value.set(n.width,n.height),t.transmissionMap&&(e.transmissionMap.value=t.transmissionMap),e.thickness.value=t.thickness,t.thicknessMap&&(e.thicknessMap.value=t.thicknessMap),e.attenuationDistance.value=t.attenuationDistance,e.attenuationColor.value.copy(t.attenuationColor));e.specularIntensity.value=t.specularIntensity,e.specularColor.value.copy(t.specularColor),t.specularIntensityMap&&(e.specularIntensityMap.value=t.specularIntensityMap);t.specularColorMap&&(e.specularColorMap.value=t.specularColorMap)}(e,r,s)):r.isMeshMatcapMaterial?(n(e,r),function(e,t){t.matcap&&(e.matcap.value=t.matcap)}(e,r)):r.isMeshDepthMaterial?n(e,r):r.isMeshDistanceMaterial?(n(e,r),function(e,t){e.referencePosition.value.copy(t.referencePosition),e.nearDistance.value=t.nearDistance,e.farDistance.value=t.farDistance}(e,r)):r.isMeshNormalMaterial?n(e,r):r.isLineBasicMaterial?(function(e,t){e.diffuse.value.copy(t.color),e.opacity.value=t.opacity}(e,r),r.isLineDashedMaterial&&function(e,t){e.dashSize.value=t.dashSize,e.totalSize.value=t.dashSize+t.gapSize,e.scale.value=t.scale}(e,r)):r.isPointsMaterial?function(e,t,n,r){e.diffuse.value.copy(t.color),e.opacity.value=t.opacity,e.size.value=t.size*n,e.scale.value=.5*r,t.map&&(e.map.value=t.map);t.alphaMap&&(e.alphaMap.value=t.alphaMap);t.alphaTest>0&&(e.alphaTest.value=t.alphaTest);let i;t.map?i=t.map:t.alphaMap&&(i=t.alphaMap);void 0!==i&&(!0===i.matrixAutoUpdate&&i.updateMatrix(),e.uvTransform.value.copy(i.matrix))}(e,r,i,o):r.isSpriteMaterial?function(e,t){e.diffuse.value.copy(t.color),e.opacity.value=t.opacity,e.rotation.value=t.rotation,t.map&&(e.map.value=t.map);t.alphaMap&&(e.alphaMap.value=t.alphaMap);t.alphaTest>0&&(e.alphaTest.value=t.alphaTest);let n;t.map?n=t.map:t.alphaMap&&(n=t.alphaMap);void 0!==n&&(!0===n.matrixAutoUpdate&&n.updateMatrix(),e.uvTransform.value.copy(n.matrix))}(e,r):r.isShadowMaterial?(e.color.value.copy(r.color),e.opacity.value=r.opacity):r.isShaderMaterial&&(r.uniformsNeedUpdate=!1)}}}function ol(e={}){const t=void 0!==e.canvas?e.canvas:function(){const e=jn("canvas");return e.style.display="block",e}(),n=void 0!==e.context?e.context:null,i=void 0===e.depth||e.depth,o=void 0===e.stencil||e.stencil,s=void 0!==e.antialias&&e.antialias,a=void 0===e.premultipliedAlpha||e.premultipliedAlpha,l=void 0!==e.preserveDrawingBuffer&&e.preserveDrawingBuffer,c=void 0!==e.powerPreference?e.powerPreference:"default",u=void 0!==e.failIfMajorPerformanceCaveat&&e.failIfMajorPerformanceCaveat;let d;d=null!==n?n.getContextAttributes().alpha:void 0!==e.alpha&&e.alpha;let h=null,p=null;const b=[],v=[];this.domElement=t,this.debug={checkShaderErrors:!0},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.outputEncoding=Pt,this.physicallyCorrectLights=!1,this.toneMapping=J,this.toneMappingExposure=1;const y=this;let S=!1,_=0,x=0,w=null,k=-1,O=null;const E=new Jn,A=new Jn;let T=null,C=t.width,M=t.height,$=1,P=null,R=null;const j=new Jn(0,0,C,M),N=new Jn(0,0,C,M);let D=!1;const I=new Eo;let L=!1,B=!1,z=null;const F=new Ir,U=new Cn,Q=new sr,q={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function G(){return null===w?$:1}let H,V,W,X,Y,Z,K,ee,te,ne,re,ie,oe,se,ae,le,ce,ue,de,he,pe,fe,me,ge=n;function be(e,n){for(let r=0;r0&&function(e,t,n){const r=V.isWebGL2;null===z&&(z=new Kn(1,1,{generateMipmaps:!0,type:H.has("EXT_color_buffer_half_float")?Me:we,minFilter:_e,samples:r&&!0===s?4:0}));y.getDrawingBufferSize(U),r?z.setSize(U.x,U.y):z.setSize(An(U.x),An(U.y));const i=y.getRenderTarget();y.setRenderTarget(z),y.clear();const o=y.toneMapping;y.toneMapping=J,Pe(e,t,n),y.toneMapping=o,Z.updateMultisampleRenderTarget(z),Z.updateRenderTargetMipmap(z),y.setRenderTarget(i)}(i,t,n),r&&W.viewport(E.copy(r)),i.length>0&&Pe(i,t,n),o.length>0&&Pe(o,t,n),a.length>0&&Pe(a,t,n),W.buffers.depth.setTest(!0),W.buffers.depth.setMask(!0),W.buffers.color.setMask(!0),W.setPolygonOffset(!1)}function Pe(e,t,n){const r=!0===t.isScene?t.overrideMaterial:null;for(let i=0,o=e.length;i0?v[v.length-1]:null,b.pop(),h=b.length>0?b[b.length-1]:null},this.getActiveCubeFace=function(){return _},this.getActiveMipmapLevel=function(){return x},this.getRenderTarget=function(){return w},this.setRenderTargetTextures=function(e,t,n){Y.get(e.texture).__webglTexture=t,Y.get(e.depthTexture).__webglTexture=n;const r=Y.get(e);r.__hasExternalTextures=!0,r.__hasExternalTextures&&(r.__autoAllocateDepthBuffer=void 0===n,r.__autoAllocateDepthBuffer||!0===H.has("WEBGL_multisampled_render_to_texture")&&(console.warn("THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided"),r.__useRenderToTexture=!1))},this.setRenderTargetFramebuffer=function(e,t){const n=Y.get(e);n.__webglFramebuffer=t,n.__useDefaultFramebuffer=void 0===t},this.setRenderTarget=function(e,t=0,n=0){w=e,_=t,x=n;let r=!0;if(e){const t=Y.get(e);void 0!==t.__useDefaultFramebuffer?(W.bindFramebuffer(36160,null),r=!1):void 0===t.__webglFramebuffer?Z.setupRenderTarget(e):t.__hasExternalTextures&&Z.rebindTextures(e,Y.get(e.texture).__webglTexture,Y.get(e.depthTexture).__webglTexture)}let i=null,o=!1,s=!1;if(e){const n=e.texture;(n.isData3DTexture||n.isDataArrayTexture)&&(s=!0);const r=Y.get(e).__webglFramebuffer;e.isWebGLCubeRenderTarget?(i=r[t],o=!0):i=V.isWebGL2&&e.samples>0&&!1===Z.useMultisampledRTT(e)?Y.get(e).__webglMultisampledFramebuffer:r,E.copy(e.viewport),A.copy(e.scissor),T=e.scissorTest}else E.copy(j).multiplyScalar($).floor(),A.copy(N).multiplyScalar($).floor(),T=D;if(W.bindFramebuffer(36160,i)&&V.drawBuffers&&r&&W.drawBuffers(e,i),W.viewport(E),W.scissor(A),W.setScissorTest(T),o){const r=Y.get(e.texture);ge.framebufferTexture2D(36160,36064,34069+t,r.__webglTexture,n)}else if(s){const r=Y.get(e.texture),i=t||0;ge.framebufferTextureLayer(36160,36064,r.__webglTexture,n||0,i)}k=-1},this.readRenderTargetPixels=function(e,t,n,r,i,o,s){if(!e||!e.isWebGLRenderTarget)return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let a=Y.get(e).__webglFramebuffer;if(e.isWebGLCubeRenderTarget&&void 0!==s&&(a=a[s]),a){W.bindFramebuffer(36160,a);try{const s=e.texture,a=s.format,l=s.type;if(a!==De&&fe.convert(a)!==ge.getParameter(35739))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");const c=l===Me&&(H.has("EXT_color_buffer_half_float")||V.isWebGL2&&H.has("EXT_color_buffer_float"));if(!(l===we||fe.convert(l)===ge.getParameter(35738)||l===Ce&&(V.isWebGL2||H.has("OES_texture_float")||H.has("WEBGL_color_buffer_float"))||c))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");t>=0&&t<=e.width-r&&n>=0&&n<=e.height-i&&ge.readPixels(t,n,r,i,fe.convert(a),fe.convert(l),o)}finally{const e=null!==w?Y.get(w).__webglFramebuffer:null;W.bindFramebuffer(36160,e)}}},this.copyFramebufferToTexture=function(e,t,n=0){if(!0!==t.isFramebufferTexture)return void console.error("THREE.WebGLRenderer: copyFramebufferToTexture() can only be used with FramebufferTexture.");const r=Math.pow(2,-n),i=Math.floor(t.image.width*r),o=Math.floor(t.image.height*r);Z.setTexture2D(t,0),ge.copyTexSubImage2D(3553,n,0,0,e.x,e.y,i,o),W.unbindTexture()},this.copyTextureToTexture=function(e,t,n,r=0){const i=t.image.width,o=t.image.height,s=fe.convert(n.format),a=fe.convert(n.type);Z.setTexture2D(n,0),ge.pixelStorei(37440,n.flipY),ge.pixelStorei(37441,n.premultiplyAlpha),ge.pixelStorei(3317,n.unpackAlignment),t.isDataTexture?ge.texSubImage2D(3553,r,e.x,e.y,i,o,s,a,t.image.data):t.isCompressedTexture?ge.compressedTexSubImage2D(3553,r,e.x,e.y,t.mipmaps[0].width,t.mipmaps[0].height,s,t.mipmaps[0].data):ge.texSubImage2D(3553,r,e.x,e.y,s,a,t.image),0===r&&n.generateMipmaps&&ge.generateMipmap(3553),W.unbindTexture()},this.copyTextureToTexture3D=function(e,t,n,r,i=0){if(y.isWebGL1Renderer)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");const o=e.max.x-e.min.x+1,s=e.max.y-e.min.y+1,a=e.max.z-e.min.z+1,l=fe.convert(r.format),c=fe.convert(r.type);let u;if(r.isData3DTexture)Z.setTexture3D(r,0),u=32879;else{if(!r.isDataArrayTexture)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");Z.setTexture2DArray(r,0),u=35866}ge.pixelStorei(37440,r.flipY),ge.pixelStorei(37441,r.premultiplyAlpha),ge.pixelStorei(3317,r.unpackAlignment);const d=ge.getParameter(3314),h=ge.getParameter(32878),p=ge.getParameter(3316),f=ge.getParameter(3315),m=ge.getParameter(32877),g=n.isCompressedTexture?n.mipmaps[0]:n.image;ge.pixelStorei(3314,g.width),ge.pixelStorei(32878,g.height),ge.pixelStorei(3316,e.min.x),ge.pixelStorei(3315,e.min.y),ge.pixelStorei(32877,e.min.z),n.isDataTexture||n.isData3DTexture?ge.texSubImage3D(u,i,t.x,t.y,t.z,o,s,a,l,c,g.data):n.isCompressedTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),ge.compressedTexSubImage3D(u,i,t.x,t.y,t.z,o,s,a,l,g.data)):ge.texSubImage3D(u,i,t.x,t.y,t.z,o,s,a,l,c,g),ge.pixelStorei(3314,d),ge.pixelStorei(32878,h),ge.pixelStorei(3316,p),ge.pixelStorei(3315,f),ge.pixelStorei(32877,m),0===i&&r.generateMipmaps&&ge.generateMipmap(u),W.unbindTexture()},this.initTexture=function(e){Z.setTexture2D(e,0),W.unbindTexture()},this.resetState=function(){_=0,x=0,w=null,W.reset(),me.reset()},"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}ol.prototype.isWebGLRenderer=!0;class sl extends ol{}sl.prototype.isWebGL1Renderer=!0;class al{constructor(e,t=25e-5){this.name="",this.color=new Gn(e),this.density=t}clone(){return new al(this.color,this.density)}toJSON(){return{type:"FogExp2",color:this.color.getHex(),density:this.density}}}al.prototype.isFogExp2=!0;class ll{constructor(e,t=1,n=1e3){this.name="",this.color=new Gn(e),this.near=t,this.far=n}clone(){return new ll(this.color,this.near,this.far)}toJSON(){return{type:"Fog",color:this.color.getHex(),near:this.near,far:this.far}}}ll.prototype.isFog=!0;class cl extends li{constructor(){super(),this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.overrideMaterial=null,this.autoUpdate=!0,"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(e,t){return super.copy(e,t),null!==e.background&&(this.background=e.background.clone()),null!==e.environment&&(this.environment=e.environment.clone()),null!==e.fog&&(this.fog=e.fog.clone()),null!==e.overrideMaterial&&(this.overrideMaterial=e.overrideMaterial.clone()),this.autoUpdate=e.autoUpdate,this.matrixAutoUpdate=e.matrixAutoUpdate,this}toJSON(e){const t=super.toJSON(e);return null!==this.fog&&(t.object.fog=this.fog.toJSON()),t}}cl.prototype.isScene=!0;class ul{constructor(e,t){this.array=e,this.stride=t,this.count=void 0!==e?e.length/t:0,this.usage=rn,this.updateRange={offset:0,count:-1},this.version=0,this.uuid=_n()}onUploadCallback(){}set needsUpdate(e){!0===e&&this.version++}setUsage(e){return this.usage=e,this}copy(e){return this.array=new e.array.constructor(e.array),this.count=e.count,this.stride=e.stride,this.usage=e.usage,this}copyAt(e,t,n){e*=this.stride,n*=t.stride;for(let r=0,i=this.stride;re.far||t.push({distance:a,point:ml.clone(),uv:yi.getUV(ml,_l,xl,wl,kl,Ol,El,new Cn),face:null,object:this})}copy(e){return super.copy(e),void 0!==e.center&&this.center.copy(e.center),this.material=e.material,this}}function Tl(e,t,n,r,i,o){vl.subVectors(e,n).addScalar(.5).multiply(r),void 0!==i?(yl.x=o*vl.x-i*vl.y,yl.y=i*vl.x+o*vl.y):yl.copy(vl),e.copy(t),e.x+=yl.x,e.y+=yl.y,e.applyMatrix4(Sl)}Al.prototype.isSprite=!0;const Cl=new sr,Ml=new sr;class $l extends li{constructor(){super(),this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]},isLOD:{value:!0}}),this.autoUpdate=!0}copy(e){super.copy(e,!1);const t=e.levels;for(let e=0,n=t.length;e0){let n,r;for(n=1,r=t.length;n0){Cl.setFromMatrixPosition(this.matrixWorld);const n=e.ray.origin.distanceTo(Cl);this.getObjectForDistance(n).raycast(e,t)}}update(e){const t=this.levels;if(t.length>1){Cl.setFromMatrixPosition(e.matrixWorld),Ml.setFromMatrixPosition(this.matrixWorld);const n=Cl.distanceTo(Ml)/e.zoom;let r,i;for(t[0].object.visible=!0,r=1,i=t.length;r=t[r].distance;r++)t[r-1].object.visible=!1,t[r].object.visible=!0;for(this._currentLevel=r-1;ra)continue;d.applyMatrix4(this.matrixWorld);const h=e.ray.origin.distanceTo(d);he.far||t.push({distance:h,point:u.clone().applyMatrix4(this.matrixWorld),index:n,face:null,faceIndex:null,object:this})}}else{for(let n=Math.max(0,o.start),r=Math.min(i.count,o.start+o.count)-1;na)continue;d.applyMatrix4(this.matrixWorld);const r=e.ray.origin.distanceTo(d);re.far||t.push({distance:r,point:u.clone().applyMatrix4(this.matrixWorld),index:n,face:null,faceIndex:null,object:this})}}}else n.isGeometry&&console.error("THREE.Line.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.")}updateMorphTargets(){const e=this.geometry;if(e.isBufferGeometry){const t=e.morphAttributes,n=Object.keys(t);if(n.length>0){const e=t[n[0]];if(void 0!==e){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let t=0,n=e.length;t0&&console.error("THREE.Line.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.")}}}tc.prototype.isLine=!0;const nc=new sr,rc=new sr;class ic extends tc{constructor(e,t){super(e,t),this.type="LineSegments"}computeLineDistances(){const e=this.geometry;if(e.isBufferGeometry)if(null===e.index){const t=e.attributes.position,n=[];for(let e=0,r=t.count;e0){const e=t[n[0]];if(void 0!==e){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let t=0,n=e.length;t0&&console.error("THREE.Points.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.")}}}function hc(e,t,n,r,i,o,s){const a=lc.distanceSqToPoint(e);if(ai.far)return;o.push({distance:l,distanceToRay:Math.sqrt(a),point:n,index:t,face:null,object:s})}}dc.prototype.isPoints=!0;class pc extends Zn{constructor(e,t,n,r,i,o,s,a,l){super(e,t,n,r,i,o,s,a,l),this.minFilter=void 0!==o?o:ve,this.magFilter=void 0!==i?i:ve,this.generateMipmaps=!1;const c=this;"requestVideoFrameCallback"in e&&e.requestVideoFrameCallback((function t(){c.needsUpdate=!0,e.requestVideoFrameCallback(t)}))}clone(){return new this.constructor(this.image).copy(this)}update(){const e=this.image;!1==="requestVideoFrameCallback"in e&&e.readyState>=e.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}pc.prototype.isVideoTexture=!0;class fc extends Zn{constructor(e,t,n){super({width:e,height:t}),this.format=n,this.magFilter=pe,this.minFilter=pe,this.generateMipmaps=!1,this.needsUpdate=!0}}fc.prototype.isFramebufferTexture=!0;class mc extends Zn{constructor(e,t,n,r,i,o,s,a,l,c,u,d){super(null,o,s,a,l,c,r,i,u,d),this.image={width:t,height:n},this.mipmaps=e,this.flipY=!1,this.generateMipmaps=!1}}mc.prototype.isCompressedTexture=!0;class gc extends Zn{constructor(e,t,n,r,i,o,s,a,l){super(e,t,n,r,i,o,s,a,l),this.needsUpdate=!0}}gc.prototype.isCanvasTexture=!0;class bc{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(e,t){const n=this.getUtoTmapping(e);return this.getPoint(n,t)}getPoints(e=5){const t=[];for(let n=0;n<=e;n++)t.push(this.getPoint(n/e));return t}getSpacedPoints(e=5){const t=[];for(let n=0;n<=e;n++)t.push(this.getPointAt(n/e));return t}getLength(){const e=this.getLengths();return e[e.length-1]}getLengths(e=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===e+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const t=[];let n,r=this.getPoint(0),i=0;t.push(0);for(let o=1;o<=e;o++)n=this.getPoint(o/e),i+=n.distanceTo(r),t.push(i),r=n;return this.cacheArcLengths=t,t}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(e,t){const n=this.getLengths();let r=0;const i=n.length;let o;o=t||e*n[i-1];let s,a=0,l=i-1;for(;a<=l;)if(r=Math.floor(a+(l-a)/2),s=n[r]-o,s<0)a=r+1;else{if(!(s>0)){l=r;break}l=r-1}if(r=l,n[r]===o)return r/(i-1);const c=n[r];return(r+(o-c)/(n[r+1]-c))/(i-1)}getTangent(e,t){let n=e-1e-4,r=e+1e-4;n<0&&(n=0),r>1&&(r=1);const i=this.getPoint(n),o=this.getPoint(r),s=t||(i.isVector2?new Cn:new sr);return s.copy(o).sub(i).normalize(),s}getTangentAt(e,t){const n=this.getUtoTmapping(e);return this.getTangent(n,t)}computeFrenetFrames(e,t){const n=new sr,r=[],i=[],o=[],s=new sr,a=new Ir;for(let t=0;t<=e;t++){const n=t/e;r[t]=this.getTangentAt(n,new sr)}i[0]=new sr,o[0]=new sr;let l=Number.MAX_VALUE;const c=Math.abs(r[0].x),u=Math.abs(r[0].y),d=Math.abs(r[0].z);c<=l&&(l=c,n.set(1,0,0)),u<=l&&(l=u,n.set(0,1,0)),d<=l&&n.set(0,0,1),s.crossVectors(r[0],n).normalize(),i[0].crossVectors(r[0],s),o[0].crossVectors(r[0],i[0]);for(let t=1;t<=e;t++){if(i[t]=i[t-1].clone(),o[t]=o[t-1].clone(),s.crossVectors(r[t-1],r[t]),s.length()>Number.EPSILON){s.normalize();const e=Math.acos(xn(r[t-1].dot(r[t]),-1,1));i[t].applyMatrix4(a.makeRotationAxis(s,e))}o[t].crossVectors(r[t],i[t])}if(!0===t){let t=Math.acos(xn(i[0].dot(i[e]),-1,1));t/=e,r[0].dot(s.crossVectors(i[0],i[e]))>0&&(t=-t);for(let n=1;n<=e;n++)i[n].applyMatrix4(a.makeRotationAxis(r[n],t*n)),o[n].crossVectors(r[n],i[n])}return{tangents:r,normals:i,binormals:o}}clone(){return(new this.constructor).copy(this)}copy(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}toJSON(){const e={metadata:{version:4.5,type:"Curve",generator:"Curve.toJSON"}};return e.arcLengthDivisions=this.arcLengthDivisions,e.type=this.type,e}fromJSON(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}}class vc extends bc{constructor(e=0,t=0,n=1,r=1,i=0,o=2*Math.PI,s=!1,a=0){super(),this.type="EllipseCurve",this.aX=e,this.aY=t,this.xRadius=n,this.yRadius=r,this.aStartAngle=i,this.aEndAngle=o,this.aClockwise=s,this.aRotation=a}getPoint(e,t){const n=t||new Cn,r=2*Math.PI;let i=this.aEndAngle-this.aStartAngle;const o=Math.abs(i)r;)i-=r;i0?0:(Math.floor(Math.abs(l)/i)+1)*i:0===c&&l===i-1&&(l=i-2,c=1),this.closed||l>0?s=r[(l-1)%i]:(_c.subVectors(r[0],r[1]).add(r[0]),s=_c);const u=r[l%i],d=r[(l+1)%i];if(this.closed||l+2r.length-2?r.length-1:o+1],u=r[o>r.length-3?r.length-1:o+2];return n.set(Ec(s,a.x,l.x,c.x,u.x),Ec(s,a.y,l.y,c.y,u.y)),n}copy(e){super.copy(e),this.points=[];for(let t=0,n=e.points.length;t=n){const e=r[i]-n,o=this.curves[i],s=o.getLength(),a=0===s?0:1-e/s;return o.getPointAt(a,t)}i++}return null}getLength(){const e=this.getCurveLengths();return e[e.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const e=[];let t=0;for(let n=0,r=this.curves.length;n1&&!t[t.length-1].equals(t[0])&&t.push(t[0]),t}copy(e){super.copy(e),this.curves=[];for(let t=0,n=e.curves.length;t0){const e=l.getPoint(0);e.equals(this.currentPoint)||this.lineTo(e.x,e.y)}this.curves.push(l);const c=l.getPoint(1);return this.currentPoint.copy(c),this}copy(e){return super.copy(e),this.currentPoint.copy(e.currentPoint),this}toJSON(){const e=super.toJSON();return e.currentPoint=this.currentPoint.toArray(),e}fromJSON(e){return super.fromJSON(e),this.currentPoint.fromArray(e.currentPoint),this}}class Bc extends Qi{constructor(e=[new Cn(0,.5),new Cn(.5,0),new Cn(0,-.5)],t=12,n=0,r=2*Math.PI){super(),this.type="LatheGeometry",this.parameters={points:e,segments:t,phiStart:n,phiLength:r},t=Math.floor(t),r=xn(r,0,2*Math.PI);const i=[],o=[],s=[],a=[],l=[],c=1/t,u=new sr,d=new Cn,h=new sr,p=new sr,f=new sr;let m=0,g=0;for(let t=0;t<=e.length-1;t++)switch(t){case 0:m=e[t+1].x-e[t].x,g=e[t+1].y-e[t].y,h.x=1*g,h.y=-m,h.z=0*g,f.copy(h),h.normalize(),a.push(h.x,h.y,h.z);break;case e.length-1:a.push(f.x,f.y,f.z);break;default:m=e[t+1].x-e[t].x,g=e[t+1].y-e[t].y,h.x=1*g,h.y=-m,h.z=0*g,p.copy(h),h.x+=f.x,h.y+=f.y,h.z+=f.z,h.normalize(),a.push(h.x,h.y,h.z),f.copy(p)}for(let i=0;i<=t;i++){const h=n+i*c*r,p=Math.sin(h),f=Math.cos(h);for(let n=0;n<=e.length-1;n++){u.x=e[n].x*p,u.y=e[n].y,u.z=e[n].x*f,o.push(u.x,u.y,u.z),d.x=i/t,d.y=n/(e.length-1),s.push(d.x,d.y);const r=a[3*n+0]*p,c=a[3*n+1],h=a[3*n+0]*f;l.push(r,c,h)}}for(let n=0;n0&&b(!0),t>0&&b(!1)),this.setIndex(c),this.setAttribute("position",new ji(u,3)),this.setAttribute("normal",new ji(d,3)),this.setAttribute("uv",new ji(h,2))}static fromJSON(e){return new Uc(e.radiusTop,e.radiusBottom,e.height,e.radialSegments,e.heightSegments,e.openEnded,e.thetaStart,e.thetaLength)}}class Qc extends Uc{constructor(e=1,t=1,n=8,r=1,i=!1,o=0,s=2*Math.PI){super(0,e,t,n,r,i,o,s),this.type="ConeGeometry",this.parameters={radius:e,height:t,radialSegments:n,heightSegments:r,openEnded:i,thetaStart:o,thetaLength:s}}static fromJSON(e){return new Qc(e.radius,e.height,e.radialSegments,e.heightSegments,e.openEnded,e.thetaStart,e.thetaLength)}}class qc extends Qi{constructor(e=[],t=[],n=1,r=0){super(),this.type="PolyhedronGeometry",this.parameters={vertices:e,indices:t,radius:n,detail:r};const i=[],o=[];function s(e,t,n,r){const i=r+1,o=[];for(let r=0;r<=i;r++){o[r]=[];const s=e.clone().lerp(n,r/i),a=t.clone().lerp(n,r/i),l=i-r;for(let e=0;e<=l;e++)o[r][e]=0===e&&r===i?s:s.clone().lerp(a,e/l)}for(let e=0;e.9&&s<.1&&(t<.2&&(o[e+0]+=1),n<.2&&(o[e+2]+=1),r<.2&&(o[e+4]+=1))}}()}(),this.setAttribute("position",new ji(i,3)),this.setAttribute("normal",new ji(i.slice(),3)),this.setAttribute("uv",new ji(o,2)),0===r?this.computeVertexNormals():this.normalizeNormals()}static fromJSON(e){return new qc(e.vertices,e.indices,e.radius,e.details)}}class Gc extends qc{constructor(e=1,t=0){const n=(1+Math.sqrt(5))/2,r=1/n;super([-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-r,-n,0,-r,n,0,r,-n,0,r,n,-r,-n,0,-r,n,0,r,-n,0,r,n,0,-n,0,-r,n,0,-r,-n,0,r,n,0,r],[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],e,t),this.type="DodecahedronGeometry",this.parameters={radius:e,detail:t}}static fromJSON(e){return new Gc(e.radius,e.detail)}}const Hc=new sr,Vc=new sr,Wc=new sr,Xc=new yi;class Yc extends Qi{constructor(e=null,t=1){if(super(),this.type="EdgesGeometry",this.parameters={geometry:e,thresholdAngle:t},null!==e){const n=4,r=Math.pow(10,n),i=Math.cos(yn*t),o=e.getIndex(),s=e.getAttribute("position"),a=o?o.count:s.count,l=[0,0,0],c=["a","b","c"],u=new Array(3),d={},h=[];for(let e=0;e80*n){a=c=e[0],l=u=e[1];for(let t=n;tc&&(c=d),h>u&&(u=h);p=Math.max(c-a,u-l),p=0!==p?1/p:0}return tu(o,s,n,a,l,p),s};function Kc(e,t,n,r,i){let o,s;if(i===function(e,t,n,r){let i=0;for(let o=t,s=n-r;o0)for(o=t;o=t;o-=r)s=Su(o,e[o],e[o+1],s);return s&&fu(s,s.next)&&(_u(s),s=s.next),s}function eu(e,t){if(!e)return e;t||(t=e);let n,r=e;do{if(n=!1,r.steiner||!fu(r,r.next)&&0!==pu(r.prev,r,r.next))r=r.next;else{if(_u(r),r=t=r.prev,r===r.next)break;n=!0}}while(n||r!==t);return t}function tu(e,t,n,r,i,o,s){if(!e)return;!s&&o&&function(e,t,n,r){let i=e;do{null===i.z&&(i.z=cu(i.x,i.y,t,n,r)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==e);i.prevZ.nextZ=null,i.prevZ=null,function(e){let t,n,r,i,o,s,a,l,c=1;do{for(n=e,e=null,o=null,s=0;n;){for(s++,r=n,a=0,t=0;t0||l>0&&r;)0!==a&&(0===l||!r||n.z<=r.z)?(i=n,n=n.nextZ,a--):(i=r,r=r.nextZ,l--),o?o.nextZ=i:e=i,i.prevZ=o,o=i;n=r}o.nextZ=null,c*=2}while(s>1)}(i)}(e,r,i,o);let a,l,c=e;for(;e.prev!==e.next;)if(a=e.prev,l=e.next,o?ru(e,r,i,o):nu(e))t.push(a.i/n),t.push(e.i/n),t.push(l.i/n),_u(e),e=l.next,c=l.next;else if((e=l)===c){s?1===s?tu(e=iu(eu(e),t,n),t,n,r,i,o,2):2===s&&ou(e,t,n,r,i,o):tu(eu(e),t,n,r,i,o,1);break}}function nu(e){const t=e.prev,n=e,r=e.next;if(pu(t,n,r)>=0)return!1;let i=e.next.next;for(;i!==e.prev;){if(du(t.x,t.y,n.x,n.y,r.x,r.y,i.x,i.y)&&pu(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}function ru(e,t,n,r){const i=e.prev,o=e,s=e.next;if(pu(i,o,s)>=0)return!1;const a=i.xo.x?i.x>s.x?i.x:s.x:o.x>s.x?o.x:s.x,u=i.y>o.y?i.y>s.y?i.y:s.y:o.y>s.y?o.y:s.y,d=cu(a,l,t,n,r),h=cu(c,u,t,n,r);let p=e.prevZ,f=e.nextZ;for(;p&&p.z>=d&&f&&f.z<=h;){if(p!==e.prev&&p!==e.next&&du(i.x,i.y,o.x,o.y,s.x,s.y,p.x,p.y)&&pu(p.prev,p,p.next)>=0)return!1;if(p=p.prevZ,f!==e.prev&&f!==e.next&&du(i.x,i.y,o.x,o.y,s.x,s.y,f.x,f.y)&&pu(f.prev,f,f.next)>=0)return!1;f=f.nextZ}for(;p&&p.z>=d;){if(p!==e.prev&&p!==e.next&&du(i.x,i.y,o.x,o.y,s.x,s.y,p.x,p.y)&&pu(p.prev,p,p.next)>=0)return!1;p=p.prevZ}for(;f&&f.z<=h;){if(f!==e.prev&&f!==e.next&&du(i.x,i.y,o.x,o.y,s.x,s.y,f.x,f.y)&&pu(f.prev,f,f.next)>=0)return!1;f=f.nextZ}return!0}function iu(e,t,n){let r=e;do{const i=r.prev,o=r.next.next;!fu(i,o)&&mu(i,r,r.next,o)&&vu(i,o)&&vu(o,i)&&(t.push(i.i/n),t.push(r.i/n),t.push(o.i/n),_u(r),_u(r.next),r=e=o),r=r.next}while(r!==e);return eu(r)}function ou(e,t,n,r,i,o){let s=e;do{let e=s.next.next;for(;e!==s.prev;){if(s.i!==e.i&&hu(s,e)){let a=yu(s,e);return s=eu(s,s.next),a=eu(a,a.next),tu(s,t,n,r,i,o),void tu(a,t,n,r,i,o)}e=e.next}s=s.next}while(s!==e)}function su(e,t){return e.x-t.x}function au(e,t){if(t=function(e,t){let n=t;const r=e.x,i=e.y;let o,s=-1/0;do{if(i<=n.y&&i>=n.next.y&&n.next.y!==n.y){const e=n.x+(i-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(e<=r&&e>s){if(s=e,e===r){if(i===n.y)return n;if(i===n.next.y)return n.next}o=n.x=n.x&&n.x>=l&&r!==n.x&&du(io.x||n.x===o.x&&lu(o,n)))&&(o=n,d=u)),n=n.next}while(n!==a);return o}(e,t)){const n=yu(t,e);eu(t,t.next),eu(n,n.next)}}function lu(e,t){return pu(e.prev,e,t.prev)<0&&pu(t.next,e,e.next)<0}function cu(e,t,n,r,i){return(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-n)*i)|e<<8))|e<<4))|e<<2))|e<<1))|(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-r)*i)|t<<8))|t<<4))|t<<2))|t<<1))<<1}function uu(e){let t=e,n=e;do{(t.x=0&&(e-s)*(r-a)-(n-s)*(t-a)>=0&&(n-s)*(o-a)-(i-s)*(r-a)>=0}function hu(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!function(e,t){let n=e;do{if(n.i!==e.i&&n.next.i!==e.i&&n.i!==t.i&&n.next.i!==t.i&&mu(n,n.next,e,t))return!0;n=n.next}while(n!==e);return!1}(e,t)&&(vu(e,t)&&vu(t,e)&&function(e,t){let n=e,r=!1;const i=(e.x+t.x)/2,o=(e.y+t.y)/2;do{n.y>o!=n.next.y>o&&n.next.y!==n.y&&i<(n.next.x-n.x)*(o-n.y)/(n.next.y-n.y)+n.x&&(r=!r),n=n.next}while(n!==e);return r}(e,t)&&(pu(e.prev,e,t.prev)||pu(e,t.prev,t))||fu(e,t)&&pu(e.prev,e,e.next)>0&&pu(t.prev,t,t.next)>0)}function pu(e,t,n){return(t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y)}function fu(e,t){return e.x===t.x&&e.y===t.y}function mu(e,t,n,r){const i=bu(pu(e,t,n)),o=bu(pu(e,t,r)),s=bu(pu(n,r,e)),a=bu(pu(n,r,t));return i!==o&&s!==a||(!(0!==i||!gu(e,n,t))||(!(0!==o||!gu(e,r,t))||(!(0!==s||!gu(n,e,r))||!(0!==a||!gu(n,t,r)))))}function gu(e,t,n){return t.x<=Math.max(e.x,n.x)&&t.x>=Math.min(e.x,n.x)&&t.y<=Math.max(e.y,n.y)&&t.y>=Math.min(e.y,n.y)}function bu(e){return e>0?1:e<0?-1:0}function vu(e,t){return pu(e.prev,e,e.next)<0?pu(e,t,e.next)>=0&&pu(e,e.prev,t)>=0:pu(e,t,e.prev)<0||pu(e,e.next,t)<0}function yu(e,t){const n=new xu(e.i,e.x,e.y),r=new xu(t.i,t.x,t.y),i=e.next,o=t.prev;return e.next=t,t.prev=e,n.next=i,i.prev=n,r.next=n,n.prev=r,o.next=r,r.prev=o,r}function Su(e,t,n,r){const i=new xu(e,t,n);return r?(i.next=r.next,i.prev=r,r.next.prev=i,r.next=i):(i.prev=i,i.next=i),i}function _u(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function xu(e,t,n){this.i=e,this.x=t,this.y=n,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}class wu{static area(e){const t=e.length;let n=0;for(let r=t-1,i=0;i2&&e[t-1].equals(e[0])&&e.pop()}function Ou(e,t){for(let n=0;nNumber.EPSILON){const d=Math.sqrt(u),h=Math.sqrt(l*l+c*c),p=t.x-a/d,f=t.y+s/d,m=((n.x-c/h-p)*c-(n.y+l/h-f)*l)/(s*c-a*l);r=p+s*m-e.x,i=f+a*m-e.y;const g=r*r+i*i;if(g<=2)return new Cn(r,i);o=Math.sqrt(g/2)}else{let e=!1;s>Number.EPSILON?l>Number.EPSILON&&(e=!0):s<-Number.EPSILON?l<-Number.EPSILON&&(e=!0):Math.sign(a)===Math.sign(c)&&(e=!0),e?(r=-a,i=s,o=Math.sqrt(u)):(r=s,i=a,o=Math.sqrt(u/2))}return new Cn(r/o,i/o)}const $=[];for(let e=0,t=E.length,n=t-1,r=e+1;e=0;e--){const t=e/p,n=u*Math.cos(t*Math.PI/2),r=d*Math.sin(t*Math.PI/2)+h;for(let e=0,t=E.length;e=0;){const r=n;let i=n-1;i<0&&(i=e.length-1);for(let e=0,n=a+2*p;e0)&&h.push(t,i,l),(e!==n-1||a0!=e>0&&this.version++,this._sheen=e}get clearcoat(){return this._clearcoat}set clearcoat(e){this._clearcoat>0!=e>0&&this.version++,this._clearcoat=e}get transmission(){return this._transmission}set transmission(e){this._transmission>0!=e>0&&this.version++,this._transmission=e}copy(e){return super.copy(e),this.defines={STANDARD:"",PHYSICAL:""},this.clearcoat=e.clearcoat,this.clearcoatMap=e.clearcoatMap,this.clearcoatRoughness=e.clearcoatRoughness,this.clearcoatRoughnessMap=e.clearcoatRoughnessMap,this.clearcoatNormalMap=e.clearcoatNormalMap,this.clearcoatNormalScale.copy(e.clearcoatNormalScale),this.ior=e.ior,this.sheen=e.sheen,this.sheenColor.copy(e.sheenColor),this.sheenColorMap=e.sheenColorMap,this.sheenRoughness=e.sheenRoughness,this.sheenRoughnessMap=e.sheenRoughnessMap,this.transmission=e.transmission,this.transmissionMap=e.transmissionMap,this.thickness=e.thickness,this.thicknessMap=e.thicknessMap,this.attenuationDistance=e.attenuationDistance,this.attenuationColor.copy(e.attenuationColor),this.specularIntensity=e.specularIntensity,this.specularIntensityMap=e.specularIntensityMap,this.specularColor.copy(e.specularColor),this.specularColorMap=e.specularColorMap,this}}Qu.prototype.isMeshPhysicalMaterial=!0;class qu extends _i{constructor(e){super(),this.type="MeshPhongMaterial",this.color=new Gn(16777215),this.specular=new Gn(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Gn(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Dt,this.normalScale=new Cn(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=X,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.specular.copy(e.specular),this.shininess=e.shininess,this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}}qu.prototype.isMeshPhongMaterial=!0;class Gu extends _i{constructor(e){super(),this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new Gn(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Gn(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Dt,this.normalScale=new Cn(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.gradientMap=e.gradientMap,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}}Gu.prototype.isMeshToonMaterial=!0;class Hu extends _i{constructor(e){super(),this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Dt,this.normalScale=new Cn(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.setValues(e)}copy(e){return super.copy(e),this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.flatShading=e.flatShading,this}}Hu.prototype.isMeshNormalMaterial=!0;class Vu extends _i{constructor(e){super(),this.type="MeshLambertMaterial",this.color=new Gn(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Gn(0),this.emissiveIntensity=1,this.emissiveMap=null,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=X,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}}Vu.prototype.isMeshLambertMaterial=!0;class Wu extends _i{constructor(e){super(),this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new Gn(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Dt,this.normalScale=new Cn(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.defines={MATCAP:""},this.color.copy(e.color),this.matcap=e.matcap,this.map=e.map,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.flatShading=e.flatShading,this.fog=e.fog,this}}Wu.prototype.isMeshMatcapMaterial=!0;class Xu extends Xl{constructor(e){super(),this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(e)}copy(e){return super.copy(e),this.scale=e.scale,this.dashSize=e.dashSize,this.gapSize=e.gapSize,this}}Xu.prototype.isLineDashedMaterial=!0;const Yu={ShadowMaterial:zu,SpriteMaterial:pl,RawShaderMaterial:Fu,ShaderMaterial:fo,PointsMaterial:sc,MeshPhysicalMaterial:Qu,MeshStandardMaterial:Uu,MeshPhongMaterial:qu,MeshToonMaterial:Gu,MeshNormalMaterial:Hu,MeshLambertMaterial:Vu,MeshDepthMaterial:Ha,MeshDistanceMaterial:Va,MeshBasicMaterial:xi,MeshMatcapMaterial:Wu,LineDashedMaterial:Xu,LineBasicMaterial:Xl,Material:_i};_i.fromType=function(e){return new Yu[e]};const Zu={arraySlice:function(e,t,n){return Zu.isTypedArray(e)?new e.constructor(e.subarray(t,void 0!==n?n:e.length)):e.slice(t,n)},convertArray:function(e,t,n){return!e||!n&&e.constructor===t?e:"number"==typeof t.BYTES_PER_ELEMENT?new t(e):Array.prototype.slice.call(e)},isTypedArray:function(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)},getKeyframeOrder:function(e){const t=e.length,n=new Array(t);for(let e=0;e!==t;++e)n[e]=e;return n.sort((function(t,n){return e[t]-e[n]})),n},sortedArray:function(e,t,n){const r=e.length,i=new e.constructor(r);for(let o=0,s=0;s!==r;++o){const r=n[o]*t;for(let n=0;n!==t;++n)i[s++]=e[r+n]}return i},flattenJSON:function(e,t,n,r){let i=1,o=e[0];for(;void 0!==o&&void 0===o[r];)o=e[i++];if(void 0===o)return;let s=o[r];if(void 0!==s)if(Array.isArray(s))do{s=o[r],void 0!==s&&(t.push(o.time),n.push.apply(n,s)),o=e[i++]}while(void 0!==o);else if(void 0!==s.toArray)do{s=o[r],void 0!==s&&(t.push(o.time),s.toArray(n,n.length)),o=e[i++]}while(void 0!==o);else do{s=o[r],void 0!==s&&(t.push(o.time),n.push(s)),o=e[i++]}while(void 0!==o)},subclip:function(e,t,n,r,i=30){const o=e.clone();o.name=t;const s=[];for(let e=0;e=r)){l.push(t.times[e]);for(let n=0;no.tracks[e].times[0]&&(a=o.tracks[e].times[0]);for(let e=0;e=r.times[d]){const e=d*l+a,t=e+l-a;h=Zu.arraySlice(r.values,e,t)}else{const e=r.createInterpolant(),t=a,n=l-a;e.evaluate(o),h=Zu.arraySlice(e.resultBuffer,t,n)}if("quaternion"===i){(new or).fromArray(h).normalize().conjugate().toArray(h)}const p=s.times.length;for(let e=0;e=i)break e;{const s=t[1];e=i)break t}o=n,n=0}}for(;n>>1;et;)--o;if(++o,0!==i||o!==r){i>=o&&(o=Math.max(o,1),i=o-1);const e=this.getValueSize();this.times=Zu.arraySlice(n,i,o),this.values=Zu.arraySlice(this.values,i*e,o*e)}return this}validate(){let e=!0;const t=this.getValueSize();t-Math.floor(t)!=0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),e=!1);const n=this.times,r=this.values,i=n.length;0===i&&(console.error("THREE.KeyframeTrack: Track is empty.",this),e=!1);let o=null;for(let t=0;t!==i;t++){const r=n[t];if("number"==typeof r&&isNaN(r)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,t,r),e=!1;break}if(null!==o&&o>r){console.error("THREE.KeyframeTrack: Out of order keys.",this,t,r,o),e=!1;break}o=r}if(void 0!==r&&Zu.isTypedArray(r))for(let t=0,n=r.length;t!==n;++t){const n=r[t];if(isNaN(n)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,t,n),e=!1;break}}return e}optimize(){const e=Zu.arraySlice(this.times),t=Zu.arraySlice(this.values),n=this.getValueSize(),r=this.getInterpolation()===wt,i=e.length-1;let o=1;for(let s=1;s0){e[o]=e[i];for(let e=i*n,r=o*n,s=0;s!==n;++s)t[r+s]=t[e+s];++o}return o!==e.length?(this.times=Zu.arraySlice(e,0,o),this.values=Zu.arraySlice(t,0,o*n)):(this.times=e,this.values=t),this}clone(){const e=Zu.arraySlice(this.times,0),t=Zu.arraySlice(this.values,0),n=new(0,this.constructor)(this.name,e,t);return n.createInterpolant=this.createInterpolant,n}}nd.prototype.TimeBufferType=Float32Array,nd.prototype.ValueBufferType=Float32Array,nd.prototype.DefaultInterpolation=xt;class rd extends nd{}rd.prototype.ValueTypeName="bool",rd.prototype.ValueBufferType=Array,rd.prototype.DefaultInterpolation=_t,rd.prototype.InterpolantFactoryMethodLinear=void 0,rd.prototype.InterpolantFactoryMethodSmooth=void 0;class id extends nd{}id.prototype.ValueTypeName="color";class od extends nd{}od.prototype.ValueTypeName="number";class sd extends Ju{constructor(e,t,n,r){super(e,t,n,r)}interpolate_(e,t,n,r){const i=this.resultBuffer,o=this.sampleValues,s=this.valueSize,a=(n-t)/(r-t);let l=e*s;for(let e=l+s;l!==e;l+=4)or.slerpFlat(i,0,o,l-s,o,l,a);return i}}class ad extends nd{InterpolantFactoryMethodLinear(e){return new sd(this.times,this.values,this.getValueSize(),e)}}ad.prototype.ValueTypeName="quaternion",ad.prototype.DefaultInterpolation=xt,ad.prototype.InterpolantFactoryMethodSmooth=void 0;class ld extends nd{}ld.prototype.ValueTypeName="string",ld.prototype.ValueBufferType=Array,ld.prototype.DefaultInterpolation=_t,ld.prototype.InterpolantFactoryMethodLinear=void 0,ld.prototype.InterpolantFactoryMethodSmooth=void 0;class cd extends nd{}cd.prototype.ValueTypeName="vector";class ud{constructor(e,t=-1,n,r=At){this.name=e,this.tracks=n,this.duration=t,this.blendMode=r,this.uuid=_n(),this.duration<0&&this.resetDuration()}static parse(e){const t=[],n=e.tracks,r=1/(e.fps||1);for(let e=0,i=n.length;e!==i;++e)t.push(dd(n[e]).scale(r));const i=new this(e.name,e.duration,t,e.blendMode);return i.uuid=e.uuid,i}static toJSON(e){const t=[],n=e.tracks,r={name:e.name,duration:e.duration,tracks:t,uuid:e.uuid,blendMode:e.blendMode};for(let e=0,r=n.length;e!==r;++e)t.push(nd.toJSON(n[e]));return r}static CreateFromMorphTargetSequence(e,t,n,r){const i=t.length,o=[];for(let e=0;e1){const e=o[1];let t=r[e];t||(r[e]=t=[]),t.push(n)}}const o=[];for(const e in r)o.push(this.CreateFromMorphTargetSequence(e,r[e],t,n));return o}static parseAnimation(e,t){if(!e)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const n=function(e,t,n,r,i){if(0!==n.length){const o=[],s=[];Zu.flattenJSON(n,o,s,r),0!==o.length&&i.push(new e(t,o,s))}},r=[],i=e.name||"default",o=e.fps||30,s=e.blendMode;let a=e.length||-1;const l=e.hierarchy||[];for(let e=0;e{t&&t(i),this.manager.itemEnd(e)},0),i;if(void 0!==gd[e])return void gd[e].push({onLoad:t,onProgress:n,onError:r});gd[e]=[],gd[e].push({onLoad:t,onProgress:n,onError:r});const o=new Request(e,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),s=this.mimeType,a=this.responseType;fetch(o).then(t=>{if(200===t.status||0===t.status){if(0===t.status&&console.warn("THREE.FileLoader: HTTP Status 0 received."),"undefined"==typeof ReadableStream||void 0===t.body||void 0===t.body.getReader)return t;const n=gd[e],r=t.body.getReader(),i=t.headers.get("Content-Length"),o=i?parseInt(i):0,s=0!==o;let a=0;const l=new ReadableStream({start(e){!function t(){r.read().then(({done:r,value:i})=>{if(r)e.close();else{a+=i.byteLength;const r=new ProgressEvent("progress",{lengthComputable:s,loaded:a,total:o});for(let e=0,t=n.length;e{switch(a){case"arraybuffer":return e.arrayBuffer();case"blob":return e.blob();case"document":return e.text().then(e=>(new DOMParser).parseFromString(e,s));case"json":return e.json();default:if(void 0===s)return e.text();{const t=/charset="?([^;"\s]*)"?/i.exec(s),n=t&&t[1]?t[1].toLowerCase():void 0,r=new TextDecoder(n);return e.arrayBuffer().then(e=>r.decode(e))}}}).then(t=>{hd.add(e,t);const n=gd[e];delete gd[e];for(let e=0,r=n.length;e{const n=gd[e];if(void 0===n)throw this.manager.itemError(e),t;delete gd[e];for(let e=0,r=n.length;e{this.manager.itemEnd(e)}),this.manager.itemStart(e)}setResponseType(e){return this.responseType=e,this}setMimeType(e){return this.mimeType=e,this}}class vd extends md{constructor(e){super(e)}load(e,t,n,r){const i=this,o=new bd(this.manager);o.setPath(this.path),o.setRequestHeader(this.requestHeader),o.setWithCredentials(this.withCredentials),o.load(e,(function(n){try{t(i.parse(JSON.parse(n)))}catch(t){r?r(t):console.error(t),i.manager.itemError(e)}}),n,r)}parse(e){const t=[];for(let n=0;n0:r.vertexColors=e.vertexColors),void 0!==e.uniforms)for(const t in e.uniforms){const i=e.uniforms[t];switch(r.uniforms[t]={},i.type){case"t":r.uniforms[t].value=n(i.value);break;case"c":r.uniforms[t].value=(new Gn).setHex(i.value);break;case"v2":r.uniforms[t].value=(new Cn).fromArray(i.value);break;case"v3":r.uniforms[t].value=(new sr).fromArray(i.value);break;case"v4":r.uniforms[t].value=(new Jn).fromArray(i.value);break;case"m3":r.uniforms[t].value=(new Mn).fromArray(i.value);break;case"m4":r.uniforms[t].value=(new Ir).fromArray(i.value);break;default:r.uniforms[t].value=i.value}}if(void 0!==e.defines&&(r.defines=e.defines),void 0!==e.vertexShader&&(r.vertexShader=e.vertexShader),void 0!==e.fragmentShader&&(r.fragmentShader=e.fragmentShader),void 0!==e.extensions)for(const t in e.extensions)r.extensions[t]=e.extensions[t];if(void 0!==e.shading&&(r.flatShading=1===e.shading),void 0!==e.size&&(r.size=e.size),void 0!==e.sizeAttenuation&&(r.sizeAttenuation=e.sizeAttenuation),void 0!==e.map&&(r.map=n(e.map)),void 0!==e.matcap&&(r.matcap=n(e.matcap)),void 0!==e.alphaMap&&(r.alphaMap=n(e.alphaMap)),void 0!==e.bumpMap&&(r.bumpMap=n(e.bumpMap)),void 0!==e.bumpScale&&(r.bumpScale=e.bumpScale),void 0!==e.normalMap&&(r.normalMap=n(e.normalMap)),void 0!==e.normalMapType&&(r.normalMapType=e.normalMapType),void 0!==e.normalScale){let t=e.normalScale;!1===Array.isArray(t)&&(t=[t,t]),r.normalScale=(new Cn).fromArray(t)}return void 0!==e.displacementMap&&(r.displacementMap=n(e.displacementMap)),void 0!==e.displacementScale&&(r.displacementScale=e.displacementScale),void 0!==e.displacementBias&&(r.displacementBias=e.displacementBias),void 0!==e.roughnessMap&&(r.roughnessMap=n(e.roughnessMap)),void 0!==e.metalnessMap&&(r.metalnessMap=n(e.metalnessMap)),void 0!==e.emissiveMap&&(r.emissiveMap=n(e.emissiveMap)),void 0!==e.emissiveIntensity&&(r.emissiveIntensity=e.emissiveIntensity),void 0!==e.specularMap&&(r.specularMap=n(e.specularMap)),void 0!==e.specularIntensityMap&&(r.specularIntensityMap=n(e.specularIntensityMap)),void 0!==e.specularColorMap&&(r.specularColorMap=n(e.specularColorMap)),void 0!==e.envMap&&(r.envMap=n(e.envMap)),void 0!==e.envMapIntensity&&(r.envMapIntensity=e.envMapIntensity),void 0!==e.reflectivity&&(r.reflectivity=e.reflectivity),void 0!==e.refractionRatio&&(r.refractionRatio=e.refractionRatio),void 0!==e.lightMap&&(r.lightMap=n(e.lightMap)),void 0!==e.lightMapIntensity&&(r.lightMapIntensity=e.lightMapIntensity),void 0!==e.aoMap&&(r.aoMap=n(e.aoMap)),void 0!==e.aoMapIntensity&&(r.aoMapIntensity=e.aoMapIntensity),void 0!==e.gradientMap&&(r.gradientMap=n(e.gradientMap)),void 0!==e.clearcoatMap&&(r.clearcoatMap=n(e.clearcoatMap)),void 0!==e.clearcoatRoughnessMap&&(r.clearcoatRoughnessMap=n(e.clearcoatRoughnessMap)),void 0!==e.clearcoatNormalMap&&(r.clearcoatNormalMap=n(e.clearcoatNormalMap)),void 0!==e.clearcoatNormalScale&&(r.clearcoatNormalScale=(new Cn).fromArray(e.clearcoatNormalScale)),void 0!==e.transmissionMap&&(r.transmissionMap=n(e.transmissionMap)),void 0!==e.thicknessMap&&(r.thicknessMap=n(e.thicknessMap)),void 0!==e.sheenColorMap&&(r.sheenColorMap=n(e.sheenColorMap)),void 0!==e.sheenRoughnessMap&&(r.sheenRoughnessMap=n(e.sheenRoughnessMap)),r}setTextures(e){return this.textures=e,this}}class qd{static decodeText(e){if("undefined"!=typeof TextDecoder)return(new TextDecoder).decode(e);let t="";for(let n=0,r=e.length;n0){const n=new pd(t);i=new Sd(n),i.setCrossOrigin(this.crossOrigin);for(let t=0,n=e.length;t0){r=new Sd(this.manager),r.setCrossOrigin(this.crossOrigin);for(let t=0,r=e.length;t0){this.source.connect(this.filters[0]);for(let e=1,t=this.filters.length;e0){this.source.disconnect(this.filters[0]);for(let e=1,t=this.filters.length;e0&&this._mixBufferRegionAdditive(n,r,this._addIndex*t,1,t);for(let e=t,i=t+t;e!==i;++e)if(n[e]!==n[e+t]){s.setValue(n,r);break}}saveOriginalState(){const e=this.binding,t=this.buffer,n=this.valueSize,r=n*this._origIndex;e.getValue(t,r);for(let e=n,i=r;e!==i;++e)t[e]=t[r+e%n];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const e=3*this.valueSize;this.binding.setValue(this.buffer,e)}_setAdditiveIdentityNumeric(){const e=this._addIndex*this.valueSize,t=e+this.valueSize;for(let n=e;n=.5)for(let r=0;r!==i;++r)e[t+r]=e[n+r]}_slerp(e,t,n,r){or.slerpFlat(e,t,e,t,e,n,r)}_slerpAdditive(e,t,n,r,i){const o=this._workIndex*i;or.multiplyQuaternionsFlat(e,o,e,t,e,n),or.slerpFlat(e,t,e,t,e,o,r)}_lerp(e,t,n,r,i){const o=1-r;for(let s=0;s!==i;++s){const i=t+s;e[i]=e[i]*o+e[n+s]*r}}_lerpAdditive(e,t,n,r,i){for(let o=0;o!==i;++o){const i=t+o;e[i]=e[i]+e[n+o]*r}}}const xh=new RegExp("[\\[\\]\\.:\\/]","g"),wh="[^"+"\\[\\]\\.:\\/".replace("\\.","")+"]",kh=/((?:WC+[\/:])*)/.source.replace("WC","[^\\[\\]\\.:\\/]"),Oh=/(WCOD+)?/.source.replace("WCOD",wh),Eh=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC","[^\\[\\]\\.:\\/]"),Ah=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC","[^\\[\\]\\.:\\/]"),Th=new RegExp("^"+kh+Oh+Eh+Ah+"$"),Ch=["material","materials","bones"];class Mh{constructor(e,t,n){this.path=t,this.parsedPath=n||Mh.parseTrackName(t),this.node=Mh.findNode(e,this.parsedPath.nodeName)||e,this.rootNode=e,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(e,t,n){return e&&e.isAnimationObjectGroup?new Mh.Composite(e,t,n):new Mh(e,t,n)}static sanitizeNodeName(e){return e.replace(/\s/g,"_").replace(xh,"")}static parseTrackName(e){const t=Th.exec(e);if(null===t)throw new Error("PropertyBinding: Cannot parse trackName: "+e);const n={nodeName:t[2],objectName:t[3],objectIndex:t[4],propertyName:t[5],propertyIndex:t[6]},r=n.nodeName&&n.nodeName.lastIndexOf(".");if(void 0!==r&&-1!==r){const e=n.nodeName.substring(r+1);-1!==Ch.indexOf(e)&&(n.nodeName=n.nodeName.substring(0,r),n.objectName=e)}if(null===n.propertyName||0===n.propertyName.length)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+e);return n}static findNode(e,t){if(void 0===t||""===t||"."===t||-1===t||t===e.name||t===e.uuid)return e;if(e.skeleton){const n=e.skeleton.getBoneByName(t);if(void 0!==n)return n}if(e.children){const n=function(e){for(let r=0;r=i){const o=i++,c=e[o];t[c.uuid]=l,e[l]=c,t[a]=o,e[o]=s;for(let e=0,t=r;e!==t;++e){const t=n[e],r=t[o],i=t[l];t[l]=r,t[o]=i}}}this.nCachedObjects_=i}uncache(){const e=this._objects,t=this._indicesByUUID,n=this._bindings,r=n.length;let i=this.nCachedObjects_,o=e.length;for(let s=0,a=arguments.length;s!==a;++s){const a=arguments[s].uuid,l=t[a];if(void 0!==l)if(delete t[a],l0&&(t[s.uuid]=l),e[l]=s,e.pop();for(let e=0,t=r;e!==t;++e){const t=n[e];t[l]=t[i],t.pop()}}}this.nCachedObjects_=i}subscribe_(e,t){const n=this._bindingsIndicesByPath;let r=n[e];const i=this._bindings;if(void 0!==r)return i[r];const o=this._paths,s=this._parsedPaths,a=this._objects,l=a.length,c=this.nCachedObjects_,u=new Array(l);r=i.length,n[e]=r,o.push(e),s.push(t),i.push(u);for(let n=c,r=a.length;n!==r;++n){const r=a[n];u[n]=new Mh(r,e,t)}return u}unsubscribe_(e){const t=this._bindingsIndicesByPath,n=t[e];if(void 0!==n){const r=this._paths,i=this._parsedPaths,o=this._bindings,s=o.length-1,a=o[s];t[e[s]]=n,o[n]=a,o.pop(),i[n]=i[s],i.pop(),r[n]=r[s],r.pop()}}}$h.prototype.isAnimationObjectGroup=!0;class Ph{constructor(e,t,n=null,r=t.blendMode){this._mixer=e,this._clip=t,this._localRoot=n,this.blendMode=r;const i=t.tracks,o=i.length,s=new Array(o),a={endingStart:kt,endingEnd:kt};for(let e=0;e!==o;++e){const t=i[e].createInterpolant(null);s[e]=t,t.settings=a}this._interpolantSettings=a,this._interpolants=s,this._propertyBindings=new Array(o),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=yt,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&0!==this.timeScale&&null===this._startTime&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(e){return this._startTime=e,this}setLoop(e,t){return this.loop=e,this.repetitions=t,this}setEffectiveWeight(e){return this.weight=e,this._effectiveWeight=this.enabled?e:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(e){return this._scheduleFading(e,0,1)}fadeOut(e){return this._scheduleFading(e,1,0)}crossFadeFrom(e,t,n){if(e.fadeOut(t),this.fadeIn(t),n){const n=this._clip.duration,r=e._clip.duration,i=r/n,o=n/r;e.warp(1,i,t),this.warp(o,1,t)}return this}crossFadeTo(e,t,n){return e.crossFadeFrom(this,t,n)}stopFading(){const e=this._weightInterpolant;return null!==e&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}setEffectiveTimeScale(e){return this.timeScale=e,this._effectiveTimeScale=this.paused?0:e,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(e){return this.timeScale=this._clip.duration/e,this.stopWarping()}syncWith(e){return this.time=e.time,this.timeScale=e.timeScale,this.stopWarping()}halt(e){return this.warp(this._effectiveTimeScale,0,e)}warp(e,t,n){const r=this._mixer,i=r.time,o=this.timeScale;let s=this._timeScaleInterpolant;null===s&&(s=r._lendControlInterpolant(),this._timeScaleInterpolant=s);const a=s.parameterPositions,l=s.sampleValues;return a[0]=i,a[1]=i+n,l[0]=e/o,l[1]=t/o,this}stopWarping(){const e=this._timeScaleInterpolant;return null!==e&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(e,t,n,r){if(!this.enabled)return void this._updateWeight(e);const i=this._startTime;if(null!==i){const r=(e-i)*n;if(r<0||0===n)return;this._startTime=null,t=n*r}t*=this._updateTimeScale(e);const o=this._updateTime(t),s=this._updateWeight(e);if(s>0){const e=this._interpolants,t=this._propertyBindings;switch(this.blendMode){case Tt:for(let n=0,r=e.length;n!==r;++n)e[n].evaluate(o),t[n].accumulateAdditive(s);break;case At:default:for(let n=0,i=e.length;n!==i;++n)e[n].evaluate(o),t[n].accumulate(r,s)}}}_updateWeight(e){let t=0;if(this.enabled){t=this.weight;const n=this._weightInterpolant;if(null!==n){const r=n.evaluate(e)[0];t*=r,e>n.parameterPositions[1]&&(this.stopFading(),0===r&&(this.enabled=!1))}}return this._effectiveWeight=t,t}_updateTimeScale(e){let t=0;if(!this.paused){t=this.timeScale;const n=this._timeScaleInterpolant;if(null!==n){t*=n.evaluate(e)[0],e>n.parameterPositions[1]&&(this.stopWarping(),0===t?this.paused=!0:this.timeScale=t)}}return this._effectiveTimeScale=t,t}_updateTime(e){const t=this._clip.duration,n=this.loop;let r=this.time+e,i=this._loopCount;const o=n===St;if(0===e)return-1===i?r:o&&1==(1&i)?t-r:r;if(n===vt){-1===i&&(this._loopCount=0,this._setEndings(!0,!0,!1));e:{if(r>=t)r=t;else{if(!(r<0)){this.time=r;break e}r=0}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=r,this._mixer.dispatchEvent({type:"finished",action:this,direction:e<0?-1:1})}}else{if(-1===i&&(e>=0?(i=0,this._setEndings(!0,0===this.repetitions,o)):this._setEndings(0===this.repetitions,!0,o)),r>=t||r<0){const n=Math.floor(r/t);r-=t*n,i+=Math.abs(n);const s=this.repetitions-i;if(s<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,r=e>0?t:0,this.time=r,this._mixer.dispatchEvent({type:"finished",action:this,direction:e>0?1:-1});else{if(1===s){const t=e<0;this._setEndings(t,!t,o)}else this._setEndings(!1,!1,o);this._loopCount=i,this.time=r,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:n})}}else this.time=r;if(o&&1==(1&i))return t-r}return r}_setEndings(e,t,n){const r=this._interpolantSettings;n?(r.endingStart=Ot,r.endingEnd=Ot):(r.endingStart=e?this.zeroSlopeAtStart?Ot:kt:Et,r.endingEnd=t?this.zeroSlopeAtEnd?Ot:kt:Et)}_scheduleFading(e,t,n){const r=this._mixer,i=r.time;let o=this._weightInterpolant;null===o&&(o=r._lendControlInterpolant(),this._weightInterpolant=o);const s=o.parameterPositions,a=o.sampleValues;return s[0]=i,a[0]=t,s[1]=i+e,a[1]=n,this}}class Rh extends gn{constructor(e){super(),this._root=e,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(e,t){const n=e._localRoot||this._root,r=e._clip.tracks,i=r.length,o=e._propertyBindings,s=e._interpolants,a=n.uuid,l=this._bindingsByRootAndName;let c=l[a];void 0===c&&(c={},l[a]=c);for(let e=0;e!==i;++e){const i=r[e],l=i.name;let u=c[l];if(void 0!==u)++u.referenceCount,o[e]=u;else{if(u=o[e],void 0!==u){null===u._cacheIndex&&(++u.referenceCount,this._addInactiveBinding(u,a,l));continue}const r=t&&t._propertyBindings[e].binding.parsedPath;u=new _h(Mh.create(n,l,r),i.ValueTypeName,i.getValueSize()),++u.referenceCount,this._addInactiveBinding(u,a,l),o[e]=u}s[e].resultBuffer=u.buffer}}_activateAction(e){if(!this._isActiveAction(e)){if(null===e._cacheIndex){const t=(e._localRoot||this._root).uuid,n=e._clip.uuid,r=this._actionsByClip[n];this._bindAction(e,r&&r.knownActions[0]),this._addInactiveAction(e,n,t)}const t=e._propertyBindings;for(let e=0,n=t.length;e!==n;++e){const n=t[e];0==n.useCount++&&(this._lendBinding(n),n.saveOriginalState())}this._lendAction(e)}}_deactivateAction(e){if(this._isActiveAction(e)){const t=e._propertyBindings;for(let e=0,n=t.length;e!==n;++e){const n=t[e];0==--n.useCount&&(n.restoreOriginalState(),this._takeBackBinding(n))}this._takeBackAction(e)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;const e=this;this.stats={actions:{get total(){return e._actions.length},get inUse(){return e._nActiveActions}},bindings:{get total(){return e._bindings.length},get inUse(){return e._nActiveBindings}},controlInterpolants:{get total(){return e._controlInterpolants.length},get inUse(){return e._nActiveControlInterpolants}}}}_isActiveAction(e){const t=e._cacheIndex;return null!==t&&t=0;--t)e[t].stop();return this}update(e){e*=this.timeScale;const t=this._actions,n=this._nActiveActions,r=this.time+=e,i=Math.sign(e),o=this._accuIndex^=1;for(let s=0;s!==n;++s){t[s]._update(r,e,i,o)}const s=this._bindings,a=this._nActiveBindings;for(let e=0;e!==a;++e)s[e].apply(o);return this}setTime(e){this.time=0;for(let e=0;ethis.max.x||e.ythis.max.y)}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(e){return!(e.max.xthis.max.x||e.max.ythis.max.y)}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return Uh.copy(e).clamp(this.min,this.max).sub(e).length()}intersect(e){return this.min.max(e.min),this.max.min(e.max),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}}Qh.prototype.isBox2=!0;const qh=new sr,Gh=new sr;class Hh{constructor(e=new sr,t=new sr){this.start=e,this.end=t}set(e,t){return this.start.copy(e),this.end.copy(t),this}copy(e){return this.start.copy(e.start),this.end.copy(e.end),this}getCenter(e){return e.addVectors(this.start,this.end).multiplyScalar(.5)}delta(e){return e.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(e,t){return this.delta(t).multiplyScalar(e).add(this.start)}closestPointToPointParameter(e,t){qh.subVectors(e,this.start),Gh.subVectors(this.end,this.start);const n=Gh.dot(Gh);let r=Gh.dot(qh)/n;return t&&(r=xn(r,0,1)),r}closestPointToPoint(e,t,n){const r=this.closestPointToPointParameter(e,t);return this.delta(n).multiplyScalar(r).add(this.start)}applyMatrix4(e){return this.start.applyMatrix4(e),this.end.applyMatrix4(e),this}equals(e){return e.start.equals(this.start)&&e.end.equals(this.end)}clone(){return(new this.constructor).copy(this)}}const Vh=new sr;class Wh extends li{constructor(e,t){super(),this.light=e,this.light.updateMatrixWorld(),this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.color=t;const n=new Qi,r=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let e=0,t=1,n=32;e.99999)this.quaternion.set(0,0,0,1);else if(e.y<-.99999)this.quaternion.set(1,0,0,0);else{vp.set(e.z,0,-e.x).normalize();const t=Math.acos(e.y);this.quaternion.setFromAxisAngle(vp,t)}}setLength(e,t=.2*e,n=.2*t){this.line.scale.set(1,Math.max(1e-4,e-t),1),this.line.updateMatrix(),this.cone.scale.set(n,t,n),this.cone.position.y=e,this.cone.updateMatrix()}setColor(e){this.line.material.color.set(e),this.cone.material.color.set(e)}copy(e){return super.copy(e,!1),this.line.copy(e.line),this.cone.copy(e.cone),this}}class xp extends ic{constructor(e=1){const t=[0,0,0,e,0,0,0,0,0,0,e,0,0,0,0,0,0,e],n=new Qi;n.setAttribute("position",new ji(t,3)),n.setAttribute("color",new ji([1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],3));super(n,new Xl({vertexColors:!0,toneMapped:!1})),this.type="AxesHelper"}setColors(e,t,n){const r=new Gn,i=this.geometry.attributes.color.array;return r.set(e),r.toArray(i,0),r.toArray(i,3),r.set(t),r.toArray(i,6),r.toArray(i,9),r.set(n),r.toArray(i,12),r.toArray(i,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}}class wp{constructor(){this.type="ShapePath",this.color=new Gn,this.subPaths=[],this.currentPath=null}moveTo(e,t){return this.currentPath=new Lc,this.subPaths.push(this.currentPath),this.currentPath.moveTo(e,t),this}lineTo(e,t){return this.currentPath.lineTo(e,t),this}quadraticCurveTo(e,t,n,r){return this.currentPath.quadraticCurveTo(e,t,n,r),this}bezierCurveTo(e,t,n,r,i,o){return this.currentPath.bezierCurveTo(e,t,n,r,i,o),this}splineThru(e){return this.currentPath.splineThru(e),this}toShapes(e,t){function n(e){const t=[];for(let n=0,r=e.length;nNumber.EPSILON){if(l<0&&(n=t[o],a=-a,s=t[i],l=-l),e.ys.y)continue;if(e.y===n.y){if(e.x===n.x)return!0}else{const t=l*(e.x-n.x)-a*(e.y-n.y);if(0===t)return!0;if(t<0)continue;r=!r}}else{if(e.y!==n.y)continue;if(s.x<=e.x&&e.x<=n.x||n.x<=e.x&&e.x<=s.x)return!0}}return r}const i=wu.isClockWise,o=this.subPaths;if(0===o.length)return[];if(!0===t)return n(o);let s,a,l;const c=[];if(1===o.length)return a=o[0],l=new Zc,l.curves=a.curves,c.push(l),c;let u=!i(o[0].getPoints());u=e?!u:u;const d=[],h=[];let p,f,m=[],g=0;h[g]=void 0,m[g]=[];for(let t=0,n=o.length;t1){let e=!1,t=0;for(let e=0,t=h.length;e0&&!1===e&&(m=d)}for(let e=0,t=h.length;e65504&&console.warn("THREE.DataUtils.toHalfFloat(): Value out of range."),e=xn(e,-65504,65504),Ep[0]=e;const t=Ap[0],n=t>>23&511;return Tp[n]+((8388607&t)>>Cp[n])}static fromHalfFloat(e){const t=e>>10;return Ap[0]=Mp[Pp[t]+(1023&e)]+$p[t],Ep[0]}}const Op=new ArrayBuffer(4),Ep=new Float32Array(Op),Ap=new Uint32Array(Op),Tp=new Uint32Array(512),Cp=new Uint32Array(512);for(let e=0;e<256;++e){const t=e-127;t<-27?(Tp[e]=0,Tp[256|e]=32768,Cp[e]=24,Cp[256|e]=24):t<-14?(Tp[e]=1024>>-t-14,Tp[256|e]=1024>>-t-14|32768,Cp[e]=-t-1,Cp[256|e]=-t-1):t<=15?(Tp[e]=t+15<<10,Tp[256|e]=t+15<<10|32768,Cp[e]=13,Cp[256|e]=13):t<128?(Tp[e]=31744,Tp[256|e]=64512,Cp[e]=24,Cp[256|e]=24):(Tp[e]=31744,Tp[256|e]=64512,Cp[e]=13,Cp[256|e]=13)}const Mp=new Uint32Array(2048),$p=new Uint32Array(64),Pp=new Uint32Array(64);for(let e=1;e<1024;++e){let t=e<<13,n=0;for(;0==(8388608&t);)t<<=1,n-=8388608;t&=-8388609,n+=947912704,Mp[e]=t|n}for(let e=1024;e<2048;++e)Mp[e]=939524096+(e-1024<<13);for(let e=1;e<31;++e)$p[e]=e<<23;$p[31]=1199570944,$p[32]=2147483648;for(let e=33;e<63;++e)$p[e]=2147483648+(e-32<<23);$p[63]=3347054592;for(let e=1;e<64;++e)32!==e&&(Pp[e]=1024);const Rp=0,jp=1,Np=0,Dp=1,Ip=2;function Lp(e){return console.warn("THREE.MeshFaceMaterial has been removed. Use an Array instead."),e}function Bp(e=[]){return console.warn("THREE.MultiMaterial has been removed. Use an Array instead."),e.isMultiMaterial=!0,e.materials=e,e.clone=function(){return e.slice()},e}class zp extends dc{constructor(e,t){console.warn("THREE.PointCloud has been renamed to THREE.Points."),super(e,t)}}class Fp extends Al{constructor(e){console.warn("THREE.Particle has been renamed to THREE.Sprite."),super(e)}}class Up extends dc{constructor(e,t){console.warn("THREE.ParticleSystem has been renamed to THREE.Points."),super(e,t)}}class Qp extends sc{constructor(e){console.warn("THREE.PointCloudMaterial has been renamed to THREE.PointsMaterial."),super(e)}}class qp extends sc{constructor(e){console.warn("THREE.ParticleBasicMaterial has been renamed to THREE.PointsMaterial."),super(e)}}class Gp extends sc{constructor(e){console.warn("THREE.ParticleSystemMaterial has been renamed to THREE.PointsMaterial."),super(e)}}class Hp extends sr{constructor(e,t,n){console.warn("THREE.Vertex has been removed. Use THREE.Vector3 instead."),super(e,t,n)}}class Vp extends Oi{constructor(e,t){console.warn("THREE.DynamicBufferAttribute has been removed. Use new THREE.BufferAttribute().setUsage( THREE.DynamicDrawUsage ) instead."),super(e,t),this.setUsage(on)}}class Wp extends Ei{constructor(e,t){console.warn("THREE.Int8Attribute has been removed. Use new THREE.Int8BufferAttribute() instead."),super(e,t)}}class Xp extends Ai{constructor(e,t){console.warn("THREE.Uint8Attribute has been removed. Use new THREE.Uint8BufferAttribute() instead."),super(e,t)}}class Yp extends Ti{constructor(e,t){console.warn("THREE.Uint8ClampedAttribute has been removed. Use new THREE.Uint8ClampedBufferAttribute() instead."),super(e,t)}}class Zp extends Ci{constructor(e,t){console.warn("THREE.Int16Attribute has been removed. Use new THREE.Int16BufferAttribute() instead."),super(e,t)}}class Jp extends Mi{constructor(e,t){console.warn("THREE.Uint16Attribute has been removed. Use new THREE.Uint16BufferAttribute() instead."),super(e,t)}}class Kp extends $i{constructor(e,t){console.warn("THREE.Int32Attribute has been removed. Use new THREE.Int32BufferAttribute() instead."),super(e,t)}}class ef extends Pi{constructor(e,t){console.warn("THREE.Uint32Attribute has been removed. Use new THREE.Uint32BufferAttribute() instead."),super(e,t)}}class tf extends ji{constructor(e,t){console.warn("THREE.Float32Attribute has been removed. Use new THREE.Float32BufferAttribute() instead."),super(e,t)}}class nf extends Ni{constructor(e,t){console.warn("THREE.Float64Attribute has been removed. Use new THREE.Float64BufferAttribute() instead."),super(e,t)}}bc.create=function(e,t){return console.log("THREE.Curve.create() has been deprecated"),e.prototype=Object.create(bc.prototype),e.prototype.constructor=e,e.prototype.getPoint=t,e},Lc.prototype.fromPoints=function(e){return console.warn("THREE.Path: .fromPoints() has been renamed to .setFromPoints()."),this.setFromPoints(e)};class rf extends xp{constructor(e){console.warn("THREE.AxisHelper has been renamed to THREE.AxesHelper."),super(e)}}class of extends mp{constructor(e,t){console.warn("THREE.BoundingBoxHelper has been deprecated. Creating a THREE.BoxHelper instead."),super(e,t)}}class sf extends ic{constructor(e,t){console.warn("THREE.EdgesHelper has been removed. Use THREE.EdgesGeometry instead."),super(new Yc(e.geometry),new Xl({color:void 0!==t?t:16777215}))}}ip.prototype.setColors=function(){console.error("THREE.GridHelper: setColors() has been deprecated, pass them in the constructor instead.")},Jh.prototype.update=function(){console.error("THREE.SkeletonHelper: update() no longer needs to be called.")};class af extends ic{constructor(e,t){console.warn("THREE.WireframeHelper has been removed. Use THREE.WireframeGeometry instead."),super(new Iu(e.geometry),new Xl({color:void 0!==t?t:16777215}))}}md.prototype.extractUrlBase=function(e){return console.warn("THREE.Loader: .extractUrlBase() has been deprecated. Use THREE.LoaderUtils.extractUrlBase() instead."),qd.extractUrlBase(e)},md.Handlers={add:function(){console.error("THREE.Loader: Handlers.add() has been removed. Use LoadingManager.addHandler() instead.")},get:function(){console.error("THREE.Loader: Handlers.get() has been removed. Use LoadingManager.getHandler() instead.")}};class lf extends bd{constructor(e){console.warn("THREE.XHRLoader has been renamed to THREE.FileLoader."),super(e)}}class cf extends xd{constructor(e){console.warn("THREE.BinaryTextureLoader has been renamed to THREE.DataTextureLoader."),super(e)}}Qh.prototype.center=function(e){return console.warn("THREE.Box2: .center() has been renamed to .getCenter()."),this.getCenter(e)},Qh.prototype.empty=function(){return console.warn("THREE.Box2: .empty() has been renamed to .isEmpty()."),this.isEmpty()},Qh.prototype.isIntersectionBox=function(e){return console.warn("THREE.Box2: .isIntersectionBox() has been renamed to .intersectsBox()."),this.intersectsBox(e)},Qh.prototype.size=function(e){return console.warn("THREE.Box2: .size() has been renamed to .getSize()."),this.getSize(e)},cr.prototype.center=function(e){return console.warn("THREE.Box3: .center() has been renamed to .getCenter()."),this.getCenter(e)},cr.prototype.empty=function(){return console.warn("THREE.Box3: .empty() has been renamed to .isEmpty()."),this.isEmpty()},cr.prototype.isIntersectionBox=function(e){return console.warn("THREE.Box3: .isIntersectionBox() has been renamed to .intersectsBox()."),this.intersectsBox(e)},cr.prototype.isIntersectionSphere=function(e){return console.warn("THREE.Box3: .isIntersectionSphere() has been renamed to .intersectsSphere()."),this.intersectsSphere(e)},cr.prototype.size=function(e){return console.warn("THREE.Box3: .size() has been renamed to .getSize()."),this.getSize(e)},Vr.prototype.toVector3=function(){console.error("THREE.Euler: .toVector3() has been removed. Use Vector3.setFromEuler() instead")},Tr.prototype.empty=function(){return console.warn("THREE.Sphere: .empty() has been renamed to .isEmpty()."),this.isEmpty()},Eo.prototype.setFromMatrix=function(e){return console.warn("THREE.Frustum: .setFromMatrix() has been renamed to .setFromProjectionMatrix()."),this.setFromProjectionMatrix(e)},Hh.prototype.center=function(e){return console.warn("THREE.Line3: .center() has been renamed to .getCenter()."),this.getCenter(e)},Mn.prototype.flattenToArrayOffset=function(e,t){return console.warn("THREE.Matrix3: .flattenToArrayOffset() has been deprecated. Use .toArray() instead."),this.toArray(e,t)},Mn.prototype.multiplyVector3=function(e){return console.warn("THREE.Matrix3: .multiplyVector3() has been removed. Use vector.applyMatrix3( matrix ) instead."),e.applyMatrix3(this)},Mn.prototype.multiplyVector3Array=function(){console.error("THREE.Matrix3: .multiplyVector3Array() has been removed.")},Mn.prototype.applyToBufferAttribute=function(e){return console.warn("THREE.Matrix3: .applyToBufferAttribute() has been removed. Use attribute.applyMatrix3( matrix ) instead."),e.applyMatrix3(this)},Mn.prototype.applyToVector3Array=function(){console.error("THREE.Matrix3: .applyToVector3Array() has been removed.")},Mn.prototype.getInverse=function(e){return console.warn("THREE.Matrix3: .getInverse() has been removed. Use matrixInv.copy( matrix ).invert(); instead."),this.copy(e).invert()},Ir.prototype.extractPosition=function(e){return console.warn("THREE.Matrix4: .extractPosition() has been renamed to .copyPosition()."),this.copyPosition(e)},Ir.prototype.flattenToArrayOffset=function(e,t){return console.warn("THREE.Matrix4: .flattenToArrayOffset() has been deprecated. Use .toArray() instead."),this.toArray(e,t)},Ir.prototype.getPosition=function(){return console.warn("THREE.Matrix4: .getPosition() has been removed. Use Vector3.setFromMatrixPosition( matrix ) instead."),(new sr).setFromMatrixColumn(this,3)},Ir.prototype.setRotationFromQuaternion=function(e){return console.warn("THREE.Matrix4: .setRotationFromQuaternion() has been renamed to .makeRotationFromQuaternion()."),this.makeRotationFromQuaternion(e)},Ir.prototype.multiplyToArray=function(){console.warn("THREE.Matrix4: .multiplyToArray() has been removed.")},Ir.prototype.multiplyVector3=function(e){return console.warn("THREE.Matrix4: .multiplyVector3() has been removed. Use vector.applyMatrix4( matrix ) instead."),e.applyMatrix4(this)},Ir.prototype.multiplyVector4=function(e){return console.warn("THREE.Matrix4: .multiplyVector4() has been removed. Use vector.applyMatrix4( matrix ) instead."),e.applyMatrix4(this)},Ir.prototype.multiplyVector3Array=function(){console.error("THREE.Matrix4: .multiplyVector3Array() has been removed.")},Ir.prototype.rotateAxis=function(e){console.warn("THREE.Matrix4: .rotateAxis() has been removed. Use Vector3.transformDirection( matrix ) instead."),e.transformDirection(this)},Ir.prototype.crossVector=function(e){return console.warn("THREE.Matrix4: .crossVector() has been removed. Use vector.applyMatrix4( matrix ) instead."),e.applyMatrix4(this)},Ir.prototype.translate=function(){console.error("THREE.Matrix4: .translate() has been removed.")},Ir.prototype.rotateX=function(){console.error("THREE.Matrix4: .rotateX() has been removed.")},Ir.prototype.rotateY=function(){console.error("THREE.Matrix4: .rotateY() has been removed.")},Ir.prototype.rotateZ=function(){console.error("THREE.Matrix4: .rotateZ() has been removed.")},Ir.prototype.rotateByAxis=function(){console.error("THREE.Matrix4: .rotateByAxis() has been removed.")},Ir.prototype.applyToBufferAttribute=function(e){return console.warn("THREE.Matrix4: .applyToBufferAttribute() has been removed. Use attribute.applyMatrix4( matrix ) instead."),e.applyMatrix4(this)},Ir.prototype.applyToVector3Array=function(){console.error("THREE.Matrix4: .applyToVector3Array() has been removed.")},Ir.prototype.makeFrustum=function(e,t,n,r,i,o){return console.warn("THREE.Matrix4: .makeFrustum() has been removed. Use .makePerspective( left, right, top, bottom, near, far ) instead."),this.makePerspective(e,t,r,n,i,o)},Ir.prototype.getInverse=function(e){return console.warn("THREE.Matrix4: .getInverse() has been removed. Use matrixInv.copy( matrix ).invert(); instead."),this.copy(e).invert()},wo.prototype.isIntersectionLine=function(e){return console.warn("THREE.Plane: .isIntersectionLine() has been renamed to .intersectsLine()."),this.intersectsLine(e)},or.prototype.multiplyVector3=function(e){return console.warn("THREE.Quaternion: .multiplyVector3() has been removed. Use is now vector.applyQuaternion( quaternion ) instead."),e.applyQuaternion(this)},or.prototype.inverse=function(){return console.warn("THREE.Quaternion: .inverse() has been renamed to invert()."),this.invert()},Dr.prototype.isIntersectionBox=function(e){return console.warn("THREE.Ray: .isIntersectionBox() has been renamed to .intersectsBox()."),this.intersectsBox(e)},Dr.prototype.isIntersectionPlane=function(e){return console.warn("THREE.Ray: .isIntersectionPlane() has been renamed to .intersectsPlane()."),this.intersectsPlane(e)},Dr.prototype.isIntersectionSphere=function(e){return console.warn("THREE.Ray: .isIntersectionSphere() has been renamed to .intersectsSphere()."),this.intersectsSphere(e)},yi.prototype.area=function(){return console.warn("THREE.Triangle: .area() has been renamed to .getArea()."),this.getArea()},yi.prototype.barycoordFromPoint=function(e,t){return console.warn("THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord()."),this.getBarycoord(e,t)},yi.prototype.midpoint=function(e){return console.warn("THREE.Triangle: .midpoint() has been renamed to .getMidpoint()."),this.getMidpoint(e)},yi.prototypenormal=function(e){return console.warn("THREE.Triangle: .normal() has been renamed to .getNormal()."),this.getNormal(e)},yi.prototype.plane=function(e){return console.warn("THREE.Triangle: .plane() has been renamed to .getPlane()."),this.getPlane(e)},yi.barycoordFromPoint=function(e,t,n,r,i){return console.warn("THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord()."),yi.getBarycoord(e,t,n,r,i)},yi.normal=function(e,t,n,r){return console.warn("THREE.Triangle: .normal() has been renamed to .getNormal()."),yi.getNormal(e,t,n,r)},Zc.prototype.extractAllPoints=function(e){return console.warn("THREE.Shape: .extractAllPoints() has been removed. Use .extractPoints() instead."),this.extractPoints(e)},Zc.prototype.extrude=function(e){return console.warn("THREE.Shape: .extrude() has been removed. Use ExtrudeGeometry() instead."),new Eu(this,e)},Zc.prototype.makeGeometry=function(e){return console.warn("THREE.Shape: .makeGeometry() has been removed. Use ShapeGeometry() instead."),new $u(this,e)},Cn.prototype.fromAttribute=function(e,t,n){return console.warn("THREE.Vector2: .fromAttribute() has been renamed to .fromBufferAttribute()."),this.fromBufferAttribute(e,t,n)},Cn.prototype.distanceToManhattan=function(e){return console.warn("THREE.Vector2: .distanceToManhattan() has been renamed to .manhattanDistanceTo()."),this.manhattanDistanceTo(e)},Cn.prototype.lengthManhattan=function(){return console.warn("THREE.Vector2: .lengthManhattan() has been renamed to .manhattanLength()."),this.manhattanLength()},sr.prototype.setEulerFromRotationMatrix=function(){console.error("THREE.Vector3: .setEulerFromRotationMatrix() has been removed. Use Euler.setFromRotationMatrix() instead.")},sr.prototype.setEulerFromQuaternion=function(){console.error("THREE.Vector3: .setEulerFromQuaternion() has been removed. Use Euler.setFromQuaternion() instead.")},sr.prototype.getPositionFromMatrix=function(e){return console.warn("THREE.Vector3: .getPositionFromMatrix() has been renamed to .setFromMatrixPosition()."),this.setFromMatrixPosition(e)},sr.prototype.getScaleFromMatrix=function(e){return console.warn("THREE.Vector3: .getScaleFromMatrix() has been renamed to .setFromMatrixScale()."),this.setFromMatrixScale(e)},sr.prototype.getColumnFromMatrix=function(e,t){return console.warn("THREE.Vector3: .getColumnFromMatrix() has been renamed to .setFromMatrixColumn()."),this.setFromMatrixColumn(t,e)},sr.prototype.applyProjection=function(e){return console.warn("THREE.Vector3: .applyProjection() has been removed. Use .applyMatrix4( m ) instead."),this.applyMatrix4(e)},sr.prototype.fromAttribute=function(e,t,n){return console.warn("THREE.Vector3: .fromAttribute() has been renamed to .fromBufferAttribute()."),this.fromBufferAttribute(e,t,n)},sr.prototype.distanceToManhattan=function(e){return console.warn("THREE.Vector3: .distanceToManhattan() has been renamed to .manhattanDistanceTo()."),this.manhattanDistanceTo(e)},sr.prototype.lengthManhattan=function(){return console.warn("THREE.Vector3: .lengthManhattan() has been renamed to .manhattanLength()."),this.manhattanLength()},Jn.prototype.fromAttribute=function(e,t,n){return console.warn("THREE.Vector4: .fromAttribute() has been renamed to .fromBufferAttribute()."),this.fromBufferAttribute(e,t,n)},Jn.prototype.lengthManhattan=function(){return console.warn("THREE.Vector4: .lengthManhattan() has been renamed to .manhattanLength()."),this.manhattanLength()},li.prototype.getChildByName=function(e){return console.warn("THREE.Object3D: .getChildByName() has been renamed to .getObjectByName()."),this.getObjectByName(e)},li.prototype.renderDepth=function(){console.warn("THREE.Object3D: .renderDepth has been removed. Use .renderOrder, instead.")},li.prototype.translate=function(e,t){return console.warn("THREE.Object3D: .translate() has been removed. Use .translateOnAxis( axis, distance ) instead."),this.translateOnAxis(t,e)},li.prototype.getWorldRotation=function(){console.error("THREE.Object3D: .getWorldRotation() has been removed. Use THREE.Object3D.getWorldQuaternion( target ) instead.")},li.prototype.applyMatrix=function(e){return console.warn("THREE.Object3D: .applyMatrix() has been renamed to .applyMatrix4()."),this.applyMatrix4(e)},Object.defineProperties(li.prototype,{eulerOrder:{get:function(){return console.warn("THREE.Object3D: .eulerOrder is now .rotation.order."),this.rotation.order},set:function(e){console.warn("THREE.Object3D: .eulerOrder is now .rotation.order."),this.rotation.order=e}},useQuaternion:{get:function(){console.warn("THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.")},set:function(){console.warn("THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.")}}}),ao.prototype.setDrawMode=function(){console.error("THREE.Mesh: .setDrawMode() has been removed. The renderer now always assumes THREE.TrianglesDrawMode. Transform your geometry via BufferGeometryUtils.toTrianglesDrawMode() if necessary.")},Object.defineProperties(ao.prototype,{drawMode:{get:function(){return console.error("THREE.Mesh: .drawMode has been removed. The renderer now always assumes THREE.TrianglesDrawMode."),Ct},set:function(){console.error("THREE.Mesh: .drawMode has been removed. The renderer now always assumes THREE.TrianglesDrawMode. Transform your geometry via BufferGeometryUtils.toTrianglesDrawMode() if necessary.")}}}),Il.prototype.initBones=function(){console.error("THREE.SkinnedMesh: initBones() has been removed.")},go.prototype.setLens=function(e,t){console.warn("THREE.PerspectiveCamera.setLens is deprecated. Use .setFocalLength and .filmGauge for a photographic setup."),void 0!==t&&(this.filmGauge=t),this.setFocalLength(e)},Object.defineProperties(kd.prototype,{onlyShadow:{set:function(){console.warn("THREE.Light: .onlyShadow has been removed.")}},shadowCameraFov:{set:function(e){console.warn("THREE.Light: .shadowCameraFov is now .shadow.camera.fov."),this.shadow.camera.fov=e}},shadowCameraLeft:{set:function(e){console.warn("THREE.Light: .shadowCameraLeft is now .shadow.camera.left."),this.shadow.camera.left=e}},shadowCameraRight:{set:function(e){console.warn("THREE.Light: .shadowCameraRight is now .shadow.camera.right."),this.shadow.camera.right=e}},shadowCameraTop:{set:function(e){console.warn("THREE.Light: .shadowCameraTop is now .shadow.camera.top."),this.shadow.camera.top=e}},shadowCameraBottom:{set:function(e){console.warn("THREE.Light: .shadowCameraBottom is now .shadow.camera.bottom."),this.shadow.camera.bottom=e}},shadowCameraNear:{set:function(e){console.warn("THREE.Light: .shadowCameraNear is now .shadow.camera.near."),this.shadow.camera.near=e}},shadowCameraFar:{set:function(e){console.warn("THREE.Light: .shadowCameraFar is now .shadow.camera.far."),this.shadow.camera.far=e}},shadowCameraVisible:{set:function(){console.warn("THREE.Light: .shadowCameraVisible has been removed. Use new THREE.CameraHelper( light.shadow.camera ) instead.")}},shadowBias:{set:function(e){console.warn("THREE.Light: .shadowBias is now .shadow.bias."),this.shadow.bias=e}},shadowDarkness:{set:function(){console.warn("THREE.Light: .shadowDarkness has been removed.")}},shadowMapWidth:{set:function(e){console.warn("THREE.Light: .shadowMapWidth is now .shadow.mapSize.width."),this.shadow.mapSize.width=e}},shadowMapHeight:{set:function(e){console.warn("THREE.Light: .shadowMapHeight is now .shadow.mapSize.height."),this.shadow.mapSize.height=e}}}),Object.defineProperties(Oi.prototype,{length:{get:function(){return console.warn("THREE.BufferAttribute: .length has been deprecated. Use .count instead."),this.array.length}},dynamic:{get:function(){return console.warn("THREE.BufferAttribute: .dynamic has been deprecated. Use .usage instead."),this.usage===on},set:function(){console.warn("THREE.BufferAttribute: .dynamic has been deprecated. Use .usage instead."),this.setUsage(on)}}}),Oi.prototype.setDynamic=function(e){return console.warn("THREE.BufferAttribute: .setDynamic() has been deprecated. Use .setUsage() instead."),this.setUsage(!0===e?on:rn),this},Oi.prototype.copyIndicesArray=function(){console.error("THREE.BufferAttribute: .copyIndicesArray() has been removed.")},Oi.prototype.setArray=function(){console.error("THREE.BufferAttribute: .setArray has been removed. Use BufferGeometry .setAttribute to replace/resize attribute buffers")},Qi.prototype.addIndex=function(e){console.warn("THREE.BufferGeometry: .addIndex() has been renamed to .setIndex()."),this.setIndex(e)},Qi.prototype.addAttribute=function(e,t){return console.warn("THREE.BufferGeometry: .addAttribute() has been renamed to .setAttribute()."),t&&t.isBufferAttribute||t&&t.isInterleavedBufferAttribute?"index"===e?(console.warn("THREE.BufferGeometry.addAttribute: Use .setIndex() for index attribute."),this.setIndex(t),this):this.setAttribute(e,t):(console.warn("THREE.BufferGeometry: .addAttribute() now expects ( name, attribute )."),this.setAttribute(e,new Oi(arguments[1],arguments[2])))},Qi.prototype.addDrawCall=function(e,t,n){void 0!==n&&console.warn("THREE.BufferGeometry: .addDrawCall() no longer supports indexOffset."),console.warn("THREE.BufferGeometry: .addDrawCall() is now .addGroup()."),this.addGroup(e,t)},Qi.prototype.clearDrawCalls=function(){console.warn("THREE.BufferGeometry: .clearDrawCalls() is now .clearGroups()."),this.clearGroups()},Qi.prototype.computeOffsets=function(){console.warn("THREE.BufferGeometry: .computeOffsets() has been removed.")},Qi.prototype.removeAttribute=function(e){return console.warn("THREE.BufferGeometry: .removeAttribute() has been renamed to .deleteAttribute()."),this.deleteAttribute(e)},Qi.prototype.applyMatrix=function(e){return console.warn("THREE.BufferGeometry: .applyMatrix() has been renamed to .applyMatrix4()."),this.applyMatrix4(e)},Object.defineProperties(Qi.prototype,{drawcalls:{get:function(){return console.error("THREE.BufferGeometry: .drawcalls has been renamed to .groups."),this.groups}},offsets:{get:function(){return console.warn("THREE.BufferGeometry: .offsets has been renamed to .groups."),this.groups}}}),ul.prototype.setDynamic=function(e){return console.warn("THREE.InterleavedBuffer: .setDynamic() has been deprecated. Use .setUsage() instead."),this.setUsage(!0===e?on:rn),this},ul.prototype.setArray=function(){console.error("THREE.InterleavedBuffer: .setArray has been removed. Use BufferGeometry .setAttribute to replace/resize attribute buffers")},Eu.prototype.getArrays=function(){console.error("THREE.ExtrudeGeometry: .getArrays() has been removed.")},Eu.prototype.addShapeList=function(){console.error("THREE.ExtrudeGeometry: .addShapeList() has been removed.")},Eu.prototype.addShape=function(){console.error("THREE.ExtrudeGeometry: .addShape() has been removed.")},cl.prototype.dispose=function(){console.error("THREE.Scene: .dispose() has been removed.")},jh.prototype.onUpdate=function(){return console.warn("THREE.Uniform: .onUpdate() has been removed. Use object.onBeforeRender() instead."),this},Object.defineProperties(_i.prototype,{wrapAround:{get:function(){console.warn("THREE.Material: .wrapAround has been removed.")},set:function(){console.warn("THREE.Material: .wrapAround has been removed.")}},overdraw:{get:function(){console.warn("THREE.Material: .overdraw has been removed.")},set:function(){console.warn("THREE.Material: .overdraw has been removed.")}},wrapRGB:{get:function(){return console.warn("THREE.Material: .wrapRGB has been removed."),new Gn}},shading:{get:function(){console.error("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead.")},set:function(e){console.warn("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead."),this.flatShading=e===b}},stencilMask:{get:function(){return console.warn("THREE."+this.type+": .stencilMask has been removed. Use .stencilFuncMask instead."),this.stencilFuncMask},set:function(e){console.warn("THREE."+this.type+": .stencilMask has been removed. Use .stencilFuncMask instead."),this.stencilFuncMask=e}},vertexTangents:{get:function(){console.warn("THREE."+this.type+": .vertexTangents has been removed.")},set:function(){console.warn("THREE."+this.type+": .vertexTangents has been removed.")}}}),Object.defineProperties(fo.prototype,{derivatives:{get:function(){return console.warn("THREE.ShaderMaterial: .derivatives has been moved to .extensions.derivatives."),this.extensions.derivatives},set:function(e){console.warn("THREE. ShaderMaterial: .derivatives has been moved to .extensions.derivatives."),this.extensions.derivatives=e}}}),ol.prototype.clearTarget=function(e,t,n,r){console.warn("THREE.WebGLRenderer: .clearTarget() has been deprecated. Use .setRenderTarget() and .clear() instead."),this.setRenderTarget(e),this.clear(t,n,r)},ol.prototype.animate=function(e){console.warn("THREE.WebGLRenderer: .animate() is now .setAnimationLoop()."),this.setAnimationLoop(e)},ol.prototype.getCurrentRenderTarget=function(){return console.warn("THREE.WebGLRenderer: .getCurrentRenderTarget() is now .getRenderTarget()."),this.getRenderTarget()},ol.prototype.getMaxAnisotropy=function(){return console.warn("THREE.WebGLRenderer: .getMaxAnisotropy() is now .capabilities.getMaxAnisotropy()."),this.capabilities.getMaxAnisotropy()},ol.prototype.getPrecision=function(){return console.warn("THREE.WebGLRenderer: .getPrecision() is now .capabilities.precision."),this.capabilities.precision},ol.prototype.resetGLState=function(){return console.warn("THREE.WebGLRenderer: .resetGLState() is now .state.reset()."),this.state.reset()},ol.prototype.supportsFloatTextures=function(){return console.warn("THREE.WebGLRenderer: .supportsFloatTextures() is now .extensions.get( 'OES_texture_float' )."),this.extensions.get("OES_texture_float")},ol.prototype.supportsHalfFloatTextures=function(){return console.warn("THREE.WebGLRenderer: .supportsHalfFloatTextures() is now .extensions.get( 'OES_texture_half_float' )."),this.extensions.get("OES_texture_half_float")},ol.prototype.supportsStandardDerivatives=function(){return console.warn("THREE.WebGLRenderer: .supportsStandardDerivatives() is now .extensions.get( 'OES_standard_derivatives' )."),this.extensions.get("OES_standard_derivatives")},ol.prototype.supportsCompressedTextureS3TC=function(){return console.warn("THREE.WebGLRenderer: .supportsCompressedTextureS3TC() is now .extensions.get( 'WEBGL_compressed_texture_s3tc' )."),this.extensions.get("WEBGL_compressed_texture_s3tc")},ol.prototype.supportsCompressedTexturePVRTC=function(){return console.warn("THREE.WebGLRenderer: .supportsCompressedTexturePVRTC() is now .extensions.get( 'WEBGL_compressed_texture_pvrtc' )."),this.extensions.get("WEBGL_compressed_texture_pvrtc")},ol.prototype.supportsBlendMinMax=function(){return console.warn("THREE.WebGLRenderer: .supportsBlendMinMax() is now .extensions.get( 'EXT_blend_minmax' )."),this.extensions.get("EXT_blend_minmax")},ol.prototype.supportsVertexTextures=function(){return console.warn("THREE.WebGLRenderer: .supportsVertexTextures() is now .capabilities.vertexTextures."),this.capabilities.vertexTextures},ol.prototype.supportsInstancedArrays=function(){return console.warn("THREE.WebGLRenderer: .supportsInstancedArrays() is now .extensions.get( 'ANGLE_instanced_arrays' )."),this.extensions.get("ANGLE_instanced_arrays")},ol.prototype.enableScissorTest=function(e){console.warn("THREE.WebGLRenderer: .enableScissorTest() is now .setScissorTest()."),this.setScissorTest(e)},ol.prototype.initMaterial=function(){console.warn("THREE.WebGLRenderer: .initMaterial() has been removed.")},ol.prototype.addPrePlugin=function(){console.warn("THREE.WebGLRenderer: .addPrePlugin() has been removed.")},ol.prototype.addPostPlugin=function(){console.warn("THREE.WebGLRenderer: .addPostPlugin() has been removed.")},ol.prototype.updateShadowMap=function(){console.warn("THREE.WebGLRenderer: .updateShadowMap() has been removed.")},ol.prototype.setFaceCulling=function(){console.warn("THREE.WebGLRenderer: .setFaceCulling() has been removed.")},ol.prototype.allocTextureUnit=function(){console.warn("THREE.WebGLRenderer: .allocTextureUnit() has been removed.")},ol.prototype.setTexture=function(){console.warn("THREE.WebGLRenderer: .setTexture() has been removed.")},ol.prototype.setTexture2D=function(){console.warn("THREE.WebGLRenderer: .setTexture2D() has been removed.")},ol.prototype.setTextureCube=function(){console.warn("THREE.WebGLRenderer: .setTextureCube() has been removed.")},ol.prototype.getActiveMipMapLevel=function(){return console.warn("THREE.WebGLRenderer: .getActiveMipMapLevel() is now .getActiveMipmapLevel()."),this.getActiveMipmapLevel()},Object.defineProperties(ol.prototype,{shadowMapEnabled:{get:function(){return this.shadowMap.enabled},set:function(e){console.warn("THREE.WebGLRenderer: .shadowMapEnabled is now .shadowMap.enabled."),this.shadowMap.enabled=e}},shadowMapType:{get:function(){return this.shadowMap.type},set:function(e){console.warn("THREE.WebGLRenderer: .shadowMapType is now .shadowMap.type."),this.shadowMap.type=e}},shadowMapCullFace:{get:function(){console.warn("THREE.WebGLRenderer: .shadowMapCullFace has been removed. Set Material.shadowSide instead.")},set:function(){console.warn("THREE.WebGLRenderer: .shadowMapCullFace has been removed. Set Material.shadowSide instead.")}},context:{get:function(){return console.warn("THREE.WebGLRenderer: .context has been removed. Use .getContext() instead."),this.getContext()}},vr:{get:function(){return console.warn("THREE.WebGLRenderer: .vr has been renamed to .xr"),this.xr}},gammaInput:{get:function(){return console.warn("THREE.WebGLRenderer: .gammaInput has been removed. Set the encoding for textures via Texture.encoding instead."),!1},set:function(){console.warn("THREE.WebGLRenderer: .gammaInput has been removed. Set the encoding for textures via Texture.encoding instead.")}},gammaOutput:{get:function(){return console.warn("THREE.WebGLRenderer: .gammaOutput has been removed. Set WebGLRenderer.outputEncoding instead."),!1},set:function(e){console.warn("THREE.WebGLRenderer: .gammaOutput has been removed. Set WebGLRenderer.outputEncoding instead."),this.outputEncoding=!0===e?Rt:Pt}},toneMappingWhitePoint:{get:function(){return console.warn("THREE.WebGLRenderer: .toneMappingWhitePoint has been removed."),1},set:function(){console.warn("THREE.WebGLRenderer: .toneMappingWhitePoint has been removed.")}},gammaFactor:{get:function(){return console.warn("THREE.WebGLRenderer: .gammaFactor has been removed."),2},set:function(){console.warn("THREE.WebGLRenderer: .gammaFactor has been removed.")}}}),Object.defineProperties(Wa.prototype,{cullFace:{get:function(){console.warn("THREE.WebGLRenderer: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.")},set:function(){console.warn("THREE.WebGLRenderer: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.")}},renderReverseSided:{get:function(){console.warn("THREE.WebGLRenderer: .shadowMap.renderReverseSided has been removed. Set Material.shadowSide instead.")},set:function(){console.warn("THREE.WebGLRenderer: .shadowMap.renderReverseSided has been removed. Set Material.shadowSide instead.")}},renderSingleSided:{get:function(){console.warn("THREE.WebGLRenderer: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.")},set:function(){console.warn("THREE.WebGLRenderer: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.")}}});class uf extends yo{constructor(e,t,n){console.warn("THREE.WebGLRenderTargetCube( width, height, options ) is now WebGLCubeRenderTarget( size, options )."),super(e,n)}}function df(){console.error("THREE.CanvasRenderer has been removed")}function hf(){console.error("THREE.JSONLoader has been removed.")}Object.defineProperties(Kn.prototype,{wrapS:{get:function(){return console.warn("THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS."),this.texture.wrapS},set:function(e){console.warn("THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS."),this.texture.wrapS=e}},wrapT:{get:function(){return console.warn("THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT."),this.texture.wrapT},set:function(e){console.warn("THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT."),this.texture.wrapT=e}},magFilter:{get:function(){return console.warn("THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter."),this.texture.magFilter},set:function(e){console.warn("THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter."),this.texture.magFilter=e}},minFilter:{get:function(){return console.warn("THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter."),this.texture.minFilter},set:function(e){console.warn("THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter."),this.texture.minFilter=e}},anisotropy:{get:function(){return console.warn("THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy."),this.texture.anisotropy},set:function(e){console.warn("THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy."),this.texture.anisotropy=e}},offset:{get:function(){return console.warn("THREE.WebGLRenderTarget: .offset is now .texture.offset."),this.texture.offset},set:function(e){console.warn("THREE.WebGLRenderTarget: .offset is now .texture.offset."),this.texture.offset=e}},repeat:{get:function(){return console.warn("THREE.WebGLRenderTarget: .repeat is now .texture.repeat."),this.texture.repeat},set:function(e){console.warn("THREE.WebGLRenderTarget: .repeat is now .texture.repeat."),this.texture.repeat=e}},format:{get:function(){return console.warn("THREE.WebGLRenderTarget: .format is now .texture.format."),this.texture.format},set:function(e){console.warn("THREE.WebGLRenderTarget: .format is now .texture.format."),this.texture.format=e}},type:{get:function(){return console.warn("THREE.WebGLRenderTarget: .type is now .texture.type."),this.texture.type},set:function(e){console.warn("THREE.WebGLRenderTarget: .type is now .texture.type."),this.texture.type=e}},generateMipmaps:{get:function(){return console.warn("THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps."),this.texture.generateMipmaps},set:function(e){console.warn("THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps."),this.texture.generateMipmaps=e}}}),fh.prototype.load=function(e){console.warn("THREE.Audio: .load has been deprecated. Use THREE.AudioLoader instead.");const t=this;return(new eh).load(e,(function(e){t.setBuffer(e)})),this},Sh.prototype.getData=function(){return console.warn("THREE.AudioAnalyser: .getData() is now .getFrequencyData()."),this.getFrequencyData()},bo.prototype.updateCubeMap=function(e,t){return console.warn("THREE.CubeCamera: .updateCubeMap() is now .update()."),this.update(e,t)},bo.prototype.clear=function(e,t,n,r){return console.warn("THREE.CubeCamera: .clear() is now .renderTarget.clear()."),this.renderTarget.clear(e,t,n,r)},Vn.crossOrigin=void 0,Vn.loadTexture=function(e,t,n,r){console.warn("THREE.ImageUtils.loadTexture has been deprecated. Use THREE.TextureLoader() instead.");const i=new wd;i.setCrossOrigin(this.crossOrigin);const o=i.load(e,n,void 0,r);return t&&(o.mapping=t),o},Vn.loadTextureCube=function(e,t,n,r){console.warn("THREE.ImageUtils.loadTextureCube has been deprecated. Use THREE.CubeTextureLoader() instead.");const i=new _d;i.setCrossOrigin(this.crossOrigin);const o=i.load(e,n,void 0,r);return t&&(o.mapping=t),o},Vn.loadCompressedTexture=function(){console.error("THREE.ImageUtils.loadCompressedTexture has been removed. Use THREE.DDSLoader instead.")},Vn.loadCompressedTextureCube=function(){console.error("THREE.ImageUtils.loadCompressedTextureCube has been removed. Use THREE.DDSLoader instead.")};const pf={createMultiMaterialObject:function(){console.error("THREE.SceneUtils has been moved to /examples/jsm/utils/SceneUtils.js")},detach:function(){console.error("THREE.SceneUtils has been moved to /examples/jsm/utils/SceneUtils.js")},attach:function(){console.error("THREE.SceneUtils has been moved to /examples/jsm/utils/SceneUtils.js")}};function ff(){console.error("THREE.LensFlare has been moved to /examples/jsm/objects/Lensflare.js")}class mf extends Qi{constructor(){console.error("THREE.ParametricGeometry has been moved to /examples/jsm/geometries/ParametricGeometry.js"),super()}}class gf extends Qi{constructor(){console.error("THREE.TextGeometry has been moved to /examples/jsm/geometries/TextGeometry.js"),super()}}function bf(){console.error("THREE.FontLoader has been moved to /examples/jsm/loaders/FontLoader.js")}function vf(){console.error("THREE.Font has been moved to /examples/jsm/loaders/FontLoader.js")}function yf(){console.error("THREE.ImmediateRenderObject has been removed.")}class Sf extends Kn{constructor(e,t,n){console.error('THREE.WebGLMultisampleRenderTarget has been removed. Use a normal render target and set the "samples" property to greater 0 to enable multisampling.'),super(e,t,n),this.samples=4}}class _f extends er{constructor(e,t,n,r){console.warn("THREE.DataTexture2DArray has been renamed to DataArrayTexture."),super(e,t,n,r)}}class xf extends nr{constructor(e,t,n,r){console.warn("THREE.DataTexture3D has been renamed to Data3DTexture."),super(e,t,n,r)}}"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:r}})),"undefined"!=typeof window&&(window.__THREE__?console.warn("WARNING: Multiple instances of Three.js being imported."):window.__THREE__=r)},function(e,t,n){"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n=function(e,t){var n=e[1]||"",r=e[3];if(!r)return n;if(t&&"function"==typeof btoa){var i=(s=r,a=btoa(unescape(encodeURIComponent(JSON.stringify(s)))),l="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(a),"/*# ".concat(l," */")),o=r.sources.map((function(e){return"/*# sourceURL=".concat(r.sourceRoot||"").concat(e," */")}));return[n].concat(o).concat([i]).join("\n")}var s,a,l;return[n].join("\n")}(t,e);return t[2]?"@media ".concat(t[2]," {").concat(n,"}"):n})).join("")},t.i=function(e,n,r){"string"==typeof e&&(e=[[null,e,""]]);var i={};if(r)for(var o=0;o{throw new Error("This node type doesn't define a deserialize function")})}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return"function"!=typeof e&&(e=c.match(e)),t=>{let n=e(t);return void 0===n?null:[this,n]}}}s.closedBy=new s({deserialize:e=>e.split(" ")}),s.openedBy=new s({deserialize:e=>e.split(" ")}),s.group=new s({deserialize:e=>e.split(" ")}),s.contextHash=new s({perNode:!0}),s.lookAhead=new s({perNode:!0}),s.mounted=new s({perNode:!0});class a{constructor(e,t,n){this.tree=e,this.overlay=t,this.parser=n}}const l=Object.create(null);class c{constructor(e,t,n,r=0){this.name=e,this.props=t,this.id=n,this.flags=r}static define(e){let t=e.props&&e.props.length?Object.create(null):l,n=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(null==e.name?8:0),r=new c(e.name||"",t,e.id,n);if(e.props)for(let n of e.props)if(Array.isArray(n)||(n=n(r)),n){if(n[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");t[n[0].id]=n[1]}return r}prop(e){return this.props[e.id]}get isTop(){return(1&this.flags)>0}get isSkipped(){return(2&this.flags)>0}get isError(){return(4&this.flags)>0}get isAnonymous(){return(8&this.flags)>0}is(e){if("string"==typeof e){if(this.name==e)return!0;let t=this.prop(s.group);return!!t&&t.indexOf(e)>-1}return this.id==e}static match(e){let t=Object.create(null);for(let n in e)for(let r of n.split(" "))t[r]=e[n];return e=>{for(let n=e.prop(s.group),r=-1;r<(n?n.length:0);r++){let i=t[r<0?e.name:n[r]];if(i)return i}}}}c.none=new c("",Object.create(null),0,8);class u{constructor(e){this.types=e;for(let t=0;t=r&&(o.type.isAnonymous||!1!==t(o))){if(o.firstChild())continue;e=!0}for(;e&&n&&!o.type.isAnonymous&&n(o),!o.nextSibling();){if(!o.parent())return;e=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let t in this.props)e.push([+t,this.props[t]]);return e}balance(e={}){return this.children.length<=8?this:C(c.none,this.children,this.positions,0,this.children.length,0,this.length,(e,t,n)=>new f(this.type,e,t,n,this.propValues),e.makeTree||((e,t,n)=>new f(c.none,e,t,n)))}static build(e){return function(e){var t;let{buffer:n,nodeSet:i,maxBufferLength:o=r,reused:a=[],minRepeatType:l=i.types.length}=e,c=Array.isArray(n)?new m(n,n.length):n,u=i.types,d=0,h=0;function p(e,t,n,r,m){let{id:S,start:_,end:x,size:w}=c,k=h;for(;w<0;){if(c.next(),-1==w){let t=a[S];return n.push(t),void r.push(_-e)}if(-3==w)return void(d=S);if(-4==w)return void(h=S);throw new RangeError("Unrecognized record size: "+w)}let O,E,A=u[S],T=_-e;if(x-_<=o&&(E=function(e,t){let n=c.fork(),r=0,i=0,s=0,a=n.end-o,u={size:0,start:0,skip:0};e:for(let o=n.pos-e;n.pos>o;){let e=n.size;if(n.id==t&&e>=0){u.size=r,u.start=i,u.skip=s,s+=4,r+=4,n.next();continue}let c=n.pos-e;if(e<0||c=l?4:0,h=n.start;for(n.next();n.pos>c;){if(n.size<0){if(-3!=n.size)break e;d+=4}else n.id>=l&&(d+=4);n.next()}i=h,r+=e,s+=d}(t<0||r==e)&&(u.size=r,u.start=i,u.skip=s);return u.size>4?u:void 0}(c.pos-t,m))){let t=new Uint16Array(E.size-E.skip),n=c.pos-E.size,r=t.length;for(;c.pos>n;)r=y(E.start,t,r);O=new g(t,x-E.start,i),T=E.start-e}else{let e=c.pos-w;c.next();let t=[],n=[],r=S>=l?S:-1,i=0,a=x;for(;c.pos>e;)r>=0&&c.id==r&&c.size>=0?(c.end<=a-o&&(b(t,n,_,i,c.end,a,r,k),i=t.length,a=c.end),c.next()):p(_,e,t,n,r);if(r>=0&&i>0&&i-1&&i>0){let e=function(e){return(t,n,r)=>{let i,o,a=0,l=t.length-1;if(l>=0&&(i=t[l])instanceof f){if(!l&&i.type==e&&i.length==r)return i;(o=i.prop(s.lookAhead))&&(a=n[l]+i.length+o)}return v(e,t,n,r,a)}}(A);O=C(A,t,n,0,t.length,0,x-_,e,e)}else O=v(A,t,n,x-_,k-x)}n.push(O),r.push(T)}function b(e,t,n,r,o,s,a,l){let c=[],u=[];for(;e.length>r;)c.push(e.pop()),u.push(t.pop()+n-o);e.push(v(i.types[a],c,u,s-o,l-s)),t.push(o-n)}function v(e,t,n,r,i=0,o){if(d){let e=[s.contextHash,d];o=o?[e].concat(o):[e]}if(i>25){let e=[s.lookAhead,i];o=o?[e].concat(o):[e]}return new f(e,t,n,r,o)}function y(e,t,n){let{id:r,start:i,end:o,size:s}=c;if(c.next(),s>=0&&r4){let r=c.pos-(s-4);for(;c.pos>r;)n=y(e,t,n)}t[--n]=a,t[--n]=o-e,t[--n]=i-e,t[--n]=r}else-3==s?d=r:-4==s&&(h=r);return n}let S=[],_=[];for(;c.pos>0;)p(e.start||0,e.bufferStart||0,S,_,-1);let x=null!==(t=e.length)&&void 0!==t?t:S.length?_[0]+S[0].length:0;return new f(u[e.topID],S.reverse(),_.reverse(),x)}(e)}}f.empty=new f(c.none,[],[],0);class m{constructor(e,t){this.buffer=e,this.index=t}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new m(this.buffer,this.index)}}class g{constructor(e,t,n){this.buffer=e,this.length=t,this.set=n}get type(){return c.none}toString(){let e=[];for(let t=0;t0));a=o[a+3]);return s}slice(e,t,n){let r=this.buffer,i=new Uint16Array(t-e),o=0;for(let s=e,a=0;s=t&&nt;case 1:return n<=t&&r>t;case 2:return r>t;case 4:return!0}}function v(e,t){let n=e.childBefore(t);for(;n;){let t=n.lastChild;if(!t||t.to!=n.to)break;t.type.isError&&t.from==t.to?(e=n,n=t.prevSibling):n=t}return e}function y(e,t,n,r){for(var i;e.from==e.to||(n<1?e.from>=t:e.from>t)||(n>-1?e.to<=t:e.to0?a.length:-1;e!=c;e+=t){let c=a[e],u=l[e]+o.from;if(b(r,n,u,u+c.length))if(c instanceof g){if(i&p.ExcludeBuffers)continue;let s=c.findChild(0,c.buffer.length,t,n-u,r);if(s>-1)return new k(new w(o,c,e,u),null,s)}else if(i&p.IncludeAnonymous||!c.type.isAnonymous||E(c)){let a;if(!(i&p.IgnoreMounts)&&c.props&&(a=c.prop(s.mounted))&&!a.overlay)return new S(a.tree,u,e,o);let l=new S(c,u,e,o);return i&p.IncludeAnonymous||!l.type.isAnonymous?l:l.nextChild(t<0?c.children.length-1:0,t,n,r)}}if(i&p.IncludeAnonymous||!o.type.isAnonymous)return null;if(e=o.index>=0?o.index+t:t<0?-1:o._parent._tree.children.length,o=o._parent,!o)return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}enter(e,t,n=0){let r;if(!(n&p.IgnoreOverlays)&&(r=this._tree.prop(s.mounted))&&r.overlay){let n=e-this.from;for(let{from:e,to:i}of r.overlay)if((t>0?e<=n:e=n:i>n))return new S(r.tree,r.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,t,n)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}cursor(e=0){return new O(this,e)}get tree(){return this._tree}toTree(){return this._tree}resolve(e,t=0){return y(this,e,t,!1)}resolveInner(e,t=0){return y(this,e,t,!0)}enterUnfinishedNodesBefore(e){return v(this,e)}getChild(e,t=null,n=null){let r=_(this,e,t,n);return r.length?r[0]:null}getChildren(e,t=null,n=null){return _(this,e,t,n)}toString(){return this._tree.toString()}get node(){return this}matchContext(e){return x(this,e)}}function _(e,t,n,r){let i=e.cursor(),o=[];if(!i.firstChild())return o;if(null!=n)for(;!i.type.is(n);)if(!i.nextSibling())return o;for(;;){if(null!=r&&i.type.is(r))return o;if(i.type.is(t)&&o.push(i.node),!i.nextSibling())return null==r?o:[]}}function x(e,t,n=t.length-1){for(let r=e.parent;n>=0;r=r.parent){if(!r)return!1;if(!r.type.isAnonymous){if(t[n]&&t[n]!=r.name)return!1;n--}}return!0}class w{constructor(e,t,n,r){this.parent=e,this.buffer=t,this.index=n,this.start=r}}class k{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,t,n){this.context=e,this._parent=t,this.index=n,this.type=e.buffer.set.types[e.buffer.buffer[n]]}child(e,t,n){let{buffer:r}=this.context,i=r.findChild(this.index+4,r.buffer[this.index+3],e,t-this.context.start,n);return i<0?null:new k(this.context,this,i)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}enter(e,t,n=0){if(n&p.ExcludeBuffers)return null;let{buffer:r}=this.context,i=r.findChild(this.index+4,r.buffer[this.index+3],t>0?1:-1,e-this.context.start,t);return i<0?null:new k(this.context,this,i)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:e}=this.context,t=e.buffer[this.index+3];return t<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new k(this.context,this._parent,t):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,t=this._parent?this._parent.index+4:0;return this.index==t?this.externalSibling(-1):new k(this.context,this._parent,e.findChild(t,this.index,-1,0,4))}cursor(e=0){return new O(this,e)}get tree(){return null}toTree(){let e=[],t=[],{buffer:n}=this.context,r=this.index+4,i=n.buffer[this.index+3];if(i>r){let o=n.buffer[this.index+1];e.push(n.slice(r,i,o)),t.push(0)}return new f(this.type,e,t,this.to-this.from)}resolve(e,t=0){return y(this,e,t,!1)}resolveInner(e,t=0){return y(this,e,t,!0)}enterUnfinishedNodesBefore(e){return v(this,e)}toString(){return this.context.buffer.childString(this.index)}getChild(e,t=null,n=null){let r=_(this,e,t,n);return r.length?r[0]:null}getChildren(e,t=null,n=null){return _(this,e,t,n)}get node(){return this}matchContext(e){return x(this,e)}}class O{get name(){return this.type.name}constructor(e,t=0){if(this.mode=t,this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,e instanceof S)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let t=e._parent;t;t=t._parent)this.stack.unshift(t.index);this.bufferNode=e,this.yieldBuf(e.index)}}yieldNode(e){return!!e&&(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0)}yieldBuf(e,t){this.index=e;let{start:n,buffer:r}=this.buffer;return this.type=t||r.set.types[r.buffer[e]],this.from=n+r.buffer[e+1],this.to=n+r.buffer[e+2],!0}yield(e){return!!e&&(e instanceof S?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)))}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,t,n){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,t,n,this.mode));let{buffer:r}=this.buffer,i=r.findChild(this.index+4,r.buffer[this.index+3],e,t-this.buffer.start,n);return!(i<0)&&(this.stack.push(this.index),this.yieldBuf(i))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,t,n=this.mode){return this.buffer?!(n&p.ExcludeBuffers)&&this.enterChild(1,e,t):this.yield(this._tree.enter(e,t,n))}parent(){if(!this.buffer)return this.yieldNode(this.mode&p.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&p.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return!!this._tree._parent&&this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode));let{buffer:t}=this.buffer,n=this.stack.length-1;if(e<0){let e=n<0?0:this.stack[n]+4;if(this.index!=e)return this.yieldBuf(t.findChild(e,this.index,-1,0,4))}else{let e=t.buffer[this.index+3];if(e<(n<0?t.buffer.length:t.buffer[this.stack[n]+3]))return this.yieldBuf(e)}return n<0&&this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode))}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let t,n,{buffer:r}=this;if(r){if(e>0){if(this.index-1)for(let r=t+e,i=e<0?-1:n._tree.children.length;r!=i;r+=e){let e=n._tree.children[r];if(this.mode&p.IncludeAnonymous||e instanceof g||!e.type.isAnonymous||E(e))return!1}return!0}move(e,t){if(t&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,t=0){for(;(this.from==this.to||(t<1?this.from>=e:this.from>e)||(t>-1?this.to<=e:this.to=0;){for(let o=e;o;o=o._parent)if(o.index==r){if(r==this.index)return o;t=o,n=i+1;break e}r=this.stack[--i]}for(let e=n;e=0;i--){if(i<0)return x(this.node,e,r);let o=n[t.buffer[this.stack[i]]];if(!o.isAnonymous){if(e[r]&&e[r]!=o.name)return!1;r--}}return!0}}function E(e){return e.children.some(e=>e instanceof g||!e.type.isAnonymous||E(e))}const A=new WeakMap;function T(e,t){if(!e.isAnonymous||t instanceof g||t.type!=e)return 1;let n=A.get(t);if(null==n){n=1;for(let r of t.children){if(r.type!=e||!(r instanceof f)){n=1;break}n+=T(e,r)}A.set(t,n)}return n}function C(e,t,n,r,i,o,s,a,l){let c=0;for(let n=r;n=u)break;f+=t}if(c==i+1){if(f>u){let e=n[i];t(e.children,e.positions,0,e.children.length,r[i]+a);continue}d.push(n[i])}else{let t=r[c-1]+n[c-1].length-p;d.push(C(e,n,r,i,c,p,t,null,l))}h.push(p+a-o)}}(t,n,r,i,0),(a||l)(d,h,s)}class M{constructor(){this.map=new WeakMap}setBuffer(e,t,n){let r=this.map.get(e);r||this.map.set(e,r=new Map),r.set(t,n)}getBuffer(e,t){let n=this.map.get(e);return n&&n.get(t)}set(e,t){e instanceof k?this.setBuffer(e.context.buffer,e.index,t):e instanceof S&&this.map.set(e.tree,t)}get(e){return e instanceof k?this.getBuffer(e.context.buffer,e.index):e instanceof S?this.map.get(e.tree):void 0}cursorSet(e,t){e.buffer?this.setBuffer(e.buffer.buffer,e.index,t):this.map.set(e.tree,t)}cursorGet(e){return e.buffer?this.getBuffer(e.buffer.buffer,e.index):this.map.get(e.tree)}}class ${constructor(e,t,n,r,i=!1,o=!1){this.from=e,this.to=t,this.tree=n,this.offset=r,this.open=(i?1:0)|(o?2:0)}get openStart(){return(1&this.open)>0}get openEnd(){return(2&this.open)>0}static addTree(e,t=[],n=!1){let r=[new $(0,e.length,e,0,!1,n)];for(let n of t)n.to>e.length&&r.push(n);return r}static applyChanges(e,t,n=128){if(!t.length)return e;let r=[],i=1,o=e.length?e[0]:null;for(let s=0,a=0,l=0;;s++){let c=s=n)for(;o&&o.from=t.from||u<=t.to||l){let e=Math.max(t.from,a)-l,n=Math.min(t.to,u)-l;t=e>=n?null:new $(e,n,t.tree,t.offset+l,s>0,!!c)}if(t&&r.push(t),o.to>u)break;o=inew o(e.from,e.to)):[new o(0,0)]:[new o(0,e.length)],this.createParse(e,t||[],n)}parse(e,t,n){let r=this.startParse(e,t,n);for(;;){let e=r.advance();if(e)return e}}}class R{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,t){return this.string.slice(e,t)}}function j(e){return(t,n,r,i)=>new L(t,e,n,r,i)}class N{constructor(e,t,n,r,i){this.parser=e,this.parse=t,this.overlay=n,this.target=r,this.ranges=i}}class D{constructor(e,t,n,r,i,o,s){this.parser=e,this.predicate=t,this.mounts=n,this.index=r,this.start=i,this.target=o,this.prev=s,this.depth=0,this.ranges=[]}}const I=new s({perNode:!0});class L{constructor(e,t,n,r,i){this.nest=t,this.input=n,this.fragments=r,this.ranges=i,this.inner=[],this.innerDone=0,this.baseTree=null,this.stoppedAt=null,this.baseParse=e}advance(){if(this.baseParse){let e=this.baseParse.advance();if(!e)return null;if(this.baseParse=null,this.baseTree=e,this.startInner(),null!=this.stoppedAt)for(let e of this.inner)e.parse.stopAt(this.stoppedAt)}if(this.innerDone==this.inner.length){let e=this.baseTree;return null!=this.stoppedAt&&(e=new f(e.type,e.children,e.positions,e.length,e.propValues.concat([[I,this.stoppedAt]]))),e}let e=this.inner[this.innerDone],t=e.parse.advance();if(t){this.innerDone++;let n=Object.assign(Object.create(null),e.target.props);n[s.mounted.id]=new a(t,e.overlay,e.parser),e.target.props=n}return null}get parsedPos(){if(this.baseParse)return 0;let e=this.input.length;for(let t=this.innerDone;te.frag.from<=r.from&&e.frag.to>=r.to&&e.mount.overlay);if(e)for(let n of e.mount.overlay){let i=n.from+e.pos,o=n.to+e.pos;i>=r.from&&o<=r.to&&!t.ranges.some(e=>e.fromi)&&t.ranges.push({from:i,to:o})}}l=!1}else if(n&&(s=B(n.ranges,r.from,r.to)))l=2!=s;else if(!r.type.isAnonymous&&r.fromnew o(e.from-r.from,e.to-r.from)):null,r.tree,e)),i.overlay?e.length&&(n={ranges:e,depth:0,prev:n}):l=!1}}else t&&(a=t.predicate(r))&&(!0===a&&(a=new o(r.from,r.to)),a.fromnew o(e.from-t.start,e.to-t.start)),t.target,e)),t=t.prev}n&&!--n.depth&&(n=n.prev)}}}}function B(e,t,n){for(let r of e){if(r.from>=n)break;if(r.to>t)return r.from<=t&&r.to>=n?2:1}return 0}function z(e,t,n,r,i,o){if(t=t.to);r++);let s=i.children[r],a=s.buffer;i.children[r]=function e(n,r,i,l,c){let u=n;for(;a[u+2]+o<=t.from;)u=a[u+3];let d=[],h=[];z(s,n,u,d,h,l);let p=a[u+1],m=a[u+2],g=p+o==t.from&&m+o==t.to&&a[u]==t.type.id;return d.push(g?t.toTree():e(u+4,a[u+3],s.set.types[a[u]],p,m-p)),h.push(p-l),z(s,a[u+3],r,d,h,l),new f(i,d,h,c)}(0,a.length,c.none,0,s.length);for(let r=0;r<=n;r++)e.childAfter(t.from)}class U{constructor(e,t){this.offset=t,this.done=!1,this.cursor=e.cursor(p.IncludeAnonymous|p.IgnoreMounts)}moveTo(e){let{cursor:t}=this,n=e-this.offset;for(;!this.done&&t.from=e&&t.enter(n,1,p.IgnoreOverlays|p.ExcludeBuffers)||t.next(!1)||(this.done=!0)}hasNode(e){if(this.moveTo(e.from),!this.done&&this.cursor.from+this.offset==e.from&&this.cursor.tree)for(let t=this.cursor.tree;;){if(t==e.tree)return!0;if(!(t.children.length&&0==t.positions[0]&&t.children[0]instanceof f))break;t=t.children[0]}return!1}}class Q{constructor(e){var t;if(this.fragments=e,this.curTo=0,this.fragI=0,e.length){let n=this.curFrag=e[0];this.curTo=null!==(t=n.tree.prop(I))&&void 0!==t?t:n.to,this.inner=new U(n.tree,-n.offset)}else this.curFrag=this.inner=null}hasNode(e){for(;this.curFrag&&e.from>=this.curTo;)this.nextFrag();return this.curFrag&&this.curFrag.from<=e.from&&this.curTo>=e.to&&this.inner.hasNode(e)}nextFrag(){var e;if(this.fragI++,this.fragI==this.fragments.length)this.curFrag=this.inner=null;else{let t=this.curFrag=this.fragments[this.fragI];this.curTo=null!==(e=t.tree.prop(I))&&void 0!==e?e:t.to,this.inner=new U(t.tree,-t.offset)}}findMounts(e,t){var n;let r=[];if(this.inner){this.inner.cursor.moveTo(e,1);for(let e=this.inner.cursor.node;e;e=e.parent){let i=null===(n=e.tree)||void 0===n?void 0:n.prop(s.mounted);if(i&&i.parser==t)for(let t=this.fragI;t=e.to)break;n.tree==this.curFrag.tree&&r.push({frag:n,pos:e.from-n.offset,mount:i})}}}return r}}function q(e,t){let n=null,r=t;for(let i=1,s=0;i=l)break;e.to<=a||(n||(r=n=t.slice()),e.froml&&n.splice(s+1,0,new o(l,e.to))):e.to>l?n[s--]=new o(l,e.to):n.splice(s--,1))}}return r}function G(e,t,n,r){let i=0,s=0,a=!1,l=!1,c=-1e9,u=[];for(;;){let d=i==e.length?1e9:a?e[i].to:e[i].from,h=s==t.length?1e9:l?t[s].to:t[s].from;if(a!=l){let e=Math.max(c,n),t=Math.min(d,h,r);enew o(e.from+r,e.to+r)),l,c);for(let t=0,r=l;;t++){let o=t==a.length,l=o?c:a[t].from;if(l>r&&n.push(new $(r,l,i.tree,-e,s.from>=r||s.openStart,s.to<=l||s.openEnd)),o)break;r=a[t].to}}else n.push(new $(l,c,i.tree,-e,s.from>=e||s.openStart,s.to<=a||s.openEnd))}return n}},function(e,t,n){n(346),n(347),e.exports=Sk},function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var r=n(85);function i(e,t,n){return(t=Object(r.a)(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},function(e,t){e.exports={trueFunc:function(){return!0},falseFunc:function(){return!1}}},function(e,t,n){"use strict";n.d(t,"a",(function(){return i})),n.d(t,"b",(function(){return a})),n.d(t,"c",(function(){return o}));var r=n(17);const i=n(38).a;function o(e,t){try{let n=e;const r=5,i=80,o=[];let a=0,l=0;const c=" > ",u=c.length;let d;for(;n&&a++1&&l+o.length*u+d.length>=i));)o.push(d),l+=d.length,n=n.parentNode;return o.reverse().join(c)}catch(e){return""}}function s(e,t){const n=e,i=[];let o,s,a,l,c;if(!n||!n.tagName)return"";i.push(n.tagName.toLowerCase());const u=t&&t.length?t.filter(e=>n.getAttribute(e)).map(e=>[e,n.getAttribute(e)]):null;if(u&&u.length)u.forEach(e=>{i.push(`[${e[0]}="${e[1]}"]`)});else if(n.id&&i.push("#"+n.id),o=n.className,o&&Object(r.i)(o))for(s=o.split(/\s+/),c=0;c1&&l+o.length*u+d.length>=i));)o.push(d),l+=d.length,n=n.parentNode;return o.reverse().join(c)}catch(e){return""}}function s(e,t){const n=e,i=[];let o,s,a,l,c;if(!n||!n.tagName)return"";i.push(n.tagName.toLowerCase());const u=t&&t.length?t.filter(e=>n.getAttribute(e)).map(e=>[e,n.getAttribute(e)]):null;if(u&&u.length)u.forEach(e=>{i.push(`[${e[0]}="${e[1]}"]`)});else if(n.id&&i.push("#"+n.id),o=n.className,o&&Object(r.l)(o))for(s=o.split(/\s+/),c=0;c{Object.assign(h,e)};var f,m;const g=e=>"colorSpace"in e||"outputColorSpace"in e,b=()=>{var e;return null!=(e=h.ColorManagement)?e:null},v=e=>e&&e.isOrthographicCamera,y=e=>e&&e.hasOwnProperty("current"),S="undefined"!=typeof window&&(null!=(f=window.document)&&f.createElement||"ReactNative"===(null==(m=window.navigator)?void 0:m.product))?i.useLayoutEffect:i.useEffect;function _(e){const t=i.useRef(e);return S(()=>{t.current=e},[e]),t}function x({set:e}){return S(()=>(e(new Promise(()=>null)),()=>e(!1)),[e]),null}class w extends i.Component{constructor(...e){super(...e),this.state={error:!1}}componentDidCatch(e){this.props.set(e)}render(){return this.state.error?null:this.props.children}}w.getDerivedStateFromError=()=>({error:!0});const k=new Map;function O(e){var t;const n="undefined"!=typeof window?null!=(t=window.devicePixelRatio)?t:2:1;return Array.isArray(e)?Math.min(Math.max(e[0],n),e[1]):e}const E=e=>{var t;return null==(t=e.__r3f)?void 0:t.root.getState()},A={obj:e=>e===Object(e)&&!A.arr(e)&&"function"!=typeof e,fun:e=>"function"==typeof e,str:e=>"string"==typeof e,num:e=>"number"==typeof e,boo:e=>"boolean"==typeof e,und:e=>void 0===e,arr:e=>Array.isArray(e),equ(e,t,{arrays:n="shallow",objects:r="reference",strict:i=!0}={}){if(typeof e!=typeof t||!!e!=!!t)return!1;if(A.str(e)||A.num(e))return e===t;const o=A.obj(e);if(o&&"reference"===r)return e===t;const s=A.arr(e);if(s&&"reference"===n)return e===t;if((s||o)&&e===t)return!0;let a;for(a in e)if(!(a in t))return!1;if(o&&"shallow"===n&&"shallow"===r){for(a in i?t:e)if(!A.equ(e[a],t[a],{strict:i,objects:"reference"}))return!1}else for(a in i?t:e)if(e[a]!==t[a])return!1;if(A.und(a)){if(s&&0===e.length&&0===t.length)return!0;if(o&&0===Object.keys(e).length&&0===Object.keys(t).length)return!0;if(e!==t)return!1}return!0}};function T(e){const t={nodes:{},materials:{}};return e&&e.traverse(e=>{e.name&&(t.nodes[e.name]=e),e.material&&!t.materials[e.material.name]&&(t.materials[e.material.name]=e.material)}),t}function C(e,t){const n=e;return(null!=t&&t.primitive||!n.__r3f)&&(n.__r3f={type:"",root:null,previousAttach:null,memoizedProps:{},eventCount:0,handlers:{},objects:[],parent:null,...t}),e}function M(e,t){let n=e;if(t.includes("-")){const r=t.split("-"),i=r.pop();return n=r.reduce((e,t)=>e[t],e),{target:n,key:i}}return{target:n,key:t}}const $=/-\d+$/;function P(e,t,n){if(A.str(n)){if($.test(n)){const t=n.replace($,""),{target:r,key:i}=M(e,t);Array.isArray(r[i])||(r[i]=[])}const{target:r,key:i}=M(e,n);t.__r3f.previousAttach=r[i],r[i]=t}else t.__r3f.previousAttach=n(e,t)}function R(e,t,n){var r,i;if(A.str(n)){const{target:r,key:i}=M(e,n),o=t.__r3f.previousAttach;void 0===o?delete r[i]:r[i]=o}else null==(r=t.__r3f)||null==r.previousAttach||r.previousAttach(e,t);null==(i=t.__r3f)||delete i.previousAttach}function j(e,{children:t,key:n,ref:r,...i},{children:o,key:s,ref:a,...l}={},c=!1){var u;const d=null!=(u=null==e?void 0:e.__r3f)?u:{},h=Object.entries(i),p=[];if(c){const e=Object.keys(l);for(let t=0;t{var r;if(null!=(r=e.__r3f)&&r.primitive&&"object"===t)return;if(A.equ(n,l[t]))return;if(/^on(Pointer|Click|DoubleClick|ContextMenu|Wheel)/.test(t))return p.push([t,n,!0,[]]);let o=[];t.includes("-")&&(o=t.split("-")),p.push([t,n,!1,o]);for(const e in i){const n=i[e];e.startsWith(t+"-")&&p.push([e,n,!1,e.split("-")])}});const f={...i};return d.memoizedProps&&d.memoizedProps.args&&(f.args=d.memoizedProps.args),d.memoizedProps&&d.memoizedProps.attach&&(f.attach=d.memoizedProps.attach),{memoized:f,changes:p}}function N(e,t){var n,i,o;const s=null!=(n=e.__r3f)?n:{},a=s.root,l=null!=(i=null==a||null==a.getState?void 0:a.getState())?i:{},{memoized:c,changes:u}=(d=t)&&d.memoized&&d.changes?t:j(e,t);var d;const h=s.eventCount;e.__r3f&&(e.__r3f.memoizedProps=c);for(let t=0;te[t],e),!d||!d.set)){const[t,...r]=a.reverse();c=r.reverse().reduce((e,t)=>e[t],e),n=t}if("__defaultremove"===i)if(c.constructor){let e=k.get(c.constructor);e||(e=new c.constructor,k.set(c.constructor,e)),i=e[n]}else i=0;if(o)i?s.handlers[n]=i:delete s.handlers[n],s.eventCount=Object.keys(s.handlers).length;else if(d&&d.set&&(d.copy||d instanceof r.Layers)){if(Array.isArray(i))d.fromArray?d.fromArray(i):d.set(...i);else if(d.copy&&i&&i.constructor&&d.constructor===i.constructor)d.copy(i);else if(void 0!==i){const e=d instanceof r.Color;!e&&d.setScalar?d.setScalar(i):d instanceof r.Layers&&i instanceof r.Layers?d.mask=i.mask:d.set(i),b()||l.linear||!e||d.convertSRGBToLinear()}}else if(c[n]=i,c[n]instanceof r.Texture&&c[n].format===r.RGBAFormat&&c[n].type===r.UnsignedByteType){const e=c[n];g(e)&&g(l.gl)?e.colorSpace=l.gl.outputColorSpace:e.encoding=l.gl.outputEncoding}D(e)}if(s.parent&&l.internal&&e.raycast&&h!==s.eventCount){const t=l.internal.interaction.indexOf(e);t>-1&&l.internal.interaction.splice(t,1),s.eventCount&&l.internal.interaction.push(e)}return!(1===u.length&&"onUpdate"===u[0][0])&&u.length&&null!=(o=e.__r3f)&&o.parent&&I(e),e}function D(e){var t,n;const r=null==(t=e.__r3f)||null==(n=t.root)||null==n.getState?void 0:n.getState();r&&0===r.internal.frames&&r.invalidate()}function I(e){null==e.onUpdate||e.onUpdate(e)}function L(e,t){e.manual||(v(e)?(e.left=t.width/-2,e.right=t.width/2,e.top=t.height/2,e.bottom=t.height/-2):e.aspect=t.width/t.height,e.updateProjectionMatrix(),e.updateMatrixWorld())}function B(e){return(e.eventObject||e.object).uuid+"/"+e.index+e.instanceId}function z(e,t,n,r){const i=n.get(t);i&&(n.delete(t),0===n.size&&(e.delete(r),i.target.releasePointerCapture(r)))}function F(e){function t(e){return e.filter(e=>["Move","Over","Enter","Out","Leave"].some(t=>{var n;return null==(n=e.__r3f)?void 0:n.handlers["onPointer"+t]}))}function n(t){const{internal:n}=e.getState();for(const e of n.hovered.values())if(!t.length||!t.find(t=>t.object===e.object&&t.index===e.index&&t.instanceId===e.instanceId)){const r=e.eventObject.__r3f,i=null==r?void 0:r.handlers;if(n.hovered.delete(B(e)),null!=r&&r.eventCount){const n={...e,intersections:t};null==i.onPointerOut||i.onPointerOut(n),null==i.onPointerLeave||i.onPointerLeave(n)}}}function i(e,t){for(let n=0;nn([]);case"onLostPointerCapture":return t=>{const{internal:r}=e.getState();"pointerId"in t&&r.capturedMap.has(t.pointerId)&&requestAnimationFrame(()=>{r.capturedMap.has(t.pointerId)&&(r.capturedMap.delete(t.pointerId),n([]))})}}return function(s){const{onPointerMissed:a,internal:l}=e.getState();l.lastEvent.current=s;const c="onPointerMove"===o,u="onClick"===o||"onContextMenu"===o||"onDoubleClick"===o,d=function(t,n){const r=e.getState(),i=new Set,o=[],s=n?n(r.internal.interaction):r.internal.interaction;for(let e=0;e{const n=E(e.object),r=E(t.object);return n&&r&&r.events.priority-n.events.priority||e.distance-t.distance}).filter(e=>{const t=B(e);return!i.has(t)&&(i.add(t),!0)});r.events.filter&&(a=r.events.filter(a,r));for(const e of a){let t=e.object;for(;t;){var l;null!=(l=t.__r3f)&&l.eventCount&&o.push({...e,eventObject:t}),t=t.parent}}if("pointerId"in t&&r.internal.capturedMap.has(t.pointerId))for(let e of r.internal.capturedMap.get(t.pointerId).values())i.has(B(e.intersection))||o.push(e.intersection);return o}(s,c?t:void 0),h=u?function(t){const{internal:n}=e.getState(),r=t.offsetX-n.initialClick[0],i=t.offsetY-n.initialClick[1];return Math.round(Math.sqrt(r*r+i*i))}(s):0;"onPointerDown"===o&&(l.initialClick=[s.offsetX,s.offsetY],l.initialHits=d.map(e=>e.eventObject)),u&&!d.length&&h<=2&&(i(s,l.interaction),a&&a(s)),c&&n(d),function(t,i,o,s){const a=e.getState();if(t.length){const e={stopped:!1};for(const l of t){const c=E(l.object)||a,{raycaster:u,pointer:d,camera:h,internal:p}=c,f=new r.Vector3(d.x,d.y,0).unproject(h),m=e=>{var t,n;return null!=(t=null==(n=p.capturedMap.get(e))?void 0:n.has(l.eventObject))&&t},g=e=>{const t={intersection:l,target:i.target};p.capturedMap.has(e)?p.capturedMap.get(e).set(l.eventObject,t):p.capturedMap.set(e,new Map([[l.eventObject,t]])),i.target.setPointerCapture(e)},b=e=>{const t=p.capturedMap.get(e);t&&z(p.capturedMap,l.eventObject,t,e)};let v={};for(let e in i){let t=i[e];"function"!=typeof t&&(v[e]=t)}let y={...l,...v,pointer:d,intersections:t,stopped:e.stopped,delta:o,unprojectedPoint:f,ray:u.ray,camera:h,stopPropagation(){const r="pointerId"in i&&p.capturedMap.get(i.pointerId);if((!r||r.has(l.eventObject))&&(y.stopped=e.stopped=!0,p.hovered.size&&Array.from(p.hovered.values()).find(e=>e.eventObject===l.eventObject))){n([...t.slice(0,t.indexOf(l)),l])}},target:{hasPointerCapture:m,setPointerCapture:g,releasePointerCapture:b},currentTarget:{hasPointerCapture:m,setPointerCapture:g,releasePointerCapture:b},nativeEvent:i};if(s(y),!0===e.stopped)break}}}(d,s,h,(function(e){const t=e.eventObject,n=t.__r3f,r=null==n?void 0:n.handlers;if(null!=n&&n.eventCount)if(c){if(r.onPointerOver||r.onPointerEnter||r.onPointerOut||r.onPointerLeave){const t=B(e),n=l.hovered.get(t);n?n.stopped&&e.stopPropagation():(l.hovered.set(t,e),null==r.onPointerOver||r.onPointerOver(e),null==r.onPointerEnter||r.onPointerEnter(e))}null==r.onPointerMove||r.onPointerMove(e)}else{const n=r[o];n?u&&!l.initialHits.includes(t)||(i(s,l.interaction.filter(e=>!l.initialHits.includes(e))),n(e)):u&&l.initialHits.includes(t)&&i(s,l.interaction.filter(e=>!l.initialHits.includes(e)))}}))}}}}const U=e=>!(null==e||!e.render),Q=i.createContext(null);let q,G=new Set,H=new Set,V=new Set;function W(e,t){if(e.size)for(const{callback:n}of e.values())n(t)}function X(e,t){switch(e){case"before":return W(G,t);case"after":return W(H,t);case"tail":return W(V,t)}}let Y,Z;function J(e,t,n){let r=t.clock.getDelta();for("never"===t.frameloop&&"number"==typeof e&&(r=e-t.clock.elapsedTime,t.clock.oldTime=t.clock.elapsedTime,t.clock.elapsedTime=e),Y=t.internal.subscribers,q=0;qe),t){return K()(e,t)}function te(e,t=0){const n=K(),r=n.getState().internal.subscribe,i=_(e);return S(()=>r(i,t,n),[t,r,n]),null}function ne(e,t){return function(n,...r){const i=new n;return e&&e(i),Promise.all(r.map(e=>new Promise((n,r)=>i.load(e,e=>{e.scene&&Object.assign(e,T(e.scene)),n(e)},t,t=>r(new Error(`Could not load ${e}: ${t.message})`))))))}}function re(e,t,n,r){const i=Array.isArray(t)?t:[t],o=Object(d.c)(ne(n,r),[e,...i],{equal:A.equ});return Array.isArray(t)?o:o[0]}re.preload=function(e,t,n){const r=Array.isArray(t)?t:[t];return Object(d.b)(ne(n),[e,...r])},re.clear=function(e,t){const n=Array.isArray(t)?t:[t];return Object(d.a)([e,...n])};const ie=new Map,{invalidate:oe,advance:se}=function(e){let t,n,r,i=!1;function o(s){n=requestAnimationFrame(o),i=!0,t=0,X("before",s);for(const n of e.values()){var a;r=n.store.getState(),!r.internal.active||!("always"===r.frameloop||r.internal.frames>0)||null!=(a=r.gl.xr)&&a.isPresenting||(t+=J(s,r))}if(X("after",s),0===t)return X("tail",s),i=!1,cancelAnimationFrame(n)}return{loop:o,invalidate:function t(n,r=1){var s;if(!n)return e.forEach(e=>t(e.store.getState()),r);null!=(s=n.gl.xr)&&s.isPresenting||!n.internal.active||"never"===n.frameloop||(n.internal.frames=Math.min(60,n.internal.frames+r),i||(i=!0,requestAnimationFrame(o)))},advance:function(t,n=!0,r,i){if(n&&X("before",t),r)J(t,r,i);else for(const n of e.values())J(t,n.store.getState());n&&X("after",t)}}}(ie),{reconciler:ae,applyProps:le}=function(e,t){function n(e,{args:t=[],attach:n,...i},o){let s,a=`${e[0].toUpperCase()}${e.slice(1)}`;if("primitive"===e){if(void 0===i.object)throw new Error("R3F: Primitives without 'object' are invalid!");s=C(i.object,{type:e,root:o,attach:n,primitive:!0})}else{const r=h[a];if(!r)throw new Error(`R3F: ${a} is not part of the THREE namespace! Did you forget to extend? See: https://docs.pmnd.rs/react-three-fiber/api/objects#using-3rd-party-objects-declaratively`);if(!Array.isArray(t))throw new Error("R3F: The args prop must be an array!");s=C(new r(...t),{type:e,root:o,attach:n,memoizedProps:{args:t}})}return void 0===s.__r3f.attach&&(s instanceof r.BufferGeometry?s.__r3f.attach="geometry":s instanceof r.Material&&(s.__r3f.attach="material")),"inject"!==a&&N(s,i),s}function i(e,t){let n=!1;var r,i;t&&(null!=(r=t.__r3f)&&r.attach?P(e,t,t.__r3f.attach):t.isObject3D&&e.isObject3D&&(e.add(t),n=!0),n||null==(i=e.__r3f)||i.objects.push(t),t.__r3f||C(t,{}),t.__r3f.parent=e,I(t),D(t))}function s(e,t,n){let r=!1;if(t){var i,o;if(null!=(i=t.__r3f)&&i.attach)P(e,t,t.__r3f.attach);else if(t.isObject3D&&e.isObject3D){t.parent=e,t.dispatchEvent({type:"added"});const i=e.children.filter(e=>e!==t),o=i.indexOf(n);e.children=[...i.slice(0,o),t,...i.slice(o)],r=!0}r||null==(o=e.__r3f)||o.objects.push(t),t.__r3f||C(t,{}),t.__r3f.parent=e,I(t),D(t)}}function a(e,t,n=!1){e&&[...e].forEach(e=>l(t,e,n))}function l(e,t,n){if(t){var r,i,o;if(t.__r3f&&(t.__r3f.parent=null),null!=(r=e.__r3f)&&r.objects&&(e.__r3f.objects=e.__r3f.objects.filter(e=>e!==t)),null!=(i=t.__r3f)&&i.attach)R(e,t,t.__r3f.attach);else if(t.isObject3D&&e.isObject3D){var s;e.remove(t),null!=(s=t.__r3f)&&s.root&&function(e,t){const{internal:n}=e.getState();n.interaction=n.interaction.filter(e=>e!==t),n.initialHits=n.initialHits.filter(e=>e!==t),n.hovered.forEach((e,r)=>{e.eventObject!==t&&e.object!==t||n.hovered.delete(r)}),n.capturedMap.forEach((e,r)=>{z(n.capturedMap,t,e,r)})}(t.__r3f.root,t)}const c=null==(o=t.__r3f)?void 0:o.primitive,d=void 0===n?null!==t.dispose&&!c:n;var l;if(!c)a(null==(l=t.__r3f)?void 0:l.objects,t,d),a(t.children,t,d);t.__r3f&&(delete t.__r3f.root,delete t.__r3f.objects,delete t.__r3f.handlers,delete t.__r3f.memoizedProps,c||delete t.__r3f),d&&t.dispose&&"Scene"!==t.type&&Object(u.unstable_scheduleCallback)(u.unstable_IdlePriority,()=>{try{t.dispose()}catch(e){}}),D(e)}}const d=()=>console.warn("Text is not allowed in the R3F tree! This could be stray whitespace or characters.");return{reconciler:c()({createInstance:n,removeChild:l,appendChild:i,appendInitialChild:i,insertBefore:s,supportsMutation:!0,isPrimaryRenderer:!1,supportsPersistence:!1,supportsHydration:!1,noTimeout:-1,appendChildToContainer:(e,t)=>{if(!t)return;const n=e.getState().scene;n.__r3f&&(n.__r3f.root=e,i(n,t))},removeChildFromContainer:(e,t)=>{t&&l(e.getState().scene,t)},insertInContainerBefore:(e,t,n)=>{if(!t||!n)return;const r=e.getState().scene;r.__r3f&&s(r,t,n)},getRootHostContext:()=>null,getChildHostContext:e=>e,finalizeInitialChildren(e){var t;const n=null!=(t=null==e?void 0:e.__r3f)?t:{};return Boolean(n.handlers)},prepareUpdate(e,t,n,r){if(e.__r3f.primitive&&r.object&&r.object!==e)return[!0];{const{args:t=[],children:i,...o}=r,{args:s=[],children:a,...l}=n;if(!Array.isArray(t))throw new Error("R3F: the args prop must be an array!");if(t.some((e,t)=>e!==s[t]))return[!0];const c=j(e,o,l,!0);return c.changes.length?[!1,c]:null}},commitUpdate(e,[t,r],o,s,a,c){t?function(e,t,r,o){var s;const a=null==(s=e.__r3f)?void 0:s.parent;if(!a)return;const c=n(t,r,e.__r3f.root);if(e.children){for(const t of e.children)t.__r3f&&i(c,t);e.children=e.children.filter(e=>!e.__r3f)}if(e.__r3f.objects.forEach(e=>i(c,e)),e.__r3f.objects=[],e.__r3f.autoRemovedBeforeAppend||l(a,e),c.parent&&(c.__r3f.autoRemovedBeforeAppend=!0),i(a,c),c.raycast&&c.__r3f.eventCount){c.__r3f.root.getState().internal.interaction.push(c)}[o,o.alternate].forEach(e=>{null!==e&&(e.stateNode=c,e.ref&&("function"==typeof e.ref?e.ref(c):e.ref.current=c))})}(e,o,a,c):N(e,r)},commitMount(e,t,n,r){var i;const o=null!=(i=e.__r3f)?i:{};e.raycast&&o.handlers&&o.eventCount&&e.__r3f.root.getState().internal.interaction.push(e)},getPublicInstance:e=>e,prepareForCommit:()=>null,preparePortalMount:e=>C(e.getState().scene),resetAfterCommit:()=>{},shouldSetTextContent:()=>!1,clearContainer:()=>!1,hideInstance(e){var t;const{attach:n,parent:r}=null!=(t=e.__r3f)?t:{};n&&r&&R(r,e,n),e.isObject3D&&(e.visible=!1),D(e)},unhideInstance(e,t){var n;const{attach:r,parent:i}=null!=(n=e.__r3f)?n:{};r&&i&&P(i,e,r),(e.isObject3D&&null==t.visible||t.visible)&&(e.visible=!0),D(e)},createTextInstance:d,hideTextInstance:d,unhideTextInstance:d,getCurrentEventPriority:()=>t?t():o.DefaultEventPriority,beforeActiveInstanceBlur:()=>{},afterActiveInstanceBlur:()=>{},detachDeletedInstance:()=>{},now:"undefined"!=typeof performance&&A.fun(performance.now)?performance.now:A.fun(Date.now)?Date.now:()=>0,scheduleTimeout:A.fun(setTimeout)?setTimeout:void 0,cancelTimeout:A.fun(clearTimeout)?clearTimeout:void 0}),applyProps:N}}(0,(function(){var e;const t="undefined"!=typeof self&&self||"undefined"!=typeof window&&window;if(!t)return o.DefaultEventPriority;switch(null==(e=t.event)?void 0:e.type){case"click":case"contextmenu":case"dblclick":case"pointercancel":case"pointerdown":case"pointerup":return o.DiscreteEventPriority;case"pointermove":case"pointerout":case"pointerover":case"pointerenter":case"pointerleave":case"wheel":return o.ContinuousEventPriority;default:return o.DefaultEventPriority}})),ce={objects:"shallow",strict:!1},ue=(e,t)=>{const n="function"==typeof e?e(t):e;return U(n)?n:new r.WebGLRenderer({powerPreference:"high-performance",canvas:t,antialias:!0,alpha:!0,...e})};function de(e){const t=ie.get(e),n=null==t?void 0:t.fiber,s=null==t?void 0:t.store;t&&console.warn("R3F.createRoot should only be called once!");const l="function"==typeof reportError?reportError:console.error,c=s||((e,t)=>{const n=a()((n,o)=>{const s=new r.Vector3,a=new r.Vector3,l=new r.Vector3;function c(e=o().camera,t=a,n=o().size){const{width:i,height:c,top:u,left:d}=n,h=i/c;t instanceof r.Vector3?l.copy(t):l.set(...t);const p=e.getWorldPosition(s).distanceTo(l);if(v(e))return{width:i/e.zoom,height:c/e.zoom,top:u,left:d,factor:1,distance:p,aspect:h};{const t=e.fov*Math.PI/180,n=2*Math.tan(t/2)*p,r=n*(i/c);return{width:r,height:n,top:u,left:d,factor:i/r,distance:p,aspect:h}}}let u=void 0;const d=e=>n(t=>({performance:{...t.performance,current:e}})),h=new r.Vector2;return{set:n,get:o,gl:null,camera:null,raycaster:null,events:{priority:1,enabled:!0,connected:!1},xr:null,scene:null,invalidate:(t=1)=>e(o(),t),advance:(e,n)=>t(e,n,o()),legacy:!1,linear:!1,flat:!1,controls:null,clock:new r.Clock,pointer:h,mouse:h,frameloop:"always",onPointerMissed:void 0,performance:{current:1,min:.5,max:1,debounce:200,regress:()=>{const e=o();u&&clearTimeout(u),e.performance.current!==e.performance.min&&d(e.performance.min),u=setTimeout(()=>d(o().performance.max),e.performance.debounce)}},size:{width:0,height:0,top:0,left:0,updateStyle:!1},viewport:{initialDpr:0,dpr:0,width:0,height:0,top:0,left:0,aspect:0,distance:0,factor:0,getCurrentViewport:c},setEvents:e=>n(t=>({...t,events:{...t.events,...e}})),setSize:(e,t,r,i,s)=>{const l=o().camera,u={width:e,height:t,top:i||0,left:s||0,updateStyle:r};n(e=>({size:u,viewport:{...e.viewport,...c(l,a,u)}}))},setDpr:e=>n(t=>{const n=O(e);return{viewport:{...t.viewport,dpr:n,initialDpr:t.viewport.initialDpr||n}}}),setFrameloop:(e="always")=>{const t=o().clock;t.stop(),t.elapsedTime=0,"never"!==e&&(t.start(),t.elapsedTime=0),n(()=>({frameloop:e}))},previousRoot:void 0,internal:{active:!1,priority:0,frames:0,lastEvent:i.createRef(),interaction:[],hovered:new Map,subscribers:[],initialClick:[0,0],initialHits:[],capturedMap:new Map,subscribe:(e,t,n)=>{const r=o().internal;return r.priority=r.priority+(t>0?1:0),r.subscribers.push({ref:e,priority:t,store:n}),r.subscribers=r.subscribers.sort((e,t)=>e.priority-t.priority),()=>{const n=o().internal;null!=n&&n.subscribers&&(n.priority=n.priority-(t>0?1:0),n.subscribers=n.subscribers.filter(t=>t.ref!==e))}}}}}),o=n.getState();let s=o.size,l=o.viewport.dpr,c=o.camera;return n.subscribe(()=>{const{camera:e,size:t,viewport:r,gl:i,set:o}=n.getState();if(t!==s||r.dpr!==l){var a;s=t,l=r.dpr,L(e,t),i.setPixelRatio(r.dpr);const n=null!=(a=t.updateStyle)?a:"undefined"!=typeof HTMLCanvasElement&&i.domElement instanceof HTMLCanvasElement;i.setSize(t.width,t.height,n)}e!==c&&(c=e,o(t=>({viewport:{...t.viewport,...t.viewport.getCurrentViewport(e)}})))}),n.subscribe(t=>e(t)),n})(oe,se),u=n||ae.createContainer(c,o.ConcurrentRoot,null,!1,null,"",l,null);let d;t||ie.set(e,{fiber:u,store:c});let h,p=!1;return{configure(t={}){let{gl:n,size:i,scene:o,events:s,onCreated:a,shadows:l=!1,linear:u=!1,flat:f=!1,legacy:m=!1,orthographic:g=!1,frameloop:v="always",dpr:y=[1,2],performance:S,raycaster:_,camera:x,onPointerMissed:w}=t,k=c.getState(),E=k.gl;k.gl||k.set({gl:E=ue(n,e)});let T=k.raycaster;T||k.set({raycaster:T=new r.Raycaster});const{params:M,...$}=_||{};if(A.equ($,T,ce)||le(T,{...$}),A.equ(M,T.params,ce)||le(T,{params:{...T.params,...M}}),!k.camera||k.camera===h&&!A.equ(h,x,ce)){h=x;const e=x instanceof r.Camera,t=e?x:g?new r.OrthographicCamera(0,0,0,0,.1,1e3):new r.PerspectiveCamera(75,0,.1,1e3);e||(t.position.z=5,x&&le(t,x),k.camera||null!=x&&x.rotation||t.lookAt(0,0,0)),k.set({camera:t})}if(!k.scene){let e;o instanceof r.Scene?e=o:(e=new r.Scene,o&&le(e,o)),k.set({scene:C(e)})}if(!k.xr){const e=(e,t)=>{const n=c.getState();"never"!==n.frameloop&&se(e,!0,n,t)},t=()=>{const t=c.getState();t.gl.xr.enabled=t.gl.xr.isPresenting,t.gl.xr.setAnimationLoop(t.gl.xr.isPresenting?e:null),t.gl.xr.isPresenting||oe(t)},n={connect(){const e=c.getState().gl;e.xr.addEventListener("sessionstart",t),e.xr.addEventListener("sessionend",t)},disconnect(){const e=c.getState().gl;e.xr.removeEventListener("sessionstart",t),e.xr.removeEventListener("sessionend",t)}};E.xr&&n.connect(),k.set({xr:n})}if(E.shadowMap){const e=E.shadowMap.enabled,t=E.shadowMap.type;if(E.shadowMap.enabled=!!l,A.boo(l))E.shadowMap.type=r.PCFSoftShadowMap;else if(A.str(l)){var P;const e={basic:r.BasicShadowMap,percentage:r.PCFShadowMap,soft:r.PCFSoftShadowMap,variance:r.VSMShadowMap};E.shadowMap.type=null!=(P=e[l])?P:r.PCFSoftShadowMap}else A.obj(l)&&Object.assign(E.shadowMap,l);e===E.shadowMap.enabled&&t===E.shadowMap.type||(E.shadowMap.needsUpdate=!0)}const R=b();R&&("enabled"in R?R.enabled=!m:"legacyMode"in R&&(R.legacyMode=m));le(E,{outputEncoding:u?3e3:3001,toneMapping:f?r.NoToneMapping:r.ACESFilmicToneMapping}),k.legacy!==m&&k.set(()=>({legacy:m})),k.linear!==u&&k.set(()=>({linear:u})),k.flat!==f&&k.set(()=>({flat:f})),!n||A.fun(n)||U(n)||A.equ(n,E,ce)||le(E,n),s&&!k.events.handlers&&k.set({events:s(c)});const j=function(e,t){if(t)return t;if("undefined"!=typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement&&e.parentElement){const{width:t,height:n,top:r,left:i}=e.parentElement.getBoundingClientRect();return{width:t,height:n,top:r,left:i}}return"undefined"!=typeof OffscreenCanvas&&e instanceof OffscreenCanvas?{width:e.width,height:e.height,top:0,left:0}:{width:0,height:0,top:0,left:0}}(e,i);return A.equ(j,k.size,ce)||k.setSize(j.width,j.height,j.updateStyle,j.top,j.left),y&&k.viewport.dpr!==O(y)&&k.setDpr(y),k.frameloop!==v&&k.setFrameloop(v),k.onPointerMissed||k.set({onPointerMissed:w}),S&&!A.equ(S,k.performance,ce)&&k.set(e=>({performance:{...e.performance,...S}})),d=a,p=!0,this},render(t){return p||this.configure(),ae.updateContainer(i.createElement(he,{store:c,children:t,onCreated:d,rootElement:e}),u,null,()=>{}),c},unmount(){pe(e)}}}function he({store:e,children:t,onCreated:n,rootElement:r}){return S(()=>{const t=e.getState();t.set(e=>({internal:{...e.internal,active:!0}})),n&&n(t),e.getState().events.connected||null==t.events.connect||t.events.connect(r)},[]),i.createElement(Q.Provider,{value:e},t)}function pe(e,t){const n=ie.get(e),r=null==n?void 0:n.fiber;if(r){const i=null==n?void 0:n.store.getState();i&&(i.internal.active=!1),ae.updateContainer(null,r,null,()=>{i&&setTimeout(()=>{try{var n,r,o,s;null==i.events.disconnect||i.events.disconnect(),null==(n=i.gl)||null==(r=n.renderLists)||null==r.dispose||r.dispose(),null==(o=i.gl)||null==o.forceContextLoss||o.forceContextLoss(),null!=(s=i.gl)&&s.xr&&i.xr.disconnect(),function(e){e.dispose&&"Scene"!==e.type&&e.dispose();for(const t in e)null==t.dispose||t.dispose(),delete e[t]}(i),ie.delete(e),t&&t(e)}catch(e){}},500)})}}ae.injectIntoDevTools({bundleType:0,rendererPackageName:"@react-three/fiber",version:i.version});i.unstable_act},function(e,t,n){"use strict";n.d(t,"a",(function(){return o})),n.d(t,"b",(function(){return i})),n.d(t,"c",(function(){return s}));var r=n(62);function i(e){const t=Object(r.a)().getClient(),n=e||t&&t.getOptions();return!!n&&("tracesSampleRate"in n||"tracesSampler"in n)}function o(e){const t=(e||Object(r.a)()).getScope();return t&&t.getTransaction()}function s(e){return e/1e3}},function(e,t,n){"use strict";n.d(t,"a",(function(){return i})),n.d(t,"b",(function(){return o})),n.d(t,"c",(function(){return a}));var r=n(38);const i=["debug","info","warn","error","log","assert","trace"];function o(e){if(!("console"in r.a))return e();const t=r.a.console,n={};i.forEach(e=>{const r=t[e]&&t[e].__sentry_original__;e in t&&r&&(n[e]=t[e],t[e]=r)});try{return e()}finally{Object.keys(n).forEach(e=>{t[e]=n[e]})}}function s(){let e=!1;const t={enable:()=>{e=!0},disable:()=>{e=!1}};return"undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__?i.forEach(n=>{t[n]=(...t)=>{e&&o(()=>{r.a.console[n](`Sentry Logger [${n}]:`,...t)})}}):i.forEach(e=>{t[e]=()=>{}}),t}let a;a="undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__?Object(r.b)("logger",s):s()},function(e,t,n){var r; /*! Copyright (c) 2018 Jed Watson. Licensed under the MIT License (MIT), see http://jedwatson.github.io/classnames */!function(){"use strict";var n={}.hasOwnProperty;function i(){for(var e=[],t=0;tt%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,t,n=0){let r=e.parser.context;return new o(e,[],t,n,n,0,[],0,r?new s(r,r.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,t){this.stack.push(this.state,t,this.bufferBase+this.buffer.length),this.state=e}reduce(e){var t;let n=e>>19,r=65535&e,{parser:i}=this.p,o=i.dynamicPrecedence(r);if(o&&(this.score+=o),0==n)return this.pushState(i.getGoto(this.state,r,!0),this.reducePos),r=2e3&&!(null===(t=this.p.parser.nodeSet.types[r])||void 0===t?void 0:t.isAnonymous)&&(a==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=l):this.p.lastBigReductionSizes;)this.stack.pop();this.reduceContext(r,a)}storeNode(e,t,n,r=4,i=!1){if(0==e&&(!this.stack.length||this.stack[this.stack.length-1]0&&0==e.buffer[r-4]&&e.buffer[r-1]>-1){if(t==n)return;if(e.buffer[r-2]>=t)return void(e.buffer[r-2]=n)}}if(i&&this.pos!=n){let i=this.buffer.length;if(i>0&&0!=this.buffer[i-4])for(;i>0&&this.buffer[i-2]>n;)this.buffer[i]=this.buffer[i-4],this.buffer[i+1]=this.buffer[i-3],this.buffer[i+2]=this.buffer[i-2],this.buffer[i+3]=this.buffer[i-1],i-=4,r>4&&(r-=4);this.buffer[i]=e,this.buffer[i+1]=t,this.buffer[i+2]=n,this.buffer[i+3]=r}else this.buffer.push(e,t,n,r)}shift(e,t,n){let r=this.pos;if(131072&e)this.pushState(65535&e,this.pos);else if(0==(262144&e)){let i=e,{parser:o}=this.p;(n>this.pos||t<=o.maxNode)&&(this.pos=n,o.stateFlag(i,1)||(this.reducePos=n)),this.pushState(i,r),this.shiftContext(t,r),t<=o.maxNode&&this.buffer.push(t,r,n,4)}else this.pos=n,this.shiftContext(t,r),t<=this.p.parser.maxNode&&this.buffer.push(t,r,n,4)}apply(e,t,n){65536&e?this.reduce(e):this.shift(e,t,n)}useNode(e,t){let n=this.p.reused.length-1;(n<0||this.p.reused[n]!=e)&&(this.p.reused.push(e),n++);let r=this.pos;this.reducePos=this.pos=r+e.length,this.pushState(t,r),this.buffer.push(n,r,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,e,this,this.p.stream.reset(this.pos-e.length)))}split(){let e=this,t=e.buffer.length;for(;t>0&&e.buffer[t-2]>e.reducePos;)t-=4;let n=e.buffer.slice(t),r=e.bufferBase+t;for(;e&&r==e.bufferBase;)e=e.parent;return new o(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,n,r,this.curContext,this.lookAhead,e)}recoverByDelete(e,t){let n=e<=this.p.parser.maxNode;n&&this.storeNode(e,this.pos,t,4),this.storeNode(0,this.pos,t,n?8:4),this.pos=this.reducePos=t,this.score-=190}canShift(e){for(let t=new a(this);;){let n=this.p.parser.stateSlot(t.state,4)||this.p.parser.hasAction(t.state,e);if(0==n)return!1;if(0==(65536&n))return!0;t.reduce(n)}}recoverByInsert(e){if(this.stack.length>=300)return[];let t=this.p.parser.nextStates(this.state);if(t.length>8||this.stack.length>=120){let n=[];for(let r,i=0;i1&t&&e==r)||n.push(t[e],r)}t=n}let n=[];for(let e=0;e>19,r=65535&e,i=this.stack.length-3*n;if(i<0||t.getGoto(this.stack[i],r,!1)<0)return!1;this.storeNode(0,this.reducePos,this.reducePos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(e),!0}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(3!=this.stack.length)return!1;let{parser:e}=this.p;return 65535==e.data[e.stateSlot(this.state,1)]&&!e.stateSlot(this.state,4)}restart(){this.state=this.stack[0],this.stack.length=0}sameState(e){if(this.state!=e.state||this.stack.length!=e.stack.length)return!1;for(let t=0;tthis.lookAhead&&(this.emitLookAhead(),this.lookAhead=e)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}}class s{constructor(e,t){this.tracker=e,this.context=t,this.hash=e.strict?e.hash(t):0}}!function(e){e[e.Insert=200]="Insert",e[e.Delete=190]="Delete",e[e.Reduce=100]="Reduce",e[e.MaxNext=4]="MaxNext",e[e.MaxInsertStackDepth=300]="MaxInsertStackDepth",e[e.DampenInsertStackDepth=120]="DampenInsertStackDepth",e[e.MinBigReduction=2e3]="MinBigReduction"}(r||(r={}));class a{constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let t=65535&e,n=e>>19;0==n?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=3*(n-1);let r=this.start.p.parser.getGoto(this.stack[this.base-3],t,!0);this.state=r}}class l{constructor(e,t,n){this.stack=e,this.pos=t,this.index=n,this.buffer=e.buffer,0==this.index&&this.maybeNext()}static create(e,t=e.bufferBase+e.buffer.length){return new l(e,t,t-e.bufferBase)}maybeNext(){let e=this.stack.parent;null!=e&&(this.index=this.stack.bufferBase-e.bufferBase,this.stack=e,this.buffer=e.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,0==this.index&&this.maybeNext()}fork(){return new l(this.stack,this.pos,this.index)}}function c(e,t=Uint16Array){if("string"!=typeof e)return e;let n=null;for(let r=0,i=0;r=92&&t--,t>=34&&t--;let i=t-32;if(i>=46&&(i-=46,n=!0),o+=i,n)break;o*=46}n?n[i++]=o:n=new t(o)}return n}class u{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}}const d=new u;class h{constructor(e,t){this.input=e,this.ranges=t,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=d,this.rangeIndex=0,this.pos=this.chunkPos=t[0].from,this.range=t[0],this.end=t[t.length-1].to,this.readNext()}resolveOffset(e,t){let n=this.range,r=this.rangeIndex,i=this.pos+e;for(;in.to:i>=n.to;){if(r==this.ranges.length-1)return null;let e=this.ranges[++r];i+=e.from-n.to,n=e}return i}clipPos(e){if(e>=this.range.from&&ee)return Math.max(e,t.from);return this.end}peek(e){let t,n,r=this.chunkOff+e;if(r>=0&&r=this.chunk2Pos&&tr.to&&(this.chunk2=this.chunk2.slice(0,r.to-t)),n=this.chunk2.charCodeAt(0)}}return t>=this.token.lookAhead&&(this.token.lookAhead=t+1),n}acceptToken(e,t=0){let n=t?this.resolveOffset(t,-1):this.pos;if(null==n||n=this.chunk2Pos&&this.posthis.range.to?e.slice(0,this.range.to-this.pos):e,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(e=1){for(this.chunkOff+=e;this.pos+e>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();e-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=e,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(e,t){if(t?(this.token=t,t.start=e,t.lookAhead=e+1,t.value=t.extended=-1):this.token=d,this.pos!=e){if(this.pos=e,e==this.end)return this.setDone(),this;for(;e=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e=this.chunkPos&&t<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,t-this.chunkPos);if(e>=this.chunk2Pos&&t<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,t-this.chunk2Pos);if(e>=this.range.from&&t<=this.range.to)return this.input.read(e,t);let n="";for(let r of this.ranges){if(r.from>=t)break;r.to>e&&(n+=this.input.read(Math.max(r.from,e),Math.min(r.to,t)))}return n}}class p{constructor(e,t){this.data=e,this.id=t}token(e,t){let{parser:n}=t.p;g(this.data,e,t,this.id,n.data,n.tokenPrecTable)}}p.prototype.contextual=p.prototype.fallback=p.prototype.extend=!1;class f{constructor(e,t,n){this.precTable=t,this.elseToken=n,this.data="string"==typeof e?c(e):e}token(e,t){let n=e.pos,r=0;for(;g(this.data,e,t,0,this.data,this.precTable),!(e.token.value>-1);){if(null==this.elseToken)return;if(e.next<0)break;e.advance(),e.reset(e.pos,e.token),r++}r&&(e.reset(n,e.token),e.acceptToken(this.elseToken,r))}}f.prototype.contextual=p.prototype.fallback=p.prototype.extend=!1;class m{constructor(e,t={}){this.token=e,this.contextual=!!t.contextual,this.fallback=!!t.fallback,this.extend=!!t.extend}}function g(e,t,n,r,i,o){let s=0,a=1<0){let n=e[r];if(l.allows(n)&&(-1==t.token.value||t.token.value==n||v(n,t.token.value,i,o))){t.acceptToken(n);break}}let r=t.next,c=0,u=e[s+2];if(!(t.next<0&&u>c&&65535==e[n+3*u-3]&&65535==e[n+3*u-3])){for(;c>1,o=n+i+(i<<1),a=e[o],l=e[o+1]||65536;if(r=l)){s=e[o+2],t.advance();continue e}c=i+1}}break}s=e[n+3*u-1]}}function b(e,t,n){for(let r,i=t;65535!=(r=e[i]);i++)if(r==n)return i-t;return-1}function v(e,t,n,r){let i=b(n,r,t);return i<0||b(n,r,e)t)&&!r.type.isError)return n<0?Math.max(0,Math.min(r.to-1,t-25)):Math.min(e.length,Math.max(r.from+1,t+25));if(n<0?r.prevSibling():r.nextSibling())break;if(!r.parent())return n<0?0:e.length}}!function(e){e[e.Margin=25]="Margin"}(_||(_={}));class k{constructor(e,t){this.fragments=e,this.nodeSet=t,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let e=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(e){for(this.safeFrom=e.openStart?w(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?w(e.tree,e.to+e.offset,-1)-e.offset:e.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(e.tree),this.start.push(-e.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(ee)return this.nextStart=s,null;if(o instanceof i.h){if(s==e){if(s=Math.max(this.safeFrom,e)&&(this.trees.push(o),this.start.push(s),this.index.push(0))}else this.index[t]++,this.nextStart=s+o.length}}}class O{constructor(e,t){this.stream=t,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(e=>new u)}getActions(e){let t=0,n=null,{parser:r}=e.p,{tokenizers:i}=r,o=r.stateSlot(e.state,3),s=e.curContext?e.curContext.hash:0,a=0;for(let r=0;rc.end+25&&(a=Math.max(c.lookAhead,a)),0!=c.value)){let r=t;if(c.extended>-1&&(t=this.addActions(e,c.extended,c.end,t)),t=this.addActions(e,c.value,c.end,t),!l.extend&&(n=c,t>r))break}}for(;this.actions.length>t;)this.actions.pop();return a&&e.setLookAhead(a),n||e.pos!=this.stream.end||(n=new u,n.value=e.p.parser.eofTerm,n.start=n.end=e.pos,t=this.addActions(e,n.value,n.end,t)),this.mainToken=n,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let t=new u,{pos:n,p:r}=e;return t.start=n,t.end=Math.min(n+1,r.stream.end),t.value=n==r.stream.end?r.parser.eofTerm:0,t}updateCachedToken(e,t,n){let r=this.stream.clipPos(n.pos);if(t.token(this.stream.reset(r,e),n),e.value>-1){let{parser:t}=n.p;for(let r=0;r=0&&n.p.parser.dialect.allows(i>>1)){0==(1&i)?e.value=i>>1:e.extended=i>>1;break}}}else e.value=0,e.end=this.stream.clipPos(r+1)}putAction(e,t,n,r){for(let t=0;t4*e.bufferLength?new k(n,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e,t,n=this.stacks,r=this.minStackPos,i=this.stacks=[];if(this.bigReductionCount>300&&1==n.length){let[e]=n;for(;e.forceReduce()&&e.stack.length&&e.stack[e.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let o=0;or)i.push(s);else{if(this.advanceStack(s,i,n))continue;{e||(e=[],t=[]),e.push(s);let n=this.tokens.getMainToken(s);t.push(n.value,n.end)}}break}}if(!i.length){let t=e&&function(e){let t=null;for(let n of e){let e=n.p.stoppedAt;(n.pos==n.p.stream.end||null!=e&&n.pos>e)&&n.p.parser.stateFlag(n.state,2)&&(!t||t.scorethis.stoppedAt?e[0]:this.runRecovery(e,t,i);if(n)return this.stackToTree(n.forceAll())}if(this.recovering){let e=1==this.recovering?1:3*this.recovering;if(i.length>e)for(i.sort((e,t)=>t.score-e.score);i.length>e;)i.pop();i.some(e=>e.reducePos>r)&&this.recovering--}else if(i.length>1){e:for(let e=0;e500&&r.buffer.length>500){if(!((t.score-r.score||t.buffer.length-r.buffer.length)>0)){i.splice(e--,1);continue e}i.splice(n--,1)}}}i.length>12&&i.splice(12,i.length-12)}this.minStackPos=i[0].pos;for(let e=1;e ":"";if(null!=this.stoppedAt&&r>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let t=e.curContext&&e.curContext.tracker.strict,n=t?e.curContext.hash:0;for(let a=this.fragments.nodeAt(r);a;){let r=this.parser.nodeSet.types[a.type.id]==a.type?o.getGoto(e.state,a.type.id):-1;if(r>-1&&a.length&&(!t||(a.prop(i.c.contextHash)||0)==n))return e.useNode(a,r),y&&console.log(s+this.stackID(e)+` (via reuse of ${o.getName(a.type.id)})`),!0;if(!(a instanceof i.h)||0==a.children.length||a.positions[0]>0)break;let l=a.children[0];if(!(l instanceof i.h&&0==a.positions[0]))break;a=l}}let a=o.stateSlot(e.state,4);if(a>0)return e.reduce(a),y&&console.log(s+this.stackID(e)+` (via always-reduce ${o.getName(65535&a)})`),!0;if(e.stack.length>=15e3)for(;e.stack.length>9e3&&e.forceReduce(););let l=this.tokens.getActions(e);for(let i=0;ir?t.push(h):n.push(h)}return!1}advanceFully(e,t){let n=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>n)return A(e,t),!0}}runRecovery(e,t,n){let r=null,i=!1;for(let o=0;o ":"";if(s.deadEnd){if(i)continue;if(i=!0,s.restart(),y&&console.log(c+this.stackID(s)+" (restarted)"),this.advanceFully(s,n))continue}let u=s.split(),d=c;for(let e=0;u.forceReduce()&&e<10;e++){if(y&&console.log(d+this.stackID(u)+" (via force-reduce)"),this.advanceFully(u,n))break;y&&(d=this.stackID(u)+" -> ")}for(let e of s.recoverByInsert(a))y&&console.log(c+this.stackID(e)+" (via recover-insert)"),this.advanceFully(e,n);this.stream.end>s.pos?(l==s.pos&&(l++,a=0),s.recoverByDelete(a,l),y&&console.log(c+this.stackID(s)+` (via recover-delete ${this.parser.getName(a)})`),A(s,n)):(!r||r.scoree;class M{constructor(e){this.start=e.start,this.shift=e.shift||C,this.reduce=e.reduce||C,this.reuse=e.reuse||C,this.hash=e.hash||(()=>0),this.strict=!1!==e.strict}}class $ extends i.g{constructor(e){if(super(),this.wrappers=[],14!=e.version)throw new RangeError(`Parser version (${e.version}) doesn't match runtime version (14)`);let t=e.nodeNames.split(" ");this.minRepeatTerm=t.length;for(let n=0;ne.topRules[t][1]),r=[];for(let e=0;e=0)o(r,e,t[n++]);else{let i=t[n+-r];for(let s=-r;s>0;s--)o(t[n++],e,i);n++}}}this.nodeSet=new i.d(t.map((t,o)=>i.e.define({name:o>=this.minRepeatTerm?void 0:t,id:o,props:r[o],top:n.indexOf(o)>-1,error:0==o,skipped:e.skippedNodes&&e.skippedNodes.indexOf(o)>-1}))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=i.a;let s=c(e.tokenData);this.context=e.context,this.specializerSpecs=e.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let e=0;e"number"==typeof e?new p(s,e):e),this.topRules=e.topRules,this.dialects=e.dialects||{},this.dynamicPrecedences=e.dynamicPrecedences||null,this.tokenPrecTable=e.tokenPrec,this.termNames=e.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(e,t,n){let r=new E(this,e,t,n);for(let i of this.wrappers)r=i(r,e,t,n);return r}getGoto(e,t,n=!1){let r=this.goto;if(t>=r[0])return-1;for(let i=r[t+1];;){let t=r[i++],o=1&t,s=r[i++];if(o&&n)return s;for(let n=i+(t>>1);i0}validAction(e,t){if(t==this.stateSlot(e,4))return!0;for(let n=this.stateSlot(e,1);;n+=3){if(65535==this.data[n]){if(1!=this.data[n+1])return!1;n=P(this.data,n+2)}if(t==P(this.data,n+1))return!0}}nextStates(e){let t=[];for(let n=this.stateSlot(e,1);;n+=3){if(65535==this.data[n]){if(1!=this.data[n+1])break;n=P(this.data,n+2)}if(0==(1&this.data[n+2])){let e=this.data[n+1];t.some((t,n)=>1&n&&t==e)||t.push(this.data[n],e)}}return t}configure(e){let t=Object.assign(Object.create($.prototype),this);if(e.props&&(t.nodeSet=this.nodeSet.extend(...e.props)),e.top){let n=this.topRules[e.top];if(!n)throw new RangeError("Invalid top rule name "+e.top);t.top=n}return e.tokenizers&&(t.tokenizers=this.tokenizers.map(t=>{let n=e.tokenizers.find(e=>e.from==t);return n?n.to:t})),e.specializers&&(t.specializers=this.specializers.slice(),t.specializerSpecs=this.specializerSpecs.map((n,r)=>{let i=e.specializers.find(e=>e.from==n.external);if(!i)return n;let o=Object.assign(Object.assign({},n),{external:i.to});return t.specializers[r]=R(o),o})),e.contextTracker&&(t.context=e.contextTracker),e.dialect&&(t.dialect=this.parseDialect(e.dialect)),null!=e.strict&&(t.strict=e.strict),e.wrap&&(t.wrappers=t.wrappers.concat(e.wrap)),null!=e.bufferLength&&(t.bufferLength=e.bufferLength),t}hasWrappers(){return this.wrappers.length>0}getName(e){return this.termNames?this.termNames[e]:String(e<=this.maxNode&&this.nodeSet.types[e].name||e)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(e){let t=this.dynamicPrecedences;return null==t?0:t[e]||0}parseDialect(e){let t=Object.keys(this.dialects),n=t.map(()=>!1);if(e)for(let r of e.split(" ")){let e=t.indexOf(r);e>=0&&(n[e]=!0)}let r=null;for(let e=0;ee.external(n,r)<<1|t}return e.get}}).call(this,n(36))},function(e,t,n){"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE){0;try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}}(),e.exports=n(203)},function(e,t,n){"use strict";function r(){return(r=Object.assign?Object.assign.bind():function(e){for(var t=1;t1?t-1:0),r=1;r3?t.i-4:t.i:Array.isArray(e)?1:h(e)?2:p(e)?3:0}function l(e,t){return 2===a(e)?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function c(e,t){return 2===a(e)?e.get(t):e[t]}function u(e,t,n){var r=a(e);2===r?e.set(t,n):3===r?e.add(n):e[t]=n}function d(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}function h(e){return U&&e instanceof Map}function p(e){return Q&&e instanceof Set}function f(e){return e.o||e.t}function m(e){if(Array.isArray(e))return Array.prototype.slice.call(e);var t=Y(e);delete t[V];for(var n=X(t),r=0;r1&&(e.set=e.add=e.clear=e.delete=b),Object.freeze(e),t&&s(e,(function(e,t){return g(t,!0)}),!0)),e}function b(){r(2)}function v(e){return null==e||"object"!=typeof e||Object.isFrozen(e)}function y(e){var t=Z[e];return t||r(18,e),t}function S(e,t){Z[e]||(Z[e]=t)}function _(){return z}function x(e,t){t&&(y("Patches"),e.u=[],e.s=[],e.v=t)}function w(e){k(e),e.p.forEach(E),e.p=null}function k(e){e===z&&(z=e.l)}function O(e){return z={p:[],l:z,h:e,m:!0,_:0}}function E(e){var t=e[V];0===t.i||1===t.i?t.j():t.g=!0}function A(e,t){t._=t.p.length;var n=t.p[0],i=void 0!==e&&e!==n;return t.h.O||y("ES5").S(t,e,i),i?(n[V].P&&(w(t),r(4)),o(e)&&(e=T(t,e),t.l||M(t,e)),t.u&&y("Patches").M(n[V].t,e,t.u,t.s)):e=T(t,n,[]),w(t),t.u&&t.v(t.u,t.s),e!==G?e:void 0}function T(e,t,n){if(v(t))return t;var r=t[V];if(!r)return s(t,(function(i,o){return C(e,r,t,i,o,n)}),!0),t;if(r.A!==e)return t;if(!r.P)return M(e,r.t,!0),r.t;if(!r.I){r.I=!0,r.A._--;var i=4===r.i||5===r.i?r.o=m(r.k):r.o,o=i,a=!1;3===r.i&&(o=new Set(i),i.clear(),a=!0),s(o,(function(t,o){return C(e,r,i,t,o,n,a)})),M(e,i,!1),n&&e.u&&y("Patches").N(r,n,e.u,e.s)}return r.o}function C(e,t,n,r,s,a,c){if(i(s)){var d=T(e,s,a&&t&&3!==t.i&&!l(t.R,r)?a.concat(r):void 0);if(u(n,r,d),!i(d))return;e.m=!1}else c&&n.add(s);if(o(s)&&!v(s)){if(!e.h.D&&e._<1)return;T(e,s),t&&t.A.l||M(e,s)}}function M(e,t,n){void 0===n&&(n=!1),!e.l&&e.h.D&&e.m&&g(t,n)}function $(e,t){var n=e[V];return(n?f(n):e)[t]}function P(e,t){if(t in e)for(var n=Object.getPrototypeOf(e);n;){var r=Object.getOwnPropertyDescriptor(n,t);if(r)return r;n=Object.getPrototypeOf(n)}}function R(e){e.P||(e.P=!0,e.l&&R(e.l))}function j(e){e.o||(e.o=m(e.t))}function N(e,t,n){var r=h(t)?y("MapSet").F(t,n):p(t)?y("MapSet").T(t,n):e.O?function(e,t){var n=Array.isArray(e),r={i:n?1:0,A:t?t.A:_(),P:!1,I:!1,R:{},l:t,t:e,k:null,o:null,j:null,C:!1},i=r,o=J;n&&(i=[r],o=K);var s=Proxy.revocable(i,o),a=s.revoke,l=s.proxy;return r.k=l,r.j=a,l}(t,n):y("ES5").J(t,n);return(n?n.A:_()).p.push(r),r}function D(e){return i(e)||r(22,e),function e(t){if(!o(t))return t;var n,r=t[V],i=a(t);if(r){if(!r.P&&(r.i<4||!y("ES5").K(r)))return r.t;r.I=!0,n=I(t,i),r.I=!1}else n=I(t,i);return s(n,(function(t,i){r&&c(r.t,t)===i||u(n,t,e(i))})),3===i?new Set(n):n}(e)}function I(e,t){switch(t){case 2:return new Map(e);case 3:return Array.from(e)}return m(e)}function L(){function e(e,t){var n=o[e];return n?n.enumerable=t:o[e]=n={configurable:!0,enumerable:t,get:function(){var t=this[V];return J.get(t,e)},set:function(t){var n=this[V];J.set(n,e,t)}},n}function t(e){for(var t=e.length-1;t>=0;t--){var i=e[t][V];if(!i.P)switch(i.i){case 5:r(i)&&R(i);break;case 4:n(i)&&R(i)}}}function n(e){for(var t=e.t,n=e.k,r=X(n),i=r.length-1;i>=0;i--){var o=r[i];if(o!==V){var s=t[o];if(void 0===s&&!l(t,o))return!0;var a=n[o],c=a&&a[V];if(c?c.t!==s:!d(a,s))return!0}}var u=!!t[V];return r.length!==X(t).length+(u?0:1)}function r(e){var t=e.k;if(t.length!==e.t.length)return!0;var n=Object.getOwnPropertyDescriptor(t,t.length-1);if(n&&!n.get)return!0;for(var r=0;r1?r-1:0),o=1;o1?r-1:0),o=1;o=0;n--){var r=t[n];if(0===r.path.length&&"replace"===r.op){e=r.value;break}}n>-1&&(t=t.slice(n+1));var o=y("Patches").$;return i(e)?o(e,t):this.produce(e,(function(e){return o(e,t)}))},e}()),te=ee.produce;ee.produceWithPatches.bind(ee),ee.setAutoFreeze.bind(ee),ee.setUseProxies.bind(ee),ee.applyPatches.bind(ee),ee.createDraft.bind(ee),ee.finishDraft.bind(ee);t.b=te},function(e,t,n){var r;r=e=>(()=>{var t={"./node_modules/css-mediaquery/index.js": /*!**********************************************!*\ !*** ./node_modules/css-mediaquery/index.js ***! \**********************************************/(e,t)=>{"use strict";t.match=function(e,t){return a(e).some((function(e){var n=e.inverse,r="all"===e.type||t.type===e.type;if(r&&n||!r&&!n)return!1;var i=e.expressions.every((function(e){var n=e.feature,r=e.modifier,i=e.value,o=t[n];if(!o)return!1;switch(n){case"orientation":case"scan":return o.toLowerCase()===i.toLowerCase();case"width":case"height":case"device-width":case"device-height":i=u(i),o=u(o);break;case"resolution":i=c(i),o=c(o);break;case"aspect-ratio":case"device-aspect-ratio":case"device-pixel-ratio":i=l(i),o=l(o);break;case"grid":case"color":case"color-index":case"monochrome":i=parseInt(i,10)||1,o=parseInt(o,10)||0}switch(r){case"min":return o>=i;case"max":return o<=i;default:return o===i}}));return i&&!n||!i&&n}))},t.parse=a;var n=/(?:(only|not)?\s*([^\s\(\)]+)(?:\s*and)?\s*)?(.+)?/i,r=/\(\s*([^\s\:\)]+)\s*(?:\:\s*([^\s\)]+))?\s*\)/,i=/^(?:(min|max)-)?(.+)/,o=/(em|rem|px|cm|mm|in|pt|pc)?$/,s=/(dpi|dpcm|dppx)?$/;function a(e){return e.split(",").map((function(e){var t=(e=e.trim()).match(n),o=t[1],s=t[2],a=t[3]||"",l={};return l.inverse=!!o&&"not"===o.toLowerCase(),l.type=s?s.toLowerCase():"all",a=a.match(/\([^\)]+\)/g)||[],l.expressions=a.map((function(e){var t=e.match(r),n=t[1].toLowerCase().match(i);return{modifier:n[1],feature:n[2],value:t[2]}})),l}))}function l(e){var t,n=Number(e);return n||(n=(t=e.match(/^(\d+)\s*\/\s*(\d+)$/))[1]/t[2]),n}function c(e){var t=parseFloat(e);switch(String(e).match(s)[1]){case"dpcm":return t/2.54;case"dppx":return 96*t;default:return t}}function u(e){var t=parseFloat(e);switch(String(e).match(o)[1]){case"em":case"rem":return 16*t;case"cm":return 96*t/2.54;case"mm":return 96*t/2.54/10;case"in":return 96*t;case"pt":return 72*t;case"pc":return 72*t/12;default:return t}}},"./node_modules/hyphenate-style-name/index.js": /*!****************************************************!*\ !*** ./node_modules/hyphenate-style-name/index.js ***! \****************************************************/(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=/[A-Z]/g,i=/^ms-/,o={};function s(e){return"-"+e.toLowerCase()}const a=function(e){if(o.hasOwnProperty(e))return o[e];var t=e.replace(r,s);return o[e]=i.test(t)?"-"+t:t}},"./node_modules/matchmediaquery/index.js": /*!***********************************************!*\ !*** ./node_modules/matchmediaquery/index.js ***! \***********************************************/(e,t,n)=>{"use strict";var r=n(/*! css-mediaquery */"./node_modules/css-mediaquery/index.js").match,i="undefined"!=typeof window?window.matchMedia:null;function o(e,t,n){var o=this;if(i&&!n){var s=i.call(window,e);this.matches=s.matches,this.media=s.media,s.addListener(a)}else this.matches=r(e,t),this.media=e;function a(e){o.matches=e.matches,o.media=e.media}this.addListener=function(e){s&&s.addListener(e)},this.removeListener=function(e){s&&s.removeListener(e)},this.dispose=function(){s&&s.removeListener(a)}}e.exports=function(e,t,n){return new o(e,t,n)}},"./node_modules/object-assign/index.js": /*!*********************************************!*\ !*** ./node_modules/object-assign/index.js ***! \*********************************************/e=>{"use strict"; /* object-assign (c) Sindre Sorhus @license MIT */var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;function i(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,o){for(var s,a,l=i(e),c=1;c{"use strict";var r=function(){},i=n(/*! ./lib/ReactPropTypesSecret */"./node_modules/prop-types/lib/ReactPropTypesSecret.js"),o={},s=n(/*! ./lib/has */"./node_modules/prop-types/lib/has.js");function a(e,t,n,a,l){for(var c in e)if(s(e,c)){var u;try{if("function"!=typeof e[c]){var d=Error((a||"React class")+": "+n+" type `"+c+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof e[c]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw d.name="Invariant Violation",d}u=e[c](t,c,a,n,null,i)}catch(e){u=e}if(!u||u instanceof Error||r((a||"React class")+": type specification of "+n+" `"+c+"` is invalid; the type checker function must return `null` or an `Error` but returned a "+typeof u+". You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument)."),u instanceof Error&&!(u.message in o)){o[u.message]=!0;var h=l?l():"";r("Failed "+n+" type: "+u.message+(null!=h?h:""))}}}r=function(e){var t="Warning: "+e;"undefined"!=typeof console&&console.error(t);try{throw new Error(t)}catch(e){}},a.resetWarningCache=function(){o={}},e.exports=a},"./node_modules/prop-types/factoryWithTypeCheckers.js": /*!************************************************************!*\ !*** ./node_modules/prop-types/factoryWithTypeCheckers.js ***! \************************************************************/(e,t,n)=>{"use strict";var r=n(/*! react-is */"./node_modules/react-is/index.js"),i=n(/*! object-assign */"./node_modules/object-assign/index.js"),o=n(/*! ./lib/ReactPropTypesSecret */"./node_modules/prop-types/lib/ReactPropTypesSecret.js"),s=n(/*! ./lib/has */"./node_modules/prop-types/lib/has.js"),a=n(/*! ./checkPropTypes */"./node_modules/prop-types/checkPropTypes.js"),l=function(){};function c(){return null}l=function(e){var t="Warning: "+e;"undefined"!=typeof console&&console.error(t);try{throw new Error(t)}catch(e){}},e.exports=function(e,t){var n="function"==typeof Symbol&&Symbol.iterator,u={array:f("array"),bigint:f("bigint"),bool:f("boolean"),func:f("function"),number:f("number"),object:f("object"),string:f("string"),symbol:f("symbol"),any:p(c),arrayOf:function(e){return p((function(t,n,r,i,s){if("function"!=typeof e)return new h("Property `"+s+"` of component `"+r+"` has invalid PropType notation inside arrayOf.");var a=t[n];if(!Array.isArray(a))return new h("Invalid "+i+" `"+s+"` of type `"+b(a)+"` supplied to `"+r+"`, expected an array.");for(var l=0;l>";return new h("Invalid "+i+" `"+o+"` of type `"+(((a=t[n]).constructor&&a.constructor.name?a.constructor.name:"<>")+"` supplied to `")+r+"`, expected instance of `"+s+"`.")}var a;return null}))},node:p((function(e,t,n,r,i){return g(e[t])?null:new h("Invalid "+r+" `"+i+"` supplied to `"+n+"`, expected a ReactNode.")})),objectOf:function(e){return p((function(t,n,r,i,a){if("function"!=typeof e)return new h("Property `"+a+"` of component `"+r+"` has invalid PropType notation inside objectOf.");var l=t[n],c=b(l);if("object"!==c)return new h("Invalid "+i+" `"+a+"` of type `"+c+"` supplied to `"+r+"`, expected an object.");for(var u in l)if(s(l,u)){var d=e(l,u,r,i,a+"."+u,o);if(d instanceof Error)return d}return null}))},oneOf:function(e){if(!Array.isArray(e))return l(arguments.length>1?"Invalid arguments supplied to oneOf, expected an array, got "+arguments.length+" arguments. A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).":"Invalid argument supplied to oneOf, expected an array."),c;function t(t,n,r,i,o){for(var s=t[n],a=0;a0?", expected one of type ["+l.join(", ")+"]":"")+".")}))},shape:function(e){return p((function(t,n,r,i,s){var a=t[n],l=b(a);if("object"!==l)return new h("Invalid "+i+" `"+s+"` of type `"+l+"` supplied to `"+r+"`, expected `object`.");for(var c in e){var u=e[c];if("function"!=typeof u)return m(r,i,s,c,v(u));var d=u(a,c,r,i,s+"."+c,o);if(d)return d}return null}))},exact:function(e){return p((function(t,n,r,a,l){var c=t[n],u=b(c);if("object"!==u)return new h("Invalid "+a+" `"+l+"` of type `"+u+"` supplied to `"+r+"`, expected `object`.");var d=i({},t[n],e);for(var p in d){var f=e[p];if(s(e,p)&&"function"!=typeof f)return m(r,a,l,p,v(f));if(!f)return new h("Invalid "+a+" `"+l+"` key `"+p+"` supplied to `"+r+"`.\nBad object: "+JSON.stringify(t[n],null," ")+"\nValid keys: "+JSON.stringify(Object.keys(e),null," "));var g=f(c,p,r,a,l+"."+p,o);if(g)return g}return null}))}};function d(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}function h(e,t){this.message=e,this.data=t&&"object"==typeof t?t:{},this.stack=""}function p(e){var n={},r=0;function i(i,s,a,c,u,d,p){if(c=c||"<>",d=d||a,p!==o){if(t){var f=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");throw f.name="Invariant Violation",f}if("undefined"!=typeof console){var m=c+":"+a;!n[m]&&r<3&&(l("You are manually calling a React.PropTypes validation function for the `"+d+"` prop on `"+c+"`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details."),n[m]=!0,r++)}}return null==s[a]?i?null===s[a]?new h("The "+u+" `"+d+"` is marked as required in `"+c+"`, but its value is `null`."):new h("The "+u+" `"+d+"` is marked as required in `"+c+"`, but its value is `undefined`."):null:e(s,a,c,u,d)}var s=i.bind(null,!1);return s.isRequired=i.bind(null,!0),s}function f(e){return p((function(t,n,r,i,o,s){var a=t[n];return b(a)!==e?new h("Invalid "+i+" `"+o+"` of type `"+v(a)+"` supplied to `"+r+"`, expected `"+e+"`.",{expectedType:e}):null}))}function m(e,t,n,r,i){return new h((e||"React class")+": "+t+" type `"+n+"."+r+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+i+"`.")}function g(t){switch(typeof t){case"number":case"string":case"undefined":return!0;case"boolean":return!t;case"object":if(Array.isArray(t))return t.every(g);if(null===t||e(t))return!0;var r=function(e){var t=e&&(n&&e[n]||e["@@iterator"]);if("function"==typeof t)return t}(t);if(!r)return!1;var i,o=r.call(t);if(r!==t.entries){for(;!(i=o.next()).done;)if(!g(i.value))return!1}else for(;!(i=o.next()).done;){var s=i.value;if(s&&!g(s[1]))return!1}return!0;default:return!1}}function b(e){var t=typeof e;return Array.isArray(e)?"array":e instanceof RegExp?"object":function(e,t){return"symbol"===e||!!t&&("Symbol"===t["@@toStringTag"]||"function"==typeof Symbol&&t instanceof Symbol)}(t,e)?"symbol":t}function v(e){if(null==e)return""+e;var t=b(e);if("object"===t){if(e instanceof Date)return"date";if(e instanceof RegExp)return"regexp"}return t}function y(e){var t=v(e);switch(t){case"array":case"object":return"an "+t;case"boolean":case"date":case"regexp":return"a "+t;default:return t}}return h.prototype=Error.prototype,u.checkPropTypes=a,u.resetWarningCache=a.resetWarningCache,u.PropTypes=u,u}},"./node_modules/prop-types/index.js": /*!******************************************!*\ !*** ./node_modules/prop-types/index.js ***! \******************************************/(e,t,n)=>{var r=n(/*! react-is */"./node_modules/react-is/index.js");e.exports=n(/*! ./factoryWithTypeCheckers */"./node_modules/prop-types/factoryWithTypeCheckers.js")(r.isElement,!0)},"./node_modules/prop-types/lib/ReactPropTypesSecret.js": /*!*************************************************************!*\ !*** ./node_modules/prop-types/lib/ReactPropTypesSecret.js ***! \*************************************************************/e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},"./node_modules/prop-types/lib/has.js": /*!********************************************!*\ !*** ./node_modules/prop-types/lib/has.js ***! \********************************************/e=>{e.exports=Function.call.bind(Object.prototype.hasOwnProperty)},"./node_modules/react-is/cjs/react-is.development.js": /*!***********************************************************!*\ !*** ./node_modules/react-is/cjs/react-is.development.js ***! \***********************************************************/(e,t)=>{"use strict"; /** @license React v16.13.1 * react-is.development.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */!function(){var e="function"==typeof Symbol&&Symbol.for,n=e?Symbol.for("react.element"):60103,r=e?Symbol.for("react.portal"):60106,i=e?Symbol.for("react.fragment"):60107,o=e?Symbol.for("react.strict_mode"):60108,s=e?Symbol.for("react.profiler"):60114,a=e?Symbol.for("react.provider"):60109,l=e?Symbol.for("react.context"):60110,c=e?Symbol.for("react.async_mode"):60111,u=e?Symbol.for("react.concurrent_mode"):60111,d=e?Symbol.for("react.forward_ref"):60112,h=e?Symbol.for("react.suspense"):60113,p=e?Symbol.for("react.suspense_list"):60120,f=e?Symbol.for("react.memo"):60115,m=e?Symbol.for("react.lazy"):60116,g=e?Symbol.for("react.block"):60121,b=e?Symbol.for("react.fundamental"):60117,v=e?Symbol.for("react.responder"):60118,y=e?Symbol.for("react.scope"):60119;function S(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case n:var p=e.type;switch(p){case c:case u:case i:case s:case o:case h:return p;default:var g=p&&p.$$typeof;switch(g){case l:case d:case m:case f:case a:return g;default:return t}}case r:return t}}}var _=c,x=u,w=l,k=a,O=n,E=d,A=i,T=m,C=f,M=r,$=s,P=o,R=h,j=!1;function N(e){return S(e)===u}t.AsyncMode=_,t.ConcurrentMode=x,t.ContextConsumer=w,t.ContextProvider=k,t.Element=O,t.ForwardRef=E,t.Fragment=A,t.Lazy=T,t.Memo=C,t.Portal=M,t.Profiler=$,t.StrictMode=P,t.Suspense=R,t.isAsyncMode=function(e){return j||(j=!0,console.warn("The ReactIs.isAsyncMode() alias has been deprecated, and will be removed in React 17+. Update your code to use ReactIs.isConcurrentMode() instead. It has the exact same API.")),N(e)||S(e)===c},t.isConcurrentMode=N,t.isContextConsumer=function(e){return S(e)===l},t.isContextProvider=function(e){return S(e)===a},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===n},t.isForwardRef=function(e){return S(e)===d},t.isFragment=function(e){return S(e)===i},t.isLazy=function(e){return S(e)===m},t.isMemo=function(e){return S(e)===f},t.isPortal=function(e){return S(e)===r},t.isProfiler=function(e){return S(e)===s},t.isStrictMode=function(e){return S(e)===o},t.isSuspense=function(e){return S(e)===h},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===i||e===u||e===s||e===o||e===h||e===p||"object"==typeof e&&null!==e&&(e.$$typeof===m||e.$$typeof===f||e.$$typeof===a||e.$$typeof===l||e.$$typeof===d||e.$$typeof===b||e.$$typeof===v||e.$$typeof===y||e.$$typeof===g)},t.typeOf=S}()},"./node_modules/react-is/index.js": /*!****************************************!*\ !*** ./node_modules/react-is/index.js ***! \****************************************/(e,t,n)=>{"use strict";e.exports=n(/*! ./cjs/react-is.development.js */"./node_modules/react-is/cjs/react-is.development.js")},"./node_modules/shallow-equal/dist/index.esm.js": /*!******************************************************!*\ !*** ./node_modules/shallow-equal/dist/index.esm.js ***! \******************************************************/(e,t,n)=>{"use strict";function r(e,t){if(e===t)return!0;if(!e||!t)return!1;var n=Object.keys(e),r=Object.keys(t),i=n.length;if(r.length!==i)return!1;for(var o=0;oi,shallowEqualObjects:()=>r})},"./src/Component.ts": /*!**************************!*\ !*** ./src/Component.ts ***! \**************************/function(e,t,n){"use strict";var r=this&&this.__rest||function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=(0,n(/*! react */"react").createContext)(void 0);t.default=r},"./src/index.ts": /*!**********************!*\ !*** ./src/index.ts ***! \**********************/function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Context=t.toQuery=t.useMediaQuery=t.default=void 0;var i=r(n(/*! ./useMediaQuery */"./src/useMediaQuery.ts"));t.useMediaQuery=i.default;var o=r(n(/*! ./Component */"./src/Component.ts"));t.default=o.default;var s=r(n(/*! ./toQuery */"./src/toQuery.ts"));t.toQuery=s.default;var a=r(n(/*! ./Context */"./src/Context.ts"));t.Context=a.default},"./src/mediaQuery.ts": /*!***************************!*\ !*** ./src/mediaQuery.ts ***! \***************************/function(e,t,n){"use strict";var r=this&&this.__assign||function(){return(r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n{"use strict";t.exports=e}},n={};function r(e){var i=n[e];if(void 0!==i)return i.exports;var o=n[e]={exports:{}};return t[e].call(o.exports,o,o.exports,r),o.exports}return r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r("./src/index.ts")})(),e.exports=r(n(0))},function(e,t,n){"use strict";e.exports=n(392)},function(e,t,n){"use strict";n.d(t,"a",(function(){return o})),n.d(t,"b",(function(){return s})),n.d(t,"c",(function(){return i}));n(7);var r=n(17);n(50);function i(e,t,n){if(!(t in e))return;const r=e[t],i=n(r);if("function"==typeof i)try{!function(e,t){const n=t.prototype||{};e.prototype=t.prototype=n,o(e,"__sentry_original__",t)}(i,r)}catch(e){}e[t]=i}function o(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,configurable:!0})}function s(e){return function e(t,n){if(Object(r.f)(t)){const r=n.get(t);if(void 0!==r)return r;const i={};n.set(t,i);for(const r of Object.keys(t))void 0!==t[r]&&(i[r]=e(t[r],n));return i}if(Array.isArray(t)){const r=n.get(t);if(void 0!==r)return r;const i=[];return n.set(t,i),t.forEach(t=>{i.push(e(t,n))}),i}return t}(e,new Map)}},,function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}n.d(t,"a",(function(){return r}))},function(e,t,n){"use strict";n.d(t,"a",(function(){return g})),n.d(t,"b",(function(){return f})),n.d(t,"c",(function(){return h})),n.d(t,"d",(function(){return m})),n.d(t,"e",(function(){return d}));var r=n(5);function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t`${encodeURIComponent(t)}=${encodeURIComponent(e[t])}`).join("&")}function d(e){if(Object(i.d)(e))return{message:e.message,name:e.name,stack:e.stack,...p(e)};if(Object(i.f)(e)){const t={type:e.type,target:h(e.target),currentTarget:h(e.currentTarget),...p(e)};return"undefined"!=typeof CustomEvent&&Object(i.g)(e,CustomEvent)&&(t.detail=e.detail),t}return e}function h(e){try{return Object(i.c)(e)?Object(r.c)(e):Object.prototype.toString.call(e)}catch(e){return""}}function p(e){if("object"==typeof e&&null!==e){const t={};for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t}return{}}function f(e,t=40){const n=Object.keys(d(e));if(n.sort(),!n.length)return"[object has no keys]";if(n[0].length>=t)return Object(o.d)(n[0],t);for(let e=n.length;e>0;e--){const r=n.slice(0,e).join(", ");if(!(r.length>t))return e===n.length?r:Object(o.d)(r,t)}return""}function m(e){return function e(t,n){if(Object(i.i)(t)){const r=n.get(t);if(void 0!==r)return r;const i={};n.set(t,i);for(const r of Object.keys(t))void 0!==t[r]&&(i[r]=e(t[r],n));return i}if(Array.isArray(t)){const r=n.get(t);if(void 0!==r)return r;const i=[];return n.set(t,i),t.forEach(t=>{i.push(e(t,n))}),i}return t}(e,new Map)}},function(e,t,n){var r=n(151);e.exports=function(e,t,n){return(t=r(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e},e.exports.__esModule=!0,e.exports.default=e.exports},function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t,n){"use strict";var r=n(117),i=Object.prototype.toString;function o(e){return"[object Array]"===i.call(e)}function s(e){return void 0===e}function a(e){return null!==e&&"object"==typeof e}function l(e){if("[object Object]"!==i.call(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function c(e){return"[object Function]"===i.call(e)}function u(e,t){if(null!=e)if("object"!=typeof e&&(e=[e]),o(e))for(var n=0,r=e.length;n=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o},e.exports.__esModule=!0,e.exports.default=e.exports},function(e,t,n){var r=n(128),i="object"==typeof self&&self&&self.Object===Object&&self,o=r||i||Function("return this")();e.exports=o},function(e,t,n){"use strict";(function(e,r){n.d(t,"a",(function(){return A})),n.d(t,"b",(function(){return D})),n.d(t,"c",(function(){return M}));var i,o=n(19),s=(n(80),n(25)),a=n(109),l=(i=function(e,t){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),c=function(e,t){var n,r,i,o,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(o){return function(a){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;s;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return s.label++,{value:o[1],done:!1};case 5:s.label++,r=o[1],o=[0];continue;case 7:o=s.ops.pop(),s.trys.pop();continue;default:if(!(i=s.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]1)for(var n=1;nthis._maxlen?e.spanRecorder=void 0:this.spans.push(e)}}class c{__init2(){this.traceId=Object(i.b)()}__init3(){this.spanId=Object(i.b)().substring(16)}__init4(){this.startTimestamp=Object(o.d)()}__init5(){this.tags={}}__init6(){this.data={}}constructor(e){if(c.prototype.__init2.call(this),c.prototype.__init3.call(this),c.prototype.__init4.call(this),c.prototype.__init5.call(this),c.prototype.__init6.call(this),!e)return this;e.traceId&&(this.traceId=e.traceId),e.spanId&&(this.spanId=e.spanId),e.parentSpanId&&(this.parentSpanId=e.parentSpanId),"sampled"in e&&(this.sampled=e.sampled),e.op&&(this.op=e.op),e.description&&(this.description=e.description),e.data&&(this.data=e.data),e.tags&&(this.tags=e.tags),e.status&&(this.status=e.status),e.startTimestamp&&(this.startTimestamp=e.startTimestamp),e.endTimestamp&&(this.endTimestamp=e.endTimestamp)}startChild(e){const t=new c({...e,parentSpanId:this.spanId,sampled:this.sampled,traceId:this.traceId});if(t.spanRecorder=this.spanRecorder,t.spanRecorder&&t.spanRecorder.add(t),t.transaction=this.transaction,("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&t.transaction){const n=`[Tracing] Starting '${e&&e.op||"< unknown op >"}' span on transaction '${t.transaction.name||"< unknown name >"}' (${t.transaction.spanId}).`;t.transaction.metadata.spanMetadata[t.spanId]={logMessage:n},s.c.log(n)}return t}setTag(e,t){return this.tags={...this.tags,[e]:t},this}setData(e,t){return this.data={...this.data,[e]:t},this}setStatus(e){return this.status=e,this}setHttpStatus(e){this.setTag("http.status_code",String(e));const t=function(e){if(e<400&&e>=100)return"ok";if(e>=400&&e<500)switch(e){case 401:return"unauthenticated";case 403:return"permission_denied";case 404:return"not_found";case 409:return"already_exists";case 413:return"failed_precondition";case 429:return"resource_exhausted";default:return"invalid_argument"}if(e>=500&&e<600)switch(e){case 501:return"unimplemented";case 503:return"unavailable";case 504:return"deadline_exceeded";default:return"internal_error"}return"unknown_error"}(e);return"unknown_error"!==t&&this.setStatus(t),this}isSuccess(){return"ok"===this.status}finish(e){if(("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&this.transaction&&this.transaction.spanId!==this.spanId){const{logMessage:e}=this.transaction.metadata.spanMetadata[this.spanId];e&&s.c.log(e.replace("Starting","Finishing"))}this.endTimestamp="number"==typeof e?e:Object(o.d)()}toTraceparent(){let e="";return void 0!==this.sampled&&(e=this.sampled?"-1":"-0"),`${this.traceId}-${this.spanId}${e}`}toContext(){return Object(a.b)({data:this.data,description:this.description,endTimestamp:this.endTimestamp,op:this.op,parentSpanId:this.parentSpanId,sampled:this.sampled,spanId:this.spanId,startTimestamp:this.startTimestamp,status:this.status,tags:this.tags,traceId:this.traceId})}updateWithContext(e){return this.data=Object(r.a)(e.data,()=>({})),this.description=e.description,this.endTimestamp=e.endTimestamp,this.op=e.op,this.parentSpanId=e.parentSpanId,this.sampled=e.sampled,this.spanId=Object(r.a)(e.spanId,()=>this.spanId),this.startTimestamp=Object(r.a)(e.startTimestamp,()=>this.startTimestamp),this.status=e.status,this.tags=Object(r.a)(e.tags,()=>({})),this.traceId=Object(r.a)(e.traceId,()=>this.traceId),this}getTraceContext(){return Object(a.b)({data:Object.keys(this.data).length>0?this.data:void 0,description:this.description,op:this.op,parent_span_id:this.parentSpanId,span_id:this.spanId,status:this.status,tags:Object.keys(this.tags).length>0?this.tags:void 0,trace_id:this.traceId})}toJSON(){return Object(a.b)({data:Object.keys(this.data).length>0?this.data:void 0,description:this.description,op:this.op,parent_span_id:this.parentSpanId,span_id:this.spanId,start_timestamp:this.startTimestamp,status:this.status,tags:Object.keys(this.tags).length>0?this.tags:void 0,timestamp:this.endTimestamp,trace_id:this.traceId})}}},function(e,t,n){"use strict";n.d(t,"a",(function(){return l})),n.d(t,"b",(function(){return c})),n.d(t,"c",(function(){return a})),n.d(t,"d",(function(){return d}));var r=n(60),i=n(11),o=n(42),s=n(54);const a=1e3,l=3e4,c=5e3;class u extends o.b{constructor(e,t,n,r){super(r),this._pushActivity=e,this._popActivity=t,this.transactionSpanId=n}add(e){e.spanId!==this.transactionSpanId&&(e.finish=t=>{e.endTimestamp="number"==typeof t?t:Object(r.d)(),this._popActivity(e.spanId)},void 0===e.endTimestamp&&this._pushActivity(e.spanId)),super.add(e)}}class d extends s.a{__init(){this.activities={}}__init2(){this._heartbeatCounter=0}__init3(){this._finished=!1}__init4(){this._beforeFinishCallbacks=[]}constructor(e,t,n=a,r=l,o=c,s=!1){super(e,t),this._idleHub=t,this._idleTimeout=n,this._finalTimeout=r,this._heartbeatInterval=o,this._onScope=s,d.prototype.__init.call(this),d.prototype.__init2.call(this),d.prototype.__init3.call(this),d.prototype.__init4.call(this),s&&(h(t),("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&i.c.log("Setting idle transaction on scope. Span ID: "+this.spanId),t.configureScope(e=>e.setSpan(this))),this._startIdleTimeout(),setTimeout(()=>{this._finished||(this.setStatus("deadline_exceeded"),this.finish())},this._finalTimeout)}finish(e=Object(r.d)()){if(this._finished=!0,this.activities={},this.spanRecorder){("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&i.c.log("[Tracing] finishing IdleTransaction",new Date(1e3*e).toISOString(),this.op);for(const t of this._beforeFinishCallbacks)t(this,e);this.spanRecorder.spans=this.spanRecorder.spans.filter(t=>{if(t.spanId===this.spanId)return!0;t.endTimestamp||(t.endTimestamp=e,t.setStatus("cancelled"),("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&i.c.log("[Tracing] cancelling span since transaction ended early",JSON.stringify(t,void 0,2)));const n=t.startTimestamp{this._finished||this._pushActivity(e)},n=e=>{this._finished||this._popActivity(e)};this.spanRecorder=new u(t,n,this.spanId,e),("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&i.c.log("Starting heartbeat"),this._pingHeartbeat()}this.spanRecorder.add(this)}_cancelIdleTimeout(){this._idleTimeoutID&&(clearTimeout(this._idleTimeoutID),this._idleTimeoutID=void 0)}_startIdleTimeout(e){this._cancelIdleTimeout(),this._idleTimeoutID=setTimeout(()=>{this._finished||0!==Object.keys(this.activities).length||this.finish(e)},this._idleTimeout)}_pushActivity(e){this._cancelIdleTimeout(),("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&i.c.log("[Tracing] pushActivity: "+e),this.activities[e]=!0,("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&i.c.log("[Tracing] new activities count",Object.keys(this.activities).length)}_popActivity(e){if(this.activities[e]&&(("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&i.c.log("[Tracing] popActivity "+e),delete this.activities[e],("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&i.c.log("[Tracing] new activities count",Object.keys(this.activities).length)),0===Object.keys(this.activities).length){const e=Object(r.d)()+this._idleTimeout/1e3;this._startIdleTimeout(e)}}_beat(){if(this._finished)return;const e=Object.keys(this.activities).join("");e===this._prevHeartbeatString?this._heartbeatCounter+=1:this._heartbeatCounter=1,this._prevHeartbeatString=e,this._heartbeatCounter>=3?(("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&i.c.log("[Tracing] Transaction finished because of no change for 3 heart beats"),this.setStatus("deadline_exceeded"),this.finish()):this._pingHeartbeat()}_pingHeartbeat(){("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&i.c.log("pinging Heartbeat -> current counter: "+this._heartbeatCounter),setTimeout(()=>{this._beat()},this._heartbeatInterval)}}function h(e){const t=e.getScope();if(t){t.getTransaction()&&t.setSpan(void 0)}}},function(e,t,n){"use strict";e.exports=n(348)},function(e,t,n){var r=n(245),i=n(250);e.exports=function(e,t){var n=i(e,t);return r(n)?n:void 0}},function(e,t){e.exports=function(e){return null!=e&&"object"==typeof e}},function(e,t){var n=Array.isArray;e.exports=n},function(e,t,n){"use strict";n.d(t,"a",(function(){return $}));var r=n(9),i=n(15),o=n(0),s=n(1),a=n(110),l=n.n(a);function c(e){let{debounce:t,scroll:n,polyfill:r,offsetSize:i}=void 0===e?{debounce:0,scroll:!1,offsetSize:!1}:e;const s=r||("undefined"==typeof window?class{}:window.ResizeObserver);if(!s)throw new Error("This browser does not support ResizeObserver out of the box. See: https://github.com/react-spring/react-use-measure/#resize-observer-polyfills");const[a,c]=Object(o.useState)({left:0,top:0,width:0,height:0,bottom:0,right:0,x:0,y:0}),u=Object(o.useRef)({element:null,scrollContainers:null,resizeObserver:null,lastBounds:a}),h=t?"number"==typeof t?t:t.scroll:null,p=t?"number"==typeof t?t:t.resize:null,f=Object(o.useRef)(!1);Object(o.useEffect)(()=>(f.current=!0,()=>{f.current=!1}));const[m,g,b]=Object(o.useMemo)(()=>{const e=()=>{if(!u.current.element)return;const{left:e,top:t,width:n,height:r,bottom:o,right:s,x:a,y:l}=u.current.element.getBoundingClientRect(),h={left:e,top:t,width:n,height:r,bottom:o,right:s,x:a,y:l};u.current.element instanceof HTMLElement&&i&&(h.height=u.current.element.offsetHeight,h.width=u.current.element.offsetWidth),Object.freeze(h),f.current&&!d(u.current.lastBounds,h)&&c(u.current.lastBounds=h)};return[e,p?l()(e,p):e,h?l()(e,h):e]},[c,i,h,p]);function v(){u.current.scrollContainers&&(u.current.scrollContainers.forEach(e=>e.removeEventListener("scroll",b,!0)),u.current.scrollContainers=null),u.current.resizeObserver&&(u.current.resizeObserver.disconnect(),u.current.resizeObserver=null)}function y(){u.current.element&&(u.current.resizeObserver=new s(b),u.current.resizeObserver.observe(u.current.element),n&&u.current.scrollContainers&&u.current.scrollContainers.forEach(e=>e.addEventListener("scroll",b,{capture:!0,passive:!0})))}var S,_,x;return S=b,_=Boolean(n),Object(o.useEffect)(()=>{if(_){const e=S;return window.addEventListener("scroll",e,{capture:!0,passive:!0}),()=>{window.removeEventListener("scroll",e,!0)}}},[S,_]),x=g,Object(o.useEffect)(()=>{const e=x;return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}},[x]),Object(o.useEffect)(()=>{v(),y()},[n,b,g]),Object(o.useEffect)(()=>v,[]),[e=>{e&&e!==u.current.element&&(v(),u.current.element=e,u.current.scrollContainers=function e(t){const n=[];if(!t||t===document.body)return n;const{overflow:r,overflowX:i,overflowY:o}=window.getComputedStyle(t);[r,i,o].some(e=>"auto"===e||"scroll"===e)&&n.push(t);return[...n,...e(t.parentElement)]}(e),y())},a,m]}const u=["x","y","top","bottom","left","right","width","height"],d=(e,t)=>u.every(n=>e[n]===t[n]);var h=Object.defineProperty,p=Object.defineProperties,f=Object.getOwnPropertyDescriptors,m=Object.getOwnPropertySymbols,g=Object.prototype.hasOwnProperty,b=Object.prototype.propertyIsEnumerable,v=(e,t,n)=>t in e?h(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,y=(e,t)=>{for(var n in t||(t={}))g.call(t,n)&&v(e,n,t[n]);if(m)for(var n of m(t))b.call(t,n)&&v(e,n,t[n]);return e};function S(e,t,n){if(!e)return;if(!0===n(e))return e;let r=t?e.return:e.child;for(;r;){const e=S(r,t,n);if(e)return e;r=t?null:r.sibling}}function _(e){try{return Object.defineProperties(e,{_currentRenderer:{get:()=>null,set(){}},_currentRenderer2:{get:()=>null,set(){}}})}catch(t){return e}}const x=_(o.createContext(null));class w extends o.Component{render(){return o.createElement(x.Provider,{value:this._reactInternals},this.props.children)}}const{ReactCurrentOwner:k,ReactCurrentDispatcher:O}=o.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function E(){const e=o.useContext(x);if(null===e)throw new Error("its-fine: useFiber must be called within a !");const t=o.useId();return o.useMemo(()=>{for(const n of[null==k?void 0:k.current,e,null==e?void 0:e.alternate]){if(!n)continue;const e=S(n,!1,e=>{let n=e.memoizedState;for(;n;){if(n.memoizedState===t)return!0;n=n.next}});if(e)return e}},[e,t])}function A(){const e=function(){var e,t;const n=E(),[r]=o.useState(()=>new Map);r.clear();let i=n;for(;i;){const n=null==(e=i.type)?void 0:e._context;n&&n!==x&&!r.has(n)&&r.set(n,null==(t=null==O?void 0:O.current)?void 0:t.readContext(_(n))),i=i.return}return r}();return o.useMemo(()=>Array.from(e.keys()).reduce((t,n)=>r=>{return o.createElement(t,null,o.createElement(n.Provider,(i=y({},r),s={value:e.get(n)},p(i,f(s)))));var i,s},e=>o.createElement(w,y({},e))),[e])}n(44),n(107),n(70);const T={onClick:["click",!1],onContextMenu:["contextmenu",!1],onDoubleClick:["dblclick",!1],onWheel:["wheel",!0],onPointerDown:["pointerdown",!0],onPointerUp:["pointerup",!0],onPointerLeave:["pointerleave",!0],onPointerMove:["pointermove",!0],onPointerCancel:["pointercancel",!0],onLostPointerCapture:["lostpointercapture",!0]};function C(e){const{handlePointer:t}=Object(r.g)(e);return{priority:1,enabled:!0,compute(e,t,n){t.pointer.set(e.offsetX/t.size.width*2-1,-e.offsetY/t.size.height*2+1),t.raycaster.setFromCamera(t.pointer,t.camera)},connected:void 0,handlers:Object.keys(T).reduce((e,n)=>({...e,[n]:t(n)}),{}),update:()=>{var t;const{events:n,internal:r}=e.getState();null!=(t=r.lastEvent)&&t.current&&n.handlers&&n.handlers.onPointerMove(r.lastEvent.current)},connect:t=>{var n;const{set:r,events:i}=e.getState();null==i.disconnect||i.disconnect(),r(e=>({events:{...e.events,connected:t}})),Object.entries(null!=(n=i.handlers)?n:[]).forEach(([e,n])=>{const[r,i]=T[e];t.addEventListener(r,n,{passive:i})})},disconnect:()=>{const{set:t,events:n}=e.getState();var r;n.connected&&(Object.entries(null!=(r=n.handlers)?r:[]).forEach(([e,t])=>{if(n&&n.connected instanceof HTMLElement){const[r]=T[e];n.connected.removeEventListener(r,t)}}),t(e=>({events:{...e.events,connected:void 0}})))}}}const M=o.forwardRef((function({children:e,fallback:t,resize:n,style:a,gl:l,events:u=C,eventSource:d,eventPrefix:h,shadows:p,linear:f,flat:m,legacy:g,orthographic:b,frameloop:v,dpr:y,performance:S,raycaster:_,camera:x,onPointerMissed:w,onCreated:k,...O},E){o.useMemo(()=>Object(r.i)(s),[]);const T=A(),[M,$]=c({scroll:!0,debounce:{scroll:50,resize:0},...n}),P=o.useRef(null),R=o.useRef(null);o.useImperativeHandle(E,()=>P.current);const j=Object(r.l)(w),[N,D]=o.useState(!1),[I,L]=o.useState(!1);if(N)throw N;if(I)throw I;const B=o.useRef(null);Object(r.e)(()=>{const t=P.current;$.width>0&&$.height>0&&t&&(B.current||(B.current=Object(r.f)(t)),B.current.configure({gl:l,events:u,shadows:p,linear:f,flat:m,legacy:g,orthographic:b,frameloop:v,dpr:y,performance:S,raycaster:_,camera:x,size:$,onPointerMissed:(...e)=>null==j.current?void 0:j.current(...e),onCreated:e=>{null==e.events.connect||e.events.connect(d?Object(r.j)(d)?d.current:d:R.current),h&&e.setEvents({compute:(e,t)=>{const n=e[h+"X"],r=e[h+"Y"];t.pointer.set(n/t.size.width*2-1,-r/t.size.height*2+1),t.raycaster.setFromCamera(t.pointer,t.camera)}}),null==k||k(e)}}),B.current.render(o.createElement(T,null,o.createElement(r.d,{set:L},o.createElement(o.Suspense,{fallback:o.createElement(r.b,{set:D})},e)))))}),o.useEffect(()=>{const e=P.current;if(e)return()=>Object(r.h)(e)},[]);const z=d?"none":"auto";return o.createElement("div",Object(i.a)({ref:R,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden",pointerEvents:z,...a}},O),o.createElement("div",{ref:M,style:{width:"100%",height:"100%"}},o.createElement("canvas",{ref:P,style:{display:"block"}},t)))})),$=o.forwardRef((function(e,t){return o.createElement(w,null,o.createElement(M,Object(i.a)({},e,{ref:t})))}))},function(e,t,n){"use strict";(function(e){n.d(t,"a",(function(){return m})),n.d(t,"b",(function(){return f}));var r=n(62),i=n(11),o=n(17),s=n(40),a=n(166),l=n(43),c=n(54),u=n(10);function d(){const e=this.getScope();if(e){const t=e.getSpan();if(t)return{"sentry-trace":t.toTraceparent()}}return{}}function h(e,t,n){if(!Object(u.b)(t))return e.sampled=!1,e;if(void 0!==e.sampled)return e.setMetadata({sampleRate:Number(e.sampled)}),e;let r;return"function"==typeof t.tracesSampler?(r=t.tracesSampler(n),e.setMetadata({sampleRate:Number(r)})):void 0!==n.parentSampled?r=n.parentSampled:(r=t.tracesSampleRate,e.setMetadata({sampleRate:Number(r)})),function(e){if(Object(o.e)(e)||"number"!=typeof e&&"boolean"!=typeof e)return("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&i.c.warn(`[Tracing] Given sample rate is invalid. Sample rate must be a boolean or a number between 0 and 1. Got ${JSON.stringify(e)} of type ${JSON.stringify(typeof e)}.`),!1;if(e<0||e>1)return("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&i.c.warn(`[Tracing] Given sample rate is invalid. Sample rate must be between 0 and 1. Got ${e}.`),!1;return!0}(r)?r?(e.sampled=Math.random()new(Object(s.a)(e,"./integrations/node/mongo").Mongo),mongoose:()=>new(Object(s.a)(e,"./integrations/node/mongo").Mongo)({mongoose:!0}),mysql:()=>new(Object(s.a)(e,"./integrations/node/mysql").Mysql),pg:()=>new(Object(s.a)(e,"./integrations/node/postgres").Postgres)},i=Object.keys(n).filter(e=>!!Object(s.c)(e)).map(e=>{try{return n[e]()}catch(e){return}}).filter(e=>e);i.length>0&&(t.__SENTRY__.integrations=[...t.__SENTRY__.integrations||[],...i])}(),Object(a.a)()}}).call(this,n(64)(e))},function(e,t,n){"use strict";n.d(t,"a",(function(){return s})),n.d(t,"b",(function(){return o})),n.d(t,"c",(function(){return i}));var r=n(17);function i(e,t=0){return"string"!=typeof e||0===t||e.length<=t?e:e.substr(0,t)+"..."}function o(e,t){let n=e;const r=n.length;if(r<=150)return n;t>r&&(t=r);let i=Math.max(t-60,0);i<5&&(i=0);let o=Math.min(i+140,r);return o>r-5&&(o=r),o===r&&(i=Math.max(o-140,0)),n=n.slice(i,o),i>0&&(n="'{snip} "+n),or&&(t=r);let i=Math.max(t-60,0);i<5&&(i=0);let o=Math.min(i+140,r);return o>r-5&&(o=r),o===r&&(i=Math.max(o-140,0)),n=n.slice(i,o),i>0&&(n="'{snip} "+n),o`."),this.name=""),super.finish(e),!0!==this.sampled){("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&s.c.log("[Tracing] Discarding transaction because its trace was not chosen to be sampled.");const e=this._hub.getClient();return void(e&&e.recordDroppedEvent("sample_rate","transaction"))}const t=this.spanRecorder?this.spanRecorder.spans.filter(e=>e!==this&&e.endTimestamp):[];this._trimEnd&&t.length>0&&(this.endTimestamp=t.reduce((e,t)=>e.endTimestamp&&t.endTimestamp?e.endTimestamp>t.endTimestamp?e:t:e).endTimestamp);const n=this.metadata,r={contexts:{trace:this.getTraceContext()},spans:t,start_timestamp:this.startTimestamp,tags:this.tags,timestamp:this.endTimestamp,transaction:this.name,type:"transaction",sdkProcessingMetadata:{...n,dynamicSamplingContext:this.getDynamicSamplingContext()},...n.source&&{transaction_info:{source:n.source,changes:n.changes,propagations:n.propagations}}};return Object.keys(this._measurements).length>0&&(("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&s.c.log("[Measurements] Adding measurements to transaction",JSON.stringify(this._measurements,void 0,2)),r.measurements=this._measurements),("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&s.c.log(`[Tracing] Finishing ${this.op} transaction: ${this.name}.`),this._hub.captureEvent(r)}toContext(){const e=super.toContext();return Object(a.b)({...e,name:this.name,trimEnd:this._trimEnd})}updateWithContext(e){return super.updateWithContext(e),this.name=Object(r.a)(e.name,()=>""),this._trimEnd=e.trimEnd,this}getDynamicSamplingContext(){if(this._frozenDynamicSamplingContext)return this._frozenDynamicSamplingContext;const e=this._hub||Object(i.a)(),t=e&&e.getClient();if(!t)return{};const{environment:n,release:r}=t.getOptions()||{},{publicKey:o}=t.getDsn()||{},s=this.metadata.sampleRate,l=void 0!==s?s.toString():void 0,c=e.getScope(),{segment:u}=c&&c.getUser()||{},d=this.metadata.source,h=d&&"url"!==d?this.name:void 0;return Object(a.b)({environment:n,release:r,transaction:h,user_segment:u,public_key:o,trace_id:this.traceId,sample_rate:l})}}},function(e,t,n){var r=n(341),i=n(342),o=n(343),s=n(345);e.exports=function(e,t){return r(e)||i(e,t)||o(e,t)||s()},e.exports.__esModule=!0,e.exports.default=e.exports},function(e,t,n){"use strict";var r=n(207),i={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},s={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},a={};function l(e){return r.isMemo(e)?s:a[e.$$typeof]||i}a[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},a[r.Memo]=s;var c=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,h=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,f=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(f){var i=p(n);i&&i!==f&&e(t,i,r)}var s=u(n);d&&(s=s.concat(d(n)));for(var a=l(t),m=l(n),g=0;gDate.now()/1e3};const s=Object(i.b)()?function(){try{return Object(i.a)(e,"perf_hooks").performance}catch(e){return}}():function(){const{performance:e}=r.a;if(!e||!e.now)return;return{now:()=>e.now(),timeOrigin:Date.now()-e.now()}}(),a=void 0===s?o:{nowSeconds:()=>(s.timeOrigin+s.now())/1e3},l=o.nowSeconds.bind(o),c=a.nowSeconds.bind(a),u=c;let d;const h=(()=>{const{performance:e}=r.a;if(!e||!e.now)return void(d="none");const t=e.now(),n=Date.now(),i=e.timeOrigin?Math.abs(e.timeOrigin+t-n):36e5,o=i<36e5,s=e.timing&&e.timing.navigationStart,a="number"==typeof s?Math.abs(s+t-n):36e5;return o||a<36e5?i<=a?(d="timeOrigin",e.timeOrigin):(d="navigationStart",s):(d="dateNow",n)})()}).call(this,n(64)(e))},function(e,t,n){"use strict";function r(e,t){return null!=e?e:t()}n.d(t,"a",(function(){return r}))},function(e,t,n){"use strict";n.d(t,"a",(function(){return S})),n.d(t,"b",(function(){return v}));var r,i=n(194),o=n(60),s=n(11),a=n(38),l=n(40),c=n(17);!function(e){e[e.PENDING=0]="PENDING";e[e.RESOLVED=1]="RESOLVED";e[e.REJECTED=2]="REJECTED"}(r||(r={}));class u{__init(){this._state=r.PENDING}__init2(){this._handlers=[]}constructor(e){u.prototype.__init.call(this),u.prototype.__init2.call(this),u.prototype.__init3.call(this),u.prototype.__init4.call(this),u.prototype.__init5.call(this),u.prototype.__init6.call(this);try{e(this._resolve,this._reject)}catch(e){this._reject(e)}}then(e,t){return new u((n,r)=>{this._handlers.push([!1,t=>{if(e)try{n(e(t))}catch(e){r(e)}else n(t)},e=>{if(t)try{n(t(e))}catch(e){r(e)}else r(e)}]),this._executeHandlers()})}catch(e){return this.then(e=>e,e)}finally(e){return new u((t,n)=>{let r,i;return this.then(t=>{i=!1,r=t,e&&e()},t=>{i=!0,r=t,e&&e()}).then(()=>{i?n(r):t(r)})})}__init3(){this._resolve=e=>{this._setResult(r.RESOLVED,e)}}__init4(){this._reject=e=>{this._setResult(r.REJECTED,e)}}__init5(){this._setResult=(e,t)=>{this._state===r.PENDING&&(Object(c.j)(t)?t.then(this._resolve,this._reject):(this._state=e,this._value=t,this._executeHandlers()))}}__init6(){this._executeHandlers=()=>{if(this._state===r.PENDING)return;const e=this._handlers.slice();this._handlers=[],e.forEach(e=>{e[0]||(this._state===r.RESOLVED&&e[1](this._value),this._state===r.REJECTED&&e[2](this._value),e[0]=!0)})}}}var d=n(22);function h(e){const t=Object(o.c)(),n={sid:Object(i.b)(),init:!0,timestamp:t,started:t,duration:0,status:"ok",errors:0,ignoreDuration:!1,toJSON:()=>function(e){return Object(d.b)({sid:""+e.sid,init:e.init,started:new Date(1e3*e.started).toISOString(),timestamp:new Date(1e3*e.timestamp).toISOString(),status:e.status,errors:e.errors,did:"number"==typeof e.did||"string"==typeof e.did?""+e.did:void 0,duration:e.duration,attrs:{release:e.release,environment:e.environment,ip_address:e.ipAddress,user_agent:e.userAgent}})}(n)};return e&&p(n,e),n}function p(e,t={}){if(t.user&&(!e.ipAddress&&t.user.ip_address&&(e.ipAddress=t.user.ip_address),e.did||t.did||(e.did=t.user.id||t.user.email||t.user.username)),e.timestamp=t.timestamp||Object(o.c)(),t.ignoreDuration&&(e.ignoreDuration=t.ignoreDuration),t.sid&&(e.sid=32===t.sid.length?t.sid:Object(i.b)()),void 0!==t.init&&(e.init=t.init),!e.did&&t.did&&(e.did=""+t.did),"number"==typeof t.started&&(e.started=t.started),e.ignoreDuration)e.duration=void 0;else if("number"==typeof t.duration)e.duration=t.duration;else{const t=e.timestamp-e.started;e.duration=t>=0?t:0}t.release&&(e.release=t.release),t.environment&&(e.environment=t.environment),!e.ipAddress&&t.ipAddress&&(e.ipAddress=t.ipAddress),!e.userAgent&&t.userAgent&&(e.userAgent=t.userAgent),"number"==typeof t.errors&&(e.errors=t.errors),t.status&&(e.status=t.status)}class f{constructor(){this._notifyingListeners=!1,this._scopeListeners=[],this._eventProcessors=[],this._breadcrumbs=[],this._attachments=[],this._user={},this._tags={},this._extra={},this._contexts={},this._sdkProcessingMetadata={}}static clone(e){const t=new f;return e&&(t._breadcrumbs=[...e._breadcrumbs],t._tags={...e._tags},t._extra={...e._extra},t._contexts={...e._contexts},t._user=e._user,t._level=e._level,t._span=e._span,t._session=e._session,t._transactionName=e._transactionName,t._fingerprint=e._fingerprint,t._eventProcessors=[...e._eventProcessors],t._requestSession=e._requestSession,t._attachments=[...e._attachments]),t}addScopeListener(e){this._scopeListeners.push(e)}addEventProcessor(e){return this._eventProcessors.push(e),this}setUser(e){return this._user=e||{},this._session&&p(this._session,{user:e}),this._notifyScopeListeners(),this}getUser(){return this._user}getRequestSession(){return this._requestSession}setRequestSession(e){return this._requestSession=e,this}setTags(e){return this._tags={...this._tags,...e},this._notifyScopeListeners(),this}setTag(e,t){return this._tags={...this._tags,[e]:t},this._notifyScopeListeners(),this}setExtras(e){return this._extra={...this._extra,...e},this._notifyScopeListeners(),this}setExtra(e,t){return this._extra={...this._extra,[e]:t},this._notifyScopeListeners(),this}setFingerprint(e){return this._fingerprint=e,this._notifyScopeListeners(),this}setLevel(e){return this._level=e,this._notifyScopeListeners(),this}setTransactionName(e){return this._transactionName=e,this._notifyScopeListeners(),this}setContext(e,t){return null===t?delete this._contexts[e]:this._contexts={...this._contexts,[e]:t},this._notifyScopeListeners(),this}setSpan(e){return this._span=e,this._notifyScopeListeners(),this}getSpan(){return this._span}getTransaction(){const e=this.getSpan();return e&&e.transaction}setSession(e){return e?this._session=e:delete this._session,this._notifyScopeListeners(),this}getSession(){return this._session}update(e){if(!e)return this;if("function"==typeof e){const t=e(this);return t instanceof f?t:this}return e instanceof f?(this._tags={...this._tags,...e._tags},this._extra={...this._extra,...e._extra},this._contexts={...this._contexts,...e._contexts},e._user&&Object.keys(e._user).length&&(this._user=e._user),e._level&&(this._level=e._level),e._fingerprint&&(this._fingerprint=e._fingerprint),e._requestSession&&(this._requestSession=e._requestSession)):Object(c.f)(e)&&(e=e,this._tags={...this._tags,...e.tags},this._extra={...this._extra,...e.extra},this._contexts={...this._contexts,...e.contexts},e.user&&(this._user=e.user),e.level&&(this._level=e.level),e.fingerprint&&(this._fingerprint=e.fingerprint),e.requestSession&&(this._requestSession=e.requestSession)),this}clear(){return this._breadcrumbs=[],this._tags={},this._extra={},this._user={},this._contexts={},this._level=void 0,this._transactionName=void 0,this._fingerprint=void 0,this._requestSession=void 0,this._span=void 0,this._session=void 0,this._notifyScopeListeners(),this._attachments=[],this}addBreadcrumb(e,t){const n="number"==typeof t?t:100;if(n<=0)return this;const r={timestamp:Object(o.b)(),...e};return this._breadcrumbs=[...this._breadcrumbs,r].slice(-n),this._notifyScopeListeners(),this}clearBreadcrumbs(){return this._breadcrumbs=[],this._notifyScopeListeners(),this}addAttachment(e){return this._attachments.push(e),this}getAttachments(){return this._attachments}clearAttachments(){return this._attachments=[],this}applyToEvent(e,t={}){if(this._extra&&Object.keys(this._extra).length&&(e.extra={...this._extra,...e.extra}),this._tags&&Object.keys(this._tags).length&&(e.tags={...this._tags,...e.tags}),this._user&&Object.keys(this._user).length&&(e.user={...this._user,...e.user}),this._contexts&&Object.keys(this._contexts).length&&(e.contexts={...this._contexts,...e.contexts}),this._level&&(e.level=this._level),this._transactionName&&(e.transaction=this._transactionName),this._span){e.contexts={trace:this._span.getTraceContext(),...e.contexts};const t=this._span.transaction&&this._span.transaction.name;t&&(e.tags={transaction:t,...e.tags})}return this._applyFingerprint(e),e.breadcrumbs=[...e.breadcrumbs||[],...this._breadcrumbs],e.breadcrumbs=e.breadcrumbs.length>0?e.breadcrumbs:void 0,e.sdkProcessingMetadata={...e.sdkProcessingMetadata,...this._sdkProcessingMetadata},this._notifyEventProcessors([...m(),...this._eventProcessors],e,t)}setSDKProcessingMetadata(e){return this._sdkProcessingMetadata={...this._sdkProcessingMetadata,...e},this}_notifyEventProcessors(e,t,n,r=0){return new u((i,o)=>{const a=e[r];if(null===t||"function"!=typeof a)i(t);else{const l=a({...t},n);("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&a.id&&null===l&&s.c.log(`Event processor "${a.id}" dropped event`),Object(c.j)(l)?l.then(t=>this._notifyEventProcessors(e,t,n,r+1).then(i)).then(null,o):this._notifyEventProcessors(e,l,n,r+1).then(i).then(null,o)}})}_notifyScopeListeners(){this._notifyingListeners||(this._notifyingListeners=!0,this._scopeListeners.forEach(e=>{e(this)}),this._notifyingListeners=!1)}_applyFingerprint(e){e.fingerprint=e.fingerprint?Object(i.a)(e.fingerprint):[],this._fingerprint&&(e.fingerprint=e.fingerprint.concat(this._fingerprint)),e.fingerprint&&!e.fingerprint.length&&delete e.fingerprint}}function m(){return Object(a.b)("globalEventProcessors",()=>[])}const g=100;class b{__init(){this._stack=[{}]}constructor(e,t=new f,n=4){this._version=n,b.prototype.__init.call(this),this.getStackTop().scope=t,e&&this.bindClient(e)}isOlderThan(e){return this._version{i.captureException(e,{originalException:e,syntheticException:r,...t,event_id:n},o)}),n}captureMessage(e,t,n){const r=this._lastEventId=n&&n.event_id?n.event_id:Object(i.b)(),o=new Error(e);return this._withClient((i,s)=>{i.captureMessage(e,t,{originalException:e,syntheticException:o,...n,event_id:r},s)}),r}captureEvent(e,t){const n=t&&t.event_id?t.event_id:Object(i.b)();return"transaction"!==e.type&&(this._lastEventId=n),this._withClient((r,i)=>{r.captureEvent(e,{...t,event_id:n},i)}),n}lastEventId(){return this._lastEventId}addBreadcrumb(e,t){const{scope:n,client:r}=this.getStackTop();if(!n||!r)return;const{beforeBreadcrumb:i=null,maxBreadcrumbs:a=g}=r.getOptions&&r.getOptions()||{};if(a<=0)return;const l={timestamp:Object(o.b)(),...e},c=i?Object(s.b)(()=>i(l,t)):l;null!==c&&n.addBreadcrumb(c,a)}setUser(e){const t=this.getScope();t&&t.setUser(e)}setTags(e){const t=this.getScope();t&&t.setTags(e)}setExtras(e){const t=this.getScope();t&&t.setExtras(e)}setTag(e,t){const n=this.getScope();n&&n.setTag(e,t)}setExtra(e,t){const n=this.getScope();n&&n.setExtra(e,t)}setContext(e,t){const n=this.getScope();n&&n.setContext(e,t)}configureScope(e){const{scope:t,client:n}=this.getStackTop();t&&n&&e(t)}run(e){const t=y(this);try{e(this)}finally{y(t)}}getIntegration(e){const t=this.getClient();if(!t)return null;try{return t.getIntegration(e)}catch(t){return("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&s.c.warn(`Cannot retrieve integration ${e.id} from the current Hub`),null}}startTransaction(e,t){return this._callExtensionMethod("startTransaction",e,t)}traceHeaders(){return this._callExtensionMethod("traceHeaders")}captureSession(e=!1){if(e)return this.endSession();this._sendSessionUpdate()}endSession(){const e=this.getStackTop(),t=e&&e.scope,n=t&&t.getSession();n&&function(e,t){let n={};t?n={status:t}:"ok"===e.status&&(n={status:"exited"}),p(e,n)}(n),this._sendSessionUpdate(),t&&t.setSession()}startSession(e){const{scope:t,client:n}=this.getStackTop(),{release:r,environment:i}=n&&n.getOptions()||{},{userAgent:o}=a.a.navigator||{},s=h({release:r,environment:i,...t&&{user:t.getUser()},...o&&{userAgent:o},...e});if(t){const e=t.getSession&&t.getSession();e&&"ok"===e.status&&p(e,{status:"exited"}),this.endSession(),t.setSession(s)}return s}shouldSendDefaultPii(){const e=this.getClient(),t=e&&e.getOptions();return Boolean(t&&t.sendDefaultPii)}_sendSessionUpdate(){const{scope:e,client:t}=this.getStackTop();if(!e)return;const n=e.getSession();n&&t&&t.captureSession&&t.captureSession(n)}_withClient(e){const{scope:t,client:n}=this.getStackTop();n&&e(n,t)}_callExtensionMethod(e,...t){const n=v().__SENTRY__;if(n&&n.extensions&&"function"==typeof n.extensions[e])return n.extensions[e].apply(this,t);("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&s.c.warn(`Extension method ${e} couldn't be found, doing nothing.`)}}function v(){return a.a.__SENTRY__=a.a.__SENTRY__||{extensions:{},hub:void 0},a.a}function y(e){const t=v(),n=x(t);return w(t,e),n}function S(){const e=v();return _(e)&&!x(e).isOlderThan(4)||w(e,new b),Object(l.b)()?function(e){try{const t=v().__SENTRY__,n=t&&t.extensions&&t.extensions.domain&&t.extensions.domain.active;if(!n)return x(e);if(!_(n)||x(n).isOlderThan(4)){const t=x(e).getStackTop();w(n,new b(t.client,f.clone(t.scope)))}return x(n)}catch(t){return x(e)}}(e):x(e)}function _(e){return!!(e&&e.__SENTRY__&&e.__SENTRY__.hub)}function x(e){return Object(a.b)("hub",()=>new b,e)}function w(e,t){if(!e)return!1;return(e.__SENTRY__=e.__SENTRY__||{}).hub=t,!0}},,function(e,t){e.exports=function(e){if(!e.webpackPolyfill){var t=Object.create(e);t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),Object.defineProperty(t,"exports",{enumerable:!0}),t.webpackPolyfill=1}return t}},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t,n){var r=n(32).Symbol;e.exports=r},function(e,t){e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},function(e,t,n){var r=n(131),i=n(132);e.exports=function(e,t,n,o){var s=!n;n||(n={});for(var a=-1,l=t.length;++ae===t)){if(e===t)return!0;if(!e||!t)return!1;const r=e.length;if(t.length!==r)return!1;for(let i=0;is.response=e).then(()=>{o.lifespan&&o.lifespan>0&&setTimeout(()=>{const e=i.indexOf(s);-1!==e&&i.splice(e,1)},o.lifespan)}).catch(e=>s.error=e)};if(i.push(s),!n)throw s.promise}const s=(e,t,n)=>o(e,t,!1,n),a=(e,t,n)=>{o(e,t,!0,n)},l=e=>{if(void 0===e||0===e.length)i.splice(0,i.length);else{const t=i.find(t=>r(e,t.keys,t.equal));if(t){const e=i.indexOf(t);-1!==e&&i.splice(e,1)}}}},function(e,t,n){e.exports=n(216)},function(e,t,n){"use strict";(function(t){var r=n(29),i=n(221),o=n(119),s={"Content-Type":"application/x-www-form-urlencoded"};function a(e,t){!r.isUndefined(e)&&r.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}var l,c={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:(("undefined"!=typeof XMLHttpRequest||void 0!==t&&"[object process]"===Object.prototype.toString.call(t))&&(l=n(120)),l),transformRequest:[function(e,t){return i(t,"Accept"),i(t,"Content-Type"),r.isFormData(e)||r.isArrayBuffer(e)||r.isBuffer(e)||r.isStream(e)||r.isFile(e)||r.isBlob(e)?e:r.isArrayBufferView(e)?e.buffer:r.isURLSearchParams(e)?(a(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):r.isObject(e)||t&&"application/json"===t["Content-Type"]?(a(t,"application/json"),function(e,t,n){if(r.isString(e))try{return(t||JSON.parse)(e),r.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(n||JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){var t=this.transitional||c.transitional,n=t&&t.silentJSONParsing,i=t&&t.forcedJSONParsing,s=!n&&"json"===this.responseType;if(s||i&&r.isString(e)&&e.length)try{return JSON.parse(e)}catch(e){if(s){if("SyntaxError"===e.name)throw o(e,this,"E_JSON_PARSE");throw e}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};r.forEach(["delete","get","head"],(function(e){c.headers[e]={}})),r.forEach(["post","put","patch"],(function(e){c.headers[e]=r.merge(s)})),e.exports=c}).call(this,n(36))},function(e,t,n){"use strict";function r(e){this.message=e}r.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},r.prototype.__CANCEL__=!0,e.exports=r},function(e,t,n){var r=n(235),i=n(236),o=n(237),s=n(238),a=n(239);function l(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t-1){var i=n[r];return r>0&&(n.splice(r,1),n.unshift(i)),i.value}return"NOT_FOUND"}return{get:r,put:function(t,i){"NOT_FOUND"===r(t)&&(n.unshift({key:t,value:i}),n.length>e&&n.pop())},getEntries:function(){return n},clear:function(){n=[]}}}(c,d);function p(){var t=h.get(arguments);if("NOT_FOUND"===t){if(t=e.apply(null,arguments),u){var n=h.getEntries(),r=n.find((function(e){return u(e.value,t)}));r&&(t=r.value)}h.put(arguments,t)}return t}return p.clearCache=function(){return h.clear()},p}function o(e){var t=Array.isArray(e[0])?e[0]:e;if(!t.every((function(e){return"function"==typeof e}))){var n=t.map((function(e){return"function"==typeof e?"function "+(e.name||"unnamed")+"()":typeof e})).join(", ");throw new Error("createSelector expects all input-selectors to be functions, but received the following types: ["+n+"]")}return t}function s(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;re[0]-t[0]).map(e=>e[1]);return(e,n=0)=>{const r=[];for(const i of e.split("\n").slice(n)){const e=i.replace(/\(error: (.*)\)/,"$1");for(const n of t){const t=n(e);if(t){r.push(t);break}}}return function(e){if(!e.length)return[];let t=e;const n=t[0].function||"",r=t[t.length-1].function||"";-1===n.indexOf("captureMessage")&&-1===n.indexOf("captureException")||(t=t.slice(1));-1!==r.indexOf("sentryWrapped")&&(t=t.slice(0,-1));return t.slice(0,50).map(e=>({...e,filename:e.filename||t[0].filename,function:e.function||"?"})).reverse()}(r)}}function i(e){return Array.isArray(e)?r(...e):e}function o(e){try{return e&&"function"==typeof e&&e.name||""}catch(e){return""}}},,,function(e,t,n){(function(e){var r=void 0!==e&&e||"undefined"!=typeof self&&self||window,i=Function.prototype.apply;function o(e,t){this._id=e,this._clearFn=t}t.setTimeout=function(){return new o(i.call(setTimeout,r,arguments),clearTimeout)},t.setInterval=function(){return new o(i.call(setInterval,r,arguments),clearInterval)},t.clearTimeout=t.clearInterval=function(e){e&&e.close()},o.prototype.unref=o.prototype.ref=function(){},o.prototype.close=function(){this._clearFn.call(r,this._id)},t.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},t.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},t._unrefActive=t.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idleTimeoutId=setTimeout((function(){e._onTimeout&&e._onTimeout()}),t))},n(206),t.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==e&&e.setImmediate||this&&this.setImmediate,t.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==e&&e.clearImmediate||this&&this.clearImmediate}).call(this,n(28))},function(e,t,n){var r=n(45)(n(32),"Map");e.exports=r},function(e,t,n){var r=n(134),i=n(271),o=n(139);e.exports=function(e){return o(e)?r(e):i(e)}},function(e,t){e.exports=function(e){return function(t){return e(t)}}},function(e,t,n){(function(e){var r=n(128),i=t&&!t.nodeType&&t,o=i&&"object"==typeof e&&e&&!e.nodeType&&e,s=o&&o.exports===i&&r.process,a=function(){try{var e=o&&o.require&&o.require("util").types;return e||s&&s.binding&&s.binding("util")}catch(e){}}();e.exports=a}).call(this,n(65)(e))},function(e,t){var n=Object.prototype;e.exports=function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||n)}},function(e,t,n){var r=n(134),i=n(274),o=n(139);e.exports=function(e){return o(e)?r(e,!0):i(e)}},function(e,t,n){var r=n(279),i=n(140),o=Object.prototype.propertyIsEnumerable,s=Object.getOwnPropertySymbols,a=s?function(e){return null==e?[]:(e=Object(e),r(s(e),(function(t){return o.call(e,t)})))}:i;e.exports=a},function(e,t){e.exports=function(e,t){for(var n=-1,r=t.length,i=e.length;++n\u20D2|\u205F\u200A|\u219D\u0338|\u2202\u0338|\u2220\u20D2|\u2229\uFE00|\u222A\uFE00|\u223C\u20D2|\u223D\u0331|\u223E\u0333|\u2242\u0338|\u224B\u0338|\u224D\u20D2|\u224E\u0338|\u224F\u0338|\u2250\u0338|\u2261\u20E5|\u2264\u20D2|\u2265\u20D2|\u2266\u0338|\u2267\u0338|\u2268\uFE00|\u2269\uFE00|\u226A\u0338|\u226A\u20D2|\u226B\u0338|\u226B\u20D2|\u227F\u0338|\u2282\u20D2|\u2283\u20D2|\u228A\uFE00|\u228B\uFE00|\u228F\u0338|\u2290\u0338|\u2293\uFE00|\u2294\uFE00|\u22B4\u20D2|\u22B5\u20D2|\u22D8\u0338|\u22D9\u0338|\u22DA\uFE00|\u22DB\uFE00|\u22F5\u0338|\u22F9\u0338|\u2933\u0338|\u29CF\u0338|\u29D0\u0338|\u2A6D\u0338|\u2A70\u0338|\u2A7D\u0338|\u2A7E\u0338|\u2AA1\u0338|\u2AA2\u0338|\u2AAC\uFE00|\u2AAD\uFE00|\u2AAF\u0338|\u2AB0\u0338|\u2AC5\u0338|\u2AC6\u0338|\u2ACB\uFE00|\u2ACC\uFE00|\u2AFD\u20E5|[\xA0-\u0113\u0116-\u0122\u0124-\u012B\u012E-\u014D\u0150-\u017E\u0192\u01B5\u01F5\u0237\u02C6\u02C7\u02D8-\u02DD\u0311\u0391-\u03A1\u03A3-\u03A9\u03B1-\u03C9\u03D1\u03D2\u03D5\u03D6\u03DC\u03DD\u03F0\u03F1\u03F5\u03F6\u0401-\u040C\u040E-\u044F\u0451-\u045C\u045E\u045F\u2002-\u2005\u2007-\u2010\u2013-\u2016\u2018-\u201A\u201C-\u201E\u2020-\u2022\u2025\u2026\u2030-\u2035\u2039\u203A\u203E\u2041\u2043\u2044\u204F\u2057\u205F-\u2063\u20AC\u20DB\u20DC\u2102\u2105\u210A-\u2113\u2115-\u211E\u2122\u2124\u2127-\u2129\u212C\u212D\u212F-\u2131\u2133-\u2138\u2145-\u2148\u2153-\u215E\u2190-\u219B\u219D-\u21A7\u21A9-\u21AE\u21B0-\u21B3\u21B5-\u21B7\u21BA-\u21DB\u21DD\u21E4\u21E5\u21F5\u21FD-\u2205\u2207-\u2209\u220B\u220C\u220F-\u2214\u2216-\u2218\u221A\u221D-\u2238\u223A-\u2257\u2259\u225A\u225C\u225F-\u2262\u2264-\u228B\u228D-\u229B\u229D-\u22A5\u22A7-\u22B0\u22B2-\u22BB\u22BD-\u22DB\u22DE-\u22E3\u22E6-\u22F7\u22F9-\u22FE\u2305\u2306\u2308-\u2310\u2312\u2313\u2315\u2316\u231C-\u231F\u2322\u2323\u232D\u232E\u2336\u233D\u233F\u237C\u23B0\u23B1\u23B4-\u23B6\u23DC-\u23DF\u23E2\u23E7\u2423\u24C8\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2550-\u256C\u2580\u2584\u2588\u2591-\u2593\u25A1\u25AA\u25AB\u25AD\u25AE\u25B1\u25B3-\u25B5\u25B8\u25B9\u25BD-\u25BF\u25C2\u25C3\u25CA\u25CB\u25EC\u25EF\u25F8-\u25FC\u2605\u2606\u260E\u2640\u2642\u2660\u2663\u2665\u2666\u266A\u266D-\u266F\u2713\u2717\u2720\u2736\u2758\u2772\u2773\u27C8\u27C9\u27E6-\u27ED\u27F5-\u27FA\u27FC\u27FF\u2902-\u2905\u290C-\u2913\u2916\u2919-\u2920\u2923-\u292A\u2933\u2935-\u2939\u293C\u293D\u2945\u2948-\u294B\u294E-\u2976\u2978\u2979\u297B-\u297F\u2985\u2986\u298B-\u2996\u299A\u299C\u299D\u29A4-\u29B7\u29B9\u29BB\u29BC\u29BE-\u29C5\u29C9\u29CD-\u29D0\u29DC-\u29DE\u29E3-\u29E5\u29EB\u29F4\u29F6\u2A00-\u2A02\u2A04\u2A06\u2A0C\u2A0D\u2A10-\u2A17\u2A22-\u2A27\u2A29\u2A2A\u2A2D-\u2A31\u2A33-\u2A3C\u2A3F\u2A40\u2A42-\u2A4D\u2A50\u2A53-\u2A58\u2A5A-\u2A5D\u2A5F\u2A66\u2A6A\u2A6D-\u2A75\u2A77-\u2A9A\u2A9D-\u2AA2\u2AA4-\u2AB0\u2AB3-\u2AC8\u2ACB\u2ACC\u2ACF-\u2ADB\u2AE4\u2AE6-\u2AE9\u2AEB-\u2AF3\u2AFD\uFB00-\uFB04]|\uD835[\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDCCF\uDD04\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDD6B]/g,h={"­":"shy","‌":"zwnj","‍":"zwj","‎":"lrm","⁣":"ic","⁢":"it","⁡":"af","‏":"rlm","​":"ZeroWidthSpace","⁠":"NoBreak","̑":"DownBreve","⃛":"tdot","⃜":"DotDot","\t":"Tab","\n":"NewLine"," ":"puncsp"," ":"MediumSpace"," ":"thinsp"," ":"hairsp"," ":"emsp13"," ":"ensp"," ":"emsp14"," ":"emsp"," ":"numsp"," ":"nbsp","  ":"ThickSpace","‾":"oline",_:"lowbar","‐":"dash","–":"ndash","—":"mdash","―":"horbar",",":"comma",";":"semi","⁏":"bsemi",":":"colon","⩴":"Colone","!":"excl","¡":"iexcl","?":"quest","¿":"iquest",".":"period","‥":"nldr","…":"mldr","·":"middot","'":"apos","‘":"lsquo","’":"rsquo","‚":"sbquo","‹":"lsaquo","›":"rsaquo",'"':"quot","“":"ldquo","”":"rdquo","„":"bdquo","«":"laquo","»":"raquo","(":"lpar",")":"rpar","[":"lsqb","]":"rsqb","{":"lcub","}":"rcub","⌈":"lceil","⌉":"rceil","⌊":"lfloor","⌋":"rfloor","⦅":"lopar","⦆":"ropar","⦋":"lbrke","⦌":"rbrke","⦍":"lbrkslu","⦎":"rbrksld","⦏":"lbrksld","⦐":"rbrkslu","⦑":"langd","⦒":"rangd","⦓":"lparlt","⦔":"rpargt","⦕":"gtlPar","⦖":"ltrPar","⟦":"lobrk","⟧":"robrk","⟨":"lang","⟩":"rang","⟪":"Lang","⟫":"Rang","⟬":"loang","⟭":"roang","❲":"lbbrk","❳":"rbbrk","‖":"Vert","§":"sect","¶":"para","@":"commat","*":"ast","/":"sol",undefined:null,"&":"amp","#":"num","%":"percnt","‰":"permil","‱":"pertenk","†":"dagger","‡":"Dagger","•":"bull","⁃":"hybull","′":"prime","″":"Prime","‴":"tprime","⁗":"qprime","‵":"bprime","⁁":"caret","`":"grave","´":"acute","˜":"tilde","^":"Hat","¯":"macr","˘":"breve","˙":"dot","¨":"die","˚":"ring","˝":"dblac","¸":"cedil","˛":"ogon","ˆ":"circ","ˇ":"caron","°":"deg","©":"copy","®":"reg","℗":"copysr","℘":"wp","℞":"rx","℧":"mho","℩":"iiota","←":"larr","↚":"nlarr","→":"rarr","↛":"nrarr","↑":"uarr","↓":"darr","↔":"harr","↮":"nharr","↕":"varr","↖":"nwarr","↗":"nearr","↘":"searr","↙":"swarr","↝":"rarrw","↝̸":"nrarrw","↞":"Larr","↟":"Uarr","↠":"Rarr","↡":"Darr","↢":"larrtl","↣":"rarrtl","↤":"mapstoleft","↥":"mapstoup","↦":"map","↧":"mapstodown","↩":"larrhk","↪":"rarrhk","↫":"larrlp","↬":"rarrlp","↭":"harrw","↰":"lsh","↱":"rsh","↲":"ldsh","↳":"rdsh","↵":"crarr","↶":"cularr","↷":"curarr","↺":"olarr","↻":"orarr","↼":"lharu","↽":"lhard","↾":"uharr","↿":"uharl","⇀":"rharu","⇁":"rhard","⇂":"dharr","⇃":"dharl","⇄":"rlarr","⇅":"udarr","⇆":"lrarr","⇇":"llarr","⇈":"uuarr","⇉":"rrarr","⇊":"ddarr","⇋":"lrhar","⇌":"rlhar","⇐":"lArr","⇍":"nlArr","⇑":"uArr","⇒":"rArr","⇏":"nrArr","⇓":"dArr","⇔":"iff","⇎":"nhArr","⇕":"vArr","⇖":"nwArr","⇗":"neArr","⇘":"seArr","⇙":"swArr","⇚":"lAarr","⇛":"rAarr","⇝":"zigrarr","⇤":"larrb","⇥":"rarrb","⇵":"duarr","⇽":"loarr","⇾":"roarr","⇿":"hoarr","∀":"forall","∁":"comp","∂":"part","∂̸":"npart","∃":"exist","∄":"nexist","∅":"empty","∇":"Del","∈":"in","∉":"notin","∋":"ni","∌":"notni","϶":"bepsi","∏":"prod","∐":"coprod","∑":"sum","+":"plus","±":"pm","÷":"div","×":"times","<":"lt","≮":"nlt","<⃒":"nvlt","=":"equals","≠":"ne","=⃥":"bne","⩵":"Equal",">":"gt","≯":"ngt",">⃒":"nvgt","¬":"not","|":"vert","¦":"brvbar","−":"minus","∓":"mp","∔":"plusdo","⁄":"frasl","∖":"setmn","∗":"lowast","∘":"compfn","√":"Sqrt","∝":"prop","∞":"infin","∟":"angrt","∠":"ang","∠⃒":"nang","∡":"angmsd","∢":"angsph","∣":"mid","∤":"nmid","∥":"par","∦":"npar","∧":"and","∨":"or","∩":"cap","∩︀":"caps","∪":"cup","∪︀":"cups","∫":"int","∬":"Int","∭":"tint","⨌":"qint","∮":"oint","∯":"Conint","∰":"Cconint","∱":"cwint","∲":"cwconint","∳":"awconint","∴":"there4","∵":"becaus","∶":"ratio","∷":"Colon","∸":"minusd","∺":"mDDot","∻":"homtht","∼":"sim","≁":"nsim","∼⃒":"nvsim","∽":"bsim","∽̱":"race","∾":"ac","∾̳":"acE","∿":"acd","≀":"wr","≂":"esim","≂̸":"nesim","≃":"sime","≄":"nsime","≅":"cong","≇":"ncong","≆":"simne","≈":"ap","≉":"nap","≊":"ape","≋":"apid","≋̸":"napid","≌":"bcong","≍":"CupCap","≭":"NotCupCap","≍⃒":"nvap","≎":"bump","≎̸":"nbump","≏":"bumpe","≏̸":"nbumpe","≐":"doteq","≐̸":"nedot","≑":"eDot","≒":"efDot","≓":"erDot","≔":"colone","≕":"ecolon","≖":"ecir","≗":"cire","≙":"wedgeq","≚":"veeeq","≜":"trie","≟":"equest","≡":"equiv","≢":"nequiv","≡⃥":"bnequiv","≤":"le","≰":"nle","≤⃒":"nvle","≥":"ge","≱":"nge","≥⃒":"nvge","≦":"lE","≦̸":"nlE","≧":"gE","≧̸":"ngE","≨︀":"lvnE","≨":"lnE","≩":"gnE","≩︀":"gvnE","≪":"ll","≪̸":"nLtv","≪⃒":"nLt","≫":"gg","≫̸":"nGtv","≫⃒":"nGt","≬":"twixt","≲":"lsim","≴":"nlsim","≳":"gsim","≵":"ngsim","≶":"lg","≸":"ntlg","≷":"gl","≹":"ntgl","≺":"pr","⊀":"npr","≻":"sc","⊁":"nsc","≼":"prcue","⋠":"nprcue","≽":"sccue","⋡":"nsccue","≾":"prsim","≿":"scsim","≿̸":"NotSucceedsTilde","⊂":"sub","⊄":"nsub","⊂⃒":"vnsub","⊃":"sup","⊅":"nsup","⊃⃒":"vnsup","⊆":"sube","⊈":"nsube","⊇":"supe","⊉":"nsupe","⊊︀":"vsubne","⊊":"subne","⊋︀":"vsupne","⊋":"supne","⊍":"cupdot","⊎":"uplus","⊏":"sqsub","⊏̸":"NotSquareSubset","⊐":"sqsup","⊐̸":"NotSquareSuperset","⊑":"sqsube","⋢":"nsqsube","⊒":"sqsupe","⋣":"nsqsupe","⊓":"sqcap","⊓︀":"sqcaps","⊔":"sqcup","⊔︀":"sqcups","⊕":"oplus","⊖":"ominus","⊗":"otimes","⊘":"osol","⊙":"odot","⊚":"ocir","⊛":"oast","⊝":"odash","⊞":"plusb","⊟":"minusb","⊠":"timesb","⊡":"sdotb","⊢":"vdash","⊬":"nvdash","⊣":"dashv","⊤":"top","⊥":"bot","⊧":"models","⊨":"vDash","⊭":"nvDash","⊩":"Vdash","⊮":"nVdash","⊪":"Vvdash","⊫":"VDash","⊯":"nVDash","⊰":"prurel","⊲":"vltri","⋪":"nltri","⊳":"vrtri","⋫":"nrtri","⊴":"ltrie","⋬":"nltrie","⊴⃒":"nvltrie","⊵":"rtrie","⋭":"nrtrie","⊵⃒":"nvrtrie","⊶":"origof","⊷":"imof","⊸":"mumap","⊹":"hercon","⊺":"intcal","⊻":"veebar","⊽":"barvee","⊾":"angrtvb","⊿":"lrtri","⋀":"Wedge","⋁":"Vee","⋂":"xcap","⋃":"xcup","⋄":"diam","⋅":"sdot","⋆":"Star","⋇":"divonx","⋈":"bowtie","⋉":"ltimes","⋊":"rtimes","⋋":"lthree","⋌":"rthree","⋍":"bsime","⋎":"cuvee","⋏":"cuwed","⋐":"Sub","⋑":"Sup","⋒":"Cap","⋓":"Cup","⋔":"fork","⋕":"epar","⋖":"ltdot","⋗":"gtdot","⋘":"Ll","⋘̸":"nLl","⋙":"Gg","⋙̸":"nGg","⋚︀":"lesg","⋚":"leg","⋛":"gel","⋛︀":"gesl","⋞":"cuepr","⋟":"cuesc","⋦":"lnsim","⋧":"gnsim","⋨":"prnsim","⋩":"scnsim","⋮":"vellip","⋯":"ctdot","⋰":"utdot","⋱":"dtdot","⋲":"disin","⋳":"isinsv","⋴":"isins","⋵":"isindot","⋵̸":"notindot","⋶":"notinvc","⋷":"notinvb","⋹":"isinE","⋹̸":"notinE","⋺":"nisd","⋻":"xnis","⋼":"nis","⋽":"notnivc","⋾":"notnivb","⌅":"barwed","⌆":"Barwed","⌌":"drcrop","⌍":"dlcrop","⌎":"urcrop","⌏":"ulcrop","⌐":"bnot","⌒":"profline","⌓":"profsurf","⌕":"telrec","⌖":"target","⌜":"ulcorn","⌝":"urcorn","⌞":"dlcorn","⌟":"drcorn","⌢":"frown","⌣":"smile","⌭":"cylcty","⌮":"profalar","⌶":"topbot","⌽":"ovbar","⌿":"solbar","⍼":"angzarr","⎰":"lmoust","⎱":"rmoust","⎴":"tbrk","⎵":"bbrk","⎶":"bbrktbrk","⏜":"OverParenthesis","⏝":"UnderParenthesis","⏞":"OverBrace","⏟":"UnderBrace","⏢":"trpezium","⏧":"elinters","␣":"blank","─":"boxh","│":"boxv","┌":"boxdr","┐":"boxdl","└":"boxur","┘":"boxul","├":"boxvr","┤":"boxvl","┬":"boxhd","┴":"boxhu","┼":"boxvh","═":"boxH","║":"boxV","╒":"boxdR","╓":"boxDr","╔":"boxDR","╕":"boxdL","╖":"boxDl","╗":"boxDL","╘":"boxuR","╙":"boxUr","╚":"boxUR","╛":"boxuL","╜":"boxUl","╝":"boxUL","╞":"boxvR","╟":"boxVr","╠":"boxVR","╡":"boxvL","╢":"boxVl","╣":"boxVL","╤":"boxHd","╥":"boxhD","╦":"boxHD","╧":"boxHu","╨":"boxhU","╩":"boxHU","╪":"boxvH","╫":"boxVh","╬":"boxVH","▀":"uhblk","▄":"lhblk","█":"block","░":"blk14","▒":"blk12","▓":"blk34","□":"squ","▪":"squf","▫":"EmptyVerySmallSquare","▭":"rect","▮":"marker","▱":"fltns","△":"xutri","▴":"utrif","▵":"utri","▸":"rtrif","▹":"rtri","▽":"xdtri","▾":"dtrif","▿":"dtri","◂":"ltrif","◃":"ltri","◊":"loz","○":"cir","◬":"tridot","◯":"xcirc","◸":"ultri","◹":"urtri","◺":"lltri","◻":"EmptySmallSquare","◼":"FilledSmallSquare","★":"starf","☆":"star","☎":"phone","♀":"female","♂":"male","♠":"spades","♣":"clubs","♥":"hearts","♦":"diams","♪":"sung","✓":"check","✗":"cross","✠":"malt","✶":"sext","❘":"VerticalSeparator","⟈":"bsolhsub","⟉":"suphsol","⟵":"xlarr","⟶":"xrarr","⟷":"xharr","⟸":"xlArr","⟹":"xrArr","⟺":"xhArr","⟼":"xmap","⟿":"dzigrarr","⤂":"nvlArr","⤃":"nvrArr","⤄":"nvHarr","⤅":"Map","⤌":"lbarr","⤍":"rbarr","⤎":"lBarr","⤏":"rBarr","⤐":"RBarr","⤑":"DDotrahd","⤒":"UpArrowBar","⤓":"DownArrowBar","⤖":"Rarrtl","⤙":"latail","⤚":"ratail","⤛":"lAtail","⤜":"rAtail","⤝":"larrfs","⤞":"rarrfs","⤟":"larrbfs","⤠":"rarrbfs","⤣":"nwarhk","⤤":"nearhk","⤥":"searhk","⤦":"swarhk","⤧":"nwnear","⤨":"toea","⤩":"tosa","⤪":"swnwar","⤳":"rarrc","⤳̸":"nrarrc","⤵":"cudarrr","⤶":"ldca","⤷":"rdca","⤸":"cudarrl","⤹":"larrpl","⤼":"curarrm","⤽":"cularrp","⥅":"rarrpl","⥈":"harrcir","⥉":"Uarrocir","⥊":"lurdshar","⥋":"ldrushar","⥎":"LeftRightVector","⥏":"RightUpDownVector","⥐":"DownLeftRightVector","⥑":"LeftUpDownVector","⥒":"LeftVectorBar","⥓":"RightVectorBar","⥔":"RightUpVectorBar","⥕":"RightDownVectorBar","⥖":"DownLeftVectorBar","⥗":"DownRightVectorBar","⥘":"LeftUpVectorBar","⥙":"LeftDownVectorBar","⥚":"LeftTeeVector","⥛":"RightTeeVector","⥜":"RightUpTeeVector","⥝":"RightDownTeeVector","⥞":"DownLeftTeeVector","⥟":"DownRightTeeVector","⥠":"LeftUpTeeVector","⥡":"LeftDownTeeVector","⥢":"lHar","⥣":"uHar","⥤":"rHar","⥥":"dHar","⥦":"luruhar","⥧":"ldrdhar","⥨":"ruluhar","⥩":"rdldhar","⥪":"lharul","⥫":"llhard","⥬":"rharul","⥭":"lrhard","⥮":"udhar","⥯":"duhar","⥰":"RoundImplies","⥱":"erarr","⥲":"simrarr","⥳":"larrsim","⥴":"rarrsim","⥵":"rarrap","⥶":"ltlarr","⥸":"gtrarr","⥹":"subrarr","⥻":"suplarr","⥼":"lfisht","⥽":"rfisht","⥾":"ufisht","⥿":"dfisht","⦚":"vzigzag","⦜":"vangrt","⦝":"angrtvbd","⦤":"ange","⦥":"range","⦦":"dwangle","⦧":"uwangle","⦨":"angmsdaa","⦩":"angmsdab","⦪":"angmsdac","⦫":"angmsdad","⦬":"angmsdae","⦭":"angmsdaf","⦮":"angmsdag","⦯":"angmsdah","⦰":"bemptyv","⦱":"demptyv","⦲":"cemptyv","⦳":"raemptyv","⦴":"laemptyv","⦵":"ohbar","⦶":"omid","⦷":"opar","⦹":"operp","⦻":"olcross","⦼":"odsold","⦾":"olcir","⦿":"ofcir","⧀":"olt","⧁":"ogt","⧂":"cirscir","⧃":"cirE","⧄":"solb","⧅":"bsolb","⧉":"boxbox","⧍":"trisb","⧎":"rtriltri","⧏":"LeftTriangleBar","⧏̸":"NotLeftTriangleBar","⧐":"RightTriangleBar","⧐̸":"NotRightTriangleBar","⧜":"iinfin","⧝":"infintie","⧞":"nvinfin","⧣":"eparsl","⧤":"smeparsl","⧥":"eqvparsl","⧫":"lozf","⧴":"RuleDelayed","⧶":"dsol","⨀":"xodot","⨁":"xoplus","⨂":"xotime","⨄":"xuplus","⨆":"xsqcup","⨍":"fpartint","⨐":"cirfnint","⨑":"awint","⨒":"rppolint","⨓":"scpolint","⨔":"npolint","⨕":"pointint","⨖":"quatint","⨗":"intlarhk","⨢":"pluscir","⨣":"plusacir","⨤":"simplus","⨥":"plusdu","⨦":"plussim","⨧":"plustwo","⨩":"mcomma","⨪":"minusdu","⨭":"loplus","⨮":"roplus","⨯":"Cross","⨰":"timesd","⨱":"timesbar","⨳":"smashp","⨴":"lotimes","⨵":"rotimes","⨶":"otimesas","⨷":"Otimes","⨸":"odiv","⨹":"triplus","⨺":"triminus","⨻":"tritime","⨼":"iprod","⨿":"amalg","⩀":"capdot","⩂":"ncup","⩃":"ncap","⩄":"capand","⩅":"cupor","⩆":"cupcap","⩇":"capcup","⩈":"cupbrcap","⩉":"capbrcup","⩊":"cupcup","⩋":"capcap","⩌":"ccups","⩍":"ccaps","⩐":"ccupssm","⩓":"And","⩔":"Or","⩕":"andand","⩖":"oror","⩗":"orslope","⩘":"andslope","⩚":"andv","⩛":"orv","⩜":"andd","⩝":"ord","⩟":"wedbar","⩦":"sdote","⩪":"simdot","⩭":"congdot","⩭̸":"ncongdot","⩮":"easter","⩯":"apacir","⩰":"apE","⩰̸":"napE","⩱":"eplus","⩲":"pluse","⩳":"Esim","⩷":"eDDot","⩸":"equivDD","⩹":"ltcir","⩺":"gtcir","⩻":"ltquest","⩼":"gtquest","⩽":"les","⩽̸":"nles","⩾":"ges","⩾̸":"nges","⩿":"lesdot","⪀":"gesdot","⪁":"lesdoto","⪂":"gesdoto","⪃":"lesdotor","⪄":"gesdotol","⪅":"lap","⪆":"gap","⪇":"lne","⪈":"gne","⪉":"lnap","⪊":"gnap","⪋":"lEg","⪌":"gEl","⪍":"lsime","⪎":"gsime","⪏":"lsimg","⪐":"gsiml","⪑":"lgE","⪒":"glE","⪓":"lesges","⪔":"gesles","⪕":"els","⪖":"egs","⪗":"elsdot","⪘":"egsdot","⪙":"el","⪚":"eg","⪝":"siml","⪞":"simg","⪟":"simlE","⪠":"simgE","⪡":"LessLess","⪡̸":"NotNestedLessLess","⪢":"GreaterGreater","⪢̸":"NotNestedGreaterGreater","⪤":"glj","⪥":"gla","⪦":"ltcc","⪧":"gtcc","⪨":"lescc","⪩":"gescc","⪪":"smt","⪫":"lat","⪬":"smte","⪬︀":"smtes","⪭":"late","⪭︀":"lates","⪮":"bumpE","⪯":"pre","⪯̸":"npre","⪰":"sce","⪰̸":"nsce","⪳":"prE","⪴":"scE","⪵":"prnE","⪶":"scnE","⪷":"prap","⪸":"scap","⪹":"prnap","⪺":"scnap","⪻":"Pr","⪼":"Sc","⪽":"subdot","⪾":"supdot","⪿":"subplus","⫀":"supplus","⫁":"submult","⫂":"supmult","⫃":"subedot","⫄":"supedot","⫅":"subE","⫅̸":"nsubE","⫆":"supE","⫆̸":"nsupE","⫇":"subsim","⫈":"supsim","⫋︀":"vsubnE","⫋":"subnE","⫌︀":"vsupnE","⫌":"supnE","⫏":"csub","⫐":"csup","⫑":"csube","⫒":"csupe","⫓":"subsup","⫔":"supsub","⫕":"subsub","⫖":"supsup","⫗":"suphsub","⫘":"supdsub","⫙":"forkv","⫚":"topfork","⫛":"mlcp","⫤":"Dashv","⫦":"Vdashl","⫧":"Barv","⫨":"vBar","⫩":"vBarv","⫫":"Vbar","⫬":"Not","⫭":"bNot","⫮":"rnmid","⫯":"cirmid","⫰":"midcir","⫱":"topcir","⫲":"nhpar","⫳":"parsim","⫽":"parsl","⫽⃥":"nparsl","♭":"flat","♮":"natur","♯":"sharp","¤":"curren","¢":"cent",$:"dollar","£":"pound","¥":"yen","€":"euro","¹":"sup1","½":"half","⅓":"frac13","¼":"frac14","⅕":"frac15","⅙":"frac16","⅛":"frac18","²":"sup2","⅔":"frac23","⅖":"frac25","³":"sup3","¾":"frac34","⅗":"frac35","⅜":"frac38","⅘":"frac45","⅚":"frac56","⅝":"frac58","⅞":"frac78","𝒶":"ascr","𝕒":"aopf","𝔞":"afr","𝔸":"Aopf","𝔄":"Afr","𝒜":"Ascr","ª":"ordf","á":"aacute","Á":"Aacute","à":"agrave","À":"Agrave","ă":"abreve","Ă":"Abreve","â":"acirc","Â":"Acirc","å":"aring","Å":"angst","ä":"auml","Ä":"Auml","ã":"atilde","Ã":"Atilde","ą":"aogon","Ą":"Aogon","ā":"amacr","Ā":"Amacr","æ":"aelig","Æ":"AElig","𝒷":"bscr","𝕓":"bopf","𝔟":"bfr","𝔹":"Bopf","ℬ":"Bscr","𝔅":"Bfr","𝔠":"cfr","𝒸":"cscr","𝕔":"copf","ℭ":"Cfr","𝒞":"Cscr","ℂ":"Copf","ć":"cacute","Ć":"Cacute","ĉ":"ccirc","Ĉ":"Ccirc","č":"ccaron","Č":"Ccaron","ċ":"cdot","Ċ":"Cdot","ç":"ccedil","Ç":"Ccedil","℅":"incare","𝔡":"dfr","ⅆ":"dd","𝕕":"dopf","𝒹":"dscr","𝒟":"Dscr","𝔇":"Dfr","ⅅ":"DD","𝔻":"Dopf","ď":"dcaron","Ď":"Dcaron","đ":"dstrok","Đ":"Dstrok","ð":"eth","Ð":"ETH","ⅇ":"ee","ℯ":"escr","𝔢":"efr","𝕖":"eopf","ℰ":"Escr","𝔈":"Efr","𝔼":"Eopf","é":"eacute","É":"Eacute","è":"egrave","È":"Egrave","ê":"ecirc","Ê":"Ecirc","ě":"ecaron","Ě":"Ecaron","ë":"euml","Ë":"Euml","ė":"edot","Ė":"Edot","ę":"eogon","Ę":"Eogon","ē":"emacr","Ē":"Emacr","𝔣":"ffr","𝕗":"fopf","𝒻":"fscr","𝔉":"Ffr","𝔽":"Fopf","ℱ":"Fscr","ff":"fflig","ffi":"ffilig","ffl":"ffllig","fi":"filig",fj:"fjlig","fl":"fllig","ƒ":"fnof","ℊ":"gscr","𝕘":"gopf","𝔤":"gfr","𝒢":"Gscr","𝔾":"Gopf","𝔊":"Gfr","ǵ":"gacute","ğ":"gbreve","Ğ":"Gbreve","ĝ":"gcirc","Ĝ":"Gcirc","ġ":"gdot","Ġ":"Gdot","Ģ":"Gcedil","𝔥":"hfr","ℎ":"planckh","𝒽":"hscr","𝕙":"hopf","ℋ":"Hscr","ℌ":"Hfr","ℍ":"Hopf","ĥ":"hcirc","Ĥ":"Hcirc","ℏ":"hbar","ħ":"hstrok","Ħ":"Hstrok","𝕚":"iopf","𝔦":"ifr","𝒾":"iscr","ⅈ":"ii","𝕀":"Iopf","ℐ":"Iscr","ℑ":"Im","í":"iacute","Í":"Iacute","ì":"igrave","Ì":"Igrave","î":"icirc","Î":"Icirc","ï":"iuml","Ï":"Iuml","ĩ":"itilde","Ĩ":"Itilde","İ":"Idot","į":"iogon","Į":"Iogon","ī":"imacr","Ī":"Imacr","ij":"ijlig","IJ":"IJlig","ı":"imath","𝒿":"jscr","𝕛":"jopf","𝔧":"jfr","𝒥":"Jscr","𝔍":"Jfr","𝕁":"Jopf","ĵ":"jcirc","Ĵ":"Jcirc","ȷ":"jmath","𝕜":"kopf","𝓀":"kscr","𝔨":"kfr","𝒦":"Kscr","𝕂":"Kopf","𝔎":"Kfr","ķ":"kcedil","Ķ":"Kcedil","𝔩":"lfr","𝓁":"lscr","ℓ":"ell","𝕝":"lopf","ℒ":"Lscr","𝔏":"Lfr","𝕃":"Lopf","ĺ":"lacute","Ĺ":"Lacute","ľ":"lcaron","Ľ":"Lcaron","ļ":"lcedil","Ļ":"Lcedil","ł":"lstrok","Ł":"Lstrok","ŀ":"lmidot","Ŀ":"Lmidot","𝔪":"mfr","𝕞":"mopf","𝓂":"mscr","𝔐":"Mfr","𝕄":"Mopf","ℳ":"Mscr","𝔫":"nfr","𝕟":"nopf","𝓃":"nscr","ℕ":"Nopf","𝒩":"Nscr","𝔑":"Nfr","ń":"nacute","Ń":"Nacute","ň":"ncaron","Ň":"Ncaron","ñ":"ntilde","Ñ":"Ntilde","ņ":"ncedil","Ņ":"Ncedil","№":"numero","ŋ":"eng","Ŋ":"ENG","𝕠":"oopf","𝔬":"ofr","ℴ":"oscr","𝒪":"Oscr","𝔒":"Ofr","𝕆":"Oopf","º":"ordm","ó":"oacute","Ó":"Oacute","ò":"ograve","Ò":"Ograve","ô":"ocirc","Ô":"Ocirc","ö":"ouml","Ö":"Ouml","ő":"odblac","Ő":"Odblac","õ":"otilde","Õ":"Otilde","ø":"oslash","Ø":"Oslash","ō":"omacr","Ō":"Omacr","œ":"oelig","Œ":"OElig","𝔭":"pfr","𝓅":"pscr","𝕡":"popf","ℙ":"Popf","𝔓":"Pfr","𝒫":"Pscr","𝕢":"qopf","𝔮":"qfr","𝓆":"qscr","𝒬":"Qscr","𝔔":"Qfr","ℚ":"Qopf","ĸ":"kgreen","𝔯":"rfr","𝕣":"ropf","𝓇":"rscr","ℛ":"Rscr","ℜ":"Re","ℝ":"Ropf","ŕ":"racute","Ŕ":"Racute","ř":"rcaron","Ř":"Rcaron","ŗ":"rcedil","Ŗ":"Rcedil","𝕤":"sopf","𝓈":"sscr","𝔰":"sfr","𝕊":"Sopf","𝔖":"Sfr","𝒮":"Sscr","Ⓢ":"oS","ś":"sacute","Ś":"Sacute","ŝ":"scirc","Ŝ":"Scirc","š":"scaron","Š":"Scaron","ş":"scedil","Ş":"Scedil","ß":"szlig","𝔱":"tfr","𝓉":"tscr","𝕥":"topf","𝒯":"Tscr","𝔗":"Tfr","𝕋":"Topf","ť":"tcaron","Ť":"Tcaron","ţ":"tcedil","Ţ":"Tcedil","™":"trade","ŧ":"tstrok","Ŧ":"Tstrok","𝓊":"uscr","𝕦":"uopf","𝔲":"ufr","𝕌":"Uopf","𝔘":"Ufr","𝒰":"Uscr","ú":"uacute","Ú":"Uacute","ù":"ugrave","Ù":"Ugrave","ŭ":"ubreve","Ŭ":"Ubreve","û":"ucirc","Û":"Ucirc","ů":"uring","Ů":"Uring","ü":"uuml","Ü":"Uuml","ű":"udblac","Ű":"Udblac","ũ":"utilde","Ũ":"Utilde","ų":"uogon","Ų":"Uogon","ū":"umacr","Ū":"Umacr","𝔳":"vfr","𝕧":"vopf","𝓋":"vscr","𝔙":"Vfr","𝕍":"Vopf","𝒱":"Vscr","𝕨":"wopf","𝓌":"wscr","𝔴":"wfr","𝒲":"Wscr","𝕎":"Wopf","𝔚":"Wfr","ŵ":"wcirc","Ŵ":"Wcirc","𝔵":"xfr","𝓍":"xscr","𝕩":"xopf","𝕏":"Xopf","𝔛":"Xfr","𝒳":"Xscr","𝔶":"yfr","𝓎":"yscr","𝕪":"yopf","𝒴":"Yscr","𝔜":"Yfr","𝕐":"Yopf","ý":"yacute","Ý":"Yacute","ŷ":"ycirc","Ŷ":"Ycirc","ÿ":"yuml","Ÿ":"Yuml","𝓏":"zscr","𝔷":"zfr","𝕫":"zopf","ℨ":"Zfr","ℤ":"Zopf","𝒵":"Zscr","ź":"zacute","Ź":"Zacute","ž":"zcaron","Ž":"Zcaron","ż":"zdot","Ż":"Zdot","Ƶ":"imped","þ":"thorn","Þ":"THORN","ʼn":"napos","α":"alpha","Α":"Alpha","β":"beta","Β":"Beta","γ":"gamma","Γ":"Gamma","δ":"delta","Δ":"Delta","ε":"epsi","ϵ":"epsiv","Ε":"Epsilon","ϝ":"gammad","Ϝ":"Gammad","ζ":"zeta","Ζ":"Zeta","η":"eta","Η":"Eta","θ":"theta","ϑ":"thetav","Θ":"Theta","ι":"iota","Ι":"Iota","κ":"kappa","ϰ":"kappav","Κ":"Kappa","λ":"lambda","Λ":"Lambda","μ":"mu","µ":"micro","Μ":"Mu","ν":"nu","Ν":"Nu","ξ":"xi","Ξ":"Xi","ο":"omicron","Ο":"Omicron","π":"pi","ϖ":"piv","Π":"Pi","ρ":"rho","ϱ":"rhov","Ρ":"Rho","σ":"sigma","Σ":"Sigma","ς":"sigmaf","τ":"tau","Τ":"Tau","υ":"upsi","Υ":"Upsilon","ϒ":"Upsi","φ":"phi","ϕ":"phiv","Φ":"Phi","χ":"chi","Χ":"Chi","ψ":"psi","Ψ":"Psi","ω":"omega","Ω":"ohm","а":"acy","А":"Acy","б":"bcy","Б":"Bcy","в":"vcy","В":"Vcy","г":"gcy","Г":"Gcy","ѓ":"gjcy","Ѓ":"GJcy","д":"dcy","Д":"Dcy","ђ":"djcy","Ђ":"DJcy","е":"iecy","Е":"IEcy","ё":"iocy","Ё":"IOcy","є":"jukcy","Є":"Jukcy","ж":"zhcy","Ж":"ZHcy","з":"zcy","З":"Zcy","ѕ":"dscy","Ѕ":"DScy","и":"icy","И":"Icy","і":"iukcy","І":"Iukcy","ї":"yicy","Ї":"YIcy","й":"jcy","Й":"Jcy","ј":"jsercy","Ј":"Jsercy","к":"kcy","К":"Kcy","ќ":"kjcy","Ќ":"KJcy","л":"lcy","Л":"Lcy","љ":"ljcy","Љ":"LJcy","м":"mcy","М":"Mcy","н":"ncy","Н":"Ncy","њ":"njcy","Њ":"NJcy","о":"ocy","О":"Ocy","п":"pcy","П":"Pcy","р":"rcy","Р":"Rcy","с":"scy","С":"Scy","т":"tcy","Т":"Tcy","ћ":"tshcy","Ћ":"TSHcy","у":"ucy","У":"Ucy","ў":"ubrcy","Ў":"Ubrcy","ф":"fcy","Ф":"Fcy","х":"khcy","Х":"KHcy","ц":"tscy","Ц":"TScy","ч":"chcy","Ч":"CHcy","џ":"dzcy","Џ":"DZcy","ш":"shcy","Ш":"SHcy","щ":"shchcy","Щ":"SHCHcy","ъ":"hardcy","Ъ":"HARDcy","ы":"ycy","Ы":"Ycy","ь":"softcy","Ь":"SOFTcy","э":"ecy","Э":"Ecy","ю":"yucy","Ю":"YUcy","я":"yacy","Я":"YAcy","ℵ":"aleph","ℶ":"beth","ℷ":"gimel","ℸ":"daleth"},p=/["&'<>`]/g,f={'"':""","&":"&","'":"'","<":"<",">":">","`":"`"},m=/&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/,g=/[\0-\x08\x0B\x0E-\x1F\x7F-\x9F\uFDD0-\uFDEF\uFFFE\uFFFF]|[\uD83F\uD87F\uD8BF\uD8FF\uD93F\uD97F\uD9BF\uD9FF\uDA3F\uDA7F\uDABF\uDAFF\uDB3F\uDB7F\uDBBF\uDBFF][\uDFFE\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,b=/&(CounterClockwiseContourIntegral|DoubleLongLeftRightArrow|ClockwiseContourIntegral|NotNestedGreaterGreater|NotSquareSupersetEqual|DiacriticalDoubleAcute|NotRightTriangleEqual|NotSucceedsSlantEqual|NotPrecedesSlantEqual|CloseCurlyDoubleQuote|NegativeVeryThinSpace|DoubleContourIntegral|FilledVerySmallSquare|CapitalDifferentialD|OpenCurlyDoubleQuote|EmptyVerySmallSquare|NestedGreaterGreater|DoubleLongRightArrow|NotLeftTriangleEqual|NotGreaterSlantEqual|ReverseUpEquilibrium|DoubleLeftRightArrow|NotSquareSubsetEqual|NotDoubleVerticalBar|RightArrowLeftArrow|NotGreaterFullEqual|NotRightTriangleBar|SquareSupersetEqual|DownLeftRightVector|DoubleLongLeftArrow|leftrightsquigarrow|LeftArrowRightArrow|NegativeMediumSpace|blacktriangleright|RightDownVectorBar|PrecedesSlantEqual|RightDoubleBracket|SucceedsSlantEqual|NotLeftTriangleBar|RightTriangleEqual|SquareIntersection|RightDownTeeVector|ReverseEquilibrium|NegativeThickSpace|longleftrightarrow|Longleftrightarrow|LongLeftRightArrow|DownRightTeeVector|DownRightVectorBar|GreaterSlantEqual|SquareSubsetEqual|LeftDownVectorBar|LeftDoubleBracket|VerticalSeparator|rightleftharpoons|NotGreaterGreater|NotSquareSuperset|blacktriangleleft|blacktriangledown|NegativeThinSpace|LeftDownTeeVector|NotLessSlantEqual|leftrightharpoons|DoubleUpDownArrow|DoubleVerticalBar|LeftTriangleEqual|FilledSmallSquare|twoheadrightarrow|NotNestedLessLess|DownLeftTeeVector|DownLeftVectorBar|RightAngleBracket|NotTildeFullEqual|NotReverseElement|RightUpDownVector|DiacriticalTilde|NotSucceedsTilde|circlearrowright|NotPrecedesEqual|rightharpoondown|DoubleRightArrow|NotSucceedsEqual|NonBreakingSpace|NotRightTriangle|LessEqualGreater|RightUpTeeVector|LeftAngleBracket|GreaterFullEqual|DownArrowUpArrow|RightUpVectorBar|twoheadleftarrow|GreaterEqualLess|downharpoonright|RightTriangleBar|ntrianglerighteq|NotSupersetEqual|LeftUpDownVector|DiacriticalAcute|rightrightarrows|vartriangleright|UpArrowDownArrow|DiacriticalGrave|UnderParenthesis|EmptySmallSquare|LeftUpVectorBar|leftrightarrows|DownRightVector|downharpoonleft|trianglerighteq|ShortRightArrow|OverParenthesis|DoubleLeftArrow|DoubleDownArrow|NotSquareSubset|bigtriangledown|ntrianglelefteq|UpperRightArrow|curvearrowright|vartriangleleft|NotLeftTriangle|nleftrightarrow|LowerRightArrow|NotHumpDownHump|NotGreaterTilde|rightthreetimes|LeftUpTeeVector|NotGreaterEqual|straightepsilon|LeftTriangleBar|rightsquigarrow|ContourIntegral|rightleftarrows|CloseCurlyQuote|RightDownVector|LeftRightVector|nLeftrightarrow|leftharpoondown|circlearrowleft|SquareSuperset|OpenCurlyQuote|hookrightarrow|HorizontalLine|DiacriticalDot|NotLessGreater|ntriangleright|DoubleRightTee|InvisibleComma|InvisibleTimes|LowerLeftArrow|DownLeftVector|NotSubsetEqual|curvearrowleft|trianglelefteq|NotVerticalBar|TildeFullEqual|downdownarrows|NotGreaterLess|RightTeeVector|ZeroWidthSpace|looparrowright|LongRightArrow|doublebarwedge|ShortLeftArrow|ShortDownArrow|RightVectorBar|GreaterGreater|ReverseElement|rightharpoonup|LessSlantEqual|leftthreetimes|upharpoonright|rightarrowtail|LeftDownVector|Longrightarrow|NestedLessLess|UpperLeftArrow|nshortparallel|leftleftarrows|leftrightarrow|Leftrightarrow|LeftRightArrow|longrightarrow|upharpoonleft|RightArrowBar|ApplyFunction|LeftTeeVector|leftarrowtail|NotEqualTilde|varsubsetneqq|varsupsetneqq|RightTeeArrow|SucceedsEqual|SucceedsTilde|LeftVectorBar|SupersetEqual|hookleftarrow|DifferentialD|VerticalTilde|VeryThinSpace|blacktriangle|bigtriangleup|LessFullEqual|divideontimes|leftharpoonup|UpEquilibrium|ntriangleleft|RightTriangle|measuredangle|shortparallel|longleftarrow|Longleftarrow|LongLeftArrow|DoubleLeftTee|Poincareplane|PrecedesEqual|triangleright|DoubleUpArrow|RightUpVector|fallingdotseq|looparrowleft|PrecedesTilde|NotTildeEqual|NotTildeTilde|smallsetminus|Proportional|triangleleft|triangledown|UnderBracket|NotHumpEqual|exponentiale|ExponentialE|NotLessTilde|HilbertSpace|RightCeiling|blacklozenge|varsupsetneq|HumpDownHump|GreaterEqual|VerticalLine|LeftTeeArrow|NotLessEqual|DownTeeArrow|LeftTriangle|varsubsetneq|Intersection|NotCongruent|DownArrowBar|LeftUpVector|LeftArrowBar|risingdotseq|GreaterTilde|RoundImplies|SquareSubset|ShortUpArrow|NotSuperset|quaternions|precnapprox|backepsilon|preccurlyeq|OverBracket|blacksquare|MediumSpace|VerticalBar|circledcirc|circleddash|CircleMinus|CircleTimes|LessGreater|curlyeqprec|curlyeqsucc|diamondsuit|UpDownArrow|Updownarrow|RuleDelayed|Rrightarrow|updownarrow|RightVector|nRightarrow|nrightarrow|eqslantless|LeftCeiling|Equilibrium|SmallCircle|expectation|NotSucceeds|thickapprox|GreaterLess|SquareUnion|NotPrecedes|NotLessLess|straightphi|succnapprox|succcurlyeq|SubsetEqual|sqsupseteq|Proportion|Laplacetrf|ImaginaryI|supsetneqq|NotGreater|gtreqqless|NotElement|ThickSpace|TildeEqual|TildeTilde|Fouriertrf|rmoustache|EqualTilde|eqslantgtr|UnderBrace|LeftVector|UpArrowBar|nLeftarrow|nsubseteqq|subsetneqq|nsupseteqq|nleftarrow|succapprox|lessapprox|UpTeeArrow|upuparrows|curlywedge|lesseqqgtr|varepsilon|varnothing|RightFloor|complement|CirclePlus|sqsubseteq|Lleftarrow|circledast|RightArrow|Rightarrow|rightarrow|lmoustache|Bernoullis|precapprox|mapstoleft|mapstodown|longmapsto|dotsquare|downarrow|DoubleDot|nsubseteq|supsetneq|leftarrow|nsupseteq|subsetneq|ThinSpace|ngeqslant|subseteqq|HumpEqual|NotSubset|triangleq|NotCupCap|lesseqgtr|heartsuit|TripleDot|Leftarrow|Coproduct|Congruent|varpropto|complexes|gvertneqq|LeftArrow|LessTilde|supseteqq|MinusPlus|CircleDot|nleqslant|NotExists|gtreqless|nparallel|UnionPlus|LeftFloor|checkmark|CenterDot|centerdot|Mellintrf|gtrapprox|bigotimes|OverBrace|spadesuit|therefore|pitchfork|rationals|PlusMinus|Backslash|Therefore|DownBreve|backsimeq|backprime|DownArrow|nshortmid|Downarrow|lvertneqq|eqvparsl|imagline|imagpart|infintie|integers|Integral|intercal|LessLess|Uarrocir|intlarhk|sqsupset|angmsdaf|sqsubset|llcorner|vartheta|cupbrcap|lnapprox|Superset|SuchThat|succnsim|succneqq|angmsdag|biguplus|curlyvee|trpezium|Succeeds|NotTilde|bigwedge|angmsdah|angrtvbd|triminus|cwconint|fpartint|lrcorner|smeparsl|subseteq|urcorner|lurdshar|laemptyv|DDotrahd|approxeq|ldrushar|awconint|mapstoup|backcong|shortmid|triangle|geqslant|gesdotol|timesbar|circledR|circledS|setminus|multimap|naturals|scpolint|ncongdot|RightTee|boxminus|gnapprox|boxtimes|andslope|thicksim|angmsdaa|varsigma|cirfnint|rtriltri|angmsdab|rppolint|angmsdac|barwedge|drbkarow|clubsuit|thetasym|bsolhsub|capbrcup|dzigrarr|doteqdot|DotEqual|dotminus|UnderBar|NotEqual|realpart|otimesas|ulcorner|hksearow|hkswarow|parallel|PartialD|elinters|emptyset|plusacir|bbrktbrk|angmsdad|pointint|bigoplus|angmsdae|Precedes|bigsqcup|varkappa|notindot|supseteq|precneqq|precnsim|profalar|profline|profsurf|leqslant|lesdotor|raemptyv|subplus|notnivb|notnivc|subrarr|zigrarr|vzigzag|submult|subedot|Element|between|cirscir|larrbfs|larrsim|lotimes|lbrksld|lbrkslu|lozenge|ldrdhar|dbkarow|bigcirc|epsilon|simrarr|simplus|ltquest|Epsilon|luruhar|gtquest|maltese|npolint|eqcolon|npreceq|bigodot|ddagger|gtrless|bnequiv|harrcir|ddotseq|equivDD|backsim|demptyv|nsqsube|nsqsupe|Upsilon|nsubset|upsilon|minusdu|nsucceq|swarrow|nsupset|coloneq|searrow|boxplus|napprox|natural|asympeq|alefsym|congdot|nearrow|bigstar|diamond|supplus|tritime|LeftTee|nvinfin|triplus|NewLine|nvltrie|nvrtrie|nwarrow|nexists|Diamond|ruluhar|Implies|supmult|angzarr|suplarr|suphsub|questeq|because|digamma|Because|olcross|bemptyv|omicron|Omicron|rotimes|NoBreak|intprod|angrtvb|orderof|uwangle|suphsol|lesdoto|orslope|DownTee|realine|cudarrl|rdldhar|OverBar|supedot|lessdot|supdsub|topfork|succsim|rbrkslu|rbrksld|pertenk|cudarrr|isindot|planckh|lessgtr|pluscir|gesdoto|plussim|plustwo|lesssim|cularrp|rarrsim|Cayleys|notinva|notinvb|notinvc|UpArrow|Uparrow|uparrow|NotLess|dwangle|precsim|Product|curarrm|Cconint|dotplus|rarrbfs|ccupssm|Cedilla|cemptyv|notniva|quatint|frac35|frac38|frac45|frac56|frac58|frac78|tridot|xoplus|gacute|gammad|Gammad|lfisht|lfloor|bigcup|sqsupe|gbreve|Gbreve|lharul|sqsube|sqcups|Gcedil|apacir|llhard|lmidot|Lmidot|lmoust|andand|sqcaps|approx|Abreve|spades|circeq|tprime|divide|topcir|Assign|topbot|gesdot|divonx|xuplus|timesd|gesles|atilde|solbar|SOFTcy|loplus|timesb|lowast|lowbar|dlcorn|dlcrop|softcy|dollar|lparlt|thksim|lrhard|Atilde|lsaquo|smashp|bigvee|thinsp|wreath|bkarow|lsquor|lstrok|Lstrok|lthree|ltimes|ltlarr|DotDot|simdot|ltrPar|weierp|xsqcup|angmsd|sigmav|sigmaf|zeetrf|Zcaron|zcaron|mapsto|vsupne|thetav|cirmid|marker|mcomma|Zacute|vsubnE|there4|gtlPar|vsubne|bottom|gtrarr|SHCHcy|shchcy|midast|midcir|middot|minusb|minusd|gtrdot|bowtie|sfrown|mnplus|models|colone|seswar|Colone|mstpos|searhk|gtrsim|nacute|Nacute|boxbox|telrec|hairsp|Tcedil|nbumpe|scnsim|ncaron|Ncaron|ncedil|Ncedil|hamilt|Scedil|nearhk|hardcy|HARDcy|tcedil|Tcaron|commat|nequiv|nesear|tcaron|target|hearts|nexist|varrho|scedil|Scaron|scaron|hellip|Sacute|sacute|hercon|swnwar|compfn|rtimes|rthree|rsquor|rsaquo|zacute|wedgeq|homtht|barvee|barwed|Barwed|rpargt|horbar|conint|swarhk|roplus|nltrie|hslash|hstrok|Hstrok|rmoust|Conint|bprime|hybull|hyphen|iacute|Iacute|supsup|supsub|supsim|varphi|coprod|brvbar|agrave|Supset|supset|igrave|Igrave|notinE|Agrave|iiiint|iinfin|copysr|wedbar|Verbar|vangrt|becaus|incare|verbar|inodot|bullet|drcorn|intcal|drcrop|cularr|vellip|Utilde|bumpeq|cupcap|dstrok|Dstrok|CupCap|cupcup|cupdot|eacute|Eacute|supdot|iquest|easter|ecaron|Ecaron|ecolon|isinsv|utilde|itilde|Itilde|curarr|succeq|Bumpeq|cacute|ulcrop|nparsl|Cacute|nprcue|egrave|Egrave|nrarrc|nrarrw|subsup|subsub|nrtrie|jsercy|nsccue|Jsercy|kappav|kcedil|Kcedil|subsim|ulcorn|nsimeq|egsdot|veebar|kgreen|capand|elsdot|Subset|subset|curren|aacute|lacute|Lacute|emptyv|ntilde|Ntilde|lagran|lambda|Lambda|capcap|Ugrave|langle|subdot|emsp13|numero|emsp14|nvdash|nvDash|nVdash|nVDash|ugrave|ufisht|nvHarr|larrfs|nvlArr|larrhk|larrlp|larrpl|nvrArr|Udblac|nwarhk|larrtl|nwnear|oacute|Oacute|latail|lAtail|sstarf|lbrace|odblac|Odblac|lbrack|udblac|odsold|eparsl|lcaron|Lcaron|ograve|Ograve|lcedil|Lcedil|Aacute|ssmile|ssetmn|squarf|ldquor|capcup|ominus|cylcty|rharul|eqcirc|dagger|rfloor|rfisht|Dagger|daleth|equals|origof|capdot|equest|dcaron|Dcaron|rdquor|oslash|Oslash|otilde|Otilde|otimes|Otimes|urcrop|Ubreve|ubreve|Yacute|Uacute|uacute|Rcedil|rcedil|urcorn|parsim|Rcaron|Vdashl|rcaron|Tstrok|percnt|period|permil|Exists|yacute|rbrack|rbrace|phmmat|ccaron|Ccaron|planck|ccedil|plankv|tstrok|female|plusdo|plusdu|ffilig|plusmn|ffllig|Ccedil|rAtail|dfisht|bernou|ratail|Rarrtl|rarrtl|angsph|rarrpl|rarrlp|rarrhk|xwedge|xotime|forall|ForAll|Vvdash|vsupnE|preceq|bigcap|frac12|frac13|frac14|primes|rarrfs|prnsim|frac15|Square|frac16|square|lesdot|frac18|frac23|propto|prurel|rarrap|rangle|puncsp|frac25|Racute|qprime|racute|lesges|frac34|abreve|AElig|eqsim|utdot|setmn|urtri|Equal|Uring|seArr|uring|searr|dashv|Dashv|mumap|nabla|iogon|Iogon|sdote|sdotb|scsim|napid|napos|equiv|natur|Acirc|dblac|erarr|nbump|iprod|erDot|ucirc|awint|esdot|angrt|ncong|isinE|scnap|Scirc|scirc|ndash|isins|Ubrcy|nearr|neArr|isinv|nedot|ubrcy|acute|Ycirc|iukcy|Iukcy|xutri|nesim|caret|jcirc|Jcirc|caron|twixt|ddarr|sccue|exist|jmath|sbquo|ngeqq|angst|ccaps|lceil|ngsim|UpTee|delta|Delta|rtrif|nharr|nhArr|nhpar|rtrie|jukcy|Jukcy|kappa|rsquo|Kappa|nlarr|nlArr|TSHcy|rrarr|aogon|Aogon|fflig|xrarr|tshcy|ccirc|nleqq|filig|upsih|nless|dharl|nlsim|fjlig|ropar|nltri|dharr|robrk|roarr|fllig|fltns|roang|rnmid|subnE|subne|lAarr|trisb|Ccirc|acirc|ccups|blank|VDash|forkv|Vdash|langd|cedil|blk12|blk14|laquo|strns|diams|notin|vDash|larrb|blk34|block|disin|uplus|vdash|vBarv|aelig|starf|Wedge|check|xrArr|lates|lbarr|lBarr|notni|lbbrk|bcong|frasl|lbrke|frown|vrtri|vprop|vnsup|gamma|Gamma|wedge|xodot|bdquo|srarr|doteq|ldquo|boxdl|boxdL|gcirc|Gcirc|boxDl|boxDL|boxdr|boxdR|boxDr|TRADE|trade|rlhar|boxDR|vnsub|npart|vltri|rlarr|boxhd|boxhD|nprec|gescc|nrarr|nrArr|boxHd|boxHD|boxhu|boxhU|nrtri|boxHu|clubs|boxHU|times|colon|Colon|gimel|xlArr|Tilde|nsime|tilde|nsmid|nspar|THORN|thorn|xlarr|nsube|nsubE|thkap|xhArr|comma|nsucc|boxul|boxuL|nsupe|nsupE|gneqq|gnsim|boxUl|boxUL|grave|boxur|boxuR|boxUr|boxUR|lescc|angle|bepsi|boxvh|varpi|boxvH|numsp|Theta|gsime|gsiml|theta|boxVh|boxVH|boxvl|gtcir|gtdot|boxvL|boxVl|boxVL|crarr|cross|Cross|nvsim|boxvr|nwarr|nwArr|sqsup|dtdot|Uogon|lhard|lharu|dtrif|ocirc|Ocirc|lhblk|duarr|odash|sqsub|Hacek|sqcup|llarr|duhar|oelig|OElig|ofcir|boxvR|uogon|lltri|boxVr|csube|uuarr|ohbar|csupe|ctdot|olarr|olcir|harrw|oline|sqcap|omacr|Omacr|omega|Omega|boxVR|aleph|lneqq|lnsim|loang|loarr|rharu|lobrk|hcirc|operp|oplus|rhard|Hcirc|orarr|Union|order|ecirc|Ecirc|cuepr|szlig|cuesc|breve|reals|eDDot|Breve|hoarr|lopar|utrif|rdquo|Umacr|umacr|efDot|swArr|ultri|alpha|rceil|ovbar|swarr|Wcirc|wcirc|smtes|smile|bsemi|lrarr|aring|parsl|lrhar|bsime|uhblk|lrtri|cupor|Aring|uharr|uharl|slarr|rbrke|bsolb|lsime|rbbrk|RBarr|lsimg|phone|rBarr|rbarr|icirc|lsquo|Icirc|emacr|Emacr|ratio|simne|plusb|simlE|simgE|simeq|pluse|ltcir|ltdot|empty|xharr|xdtri|iexcl|Alpha|ltrie|rarrw|pound|ltrif|xcirc|bumpe|prcue|bumpE|asymp|amacr|cuvee|Sigma|sigma|iiint|udhar|iiota|ijlig|IJlig|supnE|imacr|Imacr|prime|Prime|image|prnap|eogon|Eogon|rarrc|mdash|mDDot|cuwed|imath|supne|imped|Amacr|udarr|prsim|micro|rarrb|cwint|raquo|infin|eplus|range|rangd|Ucirc|radic|minus|amalg|veeeq|rAarr|epsiv|ycirc|quest|sharp|quot|zwnj|Qscr|race|qscr|Qopf|qopf|qint|rang|Rang|Zscr|zscr|Zopf|zopf|rarr|rArr|Rarr|Pscr|pscr|prop|prod|prnE|prec|ZHcy|zhcy|prap|Zeta|zeta|Popf|popf|Zdot|plus|zdot|Yuml|yuml|phiv|YUcy|yucy|Yscr|yscr|perp|Yopf|yopf|part|para|YIcy|Ouml|rcub|yicy|YAcy|rdca|ouml|osol|Oscr|rdsh|yacy|real|oscr|xvee|andd|rect|andv|Xscr|oror|ordm|ordf|xscr|ange|aopf|Aopf|rHar|Xopf|opar|Oopf|xopf|xnis|rhov|oopf|omid|xmap|oint|apid|apos|ogon|ascr|Ascr|odot|odiv|xcup|xcap|ocir|oast|nvlt|nvle|nvgt|nvge|nvap|Wscr|wscr|auml|ntlg|ntgl|nsup|nsub|nsim|Nscr|nscr|nsce|Wopf|ring|npre|wopf|npar|Auml|Barv|bbrk|Nopf|nopf|nmid|nLtv|beta|ropf|Ropf|Beta|beth|nles|rpar|nleq|bnot|bNot|nldr|NJcy|rscr|Rscr|Vscr|vscr|rsqb|njcy|bopf|nisd|Bopf|rtri|Vopf|nGtv|ngtr|vopf|boxh|boxH|boxv|nges|ngeq|boxV|bscr|scap|Bscr|bsim|Vert|vert|bsol|bull|bump|caps|cdot|ncup|scnE|ncap|nbsp|napE|Cdot|cent|sdot|Vbar|nang|vBar|chcy|Mscr|mscr|sect|semi|CHcy|Mopf|mopf|sext|circ|cire|mldr|mlcp|cirE|comp|shcy|SHcy|vArr|varr|cong|copf|Copf|copy|COPY|malt|male|macr|lvnE|cscr|ltri|sime|ltcc|simg|Cscr|siml|csub|Uuml|lsqb|lsim|uuml|csup|Lscr|lscr|utri|smid|lpar|cups|smte|lozf|darr|Lopf|Uscr|solb|lopf|sopf|Sopf|lneq|uscr|spar|dArr|lnap|Darr|dash|Sqrt|LJcy|ljcy|lHar|dHar|Upsi|upsi|diam|lesg|djcy|DJcy|leqq|dopf|Dopf|dscr|Dscr|dscy|ldsh|ldca|squf|DScy|sscr|Sscr|dsol|lcub|late|star|Star|Uopf|Larr|lArr|larr|uopf|dtri|dzcy|sube|subE|Lang|lang|Kscr|kscr|Kopf|kopf|KJcy|kjcy|KHcy|khcy|DZcy|ecir|edot|eDot|Jscr|jscr|succ|Jopf|jopf|Edot|uHar|emsp|ensp|Iuml|iuml|eopf|isin|Iscr|iscr|Eopf|epar|sung|epsi|escr|sup1|sup2|sup3|Iota|iota|supe|supE|Iopf|iopf|IOcy|iocy|Escr|esim|Esim|imof|Uarr|QUOT|uArr|uarr|euml|IEcy|iecy|Idot|Euml|euro|excl|Hscr|hscr|Hopf|hopf|TScy|tscy|Tscr|hbar|tscr|flat|tbrk|fnof|hArr|harr|half|fopf|Fopf|tdot|gvnE|fork|trie|gtcc|fscr|Fscr|gdot|gsim|Gscr|gscr|Gopf|gopf|gneq|Gdot|tosa|gnap|Topf|topf|geqq|toea|GJcy|gjcy|tint|gesl|mid|Sfr|ggg|top|ges|gla|glE|glj|geq|gne|gEl|gel|gnE|Gcy|gcy|gap|Tfr|tfr|Tcy|tcy|Hat|Tau|Ffr|tau|Tab|hfr|Hfr|ffr|Fcy|fcy|icy|Icy|iff|ETH|eth|ifr|Ifr|Eta|eta|int|Int|Sup|sup|ucy|Ucy|Sum|sum|jcy|ENG|ufr|Ufr|eng|Jcy|jfr|els|ell|egs|Efr|efr|Jfr|uml|kcy|Kcy|Ecy|ecy|kfr|Kfr|lap|Sub|sub|lat|lcy|Lcy|leg|Dot|dot|lEg|leq|les|squ|div|die|lfr|Lfr|lgE|Dfr|dfr|Del|deg|Dcy|dcy|lne|lnE|sol|loz|smt|Cup|lrm|cup|lsh|Lsh|sim|shy|map|Map|mcy|Mcy|mfr|Mfr|mho|gfr|Gfr|sfr|cir|Chi|chi|nap|Cfr|vcy|Vcy|cfr|Scy|scy|ncy|Ncy|vee|Vee|Cap|cap|nfr|scE|sce|Nfr|nge|ngE|nGg|vfr|Vfr|ngt|bot|nGt|nis|niv|Rsh|rsh|nle|nlE|bne|Bfr|bfr|nLl|nlt|nLt|Bcy|bcy|not|Not|rlm|wfr|Wfr|npr|nsc|num|ocy|ast|Ocy|ofr|xfr|Xfr|Ofr|ogt|ohm|apE|olt|Rho|ape|rho|Rfr|rfr|ord|REG|ang|reg|orv|And|and|AMP|Rcy|amp|Afr|ycy|Ycy|yen|yfr|Yfr|rcy|par|pcy|Pcy|pfr|Pfr|phi|Phi|afr|Acy|acy|zcy|Zcy|piv|acE|acd|zfr|Zfr|pre|prE|psi|Psi|qfr|Qfr|zwj|Or|ge|Gg|gt|gg|el|oS|lt|Lt|LT|Re|lg|gl|eg|ne|Im|it|le|DD|wp|wr|nu|Nu|dd|lE|Sc|sc|pi|Pi|ee|af|ll|Ll|rx|gE|xi|pm|Xi|ic|pr|Pr|in|ni|mp|mu|ac|Mu|or|ap|Gt|GT|ii);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)(?!;)([=a-zA-Z0-9]?)|&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+)/g,v={aacute:"á",Aacute:"Á",abreve:"ă",Abreve:"Ă",ac:"∾",acd:"∿",acE:"∾̳",acirc:"â",Acirc:"Â",acute:"´",acy:"а",Acy:"А",aelig:"æ",AElig:"Æ",af:"⁡",afr:"𝔞",Afr:"𝔄",agrave:"à",Agrave:"À",alefsym:"ℵ",aleph:"ℵ",alpha:"α",Alpha:"Α",amacr:"ā",Amacr:"Ā",amalg:"⨿",amp:"&",AMP:"&",and:"∧",And:"⩓",andand:"⩕",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsd:"∡",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"Å",angzarr:"⍼",aogon:"ą",Aogon:"Ą",aopf:"𝕒",Aopf:"𝔸",ap:"≈",apacir:"⩯",ape:"≊",apE:"⩰",apid:"≋",apos:"'",ApplyFunction:"⁡",approx:"≈",approxeq:"≊",aring:"å",Aring:"Å",ascr:"𝒶",Ascr:"𝒜",Assign:"≔",ast:"*",asymp:"≈",asympeq:"≍",atilde:"ã",Atilde:"Ã",auml:"ä",Auml:"Ä",awconint:"∳",awint:"⨑",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",Backslash:"∖",Barv:"⫧",barvee:"⊽",barwed:"⌅",Barwed:"⌆",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",bcy:"б",Bcy:"Б",bdquo:"„",becaus:"∵",because:"∵",Because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",Bernoullis:"ℬ",beta:"β",Beta:"Β",beth:"ℶ",between:"≬",bfr:"𝔟",Bfr:"𝔅",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bnot:"⌐",bNot:"⫭",bopf:"𝕓",Bopf:"𝔹",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxbox:"⧉",boxdl:"┐",boxdL:"╕",boxDl:"╖",boxDL:"╗",boxdr:"┌",boxdR:"╒",boxDr:"╓",boxDR:"╔",boxh:"─",boxH:"═",boxhd:"┬",boxhD:"╥",boxHd:"╤",boxHD:"╦",boxhu:"┴",boxhU:"╨",boxHu:"╧",boxHU:"╩",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxul:"┘",boxuL:"╛",boxUl:"╜",boxUL:"╝",boxur:"└",boxuR:"╘",boxUr:"╙",boxUR:"╚",boxv:"│",boxV:"║",boxvh:"┼",boxvH:"╪",boxVh:"╫",boxVH:"╬",boxvl:"┤",boxvL:"╡",boxVl:"╢",boxVL:"╣",boxvr:"├",boxvR:"╞",boxVr:"╟",boxVR:"╠",bprime:"‵",breve:"˘",Breve:"˘",brvbar:"¦",bscr:"𝒷",Bscr:"ℬ",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsol:"\\",bsolb:"⧅",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpe:"≏",bumpE:"⪮",bumpeq:"≏",Bumpeq:"≎",cacute:"ć",Cacute:"Ć",cap:"∩",Cap:"⋒",capand:"⩄",capbrcup:"⩉",capcap:"⩋",capcup:"⩇",capdot:"⩀",CapitalDifferentialD:"ⅅ",caps:"∩︀",caret:"⁁",caron:"ˇ",Cayleys:"ℭ",ccaps:"⩍",ccaron:"č",Ccaron:"Č",ccedil:"ç",Ccedil:"Ç",ccirc:"ĉ",Ccirc:"Ĉ",Cconint:"∰",ccups:"⩌",ccupssm:"⩐",cdot:"ċ",Cdot:"Ċ",cedil:"¸",Cedilla:"¸",cemptyv:"⦲",cent:"¢",centerdot:"·",CenterDot:"·",cfr:"𝔠",Cfr:"ℭ",chcy:"ч",CHcy:"Ч",check:"✓",checkmark:"✓",chi:"χ",Chi:"Χ",cir:"○",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",CircleDot:"⊙",circledR:"®",circledS:"Ⓢ",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",cire:"≗",cirE:"⧃",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",clubs:"♣",clubsuit:"♣",colon:":",Colon:"∷",colone:"≔",Colone:"⩴",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",Congruent:"≡",conint:"∮",Conint:"∯",ContourIntegral:"∮",copf:"𝕔",Copf:"ℂ",coprod:"∐",Coproduct:"∐",copy:"©",COPY:"©",copysr:"℗",CounterClockwiseContourIntegral:"∳",crarr:"↵",cross:"✗",Cross:"⨯",cscr:"𝒸",Cscr:"𝒞",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",cup:"∪",Cup:"⋓",cupbrcap:"⩈",cupcap:"⩆",CupCap:"≍",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curren:"¤",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",dagger:"†",Dagger:"‡",daleth:"ℸ",darr:"↓",dArr:"⇓",Darr:"↡",dash:"‐",dashv:"⊣",Dashv:"⫤",dbkarow:"⤏",dblac:"˝",dcaron:"ď",Dcaron:"Ď",dcy:"д",Dcy:"Д",dd:"ⅆ",DD:"ⅅ",ddagger:"‡",ddarr:"⇊",DDotrahd:"⤑",ddotseq:"⩷",deg:"°",Del:"∇",delta:"δ",Delta:"Δ",demptyv:"⦱",dfisht:"⥿",dfr:"𝔡",Dfr:"𝔇",dHar:"⥥",dharl:"⇃",dharr:"⇂",DiacriticalAcute:"´",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",diam:"⋄",diamond:"⋄",Diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"¨",DifferentialD:"ⅆ",digamma:"ϝ",disin:"⋲",div:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",djcy:"ђ",DJcy:"Ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",dopf:"𝕕",Dopf:"𝔻",dot:"˙",Dot:"¨",DotDot:"⃜",doteq:"≐",doteqdot:"≑",DotEqual:"≐",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",DoubleContourIntegral:"∯",DoubleDot:"¨",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",downarrow:"↓",Downarrow:"⇓",DownArrow:"↓",DownArrowBar:"⤓",DownArrowUpArrow:"⇵",DownBreve:"̑",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVector:"↽",DownLeftVectorBar:"⥖",DownRightTeeVector:"⥟",DownRightVector:"⇁",DownRightVectorBar:"⥗",DownTee:"⊤",DownTeeArrow:"↧",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",dscr:"𝒹",Dscr:"𝒟",dscy:"ѕ",DScy:"Ѕ",dsol:"⧶",dstrok:"đ",Dstrok:"Đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",dzcy:"џ",DZcy:"Џ",dzigrarr:"⟿",eacute:"é",Eacute:"É",easter:"⩮",ecaron:"ě",Ecaron:"Ě",ecir:"≖",ecirc:"ê",Ecirc:"Ê",ecolon:"≕",ecy:"э",Ecy:"Э",eDDot:"⩷",edot:"ė",eDot:"≑",Edot:"Ė",ee:"ⅇ",efDot:"≒",efr:"𝔢",Efr:"𝔈",eg:"⪚",egrave:"è",Egrave:"È",egs:"⪖",egsdot:"⪘",el:"⪙",Element:"∈",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",emacr:"ē",Emacr:"Ē",empty:"∅",emptyset:"∅",EmptySmallSquare:"◻",emptyv:"∅",EmptyVerySmallSquare:"▫",emsp:" ",emsp13:" ",emsp14:" ",eng:"ŋ",ENG:"Ŋ",ensp:" ",eogon:"ę",Eogon:"Ę",eopf:"𝕖",Eopf:"𝔼",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",epsilon:"ε",Epsilon:"Ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",Equal:"⩵",equals:"=",EqualTilde:"≂",equest:"≟",Equilibrium:"⇌",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erarr:"⥱",erDot:"≓",escr:"ℯ",Escr:"ℰ",esdot:"≐",esim:"≂",Esim:"⩳",eta:"η",Eta:"Η",eth:"ð",ETH:"Ð",euml:"ë",Euml:"Ë",euro:"€",excl:"!",exist:"∃",Exists:"∃",expectation:"ℰ",exponentiale:"ⅇ",ExponentialE:"ⅇ",fallingdotseq:"≒",fcy:"ф",Fcy:"Ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",ffr:"𝔣",Ffr:"𝔉",filig:"fi",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",fopf:"𝕗",Fopf:"𝔽",forall:"∀",ForAll:"∀",fork:"⋔",forkv:"⫙",Fouriertrf:"ℱ",fpartint:"⨍",frac12:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",fscr:"𝒻",Fscr:"ℱ",gacute:"ǵ",gamma:"γ",Gamma:"Γ",gammad:"ϝ",Gammad:"Ϝ",gap:"⪆",gbreve:"ğ",Gbreve:"Ğ",Gcedil:"Ģ",gcirc:"ĝ",Gcirc:"Ĝ",gcy:"г",Gcy:"Г",gdot:"ġ",Gdot:"Ġ",ge:"≥",gE:"≧",gel:"⋛",gEl:"⪌",geq:"≥",geqq:"≧",geqslant:"⩾",ges:"⩾",gescc:"⪩",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",gfr:"𝔤",Gfr:"𝔊",gg:"≫",Gg:"⋙",ggg:"⋙",gimel:"ℷ",gjcy:"ѓ",GJcy:"Ѓ",gl:"≷",gla:"⪥",glE:"⪒",glj:"⪤",gnap:"⪊",gnapprox:"⪊",gne:"⪈",gnE:"≩",gneq:"⪈",gneqq:"≩",gnsim:"⋧",gopf:"𝕘",Gopf:"𝔾",grave:"`",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",gscr:"ℊ",Gscr:"𝒢",gsim:"≳",gsime:"⪎",gsiml:"⪐",gt:">",Gt:"≫",GT:">",gtcc:"⪧",gtcir:"⩺",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",Hacek:"ˇ",hairsp:" ",half:"½",hamilt:"ℋ",hardcy:"ъ",HARDcy:"Ъ",harr:"↔",hArr:"⇔",harrcir:"⥈",harrw:"↭",Hat:"^",hbar:"ℏ",hcirc:"ĥ",Hcirc:"Ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",hfr:"𝔥",Hfr:"ℌ",HilbertSpace:"ℋ",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",hopf:"𝕙",Hopf:"ℍ",horbar:"―",HorizontalLine:"─",hscr:"𝒽",Hscr:"ℋ",hslash:"ℏ",hstrok:"ħ",Hstrok:"Ħ",HumpDownHump:"≎",HumpEqual:"≏",hybull:"⁃",hyphen:"‐",iacute:"í",Iacute:"Í",ic:"⁣",icirc:"î",Icirc:"Î",icy:"и",Icy:"И",Idot:"İ",iecy:"е",IEcy:"Е",iexcl:"¡",iff:"⇔",ifr:"𝔦",Ifr:"ℑ",igrave:"ì",Igrave:"Ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",ijlig:"ij",IJlig:"IJ",Im:"ℑ",imacr:"ī",Imacr:"Ī",image:"ℑ",ImaginaryI:"ⅈ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",imof:"⊷",imped:"Ƶ",Implies:"⇒",in:"∈",incare:"℅",infin:"∞",infintie:"⧝",inodot:"ı",int:"∫",Int:"∬",intcal:"⊺",integers:"ℤ",Integral:"∫",intercal:"⊺",Intersection:"⋂",intlarhk:"⨗",intprod:"⨼",InvisibleComma:"⁣",InvisibleTimes:"⁢",iocy:"ё",IOcy:"Ё",iogon:"į",Iogon:"Į",iopf:"𝕚",Iopf:"𝕀",iota:"ι",Iota:"Ι",iprod:"⨼",iquest:"¿",iscr:"𝒾",Iscr:"ℐ",isin:"∈",isindot:"⋵",isinE:"⋹",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"⁢",itilde:"ĩ",Itilde:"Ĩ",iukcy:"і",Iukcy:"І",iuml:"ï",Iuml:"Ï",jcirc:"ĵ",Jcirc:"Ĵ",jcy:"й",Jcy:"Й",jfr:"𝔧",Jfr:"𝔍",jmath:"ȷ",jopf:"𝕛",Jopf:"𝕁",jscr:"𝒿",Jscr:"𝒥",jsercy:"ј",Jsercy:"Ј",jukcy:"є",Jukcy:"Є",kappa:"κ",Kappa:"Κ",kappav:"ϰ",kcedil:"ķ",Kcedil:"Ķ",kcy:"к",Kcy:"К",kfr:"𝔨",Kfr:"𝔎",kgreen:"ĸ",khcy:"х",KHcy:"Х",kjcy:"ќ",KJcy:"Ќ",kopf:"𝕜",Kopf:"𝕂",kscr:"𝓀",Kscr:"𝒦",lAarr:"⇚",lacute:"ĺ",Lacute:"Ĺ",laemptyv:"⦴",lagran:"ℒ",lambda:"λ",Lambda:"Λ",lang:"⟨",Lang:"⟪",langd:"⦑",langle:"⟨",lap:"⪅",Laplacetrf:"ℒ",laquo:"«",larr:"←",lArr:"⇐",Larr:"↞",larrb:"⇤",larrbfs:"⤟",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",lat:"⪫",latail:"⤙",lAtail:"⤛",late:"⪭",lates:"⪭︀",lbarr:"⤌",lBarr:"⤎",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",lcaron:"ľ",Lcaron:"Ľ",lcedil:"ļ",Lcedil:"Ļ",lceil:"⌈",lcub:"{",lcy:"л",Lcy:"Л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",le:"≤",lE:"≦",LeftAngleBracket:"⟨",leftarrow:"←",Leftarrow:"⇐",LeftArrow:"←",LeftArrowBar:"⇤",LeftArrowRightArrow:"⇆",leftarrowtail:"↢",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVector:"⇃",LeftDownVectorBar:"⥙",LeftFloor:"⌊",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",leftrightarrow:"↔",Leftrightarrow:"⇔",LeftRightArrow:"↔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",LeftRightVector:"⥎",LeftTee:"⊣",LeftTeeArrow:"↤",LeftTeeVector:"⥚",leftthreetimes:"⋋",LeftTriangle:"⊲",LeftTriangleBar:"⧏",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVector:"↿",LeftUpVectorBar:"⥘",LeftVector:"↼",LeftVectorBar:"⥒",leg:"⋚",lEg:"⪋",leq:"≤",leqq:"≦",leqslant:"⩽",les:"⩽",lescc:"⪨",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",lessgtr:"≶",LessLess:"⪡",lesssim:"≲",LessSlantEqual:"⩽",LessTilde:"≲",lfisht:"⥼",lfloor:"⌊",lfr:"𝔩",Lfr:"𝔏",lg:"≶",lgE:"⪑",lHar:"⥢",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",ljcy:"љ",LJcy:"Љ",ll:"≪",Ll:"⋘",llarr:"⇇",llcorner:"⌞",Lleftarrow:"⇚",llhard:"⥫",lltri:"◺",lmidot:"ŀ",Lmidot:"Ŀ",lmoust:"⎰",lmoustache:"⎰",lnap:"⪉",lnapprox:"⪉",lne:"⪇",lnE:"≨",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",longleftarrow:"⟵",Longleftarrow:"⟸",LongLeftArrow:"⟵",longleftrightarrow:"⟷",Longleftrightarrow:"⟺",LongLeftRightArrow:"⟷",longmapsto:"⟼",longrightarrow:"⟶",Longrightarrow:"⟹",LongRightArrow:"⟶",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",lopf:"𝕝",Lopf:"𝕃",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",LowerLeftArrow:"↙",LowerRightArrow:"↘",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",lscr:"𝓁",Lscr:"ℒ",lsh:"↰",Lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",lstrok:"ł",Lstrok:"Ł",lt:"<",Lt:"≪",LT:"<",ltcc:"⪦",ltcir:"⩹",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltri:"◃",ltrie:"⊴",ltrif:"◂",ltrPar:"⦖",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",macr:"¯",male:"♂",malt:"✠",maltese:"✠",map:"↦",Map:"⤅",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",mcy:"м",Mcy:"М",mdash:"—",mDDot:"∺",measuredangle:"∡",MediumSpace:" ",Mellintrf:"ℳ",mfr:"𝔪",Mfr:"𝔐",mho:"℧",micro:"µ",mid:"∣",midast:"*",midcir:"⫰",middot:"·",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",MinusPlus:"∓",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",mopf:"𝕞",Mopf:"𝕄",mp:"∓",mscr:"𝓂",Mscr:"ℳ",mstpos:"∾",mu:"μ",Mu:"Μ",multimap:"⊸",mumap:"⊸",nabla:"∇",nacute:"ń",Nacute:"Ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natur:"♮",natural:"♮",naturals:"ℕ",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",ncaron:"ň",Ncaron:"Ň",ncedil:"ņ",Ncedil:"Ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",ncy:"н",Ncy:"Н",ndash:"–",ne:"≠",nearhk:"⤤",nearr:"↗",neArr:"⇗",nearrow:"↗",nedot:"≐̸",NegativeMediumSpace:"​",NegativeThickSpace:"​",NegativeThinSpace:"​",NegativeVeryThinSpace:"​",nequiv:"≢",nesear:"⤨",nesim:"≂̸",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",nexist:"∄",nexists:"∄",nfr:"𝔫",Nfr:"𝔑",nge:"≱",ngE:"≧̸",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",nGg:"⋙̸",ngsim:"≵",ngt:"≯",nGt:"≫⃒",ngtr:"≯",nGtv:"≫̸",nharr:"↮",nhArr:"⇎",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",njcy:"њ",NJcy:"Њ",nlarr:"↚",nlArr:"⇍",nldr:"‥",nle:"≰",nlE:"≦̸",nleftarrow:"↚",nLeftarrow:"⇍",nleftrightarrow:"↮",nLeftrightarrow:"⇎",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nLl:"⋘̸",nlsim:"≴",nlt:"≮",nLt:"≪⃒",nltri:"⋪",nltrie:"⋬",nLtv:"≪̸",nmid:"∤",NoBreak:"⁠",NonBreakingSpace:" ",nopf:"𝕟",Nopf:"ℕ",not:"¬",Not:"⫬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",notin:"∉",notindot:"⋵̸",notinE:"⋹̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",NotLeftTriangle:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangle:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",npar:"∦",nparallel:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",npre:"⪯̸",nprec:"⊀",npreceq:"⪯̸",nrarr:"↛",nrArr:"⇏",nrarrc:"⤳̸",nrarrw:"↝̸",nrightarrow:"↛",nRightarrow:"⇏",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",nscr:"𝓃",Nscr:"𝒩",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsube:"⊈",nsubE:"⫅̸",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupe:"⊉",nsupE:"⫆̸",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",ntilde:"ñ",Ntilde:"Ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",nu:"ν",Nu:"Ν",num:"#",numero:"№",numsp:" ",nvap:"≍⃒",nvdash:"⊬",nvDash:"⊭",nVdash:"⊮",nVDash:"⊯",nvge:"≥⃒",nvgt:">⃒",nvHarr:"⤄",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwarhk:"⤣",nwarr:"↖",nwArr:"⇖",nwarrow:"↖",nwnear:"⤧",oacute:"ó",Oacute:"Ó",oast:"⊛",ocir:"⊚",ocirc:"ô",Ocirc:"Ô",ocy:"о",Ocy:"О",odash:"⊝",odblac:"ő",Odblac:"Ő",odiv:"⨸",odot:"⊙",odsold:"⦼",oelig:"œ",OElig:"Œ",ofcir:"⦿",ofr:"𝔬",Ofr:"𝔒",ogon:"˛",ograve:"ò",Ograve:"Ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",omacr:"ō",Omacr:"Ō",omega:"ω",Omega:"Ω",omicron:"ο",Omicron:"Ο",omid:"⦶",ominus:"⊖",oopf:"𝕠",Oopf:"𝕆",opar:"⦷",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",operp:"⦹",oplus:"⊕",or:"∨",Or:"⩔",orarr:"↻",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oS:"Ⓢ",oscr:"ℴ",Oscr:"𝒪",oslash:"ø",Oslash:"Ø",osol:"⊘",otilde:"õ",Otilde:"Õ",otimes:"⊗",Otimes:"⨷",otimesas:"⨶",ouml:"ö",Ouml:"Ö",ovbar:"⌽",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",par:"∥",para:"¶",parallel:"∥",parsim:"⫳",parsl:"⫽",part:"∂",PartialD:"∂",pcy:"п",Pcy:"П",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",pfr:"𝔭",Pfr:"𝔓",phi:"φ",Phi:"Φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",pi:"π",Pi:"Π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plus:"+",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plusdo:"∔",plusdu:"⨥",pluse:"⩲",PlusMinus:"±",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",Poincareplane:"ℌ",pointint:"⨕",popf:"𝕡",Popf:"ℙ",pound:"£",pr:"≺",Pr:"⪻",prap:"⪷",prcue:"≼",pre:"⪯",prE:"⪳",prec:"≺",precapprox:"⪷",preccurlyeq:"≼",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",precsim:"≾",prime:"′",Prime:"″",primes:"ℙ",prnap:"⪹",prnE:"⪵",prnsim:"⋨",prod:"∏",Product:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",Proportion:"∷",Proportional:"∝",propto:"∝",prsim:"≾",prurel:"⊰",pscr:"𝓅",Pscr:"𝒫",psi:"ψ",Psi:"Ψ",puncsp:" ",qfr:"𝔮",Qfr:"𝔔",qint:"⨌",qopf:"𝕢",Qopf:"ℚ",qprime:"⁗",qscr:"𝓆",Qscr:"𝒬",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",quot:'"',QUOT:'"',rAarr:"⇛",race:"∽̱",racute:"ŕ",Racute:"Ŕ",radic:"√",raemptyv:"⦳",rang:"⟩",Rang:"⟫",rangd:"⦒",range:"⦥",rangle:"⟩",raquo:"»",rarr:"→",rArr:"⇒",Rarr:"↠",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",rarrtl:"↣",Rarrtl:"⤖",rarrw:"↝",ratail:"⤚",rAtail:"⤜",ratio:"∶",rationals:"ℚ",rbarr:"⤍",rBarr:"⤏",RBarr:"⤐",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",rcaron:"ř",Rcaron:"Ř",rcedil:"ŗ",Rcedil:"Ŗ",rceil:"⌉",rcub:"}",rcy:"р",Rcy:"Р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",Re:"ℜ",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",rect:"▭",reg:"®",REG:"®",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",rfisht:"⥽",rfloor:"⌋",rfr:"𝔯",Rfr:"ℜ",rHar:"⥤",rhard:"⇁",rharu:"⇀",rharul:"⥬",rho:"ρ",Rho:"Ρ",rhov:"ϱ",RightAngleBracket:"⟩",rightarrow:"→",Rightarrow:"⇒",RightArrow:"→",RightArrowBar:"⇥",RightArrowLeftArrow:"⇄",rightarrowtail:"↣",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",RightTee:"⊢",RightTeeArrow:"↦",RightTeeVector:"⥛",rightthreetimes:"⋌",RightTriangle:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",RightVectorBar:"⥓",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"‏",rmoust:"⎱",rmoustache:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",ropf:"𝕣",Ropf:"ℝ",roplus:"⨮",rotimes:"⨵",RoundImplies:"⥰",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",Rrightarrow:"⇛",rsaquo:"›",rscr:"𝓇",Rscr:"ℛ",rsh:"↱",Rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",RuleDelayed:"⧴",ruluhar:"⥨",rx:"℞",sacute:"ś",Sacute:"Ś",sbquo:"‚",sc:"≻",Sc:"⪼",scap:"⪸",scaron:"š",Scaron:"Š",sccue:"≽",sce:"⪰",scE:"⪴",scedil:"ş",Scedil:"Ş",scirc:"ŝ",Scirc:"Ŝ",scnap:"⪺",scnE:"⪶",scnsim:"⋩",scpolint:"⨓",scsim:"≿",scy:"с",Scy:"С",sdot:"⋅",sdotb:"⊡",sdote:"⩦",searhk:"⤥",searr:"↘",seArr:"⇘",searrow:"↘",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",sfr:"𝔰",Sfr:"𝔖",sfrown:"⌢",sharp:"♯",shchcy:"щ",SHCHcy:"Щ",shcy:"ш",SHcy:"Ш",ShortDownArrow:"↓",ShortLeftArrow:"←",shortmid:"∣",shortparallel:"∥",ShortRightArrow:"→",ShortUpArrow:"↑",shy:"­",sigma:"σ",Sigma:"Σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",SmallCircle:"∘",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",softcy:"ь",SOFTcy:"Ь",sol:"/",solb:"⧄",solbar:"⌿",sopf:"𝕤",Sopf:"𝕊",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",Sqrt:"√",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",squ:"□",square:"□",Square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",squarf:"▪",squf:"▪",srarr:"→",sscr:"𝓈",Sscr:"𝒮",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",star:"☆",Star:"⋆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",sub:"⊂",Sub:"⋐",subdot:"⪽",sube:"⊆",subE:"⫅",subedot:"⫃",submult:"⫁",subne:"⊊",subnE:"⫋",subplus:"⪿",subrarr:"⥹",subset:"⊂",Subset:"⋐",subseteq:"⊆",subseteqq:"⫅",SubsetEqual:"⊆",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succ:"≻",succapprox:"⪸",succcurlyeq:"≽",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",SuchThat:"∋",sum:"∑",Sum:"∑",sung:"♪",sup:"⊃",Sup:"⋑",sup1:"¹",sup2:"²",sup3:"³",supdot:"⪾",supdsub:"⫘",supe:"⊇",supE:"⫆",supedot:"⫄",Superset:"⊃",SupersetEqual:"⊇",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supne:"⊋",supnE:"⫌",supplus:"⫀",supset:"⊃",Supset:"⋑",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swarhk:"⤦",swarr:"↙",swArr:"⇙",swarrow:"↙",swnwar:"⤪",szlig:"ß",Tab:"\t",target:"⌖",tau:"τ",Tau:"Τ",tbrk:"⎴",tcaron:"ť",Tcaron:"Ť",tcedil:"ţ",Tcedil:"Ţ",tcy:"т",Tcy:"Т",tdot:"⃛",telrec:"⌕",tfr:"𝔱",Tfr:"𝔗",there4:"∴",therefore:"∴",Therefore:"∴",theta:"θ",Theta:"Θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",ThickSpace:"  ",thinsp:" ",ThinSpace:" ",thkap:"≈",thksim:"∼",thorn:"þ",THORN:"Þ",tilde:"˜",Tilde:"∼",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",times:"×",timesb:"⊠",timesbar:"⨱",timesd:"⨰",tint:"∭",toea:"⤨",top:"⊤",topbot:"⌶",topcir:"⫱",topf:"𝕥",Topf:"𝕋",topfork:"⫚",tosa:"⤩",tprime:"‴",trade:"™",TRADE:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",TripleDot:"⃛",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",tscr:"𝓉",Tscr:"𝒯",tscy:"ц",TScy:"Ц",tshcy:"ћ",TSHcy:"Ћ",tstrok:"ŧ",Tstrok:"Ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",uacute:"ú",Uacute:"Ú",uarr:"↑",uArr:"⇑",Uarr:"↟",Uarrocir:"⥉",ubrcy:"ў",Ubrcy:"Ў",ubreve:"ŭ",Ubreve:"Ŭ",ucirc:"û",Ucirc:"Û",ucy:"у",Ucy:"У",udarr:"⇅",udblac:"ű",Udblac:"Ű",udhar:"⥮",ufisht:"⥾",ufr:"𝔲",Ufr:"𝔘",ugrave:"ù",Ugrave:"Ù",uHar:"⥣",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",umacr:"ū",Umacr:"Ū",uml:"¨",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",uogon:"ų",Uogon:"Ų",uopf:"𝕦",Uopf:"𝕌",uparrow:"↑",Uparrow:"⇑",UpArrow:"↑",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",updownarrow:"↕",Updownarrow:"⇕",UpDownArrow:"↕",UpEquilibrium:"⥮",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",UpperLeftArrow:"↖",UpperRightArrow:"↗",upsi:"υ",Upsi:"ϒ",upsih:"ϒ",upsilon:"υ",Upsilon:"Υ",UpTee:"⊥",UpTeeArrow:"↥",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",uring:"ů",Uring:"Ů",urtri:"◹",uscr:"𝓊",Uscr:"𝒰",utdot:"⋰",utilde:"ũ",Utilde:"Ũ",utri:"▵",utrif:"▴",uuarr:"⇈",uuml:"ü",Uuml:"Ü",uwangle:"⦧",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",varr:"↕",vArr:"⇕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",vBar:"⫨",Vbar:"⫫",vBarv:"⫩",vcy:"в",Vcy:"В",vdash:"⊢",vDash:"⊨",Vdash:"⊩",VDash:"⊫",Vdashl:"⫦",vee:"∨",Vee:"⋁",veebar:"⊻",veeeq:"≚",vellip:"⋮",verbar:"|",Verbar:"‖",vert:"|",Vert:"‖",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",vfr:"𝔳",Vfr:"𝔙",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",vopf:"𝕧",Vopf:"𝕍",vprop:"∝",vrtri:"⊳",vscr:"𝓋",Vscr:"𝒱",vsubne:"⊊︀",vsubnE:"⫋︀",vsupne:"⊋︀",vsupnE:"⫌︀",Vvdash:"⊪",vzigzag:"⦚",wcirc:"ŵ",Wcirc:"Ŵ",wedbar:"⩟",wedge:"∧",Wedge:"⋀",wedgeq:"≙",weierp:"℘",wfr:"𝔴",Wfr:"𝔚",wopf:"𝕨",Wopf:"𝕎",wp:"℘",wr:"≀",wreath:"≀",wscr:"𝓌",Wscr:"𝒲",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",xfr:"𝔵",Xfr:"𝔛",xharr:"⟷",xhArr:"⟺",xi:"ξ",Xi:"Ξ",xlarr:"⟵",xlArr:"⟸",xmap:"⟼",xnis:"⋻",xodot:"⨀",xopf:"𝕩",Xopf:"𝕏",xoplus:"⨁",xotime:"⨂",xrarr:"⟶",xrArr:"⟹",xscr:"𝓍",Xscr:"𝒳",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",yacute:"ý",Yacute:"Ý",yacy:"я",YAcy:"Я",ycirc:"ŷ",Ycirc:"Ŷ",ycy:"ы",Ycy:"Ы",yen:"¥",yfr:"𝔶",Yfr:"𝔜",yicy:"ї",YIcy:"Ї",yopf:"𝕪",Yopf:"𝕐",yscr:"𝓎",Yscr:"𝒴",yucy:"ю",YUcy:"Ю",yuml:"ÿ",Yuml:"Ÿ",zacute:"ź",Zacute:"Ź",zcaron:"ž",Zcaron:"Ž",zcy:"з",Zcy:"З",zdot:"ż",Zdot:"Ż",zeetrf:"ℨ",ZeroWidthSpace:"​",zeta:"ζ",Zeta:"Ζ",zfr:"𝔷",Zfr:"ℨ",zhcy:"ж",ZHcy:"Ж",zigrarr:"⇝",zopf:"𝕫",Zopf:"ℤ",zscr:"𝓏",Zscr:"𝒵",zwj:"‍",zwnj:"‌"},y={aacute:"á",Aacute:"Á",acirc:"â",Acirc:"Â",acute:"´",aelig:"æ",AElig:"Æ",agrave:"à",Agrave:"À",amp:"&",AMP:"&",aring:"å",Aring:"Å",atilde:"ã",Atilde:"Ã",auml:"ä",Auml:"Ä",brvbar:"¦",ccedil:"ç",Ccedil:"Ç",cedil:"¸",cent:"¢",copy:"©",COPY:"©",curren:"¤",deg:"°",divide:"÷",eacute:"é",Eacute:"É",ecirc:"ê",Ecirc:"Ê",egrave:"è",Egrave:"È",eth:"ð",ETH:"Ð",euml:"ë",Euml:"Ë",frac12:"½",frac14:"¼",frac34:"¾",gt:">",GT:">",iacute:"í",Iacute:"Í",icirc:"î",Icirc:"Î",iexcl:"¡",igrave:"ì",Igrave:"Ì",iquest:"¿",iuml:"ï",Iuml:"Ï",laquo:"«",lt:"<",LT:"<",macr:"¯",micro:"µ",middot:"·",nbsp:" ",not:"¬",ntilde:"ñ",Ntilde:"Ñ",oacute:"ó",Oacute:"Ó",ocirc:"ô",Ocirc:"Ô",ograve:"ò",Ograve:"Ò",ordf:"ª",ordm:"º",oslash:"ø",Oslash:"Ø",otilde:"õ",Otilde:"Õ",ouml:"ö",Ouml:"Ö",para:"¶",plusmn:"±",pound:"£",quot:'"',QUOT:'"',raquo:"»",reg:"®",REG:"®",sect:"§",shy:"­",sup1:"¹",sup2:"²",sup3:"³",szlig:"ß",thorn:"þ",THORN:"Þ",times:"×",uacute:"ú",Uacute:"Ú",ucirc:"û",Ucirc:"Û",ugrave:"ù",Ugrave:"Ù",uml:"¨",uuml:"ü",Uuml:"Ü",yacute:"ý",Yacute:"Ý",yen:"¥",yuml:"ÿ"},S={0:"�",128:"€",130:"‚",131:"ƒ",132:"„",133:"…",134:"†",135:"‡",136:"ˆ",137:"‰",138:"Š",139:"‹",140:"Œ",142:"Ž",145:"‘",146:"’",147:"“",148:"”",149:"•",150:"–",151:"—",152:"˜",153:"™",154:"š",155:"›",156:"œ",158:"ž",159:"Ÿ"},_=[1,2,3,4,5,6,7,8,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,64976,64977,64978,64979,64980,64981,64982,64983,64984,64985,64986,64987,64988,64989,64990,64991,64992,64993,64994,64995,64996,64997,64998,64999,65e3,65001,65002,65003,65004,65005,65006,65007,65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1048574,1048575,1114110,1114111],x=String.fromCharCode,w={}.hasOwnProperty,k=function(e,t){return w.call(e,t)},O=function(e,t){if(!e)return t;var n,r={};for(n in t)r[n]=k(e,n)?e[n]:t[n];return r},E=function(e,t){var n="";return e>=55296&&e<=57343||e>1114111?(t&&C("character reference outside the permissible Unicode range"),"�"):k(S,e)?(t&&C("disallowed character reference"),S[e]):(t&&function(e,t){for(var n=-1,r=e.length;++n65535&&(n+=x((e-=65536)>>>10&1023|55296),e=56320|1023&e),n+=x(e))},A=function(e){return"&#x"+e.toString(16).toUpperCase()+";"},T=function(e){return"&#"+e+";"},C=function(e){throw Error("Parse error: "+e)},M=function(e,t){(t=O(t,M.options)).strict&&g.test(e)&&C("forbidden code point");var n=t.encodeEverything,r=t.useNamedReferences,i=t.allowUnsafeSymbols,o=t.decimal?T:A,s=function(e){return o(e.charCodeAt(0))};return n?(e=e.replace(c,(function(e){return r&&k(h,e)?"&"+h[e]+";":s(e)})),r&&(e=e.replace(/>\u20D2/g,">⃒").replace(/<\u20D2/g,"<⃒").replace(/fj/g,"fj")),r&&(e=e.replace(d,(function(e){return"&"+h[e]+";"})))):r?(i||(e=e.replace(p,(function(e){return"&"+h[e]+";"}))),e=(e=e.replace(/>\u20D2/g,">⃒").replace(/<\u20D2/g,"<⃒")).replace(d,(function(e){return"&"+h[e]+";"}))):i||(e=e.replace(p,s)),e.replace(l,(function(e){var t=e.charCodeAt(0),n=e.charCodeAt(1);return o(1024*(t-55296)+n-56320+65536)})).replace(u,s)};M.options={allowUnsafeSymbols:!1,encodeEverything:!1,strict:!1,useNamedReferences:!1,decimal:!1};var $=function(e,t){var n=(t=O(t,$.options)).strict;return n&&m.test(e)&&C("malformed character reference"),e.replace(b,(function(e,r,i,o,s,a,l,c,u){var d,h,p,f,m,g;return r?v[m=r]:i?(m=i,(g=o)&&t.isAttributeValue?(n&&"="==g&&C("`&` did not start a character reference"),e):(n&&C("named character reference was not terminated by a semicolon"),y[m]+(g||""))):s?(p=s,h=a,n&&!h&&C("character reference was not terminated by a semicolon"),d=parseInt(p,10),E(d,n)):l?(f=l,h=c,n&&!h&&C("character reference was not terminated by a semicolon"),d=parseInt(f,16),E(d,n)):(n&&C("named character reference was not terminated by a semicolon"),e)}))};$.options={isAttributeValue:!1,strict:!1};var P={version:"1.2.0",encode:M,decode:$,escape:function(e){return e.replace(p,(function(e){return f[e]}))},unescape:$};void 0===(i=function(){return P}.call(t,n,t,e))||(e.exports=i)}()}).call(this,n(65)(e),n(28))},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),o=this&&this.__assign||function(){return(o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&t.push(e=[]),r.childNodes.forEach(n),e.length>0&&t.push(e=[])):r.childNodes.forEach(n);else if(r.nodeType===g.default.TEXT_NODE)if(r.isWhitespace)e.prependWhitespace=!0;else{var i=r.trimmedText;e.prependWhitespace&&(i=" ".concat(i),e.prependWhitespace=!1),e.push(i)}}(this),t.map((function(e){return e.join("").replace(/\s{2,}/g," ")})).join("\n").replace(/\s+$/,"")},enumerable:!1,configurable:!0}),t.prototype.toString=function(){var e=this.rawTagName;if(e){var t=this.rawAttrs?" ".concat(this.rawAttrs):"";return this.voidTag.formatNode(e,t,this.innerHTML)}return this.innerHTML},Object.defineProperty(t.prototype,"innerHTML",{get:function(){return this.childNodes.map((function(e){return e.toString()})).join("")},set:function(e){var t=T(e,this._parseOptions),n=t.childNodes.length?t.childNodes:[new m.default(e,this)];C(n,this),C(this.childNodes,null),this.childNodes=n},enumerable:!1,configurable:!0}),t.prototype.set_content=function(e,t){if(void 0===t&&(t={}),e instanceof f.default)e=[e];else if("string"==typeof e){var n=T(e,t=o(o({},this._parseOptions),t));e=n.childNodes.length?n.childNodes:[new m.default(n.innerHTML,this)]}return C(this.childNodes,null),C(e,this),this.childNodes=e,this},t.prototype.replaceWith=function(){for(var e=this,t=[],n=0;n-1&&(n.rawText=n.rawText.substr(0,r),this.childNodes.length=t+1)}}return this},Object.defineProperty(t.prototype,"structure",{get:function(){var e=[],t=0;function n(n){e.push(" ".repeat(t)+n)}return function e(r){var i=r.id?"#".concat(r.id):"",o=r.classList.length?".".concat(r.classList.value.join(".")):"";n("".concat(r.rawTagName).concat(i).concat(o)),t++,r.childNodes.forEach((function(t){t.nodeType===g.default.ELEMENT_NODE?e(t):t.nodeType===g.default.TEXT_NODE&&(t.isWhitespace||n("#text"))})),t--}(this),e.join("\n")},enumerable:!1,configurable:!0}),t.prototype.removeWhitespace=function(){var e=this,t=0;return this.childNodes.forEach((function(n){if(n.nodeType===g.default.TEXT_NODE){if(n.isWhitespace)return;n.rawText=n.trimmedRawText}else n.nodeType===g.default.ELEMENT_NODE&&n.removeWhitespace();e.childNodes[t++]=n})),this.childNodes.length=t,this},t.prototype.querySelectorAll=function(e){return(0,l.selectAll)(e,this,{xmlMode:!0,adapter:d.default})},t.prototype.querySelector=function(e){return(0,l.selectOne)(e,this,{xmlMode:!0,adapter:d.default})},t.prototype.getElementsByTagName=function(e){for(var t=e.toUpperCase(),n=[],r=[],i=this,o=0;void 0!==o;){var s=void 0;do{s=i.childNodes[o++]}while(o0&&(r.push(o),i=s,o=0)):(i=i.parentNode,o=r.pop())}return n},t.prototype.getElementById=function(e){for(var t=[],n=this,r=0;void 0!==r;){var i=void 0;do{i=n.childNodes[r++]}while(r0&&(t.push(r),n=i,r=0)}}else n=n.parentNode,r=t.pop()}return null},t.prototype.closest=function(e){var t=new Map,n=this,r=null;function i(e,n){for(var r=null,o=0,s=n.length;o0;){if(this===e[--t])return e[t-1]||null}return null}},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"previousElementSibling",{get:function(){if(this.parentNode){for(var e=this.parentNode.childNodes,n=e.length,r=!1;n>0;){var i=e[--n];if(r){if(i instanceof t)return i||null}else this===i&&(r=!0)}return null}},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"classNames",{get:function(){return this.classList.toString()},enumerable:!1,configurable:!0}),t.prototype.clone=function(){return T(this.toString(),this._parseOptions).firstChild},t}(f.default);t.default=S;var _=/|<(\/?)([a-zA-Z][-.:0-9_a-zA-Z]*)((?:\s+[^>]*?(?:(?:'[^']*')|(?:"[^"]*"))?)*)\s*(\/?)>/g,x=/(?:^|\s)(id|class)\s*=\s*((?:'[^']*')|(?:"[^"]*")|\S+)/gi,w={area:!0,AREA:!0,base:!0,BASE:!0,br:!0,BR:!0,col:!0,COL:!0,hr:!0,HR:!0,img:!0,IMG:!0,input:!0,INPUT:!0,link:!0,LINK:!0,meta:!0,META:!0,source:!0,SOURCE:!0,embed:!0,EMBED:!0,param:!0,PARAM:!0,track:!0,TRACK:!0,wbr:!0,WBR:!0},k={li:{li:!0,LI:!0},LI:{li:!0,LI:!0},p:{p:!0,div:!0,P:!0,DIV:!0},P:{p:!0,div:!0,P:!0,DIV:!0},b:{div:!0,DIV:!0},B:{div:!0,DIV:!0},td:{td:!0,th:!0,TD:!0,TH:!0},TD:{td:!0,th:!0,TD:!0,TH:!0},th:{td:!0,th:!0,TD:!0,TH:!0},TH:{td:!0,th:!0,TD:!0,TH:!0},h1:{h1:!0,H1:!0},H1:{h1:!0,H1:!0},h2:{h2:!0,H2:!0},H2:{h2:!0,H2:!0},h3:{h3:!0,H3:!0},H3:{h3:!0,H3:!0},h4:{h4:!0,H4:!0},H4:{h4:!0,H4:!0},h5:{h5:!0,H5:!0},H5:{h5:!0,H5:!0},h6:{h6:!0,H6:!0},H6:{h6:!0,H6:!0}},O={li:{ul:!0,ol:!0,UL:!0,OL:!0},LI:{ul:!0,ol:!0,UL:!0,OL:!0},a:{div:!0,DIV:!0},A:{div:!0,DIV:!0},b:{div:!0,DIV:!0},B:{div:!0,DIV:!0},i:{div:!0,DIV:!0},I:{div:!0,DIV:!0},p:{div:!0,DIV:!0},P:{div:!0,DIV:!0},td:{tr:!0,table:!0,TR:!0,TABLE:!0},TD:{tr:!0,table:!0,TR:!0,TABLE:!0},th:{tr:!0,table:!0,TR:!0,TABLE:!0},TH:{tr:!0,table:!0,TR:!0,TABLE:!0}},E="documentfragmentcontainer";function A(e,t){var n,r;void 0===t&&(t={});var i=new h.default(null===(n=null==t?void 0:t.voidTag)||void 0===n?void 0:n.closingSlash,null===(r=null==t?void 0:t.voidTag)||void 0===r?void 0:r.tags),o=t.blockTextElements||{script:!0,noscript:!0,style:!0,pre:!0},s=Object.keys(o),a=s.map((function(e){return new RegExp("^".concat(e,"$"),"i")})),l=s.filter((function(e){return o[e]})).map((function(e){return new RegExp("^".concat(e,"$"),"i")}));function c(e){return l.some((function(t){return t.test(e)}))}function d(e){return a.some((function(t){return t.test(e)}))}var f,g=function(e,t){return[e-P,t-P]},b=new S(null,{},"",null,[0,e.length],i,t),v=b,y=[b],A=-1,T=void 0;e="<".concat(E,">").concat(e,"");for(var C=t.lowerCaseTagName,M=t.fixNestedATags,$=e.length-(E.length+2),P=E.length+2;f=_.exec(e);){var R=f[0],j=f[1],N=f[2],D=f[3],I=f[4],L=R.length,B=_.lastIndex-L,z=_.lastIndex;if(A>-1&&A+L"),Z=C?e.toLocaleLowerCase().indexOf(Y,_.lastIndex):e.indexOf(Y,_.lastIndex),J=-1===Z?$:Z;if(c(N))(F=e.substring(W,J)).length>0&&/\S/.test(F)&&v.appendChild(new m.default(F,v,g(W,J)));-1===Z?A=_.lastIndex=e.length+1:(A=_.lastIndex=Z+Y.length,j="/")}}if(j||I||w[N])for(;;){if(null==T||"a"!==N&&"A"!==N||(T=void 0),v.rawTagName===N){v.range[1]=g(-1,Math.max(A,z))[1],y.pop(),v=(0,u.default)(y);break}V=v.tagName;if(!O[V]||!O[V][N])break;y.pop(),v=(0,u.default)(y)}}else if(t.comment){var F=e.substring(B+4,z-3);v.appendChild(new p.default(F,v,g(B,z)))}}return y}function T(e,t){void 0===t&&(t={});for(var n=A(e,t),r=n[0],i=function(){var e=n.pop(),r=(0,u.default)(n);e.parentNode&&e.parentNode.parentNode&&(e.parentNode===r&&e.tagName===r.tagName?!0!==t.parseNoneClosedTags&&(r.removeChild(e),e.childNodes.forEach((function(e){r.parentNode.appendChild(e)})),n.pop()):!0!==t.parseNoneClosedTags&&(r.removeChild(e),e.childNodes.forEach((function(e){r.appendChild(e)}))))};n.length>1;)i();return r}function C(e,t){return e.map((function(e){return e.parentNode=t,e}))}t.base_parse=A,t.parse=T},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.canUseDOM=t.SafeNodeList=t.SafeHTMLCollection=void 0;var r,i=n(423);var o=((r=i)&&r.__esModule?r:{default:r}).default,s=o.canUseDOM?window.HTMLElement:{};t.SafeHTMLCollection=o.canUseDOM?window.HTMLCollection:{},t.SafeNodeList=o.canUseDOM?window.NodeList:{},t.canUseDOM=o.canUseDOM;t.default=s},function(e,t,n){"use strict";var r=n(2),i=n.n(r)()(!1);i.push([e.i,":root{--rpf-white: #ffffff}:export{grey-rpi-grey-15:#d5d7dc;grey-rpi-grey-40:#9497a4;grey-rpi-grey-5:#f1f2f3;grey-rpi-grey-70:#4a4d59;grey-rpf-white:#fff}.modal-overlay{display:flex;align-items:center;justify-content:center;padding:calc(5rem*var(--scale-factor, 1));z-index:1000;position:fixed;inset:0px}@media screen and (max-width: 480px){.modal-overlay{padding:calc(2rem*var(--scale-factor, 1))}}.modal-content{inline-size:560px;max-block-size:100%;border:0;border-radius:10px;display:flex;flex-direction:column}.modal-content label,.modal-content legend{font-weight:700}.modal-content input[type=text]{font-size:calc(1rem*var(--scale-factor, 1));line-height:calc(1.5rem*var(--scale-factor, 1));inline-size:100%;box-sizing:border-box;border:2px solid rgba(0,0,0,0);border-radius:12px;padding:calc(.5rem*var(--scale-factor, 1));display:block}.modal-content:focus-visible{border:3px solid #cd2356;outline:none}.modal-content__header{display:flex;align-items:center;min-block-size:fit-content;padding:calc(1rem*var(--scale-factor, 1)) calc(.5rem*var(--scale-factor, 1)) calc(1rem*var(--scale-factor, 1)) calc(1rem*var(--scale-factor, 1))}.modal-content__header button{margin-inline-start:auto;block-size:fit-content}.modal-content__heading{font-size:calc(1.5rem*var(--scale-factor, 1));line-height:calc(2rem*var(--scale-factor, 1));margin-block:calc(.5rem*var(--scale-factor, 1));margin-inline:calc(.5rem*var(--scale-factor, 1)) 0}.modal-content__body{padding:calc(1.5rem*var(--scale-factor, 1));display:flex;flex-direction:column;row-gap:calc(.5rem*var(--scale-factor, 1));overflow-y:auto}.modal-content__subheading{font-size:calc(1rem*var(--scale-factor, 1));line-height:calc(1.5rem*var(--scale-factor, 1));margin:0;font-weight:700}.modal-content__text{margin:0;line-height:1.4}.modal-content__help-text{margin:calc(.25rem*var(--scale-factor, 1)) 0;font-weight:400}.modal-content__inputs{display:flex;flex-direction:column;gap:calc(2rem*var(--scale-factor, 1))}.modal-content__input-section{display:flex;flex-direction:column;gap:calc(.5rem*var(--scale-factor, 1))}.modal-content__buttons{padding:calc(1rem*var(--scale-factor, 1));display:flex;flex-wrap:wrap;flex-direction:row-reverse;gap:calc(1rem*var(--scale-factor, 1));justify-content:flex-start}@media screen and (max-width: 480px){.modal-content__buttons{display:flex;flex-direction:column}}.modal-content__buttons button,.modal-content__buttons a{margin:0}.modal-content__buttons button span,.modal-content__buttons a span{inline-size:100%}@media screen and (max-width: 480px){.modal-content__buttons button,.modal-content__buttons a{inline-size:100%}}.modal-content__links{text-align:center;margin-block:calc(.5rem*var(--scale-factor, 1)) calc(.25rem*var(--scale-factor, 1));margin-inline:0}.modal-content__links button{text-decoration:underline}.--dark .modal-overlay{background-color:rgba(0,0,0,.5)}.--dark .modal-overlay input{border:2px solid #fff;background-color:#33353d;color:inherit}.--dark .modal-overlay input:focus-visible{border:2px solid var(--rpf-input-active-border);outline:none}.--dark .modal-content{background-color:#33353d}.--dark .modal-content__header{border-block-end:1px solid #636674}.--dark .modal-content__help-text{color:#ccc}.--dark .modal-content__buttons{border-block-start:1px solid #636674}.--light .modal-overlay{background-color:rgba(67,69,76,.5)}.--light .modal-overlay input{border:2px solid #e3e4e8}.--light .modal-overlay input:focus-visible{border:2px solid var(--rpf-input-active-border);outline:none}.--light .modal-content{background-color:#fff}.--light .modal-content__header{border-block-end:1px solid #d5d7dc}.--light .modal-content__help-text{color:#4d575b}.--light .modal-content__buttons{border-block-start:1px solid #d5d7dc}",""])},function(e,t,n){"use strict";e.exports=n(349)},function(e,t,n){"use strict";e.exports=n(412)},function(e,t,n){"use strict";function r(e){return function(t){var n=t.dispatch,r=t.getState;return function(t){return function(i){return"function"==typeof i?i(n,r,e):t(i)}}}}var i=r();i.withExtraArgument=r,t.a=i},function(e,t){function n(e,t,n){var r,i,o,s,a;function l(){var c=Date.now()-s;c=0?r=setTimeout(l,t-c):(r=null,n||(a=e.apply(o,i),o=i=null))}null==t&&(t=100);var c=function(){o=this,i=arguments,s=Date.now();var c=n&&!r;return r||(r=setTimeout(l,t)),c&&(a=e.apply(o,i),o=i=null),a};return c.clear=function(){r&&(clearTimeout(r),r=null)},c.flush=function(){r&&(a=e.apply(o,i),o=i=null,clearTimeout(r),r=null)},c}n.debounce=n,e.exports=n},function(e,t,n){"use strict"; /*! * mime-types * Copyright(c) 2014 Jonathan Ong * Copyright(c) 2015 Douglas Christopher Wilson * MIT Licensed */var r,i,o,s=n(362),a=n(364).extname,l=/^\s*([^;\s]*)(?:;|\s|$)/,c=/^text\//i;function u(e){if(!e||"string"!=typeof e)return!1;var t=l.exec(e),n=t&&s[t[1].toLowerCase()];return n&&n.charset?n.charset:!(!t||!c.test(t[1]))&&"UTF-8"}t.charset=u,t.charsets={lookup:u},t.contentType=function(e){if(!e||"string"!=typeof e)return!1;var n=-1===e.indexOf("/")?t.lookup(e):e;if(!n)return!1;if(-1===n.indexOf("charset")){var r=t.charset(n);r&&(n+="; charset="+r.toLowerCase())}return n},t.extension=function(e){if(!e||"string"!=typeof e)return!1;var n=l.exec(e),r=n&&t.extensions[n[1].toLowerCase()];if(!r||!r.length)return!1;return r[0]},t.extensions=Object.create(null),t.lookup=function(e){if(!e||"string"!=typeof e)return!1;var n=a("x."+e).toLowerCase().substr(1);if(!n)return!1;return t.types[n]||!1},t.types=Object.create(null),r=t.extensions,i=t.types,o=["nginx","apache",void 0,"iana"],Object.keys(s).forEach((function(e){var t=s[e],n=t.extensions;if(n&&n.length){r[e]=n;for(var a=0;au||c===u&&"application/"===i[l].substr(0,12)))continue}i[l]=e}}}))},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.NodeType=t.TextNode=t.Node=t.valid=t.CommentNode=t.HTMLElement=t.parse=void 0;var i=r(n(153));t.CommentNode=i.default;var o=r(n(104));t.HTMLElement=o.default;var s=r(n(79));t.Node=s.default;var a=r(n(154));t.TextNode=a.default;var l=r(n(69));t.NodeType=l.default;var c=r(n(368)),u=r(n(369));function d(e,t){return void 0===t&&(t={}),(0,c.default)(e,t)}t.valid=u.default,t.default=d,t.parse=d,d.parse=c.default,d.HTMLElement=o.default,d.CommentNode=i.default,d.valid=u.default,d.Node=s.default,d.TextNode=a.default,d.NodeType=l.default},function(e,t,n){"use strict";(function(e,r){n.d(t,"a",(function(){return s})),n.d(t,"b",(function(){return o}));var i=n(190);function o(){return!Object(i.a)()&&"[object process]"===Object.prototype.toString.call(void 0!==e?e:0)}function s(e,t){return e.require(t)}}).call(this,n(36),n(64)(e))},,function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));const r=new RegExp("^[ \\t]*([0-9a-f]{32})?-?([0-9a-f]{16})?-?([01])?[ \\t]*$");function i(e){const t=e.match(r);if(!e||!t)return;let n;return"1"===t[3]?n=!0:"0"===t[3]&&(n=!1),{traceId:t[1],parentSampled:n,parentSpanId:t[2]}}},function(e,t,n){"use strict";t.decode=t.parse=n(210),t.encode=t.stringify=n(211)},function(e,t,n){"use strict";e.exports=function(e,t){return function(){for(var n=new Array(arguments.length),r=0;r-1&&e%1==0&&e<=9007199254740991}},function(e,t){e.exports=function(e,t){return function(n){return e(t(n))}}},function(e,t,n){var r=n(127),i=n(137);e.exports=function(e){return null!=e&&i(e.length)&&!r(e)}},function(e,t){e.exports=function(){return[]}},function(e,t,n){var r=n(97),i=n(98),o=n(96),s=n(140),a=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)r(t,o(e)),e=i(e);return t}:s;e.exports=a},function(e,t,n){var r=n(97),i=n(47);e.exports=function(e,t,n){var o=t(e);return i(e)?o:r(o,n(e))}},function(e,t,n){var r=n(142),i=n(141),o=n(95);e.exports=function(e){return r(e,o,i)}},function(e,t,n){var r=n(102);e.exports=function(e){if("string"==typeof e||r(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}},function(e,t,n){"use strict";var r=n(2),i=n.n(r)()(!1);i.push([e.i,":root{--rpf-white: #ffffff}:export{grey-rpi-grey-15:#d5d7dc;grey-rpi-grey-40:#9497a4;grey-rpi-grey-5:#f1f2f3;grey-rpi-grey-70:#4a4d59;grey-rpf-white:#fff}.proj{display:flex;flex-flow:column;overflow:hidden;block-size:100%;block-size:-moz-available;block-size:-webkit-stretch;block-size:stretch}.proj-header{display:flex;flex:1 0 auto;justify-content:space-between;padding-inline:5px}.editor-controls{display:flex}.proj-controls{padding-block-start:20px}.proj-share-link{padding-inline:5px}.proj-container{display:flex;flex-direction:row;overflow-y:hidden;grid-gap:calc(1rem*var(--scale-factor, 1));margin:calc(1rem*var(--scale-factor, 1));block-size:100%}.proj-container .project-wrapper{container-type:inline-size;display:flex;flex-direction:column;grid-gap:calc(.5rem*var(--scale-factor, 1));flex:1 1 auto;overflow:hidden}.proj-container .proj-editor-wrapper{display:flex;flex:0 1 auto;flex-flow:column;grid-gap:calc(1rem*var(--scale-factor, 1));overflow:hidden;block-size:100%;inline-size:100%}@container (min-width: 720px){.proj-container .proj-editor-wrapper{flex-flow:row}.proj-container .proj-editor-container{max-block-size:100% !important}.proj-container--wc .proj-runner-container,.proj-container--wc .proj-editor-container{inline-size:50%}}.proj-container .sidebar,.proj-container .proj-editor-container,.proj-container .proj-runner-container{border-radius:8px}.proj-container .proj-editor-container{display:flex;box-sizing:border-box;min-block-size:30%;max-block-size:70%}.proj-container .proj-editor-container .react-tabs__tab-panel--selected{overflow-y:hidden}.proj-container .proj-runner-container{display:flex;box-sizing:border-box;flex:5;overflow:hidden}.proj-container .proj-runner-container .react-tabs__tab-panel--selected{overflow-y:auto}.proj-container--wc{min-block-size:200px}.proj-container--wc .proj-runner-container,.proj-container--wc .proj-editor-container{inline-size:100%}.proj-editor-container .react-tabs__tab-list,.proj-runner-container .react-tabs__tab-list{flex:1}.proj-editor-container .react-tabs__tab-container .btn--run,.proj-editor-container .react-tabs__tab-container .btn--stop,.proj-runner-container .react-tabs__tab-container .btn--run,.proj-runner-container .react-tabs__tab-container .btn--stop{margin-block-start:0;margin-block-end:0}.--light .proj-runner-container,.--light .proj-editor-container,.--light .sidebar{background-color:#fff}@media screen and (min-width: 601px){.--light .proj-runner-container,.--light .proj-editor-container,.--light .sidebar{border:1px solid #d5d7dc}}.--dark .proj-runner-container,.--dark .proj-editor-container,.--dark .sidebar{background-color:#2a2b32}@media screen and (min-width: 601px){.--dark .proj-runner-container,.--dark .proj-editor-container,.--dark .sidebar{border:1px solid #4a4d59}}",""])},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){for(var t=[],n=0,r=Object.keys(e);n4?e:void 0}());var t},r.isLegacyOpera=function(){return!!window.opera}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.prototype.hasOwnProperty;t.default=function(e,t){var n=Object.keys(e),i=Object.keys(t);if(n.length!==i.length)return!1;for(var o=0;o=0&&r0&&/[^\S\r\n]/.test(e[t-1]),o=n=0)&&o(e,!n)}e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.resetState=function(){a&&(a.removeAttribute?a.removeAttribute("aria-hidden"):null!=a.length?a.forEach((function(e){return e.removeAttribute("aria-hidden")})):document.querySelectorAll(a).forEach((function(e){return e.removeAttribute("aria-hidden")})));a=null},t.log=function(){0},t.assertNodeList=l,t.setElement=function(e){var t=e;if("string"==typeof t&&s.canUseDOM){var n=document.querySelectorAll(t);l(n,t),t=n}return a=t||a},t.validateElement=c,t.hide=function(e){var t=!0,n=!1,r=void 0;try{for(var i,o=c(e)[Symbol.iterator]();!(t=(i=o.next()).done);t=!0){i.value.setAttribute("aria-hidden","true")}}catch(e){n=!0,r=e}finally{try{!t&&o.return&&o.return()}finally{if(n)throw r}}},t.show=function(e){var t=!0,n=!1,r=void 0;try{for(var i,o=c(e)[Symbol.iterator]();!(t=(i=o.next()).done);t=!0){i.value.removeAttribute("aria-hidden")}}catch(e){n=!0,r=e}finally{try{!t&&o.return&&o.return()}finally{if(n)throw r}}},t.documentNotReadyOrSSRTesting=function(){a=null};var r,i=n(422),o=(r=i)&&r.__esModule?r:{default:r},s=n(105);var a=null;function l(e,t){if(!e||!e.length)throw new Error("react-modal: No elements were found for selector "+t+".")}function c(e){var t=e||a;return t?Array.isArray(t)||t instanceof HTMLCollection||t instanceof NodeList?t:[t]:((0,o.default)(!1,["react-modal: App element is not defined.","Please use `Modal.setAppElement(el)` or set `appElement={el}`.","This is needed so screen readers don't see main content","when modal is opened. It is not recommended, but you can opt-out","by setting `ariaHideApp={false}`."].join(" ")),[])}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.log=function(){console.log("portalOpenInstances ----------"),console.log(i.openInstances.length),i.openInstances.forEach((function(e){return console.log(e)})),console.log("end portalOpenInstances ----------")},t.resetState=function(){i=new r};var r=function e(){var t=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.register=function(e){-1===t.openInstances.indexOf(e)&&(t.openInstances.push(e),t.emit("register"))},this.deregister=function(e){var n=t.openInstances.indexOf(e);-1!==n&&(t.openInstances.splice(n,1),t.emit("deregister"))},this.subscribe=function(e){t.subscribers.push(e)},this.emit=function(e){t.subscribers.forEach((function(n){return n(e,t.openInstances.slice())}))},this.openInstances=[],this.subscribers=[]},i=new r;t.default=i},function(e,t,n){"use strict";var r=n(14);t.createRoot=r.createRoot,t.hydrateRoot=r.hydrateRoot},function(e,t,n){"use strict";function r(){return"undefined"!=typeof __SENTRY_BROWSER_BUNDLE__&&!!__SENTRY_BROWSER_BUNDLE__}n.d(t,"a",(function(){return r}))},function(e,t,n){"use strict";n.d(t,"a",(function(){return s}));var r=n(195),i=n(11),o=n(10);function s(){Object(r.a)("error",a),Object(r.a)("unhandledrejection",a)}function a(){const e=Object(o.a)();if(e){const t="internal_error";("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&i.c.log(`[Tracing] Transaction: ${t} -> Global error occured`),e.setStatus(t)}}},function(e,t,n){"use strict";e.exports=n(209)},function(e,t,n){"use strict";(function(t){var r=n(116),i=n(212),o=n(215);const s=parseInt(t.env.PARSE_LINK_HEADER_MAXLEN)||2e3,a=null!=t.env.PARSE_LINK_HEADER_THROW_ON_MAXLEN_EXCEEDED;function l(e){return e&&e.rel}function c(e,t){return t.rel.split(/\s+/).forEach((function(n){e[n]=o(t,{rel:n})})),e}function u(e,t){var n=t.match(/\s*(.+)\s*=\s*"?([^"]+)"?/);return n&&(e[n[1]]=n[2]),e}function d(e){try{var t=e.match(/]*)>(.*)/),n=t[1],s=t[2].split(";"),a=i.parse(n),l=r.parse(a.query);s.shift();var c=s.reduce(u,{});return(c=o(l,c)).url=n,c}catch(e){return null}}e.exports=function(e){return function(e){if(!e)return!1;if(e.length>s){if(a)throw new Error("Input string too long, it should be under "+s+" characters.");return!1}return!0}(e)?e.split(/,\s*1),t})),a(e,u(e),n),c&&(n=i(n,7,l));for(var d=t.length;d--;)o(n,t[d]);return n}));e.exports=d},function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),o=this&&this.__assign||Object.assign||function(e){for(var t,n=1,r=arguments.length;nthis.startX&&(this.setState({checked:!0}),this.startX=t,this.activated=tn?this.previouslyChecked!==this.state.checked&&(this.setState({checked:!1}),this.previouslyChecked=this.state.checked,t.click()):this.startX-4=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(t,["className","icons"])),o=(0,a.default)("react-toggle",{"react-toggle--checked":this.state.checked,"react-toggle--focus":this.state.hasFocus,"react-toggle--disabled":this.props.disabled},n);return s.default.createElement("div",{className:o,onClick:this.handleClick,onTouchStart:this.handleTouchStart,onTouchMove:this.handleTouchMove,onTouchEnd:this.handleTouchEnd},s.default.createElement("div",{className:"react-toggle-track"},s.default.createElement("div",{className:"react-toggle-track-check"},this.getIcon("checked")),s.default.createElement("div",{className:"react-toggle-track-x"},this.getIcon("unchecked"))),s.default.createElement("div",{className:"react-toggle-thumb"}),s.default.createElement("input",r({},i,{ref:function(t){e.input=t},onFocus:this.handleFocus,onBlur:this.handleBlur,className:"react-toggle-screenreader-only",type:"checkbox"})))}}]),t}(o.PureComponent);t.default=p,p.displayName="Toggle",p.defaultProps={icons:{checked:s.default.createElement(c.default,null),unchecked:s.default.createElement(u.default,null)}},p.propTypes={checked:l.default.bool,disabled:l.default.bool,defaultChecked:l.default.bool,onChange:l.default.func,onFocus:l.default.func,onBlur:l.default.func,className:l.default.string,name:l.default.string,value:l.default.string,id:l.default.string,"aria-labelledby":l.default.string,"aria-label":l.default.string,icons:l.default.oneOfType([l.default.bool,l.default.shape({checked:l.default.node,unchecked:l.default.node})])}},function(e,t,n){var r;"undefined"!=typeof self&&self,e.exports=(r=n(0),function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=3)}([function(e,t){e.exports=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Validate=t.Time=void 0;var r=o(n(5)),i=o(n(6));function o(e){return e&&e.__esModule?e:{default:e}}t.Time=r.default,t.Validate=i.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useInterval=void 0;var r=function(e){return e&&e.__esModule?e:{default:e}}(n(7));t.useInterval=r.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useTime=t.useStopwatch=t.useTimer=void 0;var r=Object.assign||function(e){for(var t=1;t1&&void 0!==arguments[1])||arguments[1];$(c(e)),A(t),w(t),m(e),y(s.Time.getSecondsFromExpiry(e))}function R(){var e=new Date;e.setMilliseconds(e.getMilliseconds()+1e3*v),P(e)}return(0,a.useInterval)((function(){M!==l&&$(l);var e=s.Time.getSecondsFromExpiry(f);y(e),e<=0&&(s.Validate.onExpire(n)&&n(),w(!1),$(null))}),x?M:null),r({},s.Time.getTimeFromSeconds(v),{start:function(){E?(y(s.Time.getSecondsFromExpiry(f)),w(!0)):R()},pause:function(){w(!1)},resume:R,restart:P,isRunning:x})};var o=n(0),s=n(1),a=n(2),l=1e3;function c(e){if(!s.Validate.expiryTimestamp(e))return null;var t=s.Time.getSecondsFromExpiry(e),n=Math.floor(1e3*(t-Math.floor(t)));return n>0?n:l}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n0){var r=n/1e3;return t?Math.round(r):r}return 0}},{key:"getSecondsFromPrevTime",value:function(e,t){var n=(new Date).getTime()-e;if(n>0){var r=n/1e3;return t?Math.round(r):r}return 0}},{key:"getSecondsFromTimeNow",value:function(){var e=new Date;return e.getTime()/1e3-60*e.getTimezoneOffset()}},{key:"getFormattedTimeFromSeconds",value:function(t,n){var r=e.getTimeFromSeconds(t),i=r.seconds,o=r.minutes,s=r.hours,a="",l=s;return"12-hour"===n&&(a=s>=12?"pm":"am",l=s%12),{seconds:i,minutes:o,hours:l,ampm:a}}}]),e}();t.default=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n0;return t||console.warn("react-timer-hook: { useTimer } Invalid expiryTimestamp settings",e),t}},{key:"onExpire",value:function(e){var t=e&&"function"==typeof e;return e&&!t&&console.warn("react-timer-hook: { useTimer } Invalid onExpire settings function",e),t}}]),e}();t.default=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var n=(0,r.useRef)();(0,r.useEffect)((function(){n.current=e})),(0,r.useEffect)((function(){if(!t)return function(){};var e=setInterval((function(){n.current&&n.current()}),t);return function(){return clearInterval(e)}}),[t])};var r=n(0)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:0,t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=s.Time.getSecondsFromExpiry(e,!0)||0,r=new Date;m(r),d(n),w(t),y(n+s.Time.getSecondsFromPrevTime(r,!0))},isRunning:x})};var o=n(0),s=n(1),a=n(2)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;tparseInt(e.userAgent.split("Firefox/")[1],10),e.hasTouch=!!e.win.TouchEvent,e.marginNames=["plotTop","marginRight","marginBottom","plotLeft"],e.noop=function(){},e.supportsPassiveEvents=function(){var t=!1;if(!e.isMS){var n=Object.defineProperty({},"passive",{get:function(){t=!0}});e.win.addEventListener&&e.win.removeEventListener&&(e.win.addEventListener("testPassive",e.noop,n),e.win.removeEventListener("testPassive",e.noop,n))}return t}(),e.charts=[],e.dateFormats={},e.seriesTypes={},e.symbolSizes={},e.chartCount=0}(t||(t={})),t})),t(n,"Core/Utilities.js",[n["Core/Globals.js"]],(function(e){function t(n,r,i,o){var s=r?"Highcharts error":"Highcharts warning";32===n&&(n=s+": Deprecated member");var a=l(n),c=a?s+" #"+n+": www.highcharts.com/errors/"+n+"/":n.toString();if(void 0!==o){var u="";a&&(c+="?"),m(o,(function(e,t){u+="\n - "+t+": "+e,a&&(c+=encodeURI(t)+"="+encodeURI(e))})),c+=u}b(e,"displayError",{chart:i,code:n,message:c,params:o},(function(){if(r)throw Error(c);S.console&&-1===t.messages.indexOf(c)&&console.warn(c)})),t.messages.push(c)}function n(e,t){return parseInt(e,t||10)}function r(e){return"string"==typeof e}function i(e){return"[object Array]"===(e=Object.prototype.toString.call(e))||"[object Array Iterator]"===e}function o(e,t){return!(!e||"object"!=typeof e||t&&i(e))}function s(e){return o(e)&&"number"==typeof e.nodeType}function a(e){var t=e&&e.constructor;return!(!o(e,!0)||s(e)||!t||!t.name||"Object"===t.name)}function l(e){return"number"==typeof e&&!isNaN(e)&&1/0>e&&-1/0n&&(n=e[t]);return n},arrayMin:function(e){for(var t=e.length,n=e[0];t--;)e[t]t?e=o-1&&(o=Math.floor(s)),Math.max(0,o-(a(i,"padding-left",!0)||0)-(a(i,"padding-right",!0)||0));if("height"===o)return Math.max(0,Math.min(i.offsetHeight,i.scrollHeight)-(a(i,"padding-top",!0)||0)-(a(i,"padding-bottom",!0)||0));if(S.getComputedStyle||t(27,!0),i=S.getComputedStyle(i,void 0)){var l=i.getPropertyValue(o);h(s,"opacity"!==o)&&(l=n(l))}return l},inArray:function(e,n,r){return t(32,!1,void 0,{"Highcharts.inArray":"use Array.indexOf"}),n.indexOf(e,r)},isArray:i,isClass:a,isDOMElement:s,isFunction:function(e){return"function"==typeof e},isNumber:l,isObject:o,isString:r,keys:function(e){return t(32,!1,void 0,{"Highcharts.keys":"use Object.keys"}),Object.keys(e)},merge:function(){var e,t=arguments,n={},r=function(e,t){return"object"!=typeof e&&(e={}),m(t,(function(n,i){"__proto__"!==i&&"constructor"!==i&&(!o(n,!0)||a(n)||s(n)?e[i]=t[i]:e[i]=r(e[i]||{},n))})),e};!0===t[0]&&(n=t[1],t=Array.prototype.slice.call(t,2));var i=t.length;for(e=0;e=n&&(t=[1/n]))),r=0;r=e||!i&&s<=(t[r]+(t[r+1]||t[r]))/2));r++);return f(o*n,-Math.round(Math.log(.001)/Math.LN10))},objectEach:m,offset:function(e){var t=y.documentElement;return{top:(e=e.parentElement||e.parentNode?e.getBoundingClientRect():{top:0,left:0,width:0,height:0}).top+(S.pageYOffset||t.scrollTop)-(t.clientTop||0),left:e.left+(S.pageXOffset||t.scrollLeft)-(t.clientLeft||0),width:e.width,height:e.height}},pad:function(e,t,n){return Array((t||2)+1-String(e).replace("-","").length).join(n||"0")+e},pick:h,pInt:n,relativeLength:function(e,t,n){return/%$/.test(e)?t*parseFloat(e)/100+(n||0):parseFloat(e)},removeEvent:g,splat:function(e){return i(e)?e:[e]},stableSort:function(e,t){var n,r,i=e.length;for(r=0;r>16,(65280&i)>>8,255&i,1]:4===r&&(n=[(3840&i)>>4|(3840&i)>>8,(240&i)>>4|240&i,(15&i)<<4|15&i,1])}if(!n)for(i=t.parsers.length;i--&&!n;){var o=t.parsers[i];(r=o.regex.exec(e))&&(n=o.parse(r))}}n&&(this.rgba=n)},t.prototype.get=function(e){var t=this.input,i=this.rgba;if("object"==typeof t&&void 0!==this.stops){var o=r(t);return o.stops=[].slice.call(o.stops),this.stops.forEach((function(t,n){o.stops[n]=[o.stops[n][0],t.get(e)]})),o}return i&&n(i[0])?"rgb"===e||!e&&1===i[3]?"rgb("+i[0]+","+i[1]+","+i[2]+")":"a"===e?""+i[3]:"rgba("+i.join(",")+")":t},t.prototype.brighten=function(e){var t=this.rgba;if(this.stops)this.stops.forEach((function(t){t.brighten(e)}));else if(n(e)&&0!==e)for(var r=0;3>r;r++)t[r]+=i(255*e),0>t[r]&&(t[r]=0),255d?"AM":"PM",P:12>d?"am":"pm",S:c(a.getSeconds()),L:c(Math.floor(n%1e3),3)},e.dateFormats),l(a,(function(e,r){for(;-1!==t.indexOf("%"+r);)t=t.replace("%"+r,"function"==typeof e?e.call(s,n):e)})),i?t.substr(0,1).toUpperCase()+t.substr(1):t},t.prototype.resolveDTLFormat=function(e){return s(e,!0)?e:{main:(e=d(e))[0],from:e[1],to:e[2]}},t.prototype.getTimeTicks=function(e,t,n,i){var s,a=this,l=[],c={},d=new a.Date(t),p=e.unitRange,f=e.count||1;if(i=u(i,1),r(t)){if(a.set("Milliseconds",d,p>=h.second?0:f*Math.floor(a.get("Milliseconds",d)/f)),p>=h.second&&a.set("Seconds",d,p>=h.minute?0:f*Math.floor(a.get("Seconds",d)/f)),p>=h.minute&&a.set("Minutes",d,p>=h.hour?0:f*Math.floor(a.get("Minutes",d)/f)),p>=h.hour&&a.set("Hours",d,p>=h.day?0:f*Math.floor(a.get("Hours",d)/f)),p>=h.day&&a.set("Date",d,p>=h.month?1:Math.max(1,f*Math.floor(a.get("Date",d)/f))),p>=h.month){a.set("Month",d,p>=h.year?0:f*Math.floor(a.get("Month",d)/f));var m=a.get("FullYear",d)}p>=h.year&&a.set("FullYear",d,m-m%f),p===h.week&&(m=a.get("Day",d),a.set("Date",d,a.get("Date",d)-m+i+(m4*h.month||a.getTimezoneOffset(t)!==a.getTimezoneOffset(n)),t=d.getTime(),d=1;tl.length&&l.forEach((function(e){0==e%18e5&&"000000000"===a.dateFormat("%H%M%S%L",e)&&(c[e]="day")}))}return l.info=o(e,{higherRanks:c,totalRange:p*f}),l},t.prototype.getDateFormat=function(e,t,n,r){var i=this.dateFormat("%m-%d %H:%M:%S.%L",t),o={millisecond:15,second:12,minute:9,hour:6,day:3},s="millisecond";for(a in h){if(e===h.week&&+this.dateFormat("%w",t)===n&&"00:00:00.000"===i.substr(6)){var a="week";break}if(h[a]>e){a=s;break}if(o[a]&&i.substr(o[a])!=="01-01 00:00:00.000".substr(o[a]))break;"week"!==a&&(s=a)}if(a)var l=this.resolveDTLFormat(r[a]).main;return l},t}()})),t(n,"Core/DefaultOptions.js",[n["Core/Chart/ChartDefaults.js"],n["Core/Color/Color.js"],n["Core/Globals.js"],n["Core/Color/Palettes.js"],n["Core/Time.js"],n["Core/Utilities.js"]],(function(e,t,n,r,i,o){t=t.parse;var s=o.merge,a={colors:r.colors,symbols:["circle","diamond","square","triangle","triangle-down"],lang:{loading:"Loading...",months:"January February March April May June July August September October November December".split(" "),shortMonths:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),weekdays:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),decimalPoint:".",numericSymbols:"kMGTPE".split(""),resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:" "},global:{},time:{Date:void 0,getTimezoneOffset:void 0,timezone:void 0,timezoneOffset:0,useUTC:!0},chart:e,title:{text:"Chart title",align:"center",margin:15,widthAdjust:-44},subtitle:{text:"",align:"center",widthAdjust:-44},caption:{margin:15,text:"",align:"left",verticalAlign:"bottom"},plotOptions:{},labels:{style:{position:"absolute",color:"#333333"}},legend:{enabled:!0,align:"center",alignColumns:!0,className:"highcharts-no-tooltip",layout:"horizontal",labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{activeColor:"#003399",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",cursor:"pointer",fontSize:"12px",fontWeight:"bold",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#cccccc"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:n.svg,borderRadius:3,dateTimeLabelFormats:{millisecond:"%A, %b %e, %H:%M:%S.%L",second:"%A, %b %e, %H:%M:%S",minute:"%A, %b %e, %H:%M",hour:"%A, %b %e, %H:%M",day:"%A, %b %e, %Y",week:"Week from %A, %b %e, %Y",month:"%B %Y",year:"%Y"},footerFormat:"",headerShape:"callout",hideDelay:500,padding:8,shape:"callout",shared:!1,snap:n.isTouchDevice?25:10,headerFormat:'{point.key}
',pointFormat:' {series.name}: {point.y}
',backgroundColor:t("#f7f7f7").setOpacity(.85).get(),borderWidth:1,shadow:!0,stickOnContact:!1,style:{color:"#333333",cursor:"default",fontSize:"12px",whiteSpace:"nowrap"},useHTML:!1},credits:{enabled:!0,href:"https://www.highcharts.com?credits",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"9px"},text:"Highcharts.com"}};a.chart.styledMode=!1;var l=new i(s(a.global,a.time));return e={defaultOptions:a,defaultTime:l,getOptions:function(){return a},setOptions:function(e){return s(!0,a,e),(e.time||e.global)&&(n.time?n.time.update(s(a.global,a.time,e.global,e.time)):n.time=l),a}}})),t(n,"Core/Animation/Fx.js",[n["Core/Color/Color.js"],n["Core/Globals.js"],n["Core/Utilities.js"]],(function(e,t,n){var r=e.parse,i=t.win,o=n.isNumber,s=n.objectEach;return function(){function e(e,t,n){this.pos=NaN,this.options=t,this.elem=e,this.prop=n}return e.prototype.dSetter=function(){var e=this.paths,t=e&&e[0];e=e&&e[1];var n=this.now||0,r=[];if(1!==n&&t&&e)if(t.length===e.length&&1>n)for(var i=0;i=o+this.startTime){this.now=this.end,this.pos=1,this.update();var l=a[this.prop]=!0;s(a,(function(e){!0!==e&&(l=!1)})),l&&i&&i.call(r),e=!1}else this.pos=n.easing((t-this.startTime)/o),this.now=this.start+(this.end-this.start)*this.pos,this.update(),e=!0;return e},e.prototype.initPath=function(e,t,n){function r(e,t){for(;e.lengthu[1]){var h=t+ +u[1];0<=h?(u[0]=(+u[0]).toExponential(h).split("e")[0],t=h):(u[0]=u[0].split(".")[0]||0,e=20>t?(u[0]*Math.pow(10,u[1])).toFixed(t):0,u[1]=0)}}else t=2;h=(Math.abs(u[1]?u[0]:e)+Math.pow(10,-Math.max(t,c)-1)).toFixed(t);var p=3<(c=String(l(h))).length?c.length%3:0;return n=a(n,o.decimalPoint),i=a(i,o.thousandsSep),e=(0>e?"-":"")+(p?c.substr(0,p)+i:""),e=0>+u[1]&&!d?"0":e+c.substr(p).replace(/(\d{3})(?=\d)/g,"$1"+i),t&&(e+=n+h.slice(-t)),u[1]&&0!=+e&&(e+="e"+u[1]),e}var r=e.defaultOptions,i=e.defaultTime,o=t.getNestedProperty,s=t.isNumber,a=t.pick,l=t.pInt;return{dateFormat:function(e,t,n){return i.dateFormat(e,t,n)},format:function(e,t,s){var a="{",l=!1,c=/f$/,u=/\.([0-9])/,d=r.lang,h=s&&s.time||i;s=s&&s.numberFormatter||n;for(var p=[];e;){var f=e.indexOf(a);if(-1===f)break;var m=e.slice(0,f);if(l){if(m=m.split(":"),a=o(m.shift()||"",t),m.length&&"number"==typeof a)if(m=m.join(":"),c.test(m)){var g=parseInt((m.match(u)||["","-1"])[1],10);null!==a&&(a=s(a,g,d.decimalPoint,-1c){for(i(t,u),f=a=0;f<=c;)f+=t[a].size,a++;p=t.splice(a-1,t.length)}for(i(t,d),t=t.map((function(e){return{size:e.size,targets:[e.target],align:r(e.align,.5)}}));h;){for(a=t.length;a--;)c=t[a],u=(Math.min.apply(0,c.targets)+Math.max.apply(0,c.targets))/2,c.pos=n(u-c.size*c.align,0,o-c.size);for(a=t.length,h=!1;a--;)0t[a].pos&&(t[a-1].size+=t[a].size,t[a-1].targets=t[a-1].targets.concat(t[a].targets),t[a-1].align=.5,t[a-1].pos+t[a-1].size>o&&(t[a-1].pos=o-t[a-1].size),t.splice(a,1),h=!0)}return l.push.apply(l,p),a=0,t.some((function(t){var n=0;return(t.targets||[]).some((function(){return l[a].pos=t.pos+n,void 0!==s&&Math.abs(l[a].pos-l[a].target)>s?(l.slice(0,a+1).forEach((function(e){return delete e.pos})),l.reducedLen=(l.reducedLen||o)-.1*o,l.reducedLen>.1*o&&e(l,o,s),!0):(n+=l[a].size,a++,!1)}))})),i(l,d),l}}(t||(t={})),t})),t(n,"Core/Renderer/SVG/SVGElement.js",[n["Core/Animation/AnimationUtilities.js"],n["Core/Renderer/HTML/AST.js"],n["Core/Color/Color.js"],n["Core/Globals.js"],n["Core/Utilities.js"]],(function(e,t,n,r,i){var o=e.animate,s=e.animObject,a=e.stop,l=r.deg2rad,c=r.doc,u=r.noop,d=r.svg,h=r.SVG_NS,p=r.win,f=i.addEvent,m=i.attr,g=i.createElement,b=i.css,v=i.defined,y=i.erase,S=i.extend,_=i.fireEvent,x=i.isArray,w=i.isFunction,k=i.isNumber,O=i.isString,E=i.merge,A=i.objectEach,T=i.pick,C=i.pInt,M=i.syncTimeout,$=i.uniqueKey;return(e=function(){function e(){this.element=void 0,this.onEvents={},this.opacity=1,this.renderer=void 0,this.SVG_NS=h,this.symbolCustomAttribs="x y width height r start end innerR anchorX anchorY rounded".split(" ")}return e.prototype._defaultGetter=function(e){return e=T(this[e+"Value"],this[e],this.element?this.element.getAttribute(e):null,0),/^[\-0-9\.]+$/.test(e)&&(e=parseFloat(e)),e},e.prototype._defaultSetter=function(e,t,n){n.setAttribute(t,e)},e.prototype.add=function(e){var t=this.renderer,n=this.element;if(e&&(this.parentGroup=e),this.parentInverted=e&&e.inverted,void 0!==this.textStr&&"text"===this.element.nodeName&&t.buildText(this),this.added=!0,!e||e.handleZ||this.zIndex)var r=this.zIndexSetter();return r||(e?e.element:t.box).appendChild(n),this.onAdd&&this.onAdd(),this},e.prototype.addClass=function(e,t){var n=t?"":this.attr("class")||"";return(e=(e||"").split(/ /g).reduce((function(e,t){return-1===n.indexOf(t)&&e.push(t),e}),n?[n]:[]).join(" "))!==n&&this.attr("class",e),this},e.prototype.afterSetters=function(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)},e.prototype.align=function(e,t,n){var r,i,o,s={},a=this.renderer,l=a.alignedObjects;e?(this.alignOptions=e,this.alignByTranslate=t,(!n||O(n))&&(this.alignTo=r=n||"renderer",y(l,this),l.push(this),n=void 0)):(e=this.alignOptions,t=this.alignByTranslate,r=this.alignTo),n=T(n,a[r],"scrollablePlotBox"===r?a.plotBox:void 0,a),r=e.align;var c=e.verticalAlign;return a=(n.x||0)+(e.x||0),l=(n.y||0)+(e.y||0),"right"===r?i=1:"center"===r&&(i=2),i&&(a+=(n.width-(e.width||0))/i),s[t?"translateX":"x"]=Math.round(a),"bottom"===c?o=1:"middle"===c&&(o=2),o&&(l+=(n.height-(e.height||0))/o),s[t?"translateY":"y"]=Math.round(l),this[this.placed?"animate":"attr"](s),this.placed=!0,this.alignAttr=s,this},e.prototype.alignSetter=function(e){var t={left:"start",center:"middle",right:"end"};t[e]&&(this.alignValue=e,this.element.setAttribute("text-anchor",t[e]))},e.prototype.animate=function(e,t,n){var r=this,i=s(T(t,this.renderer.globalAnimation,!0));return t=i.defer,T(c.hidden,c.msHidden,c.webkitHidden,!1)&&(i.duration=0),0!==i.duration?(n&&(i.complete=n),M((function(){r.element&&o(r,e,i)}),t)):(this.attr(e,void 0,n),A(e,(function(e,t){i.step&&i.step.call(this,e,{prop:t,pos:1,elem:this})}),this)),this},e.prototype.applyTextOutline=function(e){var t=this.element;-1!==e.indexOf("contrast")&&(e=e.replace(/contrast/g,this.renderer.getContrast(t.style.fill)));var n=e.split(" ");if(e=n[n.length-1],(n=n[0])&&"none"!==n&&r.svg){this.fakeTS=!0,this.ySetter=this.xSetter,n=n.replace(/(^[\d\.]+)(.*?)$/g,(function(e,t,n){return 2*Number(t)+n})),this.removeTextOutline();var i=c.createElementNS(h,"tspan");m(i,{class:"highcharts-text-outline",fill:e,stroke:e,"stroke-width":n,"stroke-linejoin":"round"}),[].forEach.call(t.childNodes,(function(e){var t=e.cloneNode(!0);t.removeAttribute&&["fill","stroke","stroke-width","stroke"].forEach((function(e){return t.removeAttribute(e)})),i.appendChild(t)}));var o=c.createElementNS(h,"tspan");o.textContent="​",["x","y"].forEach((function(e){var n=t.getAttribute(e);n&&o.setAttribute(e,n)})),i.appendChild(o),t.insertBefore(i,t.firstChild)}},e.prototype.attr=function(e,t,n,r){var i,o,s,l=this.element,c=this.symbolCustomAttribs,u=this;if("string"==typeof e&&void 0!==t){var d=e;(e={})[d]=t}return"string"==typeof e?u=(this[e+"Getter"]||this._defaultGetter).call(this,e,l):(A(e,(function(t,n){o=!1,r||a(this,n),this.symbolName&&-1!==c.indexOf(n)&&(i||(this.symbolAttr(e),i=!0),o=!0),!this.rotation||"x"!==n&&"y"!==n||(this.doTransform=!0),o||((s=this[n+"Setter"]||this._defaultSetter).call(this,t,n,l),!this.styledMode&&this.shadows&&/^(width|height|visibility|x|y|d|transform|cx|cy|r)$/.test(n)&&this.updateShadows(n,t,s))}),this),this.afterSetters()),n&&n.call(this),u},e.prototype.clip=function(e){return this.attr("clip-path",e?"url("+this.renderer.url+"#"+e.id+")":"none")},e.prototype.crisp=function(e,t){t=t||e.strokeWidth||0;var n=Math.round(t)%2/2;return e.x=Math.floor(e.x||this.x||0)+n,e.y=Math.floor(e.y||this.y||0)+n,e.width=Math.floor((e.width||this.width||0)-2*n),e.height=Math.floor((e.height||this.height||0)-2*n),v(e.strokeWidth)&&(e.strokeWidth=t),e},e.prototype.complexColor=function(e,t,r){var i,o,s,a,l,c,u,d,h,p,f,m=this.renderer,g=[];_(this.renderer,"complexColor",{args:arguments},(function(){if(e.radialGradient?o="radialGradient":e.linearGradient&&(o="linearGradient"),o){if(s=e[o],l=m.gradients,c=e.stops,h=r.radialReference,x(s)&&(e[o]=s={x1:s[0],y1:s[1],x2:s[2],y2:s[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===o&&h&&!v(s.gradientUnits)&&(a=s,s=E(s,m.getRadialAttr(h,a),{gradientUnits:"userSpaceOnUse"})),A(s,(function(e,t){"id"!==t&&g.push(t,e)})),A(c,(function(e){g.push(e)})),g=g.join(","),l[g])p=l[g].attr("id");else{s.id=p=$();var b=l[g]=m.createElement(o).attr(s).add(m.defs);b.radAttr=a,b.stops=[],c.forEach((function(e){0===e[1].indexOf("rgba")?(i=n.parse(e[1]),u=i.get("rgb"),d=i.get("a")):(u=e[1],d=1),e=m.createElement("stop").attr({offset:e[0],"stop-color":u,"stop-opacity":d}).add(b),b.stops.push(e)}))}f="url("+m.url+"#"+p+")",r.setAttribute(t,f),r.gradient=g,e.toString=function(){return f}}}))},e.prototype.css=function(e){var t=this.styles,n={},r=this.element,i=["textOutline","textOverflow","width"],o="",s=!t;if(e&&e.color&&(e.fill=e.color),t&&A(e,(function(e,r){t&&t[r]!==e&&(n[r]=e,s=!0)})),s){if(t&&(e=S(t,n)),e)if(null===e.width||"auto"===e.width)delete this.textWidth;else if("text"===r.nodeName.toLowerCase()&&e.width)var a=this.textWidth=C(e.width);if(this.styles=e,a&&!d&&this.renderer.forExport&&delete e.width,r.namespaceURI===this.SVG_NS){var l=function(e,t){return"-"+t.toLowerCase()};A(e,(function(e,t){-1===i.indexOf(t)&&(o+=t.replace(/([A-Z])/g,l)+":"+e+";")})),o&&m(r,"style",o)}else b(r,e);this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),e&&e.textOutline&&this.applyTextOutline(e.textOutline))}return this},e.prototype.dashstyleSetter=function(e){var t=this["stroke-width"];if("inherit"===t&&(t=1),e=e&&e.toLowerCase()){var n=e.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(e=n.length;e--;)n[e]=""+C(n[e])*T(t,NaN);e=n.join(",").replace(/NaN/g,"none"),this.element.setAttribute("stroke-dasharray",e)}},e.prototype.destroy=function(){var e=this,t=e.element||{},n=e.renderer,r=t.ownerSVGElement,i=n.isSVG&&"SPAN"===t.nodeName&&e.parentGroup||void 0;if(t.onclick=t.onmouseout=t.onmouseover=t.onmousemove=t.point=null,a(e),e.clipPath&&r){var o=e.clipPath;[].forEach.call(r.querySelectorAll("[clip-path],[CLIP-PATH]"),(function(e){-1d.width)&&(d={width:0,height:0})}else d=this.htmlGetBBox();if(r.isSVG&&(t=d.width,r=d.height,u&&(d.height=r={"11px,17":14,"13px,20":16}[(h||"")+","+Math.round(r)]||r),n&&(u=n*l,d.width=Math.abs(r*Math.sin(u))+Math.abs(t*Math.cos(u)),d.height=Math.abs(r*Math.cos(u))+Math.abs(t*Math.sin(u)))),p&&(""===s||0]*>/g,"").replace(/</g,"<").replace(/>/g,">")},e.prototype.toFront=function(){var e=this.element;return e.parentNode.appendChild(e),this},e.prototype.translate=function(e,t){return this.attr({translateX:e,translateY:t})},e.prototype.updateShadows=function(e,t,n){var r=this.shadows;if(r)for(var i=r.length;i--;)n.call(r[i],"height"===e?Math.max(t-(r[i].cutHeight||0),0):"d"===e?this.d:t,e,r[i])},e.prototype.updateTransform=function(){var e=this.scaleX,t=this.scaleY,n=this.inverted,r=this.rotation,i=this.matrix,o=this.element,s=this.translateX||0,a=this.translateY||0;n&&(s+=this.width,a+=this.height),s=["translate("+s+","+a+")"],v(i)&&s.push("matrix("+i.join(",")+")"),n?s.push("rotate(90) scale(-1,1)"):r&&s.push("rotate("+r+" "+T(this.rotationOriginX,o.getAttribute("x"),0)+" "+T(this.rotationOriginY,o.getAttribute("y")||0)+")"),(v(e)||v(t))&&s.push("scale("+T(e,1)+" "+T(t,1)+")"),s.length&&o.setAttribute("transform",s.join(" "))},e.prototype.visibilitySetter=function(e,t,n){"inherit"===e?n.removeAttribute(t):this[t]!==e&&n.setAttribute(t,e),this[t]=e},e.prototype.xGetter=function(e){return"circle"===this.element.nodeName&&("x"===e?e="cx":"y"===e&&(e="cy")),this._defaultGetter(e)},e.prototype.zIndexSetter=function(e,t){var n=this.renderer,r=this.parentGroup,i=(r||n).element||n.box,o=this.element;n=i===n.box;var s,a=!1,l=this.added;if(v(e)?(o.setAttribute("data-z-index",e),e=+e,this[t]===e&&(l=!1)):v(this[t])&&o.removeAttribute("data-z-index"),this[t]=e,l){for((e=this.zIndex)&&r&&(r.handleZ=!0),s=(t=i.childNodes).length-1;0<=s&&!a;s--){l=(r=t[s]).getAttribute("data-z-index");var c=!v(l);r!==o&&(0>e&&c&&!n&&!s?(i.insertBefore(o,t[s]),a=!0):(C(l)<=e||c&&(!v(e)||0<=e))&&(i.insertBefore(o,t[s+1]||null),a=!0))}a||(i.insertBefore(o,t[n?3:0]||null),a=!0)}return a},e}()).prototype["stroke-widthSetter"]=e.prototype.strokeSetter,e.prototype.yGetter=e.prototype.xGetter,e.prototype.matrixSetter=e.prototype.rotationOriginXSetter=e.prototype.rotationOriginYSetter=e.prototype.rotationSetter=e.prototype.scaleXSetter=e.prototype.scaleYSetter=e.prototype.translateXSetter=e.prototype.translateYSetter=e.prototype.verticalAlignSetter=function(e,t){this[t]=e,this.doTransform=!0},e})),t(n,"Core/Renderer/RendererRegistry.js",[n["Core/Globals.js"]],(function(e){var t;return function(t){var n;t.rendererTypes={},t.getRendererType=function(e){return void 0===e&&(e=n),t.rendererTypes[e]||t.rendererTypes[n]},t.registerRendererType=function(r,i,o){t.rendererTypes[r]=i,n&&!o||(n=r,e.Renderer=i)}}(t||(t={})),t})),t(n,"Core/Renderer/SVG/SVGLabel.js",[n["Core/Renderer/SVG/SVGElement.js"],n["Core/Utilities.js"]],(function(e,t){var n=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),r=t.defined,i=t.extend,o=t.isNumber,s=t.merge,a=t.pick,l=t.removeEvent;return function(t){function c(e,n,r,i,o,s,a,l,u,d){var h,p=t.call(this)||this;return p.paddingLeftSetter=p.paddingSetter,p.paddingRightSetter=p.paddingSetter,p.init(e,"g"),p.textStr=n,p.x=r,p.y=i,p.anchorX=s,p.anchorY=a,p.baseline=u,p.className=d,p.addClass("button"===d?"highcharts-no-tooltip":"highcharts-label"),d&&p.addClass("highcharts-"+d),p.text=e.text(void 0,0,0,l).attr({zIndex:1}),"string"==typeof o&&((h=/^url\((.*?)\)$/.test(o))||p.renderer.symbols[o])&&(p.symbolKey=o),p.bBox=c.emptyBBox,p.padding=3,p.baselineOffset=0,p.needsBox=e.styledMode||h,p.deferredAttr={},p.alignFactor=0,p}return n(c,t),c.prototype.alignSetter=function(e){(e={left:0,center:.5,right:1}[e])!==this.alignFactor&&(this.alignFactor=e,this.bBox&&o(this.xSetting)&&this.attr({x:this.xSetting}))},c.prototype.anchorXSetter=function(e,t){this.anchorX=e,this.boxAttr(t,Math.round(e)-this.getCrispAdjust()-this.xSetting)},c.prototype.anchorYSetter=function(e,t){this.anchorY=e,this.boxAttr(t,e-this.ySetting)},c.prototype.boxAttr=function(e,t){this.box?this.box.attr(e,t):this.deferredAttr[e]=t},c.prototype.css=function(t){if(t){var n={};t=s(t),c.textProps.forEach((function(e){void 0!==t[e]&&(n[e]=t[e],delete t[e])})),this.text.css(n);var r="width"in n;"fontSize"in n||"fontWeight"in n?this.updateTextPadding():r&&this.updateBoxSize()}return e.prototype.css.call(this,t)},c.prototype.destroy=function(){l(this.element,"mouseenter"),l(this.element,"mouseleave"),this.text&&this.text.destroy(),this.box&&(this.box=this.box.destroy()),e.prototype.destroy.call(this)},c.prototype.fillSetter=function(e,t){e&&(this.needsBox=!0),this.fill=e,this.boxAttr(t,e)},c.prototype.getBBox=function(){this.textStr&&0===this.bBox.width&&0===this.bBox.height&&this.updateBoxSize();var e=this.padding,t=a(this.paddingLeft,e);return{width:this.width,height:this.height,x:this.bBox.x-t,y:this.bBox.y-e}},c.prototype.getCrispAdjust=function(){return this.renderer.styledMode&&this.box?this.box.strokeWidth()%2/2:(this["stroke-width"]?parseInt(this["stroke-width"],10):0)%2/2},c.prototype.heightSetter=function(e){this.heightSetting=e},c.prototype.onAdd=function(){var e=this.textStr;this.text.add(this),this.attr({text:r(e)?e:"",x:this.x,y:this.y}),this.box&&r(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})},c.prototype.paddingSetter=function(e,t){o(e)?e!==this[t]&&(this[t]=e,this.updateTextPadding()):this[t]=void 0},c.prototype.rSetter=function(e,t){this.boxAttr(t,e)},c.prototype.shadow=function(e){return e&&!this.renderer.styledMode&&(this.updateBoxSize(),this.box&&this.box.shadow(e)),this},c.prototype.strokeSetter=function(e,t){this.stroke=e,this.boxAttr(t,e)},c.prototype["stroke-widthSetter"]=function(e,t){e&&(this.needsBox=!0),this["stroke-width"]=e,this.boxAttr(t,e)},c.prototype["text-alignSetter"]=function(e){this.textAlign=e},c.prototype.textSetter=function(e){void 0!==e&&this.text.attr({text:e}),this.updateTextPadding()},c.prototype.updateBoxSize=function(){var e=this.text.element.style,t={},n=this.padding,s=this.bBox=o(this.widthSetting)&&o(this.heightSetting)&&!this.textAlign||!r(this.text.textStr)?c.emptyBBox:this.text.getBBox();this.width=this.getPaddedWidth(),this.height=(this.heightSetting||s.height||0)+2*n,e=this.renderer.fontMetrics(e&&e.fontSize,this.text),this.baselineOffset=n+Math.min((this.text.firstLineMetrics||e).b,s.height||1/0),this.heightSetting&&(this.baselineOffset+=(this.heightSetting-e.h)/2),this.needsBox&&(this.box||((n=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect()).addClass(("button"===this.className?"":"highcharts-label-box")+(this.className?" highcharts-"+this.className+"-box":"")),n.add(this)),n=this.getCrispAdjust(),t.x=n,t.y=(this.baseline?-this.baselineOffset:0)+n,t.width=Math.round(this.width),t.height=Math.round(this.height),this.box.attr(i(t,this.deferredAttr)),this.deferredAttr={})},c.prototype.updateTextPadding=function(){var e=this.text;this.updateBoxSize();var t=this.baseline?0:this.baselineOffset,n=a(this.paddingLeft,this.padding);r(this.widthSetting)&&this.bBox&&("center"===this.textAlign||"right"===this.textAlign)&&(n+={center:.5,right:1}[this.textAlign]*(this.widthSetting-this.bBox.width)),n===e.x&&t===e.y||(e.attr("x",n),e.hasBoxWidthChanged&&(this.bBox=e.getBBox(!0)),void 0!==t&&e.attr("y",t)),e.x=n,e.y=t},c.prototype.widthSetter=function(e){this.widthSetting=o(e)?e:void 0},c.prototype.getPaddedWidth=function(){var e=this.padding,t=a(this.paddingLeft,e);return e=a(this.paddingRight,e),(this.widthSetting||this.bBox.width||0)+t+e},c.prototype.xSetter=function(e){this.x=e,this.alignFactor&&(e-=this.alignFactor*this.getPaddedWidth(),this["forceAnimate:x"]=!0),this.xSetting=Math.round(e),this.attr("translateX",this.xSetting)},c.prototype.ySetter=function(e){this.ySetting=this.y=Math.round(e),this.attr("translateY",this.ySetting)},c.emptyBBox={width:0,height:0,x:0,y:0},c.textProps="color direction fontFamily fontSize fontStyle fontWeight lineHeight textAlign textDecoration textOutline textOverflow width".split(" "),c}(e)})),t(n,"Core/Renderer/SVG/Symbols.js",[n["Core/Utilities.js"]],(function(e){function t(e,t,n,r,o){var a=[];if(o){var l=o.start||0,c=s(o.r,n);n=s(o.r,r||n);var u=(o.end||0)-.001;r=o.innerR;var d=s(o.open,.001>Math.abs((o.end||0)-l-2*Math.PI)),h=Math.cos(l),p=Math.sin(l),f=Math.cos(u),m=Math.sin(u);l=s(o.longArc,.001>u-l-Math.PI?0:1),a.push(["M",e+c*h,t+n*p],["A",c,n,0,l,s(o.clockwise,1),e+c*f,t+n*m]),i(r)&&a.push(d?["M",e+r*f,t+r*m]:["L",e+r*f,t+r*m],["A",r,r,0,l,i(o.clockwise)?1-o.clockwise:0,e+r*h,t+r*p]),d||a.push(["Z"])}return a}function n(e,t,n,i,o){return o&&o.r?r(e,t,n,i,o):[["M",e,t],["L",e+n,t],["L",e+n,t+i],["L",e,t+i],["Z"]]}function r(e,t,n,r,i){return[["M",e+(i=i&&i.r||0),t],["L",e+n-i,t],["C",e+n,t,e+n,t,e+n,t+i],["L",e+n,t+r-i],["C",e+n,t+r,e+n,t+r,e+n-i,t+r],["L",e+i,t+r],["C",e,t+r,e,t+r,e,t+r-i],["L",e,t+i],["C",e,t,e,t,e+i,t]]}var i=e.defined,o=e.isNumber,s=e.pick;return{arc:t,callout:function(e,t,n,i,s){var a=Math.min(s&&s.r||0,n,i),l=a+6,c=s&&s.anchorX;s=s&&s.anchorY||0;var u=r(e,t,n,i,{r:a});return o(c)?(e+c>=n?s>t+l&&s=e+c?s>t+l&&si&&c>e+l&&cs&&c>e+l&&c/g.test(o))?""!==o&&(i&&i.appendChild(n),o=new e(o),this.modifyTree(o.nodes),o.addToDOM(t.element),this.modifyDOM(),this.ellipsis&&-1!==(n.textContent||"").indexOf("…")&&t.attr("title",this.unescapeEntities(t.textStr||"",["<",">"])),i&&i.removeChild(n)):n.appendChild(r.createTextNode(this.unescapeEntities(o))),a(this.textOutline)&&t.applyTextOutline&&t.applyTextOutline(this.textOutline)}},t.prototype.modifyDOM=function(){var e,t=this,n=this.svgElement,a=s(n.element,"x");for(n.firstLineMetrics=void 0;(e=n.element.firstChild)&&/^[\s\u200B]*$/.test(e.textContent||" ");)n.element.removeChild(e);[].forEach.call(n.element.querySelectorAll("tspan.highcharts-br"),(function(e,r){e.nextSibling&&e.previousSibling&&(0===r&&1===e.previousSibling.nodeType&&(n.firstLineMetrics=n.renderer.fontMetrics(void 0,e.previousSibling)),s(e,{dy:t.getLineHeight(e.nextSibling),x:a}))}));var l=this.width||0;if(l){var c=function(e,o){var c=e.textContent||"",u=c.replace(/([^\^])-/g,"$1- ").split(" "),d=!t.noWrap&&(1i){for(;d<=h;)p=Math.ceil((d+h)/2),n&&(s=o(n,p)),m=f(p,s&&s.length-1),d===h?d=h+1:m>i?h=p-1:d=p;0===h?e.textContent="":t&&h===t.length-1||(e.textContent=s||o(t||n,p))}n&&n.splice(0,p),a.actualWidth=m,a.rotation=c},t.prototype.unescapeEntities=function(e,t){return l(this.renderer.escapes,(function(n,r){t&&-1!==t.indexOf(n)||(e=e.toString().replace(new RegExp(n,"g"),r))})),e},t}()})),t(n,"Core/Renderer/SVG/SVGRenderer.js",[n["Core/Renderer/HTML/AST.js"],n["Core/Color/Color.js"],n["Core/Globals.js"],n["Core/Renderer/RendererRegistry.js"],n["Core/Renderer/SVG/SVGElement.js"],n["Core/Renderer/SVG/SVGLabel.js"],n["Core/Renderer/SVG/Symbols.js"],n["Core/Renderer/SVG/TextBuilder.js"],n["Core/Utilities.js"]],(function(e,t,n,r,i,o,s,a,l){var c,u=n.charts,d=n.deg2rad,h=n.doc,p=n.isFirefox,f=n.isMS,m=n.isWebKit,g=n.noop,b=n.SVG_NS,v=n.symbolSizes,y=n.win,S=l.addEvent,_=l.attr,x=l.createElement,w=l.css,k=l.defined,O=l.destroyObjectProperties,E=l.extend,A=l.isArray,T=l.isNumber,C=l.isObject,M=l.isString,$=l.merge,P=l.pick,R=l.pInt,j=l.uniqueKey;return n=function(){function n(e,t,n,r,i,o,s){this.width=this.url=this.style=this.isSVG=this.imgCount=this.height=this.gradients=this.globalAnimation=this.defs=this.chartIndex=this.cacheKeys=this.cache=this.boxWrapper=this.box=this.alignedObjects=void 0,this.init(e,t,n,r,i,o,s)}return n.prototype.init=function(e,t,n,r,i,o,s){var a,l=this.createElement("svg").attr({version:"1.1",class:"highcharts-root"}),c=l.element;s||l.css(this.getStyle(r)),e.appendChild(c),_(e,"dir","ltr"),-1===e.innerHTML.indexOf("xmlns")&&_(c,"xmlns",this.SVG_NS),this.isSVG=!0,this.box=c,this.boxWrapper=l,this.alignedObjects=[],this.url=this.getReferenceURL(),this.createElement("desc").add().element.appendChild(h.createTextNode("Created with Highcharts 9.3.3")),this.defs=this.createElement("defs").add(),this.allowHTML=o,this.forExport=i,this.styledMode=s,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.setSize(t,n,!1),p&&e.getBoundingClientRect&&((t=function(){w(e,{left:0,top:0}),a=e.getBoundingClientRect(),w(e,{left:Math.ceil(a.left)-a.left+"px",top:Math.ceil(a.top)-a.top+"px"})})(),this.unSubPixelFix=S(y,"resize",t))},n.prototype.definition=function(t){return new e([t]).addToDOM(this.defs.element)},n.prototype.getReferenceURL=function(){if((p||m)&&h.getElementsByTagName("base").length){if(!k(c)){var t=j();t=new e([{tagName:"svg",attributes:{width:8,height:8},children:[{tagName:"defs",children:[{tagName:"clipPath",attributes:{id:t},children:[{tagName:"rect",attributes:{width:4,height:4}}]}]},{tagName:"rect",attributes:{id:"hitme",width:8,height:8,"clip-path":"url(#"+t+")",fill:"rgba(0,0,0,0.001)"}}]}]).addToDOM(h.body),w(t,{position:"fixed",top:0,left:0,zIndex:9e5});var n=h.elementFromPoint(6,6);c="hitme"===(n&&n.id),h.body.removeChild(t)}if(c)return y.location.href.split("#")[0].replace(/<[^>]*>/g,"").replace(/([\('\)])/g,"\\$1").replace(/ /g,"%20")}return""},n.prototype.getStyle=function(e){return this.style=E({fontFamily:'"Lucida Grande", "Lucida Sans Unicode", Arial, Helvetica, sans-serif',fontSize:"12px"},e)},n.prototype.setStyle=function(e){this.boxWrapper.css(this.getStyle(e))},n.prototype.isHidden=function(){return!this.boxWrapper.getBBox().width},n.prototype.destroy=function(){var e=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),O(this.gradients||{}),this.gradients=null,e&&(this.defs=e.destroy()),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects=null},n.prototype.createElement=function(e){var t=new this.Element;return t.init(this,e),t},n.prototype.getRadialAttr=function(e,t){return{cx:e[0]-e[2]/2+(t.cx||0)*e[2],cy:e[1]-e[2]/2+(t.cy||0)*e[2],r:(t.r||0)*e[2]}},n.prototype.buildText=function(e){new a(e).buildSVG()},n.prototype.getContrast=function(e){return(e=t.parse(e).rgba)[0]*=1,e[1]*=1.2,e[2]*=.5,459(e=/px/.test(e)?R(e):12)?e+3:Math.round(1.2*e),b:Math.round(.8*t),f:e}},n.prototype.rotCorr=function(e,t,n){var r=e;return t&&n&&(r=Math.max(r*Math.cos(t*d),4)),{x:-e/3*Math.sin(t*d),y:r}},n.prototype.pathToSegments=function(e){for(var t=[],n=[],r={A:8,C:7,H:2,L:3,M:3,Q:5,S:5,T:3,V:2},i=0;i":">","'":"'",'"':"""},symbols:s,draw:g}),r.registerRendererType("svg",n,!0),n})),t(n,"Core/Renderer/HTML/HTMLElement.js",[n["Core/Globals.js"],n["Core/Renderer/SVG/SVGElement.js"],n["Core/Utilities.js"]],(function(e,t,n){var r=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),i=e.isFirefox,o=e.isMS,s=e.isWebKit,a=e.win,l=n.css,c=n.defined,u=n.extend,d=n.pick,h=n.pInt;return function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.compose=function(e){if(-1===t.composedClasses.indexOf(e)){t.composedClasses.push(e);var n=t.prototype,r=e.prototype;r.getSpanCorrection=n.getSpanCorrection,r.htmlCss=n.htmlCss,r.htmlGetBBox=n.htmlGetBBox,r.htmlUpdateTransform=n.htmlUpdateTransform,r.setSpanRotation=n.setSpanRotation}return e},t.prototype.getSpanCorrection=function(e,t,n){this.xCorr=-e*n,this.yCorr=-t},t.prototype.htmlCss=function(e){var t="SPAN"===this.element.tagName&&e&&"width"in e,n=d(t&&e.width,void 0);if(t){delete e.width,this.textWidth=n;var r=!0}return e&&"ellipsis"===e.textOverflow&&(e.whiteSpace="nowrap",e.overflow="hidden"),this.styles=u(this.styles,e),l(this.element,e),r&&this.htmlUpdateTransform(),this},t.prototype.htmlGetBBox=function(){var e=this.element;return{x:e.offsetLeft,y:e.offsetTop,width:e.offsetWidth,height:e.offsetHeight}},t.prototype.htmlUpdateTransform=function(){if(this.added){var e=this.renderer,t=this.element,n=this.translateX||0,r=this.translateY||0,i=this.x||0,o=this.y||0,s=this.textAlign||"left",a={left:0,center:.5,right:1}[s],u=this.styles;if(u=u&&u.whiteSpace,l(t,{marginLeft:n,marginTop:r}),!e.styledMode&&this.shadows&&this.shadows.forEach((function(e){l(e,{marginLeft:n+1,marginTop:r+1})})),this.inverted&&[].forEach.call(t.childNodes,(function(n){e.invertChild(n,t)})),"SPAN"===t.tagName){var d=this.rotation,p=this.textWidth&&h(this.textWidth),f=[d,s,t.innerHTML,this.textWidth,this.textAlign].join(),m=void 0;if(m=!1,p!==this.oldTextWidth){if(this.textPxLength)var g=this.textPxLength;else l(t,{width:"",whiteSpace:u||"nowrap"}),g=t.offsetWidth;(p>this.oldTextWidth||g>p)&&(/[ \-]/.test(t.textContent||t.innerText)||"ellipsis"===t.style.textOverflow)&&(l(t,{width:g>p||d?p+"px":"auto",display:"block",whiteSpace:u||"normal"}),this.oldTextWidth=p,m=!0)}this.hasBoxWidthChanged=m,f!==this.cTT&&(m=e.fontMetrics(t.style.fontSize,t).b,!c(d)||d===(this.oldRotation||0)&&s===this.oldAlign||this.setSpanRotation(d,a,m),this.getSpanCorrection(!c(d)&&this.textPxLength||t.offsetWidth,m,a,d,s)),l(t,{left:i+(this.xCorr||0)+"px",top:o+(this.yCorr||0)+"px"}),this.cTT=f,this.oldRotation=d,this.oldAlign=s}}else this.alignOnAdd=!0},t.prototype.setSpanRotation=function(e,t,n){var r={},c=o&&!/Edge/.test(a.navigator.userAgent)?"-ms-transform":s?"-webkit-transform":i?"MozTransform":a.opera?"-o-transform":void 0;c&&(r[c]=r.transform="rotate("+e+"deg)",r[c+(i?"Origin":"-origin")]=r.transformOrigin=100*t+"% "+n+"px",l(this.element,r))},t.composedClasses=[],t}(t)})),t(n,"Core/Renderer/HTML/HTMLRenderer.js",[n["Core/Renderer/HTML/AST.js"],n["Core/Renderer/SVG/SVGElement.js"],n["Core/Renderer/SVG/SVGRenderer.js"],n["Core/Utilities.js"]],(function(e,t,n,r){var i=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),o=r.attr,s=r.createElement,a=r.extend,l=r.pick;return function(n){function r(){return null!==n&&n.apply(this,arguments)||this}return i(r,n),r.compose=function(e){return-1===r.composedClasses.indexOf(e)&&(r.composedClasses.push(e),e.prototype.html=r.prototype.html),e},r.prototype.html=function(n,r,i){var c=this.createElement("span"),u=c.element,d=c.renderer,h=d.isSVG,p=function(e,n){["opacity","visibility"].forEach((function(r){e[r+"Setter"]=function(i,o,s){var a=e.div?e.div.style:n;t.prototype[r+"Setter"].call(this,i,o,s),a&&(a[o]=i)}})),e.addedSetters=!0};return c.textSetter=function(t){t!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,e.setElementHTML(this.element,l(t,"")),this.textStr=t,c.doTransform=!0)},h&&p(c,c.element.style),c.xSetter=c.ySetter=c.alignSetter=c.rotationSetter=function(e,t){"align"===t?c.alignValue=c.textAlign=e:c[t]=e,c.doTransform=!0},c.afterSetters=function(){this.doTransform&&(this.htmlUpdateTransform(),this.doTransform=!1)},c.attr({text:n,x:Math.round(r),y:Math.round(i)}).css({position:"absolute"}),d.styledMode||c.css({fontFamily:this.style.fontFamily,fontSize:this.style.fontSize}),u.style.whiteSpace="nowrap",c.css=c.htmlCss,h&&(c.add=function(e){var t=d.box.parentNode,n=[];if(this.parentGroup=e){var r=e.div;if(!r){for(;e;)n.push(e),e=e.parentGroup;n.reverse().forEach((function(e){function i(t,n){e[n]=t,"translateX"===n?d.left=t+"px":d.top=t+"px",e.doTransform=!0}var l=o(e.element,"class"),u=e.styles||{},d=(r=e.div=e.div||s("div",l?{className:l}:void 0,{position:"absolute",left:(e.translateX||0)+"px",top:(e.translateY||0)+"px",display:e.display,opacity:e.opacity,cursor:u.cursor,pointerEvents:u.pointerEvents,visibility:e.visibility},r||t)).style;a(e,{classSetter:function(e){return function(t){this.element.setAttribute("class",t),e.className=t}}(r),on:function(){return n[0].div&&c.on.apply({element:n[0].div,onEvents:e.onEvents},arguments),e},translateXSetter:i,translateYSetter:i}),e.addedSetters||p(e)}))}}else r=t;return r.appendChild(u),c.added=!0,c.alignOnAdd&&c.htmlUpdateTransform(),c}),c},r.composedClasses=[],r}(n)})),t(n,"Core/Axis/AxisDefaults.js",[],(function(){var e;return function(e){e.defaultXAxisOptions={alignTicks:!0,allowDecimals:void 0,panningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:"%H:%M:%S.%L",range:!1},second:{main:"%H:%M:%S",range:!1},minute:{main:"%H:%M",range:!1},hour:{main:"%H:%M",range:!1},day:{main:"%e. %b"},week:{main:"%e. %b"},month:{main:"%b '%y"},year:{main:"%Y"}},endOnTick:!1,gridLineDashStyle:"Solid",gridZIndex:1,labels:{autoRotation:void 0,autoRotationLimit:80,distance:void 0,enabled:!0,indentation:10,overflow:"justify",padding:5,reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,x:0,zIndex:7,style:{color:"#666666",cursor:"default",fontSize:"11px"}},maxPadding:.01,minorGridLineDashStyle:"Solid",minorTickLength:2,minorTickPosition:"outside",minPadding:.01,offset:void 0,opposite:!1,reversed:void 0,reversedStacks:!1,showEmpty:!0,showFirstLabel:!0,showLastLabel:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:"between",tickPosition:"outside",title:{align:"middle",rotation:0,useHTML:!1,x:0,y:0,style:{color:"#666666"}},type:"linear",uniqueNames:!0,visible:!0,minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#ccd6eb",lineWidth:1,gridLineColor:"#e6e6e6",gridLineWidth:void 0,tickColor:"#ccd6eb"},e.defaultYAxisOptions={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:-8},startOnTick:!0,title:{rotation:270,text:"Values"},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:"justify",formatter:function(){return(0,this.axis.chart.numberFormatter)(this.total,-1)},style:{color:"#000000",fontSize:"11px",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0},e.defaultLeftAxisOptions={labels:{x:-15},title:{rotation:270}},e.defaultRightAxisOptions={labels:{x:15},title:{rotation:90}},e.defaultBottomAxisOptions={labels:{autoRotation:[-45],x:0},margin:15,title:{rotation:0}},e.defaultTopAxisOptions={labels:{autoRotation:[-45],x:0},margin:15,title:{rotation:0}}}(e||(e={})),e})),t(n,"Core/Foundation.js",[n["Core/Utilities.js"]],(function(e){var t,n=e.addEvent,r=e.isFunction,i=e.objectEach,o=e.removeEvent;return function(e){e.registerEventOptions=function(e,t){e.eventOptions=e.eventOptions||{},i(t.events,(function(t,i){e.eventOptions[i]!==t&&(e.eventOptions[i]&&(o(e,i,e.eventOptions[i]),delete e.eventOptions[i]),r(t)&&(e.eventOptions[i]=t,n(e,i,t)))}))}}(t||(t={})),t})),t(n,"Core/Axis/Tick.js",[n["Core/FormatUtilities.js"],n["Core/Globals.js"],n["Core/Utilities.js"]],(function(e,t,n){var r=t.deg2rad,i=n.clamp,o=n.correctFloat,s=n.defined,a=n.destroyObjectProperties,l=n.extend,c=n.fireEvent,u=n.isNumber,d=n.merge,h=n.objectEach,p=n.pick;return t=function(){function t(e,t,n,r,i){this.isNewLabel=this.isNew=!0,this.axis=e,this.pos=t,this.type=n||"",this.parameters=i||{},this.tickmarkOffset=this.parameters.tickmarkOffset,this.options=this.parameters.options,c(this,"init"),n||r||this.addLabel()}return t.prototype.addLabel=function(){var t=this,n=t.axis,r=n.options,i=n.chart,a=n.categories,d=n.logarithmic,h=n.names,f=t.pos,m=p(t.options&&t.options.labels,r.labels),g=n.tickPositions,b=f===g[0],v=f===g[g.length-1],y=(!m.step||1===m.step)&&1===n.tickInterval;g=g.info;var S,_=t.label;if(a=this.parameters.category||(a?p(a[f],h[f],f):f),d&&u(a)&&(a=o(d.lin2log(a))),n.dateTime)if(g)var x=i.time.resolveDTLFormat(r.dateTimeLabelFormats[!r.grid&&g.higherRanks[f]||g.unitName]),w=x.main;else u(a)&&(w=n.dateTime.getXDateFormat(a,r.dateTimeLabelFormats||{}));t.isFirst=b,t.isLast=v;var k={axis:n,chart:i,dateTimeLabelFormat:w,isFirst:b,isLast:v,pos:f,tick:t,tickPositionInfo:g,value:a};c(this,"labelFormat",k);var O=function(t){return m.formatter?m.formatter.call(t,t):m.format?(t.text=n.defaultLabelFormatter.call(t),e.format(m.format,t,i)):n.defaultLabelFormatter.call(t,t)};r=O.call(k,k);var E=x&&x.list;t.shortenLabel=E?function(){for(S=0;Su&&i-d*hs&&(l=Math.round((o-i)/Math.cos(u*r))):(o=i+(1-d)*h,i-d*hs&&(g=s-e.x+g*d,b=-1),(g=Math.min(f,g))g||t.autoRotation&&(c.styles||{}).width)&&(l=g)),l&&(this.shortenLabel?this.shortenLabel():(m.width=Math.floor(l)+"px",(n.style||{}).textOverflow||(m.textOverflow="ellipsis"),c.css(m)))},t.prototype.moveLabel=function(e,t){var n=this,r=n.label,i=n.axis,o=i.reversed,s=!1;if(r&&r.textStr===e?(n.movedLabel=r,s=!0,delete n.label):h(i.ticks,(function(t){s||t.isNew||t===n||!t.label||t.label.textStr!==e||(n.movedLabel=t.label,s=!0,t.labelPos=n.movedLabel.xy,delete t.label)})),!s&&(n.labelPos||r)){var a=n.labelPos||r.xy;r=i.horiz?o?0:i.width+i.left:a.x,i=i.horiz?a.y:o?i.width+i.left:0,n.movedLabel=n.createLabel({x:r,y:i},e,t),n.movedLabel&&n.movedLabel.attr({opacity:0})}},t.prototype.render=function(e,t,n){var r=this.axis,i=r.horiz,o=this.pos,s=p(this.tickmarkOffset,r.tickmarkOffset);s=(o=this.getPosition(i,o,s,t)).x;var a=o.y;r=i&&s===r.pos+r.len||!i&&a===r.pos?-1:1,i=p(n,this.label&&this.label.newOpacity,1),n=p(n,1),this.isActive=!0,this.renderGridLine(t,n,r),this.renderMark(o,n,r),this.renderLabel(o,t,i,e),this.isNew=!1,c(this,"afterRender")},t.prototype.renderGridLine=function(e,t,n){var r=this.axis,i=r.options,o={},s=this.pos,a=this.type,l=p(this.tickmarkOffset,r.tickmarkOffset),c=r.chart.renderer,u=this.gridLine,d=i.gridLineWidth,h=i.gridLineColor,f=i.gridLineDashStyle;"minor"===this.type&&(d=i.minorGridLineWidth,h=i.minorGridLineColor,f=i.minorGridLineDashStyle),u||(r.chart.styledMode||(o.stroke=h,o["stroke-width"]=d||0,o.dashstyle=f),a||(o.zIndex=1),e&&(t=0),this.gridLine=u=c.path().attr(o).addClass("highcharts-"+(a?a+"-":"")+"grid-line").add(r.gridGroup)),u&&(n=r.getPlotLinePath({value:s+l,lineWidth:u.strokeWidth()*n,force:"pass",old:e}))&&u[e||this.isNew?"attr":"animate"]({d:n,opacity:t})},t.prototype.renderMark=function(e,t,n){var r=this.axis,i=r.options,o=r.chart.renderer,s=this.type,a=r.tickSize(s?s+"Tick":"tick"),l=e.x;e=e.y;var c=p(i["minor"!==s?"tickWidth":"minorTickWidth"],!s&&r.isXAxis?1:0);i=i["minor"!==s?"tickColor":"minorTickColor"];var u=this.mark,d=!u;a&&(r.opposite&&(a[0]=-a[0]),u||(this.mark=u=o.path().addClass("highcharts-"+(s?s+"-":"")+"tick").add(r.axisGroup),r.chart.styledMode||u.attr({stroke:i,"stroke-width":c})),u[d?"attr":"animate"]({d:this.getMarkPath(l,e,a[0],u.strokeWidth()*n,r.horiz,o),opacity:t}))},t.prototype.renderLabel=function(e,t,n,r){var i=this.axis,o=i.horiz,s=i.options,a=this.label,l=s.labels,c=l.step;i=p(this.tickmarkOffset,i.tickmarkOffset);var d=e.x;e=e.y;var h=!0;a&&u(d)&&(a.xy=e=this.getLabelPosition(d,e,a,o,l,i,r,c),this.isFirst&&!this.isLast&&!s.showFirstLabel||this.isLast&&!this.isFirst&&!s.showLastLabel?h=!1:!o||l.step||l.rotation||t||0===n||this.handleOverflow(e),c&&r%c&&(h=!1),h&&u(e.y)?(e.opacity=n,a[this.isNewLabel?"attr":"animate"](e),this.isNewLabel=!1):(a.attr("y",-9999),this.isNewLabel=!0))},t.prototype.replaceMovedLabel=function(){var e=this.label,t=this.axis,n=t.reversed;if(e&&!this.isNew){var r=t.horiz?n?t.left:t.width+t.left:e.xy.x;n=t.horiz?e.xy.y:n?t.width+t.top:t.top,e.animate({x:r,y:n,opacity:0},void 0,e.destroy),delete this.label}t.isDirty=!0,this.label=this.movedLabel,delete this.movedLabel},t}()})),t(n,"Core/Axis/Axis.js",[n["Core/Animation/AnimationUtilities.js"],n["Core/Axis/AxisDefaults.js"],n["Core/Color/Color.js"],n["Core/DefaultOptions.js"],n["Core/Foundation.js"],n["Core/Globals.js"],n["Core/Axis/Tick.js"],n["Core/Utilities.js"]],(function(e,t,n,r,i,o,s,a){var l=e.animObject,c=r.defaultOptions,u=i.registerEventOptions,d=o.deg2rad,h=a.arrayMax,p=a.arrayMin,f=a.clamp,m=a.correctFloat,g=a.defined,b=a.destroyObjectProperties,v=a.erase,y=a.error,S=a.extend,_=a.fireEvent,x=a.getMagnitude,w=a.isArray,k=a.isNumber,O=a.isString,E=a.merge,A=a.normalizeTickInterval,T=a.objectEach,C=a.pick,M=a.relativeLength,$=a.removeEvent,P=a.splat,R=a.syncTimeout;return e=function(){function e(e,t){this.zoomEnabled=this.width=this.visible=this.userOptions=this.translationSlope=this.transB=this.transA=this.top=this.ticks=this.tickRotCorr=this.tickPositions=this.tickmarkOffset=this.tickInterval=this.tickAmount=this.side=this.series=this.right=this.positiveValuesOnly=this.pos=this.pointRangePadding=this.pointRange=this.plotLinesAndBandsGroups=this.plotLinesAndBands=this.paddedTicks=this.overlap=this.options=this.offset=this.names=this.minPixelPadding=this.minorTicks=this.minorTickInterval=this.min=this.maxLabelLength=this.max=this.len=this.left=this.labelFormatter=this.labelEdge=this.isLinked=this.height=this.hasVisibleSeries=this.hasNames=this.eventOptions=this.coll=this.closestPointRange=this.chart=this.categories=this.bottom=this.alternateBands=void 0,this.init(e,t)}return e.prototype.init=function(e,t){var n=t.isX;this.chart=e,this.horiz=e.inverted&&!this.isZAxis?!n:n,this.isXAxis=n,this.coll=this.coll||(n?"xAxis":"yAxis"),_(this,"init",{userOptions:t}),this.opposite=C(t.opposite,this.opposite),this.side=C(t.side,this.side,this.horiz?this.opposite?0:2:this.opposite?1:3),this.setOptions(t);var r=this.options,i=r.labels,o=r.type;this.userOptions=t,this.minPixelPadding=0,this.reversed=C(r.reversed,this.reversed),this.visible=r.visible,this.zoomEnabled=r.zoomEnabled,this.hasNames="category"===o||!0===r.categories,this.categories=r.categories||this.hasNames,this.names||(this.names=[],this.names.keys={}),this.plotLinesAndBandsGroups={},this.positiveValuesOnly=!!this.logarithmic,this.isLinked=g(r.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len=0,this.minRange=this.userMinRange=r.minRange||r.maxZoom,this.range=r.range,this.offset=r.offset||0,this.min=this.max=null,t=C(r.crosshair,P(e.options.tooltip.crosshairs)[n?0:1]),this.crosshair=!0===t?{}:t,-1===e.axes.indexOf(this)&&(n?e.axes.splice(e.xAxis.length,0,this):e.axes.push(this),e[this.coll].push(this)),this.series=this.series||[],e.inverted&&!this.isZAxis&&n&&void 0===this.reversed&&(this.reversed=!0),this.labelRotation=k(i.rotation)?i.rotation:void 0,u(this,r),_(this,"afterInit")},e.prototype.setOptions=function(e){this.options=E(t.defaultXAxisOptions,"yAxis"===this.coll&&t.defaultYAxisOptions,[t.defaultTopAxisOptions,t.defaultRightAxisOptions,t.defaultBottomAxisOptions,t.defaultLeftAxisOptions][this.side],E(c[this.coll],e)),_(this,"afterSetOptions",{userOptions:e})},e.prototype.defaultLabelFormatter=function(e){var t=this.axis;e=this.chart.numberFormatter;var n=k(this.value)?this.value:NaN,r=t.chart.time,i=this.dateTimeLabelFormat,o=c.lang,s=o.numericSymbols;o=o.numericSymbolMagnitude||1e3;var a=t.logarithmic?Math.abs(n):t.tickInterval,l=s&&s.length;if(t.categories)var u=""+this.value;else if(i)u=r.dateFormat(i,n);else if(l&&1e3<=a)for(;l--&&void 0===u;)a>=(t=Math.pow(o,l+1))&&0==10*n%t&&null!==s[l]&&0!==n&&(u=e(n/t,-1)+s[l]);return void 0===u&&(u=1e4<=Math.abs(n)?e(n,-1):e(n,-1,void 0,"")),u},e.prototype.getSeriesExtremes=function(){var e,t=this,n=t.chart;_(this,"getSeriesExtremes",null,(function(){t.hasVisibleSeries=!1,t.dataMin=t.dataMax=t.threshold=null,t.softThreshold=!t.isXAxis,t.stacking&&t.stacking.buildStacks(),t.series.forEach((function(r){if(r.visible||!n.options.chart.ignoreHiddenSeries){var i=r.options,o=i.threshold;if(t.hasVisibleSeries=!0,t.positiveValuesOnly&&0>=o&&(o=null),t.isXAxis){if((i=r.xData).length){i=t.logarithmic?i.filter(t.validatePositiveValue):i;var s=(e=r.getXExtremes(i)).min,a=e.max;k(s)||s instanceof Date||(i=i.filter(k),s=(e=r.getXExtremes(i)).min,a=e.max),i.length&&(t.dataMin=Math.min(C(t.dataMin,s),s),t.dataMax=Math.max(C(t.dataMax,a),a))}}else r=r.applyExtremes(),k(r.dataMin)&&(s=r.dataMin,t.dataMin=Math.min(C(t.dataMin,s),s)),k(r.dataMax)&&(a=r.dataMax,t.dataMax=Math.max(C(t.dataMax,a),a)),g(o)&&(t.threshold=o),(!i.softThreshold||t.positiveValuesOnly)&&(t.softThreshold=!1)}}))})),_(this,"afterGetSeriesExtremes")},e.prototype.translate=function(e,t,n,r,i,o){var s=this.linkedParent||this,a=r&&s.old?s.old.min:s.min,l=s.minPixelPadding;i=(s.isOrdinal||s.brokenAxis&&s.brokenAxis.hasBreaks||s.logarithmic&&i)&&s.lin2val;var c=1,u=0;return(r=r&&s.old?s.old.transA:s.transA)||(r=s.transA),n&&(c*=-1,u=s.len),s.reversed&&(u-=(c*=-1)*(s.sector||s.len)),t?(e=(e*c+u-l)/r+a,i&&(e=s.lin2val(e))):(i&&(e=s.val2lin(e)),e=k(a)?c*(e-a)*r+u+c*l+(k(o)?r*o:0):void 0),e},e.prototype.toPixels=function(e,t){return this.translate(e,!1,!this.horiz,null,!0)+(t?0:this.pos)},e.prototype.toValue=function(e,t){return this.translate(e-(t?0:this.pos),!0,!this.horiz,null,!0)},e.prototype.getPlotLinePath=function(e){function t(e,t,n){return("pass"!==y&&en)&&(y?e=f(e,t,n):s=!0),e}var n,r,i,o,s,a=this,l=a.chart,c=a.left,u=a.top,d=e.old,h=e.value,p=e.lineWidth,m=d&&l.oldChartHeight||l.chartHeight,g=d&&l.oldChartWidth||l.chartWidth,b=a.transB,v=e.translatedValue,y=e.force;return e={value:h,lineWidth:p,old:d,force:y,acrossPanes:e.acrossPanes,translatedValue:v},_(this,"getPlotLinePath",e,(function(e){v=C(v,a.translate(h,null,null,d)),v=f(v,-1e5,1e5),n=i=Math.round(v+b),r=o=Math.round(m-v-b),k(v)?a.horiz?(r=u,o=m-a.bottom,n=i=t(n,c,c+a.width)):(n=c,i=g-a.right,r=o=t(r,u,u+a.height)):(s=!0,y=!1),e.path=s&&!y?null:l.renderer.crispLine([["M",n,r],["L",i,o]],p||1)})),e.path},e.prototype.getLinearTickPositions=function(e,t,n){var r=m(Math.floor(t/e)*e);n=m(Math.ceil(n/e)*e);var i,o=[];if(m(r+e)===r&&(i=20),this.single)return[t];for(t=r;t<=n&&(o.push(t),(t=m(t+e,i))!==s);)var s=t;return o},e.prototype.getMinorTickInterval=function(){var e=this.options;return!0===e.minorTicks?C(e.minorTickInterval,"auto"):!1===e.minorTicks?null:e.minorTickInterval},e.prototype.getMinorTickPositions=function(){var e=this.options,t=this.tickPositions,n=this.minorTickInterval,r=this.pointRangePadding||0,i=this.min-r,o=(r=this.max+r)-i,s=[];if(o&&o/n=this.minRange,u=this.minRange,d=(u-a+s)/2;d=[s-d,C(i.min,s-d)],c&&(d[2]=this.logarithmic?this.logarithmic.log2lin(this.dataMin):this.dataMin),a=[(s=h(d))+u,C(i.max,s+u)],c&&(a[2]=o?o.log2lin(this.dataMax):this.dataMax),(a=p(a))-s=h)b=h,u=0;else if(this.dataMax<=h){var v=h;c=0}this.min=C(p,b,this.dataMin),this.max=C(f,v,this.dataMax)}if(n&&(this.positiveValuesOnly&&!e&&0>=Math.min(this.min,C(this.dataMin,this.min))&&y(10,1,t),this.min=m(n.log2lin(this.min),16),this.max=m(n.log2lin(this.max),16)),this.range&&g(this.max)&&(this.userMin=this.min=p=Math.max(this.dataMin,this.minFromRange()),this.userMax=f=this.max,this.range=null),_(this,"foundExtremes"),this.beforePadding&&this.beforePadding(),this.adjustForMinRange(),!(a||this.axisPointRange||this.stacking&&this.stacking.usePercentage||o)&&g(this.min)&&g(this.max)&&(t=this.max-this.min)&&(!g(p)&&u&&(this.min-=t*u),!g(f)&&c&&(this.max+=t*c)),k(this.userMin)||(k(r.softMin)&&r.softMinthis.max&&(this.max=f=r.softMax),k(r.ceiling)&&(this.max=Math.min(this.max,r.ceiling))),l&&g(this.dataMin)&&(h=h||0,!g(p)&&this.min=h?this.min=this.options.minRange?Math.min(h,this.max-this.minRange):h:!g(f)&&this.max>h&&this.dataMax<=h&&(this.max=this.options.minRange?Math.max(h,this.min+this.minRange):h)),k(this.min)&&k(this.max)&&!this.chart.polar&&this.min>this.max&&(g(this.options.min)?this.max=this.min:g(this.options.max)&&(this.min=this.max)),this.tickInterval=this.min===this.max||void 0===this.min||void 0===this.max?1:o&&this.linkedParent&&!d&&s===this.linkedParent.options.tickPixelInterval?d=this.linkedParent.tickInterval:C(d,this.tickAmount?(this.max-this.min)/Math.max(this.tickAmount-1,1):void 0,a?1:(this.max-this.min)*s/Math.max(this.len,s)),i&&!e){var S=this.min!==(this.old&&this.old.min)||this.max!==(this.old&&this.old.max);this.series.forEach((function(e){e.forceCrop=e.forceCropping&&e.forceCropping(),e.processData(S)})),_(this,"postProcessData",{hasExtemesChanged:S})}this.setAxisTranslation(),_(this,"initialAxisTranslation"),this.pointRange&&!d&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval)),e=C(r.minTickInterval,this.dateTime&&!this.series.some((function(e){return e.noSharedTooltip}))?this.closestPointRange:0),!d&&this.tickIntervalthis.tickInterval||void 0!==this.tickAmount),!!this.tickAmount)),this.tickAmount||(this.tickInterval=this.unsquish()),this.setTickPositions()},e.prototype.setTickPositions=function(){var e=this.options,t=e.tickPositions,n=this.getMinorTickInterval(),r=this.hasVerticalPanning(),i="colorAxis"===this.coll,o=(i||!r)&&e.startOnTick;r=(i||!r)&&e.endOnTick,i=e.tickPositioner,this.tickmarkOffset=this.categories&&"between"===e.tickmarkPlacement&&1===this.tickInterval?.5:0,this.minorTickInterval="auto"===n&&this.tickInterval?this.tickInterval/5:n,this.single=this.min===this.max&&g(this.min)&&!this.tickAmount&&(parseInt(this.min,10)===this.min||!1!==e.allowDecimals),this.tickPositions=n=t&&t.slice(),!n&&(this.ordinal&&this.ordinal.positions||!((this.max-this.min)/this.tickInterval>Math.max(2*this.len,200))?n=this.dateTime?this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,e.units),this.min,this.max,e.startOfWeek,this.ordinal&&this.ordinal.positions,this.closestPointRange,!0):this.logarithmic?this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max):this.getLinearTickPositions(this.tickInterval,this.min,this.max):(n=[this.min,this.max],y(19,!1,this.chart)),n.length>this.len&&((n=[n[0],n.pop()])[0]===n[1]&&(n.length=1)),this.tickPositions=n,i&&(i=i.apply(this,[this.min,this.max])))&&(this.tickPositions=n=i),this.paddedTicks=n.slice(0),this.trimTicks(n,o,r),this.isLinked||(this.single&&2>n.length&&!this.categories&&!this.series.some((function(e){return e.is("heatmap")&&"between"===e.options.pointPlacement}))&&(this.min-=.5,this.max+=.5),t||i||this.adjustTickAmount()),_(this,"afterSetTickPositions")},e.prototype.trimTicks=function(e,t,n){var r=e[0],i=e[e.length-1],o=!this.isOrdinal&&this.minPointOffset||0;if(_(this,"trimTicks"),!this.isLinked){if(t&&-1/0!==r)this.min=r;else for(;this.min-o>e[0];)e.shift();if(n)this.max=i;else for(;this.max+on&&(this.finalTickAmt=n,n=5),this.tickAmount=n},e.prototype.adjustTickAmount=function(){var e=this.options,t=this.tickInterval,n=this.tickPositions,r=this.tickAmount,i=this.finalTickAmt,o=n&&n.length,s=C(this.threshold,this.softThreshold?0:null);if(this.hasData()&&k(this.min)&&k(this.max)){if(or&&(this.tickInterval*=2,this.setTickPositions());if(g(i)){for(t=e=n.length;t--;)(3===i&&1==t%2||2>=i&&0a&&(t=a)),g(i)&&(oa&&(o=a))),n.displayBtn=void 0!==t||void 0!==o,n.setExtremes(t,o,!1,void 0,{trigger:"zoom"})),e.zoomed=!0})),e.zoomed},e.prototype.setAxisSize=function(){var e=this.chart,t=this.options,n=t.offsets||[0,0,0,0],r=this.horiz,i=this.width=Math.round(M(C(t.width,e.plotWidth-n[3]+n[1]),e.plotWidth)),o=this.height=Math.round(M(C(t.height,e.plotHeight-n[0]+n[2]),e.plotHeight)),s=this.top=Math.round(M(C(t.top,e.plotTop+n[0]),e.plotHeight,e.plotTop));t=this.left=Math.round(M(C(t.left,e.plotLeft+n[3]),e.plotWidth,e.plotLeft)),this.bottom=e.chartHeight-o-s,this.right=e.chartWidth-i-t,this.len=Math.max(r?i:o,0),this.pos=r?t:s},e.prototype.getExtremes=function(){var e=this.logarithmic;return{min:e?m(e.lin2log(this.min)):this.min,max:e?m(e.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}},e.prototype.getThreshold=function(e){var t=this.logarithmic,n=t?t.lin2log(this.min):this.min;return t=t?t.lin2log(this.max):this.max,null===e||-1/0===e?e=n:1/0===e?e=t:n>e?e=n:tt?e.align="right":195t&&(e.align="left")})),e.align},e.prototype.tickSize=function(e){var t=this.options,n=C(t["tick"===e?"tickWidth":"minorTickWidth"],"tick"===e&&this.isXAxis&&!this.categories?1:0),r=t["tick"===e?"tickLength":"minorTickLength"];if(n&&r){"inside"===t[e+"Position"]&&(r=-r);var i=[r,n]}return _(this,"afterTickSize",e={tickSize:i}),e.tickSize},e.prototype.labelMetrics=function(){var e=this.tickPositions&&this.tickPositions[0]||0;return this.chart.renderer.fontMetrics(this.options.labels.style.fontSize,this.ticks[e]&&this.ticks[e].label)},e.prototype.unsquish=function(){var e,t,n=this.options.labels,r=this.horiz,i=this.tickInterval,o=this.len/(((this.categories?1:0)+this.max-this.min)/i),s=n.rotation,a=this.labelMetrics(),l=Math.max(this.max-this.min,0),c=function(e){var t=e/(o||1);return(t=1l&&1/0!==e&&1/0!==o&&l&&(t=Math.ceil(l/i)),m(t*i)},u=i,h=Number.MAX_VALUE;if(r){if(!n.staggerLines&&!n.step)if(k(s))var p=[s];else o=n){var r=(t=c(Math.abs(a.h/Math.sin(d*n))))+Math.abs(n/360);rr.step)return r.rotation?0:(this.staggerLines||1)*this.len/i;if(!n){if(void 0!==(e=r.style.width))return parseInt(String(e),10);if(o)return o-t.spacing[3]}return.33*t.chartWidth},e.prototype.renderUnsquish=function(){var e=this.chart,t=e.renderer,n=this.tickPositions,r=this.ticks,i=this.options.labels,o=i.style,s=this.horiz,a=this.getSlotWidth(),l=Math.max(1,Math.round(a-2*i.padding)),c={},u=this.labelMetrics(),d=o.textOverflow,h=0;if(O(i.rotation)||(c.rotation=i.rotation||0),n.forEach((function(e){(e=r[e]).movedLabel&&e.replaceMovedLabel(),e&&e.label&&e.label.textPxLength>h&&(h=e.label.textPxLength)})),this.maxLabelLength=h,this.autoRotation)h>l&&h>u.h?c.rotation=this.labelRotation:this.labelRotation=0;else if(a){var p=l;if(!d){var f="clip";for(l=n.length;!s&&l--;){var m=n[l];(m=r[m].label)&&(m.styles&&"ellipsis"===m.styles.textOverflow?m.css({textOverflow:"clip"}):m.textPxLength>a&&m.css({width:a+"px"}),m.getBBox().height>this.len/n.length-(u.h-u.f)&&(m.specificTextOverflow="ellipsis"))}}}c.rotation&&(p=h>.5*e.chartHeight?.33*e.chartHeight:h,d||(f="ellipsis")),(this.labelAlign=i.align||this.autoLabelAlign(this.labelRotation))&&(c.align=this.labelAlign),n.forEach((function(e){var t=(e=r[e])&&e.label,n=o.width,i={};t&&(t.attr(c),e.shortenLabel?e.shortenLabel():p&&!n&&"nowrap"!==o.whiteSpace&&(p=this.min&&e<=this.max||this.grid&&this.grid.isColumn)&&(r[e]||(r[e]=new s(this,e)),n&&r[e].isNew&&r[e].render(t,!0,-1),r[e].render(t))},e.prototype.render=function(){var e,t,n=this,r=n.chart,i=n.logarithmic,a=n.options,c=n.isLinked,u=n.tickPositions,d=n.axisTitle,h=n.ticks,p=n.minorTicks,f=n.alternateBands,m=a.stackLabels,g=a.alternateGridColor,b=n.tickmarkOffset,v=n.axisLine,y=n.showAxis,S=l(r.renderer.globalAnimation);if(n.labelEdge.length=0,n.overlap=!1,[h,p,f].forEach((function(e){T(e,(function(e){e.isActive=!1}))})),n.hasData()||c){var x=n.chart.hasRendered&&n.old&&k(n.old.min);n.minorTickInterval&&!n.categories&&n.getMinorTickPositions().forEach((function(e){n.renderMinorTick(e,x)})),u.length&&(u.forEach((function(e,t){n.renderTick(e,t,x)})),b&&(0===n.min||n.single)&&(h[-1]||(h[-1]=new s(n,-1,null,!0)),h[-1].render(-1))),g&&u.forEach((function(s,a){t=void 0!==u[a+1]?u[a+1]+b:n.max-b,0==a%2&&st&&(!s||c<=n)&&void 0!==c&&u.push(c),c>n&&(p=!0),c=m}}}else t=this.lin2log(t),n=this.lin2log(n),e=s?a.getMinorTickInterval():c.tickInterval,e=o("auto"===e?null:e,this.minorAutoInterval,c.tickPixelInterval/(s?5:1)*(n-t)/((s?l/a.tickPositions.length:l)||1)),e=i(e,void 0,r(e)),u=a.getLinearTickPositions(e,t,n).map(this.log2lin),s||(this.minorAutoInterval=e/5);return s||(a.tickInterval=e),u},e.prototype.lin2log=function(e){return Math.pow(10,e)},e.prototype.log2lin=function(e){return Math.log(e)/Math.LN10},e}();e.Additions=l}(t||(t={})),t})),t(n,"Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js",[n["Core/Utilities.js"]],(function(e){var t,n=e.erase,r=e.extend,i=e.isNumber;return function(e){var t,o=[];e.compose=function(e,n){return t||(t=e),-1===o.indexOf(n)&&(o.push(n),r(n.prototype,s.prototype)),n};var s=function(){function e(){}return e.prototype.getPlotBandPath=function(e,t,n){void 0===n&&(n=this.options);var r=this.getPlotLinePath({value:t,force:!0,acrossPanes:n.acrossPanes}),o=[],s=this.horiz;if(t=!i(this.min)||!i(this.max)||ethis.max&&t>this.max,e=this.getPlotLinePath({value:e,force:!0,acrossPanes:n.acrossPanes}),n=1,e&&r){if(t){var a=e.toString()===r.toString();n=0}for(t=0;tb-l?b:b-l);else{if(!m)return!1;a[e]=Math.max(s,i+l+n>t?i:i+l)}},v=function(e,t,n,r,i){var s;return it-o?s=!1:a[e]=it-r/2?t-r-2:i-n/2,s},S=function(e){var t=f;f=m,m=t,r=e},_=function(){!1!==b.apply(0,f)?!1!==v.apply(0,m)||r||(S(!0),_()):r?a.x=a.y=0:(S(!0),_())};return(i.inverted||1t}))&&(e=e.map((function(e){var t=n(e.anchorX,e.anchorY,e.point.isHeader,e.boxWidth,!1);return p(e,{target:t.y,x:t.x})}))),r.cleanSplit(),a(e,R);var j=M,N=M;e.forEach((function(e){var t=e.x,n=e.boxWidth;(e=e.isHeader)||(r.outside&&M+tN&&(N=M+t))})),e.forEach((function(e){var t=e.x,n=e.anchorX,i=e.pos,o=e.point.isHeader;if(i={visibility:void 0===i?"hidden":"inherit",x:t,y:i+$,anchorX:n,anchorY:e.anchorY},r.outside&&tn[0]?Math.max(Math.abs(n[0]),i.width-n[0]):Math.max(Math.abs(n[0]),i.width),r.height=0>n[1]?Math.max(Math.abs(n[1]),i.height-Math.abs(n[1])):Math.max(Math.abs(n[1]),i.height),this.tracker?this.tracker.attr(r):(this.tracker=t.renderer.rect(r).addClass("highcharts-tracker").add(t),e.styledMode||this.tracker.attr({fill:"rgba(0,0,0,0)"}))}}},e.prototype.styledModeFormat=function(e){return e.replace('style="font-size: 10px"','class="highcharts-header"').replace(/style="color:{(point|series)\.color}"/g,'class="highcharts-color-{$1.colorIndex}"')},e.prototype.tooltipFooterHeaderFormatter=function(e,t){var n=e.series,r=n.tooltipOptions,i=n.xAxis,s=i&&i.dateTime;i={isFooter:t,labelConfig:e};var a=r.xDateFormat,l=r[t?"footerFormat":"headerFormat"];return f(this,"headerFormatter",i,(function(t){s&&!a&&g(e.key)&&(a=s.getXDateFormat(e.key,r.dateTimeLabelFormats)),s&&a&&(e.point&&e.point.tooltipDateKeys||["key"]).forEach((function(e){l=l.replace("{point."+e+"}","{point."+e+":"+a+"}")})),n.chart.styledMode&&(l=this.styledModeFormat(l)),t.text=o(l,{point:e,series:n},this.chart)})),i.text},e.prototype.update=function(e){this.destroy(),v(!0,this.chart.options.tooltip.userOptions,e),this.init(this.chart,v(!0,this.options,e))},e.prototype.updatePosition=function(e){var t=this.chart,n=this.options,r=t.pointer,i=this.getLabel();r=r.getChartPosition();var o=(n.positioner||this.getPosition).call(this,i.width,i.height,e),s=e.plotX+t.plotLeft;e=e.plotY+t.plotTop,this.outside&&(n=n.borderWidth+2*this.distance,this.renderer.setSize(i.width+n,i.height+n,!1),1===r.scaleX&&1===r.scaleY||(u(this.container,{transform:"scale("+r.scaleX+", "+r.scaleY+")"}),s*=r.scaleX,e*=r.scaleY),s+=r.left-o.x,e+=r.top-o.y),this.move(Math.round(o.x),Math.round(o.y||0),s,e)},e}()})),t(n,"Core/Series/Point.js",[n["Core/Renderer/HTML/AST.js"],n["Core/Animation/AnimationUtilities.js"],n["Core/DefaultOptions.js"],n["Core/FormatUtilities.js"],n["Core/Utilities.js"]],(function(e,t,n,r,i){var o=t.animObject,s=n.defaultOptions,a=r.format,l=i.addEvent,c=i.defined,u=i.erase,d=i.extend,h=i.fireEvent,p=i.getNestedProperty,f=i.isArray,m=i.isFunction,g=i.isNumber,b=i.isObject,v=i.merge,y=i.objectEach,S=i.pick,_=i.syncTimeout,x=i.removeEvent,w=i.uniqueKey;return t=function(){function t(){this.colorIndex=this.category=void 0,this.formatPrefix="point",this.id=void 0,this.isNull=!1,this.percentage=this.options=this.name=void 0,this.selected=!1,this.total=this.series=void 0,this.visible=!0,this.x=void 0}return t.prototype.animateBeforeDestroy=function(){var e=this,t={x:e.startXPos,opacity:0},n=e.getGraphicalProps();n.singular.forEach((function(n){e[n]=e[n].animate("dataLabel"===n?{x:e[n].startXPos,y:e[n].startYPos,opacity:0}:t)})),n.plural.forEach((function(t){e[t].forEach((function(t){t.element&&t.animate(d({x:e.startXPos},t.startYPos?{x:t.startXPos,y:t.startYPos}:{}))}))}))},t.prototype.applyOptions=function(e,n){var r=this.series,i=r.options.pointValKey||r.pointValKey;return e=t.prototype.optionsToObject.call(this,e),d(this,e),this.options=this.options?d(this.options,e):e,e.group&&delete this.group,e.dataLabels&&delete this.dataLabels,i&&(this.y=t.prototype.getNestedProperty.call(this,i)),this.formatPrefix=(this.isNull=S(this.isValid&&!this.isValid(),null===this.x||!g(this.y)))?"null":"point",this.selected&&(this.state="select"),"name"in this&&void 0===n&&r.xAxis&&r.xAxis.hasNames&&(this.x=r.xAxis.nameToX(this)),void 0===this.x&&r?this.x=void 0===n?r.autoIncrement():n:g(e.x)&&r.options.relativeXValue&&(this.x=r.autoIncrement(e.x)),this},t.prototype.destroy=function(){function e(){for(i in(t.graphic||t.dataLabel||t.dataLabels)&&(x(t),t.destroyElements()),t)t[i]=null}var t=this,n=t.series,r=n.chart;n=n.options.dataSorting;var i,s=r.hoverPoints,a=o(t.series.chart.renderer.globalAnimation);t.legendItem&&r.legend.destroyItem(t),s&&(t.setState(),u(s,t),s.length||(r.hoverPoints=null)),t===r.hoverPoint&&t.onMouseOut(),n&&n.enabled?(this.animateBeforeDestroy(),_(e,a.duration)):e(),r.pointCount--},t.prototype.destroyElements=function(e){var t=this;(e=t.getGraphicalProps(e)).singular.forEach((function(e){t[e]=t[e].destroy()})),e.plural.forEach((function(e){t[e].forEach((function(e){e.element&&e.destroy()})),delete t[e]}))},t.prototype.firePointEvent=function(e,t,n){var r=this,i=this.series.options;(i.point.events[e]||r.options&&r.options.events&&r.options.events[e])&&r.importEvents(),"click"===e&&i.allowPointSelect&&(n=function(e){r.select&&r.select(null,e.ctrlKey||e.metaKey||e.shiftKey)}),h(r,e,t,n)},t.prototype.getClassName=function(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+(void 0!==this.colorIndex?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone&&this.zone.className?" "+this.zone.className.replace("highcharts-negative",""):"")},t.prototype.getGraphicalProps=function(e){var t,n=this,r=[],i={singular:[],plural:[]};for((e=e||{graphic:1,dataLabel:1}).graphic&&r.push("graphic","upperGraphic","shadowGroup"),e.dataLabel&&r.push("dataLabel","dataLabelUpper","connector"),t=r.length;t--;){var o=r[t];n[o]&&i.singular.push(o)}return["dataLabel","connector"].forEach((function(t){var r=t+"s";e[t]&&n[r]&&i.plural.push(r)})),i},t.prototype.getLabelConfig=function(){return{x:this.category,y:this.y,color:this.color,colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}},t.prototype.getNestedProperty=function(e){if(e)return 0===e.indexOf("custom.")?p(e,this.options):this[e]},t.prototype.getZone=function(){var e=this.series,t=e.zones;e=e.zoneAxis||"y";var n,r=0;for(n=t[r];this[e]>=n.value;)n=t[++r];return this.nonZonedColor||(this.nonZonedColor=this.color),this.color=n&&n.color&&!this.options.color?n.color:this.nonZonedColor,n},t.prototype.hasNewShapeType=function(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType},t.prototype.init=function(e,t,n){return this.series=e,this.applyOptions(t,n),this.id=c(this.id)?this.id:w(),this.resolveColor(),e.chart.pointCount++,h(this,"afterInit"),this},t.prototype.optionsToObject=function(e){var n=this.series,r=n.options.keys,i=r||n.pointArrayMap||["y"],o=i.length,s={},a=0,l=0;if(g(e)||null===e)s[i[0]]=e;else if(f(e))for(!r&&e.length>o&&("string"===(n=typeof e[0])?s.name=e[0]:"number"===n&&(s.x=e[0]),a++);ls+l&&(f=s+l),ga+c&&(g=a+c),this.hasDragged=Math.sqrt(Math.pow(u-f,2)+Math.pow(d-g,2)),10e.options.findNearestPointBy.indexOf("y");if(e=e.searchPoint(n,i),(i=m(e,!0)&&e.series)&&!(i=!m(r,!0))){i=r.distX-e.distX;var o=r.dist-e.dist,s=(e.series.group&&e.series.group.zIndex)-(r.series.group&&r.series.group.zIndex);i=0<(0!==i&&t?i:0!==o?o:0!==s?s:r.series.index>e.series.index?-1:1)}i&&(r=e)})),r)},e.prototype.getChartCoordinatesFromPoint=function(e,t){var n=e.series,r=n.xAxis;n=n.yAxis;var i=e.shapeArgs;if(r&&n){var o=v(e.clientX,e.plotX),s=e.plotY||0;return e.isNode&&i&&f(i.x)&&f(i.y)&&(o=i.x,s=i.y),t?{chartX:n.len+n.pos-s,chartY:r.len+r.pos-o}:{chartX:o+r.pos,chartY:s+n.pos}}if(i&&i.x&&i.y)return{chartX:i.x,chartY:i.y}},e.prototype.getChartPosition=function(){if(this.chartPosition)return this.chartPosition;var e=this.chart.container,t=b(e);this.chartPosition={left:t.left,top:t.top,scaleX:1,scaleY:1};var n=e.offsetWidth;return e=e.offsetHeight,2m.max&&(n=m.max-y,k=!0);k?(x-=.8*(x-s[c][0]),"number"==typeof w&&(w-=.8*(w-s[c][1])),t()):s[c]=[x,w],f||(o[c]=S-p,o[h]=y),o=f?1/_:_,i[h]=y,i[c]=n,r[f?e?"scaleY":"scaleX":"scale"+u]=_,r["translate"+u]=o*p+(x-o*b)},e.prototype.reset=function(e,t){var n=this.chart,r=n.hoverSeries,i=n.hoverPoint,o=n.hoverPoints,s=n.tooltip,a=s&&s.shared?o:i;e&&a&&y(a).forEach((function(t){t.series.isCartesian&&void 0===t.plotX&&(e=!1)})),e?s&&a&&y(a).length&&(s.refresh(a),s.shared&&o?o.forEach((function(e){e.setState(e.state,!0),e.series.isCartesian&&(e.series.xAxis.crosshair&&e.series.xAxis.drawCrosshair(null,e),e.series.yAxis.crosshair&&e.series.yAxis.drawCrosshair(null,e))})):i&&(i.setState(i.state,!0),n.axes.forEach((function(e){e.crosshair&&i.series[e.coll]===e&&e.drawCrosshair(null,i)})))):(i&&i.onMouseOut(),o&&o.forEach((function(e){e.setState()})),r&&r.onMouseOut(),s&&s.hide(t),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),n.axes.forEach((function(e){e.hideCrosshair()})),this.hoverX=n.hoverPoints=n.hoverPoint=null)},e.prototype.runPointActions=function(t,n){var r=this.chart,i=r.tooltip&&r.tooltip.options.enabled?r.tooltip:void 0,s=!!i&&i.shared,l=n||r.hoverPoint,c=l&&l.series||r.hoverSeries;l=(n=this.getHoverData(l,c,r.series,(!t||"touchmove"!==t.type)&&(!!n||c&&c.directTouch&&this.isDirectTouch),s,t)).hoverPoint,c=n.hoverSeries;var u=n.hoverPoints;if(n=c&&c.tooltipOptions.followPointer&&!c.tooltipOptions.split,s=s&&c&&!c.noSharedTooltip,l&&(l!==r.hoverPoint||i&&i.isHidden)){if((r.hoverPoints||[]).forEach((function(e){-1===u.indexOf(e)&&e.setState()})),r.hoverSeries!==c&&c.onMouseOver(),this.applyInactiveState(u),(u||[]).forEach((function(e){e.setState("hover")})),r.hoverPoint&&r.hoverPoint.firePointEvent("mouseOut"),!l.series)return;r.hoverPoints=u,r.hoverPoint=l,l.firePointEvent("mouseOver"),i&&i.refresh(s?u:l,t)}else n&&i&&!i.isHidden&&(l=i.getAnchor([{}],t),r.isInsidePlot(l[0],l[1],{visiblePlotOnly:!0})&&i.updatePosition({plotX:l[0],plotY:l[1]}));this.unDocMouseMove||(this.unDocMouseMove=a(r.container.ownerDocument,"mousemove",(function(t){var n=o[e.hoverChartIndex];n&&n.pointer.onDocumentMouseMove(t)})),this.eventsToUnbind.push(this.unDocMouseMove)),r.axes.forEach((function(e){var n,i=v((e.crosshair||{}).snap,!0);i&&((n=r.hoverPoint)&&n.series[e.coll]===e||(n=h(u,(function(t){return t.series[e.coll]===e})))),n||!i?e.drawCrosshair(t,n):e.hideCrosshair()}))},e.prototype.scaleGroups=function(e,t){var n=this.chart;n.series.forEach((function(r){var i=e||r.getPlotBox();r.group&&(r.xAxis&&r.xAxis.zoomEnabled||n.mapView)&&(r.group.attr(i),r.markerGroup&&(r.markerGroup.attr(i),r.markerGroup.clip(t?n.clipRect:null)),r.dataLabelsGroup&&r.dataLabelsGroup.attr(i))})),n.clipRect.attr(t||n.clipBox)},e.prototype.setDOMEvents=function(){var n=this,r=this.chart.container,i=r.ownerDocument;r.onmousedown=this.onContainerMouseDown.bind(this),r.onmousemove=this.onContainerMouseMove.bind(this),r.onclick=this.onContainerClick.bind(this),this.eventsToUnbind.push(a(r,"mouseenter",this.onContainerMouseEnter.bind(this))),this.eventsToUnbind.push(a(r,"mouseleave",this.onContainerMouseLeave.bind(this))),e.unbindDocumentMouseUp||(e.unbindDocumentMouseUp=a(i,"mouseup",this.onDocumentMouseUp.bind(this)));for(var o=this.chart.renderTo.parentElement;o&&"BODY"!==o.tagName;)this.eventsToUnbind.push(a(o,"scroll",(function(){delete n.chartPosition}))),o=o.parentElement;t.hasTouch&&(this.eventsToUnbind.push(a(r,"touchstart",this.onContainerTouchStart.bind(this),{passive:!1})),this.eventsToUnbind.push(a(r,"touchmove",this.onContainerTouchMove.bind(this),{passive:!1})),e.unbindDocumentTouchEnd||(e.unbindDocumentTouchEnd=a(i,"touchend",this.onDocumentTouchEnd.bind(this),{passive:!1})))},e.prototype.setHoverChartIndex=function(){var n=this.chart,r=t.charts[v(e.hoverChartIndex,-1)];r&&r!==n&&r.pointer.onContainerMouseLeave({relatedTarget:!0}),r&&r.mouseIsDown||(e.hoverChartIndex=n.index)},e.prototype.touch=function(e,t){var n=this.chart;if(this.setHoverChartIndex(),1===e.touches.length)if(e=this.normalize(e),n.isInsidePlot(e.chartX-n.plotLeft,e.chartY-n.plotTop,{visiblePlotOnly:!0})&&!n.openMenu){if(t&&this.runPointActions(e),"touchmove"===e.type)var r=!!(t=this.pinchDown)[0]&&4<=Math.sqrt(Math.pow(t[0].chartX-e.chartX,2)+Math.pow(t[0].chartY-e.chartY,2));v(r,!0)&&this.pinch(e)}else t&&this.reset();else 2===e.touches.length&&this.pinch(e)},e.prototype.touchSelect=function(e){return!(!this.chart.options.chart.zoomBySingleTouch||!e.touches||1!==e.touches.length)},e.prototype.zoomOption=function(e){var t=this.chart,n=t.options.chart;t=t.inverted;var r=n.zoomType||"";/touch/.test(e.type)&&(r=v(n.pinchType,r)),this.zoomX=e=/x/.test(r),this.zoomY=n=/y/.test(r),this.zoomHor=e&&!t||n&&t,this.zoomVert=n&&!t||e&&t,this.hasZoom=e||n},e}()})),t(n,"Core/MSPointer.js",[n["Core/Globals.js"],n["Core/Pointer.js"],n["Core/Utilities.js"]],(function(e,t,n){function r(){var e=[];return e.item=function(e){return this[e]},h(f,(function(t){e.push({pageX:t.pageX,pageY:t.pageY,target:t.target})})),e}function i(e,n,i,o){var a=s[t.hoverChartIndex||NaN];"touch"!==e.pointerType&&e.pointerType!==e.MSPOINTER_TYPE_TOUCH||!a||(a=a.pointer,o(e),a[n]({type:i,target:e.currentTarget,preventDefault:l,touches:r()}))}var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),s=e.charts,a=e.doc,l=e.noop,c=e.win,u=n.addEvent,d=n.css,h=n.objectEach,p=n.removeEvent,f={},m=!!c.PointerEvent;return function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return o(n,t),n.isRequired=function(){return!(e.hasTouch||!c.PointerEvent&&!c.MSPointerEvent)},n.prototype.batchMSEvents=function(e){e(this.chart.container,m?"pointerdown":"MSPointerDown",this.onContainerPointerDown),e(this.chart.container,m?"pointermove":"MSPointerMove",this.onContainerPointerMove),e(a,m?"pointerup":"MSPointerUp",this.onDocumentPointerUp)},n.prototype.destroy=function(){this.batchMSEvents(p),t.prototype.destroy.call(this)},n.prototype.init=function(e,n){t.prototype.init.call(this,e,n),this.hasZoom&&d(e.container,{"-ms-touch-action":"none","touch-action":"none"})},n.prototype.onContainerPointerDown=function(e){i(e,"onContainerTouchStart","touchstart",(function(e){f[e.pointerId]={pageX:e.pageX,pageY:e.pageY,target:e.currentTarget}}))},n.prototype.onContainerPointerMove=function(e){i(e,"onContainerTouchMove","touchmove",(function(e){f[e.pointerId]={pageX:e.pageX,pageY:e.pageY},f[e.pointerId].target||(f[e.pointerId].target=e.currentTarget)}))},n.prototype.onDocumentPointerUp=function(e){i(e,"onDocumentTouchEnd","touchend",(function(e){delete f[e.pointerId]}))},n.prototype.setDOMEvents=function(){t.prototype.setDOMEvents.call(this),(this.hasZoom||this.followTouchMove)&&this.batchMSEvents(u)},n}(t)})),t(n,"Core/Legend/Legend.js",[n["Core/Animation/AnimationUtilities.js"],n["Core/FormatUtilities.js"],n["Core/Globals.js"],n["Core/Series/Point.js"],n["Core/Renderer/RendererUtilities.js"],n["Core/Utilities.js"]],(function(e,t,n,r,i,o){var s=e.animObject,a=e.setAnimation,l=t.format;e=n.isFirefox;var c=n.marginNames;n=n.win;var u=i.distribute,d=o.addEvent,h=o.createElement,p=o.css,f=o.defined,m=o.discardElement,g=o.find,b=o.fireEvent,v=o.isNumber,y=o.merge,S=o.pick,_=o.relativeLength,x=o.stableSort,w=o.syncTimeout;return i=o.wrap,o=function(){function e(e,t){this.allItems=[],this.contentGroup=this.box=void 0,this.display=!1,this.group=void 0,this.offsetWidth=this.maxLegendWidth=this.maxItemWidth=this.legendWidth=this.legendHeight=this.lastLineHeight=this.lastItemY=this.itemY=this.itemX=this.itemMarginTop=this.itemMarginBottom=this.itemHeight=this.initialItemY=0,this.options={},this.padding=0,this.pages=[],this.proximate=!1,this.scrollGroup=void 0,this.widthOption=this.totalItemWidth=this.titleHeight=this.symbolWidth=this.symbolHeight=0,this.chart=e,this.init(e,t)}return e.prototype.init=function(e,t){this.chart=e,this.setOptions(t),t.enabled&&(this.render(),d(this.chart,"endResize",(function(){this.legend.positionCheckboxes()})),this.proximate?this.unchartrender=d(this.chart,"render",(function(){this.legend.proximatePositions(),this.legend.positionItems()})):this.unchartrender&&this.unchartrender())},e.prototype.setOptions=function(e){var t=S(e.padding,8);this.options=e,this.chart.styledMode||(this.itemStyle=e.itemStyle,this.itemHiddenStyle=y(this.itemStyle,e.itemHiddenStyle)),this.itemMarginTop=e.itemMarginTop||0,this.itemMarginBottom=e.itemMarginBottom||0,this.padding=t,this.initialItemY=t-5,this.symbolWidth=S(e.symbolWidth,16),this.pages=[],this.proximate="proximate"===e.layout&&!this.chart.inverted,this.baseline=void 0},e.prototype.update=function(e,t){var n=this.chart;this.setOptions(y(!0,this.options,e)),this.destroy(),n.isDirtyLegend=n.isDirtyBox=!0,S(t,!0)&&n.redraw(),b(this,"afterUpdate")},e.prototype.colorizeItem=function(e,t){if(e.legendGroup[t?"removeClass":"addClass"]("highcharts-legend-item-hidden"),!this.chart.styledMode){var n=this.options,r=e.legendItem,i=e.legendLine,o=e.legendSymbol,s=this.itemHiddenStyle.color;n=t?n.itemStyle.color:s;var a=t&&e.color||s,l=e.options&&e.options.marker,c={fill:a};r&&r.css({fill:n,color:n}),i&&i.attr({stroke:a}),o&&(l&&o.isMarker&&(c=e.pointAttribs(),t||(c.stroke=c.fill=s)),o.attr(c))}b(this,"afterColorizeItem",{item:e,visible:t})},e.prototype.positionItems=function(){this.allItems.forEach(this.positionItem,this),this.chart.isResizing||this.positionCheckboxes()},e.prototype.positionItem=function(e){var t=this,n=this.options,r=n.symbolPadding,i=!n.rtl,o=e._legendItemPos;n=o[0],o=o[1];var s=e.checkbox,a=e.legendGroup;a&&a.element&&(r={translateX:i?n:this.legendWidth-n-2*r-4,translateY:o},i=function(){b(t,"afterPositionItem",{item:e})},f(a.translateY)?a.animate(r,void 0,i):(a.attr(r),i())),s&&(s.x=n,s.y=o)},e.prototype.destroyItem=function(e){var t=e.checkbox;["legendItem","legendLine","legendSymbol","legendGroup"].forEach((function(t){e[t]&&(e[t]=e[t].destroy())})),t&&m(e.checkbox)},e.prototype.destroy=function(){function e(e){this[e]&&(this[e]=this[e].destroy())}this.getAllItems().forEach((function(t){["legendItem","legendGroup"].forEach(e,t)})),"clipRect up down pager nav box title group".split(" ").forEach(e,this),this.display=null},e.prototype.positionCheckboxes=function(){var e=this.group&&this.group.alignAttr,t=this.clipHeight||this.legendHeight,n=this.titleHeight;if(e){var r=e.translateY;this.allItems.forEach((function(i){var o=i.checkbox;if(o){var s=r+n+o.y+(this.scrollOffset||0)+3;p(o,{left:e.translateX+i.checkboxOffset+o.x-20+"px",top:s+"px",display:this.proximate||s>r-6&&s1.5*n?t.height:n))},e.prototype.layoutItem=function(e){var t=this.options,n=this.padding,r="horizontal"===t.layout,i=e.itemHeight,o=this.itemMarginBottom,s=this.itemMarginTop,a=r?S(t.itemDistance,20):0,l=this.maxLegendWidth;t=t.alignColumns&&this.totalItemWidth>l?this.maxItemWidth:e.itemWidth,r&&this.itemX-n+t>l&&(this.itemX=n,this.lastLineHeight&&(this.itemY+=s+this.lastLineHeight+o),this.lastLineHeight=0),this.lastItemY=s+this.itemY+o,this.lastLineHeight=Math.max(i,this.lastLineHeight),e._legendItemPos=[this.itemX,this.itemY],r?this.itemX+=t:(this.itemY+=s+i+o,this.lastLineHeight=i),this.offsetWidth=this.widthOption||Math.max((r?this.itemX-n-(e.checkbox?0:a):t)+n,this.offsetWidth)},e.prototype.getAllItems=function(){var e=[];return this.chart.series.forEach((function(t){var n=t&&t.options;t&&S(n.showInLegend,!f(n.linkedTo)&&void 0,!0)&&(e=e.concat(t.legendItems||("point"===n.legendType?t.data:t)))})),b(this,"afterGetAllItems",{allItems:e}),e},e.prototype.getAlignment=function(){var e=this.options;return this.proximate?e.align.charAt(0)+"tv":e.floating?"":e.align.charAt(0)+e.verticalAlign.charAt(0)+e.layout.charAt(0)},e.prototype.adjustMargins=function(e,t){var n=this.chart,r=this.options,i=this.getAlignment();i&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach((function(o,s){o.test(i)&&!f(e[s])&&(n[c[s]]=Math.max(n[c[s]],n.legend[(s+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][s]*r[s%2?"x":"y"]+S(r.margin,12)+t[s]+(n.titleOffset[s]||0)))}))},e.prototype.proximatePositions=function(){var e=this.chart,t=[],n="left"===this.options.align;this.allItems.forEach((function(r){var i,o=n;if(r.yAxis){r.xAxis.options.reversed&&(o=!o),r.points&&(i=g(o?r.points:r.points.slice(0).reverse(),(function(e){return v(e.plotY)}))),o=this.itemMarginTop+r.legendItem.getBBox().height+this.itemMarginBottom;var s=r.yAxis.top-e.plotTop;r.visible?(i=i?i.plotY:r.yAxis.height,i+=s-.3*o):i=s+r.yAxis.height,t.push({target:i,size:o,item:r})}}),this),u(t,e.plotHeight).forEach((function(t){t.item._legendItemPos&&(t.item._legendItemPos[1]=e.plotTop-e.spacing[0]+t.pos)}))},e.prototype.render=function(){var e=this.chart,t=e.renderer,n=this.options,r=this.padding,i=this.getAllItems(),o=this.group,s=this.box;this.itemX=r,this.itemY=this.initialItemY,this.lastItemY=this.offsetWidth=0,this.widthOption=_(n.width,e.spacingBox.width-r);var a=e.spacingBox.width-2*r-n.x;-1<["rm","lm"].indexOf(this.getAlignment().substring(0,2))&&(a/=2),this.maxLegendWidth=this.widthOption||a,o||(this.group=o=t.g("legend").addClass(n.className||"").attr({zIndex:7}).add(),this.contentGroup=t.g().attr({zIndex:1}).add(o),this.scrollGroup=t.g().add(this.contentGroup)),this.renderTitle(),x(i,(function(e,t){return(e.options&&e.options.legendIndex||0)-(t.options&&t.options.legendIndex||0)})),n.reversed&&i.reverse(),this.allItems=i,this.display=a=!!i.length,this.itemHeight=this.totalItemWidth=this.maxItemWidth=this.lastLineHeight=0,i.forEach(this.renderItem,this),i.forEach(this.layoutItem,this),i=(this.widthOption||this.offsetWidth)+r;var l=this.lastItemY+this.lastLineHeight+this.titleHeight;l=this.handleOverflow(l),l+=r,s||(this.box=s=t.rect().addClass("highcharts-legend-box").attr({r:n.borderRadius}).add(o),s.isNew=!0),e.styledMode||s.attr({stroke:n.borderColor,"stroke-width":n.borderWidth||0,fill:n.backgroundColor||"none"}).shadow(n.shadow),0a&&!1!==d.enabled?(this.clipHeight=t=Math.max(a-20-this.titleHeight-c,0),this.currentPage=S(this.currentPage,1),this.fullHeight=e,m.forEach((function(e,r){var i=e._legendItemPos[1],o=Math.round(e.legendItem.getBBox().height),s=f.length;(!s||i-f[s-1]>t&&(n||i)!==f[s-1])&&(f.push(n||i),s++),e.pageIx=s-1,n&&(m[r-1].pageIx=s-1),r===m.length-1&&i+o-f[s-1]>t&&o<=t&&(f.push(i),e.pageIx=s),i!==n&&(n=i)})),y||(y=r.clipRect=o.clipRect(0,c,9999,0),r.contentGroup.clip(y)),g(t),v||(this.nav=v=o.g().attr({zIndex:1}).add(this.group),this.up=o.symbol("triangle",0,0,p,p).add(v),b("upTracker").on("click",(function(){r.scroll(-1,h)})),this.pager=o.text("",15,10).addClass("highcharts-legend-navigation"),i.styledMode||this.pager.css(d.style),this.pager.add(v),this.down=o.symbol("triangle-down",0,0,p,p).add(v),b("downTracker").on("click",(function(){r.scroll(1,h)}))),r.scroll(0),e=a):v&&(g(),this.nav=v.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),e},e.prototype.scroll=function(e,t){var n=this,r=this.chart,i=this.pages,o=i.length,l=this.clipHeight,c=this.options.navigation,u=this.pager,d=this.padding,h=this.currentPage+e;h>o&&(h=o),0=Math.max(l+o,d.pos)&&a<=Math.min(l+o+i.width,d.pos+d.len)||(e.isInsidePlot=!1)}return!n.ignoreY&&e.isInsidePlot&&(r=u&&(r?u.xAxis:u.yAxis)||{pos:s,len:1/0},(n=n.paneCoordinates?r.pos+t:s+t)>=Math.max(c+s,r.pos)&&n<=Math.min(c+s+i.height,r.pos+r.len)||(e.isInsidePlot=!1)),B(this,"afterIsInsidePlot",e),e.isInsidePlot},e.prototype.redraw=function(e){B(this,"beforeRedraw");var t=this.hasCartesianSeries?this.axes:this.colorAxis||[],n=this.series,r=this.pointer,i=this.legend,o=this.userOptions.legend,s=this.renderer,a=s.isHidden(),l=[],c=this.isDirtyBox,u=this.isDirtyLegend;for(this.setResponsive&&this.setResponsive(!1),b(!!this.hasRendered&&e,this),a&&this.temporaryDisplay(),this.layOutTitles(),e=n.length;e--;){var d=n[e];if(d.options.stacking||d.options.centerInCategory){var h=!0;if(d.isDirty){var p=!0;break}}}if(p)for(e=n.length;e--;)(d=n[e]).options.stacking&&(d.isDirty=!0);n.forEach((function(e){e.isDirty&&("point"===e.options.legendType?("function"==typeof e.updateTotals&&e.updateTotals(),u=!0):o&&(o.labelFormatter||o.labelFormat)&&(u=!0)),e.isDirtyData&&B(e,"updatedData")})),u&&i&&i.options.enabled&&(i.render(),this.isDirtyLegend=!1),h&&this.getStacks(),t.forEach((function(e){e.updateNames(),e.setScale()})),this.getMargins(),t.forEach((function(e){e.isDirty&&(c=!0)})),t.forEach((function(e){var t=e.min+","+e.max;e.extKey!==t&&(e.extKey=t,l.push((function(){B(e,"afterSetExtremes",I(e.eventArgs,e.getExtremes())),delete e.eventArgs}))),(c||h)&&e.redraw()})),c&&this.drawChartBox(),B(this,"predraw"),n.forEach((function(e){(c||e.isDirty)&&e.visible&&e.redraw(),e.isDirtyData=!1})),r&&r.reset(!0),s.draw(),B(this,"redraw"),B(this,"render"),a&&this.temporaryDisplay(!0),l.forEach((function(e){e.call()}))},e.prototype.get=function(e){function t(t){return t.id===e||t.options&&t.options.id===e}for(var n=this.series,r=L(this.axes,t)||L(this.series,t),i=0;!r&&i=a&&i<=l||c||!R(i))&&(u=!0),r[c?"zoomX":"zoomY"]&&u&&(t=s.zoom(e.min,e.max),s.displayBtn&&(o=!0))}));var s=n.resetZoomButton;o&&!s?n.showResetZoom():!o&&Q(s)&&(n.resetZoomButton=s.destroy()),t&&n.redraw(V(n.options.chart.animation,e&&e.animation,100>n.pointCount))},e.prototype.pan=function(e,t){var n=this,r=n.hoverPoints;t="object"==typeof t?t:{enabled:t,type:"x"};var i=n.options.chart,o=n.options.mapNavigation&&n.options.mapNavigation.enabled;i&&i.panning&&(i.panning=t);var s,a=t.type;B(this,"pan",{originalEvent:e},(function(){r&&r.forEach((function(e){e.setState()}));var t=n.xAxis;"xy"===a?t=t.concat(n.yAxis):"y"===a&&(t=n.yAxis);var i={};t.forEach((function(t){if(t.options.panningEnabled&&!t.options.isInternal){var r=t.horiz,l=e[r?"chartX":"chartY"],c=n[r=r?"mouseDownX":"mouseDownY"],u=t.minPointOffset||0,d=t.reversed&&!n.inverted||!t.reversed&&n.inverted?-1:1,h=t.getExtremes(),p=t.toValue(c-l,!0)+u*d,f=t.toValue(c+t.len-l,!0)-(u*d||t.isXAxis&&t.pointRangePadding||0),m=f=d&&p<=f&&(t.setExtremes(c,p,!1,!1,{trigger:"pan"}),n.resetZoomButton||o||c===d||p===f||!a.match("y")||(n.showResetZoom(),t.displayBtn=!1),s=!0),i[r]=l)}})),H(i,(function(e,t){n[t]=e})),s&&n.redraw(!1),P(n.container,{cursor:"move"})}))},e}(),I(e.prototype,{callbacks:[],collectionsWithInit:{xAxis:[e.prototype.addAxis,[!0]],yAxis:[e.prototype.addAxis,[!1]],series:[e.prototype.addSeries]},collectionsWithUpdate:["xAxis","yAxis","series"],propsRequireDirtyBox:"backgroundColor borderColor borderWidth borderRadius plotBackgroundColor plotBackgroundImage plotBorderColor plotBorderWidth plotShadow shadow".split(" "),propsRequireReflow:"margin marginTop marginRight marginBottom marginLeft spacing spacingTop spacingRight spacingBottom spacingLeft".split(" "),propsRequireUpdateSeries:"chart.inverted chart.polar chart.ignoreHiddenSeries chart.type colors plotOptions time tooltip".split(" ")}),e})),t(n,"Core/Legend/LegendSymbol.js",[n["Core/Utilities.js"]],(function(e){var t,n=e.merge,r=e.pick;return function(e){e.drawLineMarker=function(e){var t=this.options,i=e.symbolWidth,o=e.symbolHeight,s=o/2,a=this.chart.renderer,l=this.legendGroup;e=e.baseline-Math.round(.3*e.fontMetrics.b);var c={},u=t.marker;this.chart.styledMode||(c={"stroke-width":t.lineWidth||0},t.dashStyle&&(c.dashstyle=t.dashStyle)),this.legendLine=a.path([["M",0,e],["L",i,e]]).addClass("highcharts-graph").attr(c).add(l),u&&!1!==u.enabled&&i&&(t=Math.min(r(u.radius,s),s),0===this.symbol.indexOf("url")&&(u=n(u,{width:o,height:o}),t=0),this.legendSymbol=i=a.symbol(this.symbol,i/2-t,e-t,2*t,2*t,u).addClass("highcharts-point").add(l),i.isMarker=!0)},e.drawRectangle=function(e,t){var n=e.symbolHeight,i=e.options.squareSymbol;t.legendSymbol=this.chart.renderer.rect(i?(e.symbolWidth-n)/2:0,e.baseline-n+1,i?n:e.symbolWidth,n,r(e.options.symbolRadius,n/2)).addClass("highcharts-point").attr({zIndex:3}).add(t.legendGroup)}}(t||(t={})),t})),t(n,"Core/Series/SeriesDefaults.js",[],(function(){return{lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1e3},events:{},marker:{enabledThreshold:2,lineColor:"#ffffff",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:50},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:"center",defer:!0,formatter:function(){var e=this.series.chart.numberFormatter;return"number"!=typeof this.y?"":e(this.y,-1)},padding:5,style:{fontSize:"11px",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:50},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:50},opacity:.2}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:"x"}})),t(n,"Core/Series/Series.js",[n["Core/Animation/AnimationUtilities.js"],n["Core/DefaultOptions.js"],n["Core/Foundation.js"],n["Core/Globals.js"],n["Core/Legend/LegendSymbol.js"],n["Core/Series/Point.js"],n["Core/Series/SeriesDefaults.js"],n["Core/Series/SeriesRegistry.js"],n["Core/Renderer/SVG/SVGElement.js"],n["Core/Utilities.js"]],(function(e,t,n,r,i,o,s,a,l,c){var u=e.animObject,d=e.setAnimation,h=t.defaultOptions,p=n.registerEventOptions,f=r.hasTouch,m=r.svg,g=r.win,b=a.seriesTypes,v=c.addEvent,y=c.arrayMax,S=c.arrayMin,_=c.clamp,x=c.cleanRecursively,w=c.correctFloat,k=c.defined,O=c.erase,E=c.error,A=c.extend,T=c.find,C=c.fireEvent,M=c.getNestedProperty,$=c.isArray,P=c.isNumber,R=c.isString,j=c.merge,N=c.objectEach,D=c.pick,I=c.removeEvent,L=c.splat,B=c.syncTimeout;return e=function(){function e(){this.zones=this.yAxis=this.xAxis=this.userOptions=this.tooltipOptions=this.processedYData=this.processedXData=this.points=this.options=this.linkedSeries=this.index=this.eventsToUnbind=this.eventOptions=this.data=this.chart=this._i=void 0}return e.prototype.init=function(e,t){C(this,"init",{options:t});var n=this,r=e.series;this.eventsToUnbind=[],n.chart=e,n.options=n.setOptions(t),t=n.options,n.linkedSeries=[],n.bindAxes(),A(n,{name:t.name,state:"",visible:!1!==t.visible,selected:!0===t.selected}),p(this,t);var i,o=t.events;(o&&o.click||t.point&&t.point.events&&t.point.events.click||t.allowPointSelect)&&(e.runTrackerClick=!0),n.getColor(),n.getSymbol(),n.parallelArrays.forEach((function(e){n[e+"Data"]||(n[e+"Data"]=[])})),n.isCartesian&&(e.hasCartesianSeries=!0),r.length&&(i=r[r.length-1]),n._i=D(i&&i._i,-1)+1,n.opacity=n.options.opacity,e.orderSeries(this.insert(r)),t.dataSorting&&t.dataSorting.enabled?n.setDataSortingOptions():n.points||n.data||n.setData(t.data,!1),C(this,"afterInit")},e.prototype.is=function(e){return b[e]&&this instanceof b[e]},e.prototype.insert=function(e){var t,n=this.options.index;if(P(n)){for(t=e.length;t--;)if(n>=D(e[t].options.index,e[t]._i)){e.splice(t+1,0,this);break}-1===t&&e.unshift(this),t+=1}else e.push(this);return D(t,e.length-1)},e.prototype.bindAxes=function(){var e,t=this,n=t.options,r=t.chart;C(this,"bindAxes",null,(function(){(t.axisTypes||[]).forEach((function(i){var o=0;r[i].forEach((function(r){e=r.options,(n[i]===o&&!e.isInternal||void 0!==n[i]&&n[i]===e.id||void 0===n[i]&&0===e.index)&&(t.insert(r.series),t[i]=r,r.isDirty=!0),e.isInternal||o++})),t[i]||t.optionalAxis===i||E(18,!0,r)}))})),C(this,"afterBindAxes")},e.prototype.updateParallelArrays=function(e,t){var n=e.series,r=arguments,i=P(t)?function(r){var i="y"===r&&n.toYData?n.toYData(e):e[r];n[r+"Data"][t]=i}:function(e){Array.prototype[t].apply(n[e+"Data"],Array.prototype.slice.call(r,2))};n.parallelArrays.forEach(i)},e.prototype.hasData=function(){return this.visible&&void 0!==this.dataMax&&void 0!==this.dataMin||this.visible&&this.yData&&0=this.cropStart?c-this.cropStart:c),!r&&P(c)&&a[c]&&a[c].touched&&(c=void 0),c},e.prototype.updateData=function(e,t){var n,r,i,o=this.options,s=o.dataSorting,a=this.points,l=[],c=this.requireSorting,u=e.length===a.length,d=!0;if(this.xIncrement=null,e.forEach((function(e,t){var r=k(e)&&this.pointClass.prototype.optionsToObject.call({series:this},e)||{},d=r.x;r.id||P(d)?(-1===(r=this.findPointIndex(r,i))||void 0===r?l.push(e):a[r]&&e!==o.data[r]?(a[r].update(e,!1,null,!1),a[r].touched=!0,c&&(i=r+1)):a[r]&&(a[r].touched=!0),(!u||t!==r||s&&s.enabled||this.hasDerivedData)&&(n=!0)):l.push(e)}),this),n)for(e=a.length;e--;)(r=a[e])&&!r.touched&&r.remove&&r.remove(!1,t);else!u||s&&s.enabled?d=!1:(e.forEach((function(e,t){e!==a[t].y&&a[t].update&&a[t].update(e,!1,null,!1)})),l.length=0);return a.forEach((function(e){e&&(e.touched=!1)})),!!d&&(l.forEach((function(e){this.addPoint(e,!1,null,null,!1)}),this),null===this.xIncrement&&this.xData&&this.xData.length&&(this.xIncrement=y(this.xData),this.autoIncrement()),!0)},e.prototype.setData=function(e,t,n,r){var i=this,o=i.points,s=o&&o.length||0,a=i.options,l=i.chart,c=a.dataSorting,u=i.xAxis,d=a.turboThreshold,h=this.xData,p=this.yData,f=i.pointArrayMap;f=f&&f.length;var m,g=a.keys,b=0,v=1,y=null,S=(e=e||[]).length;if(t=D(t,!0),c&&c.enabled&&(e=this.sortData(e)),!1!==r&&S&&s&&!i.cropped&&!i.hasGroupedData&&i.visible&&!i.isSeriesBoosting&&(m=this.updateData(e,n)),!m){if(i.xIncrement=null,i.colorCounter=0,this.parallelArrays.forEach((function(e){i[e+"Data"].length=0})),d&&S>d)if(y=i.getFirstValidPoint(e),P(y))for(n=0;ne?1:0})).forEach((function(e,t){e.x=t}),this),t.linkedSeries&&t.linkedSeries.forEach((function(t){var n=t.options,i=n.data;n.dataSorting&&n.dataSorting.enabled||!i||(i.forEach((function(n,o){i[o]=r(t,n),e[o]&&(i[o].x=e[o].x,i[o].index=o)})),t.setData(i,!1))})),e},e.prototype.getProcessedData=function(e){var t=this.xAxis,n=this.options,r=n.cropThreshold,i=e||this.getExtremesFromAll||n.getExtremesFromAll,o=this.isCartesian;e=t&&t.val2lin,n=!(!t||!t.logarithmic);var s=0,a=this.xData,l=this.yData,c=this.requireSorting,u=!1,d=a.length;if(t){var h=(u=t.getExtremes()).min,p=u.max;u=t.categories&&!t.names.length}if(o&&this.sorted&&!i&&(!r||d>r||this.forceCrop))if(a[d-1]p)a=[],l=[];else if(this.yData&&(a[0]p)){var f=this.cropData(this.xData,this.yData,h,p);a=f.xData,l=f.yData,s=f.start,f=!0}for(r=a.length||1;--r;)if(0<(t=n?e(a[r])-e(a[r-1]):a[r]-a[r-1])&&(void 0===m||tt&&c&&!u&&(E(15,!1,this.chart),c=!1);return{xData:a,yData:l,cropped:f,cropStart:s,closestPointRange:m}},e.prototype.processData=function(e){var t=this.xAxis;if(this.isCartesian&&!this.isDirty&&!t.isDirty&&!this.yAxis.isDirty&&!e)return!1;e=this.getProcessedData(),this.cropped=e.cropped,this.cropStart=e.cropStart,this.processedXData=e.xData,this.processedYData=e.yData,this.closestPointRange=this.basePointRange=e.closestPointRange,C(this,"afterProcessData")},e.prototype.cropData=function(e,t,n,r,i){var o,s=e.length,a=0,l=s;for(i=D(i,this.cropShoulder),o=0;o=n){a=Math.max(0,o-i);break}for(n=o;nr){l=n+i;break}return{xData:e.slice(a,l),yData:t.slice(a,l),start:a,end:l}},e.prototype.generatePoints=function(){var e=this.options,t=e.data,n=this.processedXData,r=this.processedYData,i=this.pointClass,o=n.length,s=this.cropStart||0,a=this.hasGroupedData,l=e.keys,c=[];e=e.dataGrouping&&e.dataGrouping.groupAll?s:0;var u,d,h=this.data;if(!h&&!a){var p=[];p.length=t.length,h=this.data=p}for(l&&a&&(this.options.keys=!1),d=0;d=l&&(i[a-s]||p)<=c,f&&p)if(f=h.length)for(;f--;)P(h[f])&&(o[u++]=h[f]);else o[u++]=h}return e={activeYData:o,dataMin:S(o),dataMax:y(o)},C(this,"afterGetExtremes",{dataExtremes:e}),e},e.prototype.applyExtremes=function(){var e=this.getExtremes();return this.dataMin=e.dataMin,this.dataMax=e.dataMax,e},e.prototype.getFirstValidPoint=function(e){for(var t=e.length,n=0,r=null;null===r&&n=x&&(x=null),g.total=g.stackTotal=v.total,g.percentage=v.total&&g.y/v.total*100,g.stackY=S,this.irregularWidths||v.setOffset(this.pointXOffset||0,this.barW||0)),g.yBottom=k(x)?_(a.translate(x,0,1,0,1),-1e5,1e5):null,this.dataModify&&(S=this.dataModify.modifyValue(S,e)),g.plotY=void 0,P(S)&&(void 0!==(v=a.translate(S,!1,!0,!1,!0))&&(g.plotY=_(v,-1e5,1e5))),g.isInside=this.isPointInside(g),g.clientX=d?w(i.translate(b,0,0,0,1,u)):t,g.negative=g[f]<(n[f+"Threshold"]||h||0),g.category=o&&void 0!==o[g.x]?o[g.x]:g.x,!g.isNull&&!1!==g.visible){void 0!==A&&(m=Math.min(m,Math.abs(t-A)));var A=t}g.zone=this.zones.length?g.getZone():void 0,!g.graphic&&this.group&&s&&(g.isNew=!0)}this.closestPointRangePx=m,C(this,"afterTranslate")},e.prototype.getValidPoints=function(e,t,n){var r=this.chart;return(e||this.points||[]).filter((function(e){return!(t&&!r.isInsidePlot(e.plotX,e.plotY,{inverted:r.inverted}))&&(!1!==e.visible&&(n||!e.isNull))}))},e.prototype.getClipBox=function(){var e=this.chart,t=this.xAxis,n=this.yAxis,r=j(e.clipBox);return t&&t.len!==e.plotSizeX&&(r.width=t.len),n&&n.len!==e.plotSizeY&&(r.height=n.len),r},e.prototype.getSharedClipKey=function(){return this.sharedClipKey=(this.options.xAxis||0)+","+(this.options.yAxis||0)},e.prototype.setClip=function(){var e=this.chart,t=this.group,n=this.markerGroup,r=e.sharedClips;e=e.renderer;var i=this.getClipBox(),o=this.getSharedClipKey(),s=r[o];s?s.animate(i):r[o]=s=e.clipRect(i),t&&t.clip(!1===this.options.clip?void 0:s),n&&n.clip()},e.prototype.animate=function(e){var t=this.chart,n=this.group,r=this.markerGroup,i=t.inverted,o=u(this.options.animation),s=[this.getSharedClipKey(),o.duration,o.easing,o.defer].join(),a=t.sharedClips[s],l=t.sharedClips[s+"m"];if(e&&n)o=this.getClipBox(),a?a.attr("height",o.height):(o.width=0,i&&(o.x=t.plotHeight),a=t.renderer.clipRect(o),t.sharedClips[s]=a,l=t.renderer.clipRect({x:i?(t.plotSizeX||0)+99:-99,y:i?-t.plotLeft:-t.plotTop,width:99,height:i?t.chartWidth:t.chartHeight}),t.sharedClips[s+"m"]=l),n.clip(a),r&&r.clip(l);else if(a&&!a.hasClass("highcharts-animating")){t=this.getClipBox();var c=o.step;r&&r.element.childNodes.length&&(o.step=function(e,t){c&&c.apply(t,arguments),l&&l.element&&l.attr(t.prop,"width"===t.prop?e+99:e)}),a.addClass("highcharts-animating").animate(t,o)}},e.prototype.afterAnimate=function(){var e=this;this.setClip(),N(this.chart.sharedClips,(function(t,n,r){t&&!e.chart.container.querySelector('[clip-path="url(#'+t.id+')"]')&&(t.destroy(),delete r[n])})),this.finishedAnimating=!0,C(this,"afterAnimate")},e.prototype.drawPoints=function(){var e,t,n=this.points,r=this.chart,i=this.options.marker,o=this[this.specialGroup]||this.markerGroup,s=this.xAxis,a=D(i.enabled,!(s&&!s.isRadial)||null,this.closestPointRangePx>=i.enabledThreshold*i.radius);if(!1!==i.enabled||this._hasPointMarkers)for(e=0;ex.max,l.resetZones&&0===t&&(t=void 0)})),this.clips=h}else l.visible&&(p&&p.show(!0),f&&f.show(!0))},e.prototype.invertGroups=function(e){function t(){["group","markerGroup"].forEach((function(t){n[t]&&(r.renderer.isVML&&n[t].attr({width:n.yAxis.len,height:n.xAxis.len}),n[t].width=n.yAxis.len,n[t].height=n.xAxis.len,n[t].invert(!n.isRadialSeries&&e))}))}var n=this,r=n.chart;n.xAxis&&(n.eventsToUnbind.push(v(r,"resize",t)),t(),n.invertGroups=t)},e.prototype.plotGroup=function(e,t,n,r,i){var o=this[e],s=!o;return n={visibility:n,zIndex:r||.1},void 0===this.opacity||this.chart.styledMode||"inactive"===this.state||(n.opacity=this.opacity),s&&(this[e]=o=this.chart.renderer.g().add(i)),o.addClass("highcharts-"+t+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(k(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(o.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0),o.attr(n)[s?"attr":"animate"](this.getPlotBox()),o},e.prototype.getPlotBox=function(){var e=this.chart,t=this.xAxis,n=this.yAxis;return e.inverted&&(t=n,n=this.xAxis),{translateX:t?t.left:e.plotLeft,translateY:n?n.top:e.plotTop,scaleX:1,scaleY:1}},e.prototype.removeEvents=function(e){e||I(this),this.eventsToUnbind.length&&(this.eventsToUnbind.forEach((function(e){e()})),this.eventsToUnbind.length=0)},e.prototype.render=function(){var e=this,t=e.chart,n=e.options,r=u(n.animation),i=e.visible?"inherit":"hidden",o=n.zIndex,s=e.hasRendered,a=t.seriesGroup,l=t.inverted;t=!e.finishedAnimating&&t.renderer.isSVG?r.duration:0,C(this,"render");var c=e.plotGroup("group","series",i,o,a);e.markerGroup=e.plotGroup("markerGroup","markers",i,o,a),!1!==n.clip&&e.setClip(),e.animate&&t&&e.animate(!0),c.inverted=!!D(e.invertible,e.isCartesian)&&l,e.drawGraph&&(e.drawGraph(),e.applyZones()),e.visible&&e.drawPoints(),e.drawDataLabels&&e.drawDataLabels(),e.redrawPoints&&e.redrawPoints(),e.drawTracker&&!1!==e.options.enableMouseTracking&&e.drawTracker(),e.invertGroups(l),e.animate&&t&&e.animate(),s||(t&&r.defer&&(t+=r.defer),e.animationTimeout=B((function(){e.afterAnimate()}),t||0)),e.isDirty=!1,e.hasRendered=!0,C(e,"afterRender")},e.prototype.redraw=function(){var e=this.chart,t=this.isDirty||this.isDirtyData,n=this.group,r=this.xAxis,i=this.yAxis;n&&(e.inverted&&n.attr({width:e.plotWidth,height:e.plotHeight}),n.animate({translateX:D(r&&r.left,e.plotLeft),translateY:D(i&&i.top,e.plotTop)})),this.translate(),this.render(),t&&delete this.kdTree},e.prototype.searchPoint=function(e,t){var n=this.xAxis,r=this.yAxis,i=this.chart.inverted;return this.searchKDTree({clientX:i?n.len-e.chartY+n.pos:e.chartX-n.pos,plotY:i?r.len-e.chartX+r.pos:e.chartY-r.pos},t,e)},e.prototype.buildKDTree=function(e){this.buildingKdTree=!0;var t=this,n=-1(u=t[u]-c[u])?"right":"left",n[p=0>u?"left":"right"]&&(d=(p=e(t,n[p],a+1,l))[s]p;)f--;this.updateParallelArrays(h,"splice",f,0,0),this.updateParallelArrays(h,f),l&&h.name&&(l[p]=h.name),u.splice(f,0,e),c&&(this.data.splice(f,0,null),this.processData()),"point"===o.legendType&&this.generatePoints(),n&&(s[0]&&s[0].remove?s[0].remove(!1):(s.shift(),this.updateParallelArrays(h,"shift"),u.shift())),!1!==i&&C(this,"addPoint",{point:h}),this.isDirtyData=this.isDirty=!0,t&&a.redraw(r)},e.prototype.removePoint=function(e,t,n){var r=this,i=r.data,o=i[e],s=r.points,a=r.chart,l=function(){s&&s.length===i.length&&s.splice(e,1),i.splice(e,1),r.options.data.splice(e,1),r.updateParallelArrays(o||{series:r},"splice",e,1),o&&o.destroy(),r.isDirty=!0,r.isDirtyData=!0,t&&a.redraw()};d(n,a),t=D(t,!0),o?o.firePointEvent("remove",null,l):l()},e.prototype.remove=function(e,t,n,r){function i(){o.destroy(r),s.isDirtyLegend=s.isDirtyBox=!0,s.linkSeries(),D(e,!0)&&s.redraw(t)}var o=this,s=o.chart;!1!==n?C(o,"remove",null,i):i()},e.prototype.update=function(e,t){e=x(e,this.userOptions),C(this,"update",{options:e});var n,r=this,i=r.chart,o=r.userOptions,s=r.initialType||r.type,a=i.options.plotOptions,l=b[s].prototype,c=r.finishedAnimating&&{animation:!1},u={},d=["eventOptions","navigatorSeries","baseSeries"],h=e.type||o.type||i.options.chart.type,p=!(this.hasDerivedData||h&&h!==this.type||void 0!==e.pointStart||void 0!==e.pointInterval||void 0!==e.relativeXValue||r.hasOptionChanged("dataGrouping")||r.hasOptionChanged("pointStart")||r.hasOptionChanged("pointInterval")||r.hasOptionChanged("pointIntervalUnit")||r.hasOptionChanged("keys"));if(h=h||s,p&&(d.push("data","isDirtyData","points","processedXData","processedYData","xIncrement","cropped","_hasPointMarkers","_hasPointLabels","clips","nodes","layout","mapMap","mapData","minY","maxY","minX","maxX"),!1!==e.visible&&d.push("area","graph"),r.parallelArrays.forEach((function(e){d.push(e+"Data")})),e.data&&(e.dataSorting&&A(r.options.dataSorting,e.dataSorting),this.setData(e.data,!1))),e=j(o,c,{index:void 0===o.index?r.index:o.index,pointStart:D(a&&a.series&&a.series.pointStart,o.pointStart,r.xData[0])},!p&&{data:r.options.data},e),p&&e.data&&(e.data=r.options.data),(d=["group","markerGroup","dataLabelsGroup","transformGroup"].concat(d)).forEach((function(e){d[e]=r[e],delete r[e]})),a=!1,b[h]){if(a=h!==r.type,r.remove(!1,!1,!1,!0),a)if(Object.setPrototypeOf)Object.setPrototypeOf(r,b[h].prototype);else{for(n in c=Object.hasOwnProperty.call(r,"hcEvents")&&r.hcEvents,l)r[n]=void 0;A(r,b[h].prototype),c?r.hcEvents=c:delete r.hcEvents}}else E(17,!0,i,{missingModuleFor:h});if(d.forEach((function(e){r[e]=d[e]})),r.init(i,e),p&&this.points){var f=r.options;!1===f.visible?(u.graphic=1,u.dataLabel=1):r._hasPointLabels||(e=f.marker,l=f.dataLabels,!e||!1!==e.enabled&&(o.marker&&o.marker.symbol)===e.symbol||(u.graphic=1),l&&!1===l.enabled&&(u.dataLabel=1)),this.points.forEach((function(e){e&&e.series&&(e.resolveColor(),Object.keys(u).length&&e.destroyElements(u),!1===f.showInLegend&&e.legendItem&&i.legend.destroyItem(e))}),this)}r.initialType=s,i.linkSeries(),a&&r.linkedSeries.length&&(r.isDirtyData=!0),C(this,"afterUpdate"),D(t,!0)&&i.redraw(!!p&&void 0)},e.prototype.setName=function(e){this.name=this.options.name=this.userOptions.name=e,this.chart.isDirtyLegend=!0},e.prototype.hasOptionChanged=function(e){var t=this.options[e],n=this.chart.options.plotOptions,r=this.userOptions[e];return r?t!==r:t!==D(n&&n[this.type]&&n[this.type][e],n&&n.series&&n.series[e],t)},e.prototype.onMouseOver=function(){var e=this.chart,t=e.hoverSeries;e.pointer.setHoverChartIndex(),t&&t!==this&&t.onMouseOut(),this.options.events.mouseOver&&C(this,"mouseOver"),this.setState("hover"),e.hoverSeries=this},e.prototype.onMouseOut=function(){var e=this.options,t=this.chart,n=t.tooltip,r=t.hoverPoint;t.hoverSeries=null,r&&r.onMouseOut(),this&&e.events.mouseOut&&C(this,"mouseOut"),!n||this.stickyTracking||n.shared&&!this.noSharedTooltip||n.hide(),t.series.forEach((function(e){e.setState("",!0)}))},e.prototype.setState=function(e,t){var n=this,r=n.options,i=n.graph,o=r.inactiveOtherPoints,s=r.states,a=D(s[e||"normal"]&&s[e||"normal"].animation,n.chart.options.chart.animation),l=r.lineWidth,c=0,u=r.opacity;if(e=e||"",n.state!==e&&([n.group,n.markerGroup,n.dataLabelsGroup].forEach((function(t){t&&(n.state&&t.removeClass("highcharts-series-"+n.state),e&&t.addClass("highcharts-series-"+e))})),n.state=e,!n.chart.styledMode)){if(s[e]&&!1===s[e].enabled)return;if(e&&(l=s[e].lineWidth||l+(s[e].lineWidthPlus||0),u=D(s[e].opacity,u)),i&&!i.dashstyle)for(r={"stroke-width":l},i.animate(r,a);n["zone-graph-"+c];)n["zone-graph-"+c].animate(r,a),c+=1;o||[n.group,n.markerGroup,n.dataLabelsGroup,n.labelBySeries].forEach((function(e){e&&e.animate({opacity:u},a)}))}t&&o&&n.points&&n.setAllPointsToState(e||void 0)},e.prototype.setAllPointsToState=function(e){this.points.forEach((function(t){t.setState&&t.setState(e)}))},e.prototype.setVisible=function(e,t){var n=this,r=n.chart,i=n.legendItem,o=r.options.chart.ignoreHiddenSeries,s=n.visible,a=(n.visible=e=n.options.visible=n.userOptions.visible=void 0===e?!s:e)?"show":"hide";["group","dataLabelsGroup","markerGroup","tracker","tt"].forEach((function(e){n[e]&&n[e][a]()})),r.hoverSeries!==n&&(r.hoverPoint&&r.hoverPoint.series)!==n||n.onMouseOut(),i&&r.legend.colorizeItem(n,e),n.isDirty=!0,n.options.stacking&&r.series.forEach((function(e){e.options.stacking&&e.visible&&(e.isDirty=!0)})),n.linkedSeries.forEach((function(t){t.setVisible(e,!1)})),o&&(r.isDirtyBox=!0),C(n,a),!1!==t&&r.redraw()},e.prototype.show=function(){this.setVisible(!0)},e.prototype.hide=function(){this.setVisible(!1)},e.prototype.select=function(e){this.selected=e=this.options.selected=void 0===e?!this.selected:e,this.checkbox&&(this.checkbox.checked=e),C(this,e?"select":"unselect")},e.prototype.shouldShowTooltip=function(e,t,n){return void 0===n&&(n={}),n.series=this,n.visiblePlotOnly=!0,this.chart.isInsidePlot(e,t,n)},e.defaultOptions=s,e}(),A(e.prototype,{axisTypes:["xAxis","yAxis"],coll:"series",colorCounter:0,cropShoulder:1,directTouch:!1,drawLegendSymbol:i.drawLineMarker,isCartesian:!0,kdAxisArray:["clientX","plotY"],parallelArrays:["x","y"],pointClass:o,requireSorting:!0,sorted:!0}),a.series=e,e})),t(n,"Extensions/ScrollablePlotArea.js",[n["Core/Animation/AnimationUtilities.js"],n["Core/Axis/Axis.js"],n["Core/Chart/Chart.js"],n["Core/Series/Series.js"],n["Core/Renderer/RendererRegistry.js"],n["Core/Utilities.js"]],(function(e,t,n,r,i,o){var s=e.stop,a=o.addEvent,l=o.createElement,c=o.merge,u=o.pick;a(n,"afterSetChartSize",(function(e){var n=this.options.chart.scrollablePlotArea,r=n&&n.minWidth;if(n=n&&n.minHeight,!this.renderer.forExport){if(r){if(this.scrollablePixelsX=r=Math.max(0,r-this.chartWidth)){this.scrollablePlotBox=this.renderer.scrollablePlotBox=c(this.plotBox),this.plotBox.width=this.plotWidth+=r,this.inverted?this.clipBox.height+=r:this.clipBox.width+=r;var i={1:{name:"right",value:r}}}}else n&&(this.scrollablePixelsY=r=Math.max(0,n-this.chartHeight))&&(this.scrollablePlotBox=this.renderer.scrollablePlotBox=c(this.plotBox),this.plotBox.height=this.plotHeight+=r,this.inverted?this.clipBox.width+=r:this.clipBox.height+=r,i={2:{name:"bottom",value:r}});i&&!e.skipAxes&&this.axes.forEach((function(e){i[e.side]?e.getPlotLinePath=function(){var n=i[e.side].name,r=this[n];this[n]=r-i[e.side].value;var o=t.prototype.getPlotLinePath.apply(this,arguments);return this[n]=r,o}:(e.setAxisSize(),e.setAxisTranslation())}))}})),a(n,"render",(function(){this.scrollablePixelsX||this.scrollablePixelsY?(this.setUpScrolling&&this.setUpScrolling(),this.applyFixed()):this.fixedDiv&&this.applyFixed()})),n.prototype.setUpScrolling=function(){var e=this,t={WebkitOverflowScrolling:"touch",overflowX:"hidden",overflowY:"hidden"};this.scrollablePixelsX&&(t.overflowX="auto"),this.scrollablePixelsY&&(t.overflowY="auto"),this.scrollingParent=l("div",{className:"highcharts-scrolling-parent"},{position:"relative"},this.renderTo),this.scrollingContainer=l("div",{className:"highcharts-scrolling"},t,this.scrollingParent),a(this.scrollingContainer,"scroll",(function(){e.pointer&&delete e.pointer.chartPosition})),this.innerContainer=l("div",{className:"highcharts-inner-container"},null,this.scrollingContainer),this.innerContainer.appendChild(this.container),this.setUpScrolling=null},n.prototype.moveFixedElements=function(){var e,t=this.container,n=this.fixedRenderer,r=".highcharts-contextbutton .highcharts-credits .highcharts-legend .highcharts-legend-checkbox .highcharts-navigator-series .highcharts-navigator-xaxis .highcharts-navigator-yaxis .highcharts-navigator .highcharts-reset-zoom .highcharts-drillup-button .highcharts-scrollbar .highcharts-subtitle .highcharts-title".split(" ");this.scrollablePixelsX&&!this.inverted?e=".highcharts-yaxis":this.scrollablePixelsX&&this.inverted||this.scrollablePixelsY&&!this.inverted?e=".highcharts-xaxis":this.scrollablePixelsY&&this.inverted&&(e=".highcharts-yaxis"),e&&r.push(e+":not(.highcharts-radial-axis)",e+"-labels:not(.highcharts-radial-axis-labels)"),r.forEach((function(e){[].forEach.call(t.querySelectorAll(e),(function(e){(e.namespaceURI===n.SVG_NS?n.box:n.box.parentNode).appendChild(e),e.style.pointerEvents="auto"}))}))},n.prototype.applyFixed=function(){var e=!this.fixedDiv,t=this.options.chart,n=t.scrollablePlotArea,r=i.getRendererType();e?(this.fixedDiv=l("div",{className:"highcharts-fixed"},{position:"absolute",overflow:"hidden",pointerEvents:"none",zIndex:(t.style&&t.style.zIndex||0)+2,top:0},null,!0),this.scrollingContainer&&this.scrollingContainer.parentNode.insertBefore(this.fixedDiv,this.scrollingContainer),this.renderTo.style.overflow="visible",this.fixedRenderer=t=new r(this.fixedDiv,this.chartWidth,this.chartHeight,this.options.chart.style),this.scrollableMask=t.path().attr({fill:this.options.chart.backgroundColor||"#fff","fill-opacity":u(n.opacity,.85),zIndex:-1}).addClass("highcharts-scrollable-mask").add(),a(this,"afterShowResetZoom",this.moveFixedElements),a(this,"afterDrilldown",this.moveFixedElements),a(this,"afterLayOutTitles",this.moveFixedElements)):this.fixedRenderer.setSize(this.chartWidth,this.chartHeight),(this.scrollableDirty||e)&&(this.scrollableDirty=!1,this.moveFixedElements()),t=this.chartWidth+(this.scrollablePixelsX||0),r=this.chartHeight+(this.scrollablePixelsY||0),s(this.container),this.container.style.width=t+"px",this.container.style.height=r+"px",this.renderer.boxWrapper.attr({width:t,height:r,viewBox:[0,0,t,r].join(" ")}),this.chartBackground.attr({width:t,height:r}),this.scrollingContainer.style.height=this.chartHeight+"px",e&&(n.scrollPositionX&&(this.scrollingContainer.scrollLeft=this.scrollablePixelsX*n.scrollPositionX),n.scrollPositionY&&(this.scrollingContainer.scrollTop=this.scrollablePixelsY*n.scrollPositionY)),r=this.axisOffset,e=this.plotTop-r[0]-1,n=this.plotLeft-r[3]-1,t=this.plotTop+this.plotHeight+r[2]+1,r=this.plotLeft+this.plotWidth+r[1]+1;var o=this.plotLeft+this.plotWidth-(this.scrollablePixelsX||0),c=this.plotTop+this.plotHeight-(this.scrollablePixelsY||0);e=this.scrollablePixelsX?[["M",0,e],["L",this.plotLeft-1,e],["L",this.plotLeft-1,t],["L",0,t],["Z"],["M",o,e],["L",this.chartWidth,e],["L",this.chartWidth,t],["L",o,t],["Z"]]:this.scrollablePixelsY?[["M",n,0],["L",n,this.plotTop-1],["L",r,this.plotTop-1],["L",r,0],["Z"],["M",n,c],["L",n,this.chartHeight],["L",r,this.chartHeight],["L",r,c],["Z"]]:[["M",0,0]],"adjustHeight"!==this.redrawTrigger&&this.scrollableMask.attr({d:e})},a(t,"afterInit",(function(){this.chart.scrollableDirty=!0})),a(r,"show",(function(){this.chart.scrollableDirty=!0}))})),t(n,"Core/Axis/StackingAxis.js",[n["Core/Animation/AnimationUtilities.js"],n["Core/Axis/Axis.js"],n["Core/Utilities.js"]],(function(e,t,n){var r,i=e.getDeferredAnimation,o=n.addEvent,s=n.destroyObjectProperties,a=n.fireEvent,l=n.isNumber,c=n.objectEach;return function(e){function t(){var e=this.stacking;if(e){var t=e.stacks;c(t,(function(e,n){s(e),t[n]=null})),e&&e.stackTotalGroup&&e.stackTotalGroup.destroy()}}function n(){this.stacking||(this.stacking=new u(this))}var r=[];e.compose=function(e){return-1===r.indexOf(e)&&(r.push(e),o(e,"init",n),o(e,"destroy",t)),e};var u=function(){function e(e){this.oldStacks={},this.stacks={},this.stacksTouched=0,this.axis=e}return e.prototype.buildStacks=function(){var e,t=this.axis,n=t.series,r=t.options.reversedStacks,i=n.length;if(!t.isXAxis){for(this.usePercentage=!1,e=i;e--;){var o=n[r?e:i-e-1];o.setStackedPoints(),o.setGroupedPoints()}for(e=0;eo&&t.shadow)),a&&(a.startX=n.xMap,a.isArea=n.isArea)}))},n.prototype.getGraphPath=function(e,t,n){var r,o=this,s=o.options,a=[],l=[],c=s.step,u=(e=e||o.points).reversed;return u&&e.reverse(),(c={right:1,center:2}[c]||c&&3)&&u&&(c=4-c),(e=this.getValidPoints(e,!1,!(s.connectNulls&&!t&&!n))).forEach((function(u,d){var h=u.plotX,p=u.plotY,f=e[d-1];(u.leftCliff||f&&f.rightCliff)&&!n&&(r=!0),u.isNull&&!i(t)&&0e&&u>i?d=2*i-(u=Math.max(e,i)):un&&d>i?u=2*i-(d=Math.max(n,i)):d=Math.abs(t)&&.5e.closestPointRange*e.xAxis.transA;r=e.borderWidth=y(n.borderWidth,r?0:1);var o=e.xAxis,s=e.yAxis,a=n.threshold,l=e.translatedThreshold=s.getThreshold(a),c=y(n.minPointLength,5),u=e.getColumnMetrics(),h=u.width,f=e.pointXOffset=u.offset,m=e.dataMin,g=e.dataMax,v=e.barW=Math.max(h,1+2*r);t.inverted&&(l-=.5),n.pointPadding&&(v=Math.ceil(v)),i.prototype.translate.apply(e),e.points.forEach((function(r){var i=y(r.yBottom,l),S=999+Math.abs(i),_=r.plotX||0;S=d(r.plotY,-S,s.len+S);var x=Math.min(S,i),w=Math.max(S,i)-x,k=h,O=_+f,E=v;c&&Math.abs(w)c?i-c:l-(_?c:0)),p(r.options.pointWidth)&&(k=E=Math.ceil(r.options.pointWidth),O-=Math.round((k-h)/2)),n.centerInCategory&&(O=e.adjustForMissingColumns(O,k,r,u)),r.barX=O,r.pointWidth=k,r.tooltipPos=t.inverted?[d(s.len+s.pos-t.plotLeft-S,s.pos-t.plotLeft,s.len+s.pos-t.plotLeft),o.len+o.pos-t.plotTop-O-E/2,w]:[o.left-t.plotLeft+O+E/2,d(S+s.pos-t.plotTop,s.pos-t.plotTop,s.len+s.pos-t.plotTop),w],r.shapeType=e.pointClass.prototype.shapeType||"rect",r.shapeArgs=e.crispCol.apply(e,r.isNull?[O,l,E,0]:[O,x,E,w])}))},t.prototype.drawGraph=function(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")},t.prototype.pointAttribs=function(e,t){var n=this.options,r=this.pointAttrToOptions||{},i=r.stroke||"borderColor",o=r["stroke-width"]||"borderWidth",s=e&&e.color||this.color,a=e&&e[i]||n[i]||s;r=e&&e.options.dashStyle||n.dashStyle;var l=e&&e[o]||n[o]||this[o]||0,u=y(e&&e.opacity,n.opacity,1);if(e&&this.zones.length){var d=e.getZone();s=e.options.color||d&&(d.color||e.nonZonedColor)||this.color,d&&(a=d.borderColor||a,r=d.dashStyle||r,l=d.borderWidth||l)}return t&&e&&(t=(e=v(n.states[t],e.options.states&&e.options.states[t]||{})).brightness,s=e.color||void 0!==t&&c(s).brighten(e.brightness).get()||s,a=e[i]||a,l=e[o]||l,r=e.dashStyle||r,u=y(e.opacity,u)),i={fill:s,stroke:a,"stroke-width":l,opacity:u},r&&(i.dashstyle=r),i},t.prototype.drawPoints=function(){var e,t=this,n=this.chart,r=t.options,i=n.renderer,o=r.animationLimit||250;t.points.forEach((function(s){var a=s.graphic,l=!!a,c=a&&n.pointCountb,"left"===m?u.y-=b?p.height:0:"center"===m?(u.x-=p.width/2,u.y-=p.height/2):"right"===m&&(u.x-=p.width,u.y-=b?0:p.height),t.placed=!0,t.alignAttr=u):(b(r),t.align(n,void 0,r),u=t.alignAttr),v&&0<=r.height?this.justifyDataLabel(t,n,u,p,r,i):h(n.crop,!0)&&(y=s.isInsidePlot(u.x,u.y,{paneCoordinates:!0,series:o})&&s.isInsidePlot(u.x+p.width,u.y+p.height,{paneCoordinates:!0,series:o})),n.shape&&!f&&t[i?"attr":"animate"]({anchorX:l?s.plotWidth-e.plotY:e.plotX,anchorY:l?s.plotHeight-e.plotX:e.plotY})}i&&c&&(t.placed=!1),y||c&&!v||(t.hide(!0),t.placed=!1)}function n(){var e=this,t=e.chart,n=e.options,r=e.points,a=e.hasRendered||0,u=t.renderer,m=n.dataLabels,g=m.animation;if(g=m.defer?i(t,g,e):{defer:0,duration:0},m=f(f(t.options.plotOptions&&t.options.plotOptions.series&&t.options.plotOptions.series.dataLabels,t.options.plotOptions&&t.options.plotOptions[e.type]&&t.options.plotOptions[e.type].dataLabels),m),l(this,"drawDataLabels"),c(m)||m.enabled||e._hasPointLabels){var b=e.plotGroup("dataLabelsGroup","data-labels",a?"inherit":"hidden",m.zIndex||6);b.attr({opacity:+a}),!a&&(a=e.dataLabelsGroup)&&(e.visible&&b.show(!0),a[n.animation?"animate":"attr"]({opacity:1},g)),r.forEach((function(r){p(f(m,r.dlOptions||r.options&&r.options.dataLabels)).forEach((function(i,a){var l=i.enabled&&(!r.isNull||r.dataLabelOnNull)&&function(e,t){var n=t.filter;return!n||(t=n.operator,e=e[n.property],n=n.value,">"===t&&e>n||"<"===t&&e="===t&&e>=n||"<="===t&&e<=n||"=="===t&&e==n||"==="===t&&e===n)}(r,i),c=r.connectors?r.connectors[a]:r.connector,p=r.dataLabels?r.dataLabels[a]:r.dataLabel,f=h(i.distance,r.labelDistance),m=!p;if(l){var g=r.getLabelConfig(),v=h(i[r.formatPrefix+"Format"],i.format);g=s(v)?o(v,g,t):(i[r.formatPrefix+"Formatter"]||i.formatter).call(g,i),v=i.style;var y=i.rotation;t.styledMode||(v.color=h(i.color,v.color,e.color,"#000000"),"contrast"===v.color?(r.contrastColor=u.getContrast(r.color||e.color),v.color=!s(f)&&i.inside||0>f||n.stacking?r.contrastColor:"#000000"):delete r.contrastColor,n.cursor&&(v.cursor=n.cursor));var S={r:i.borderRadius||0,rotation:y,padding:i.padding,zIndex:1};t.styledMode||(S.fill=i.backgroundColor,S.stroke=i.borderColor,S["stroke-width"]=i.borderWidth),d(S,(function(e,t){void 0===e&&delete S[t]}))}!p||l&&s(g)&&!!p.div==!!i.useHTML||(r.dataLabel=p=r.dataLabel&&r.dataLabel.destroy(),r.dataLabels&&(1===r.dataLabels.length?delete r.dataLabels:delete r.dataLabels[a]),a||delete r.dataLabel,c&&(r.connector=r.connector.destroy(),r.connectors&&(1===r.connectors.length?delete r.connectors:delete r.connectors[a]))),l&&s(g)&&(p?S.text=g:(r.dataLabels=r.dataLabels||[],p=r.dataLabels[a]=y?u.text(g,0,-9999,i.useHTML).addClass("highcharts-data-label"):u.label(g,0,-9999,i.shape,null,null,i.useHTML,null,"data-label"),a||(r.dataLabel=p),p.addClass(" highcharts-data-label-color-"+r.colorIndex+" "+(i.className||"")+(i.useHTML?" highcharts-tracker":""))),p.options=i,p.attr(S),t.styledMode||p.css(v).shadow(i.shadow),p.added||p.add(b),i.textPath&&!i.useHTML&&(p.setTextPath(r.getDataLabelPath&&r.getDataLabelPath(p)||r.graphic,i.textPath),r.dataLabelPath&&!i.textPath.enabled&&(r.dataLabelPath=r.dataLabelPath.destroy())),e.alignDataLabel(r,p,i,null,m))}))}))}l(this,"afterDrawDataLabels")}function r(e,t,n,r,i,o){var s=this.chart,a=t.align,l=t.verticalAlign,c=e.box?0:e.padding||0,u=t.x;u=void 0===u?0:u;var d=t.y;d=void 0===d?0:d;var h=(n.x||0)+c;if(0>h){"right"===a&&0<=u?(t.align="left",t.inside=!0):u-=h;var p=!0}return(h=(n.x||0)+r.width-c)>s.plotWidth&&("left"===a&&0>=u?(t.align="right",t.inside=!0):u+=s.plotWidth-h,p=!0),0>(h=n.y+c)&&("bottom"===l&&0<=d?(t.verticalAlign="top",t.inside=!0):d-=h,p=!0),(h=(n.y||0)+r.height-c)>s.plotHeight&&("top"===l&&0>=d?(t.verticalAlign="bottom",t.inside=!0):d+=s.plotHeight-h,p=!0),p&&(t.x=u,t.y=d,e.placed=!o,e.align(t,void 0,i)),p}function f(e,t){var n,r=[];if(c(e)&&!c(t))r=e.map((function(e){return u(e,t)}));else if(c(t)&&!c(e))r=t.map((function(t){return u(e,t)}));else if(c(e)||c(t))for(n=Math.max(e.length,t.length);n--;)r[n]=u(e[n],t[n]);else r=u(e,t);return r}function m(e,t,n,r,i){var o=this.chart,s=o.inverted,a=this.xAxis,l=a.reversed,c=s?t.height/2:t.width/2;e=(e=e.pointWidth)?e/2:0,t.startXPos=s?i.x:l?-c-e:a.width-c+e,t.startYPos=s?l?this.yAxis.height-c+e:-c-e:i.y,r?"hidden"===t.visibility&&(t.show(),t.attr({opacity:0}).animate({opacity:1})):t.attr({opacity:1}).animate({opacity:0},void 0,t.hide),o.hasRendered&&(n&&t.attr({x:t.startXPos,y:t.startYPos}),t.placed=!0)}var g=[];e.compose=function(e){if(-1===g.indexOf(e)){var i=e.prototype;g.push(e),i.alignDataLabel=t,i.drawDataLabels=n,i.justifyDataLabel=r,i.setDataLabelStartPos=m}}}(r||(r={})),r})),t(n,"Series/Column/ColumnDataLabel.js",[n["Core/Series/DataLabel.js"],n["Core/Series/SeriesRegistry.js"],n["Core/Utilities.js"]],(function(e,t,n){var r,i=t.series,o=n.merge,s=n.pick;return function(t){function n(e,t,n,r,a){var l=this.chart.inverted,c=e.series,u=(c.xAxis?c.xAxis.len:this.chart.plotSizeX)||0;c=(c.yAxis?c.yAxis.len:this.chart.plotSizeY)||0;var d=e.dlBox||e.shapeArgs,h=s(e.below,e.plotY>s(this.translatedThreshold,c)),p=s(n.inside,!!this.options.stacking);d&&(0>(r=o(d)).y&&(r.height+=r.y,r.y=0),0<(d=r.y+r.height-c)&&d {series.name}
',pointFormat:"x: {point.x}
y: {point.y}
"}}),n}(t)).prototype,{drawTracker:e.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"],takeOrdinalPosition:!1}),o(r,"afterTranslate",(function(){this.applyJitter()})),n.registerSeriesType("scatter",r),r})),t(n,"Series/CenteredUtilities.js",[n["Core/Globals.js"],n["Core/Series/Series.js"],n["Core/Utilities.js"]],(function(e,t,n){var r,i=e.deg2rad,o=n.isNumber,s=n.pick,a=n.relativeLength;return function(e){e.getCenter=function(){var e=this.options,n=this.chart,r=2*(e.slicedOffset||0),i=n.plotWidth-2*r,o=n.plotHeight-2*r,l=e.center,c=Math.min(i,o),u=e.size,d=e.innerSize||0;for("string"==typeof u&&(u=parseFloat(u)),"string"==typeof d&&(d=parseFloat(d)),e=[s(l[0],"50%"),s(l[1],"50%"),s(u&&0>u?void 0:e.size,"100%"),s(d&&0>d?void 0:e.innerSize||0,"0%")],!n.angular||this instanceof t||(e[3]=0),l=0;4>l;++l)u=e[l],n=2>l||2===l&&/%$/.test(u),e[l]=a(u,[i,o,c,e[2]][l])+(n?r:0);return e[3]>e[2]&&(e[3]=e[2]),e},e.getStartAndEndRadians=function(e,t){return e=o(e)?e:0,t=o(t)&&t>e&&360>t-e?t:e+360,{start:i*(e+-90),end:i*(t+-90)}}}(r||(r={})),r})),t(n,"Series/Pie/PiePoint.js",[n["Core/Animation/AnimationUtilities.js"],n["Core/Series/Point.js"],n["Core/Utilities.js"]],(function(e,t,n){var r=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),i=e.setAnimation,o=n.addEvent,s=n.defined;e=n.extend;var a=n.isNumber,l=n.pick,c=n.relativeLength;return t=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.labelDistance=void 0,t.options=void 0,t.series=void 0,t}return r(t,e),t.prototype.getConnectorPath=function(){var e=this.labelPosition,t=this.series.options.dataLabels,n=this.connectorShapes,r=t.connectorShape;return n[r]&&(r=n[r]),r.call(this,{x:e.final.x,y:e.final.y,alignment:e.alignment},e.connectorPosition,t)},t.prototype.getTranslate=function(){return this.sliced?this.slicedTranslation:{translateX:0,translateY:0}},t.prototype.haloPath=function(e){var t=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(t.x,t.y,t.r+e,t.r+e,{innerR:t.r-1,start:t.start,end:t.end})},t.prototype.init=function(){var t=this;e.prototype.init.apply(this,arguments),this.name=l(this.name,"Slice");var n=function(e){t.slice("select"===e.type)};return o(this,"select",n),o(this,"unselect",n),this},t.prototype.isValid=function(){return a(this.y)&&0<=this.y},t.prototype.setVisible=function(e,t){var n=this,r=this.series,i=r.chart,o=r.options.ignoreHiddenPoint;t=l(t,o),e!==this.visible&&(this.visible=this.options.visible=e=void 0===e?!this.visible:e,r.options.data[r.data.indexOf(this)]=this.options,["graphic","dataLabel","connector","shadowGroup"].forEach((function(t){n[t]&&n[t][e?"show":"hide"](e)})),this.legendItem&&i.legend.colorizeItem(this,e),e||"hover"!==this.state||this.setState(""),o&&(r.isDirty=!0),t&&i.redraw())},t.prototype.slice=function(e,t,n){var r=this.series;i(n,r.chart),l(t,!0),this.sliced=this.options.sliced=s(e)?e:!this.sliced,r.options.data[r.data.indexOf(this)]=this.options,this.graphic&&this.graphic.animate(this.getTranslate()),this.shadowGroup&&this.shadowGroup.animate(this.getTranslate())},t}(t),e(t.prototype,{connectorShapes:{fixedOffset:function(e,t,n){var r=t.breakAt;return t=t.touchingSliceAt,[["M",e.x,e.y],n.softConnector?["C",e.x+("left"===e.alignment?-5:5),e.y,2*r.x-t.x,2*r.y-t.y,r.x,r.y]:["L",r.x,r.y],["L",t.x,t.y]]},straight:function(e,t){return t=t.touchingSliceAt,[["M",e.x,e.y],["L",t.x,t.y]]},crookedLine:function(e,t,n){t=t.touchingSliceAt;var r=this.series,i=r.center[0],o=r.chart.plotWidth,s=r.chart.plotLeft;r=e.alignment;var a=this.shapeArgs.r;return n=c(n.crookDistance,1),n=["L",o="left"===r?i+a+(o+s-i-a)*(1-n):s+(i-a)*n,e.y],i=!0,("left"===r?o>e.x||ot.x)&&(i=!1),e=[["M",e.x,e.y]],i&&e.push(n),e.push(["L",t.x,t.y]),e}}}),t})),t(n,"Series/Pie/PieSeries.js",[n["Series/CenteredUtilities.js"],n["Series/Column/ColumnSeries.js"],n["Core/Globals.js"],n["Core/Legend/LegendSymbol.js"],n["Series/Pie/PiePoint.js"],n["Core/Series/Series.js"],n["Core/Series/SeriesRegistry.js"],n["Core/Renderer/SVG/Symbols.js"],n["Core/Utilities.js"]],(function(e,t,n,r,i,o,s,a,l){var c=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),u=e.getStartAndEndRadians;n=n.noop;var d=l.clamp,h=l.extend,p=l.fireEvent,f=l.merge,m=l.pick,g=l.relativeLength;return l=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.center=void 0,t.data=void 0,t.maxLabelDistance=void 0,t.options=void 0,t.points=void 0,t}return c(t,e),t.prototype.animate=function(e){var t=this,n=t.points,r=t.startAngleRad;e||n.forEach((function(e){var n=e.graphic,i=e.shapeArgs;n&&i&&(n.attr({r:m(e.startR,t.center&&t.center[3]/2),start:r,end:r}),n.animate({r:i.r,start:i.start,end:i.end},t.options.animation))}))},t.prototype.drawEmpty=function(){var e=this.startAngleRad,t=this.endAngleRad,n=this.options;if(0===this.total&&this.center){var r=this.center[0],i=this.center[1];this.graph||(this.graph=this.chart.renderer.arc(r,i,this.center[1]/2,0,e,t).addClass("highcharts-empty-series").add(this.group)),this.graph.attr({d:a.arc(r,i,this.center[2]/2,0,{start:e,end:t,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({"stroke-width":n.borderWidth,fill:n.fillColor||"none",stroke:n.color||"#cccccc"})}else this.graph&&(this.graph=this.graph.destroy())},t.prototype.drawPoints=function(){var e=this.chart.renderer;this.points.forEach((function(t){t.graphic&&t.hasNewShapeType()&&(t.graphic=t.graphic.destroy()),t.graphic||(t.graphic=e[t.shapeType](t.shapeArgs).add(t.series.group),t.delayedRendering=!0)}))},t.prototype.generatePoints=function(){e.prototype.generatePoints.call(this),this.updateTotals()},t.prototype.getX=function(e,t,n){var r=this.center,i=this.radii?this.radii[n.index]||0:r[2]/2;return e=Math.asin(d((e-r[1])/(i+n.labelDistance),-1,1)),r[0]+(t?-1:1)*Math.cos(e)*(i+n.labelDistance)+(01.5*Math.PI?b-=2*Math.PI:b<-Math.PI/2&&(b+=2*Math.PI),h.slicedTranslation={translateX:Math.round(Math.cos(b)*n),translateY:Math.round(Math.sin(b)*n)},v=Math.cos(b)*e[2]/2;var y=Math.sin(b)*e[2]/2;h.tooltipPos=[e[0]+.7*v,e[1]+.7*y],h.half=b<-Math.PI/2||b>Math.PI/2?1:0,h.angle=b,f=Math.min(r,h.labelDistance/5),h.labelPosition={natural:{x:e[0]+v+Math.cos(b)*h.labelDistance,y:e[1]+y+Math.sin(b)*h.labelDistance},final:{},alignment:0>h.labelDistance?"center":h.half?"right":"left",connectorPosition:{breakAt:{x:e[0]+v+Math.cos(b)*f,y:e[1]+y+Math.sin(b)*f},touchingSliceAt:{x:e[0]+v,y:e[1]+y}}}}p(this,"afterTranslate")},t.prototype.updateTotals=function(){var e,t=this.points,n=t.length,r=this.options.ignoreHiddenPoint,i=0;for(e=0;eE&&(e.dataLabel.css({width:Math.round(.7*E)+"px"}),e.dataLabel.shortened=!0)):(e.dataLabel=e.dataLabel.destroy(),e.dataLabels&&1===e.dataLabels.length&&delete e.dataLabels))})),M.forEach((function(t,n){var l,c=t.length,h=[];if(c){if(v.sortByAngle(t,n-.5),0w-x&&0===n&&(y=Math.round(u+i-w+x),$[1]=Math.max(y,$[1])),0>f-s/2?$[0]=Math.max(Math.round(s/2-f),$[0]):f+s/2>k&&($[2]=Math.max(Math.round(f+s/2-k),$[2])),r.sideOverflow=y)}}})),0===c($)||this.verifyDataLabelOverflow($))&&(this.placeDataLabels(),this.points.forEach((function(e){var i;(b=h(_,e.options.dataLabels),t=p(b.connectorWidth,1))&&(n=e.connector,(r=e.dataLabel)&&r._pos&&e.visible&&0t.bottom-2?r:n,t.half,t)},justify:function(e,t,n){return n[0]+(e.half?-1:1)*(t+e.labelDistance)},alignToPlotEdges:function(e,t,n,r){return e=e.getBBox().width,t?e+r:n-e-r},alignToConnectors:function(e,t,n,r){var i,o=0;return e.forEach((function(e){(i=e.dataLabel.getBBox().width)>o&&(o=i)})),t?o+r:n-o-r}};t.compose=function(t){e.compose(l),-1===o.indexOf(t)&&(o.push(t),(t=t.prototype).dataLabelPositioners=m,t.alignDataLabel=s,t.drawDataLabels=n,t.placeDataLabels=r,t.verifyDataLabelOverflow=i)}}(o||(o={})),o})),t(n,"Extensions/OverlappingDataLabels.js",[n["Core/Chart/Chart.js"],n["Core/Utilities.js"]],(function(e,t){function n(e,t){var n=!1;if(e){var r=e.newOpacity;e.oldOpacity!==r&&(e.alignAttr&&e.placed?(e[r?"removeClass":"addClass"]("highcharts-data-label-hidden"),n=!0,e.alignAttr.opacity=r,e[e.isOld?"animate":"attr"](e.alignAttr,null,(function(){t.styledMode||e.css({pointerEvents:r?"auto":"none"})})),i(t,"afterHideOverlappingLabel")):e.attr({opacity:r})),e.isOld=!0}return n}var r=t.addEvent,i=t.fireEvent,o=t.isArray,s=t.isNumber,a=t.objectEach,l=t.pick;r(e,"render",(function(){var e=this,t=[];(this.labelCollectors||[]).forEach((function(e){t=t.concat(e())})),(this.yAxis||[]).forEach((function(e){e.stacking&&e.options.stackLabels&&!e.options.stackLabels.allowOverlap&&a(e.stacking.stacks,(function(e){a(e,(function(e){e.label&&"hidden"!==e.label.visibility&&t.push(e.label)}))}))})),(this.series||[]).forEach((function(r){var i=r.options.dataLabels;r.visible&&(!1!==i.enabled||r._hasPointLabels)&&((i=function(r){return r.forEach((function(r){r.visible&&(o(r.dataLabels)?r.dataLabels:r.dataLabel?[r.dataLabel]:[]).forEach((function(i){var o=i.options;i.labelrank=l(o.labelrank,r.labelrank,r.shapeArgs&&r.shapeArgs.height),o.allowOverlap?(i.oldOpacity=i.opacity,i.newOpacity=1,n(i,e)):t.push(i)}))}))})(r.nodes||[]),i(r.points))})),this.hideOverlappingLabels(t)})),e.prototype.hideOverlappingLabels=function(e){var t,r,o,a=this,l=e.length,c=a.renderer,u=!1,d=function(e){var t,n,r=e.box?0:e.padding||0,i=t=0;if(e&&(!e.alignAttr||e.placed)){var o=e.alignAttr||{x:e.attr("x"),y:e.attr("y")},a=e.parentGroup;e.width||(t=e.getBBox(),e.width=t.width,e.height=t.height,t=c.fontMetrics(null,e.element).h);var l=e.width-2*r;return(n={left:"0",center:"0.5",right:"1"}[e.alignValue])?i=+n*l:s(e.x)&&Math.round(e.x)!==e.translateX&&(i=e.x-e.translateX),{x:o.x+(a.translateX||0)+r-(i||0),y:o.y+(a.translateY||0)+r-t,width:e.width-2*r,height:e.height-2*r}}};for(r=0;r=h.x+h.width||p.x+p.width<=h.x||p.y>=h.y+h.height||p.y+p.height<=h.y||((d.labelrank=l(n.minWidth,0)&&this.chartHeight>=l(n.minHeight,0)}).call(this)&&t.push(e._id)},e.prototype.setResponsive=function(e,t){var n=this,i=this.options.responsive,o=this.currentResponsive,a=[];!t&&i&&i.rules&&i.rules.forEach((function(e){void 0===e._id&&(e._id=u()),n.matchResponsiveRule(e,a)}),this),(t=s.apply(void 0,a.map((function(e){return r((i||{}).rules||[],(function(t){return t._id===e}))})).map((function(e){return e&&e.chartOptions})))).isResponsiveOptions=!0,(a=a.toString()||void 0)!==(o&&o.ruleIds)&&(o&&this.update(o.undoOptions,e,!0),a?((o=this.currentOptions(t)).isResponsiveOptions=!0,this.currentResponsive={ruleIds:a,mergedOptions:t,undoOptions:o},this.update(t,e,!0)):this.currentResponsive=void 0)},e}()}(t||(t={})),t})),t(n,"masters/highcharts.src.js",[n["Core/Globals.js"],n["Core/Utilities.js"],n["Core/DefaultOptions.js"],n["Core/Animation/Fx.js"],n["Core/Animation/AnimationUtilities.js"],n["Core/Renderer/HTML/AST.js"],n["Core/FormatUtilities.js"],n["Core/Renderer/RendererUtilities.js"],n["Core/Renderer/SVG/SVGElement.js"],n["Core/Renderer/SVG/SVGRenderer.js"],n["Core/Renderer/HTML/HTMLElement.js"],n["Core/Renderer/HTML/HTMLRenderer.js"],n["Core/Axis/Axis.js"],n["Core/Axis/DateTimeAxis.js"],n["Core/Axis/LogarithmicAxis.js"],n["Core/Axis/PlotLineOrBand/PlotLineOrBand.js"],n["Core/Axis/Tick.js"],n["Core/Tooltip.js"],n["Core/Series/Point.js"],n["Core/Pointer.js"],n["Core/MSPointer.js"],n["Core/Legend/Legend.js"],n["Core/Chart/Chart.js"],n["Core/Series/Series.js"],n["Core/Series/SeriesRegistry.js"],n["Series/Column/ColumnSeries.js"],n["Series/Column/ColumnDataLabel.js"],n["Series/Pie/PieSeries.js"],n["Series/Pie/PieDataLabel.js"],n["Core/Series/DataLabel.js"],n["Core/Responsive.js"],n["Core/Color/Color.js"],n["Core/Time.js"]],(function(e,t,n,r,i,o,s,a,l,c,u,d,h,p,f,m,g,b,v,y,S,_,x,w,k,O,E,A,T,C,M,$,P){return e.animate=i.animate,e.animObject=i.animObject,e.getDeferredAnimation=i.getDeferredAnimation,e.setAnimation=i.setAnimation,e.stop=i.stop,e.timers=r.timers,e.AST=o,e.Axis=h,e.Chart=x,e.chart=x.chart,e.Fx=r,e.Legend=_,e.PlotLineOrBand=m,e.Point=v,e.Pointer=S.isRequired()?S:y,e.Series=w,e.SVGElement=l,e.SVGRenderer=c,e.Tick=g,e.Time=P,e.Tooltip=b,e.Color=$,e.color=$.parse,d.compose(c),u.compose(l),e.defaultOptions=n.defaultOptions,e.getOptions=n.getOptions,e.time=n.defaultTime,e.setOptions=n.setOptions,e.dateFormat=s.dateFormat,e.format=s.format,e.numberFormat=s.numberFormat,e.addEvent=t.addEvent,e.arrayMax=t.arrayMax,e.arrayMin=t.arrayMin,e.attr=t.attr,e.clearTimeout=t.clearTimeout,e.correctFloat=t.correctFloat,e.createElement=t.createElement,e.css=t.css,e.defined=t.defined,e.destroyObjectProperties=t.destroyObjectProperties,e.discardElement=t.discardElement,e.distribute=a.distribute,e.erase=t.erase,e.error=t.error,e.extend=t.extend,e.extendClass=t.extendClass,e.find=t.find,e.fireEvent=t.fireEvent,e.getMagnitude=t.getMagnitude,e.getStyle=t.getStyle,e.inArray=t.inArray,e.isArray=t.isArray,e.isClass=t.isClass,e.isDOMElement=t.isDOMElement,e.isFunction=t.isFunction,e.isNumber=t.isNumber,e.isObject=t.isObject,e.isString=t.isString,e.keys=t.keys,e.merge=t.merge,e.normalizeTickInterval=t.normalizeTickInterval,e.objectEach=t.objectEach,e.offset=t.offset,e.pad=t.pad,e.pick=t.pick,e.pInt=t.pInt,e.relativeLength=t.relativeLength,e.removeEvent=t.removeEvent,e.seriesType=k.seriesType,e.splat=t.splat,e.stableSort=t.stableSort,e.syncTimeout=t.syncTimeout,e.timeUnits=t.timeUnits,e.uniqueKey=t.uniqueKey,e.useSerialIds=t.useSerialIds,e.wrap=t.wrap,E.compose(O),C.compose(w),p.compose(h),f.compose(h),T.compose(A),m.compose(h),M.compose(x),e})),n["masters/highcharts.src.js"]._modules=n,n["masters/highcharts.src.js"]}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,i,o=function(){function e(e,t){for(var n=0;n=t.status}function i(e){try{e.dispatchEvent(new MouseEvent("click"))}catch(n){var t=document.createEvent("MouseEvents");t.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),e.dispatchEvent(t)}}var o="object"==typeof window&&window.window===window?window:"object"==typeof self&&self.self===self?self:"object"==typeof n&&n.global===n?n:void 0,s=o.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),a=o.saveAs||("object"!=typeof window||window!==o?function(){}:"download"in HTMLAnchorElement.prototype&&!s?function(e,n,s){var a=o.URL||o.webkitURL,l=document.createElement("a");n=n||e.name||"download",l.download=n,l.rel="noopener","string"==typeof e?(l.href=e,l.origin===location.origin?i(l):r(l.href)?t(e,n,s):i(l,l.target="_blank")):(l.href=a.createObjectURL(e),setTimeout((function(){a.revokeObjectURL(l.href)}),4e4),setTimeout((function(){i(l)}),0))}:"msSaveOrOpenBlob"in navigator?function(e,n,o){if(n=n||e.name||"download","string"!=typeof e)navigator.msSaveOrOpenBlob(function(e,t){return void 0===t?t={autoBom:!1}:"object"!=typeof t&&(console.warn("Deprecated: Expected third argument to be a object"),t={autoBom:!t}),t.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob(["\ufeff",e],{type:e.type}):e}(e,o),n);else if(r(e))t(e,n,o);else{var s=document.createElement("a");s.href=e,s.target="_blank",setTimeout((function(){i(s)}))}}:function(e,n,r,i){if((i=i||open("","_blank"))&&(i.document.title=i.document.body.innerText="downloading..."),"string"==typeof e)return t(e,n,r);var a="application/octet-stream"===e.type,l=/constructor/i.test(o.HTMLElement)||o.safari,c=/CriOS\/[\d]+/.test(navigator.userAgent);if((c||a&&l||s)&&"undefined"!=typeof FileReader){var u=new FileReader;u.onloadend=function(){var e=u.result;e=c?e:e.replace(/^data:[^;]*;/,"data:attachment/file;"),i?i.location.href=e:location=e,i=null},u.readAsDataURL(e)}else{var d=o.URL||o.webkitURL,h=d.createObjectURL(e);i?i.location=h:location.href=h,i=null,setTimeout((function(){d.revokeObjectURL(h)}),4e4)}});o.saveAs=a.saveAs=a,e.exports=a})?r.apply(t,i):r)||(e.exports=o)}).call(this,n(28))},function(e,t,n){e.exports=n(374)},function(e,t,n){(function(t,n,r,i){e.exports=function e(t,n,r){function i(s,a){if(!n[s]){if(!t[s]){if(o)return o(s,!0);var l=new Error("Cannot find module '"+s+"'");throw l.code="MODULE_NOT_FOUND",l}var c=n[s]={exports:{}};t[s][0].call(c.exports,(function(e){return i(t[s][1][e]||e)}),c,c.exports,e,t,n,r)}return n[s].exports}for(var o=!1,s=0;s>2,a=(3&t)<<4|n>>4,l=1>6:64,c=2>4,n=(15&s)<<4|(a=o.indexOf(e.charAt(c++)))>>2,r=(3&a)<<6|(l=o.indexOf(e.charAt(c++))),h[u++]=t,64!==a&&(h[u++]=n),64!==l&&(h[u++]=r);return h}},{"./support":30,"./utils":32}],2:[function(e,t,n){"use strict";var r=e("./external"),i=e("./stream/DataWorker"),o=e("./stream/Crc32Probe"),s=e("./stream/DataLengthProbe");function a(e,t,n,r,i){this.compressedSize=e,this.uncompressedSize=t,this.crc32=n,this.compression=r,this.compressedContent=i}a.prototype={getContentWorker:function(){var e=new i(r.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new s("data_length")),t=this;return e.on("end",(function(){if(this.streamInfo.data_length!==t.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")})),e},getCompressedWorker:function(){return new i(r.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},a.createWorkerFrom=function(e,t,n){return e.pipe(new o).pipe(new s("uncompressedSize")).pipe(t.compressWorker(n)).pipe(new s("compressedSize")).withStreamInfo("compression",t)},t.exports=a},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(e,t,n){"use strict";var r=e("./stream/GenericWorker");n.STORE={magic:"\0\0",compressWorker:function(){return new r("STORE compression")},uncompressWorker:function(){return new r("STORE decompression")}},n.DEFLATE=e("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(e,t,n){"use strict";var r=e("./utils"),i=function(){for(var e,t=[],n=0;n<256;n++){e=n;for(var r=0;r<8;r++)e=1&e?3988292384^e>>>1:e>>>1;t[n]=e}return t}();t.exports=function(e,t){return void 0!==e&&e.length?"string"!==r.getTypeOf(e)?function(e,t,n,r){var o=i,s=0+n;e^=-1;for(var a=0;a>>8^o[255&(e^t[a])];return-1^e}(0|t,e,e.length):function(e,t,n,r){var o=i,s=0+n;e^=-1;for(var a=0;a>>8^o[255&(e^t.charCodeAt(a))];return-1^e}(0|t,e,e.length):0}},{"./utils":32}],5:[function(e,t,n){"use strict";n.base64=!1,n.binary=!1,n.dir=!1,n.createFolders=!0,n.date=null,n.compression=null,n.compressionOptions=null,n.comment=null,n.unixPermissions=null,n.dosPermissions=null},{}],6:[function(e,t,n){"use strict";var r;r="undefined"!=typeof Promise?Promise:e("lie"),t.exports={Promise:r}},{lie:37}],7:[function(e,t,n){"use strict";var r="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array,i=e("pako"),o=e("./utils"),s=e("./stream/GenericWorker"),a=r?"uint8array":"array";function l(e,t){s.call(this,"FlateWorker/"+e),this._pako=null,this._pakoAction=e,this._pakoOptions=t,this.meta={}}n.magic="\b\0",o.inherits(l,s),l.prototype.processChunk=function(e){this.meta=e.meta,null===this._pako&&this._createPako(),this._pako.push(o.transformTo(a,e.data),!1)},l.prototype.flush=function(){s.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},l.prototype.cleanUp=function(){s.prototype.cleanUp.call(this),this._pako=null},l.prototype._createPako=function(){this._pako=new i[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var e=this;this._pako.onData=function(t){e.push({data:t,meta:e.meta})}},n.compressWorker=function(e){return new l("Deflate",e)},n.uncompressWorker=function(){return new l("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(e,t,n){"use strict";function r(e,t){var n,r="";for(n=0;n>>=8;return r}function i(e,t,n,i,s,u){var d,h,p=e.file,f=e.compression,m=u!==a.utf8encode,g=o.transformTo("string",u(p.name)),b=o.transformTo("string",a.utf8encode(p.name)),v=p.comment,y=o.transformTo("string",u(v)),S=o.transformTo("string",a.utf8encode(v)),_=b.length!==p.name.length,x=S.length!==v.length,w="",k="",O="",E=p.dir,A=p.date,T={crc32:0,compressedSize:0,uncompressedSize:0};t&&!n||(T.crc32=e.crc32,T.compressedSize=e.compressedSize,T.uncompressedSize=e.uncompressedSize);var C=0;t&&(C|=8),m||!_&&!x||(C|=2048);var M=0,$=0;E&&(M|=16),"UNIX"===s?($=798,M|=function(e,t){var n=e;return e||(n=t?16893:33204),(65535&n)<<16}(p.unixPermissions,E)):($=20,M|=function(e){return 63&(e||0)}(p.dosPermissions)),d=A.getUTCHours(),d<<=6,d|=A.getUTCMinutes(),d<<=5,d|=A.getUTCSeconds()/2,h=A.getUTCFullYear()-1980,h<<=4,h|=A.getUTCMonth()+1,h<<=5,h|=A.getUTCDate(),_&&(k=r(1,1)+r(l(g),4)+b,w+="up"+r(k.length,2)+k),x&&(O=r(1,1)+r(l(y),4)+S,w+="uc"+r(O.length,2)+O);var P="";return P+="\n\0",P+=r(C,2),P+=f.magic,P+=r(d,2),P+=r(h,2),P+=r(T.crc32,4),P+=r(T.compressedSize,4),P+=r(T.uncompressedSize,4),P+=r(g.length,2),P+=r(w.length,2),{fileRecord:c.LOCAL_FILE_HEADER+P+g+w,dirRecord:c.CENTRAL_FILE_HEADER+r($,2)+P+r(y.length,2)+"\0\0\0\0"+r(M,4)+r(i,4)+g+w+y}}var o=e("../utils"),s=e("../stream/GenericWorker"),a=e("../utf8"),l=e("../crc32"),c=e("../signature");function u(e,t,n,r){s.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=t,this.zipPlatform=n,this.encodeFileName=r,this.streamFiles=e,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}o.inherits(u,s),u.prototype.push=function(e){var t=e.meta.percent||0,n=this.entriesCount,r=this._sources.length;this.accumulate?this.contentBuffer.push(e):(this.bytesWritten+=e.data.length,s.prototype.push.call(this,{data:e.data,meta:{currentFile:this.currentFile,percent:n?(t+100*(n-r-1))/n:100}}))},u.prototype.openedSource=function(e){this.currentSourceOffset=this.bytesWritten,this.currentFile=e.file.name;var t=this.streamFiles&&!e.file.dir;if(t){var n=i(e,t,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:n.fileRecord,meta:{percent:0}})}else this.accumulate=!0},u.prototype.closedSource=function(e){this.accumulate=!1;var t=this.streamFiles&&!e.file.dir,n=i(e,t,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(n.dirRecord),t)this.push({data:function(e){return c.DATA_DESCRIPTOR+r(e.crc32,4)+r(e.compressedSize,4)+r(e.uncompressedSize,4)}(e),meta:{percent:100}});else for(this.push({data:n.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},u.prototype.flush=function(){for(var e=this.bytesWritten,t=0;t=this.index;t--)n=(n<<8)+this.byteAt(t);return this.index+=e,n},readString:function(e){return r.transformTo("string",this.readData(e))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var e=this.readInt(4);return new Date(Date.UTC(1980+(e>>25&127),(e>>21&15)-1,e>>16&31,e>>11&31,e>>5&63,(31&e)<<1))}},t.exports=i},{"../utils":32}],19:[function(e,t,n){"use strict";var r=e("./Uint8ArrayReader");function i(e){r.call(this,e)}e("../utils").inherits(i,r),i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(e,t,n){"use strict";var r=e("./DataReader");function i(e){r.call(this,e)}e("../utils").inherits(i,r),i.prototype.byteAt=function(e){return this.data.charCodeAt(this.zero+e)},i.prototype.lastIndexOfSignature=function(e){return this.data.lastIndexOf(e)-this.zero},i.prototype.readAndCheckSignature=function(e){return e===this.readData(4)},i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{"../utils":32,"./DataReader":18}],21:[function(e,t,n){"use strict";var r=e("./ArrayReader");function i(e){r.call(this,e)}e("../utils").inherits(i,r),i.prototype.readData=function(e){if(this.checkOffset(e),0===e)return new Uint8Array(0);var t=this.data.subarray(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{"../utils":32,"./ArrayReader":17}],22:[function(e,t,n){"use strict";var r=e("../utils"),i=e("../support"),o=e("./ArrayReader"),s=e("./StringReader"),a=e("./NodeBufferReader"),l=e("./Uint8ArrayReader");t.exports=function(e){var t=r.getTypeOf(e);return r.checkSupport(t),"string"!==t||i.uint8array?"nodebuffer"===t?new a(e):i.uint8array?new l(r.transformTo("uint8array",e)):new o(r.transformTo("array",e)):new s(e)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(e,t,n){"use strict";n.LOCAL_FILE_HEADER="PK",n.CENTRAL_FILE_HEADER="PK",n.CENTRAL_DIRECTORY_END="PK",n.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK",n.ZIP64_CENTRAL_DIRECTORY_END="PK",n.DATA_DESCRIPTOR="PK\b"},{}],24:[function(e,t,n){"use strict";var r=e("./GenericWorker"),i=e("../utils");function o(e){r.call(this,"ConvertWorker to "+e),this.destType=e}i.inherits(o,r),o.prototype.processChunk=function(e){this.push({data:i.transformTo(this.destType,e.data),meta:e.meta})},t.exports=o},{"../utils":32,"./GenericWorker":28}],25:[function(e,t,n){"use strict";var r=e("./GenericWorker"),i=e("../crc32");function o(){r.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}e("../utils").inherits(o,r),o.prototype.processChunk=function(e){this.streamInfo.crc32=i(e.data,this.streamInfo.crc32||0),this.push(e)},t.exports=o},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(e,t,n){"use strict";var r=e("../utils"),i=e("./GenericWorker");function o(e){i.call(this,"DataLengthProbe for "+e),this.propName=e,this.withStreamInfo(e,0)}r.inherits(o,i),o.prototype.processChunk=function(e){if(e){var t=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=t+e.data.length}i.prototype.processChunk.call(this,e)},t.exports=o},{"../utils":32,"./GenericWorker":28}],27:[function(e,t,n){"use strict";var r=e("../utils"),i=e("./GenericWorker");function o(e){i.call(this,"DataWorker");var t=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,e.then((function(e){t.dataIsReady=!0,t.data=e,t.max=e&&e.length||0,t.type=r.getTypeOf(e),t.isPaused||t._tickAndRepeat()}),(function(e){t.error(e)}))}r.inherits(o,i),o.prototype.cleanUp=function(){i.prototype.cleanUp.call(this),this.data=null},o.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,r.delay(this._tickAndRepeat,[],this)),!0)},o.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(r.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},o.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var e=null,t=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":e=this.data.substring(this.index,t);break;case"uint8array":e=this.data.subarray(this.index,t);break;case"array":case"nodebuffer":e=this.data.slice(this.index,t)}return this.index=t,this.push({data:e,meta:{percent:this.max?this.index/this.max*100:0}})},t.exports=o},{"../utils":32,"./GenericWorker":28}],28:[function(e,t,n){"use strict";function r(e){this.name=e||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}r.prototype={push:function(e){this.emit("data",e)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(e){this.emit("error",e)}return!0},error:function(e){return!this.isFinished&&(this.isPaused?this.generatedError=e:(this.isFinished=!0,this.emit("error",e),this.previous&&this.previous.error(e),this.cleanUp()),!0)},on:function(e,t){return this._listeners[e].push(t),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(e,t){if(this._listeners[e])for(var n=0;n "+e:e}},t.exports=r},{}],29:[function(e,n,r){"use strict";var i=e("../utils"),o=e("./ConvertWorker"),s=e("./GenericWorker"),a=e("../base64"),l=e("../support"),c=e("../external"),u=null;if(l.nodestream)try{u=e("../nodejs/NodejsStreamOutputAdapter")}catch(e){}function d(e,t,n){var r=t;switch(t){case"blob":case"arraybuffer":r="uint8array";break;case"base64":r="string"}try{this._internalType=r,this._outputType=t,this._mimeType=n,i.checkSupport(r),this._worker=e.pipe(new o(r)),e.lock()}catch(e){this._worker=new s("error"),this._worker.error(e)}}d.prototype={accumulate:function(e){return function(e,n){return new c.Promise((function(r,o){var s=[],l=e._internalType,c=e._outputType,u=e._mimeType;e.on("data",(function(e,t){s.push(e),n&&n(t)})).on("error",(function(e){s=[],o(e)})).on("end",(function(){try{var e=function(e,t,n){switch(e){case"blob":return i.newBlob(i.transformTo("arraybuffer",t),n);case"base64":return a.encode(t);default:return i.transformTo(e,t)}}(c,function(e,n){var r,i=0,o=null,s=0;for(r=0;r>>6:(n<65536?t[s++]=224|n>>>12:(t[s++]=240|n>>>18,t[s++]=128|n>>>12&63),t[s++]=128|n>>>6&63),t[s++]=128|63&n);return t}(e)},n.utf8decode=function(e){return i.nodebuffer?r.transformTo("nodebuffer",e).toString("utf-8"):function(e){var t,n,i,o,s=e.length,l=new Array(2*s);for(t=n=0;t>10&1023,l[n++]=56320|1023&i)}return l.length!==n&&(l.subarray?l=l.subarray(0,n):l.length=n),r.applyFromCharCode(l)}(e=r.transformTo(i.uint8array?"uint8array":"array",e))},r.inherits(c,s),c.prototype.processChunk=function(e){var t=r.transformTo(i.uint8array?"uint8array":"array",e.data);if(this.leftOver&&this.leftOver.length){if(i.uint8array){var o=t;(t=new Uint8Array(o.length+this.leftOver.length)).set(this.leftOver,0),t.set(o,this.leftOver.length)}else t=this.leftOver.concat(t);this.leftOver=null}var s=function(e,t){var n;for((t=t||e.length)>e.length&&(t=e.length),n=t-1;0<=n&&128==(192&e[n]);)n--;return n<0||0===n?t:n+a[e[n]]>t?n:t}(t),l=t;s!==t.length&&(i.uint8array?(l=t.subarray(0,s),this.leftOver=t.subarray(s,t.length)):(l=t.slice(0,s),this.leftOver=t.slice(s,t.length))),this.push({data:n.utf8decode(l),meta:e.meta})},c.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:n.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},n.Utf8DecodeWorker=c,r.inherits(u,s),u.prototype.processChunk=function(e){this.push({data:n.utf8encode(e.data),meta:e.meta})},n.Utf8EncodeWorker=u},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(e,t,r){"use strict";var i=e("./support"),o=e("./base64"),s=e("./nodejsUtils"),a=e("./external");function l(e){return e}function c(e,t){for(var n=0;n>8;this.dir=!!(16&this.externalFileAttributes),0==e&&(this.dosPermissions=63&this.externalFileAttributes),3==e&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||"/"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var e=r(this.extraFields[1].value);this.uncompressedSize===i.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===i.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===i.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===i.MAX_VALUE_32BITS&&(this.diskNumberStart=e.readInt(4))}},readExtraFields:function(e){var t,n,r,i=e.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});e.index+4>>6:(n<65536?t[s++]=224|n>>>12:(t[s++]=240|n>>>18,t[s++]=128|n>>>12&63),t[s++]=128|n>>>6&63),t[s++]=128|63&n);return t},n.buf2binstring=function(e){return l(e,e.length)},n.binstring2buf=function(e){for(var t=new r.Buf8(e.length),n=0,i=t.length;n>10&1023,c[r++]=56320|1023&i)}return l(c,r)},n.utf8border=function(e,t){var n;for((t=t||e.length)>e.length&&(t=e.length),n=t-1;0<=n&&128==(192&e[n]);)n--;return n<0||0===n?t:n+s[e[n]]>t?n:t}},{"./common":41}],43:[function(e,t,n){"use strict";t.exports=function(e,t,n,r){for(var i=65535&e|0,o=e>>>16&65535|0,s=0;0!==n;){for(n-=s=2e3>>1:e>>>1;t[n]=e}return t}();t.exports=function(e,t,n,i){var o=r,s=i+n;e^=-1;for(var a=i;a>>8^o[255&(e^t[a])];return-1^e}},{}],46:[function(e,t,n){"use strict";var r,i=e("../utils/common"),o=e("./trees"),s=e("./adler32"),a=e("./crc32"),l=e("./messages"),c=-2,u=258,d=262,h=113;function p(e,t){return e.msg=l[t],t}function f(e){return(e<<1)-(4e.avail_out&&(n=e.avail_out),0!==n&&(i.arraySet(e.output,t.pending_buf,t.pending_out,n,e.next_out),e.next_out+=n,t.pending_out+=n,e.total_out+=n,e.avail_out-=n,t.pending-=n,0===t.pending&&(t.pending_out=0))}function b(e,t){o._tr_flush_block(e,0<=e.block_start?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,g(e.strm)}function v(e,t){e.pending_buf[e.pending++]=t}function y(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t}function S(e,t){var n,r,i=e.max_chain_length,o=e.strstart,s=e.prev_length,a=e.nice_match,l=e.strstart>e.w_size-d?e.strstart-(e.w_size-d):0,c=e.window,h=e.w_mask,p=e.prev,f=e.strstart+u,m=c[o+s-1],g=c[o+s];e.prev_length>=e.good_match&&(i>>=2),a>e.lookahead&&(a=e.lookahead);do{if(c[(n=t)+s]===g&&c[n+s-1]===m&&c[n]===c[o]&&c[++n]===c[o+1]){o+=2,n++;do{}while(c[++o]===c[++n]&&c[++o]===c[++n]&&c[++o]===c[++n]&&c[++o]===c[++n]&&c[++o]===c[++n]&&c[++o]===c[++n]&&c[++o]===c[++n]&&c[++o]===c[++n]&&ol&&0!=--i);return s<=e.lookahead?s:e.lookahead}function _(e){var t,n,r,o,l,c,u,h,p,f,m=e.w_size;do{if(o=e.window_size-e.lookahead-e.strstart,e.strstart>=m+(m-d)){for(i.arraySet(e.window,e.window,m,m,0),e.match_start-=m,e.strstart-=m,e.block_start-=m,t=n=e.hash_size;r=e.head[--t],e.head[t]=m<=r?r-m:0,--n;);for(t=n=m;r=e.prev[--t],e.prev[t]=m<=r?r-m:0,--n;);o+=m}if(0===e.strm.avail_in)break;if(c=e.strm,u=e.window,h=e.strstart+e.lookahead,f=void 0,(p=o)<(f=c.avail_in)&&(f=p),n=0===f?0:(c.avail_in-=f,i.arraySet(u,c.input,c.next_in,f,h),1===c.state.wrap?c.adler=s(c.adler,u,f,h):2===c.state.wrap&&(c.adler=a(c.adler,u,f,h)),c.next_in+=f,c.total_in+=f,f),e.lookahead+=n,e.lookahead+e.insert>=3)for(l=e.strstart-e.insert,e.ins_h=e.window[l],e.ins_h=(e.ins_h<=3&&(e.ins_h=(e.ins_h<=3)if(r=o._tr_tally(e,e.strstart-e.match_start,e.match_length-3),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=3){for(e.match_length--;e.strstart++,e.ins_h=(e.ins_h<=3&&(e.ins_h=(e.ins_h<=3&&e.match_length<=e.prev_length){for(i=e.strstart+e.lookahead-3,r=o._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-3),e.lookahead-=e.prev_length-1,e.prev_length-=2;++e.strstart<=i&&(e.ins_h=(e.ins_h<e.pending_buf_size-5&&(n=e.pending_buf_size-5);;){if(e.lookahead<=1){if(_(e),0===e.lookahead&&0===t)return 1;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var r=e.block_start+n;if((0===e.strstart||e.strstart>=r)&&(e.lookahead=e.strstart-r,e.strstart=r,b(e,!1),0===e.strm.avail_out))return 1;if(e.strstart-e.block_start>=e.w_size-d&&(b(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(b(e,!0),0===e.strm.avail_out?3:4):(e.strstart>e.block_start&&(b(e,!1),e.strm.avail_out),1)})),new k(4,4,8,4,x),new k(4,5,16,8,x),new k(4,6,32,32,x),new k(4,4,16,16,w),new k(8,16,32,32,w),new k(8,16,128,128,w),new k(8,32,128,256,w),new k(32,128,258,1024,w),new k(32,258,258,4096,w)],n.deflateInit=function(e,t){return T(e,t,8,15,8,0)},n.deflateInit2=T,n.deflateReset=A,n.deflateResetKeep=E,n.deflateSetHeader=function(e,t){return e&&e.state?2!==e.state.wrap?c:(e.state.gzhead=t,0):c},n.deflate=function(e,t){var n,i,s,l;if(!e||!e.state||5>8&255),v(i,i.gzhead.time>>16&255),v(i,i.gzhead.time>>24&255),v(i,9===i.level?2:2<=i.strategy||i.level<2?4:0),v(i,255&i.gzhead.os),i.gzhead.extra&&i.gzhead.extra.length&&(v(i,255&i.gzhead.extra.length),v(i,i.gzhead.extra.length>>8&255)),i.gzhead.hcrc&&(e.adler=a(e.adler,i.pending_buf,i.pending,0)),i.gzindex=0,i.status=69):(v(i,0),v(i,0),v(i,0),v(i,0),v(i,0),v(i,9===i.level?2:2<=i.strategy||i.level<2?4:0),v(i,3),i.status=h);else{var d=8+(i.w_bits-8<<4)<<8;d|=(2<=i.strategy||i.level<2?0:i.level<6?1:6===i.level?2:3)<<6,0!==i.strstart&&(d|=32),d+=31-d%31,i.status=h,y(i,d),0!==i.strstart&&(y(i,e.adler>>>16),y(i,65535&e.adler)),e.adler=1}if(69===i.status)if(i.gzhead.extra){for(s=i.pending;i.gzindex<(65535&i.gzhead.extra.length)&&(i.pending!==i.pending_buf_size||(i.gzhead.hcrc&&i.pending>s&&(e.adler=a(e.adler,i.pending_buf,i.pending-s,s)),g(e),s=i.pending,i.pending!==i.pending_buf_size));)v(i,255&i.gzhead.extra[i.gzindex]),i.gzindex++;i.gzhead.hcrc&&i.pending>s&&(e.adler=a(e.adler,i.pending_buf,i.pending-s,s)),i.gzindex===i.gzhead.extra.length&&(i.gzindex=0,i.status=73)}else i.status=73;if(73===i.status)if(i.gzhead.name){s=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>s&&(e.adler=a(e.adler,i.pending_buf,i.pending-s,s)),g(e),s=i.pending,i.pending===i.pending_buf_size)){l=1;break}l=i.gzindexs&&(e.adler=a(e.adler,i.pending_buf,i.pending-s,s)),0===l&&(i.gzindex=0,i.status=91)}else i.status=91;if(91===i.status)if(i.gzhead.comment){s=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>s&&(e.adler=a(e.adler,i.pending_buf,i.pending-s,s)),g(e),s=i.pending,i.pending===i.pending_buf_size)){l=1;break}l=i.gzindexs&&(e.adler=a(e.adler,i.pending_buf,i.pending-s,s)),0===l&&(i.status=103)}else i.status=103;if(103===i.status&&(i.gzhead.hcrc?(i.pending+2>i.pending_buf_size&&g(e),i.pending+2<=i.pending_buf_size&&(v(i,255&e.adler),v(i,e.adler>>8&255),e.adler=0,i.status=h)):i.status=h),0!==i.pending){if(g(e),0===e.avail_out)return i.last_flush=-1,0}else if(0===e.avail_in&&f(t)<=f(n)&&4!==t)return p(e,-5);if(666===i.status&&0!==e.avail_in)return p(e,-5);if(0!==e.avail_in||0!==i.lookahead||0!==t&&666!==i.status){var S=2===i.strategy?function(e,t){for(var n;;){if(0===e.lookahead&&(_(e),0===e.lookahead)){if(0===t)return 1;break}if(e.match_length=0,n=o._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(b(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(b(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(b(e,!1),0===e.strm.avail_out)?1:2}(i,t):3===i.strategy?function(e,t){for(var n,r,i,s,a=e.window;;){if(e.lookahead<=u){if(_(e),e.lookahead<=u&&0===t)return 1;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=3&&0e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=3?(n=o._tr_tally(e,1,e.match_length-3),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=o._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(b(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(b(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(b(e,!1),0===e.strm.avail_out)?1:2}(i,t):r[i.level].func(i,t);if(3!==S&&4!==S||(i.status=666),1===S||3===S)return 0===e.avail_out&&(i.last_flush=-1),0;if(2===S&&(1===t?o._tr_align(i):5!==t&&(o._tr_stored_block(i,0,0,!1),3===t&&(m(i.head),0===i.lookahead&&(i.strstart=0,i.block_start=0,i.insert=0))),g(e),0===e.avail_out))return i.last_flush=-1,0}return 4!==t?0:i.wrap<=0?1:(2===i.wrap?(v(i,255&e.adler),v(i,e.adler>>8&255),v(i,e.adler>>16&255),v(i,e.adler>>24&255),v(i,255&e.total_in),v(i,e.total_in>>8&255),v(i,e.total_in>>16&255),v(i,e.total_in>>24&255)):(y(i,e.adler>>>16),y(i,65535&e.adler)),g(e),0=n.w_size&&(0===a&&(m(n.head),n.strstart=0,n.block_start=0,n.insert=0),h=new i.Buf8(n.w_size),i.arraySet(h,t,p-n.w_size,n.w_size,0),t=h,p=n.w_size),l=e.avail_in,u=e.next_in,d=e.input,e.avail_in=p,e.next_in=0,e.input=t,_(n);n.lookahead>=3;){for(r=n.strstart,o=n.lookahead-2;n.ins_h=(n.ins_h<>>=S=y>>>24,f-=S,0==(S=y>>>16&255))E[o++]=65535&y;else{if(!(16&S)){if(0==(64&S)){y=m[(65535&y)+(p&(1<>>=S,f-=S),f<15&&(p+=O[r++]<>>=S=y>>>24,f-=S,!(16&(S=y>>>16&255))){if(0==(64&S)){y=g[(65535&y)+(p&(1<>>=S,f-=S,(S=o-s)>3,p&=(1<<(f-=_<<3))-1,e.next_in=r,e.next_out=o,e.avail_in=r>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function u(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new r.Buf16(320),this.work=new r.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function d(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=1,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new r.Buf32(852),t.distcode=t.distdyn=new r.Buf32(592),t.sane=1,t.back=-1,0):l}function h(e){var t;return e&&e.state?((t=e.state).wsize=0,t.whave=0,t.wnext=0,d(e)):l}function p(e,t){var n,r;return e&&e.state?(r=e.state,t<0?(n=0,t=-t):(n=1+(t>>4),t<48&&(t&=15)),t&&(t<8||15=s.wsize?(r.arraySet(s.window,t,n-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):(i<(o=s.wsize-s.wnext)&&(o=i),r.arraySet(s.window,t,n-i,o,s.wnext),(i-=o)?(r.arraySet(s.window,t,n-i,i,0),s.wnext=i,s.whave=s.wsize):(s.wnext+=o,s.wnext===s.wsize&&(s.wnext=0),s.whave>>8&255,n.check=o(n.check,D,2,0),b=g=0,n.mode=2;break}if(n.flags=0,n.head&&(n.head.done=!1),!(1&n.wrap)||(((255&g)<<8)+(g>>8))%31){e.msg="incorrect header check",n.mode=30;break}if(8!=(15&g)){e.msg="unknown compression method",n.mode=30;break}if(b-=4,$=8+(15&(g>>>=4)),0===n.wbits)n.wbits=$;else if($>n.wbits){e.msg="invalid window size",n.mode=30;break}n.dmax=1<<$,e.adler=n.check=1,n.mode=512&g?10:12,b=g=0;break;case 2:for(;b<16;){if(0===f)break e;f--,g+=u[h++]<>8&1),512&n.flags&&(D[0]=255&g,D[1]=g>>>8&255,n.check=o(n.check,D,2,0)),b=g=0,n.mode=3;case 3:for(;b<32;){if(0===f)break e;f--,g+=u[h++]<>>8&255,D[2]=g>>>16&255,D[3]=g>>>24&255,n.check=o(n.check,D,4,0)),b=g=0,n.mode=4;case 4:for(;b<16;){if(0===f)break e;f--,g+=u[h++]<>8),512&n.flags&&(D[0]=255&g,D[1]=g>>>8&255,n.check=o(n.check,D,2,0)),b=g=0,n.mode=5;case 5:if(1024&n.flags){for(;b<16;){if(0===f)break e;f--,g+=u[h++]<>>8&255,n.check=o(n.check,D,2,0)),b=g=0}else n.head&&(n.head.extra=null);n.mode=6;case 6:if(1024&n.flags&&(f<(x=n.length)&&(x=f),x&&(n.head&&($=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Array(n.head.extra_len)),r.arraySet(n.head.extra,u,h,x,$)),512&n.flags&&(n.check=o(n.check,u,x,h)),f-=x,h+=x,n.length-=x),n.length))break e;n.length=0,n.mode=7;case 7:if(2048&n.flags){if(0===f)break e;for(x=0;$=u[h+x++],n.head&&$&&n.length<65536&&(n.head.name+=String.fromCharCode($)),$&&x>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=12;break;case 10:for(;b<32;){if(0===f)break e;f--,g+=u[h++]<>>=7&b,b-=7&b,n.mode=27;break}for(;b<3;){if(0===f)break e;f--,g+=u[h++]<>>=1)){case 0:n.mode=14;break;case 1:if(v(n),n.mode=20,6!==t)break;g>>>=2,b-=2;break e;case 2:n.mode=17;break;case 3:e.msg="invalid block type",n.mode=30}g>>>=2,b-=2;break;case 14:for(g>>>=7&b,b-=7&b;b<32;){if(0===f)break e;f--,g+=u[h++]<>>16^65535)){e.msg="invalid stored block lengths",n.mode=30;break}if(n.length=65535&g,b=g=0,n.mode=15,6===t)break e;case 15:n.mode=16;case 16:if(x=n.length){if(f>>=5,b-=5,n.ndist=1+(31&g),g>>>=5,b-=5,n.ncode=4+(15&g),g>>>=4,b-=4,286>>=3,b-=3}for(;n.have<19;)n.lens[I[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,R={bits:n.lenbits},P=a(0,n.lens,0,19,n.lencode,0,n.work,R),n.lenbits=R.bits,P){e.msg="invalid code lengths set",n.mode=30;break}n.have=0,n.mode=19;case 19:for(;n.have>>16&255,A=65535&N,!((O=N>>>24)<=b);){if(0===f)break e;f--,g+=u[h++]<>>=O,b-=O,n.lens[n.have++]=A;else{if(16===A){for(j=O+2;b>>=O,b-=O,0===n.have){e.msg="invalid bit length repeat",n.mode=30;break}$=n.lens[n.have-1],x=3+(3&g),g>>>=2,b-=2}else if(17===A){for(j=O+3;b>>=O)),g>>>=3,b-=3}else{for(j=O+7;b>>=O)),g>>>=7,b-=7}if(n.have+x>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=30;break}for(;x--;)n.lens[n.have++]=$}}if(30===n.mode)break;if(0===n.lens[256]){e.msg="invalid code -- missing end-of-block",n.mode=30;break}if(n.lenbits=9,R={bits:n.lenbits},P=a(1,n.lens,0,n.nlen,n.lencode,0,n.work,R),n.lenbits=R.bits,P){e.msg="invalid literal/lengths set",n.mode=30;break}if(n.distbits=6,n.distcode=n.distdyn,R={bits:n.distbits},P=a(2,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,R),n.distbits=R.bits,P){e.msg="invalid distances set",n.mode=30;break}if(n.mode=20,6===t)break e;case 20:n.mode=21;case 21:if(6<=f&&258<=m){e.next_out=p,e.avail_out=m,e.next_in=h,e.avail_in=f,n.hold=g,n.bits=b,s(e,_),p=e.next_out,d=e.output,m=e.avail_out,h=e.next_in,u=e.input,f=e.avail_in,g=n.hold,b=n.bits,12===n.mode&&(n.back=-1);break}for(n.back=0;E=(N=n.lencode[g&(1<>>16&255,A=65535&N,!((O=N>>>24)<=b);){if(0===f)break e;f--,g+=u[h++]<>T)])>>>16&255,A=65535&N,!(T+(O=N>>>24)<=b);){if(0===f)break e;f--,g+=u[h++]<>>=T,b-=T,n.back+=T}if(g>>>=O,b-=O,n.back+=O,n.length=A,0===E){n.mode=26;break}if(32&E){n.back=-1,n.mode=12;break}if(64&E){e.msg="invalid literal/length code",n.mode=30;break}n.extra=15&E,n.mode=22;case 22:if(n.extra){for(j=n.extra;b>>=n.extra,b-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=23;case 23:for(;E=(N=n.distcode[g&(1<>>16&255,A=65535&N,!((O=N>>>24)<=b);){if(0===f)break e;f--,g+=u[h++]<>T)])>>>16&255,A=65535&N,!(T+(O=N>>>24)<=b);){if(0===f)break e;f--,g+=u[h++]<>>=T,b-=T,n.back+=T}if(g>>>=O,b-=O,n.back+=O,64&E){e.msg="invalid distance code",n.mode=30;break}n.offset=A,n.extra=15&E,n.mode=24;case 24:if(n.extra){for(j=n.extra;b>>=n.extra,b-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=30;break}n.mode=25;case 25:if(0===m)break e;if(x=_-m,n.offset>x){if((x=n.offset-x)>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=30;break}w=x>n.wnext?(x-=n.wnext,n.wsize-x):n.wnext-x,x>n.length&&(x=n.length),k=n.window}else k=d,w=p-n.offset,x=n.length;for(mv?(S=I[L+d[k]],R[j+d[k]]):(S=96,0),p=1<>C)+(f-=p)]=y<<24|S<<16|_|0,0!==f;);for(p=1<>=1;if(0!==p?(P&=p-1,P+=p):P=0,k++,0==--N[w]){if(w===E)break;w=t[n+d[k]]}if(A>>7)]}function O(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255}function E(e,t,n){e.bi_valid>16-n?(e.bi_buf|=t<>16-e.bi_valid,e.bi_valid+=n-16):(e.bi_buf|=t<>>=1,n<<=1,0<--t;);return n>>>1}function C(e,t,n){var r,i,o=new Array(16),s=0;for(r=1;r<=l;r++)o[r]=s=s+n[r-1]<<1;for(i=0;i<=t;i++){var a=e[2*i+1];0!==a&&(e[2*i]=T(o[a]++,a))}}function M(e){var t;for(t=0;t>1;1<=n;n--)R(e,o,n);for(i=c;n=e.heap[1],e.heap[1]=e.heap[e.heap_len--],R(e,o,1),r=e.heap[1],e.heap[--e.heap_max]=n,e.heap[--e.heap_max]=r,o[2*i]=o[2*n]+o[2*r],e.depth[i]=(e.depth[n]>=e.depth[r]?e.depth[n]:e.depth[r])+1,o[2*n+1]=o[2*r+1]=i,e.heap[1]=i++,R(e,o,1),2<=e.heap_len;);e.heap[--e.heap_max]=e.heap[1],function(e,t){var n,r,i,o,s,a,c=t.dyn_tree,u=t.max_code,d=t.stat_desc.static_tree,h=t.stat_desc.has_stree,p=t.stat_desc.extra_bits,f=t.stat_desc.extra_base,m=t.stat_desc.max_length,g=0;for(o=0;o<=l;o++)e.bl_count[o]=0;for(c[2*e.heap[e.heap_max]+1]=0,n=e.heap_max+1;n<573;n++)m<(o=c[2*c[2*(r=e.heap[n])+1]+1]+1)&&(o=m,g++),c[2*r+1]=o,u>=7;r>>=1)if(1&n&&0!==e.dyn_ltree[2*t])return 0;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return 1;for(t=32;t>>3,(s=e.static_len+3+7>>>3)<=i&&(i=s)):i=s=n+5,n+4<=i&&-1!==t?B(e,t,n,r):4===e.strategy||s===i?(E(e,2+(r?1:0),3),j(e,p,f)):(E(e,4+(r?1:0),3),function(e,t,n,r){var i;for(E(e,t-257,5),E(e,n-1,5),E(e,r-4,4),i=0;i>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&n,e.last_lit++,0===t?e.dyn_ltree[2*n]++:(e.matches++,t--,e.dyn_ltree[2*(g[n]+o+1)]++,e.dyn_dtree[2*k(t)]++),e.last_lit===e.lit_bufsize-1},n._tr_align=function(e){E(e,2,3),A(e,256,p),function(e){16===e.bi_valid?(O(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):8<=e.bi_valid&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)}(e)}},{"../utils/common":41}],53:[function(e,t,n){"use strict";t.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(e,t,n){(function(e){!function(e,t){"use strict";if(!e.setImmediate){var n,r,o,s,a=1,l={},c=!1,u=e.document,d=Object.getPrototypeOf&&Object.getPrototypeOf(e);d=d&&d.setTimeout?d:e,n="[object process]"==={}.toString.call(e.process)?function(e){i.nextTick((function(){p(e)}))}:function(){if(e.postMessage&&!e.importScripts){var t=!0,n=e.onmessage;return e.onmessage=function(){t=!1},e.postMessage("","*"),e.onmessage=n,t}}()?(s="setImmediate$"+Math.random()+"$",e.addEventListener?e.addEventListener("message",f,!1):e.attachEvent("onmessage",f),function(t){e.postMessage(s+t,"*")}):e.MessageChannel?((o=new MessageChannel).port1.onmessage=function(e){p(e.data)},function(e){o.port2.postMessage(e)}):u&&"onreadystatechange"in u.createElement("script")?(r=u.documentElement,function(e){var t=u.createElement("script");t.onreadystatechange=function(){p(e),t.onreadystatechange=null,r.removeChild(t),t=null},r.appendChild(t)}):function(e){setTimeout(p,0,e)},d.setImmediate=function(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),r=0;rdiv:last-child{flex:1}.Toastify__toast-icon{margin-inline-end:10px;width:20px;flex-shrink:0;display:flex}.Toastify--animate{animation-fill-mode:both;animation-duration:.7s}.Toastify--animate-icon{animation-fill-mode:both;animation-duration:.3s}@media only screen and (max-width : 480px){.Toastify__toast{margin-bottom:0;border-radius:0}}.Toastify__toast-theme--dark{background:var(--toastify-color-dark);color:var(--toastify-text-color-dark)}.Toastify__toast-theme--light{background:var(--toastify-color-light);color:var(--toastify-text-color-light)}.Toastify__toast-theme--colored.Toastify__toast--default{background:var(--toastify-color-light);color:var(--toastify-text-color-light)}.Toastify__toast-theme--colored.Toastify__toast--info{color:var(--toastify-text-color-info);background:var(--toastify-color-info)}.Toastify__toast-theme--colored.Toastify__toast--success{color:var(--toastify-text-color-success);background:var(--toastify-color-success)}.Toastify__toast-theme--colored.Toastify__toast--warning{color:var(--toastify-text-color-warning);background:var(--toastify-color-warning)}.Toastify__toast-theme--colored.Toastify__toast--error{color:var(--toastify-text-color-error);background:var(--toastify-color-error)}.Toastify__progress-bar-theme--light{background:var(--toastify-color-progress-light)}.Toastify__progress-bar-theme--dark{background:var(--toastify-color-progress-dark)}.Toastify__progress-bar--info{background:var(--toastify-color-progress-info)}.Toastify__progress-bar--success{background:var(--toastify-color-progress-success)}.Toastify__progress-bar--warning{background:var(--toastify-color-progress-warning)}.Toastify__progress-bar--error{background:var(--toastify-color-progress-error)}.Toastify__progress-bar-theme--colored.Toastify__progress-bar--info,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--success,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--warning,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--error{background:var(--toastify-color-transparent)}.Toastify__close-button{color:#fff;background:rgba(0,0,0,0);outline:none;border:none;padding:0;cursor:pointer;opacity:.7;transition:.3s ease;align-self:flex-start}.Toastify__close-button--light{color:#000;opacity:.3}.Toastify__close-button>svg{fill:currentColor;height:16px;width:14px}.Toastify__close-button:hover,.Toastify__close-button:focus{opacity:1}@keyframes Toastify__trackProgress{0%{transform:scaleX(1)}100%{transform:scaleX(0)}}.Toastify__progress-bar{position:absolute;bottom:0;left:0;width:100%;height:5px;z-index:var(--toastify-z-index);opacity:.7;transform-origin:left}.Toastify__progress-bar--animated{animation:Toastify__trackProgress linear 1 forwards}.Toastify__progress-bar--controlled{transition:transform .2s}.Toastify__progress-bar--rtl{right:0;left:initial;transform-origin:right}.Toastify__spinner{width:20px;height:20px;box-sizing:border-box;border:2px solid;border-radius:100%;border-color:var(--toastify-spinner-color-empty-area);border-right-color:var(--toastify-spinner-color);animation:Toastify__spin .65s linear infinite}@keyframes Toastify__bounceInRight{from,60%,75%,90%,to{animation-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1)}from{opacity:0;transform:translate3d(3000px, 0, 0)}60%{opacity:1;transform:translate3d(-25px, 0, 0)}75%{transform:translate3d(10px, 0, 0)}90%{transform:translate3d(-5px, 0, 0)}to{transform:none}}@keyframes Toastify__bounceOutRight{20%{opacity:1;transform:translate3d(-20px, 0, 0)}to{opacity:0;transform:translate3d(2000px, 0, 0)}}@keyframes Toastify__bounceInLeft{from,60%,75%,90%,to{animation-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1)}0%{opacity:0;transform:translate3d(-3000px, 0, 0)}60%{opacity:1;transform:translate3d(25px, 0, 0)}75%{transform:translate3d(-10px, 0, 0)}90%{transform:translate3d(5px, 0, 0)}to{transform:none}}@keyframes Toastify__bounceOutLeft{20%{opacity:1;transform:translate3d(20px, 0, 0)}to{opacity:0;transform:translate3d(-2000px, 0, 0)}}@keyframes Toastify__bounceInUp{from,60%,75%,90%,to{animation-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1)}from{opacity:0;transform:translate3d(0, 3000px, 0)}60%{opacity:1;transform:translate3d(0, -20px, 0)}75%{transform:translate3d(0, 10px, 0)}90%{transform:translate3d(0, -5px, 0)}to{transform:translate3d(0, 0, 0)}}@keyframes Toastify__bounceOutUp{20%{transform:translate3d(0, -10px, 0)}40%,45%{opacity:1;transform:translate3d(0, 20px, 0)}to{opacity:0;transform:translate3d(0, -2000px, 0)}}@keyframes Toastify__bounceInDown{from,60%,75%,90%,to{animation-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1)}0%{opacity:0;transform:translate3d(0, -3000px, 0)}60%{opacity:1;transform:translate3d(0, 25px, 0)}75%{transform:translate3d(0, -10px, 0)}90%{transform:translate3d(0, 5px, 0)}to{transform:none}}@keyframes Toastify__bounceOutDown{20%{transform:translate3d(0, 10px, 0)}40%,45%{opacity:1;transform:translate3d(0, -20px, 0)}to{opacity:0;transform:translate3d(0, 2000px, 0)}}.Toastify__bounce-enter--top-left,.Toastify__bounce-enter--bottom-left{animation-name:Toastify__bounceInLeft}.Toastify__bounce-enter--top-right,.Toastify__bounce-enter--bottom-right{animation-name:Toastify__bounceInRight}.Toastify__bounce-enter--top-center{animation-name:Toastify__bounceInDown}.Toastify__bounce-enter--bottom-center{animation-name:Toastify__bounceInUp}.Toastify__bounce-exit--top-left,.Toastify__bounce-exit--bottom-left{animation-name:Toastify__bounceOutLeft}.Toastify__bounce-exit--top-right,.Toastify__bounce-exit--bottom-right{animation-name:Toastify__bounceOutRight}.Toastify__bounce-exit--top-center{animation-name:Toastify__bounceOutUp}.Toastify__bounce-exit--bottom-center{animation-name:Toastify__bounceOutDown}@keyframes Toastify__zoomIn{from{opacity:0;transform:scale3d(0.3, 0.3, 0.3)}50%{opacity:1}}@keyframes Toastify__zoomOut{from{opacity:1}50%{opacity:0;transform:scale3d(0.3, 0.3, 0.3)}to{opacity:0}}.Toastify__zoom-enter{animation-name:Toastify__zoomIn}.Toastify__zoom-exit{animation-name:Toastify__zoomOut}@keyframes Toastify__flipIn{from{transform:perspective(400px) rotate3d(1, 0, 0, 90deg);animation-timing-function:ease-in;opacity:0}40%{transform:perspective(400px) rotate3d(1, 0, 0, -20deg);animation-timing-function:ease-in}60%{transform:perspective(400px) rotate3d(1, 0, 0, 10deg);opacity:1}80%{transform:perspective(400px) rotate3d(1, 0, 0, -5deg)}to{transform:perspective(400px)}}@keyframes Toastify__flipOut{from{transform:perspective(400px)}30%{transform:perspective(400px) rotate3d(1, 0, 0, -20deg);opacity:1}to{transform:perspective(400px) rotate3d(1, 0, 0, 90deg);opacity:0}}.Toastify__flip-enter{animation-name:Toastify__flipIn}.Toastify__flip-exit{animation-name:Toastify__flipOut}@keyframes Toastify__slideInRight{from{transform:translate3d(110%, 0, 0);visibility:visible}to{transform:translate3d(0, 0, 0)}}@keyframes Toastify__slideInLeft{from{transform:translate3d(-110%, 0, 0);visibility:visible}to{transform:translate3d(0, 0, 0)}}@keyframes Toastify__slideInUp{from{transform:translate3d(0, 110%, 0);visibility:visible}to{transform:translate3d(0, 0, 0)}}@keyframes Toastify__slideInDown{from{transform:translate3d(0, -110%, 0);visibility:visible}to{transform:translate3d(0, 0, 0)}}@keyframes Toastify__slideOutRight{from{transform:translate3d(0, 0, 0)}to{visibility:hidden;transform:translate3d(110%, 0, 0)}}@keyframes Toastify__slideOutLeft{from{transform:translate3d(0, 0, 0)}to{visibility:hidden;transform:translate3d(-110%, 0, 0)}}@keyframes Toastify__slideOutDown{from{transform:translate3d(0, 0, 0)}to{visibility:hidden;transform:translate3d(0, 500px, 0)}}@keyframes Toastify__slideOutUp{from{transform:translate3d(0, 0, 0)}to{visibility:hidden;transform:translate3d(0, -500px, 0)}}.Toastify__slide-enter--top-left,.Toastify__slide-enter--bottom-left{animation-name:Toastify__slideInLeft}.Toastify__slide-enter--top-right,.Toastify__slide-enter--bottom-right{animation-name:Toastify__slideInRight}.Toastify__slide-enter--top-center{animation-name:Toastify__slideInDown}.Toastify__slide-enter--bottom-center{animation-name:Toastify__slideInUp}.Toastify__slide-exit--top-left,.Toastify__slide-exit--bottom-left{animation-name:Toastify__slideOutLeft}.Toastify__slide-exit--top-right,.Toastify__slide-exit--bottom-right{animation-name:Toastify__slideOutRight}.Toastify__slide-exit--top-center{animation-name:Toastify__slideOutUp}.Toastify__slide-exit--bottom-center{animation-name:Toastify__slideOutDown}@keyframes Toastify__spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}:root{--rpf-white: #ffffff}:export{grey-rpi-grey-15:#d5d7dc;grey-rpi-grey-40:#9497a4;grey-rpi-grey-5:#f1f2f3;grey-rpi-grey-70:#4a4d59;grey-rpf-white:#fff}#app .react-tabs,#wc .react-tabs{flex:1;display:flex;flex-flow:column;overflow:hidden;position:relative;border-radius:8px}#app .react-tabs__tab,#wc .react-tabs__tab{border:none;background-color:rgba(0,0,0,0);padding:0;margin:0;inset-block-start:0;inset-block-end:0;block-size:calc(3rem*var(--scale-factor, 1));box-sizing:border-box;display:flex;align-items:center;justify-content:center;font-weight:700}#app .react-tabs__tab svg,#wc .react-tabs__tab svg{padding:0 0 0 calc(.75rem*var(--scale-factor, 1))}#app .react-tabs__tab:hover,#wc .react-tabs__tab:hover{text-decoration:underline}#app .react-tabs__tab--selected,#wc .react-tabs__tab--selected{border-radius:0;padding-block-start:calc(.25rem*var(--scale-factor, 1))}#app .react-tabs__tab--selected:hover,#wc .react-tabs__tab--selected:hover{text-decoration:none}#app .react-tabs__tab--selected:focus-visible,#wc .react-tabs__tab--selected:focus-visible{padding-block-start:7px}#app .react-tabs__tab:focus,#wc .react-tabs__tab:focus{box-shadow:none}#app .react-tabs__tab:focus-visible,#wc .react-tabs__tab:focus-visible{outline-offset:-3px;outline:3px solid #cd2356}#app .react-tabs__tab:focus:after,#wc .react-tabs__tab:focus:after{display:none}#app .react-tabs__tab-text,#wc .react-tabs__tab-text{block-size:fit-content;inline-size:fit-content;margin:0;padding:0 calc(.75rem*var(--scale-factor, 1));white-space:nowrap}#app .react-tabs__tab-text--split,#wc .react-tabs__tab-text--split{padding-inline-end:0}#app .react-tabs__tab-close-btn,#wc .react-tabs__tab-close-btn{block-size:100%;padding:calc(.25rem*var(--scale-factor, 1));background-color:rgba(0,0,0,0)}#app .react-tabs__tab-close-btn svg,#wc .react-tabs__tab-close-btn svg{padding:calc(.5rem*var(--scale-factor, 1));border-radius:8px}#app .react-tabs__tab-close-btn:focus-visible,#wc .react-tabs__tab-close-btn:focus-visible{border:0}#app .react-tabs__tab-close-btn:focus-visible svg,#wc .react-tabs__tab-close-btn:focus-visible svg{border:3px solid #cd2356}#app .react-tabs__tab-container,#wc .react-tabs__tab-container{display:flex;block-size:fit-content}#app .react-tabs__tab-list,#wc .react-tabs__tab-list{border-block-end:none;box-sizing:border-box;display:flex;overflow-y:hidden;margin:0;padding:0 calc(.25rem*var(--scale-factor, 1)) 0 0}#app .react-tabs__tab-container--hidden,#wc .react-tabs__tab-container--hidden{display:none}#app .react-tabs__tab-panel--selected,#wc .react-tabs__tab-panel--selected{flex:1;display:flex;flex-direction:column;overflow-y:auto}#app .react-tabs__tab-container,#wc .react-tabs__tab-container{border-block-end:1px solid var(--editor-color-outline)}#app .react-tabs__tab,#wc .react-tabs__tab{background-color:var(--rpf-tab-button-background);border-inline-end:1px solid var(--editor-color-outline)}#app .react-tabs__tab--selected,#wc .react-tabs__tab--selected{color:var(--editor-color-text);background-color:var(--editor-color-layer-3);border-block-end:4px solid var(--rpf-tab-border-bottom-selected)}#app .react-tabs__tab--selected:focus-visible,#wc .react-tabs__tab--selected:focus-visible{border-block-end:7px solid var(--rpf-tab-border-bottom-selected)}#app .react-tabs__tab-close-btn:hover svg,#wc .react-tabs__tab-close-btn:hover svg{background-color:var(--rpf-tab-button-hover)}a,button{border:3px solid rgba(0,0,0,0)}a:focus-visible,button:focus-visible{border:3px solid #cd2356;outline:none}button{all:initial;border:3px solid rgba(0,0,0,0);cursor:pointer}input{font-family:"Roboto",-apple-system,BlinkMacSystemFont,"Segoe UI","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif}.--light{background-color:#e7f8f7;color:#212121;caret-color:#000}.--light .pythonrunner-input{color:#2467ec}.--light svg{fill:var(--editor-color-text)}.--dark{background-color:#17181c;color:#fff;caret-color:#fff}.--dark .pythonrunner-input{color:#24baec}.--dark svg{fill:var(--editor-color-text)}#app{display:flex;flex-flow:column;font-family:"Roboto",-apple-system,BlinkMacSystemFont,"Segoe UI","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;font-size:calc(1rem*var(--scale-factor, 1));line-height:calc(1.5rem*var(--scale-factor, 1))}html,body,#root,#app{overflow:auto;block-size:100%;block-size:-moz-available;block-size:-webkit-stretch;block-size:stretch;block-size:100dvh;-ms-overflow-style:none;scrollbar-width:none}::-webkit-scrollbar{display:none}#app .toast--bottom-center__message,#app .toast--top-center__message,#wc .toast--bottom-center__message,#wc .toast--top-center__message{min-block-size:fit-content;padding:calc(.25rem*var(--scale-factor, 1)) calc(.5rem*var(--scale-factor, 1));margin:0}#app .toast--bottom-center,#wc .toast--bottom-center{font-size:calc(.75rem*var(--scale-factor, 1));line-height:calc(1rem*var(--scale-factor, 1));inline-size:fit-content;max-inline-size:100%;inset-block-end:1em;padding:4px;inset-inline-start:50%;transform:translateX(-50%);white-space:nowrap}#app .toast--bottom-center .Toastify__toast-icon,#wc .toast--bottom-center .Toastify__toast-icon{margin-block:0;margin-inline:calc(.25rem*var(--scale-factor, 1)) 0}#app .toast--bottom-center__message,#wc .toast--bottom-center__message{border-radius:20px}#app .toast--top-center,#wc .toast--top-center{max-inline-size:fit-content;inline-size:100%;font-weight:700;inset-block-start:20%;z-index:1}#app .toast--top-center .Toastify__toast-icon,#wc .toast--top-center .Toastify__toast-icon{inline-size:fit-content}#app .toast--top-center__message,#wc .toast--top-center__message{background-color:#fff;border-radius:25px}#app .toast--info,#wc .toast--info{color:#1e398a;border:2px solid #1e398a}#app .toast--info svg,#wc .toast--info svg{fill:#17181c}#app .toast--info .Toastify__toast-icon svg,#wc .toast--info .Toastify__toast-icon svg{fill:#1e398a}#app.--dark .toast--bottom-center__message,#wc.--dark .toast--bottom-center__message{background-color:#fff;color:#17181c}#app.--dark .toast--bottom-center__message svg,#wc.--dark .toast--bottom-center__message svg{fill:#17181c}#app.--light .toast--bottom-center__message,#wc.--light .toast--bottom-center__message{background-color:#17181c;color:#fff}#app.--light .toast--bottom-center__message svg,#wc.--light .toast--bottom-center__message svg{fill:#fff}.proj{display:flex;flex-flow:column;overflow:hidden;block-size:100%;block-size:-moz-available;block-size:-webkit-stretch;block-size:stretch}.proj-header{display:flex;flex:1 0 auto;justify-content:space-between;padding-inline:5px}.editor-controls{display:flex}.proj-controls{padding-block-start:20px}.proj-share-link{padding-inline:5px}.proj-container{display:flex;flex-direction:row;overflow-y:hidden;grid-gap:calc(1rem*var(--scale-factor, 1));margin:calc(1rem*var(--scale-factor, 1));block-size:100%}.proj-container .project-wrapper{container-type:inline-size;display:flex;flex-direction:column;grid-gap:calc(.5rem*var(--scale-factor, 1));flex:1 1 auto;overflow:hidden}.proj-container .proj-editor-wrapper{display:flex;flex:0 1 auto;flex-flow:column;grid-gap:calc(1rem*var(--scale-factor, 1));overflow:hidden;block-size:100%;inline-size:100%}@container (min-width: 720px){.proj-container .proj-editor-wrapper{flex-flow:row}.proj-container .proj-editor-container{max-block-size:100% !important}.proj-container--wc .proj-runner-container,.proj-container--wc .proj-editor-container{inline-size:50%}}.proj-container .sidebar,.proj-container .proj-editor-container,.proj-container .proj-runner-container{border-radius:8px}.proj-container .proj-editor-container{display:flex;box-sizing:border-box;min-block-size:30%;max-block-size:70%}.proj-container .proj-editor-container .react-tabs__tab-panel--selected{overflow-y:hidden}.proj-container .proj-runner-container{display:flex;box-sizing:border-box;flex:5;overflow:hidden}.proj-container .proj-runner-container .react-tabs__tab-panel--selected{overflow-y:auto}.proj-container--wc{min-block-size:200px}.proj-container--wc .proj-runner-container,.proj-container--wc .proj-editor-container{inline-size:100%}.proj-editor-container .react-tabs__tab-list,.proj-runner-container .react-tabs__tab-list{flex:1}.proj-editor-container .react-tabs__tab-container .btn--run,.proj-editor-container .react-tabs__tab-container .btn--stop,.proj-runner-container .react-tabs__tab-container .btn--run,.proj-runner-container .react-tabs__tab-container .btn--stop{margin-block-start:0;margin-block-end:0}.--light .proj-runner-container,.--light .proj-editor-container,.--light .sidebar{background-color:#fff}@media screen and (min-width: 601px){.--light .proj-runner-container,.--light .proj-editor-container,.--light .sidebar{border:1px solid #d5d7dc}}.--dark .proj-runner-container,.--dark .proj-editor-container,.--dark .sidebar{background-color:#2a2b32}@media screen and (min-width: 601px){.--dark .proj-runner-container,.--dark .proj-editor-container,.--dark .sidebar{border:1px solid #4a4d59}}.project-bar{border-radius:calc(.5rem*var(--scale-factor, 1));display:flex;align-items:center;z-index:1;block-size:calc(4rem*var(--scale-factor, 1));container-type:inline-size;background-color:var(--editor-color-layer-3);border:1px solid var(--editor-color-outline)}@container (max-width: 367px){.project-bar{flex-direction:column;block-size:fit-content;justify-content:left}}.project-bar .project-name{border-inline-end:1px solid var(--editor-color-outline);margin-inline-end:-1px;min-inline-size:0px}@container (max-width: 365px){.project-bar .project-name{inline-size:100%;box-sizing:border-box;border-inline-end:none}}.project-bar .btn--save{border-radius:calc(.5rem*var(--scale-factor, 1))}@container (min-width: 560px){.project-bar .btn--save .icon{display:none}}.project-bar .project-bar__btn-wrapper{block-size:100%}.project-bar .project-bar__btn-wrapper:not(:last-child){border-inline-end:1px solid var(--editor-color-outline)}.project-bar__right{border-inline-start:1px solid var(--editor-color-outline);margin-inline-start:auto;display:flex;align-items:center;block-size:100%;flex-shrink:0;max-inline-size:55%}@container (max-width: 365px){.project-bar__right{margin-inline-start:0;border-inline-start:none;border-block-start:1px solid var(--editor-color-outline);block-size:fit-content;inline-size:100%;max-inline-size:100%}.project-bar__right .save-status{flex:1;justify-content:center}}.project-bar__btn{border-radius:calc(.5rem*var(--scale-factor, 1));justify-content:center;margin:calc(.5rem*var(--scale-factor, 1));gap:calc(.5rem*var(--scale-factor, 1))}.project-bar__btn .text{display:none}.project-bar__btn:hover .project-bar__btn{border-radius:inherit}@container (min-width: 560px){.project-bar__btn .text{min-inline-size:auto;display:block}}.proj-container--mobile{margin:0;gap:0}#app .proj-container--mobile .react-tabs{border-radius:0}#wc .proj-container--mobile{border-radius:8px}#app .mobile-nav,#wc .mobile-nav{display:flex;inline-size:100%}#app .mobile-nav .react-tabs__tab-list,#wc .mobile-nav .react-tabs__tab-list{padding:0}#app .mobile-nav .react-tabs__tab,#wc .mobile-nav .react-tabs__tab{flex:1;display:flex;block-size:calc(4rem*var(--scale-factor, 1))}#app .mobile-nav .react-tabs__tab:last-of-type,#wc .mobile-nav .react-tabs__tab:last-of-type{border-inline-end:none}.mobile-nav__menu{margin:0;border-radius:0;border:none;display:flex;align-items:center;justify-content:center;inline-size:calc(4rem*var(--scale-factor, 1))}.--dark .proj-container--mobile .runner-controls{border-inline-start:1px solid #4a4d59}.--dark .proj-container--mobile .mobile-nav{background-color:#2a2b32;border-block-start:1px solid #4a4d59}.--dark .proj-container--mobile .mobile-nav__menu{border-inline-end:1px solid #4a4d59}.--light .proj-container--mobile .runner-controls{border-inline-start:1px solid #d5d7dc}.--light .proj-container--mobile .mobile-nav{background-color:#f5f6f9;border-block-start:1px solid #d5d7dc}.--light .proj-container--mobile .mobile-nav__menu{border-inline-end:1px solid #d5d7dc}#app.--light .mobile-nav,#app.--dark .mobile-nav,#wc.--light .mobile-nav,#wc.--dark .mobile-nav{border-block-end:none}#app.--light .mobile-nav .react-tabs__tab--selected,#app.--dark .mobile-nav .react-tabs__tab--selected,#wc.--light .mobile-nav .react-tabs__tab--selected,#wc.--dark .mobile-nav .react-tabs__tab--selected{background-color:inherit}#wc.--light .proj-container--mobile{border:1px solid #d5d7dc}#wc.--dark .proj-container--mobile{border:1px solid #4a4d59}.draggable-tab{user-select:none}.draggable-tab:focus-visible{outline:none}.--dark .draggable-tab:focus-visible .react-tabs__tab{outline:2px auto #fff;outline-offset:-1px}.--light .draggable-tab:focus-visible .react-tabs__tab{outline:2px auto Highlight;outline:2px auto -webkit-focus-ring-color;outline-offset:-1px}.droppable-tab-list{display:flex;inline-size:100%}.resizable-with-handle__handle--right div{inset-inline-end:3px !important}.resizable-with-handle__handle--right div svg{block-size:100%;min-inline-size:0}.resizable-with-handle__handle--bottom div{inset-block-end:3px !important}.resizable-with-handle__handle--bottom div svg{inline-size:100%}.modal-overlay{display:flex;align-items:center;justify-content:center;padding:calc(5rem*var(--scale-factor, 1));z-index:1000;position:fixed;inset:0px}@media screen and (max-width: 480px){.modal-overlay{padding:calc(2rem*var(--scale-factor, 1))}}.modal-content{inline-size:560px;max-block-size:100%;border:0;border-radius:10px;display:flex;flex-direction:column}.modal-content label,.modal-content legend{font-weight:700}.modal-content input[type=text]{font-size:calc(1rem*var(--scale-factor, 1));line-height:calc(1.5rem*var(--scale-factor, 1));inline-size:100%;box-sizing:border-box;border:2px solid rgba(0,0,0,0);border-radius:12px;padding:calc(.5rem*var(--scale-factor, 1));display:block}.modal-content:focus-visible{border:3px solid #cd2356;outline:none}.modal-content__header{display:flex;align-items:center;min-block-size:fit-content;padding:calc(1rem*var(--scale-factor, 1)) calc(.5rem*var(--scale-factor, 1)) calc(1rem*var(--scale-factor, 1)) calc(1rem*var(--scale-factor, 1))}.modal-content__header button{margin-inline-start:auto;block-size:fit-content}.modal-content__heading{font-size:calc(1.5rem*var(--scale-factor, 1));line-height:calc(2rem*var(--scale-factor, 1));margin-block:calc(.5rem*var(--scale-factor, 1));margin-inline:calc(.5rem*var(--scale-factor, 1)) 0}.modal-content__body{padding:calc(1.5rem*var(--scale-factor, 1));display:flex;flex-direction:column;row-gap:calc(.5rem*var(--scale-factor, 1));overflow-y:auto}.modal-content__subheading{font-size:calc(1rem*var(--scale-factor, 1));line-height:calc(1.5rem*var(--scale-factor, 1));margin:0;font-weight:700}.modal-content__text{margin:0;line-height:1.4}.modal-content__help-text{margin:calc(.25rem*var(--scale-factor, 1)) 0;font-weight:400}.modal-content__inputs{display:flex;flex-direction:column;gap:calc(2rem*var(--scale-factor, 1))}.modal-content__input-section{display:flex;flex-direction:column;gap:calc(.5rem*var(--scale-factor, 1))}.modal-content__buttons{padding:calc(1rem*var(--scale-factor, 1));display:flex;flex-wrap:wrap;flex-direction:row-reverse;gap:calc(1rem*var(--scale-factor, 1));justify-content:flex-start}@media screen and (max-width: 480px){.modal-content__buttons{display:flex;flex-direction:column}}.modal-content__buttons button,.modal-content__buttons a{margin:0}.modal-content__buttons button span,.modal-content__buttons a span{inline-size:100%}@media screen and (max-width: 480px){.modal-content__buttons button,.modal-content__buttons a{inline-size:100%}}.modal-content__links{text-align:center;margin-block:calc(.5rem*var(--scale-factor, 1)) calc(.25rem*var(--scale-factor, 1));margin-inline:0}.modal-content__links button{text-decoration:underline}.--dark .modal-overlay{background-color:rgba(0,0,0,.5)}.--dark .modal-overlay input{border:2px solid #fff;background-color:#33353d;color:inherit}.--dark .modal-overlay input:focus-visible{border:2px solid var(--rpf-input-active-border);outline:none}.--dark .modal-content{background-color:#33353d}.--dark .modal-content__header{border-block-end:1px solid #636674}.--dark .modal-content__help-text{color:#ccc}.--dark .modal-content__buttons{border-block-start:1px solid #636674}.--light .modal-overlay{background-color:rgba(67,69,76,.5)}.--light .modal-overlay input{border:2px solid #e3e4e8}.--light .modal-overlay input:focus-visible{border:2px solid var(--rpf-input-active-border);outline:none}.--light .modal-content{background-color:#fff}.--light .modal-content__header{border-block-end:1px solid #d5d7dc}.--light .modal-content__help-text{color:#4d575b}.--light .modal-content__buttons{border-block-start:1px solid #d5d7dc}.editor-input{display:flex;flex-direction:column;block-size:100%;inline-size:100%}.editor-input__view-only-banner{font-weight:700;padding:var(--space-0-5) var(--space-1);border-bottom:1px solid var(--editor-color-outline)}.--light .editor-input__view-only-banner{background-color:#e3e4e8}.--dark .editor-input__view-only-banner{background-color:#babcc5;color:#000}.editor{display:flex;flex-flow:column;flex:1;overflow:hidden}.editor .cm-editor{flex:1;overflow:hidden}.editor .cm-editor:focus{outline:none}.editor .cm-editor .cm-scroller{overflow:auto;overscroll-behavior-x:none}.editor .cm-editor .cm-scroller .cm-content{flex:1;padding-block-start:calc(.5rem*var(--scale-factor, 1));margin-inline-end:calc(.5rem*var(--scale-factor, 1))}.editor--small{font-size:calc(1rem*var(--scale-factor, 1));line-height:calc(1.5rem*var(--scale-factor, 1))}.editor--medium{font-size:calc(1.5rem*var(--scale-factor, 1));line-height:calc(2rem*var(--scale-factor, 1))}.editor--large{font-size:calc(2rem*var(--scale-factor, 1));line-height:calc(2.5rem*var(--scale-factor, 1))}.sidebar{display:flex;position:relative;scrollbar-width:none}.sidebar--mobile{inline-size:100%;overflow-y:hidden}.editor-logo{block-size:calc(2.5rem*var(--scale-factor, 1));inline-size:calc(2.5rem*var(--scale-factor, 1));padding:calc(.75rem*var(--scale-factor, 1))}.sidebar__bar{display:flex;flex-direction:column;justify-content:space-between;border-radius:8px;background-color:var(--sidebar-background)}.sidebar__bar--selected{border-radius:8px 0 0 8px;background-color:var(--sidebar-background-selected);border-inline-end:1px solid var(--sidebar-border)}.sidebar__bar-options--top,.sidebar__bar-options--bottom{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:calc(.5rem*var(--scale-factor, 1))}.sidebar__bar-option-wrapper{padding:calc(.75*.5rem*var(--scale-factor, 1));border:1px solid rgba(0,0,0,0)}.sidebar__bar-option-wrapper--selected{background-color:var(--sidebar-panel-background);border-radius:calc(.5rem*var(--scale-factor, 1)) 0 0 calc(.5rem*var(--scale-factor, 1));border-block:1px solid var(--sidebar-border);border-inline-start:1px solid var(--sidebar-border)}.sidebar__bar-option-wrapper--selected .sidebar__bar-option{border:2px solid var(--sidebar-option-selected-border)}.sidebar__bar-option{display:flex;align-items:center;justify-content:center;box-sizing:border-box;margin:0;border:2px solid rgba(0,0,0,0)}.sidebar__bar-option svg{margin:0}.sidebar__bar-option:hover{background-color:var(--sidebar-option-hover)}.sidebar__bar-option--selected{background-color:var(--sidebar-option-selected-background)}.sidebar__bar-option--selected svg{fill:var(--sidebar-option-selected-icon)}.sidebar__bar-option--selected:hover{background-color:var(--sidebar-option-selected-background-hover)}.sidebar__bar-close{border-block-start:1px solid var(--sidebar-border)}.sidebar__panel{display:flex;flex-direction:column;padding:calc(1rem*var(--scale-factor, 1));border-radius:0 8px 8px 0;inline-size:inherit;background:var(--sidebar-panel-background)}.sidebar__panel--with-footer{padding-block-end:calc(2rem*var(--scale-factor, 1))}.sidebar__panel-heading{margin:0;font-size:calc(1.5rem*var(--scale-factor, 1));line-height:calc(2rem*var(--scale-factor, 1))}.sidebar__panel-header{display:flex;flex-direction:column;gap:calc(1rem*var(--scale-factor, 1));padding-block-end:calc(1rem*var(--scale-factor, 1));border-block-end:1px solid var(--sidebar-border)}.sidebar__panel-content{flex:1;padding:calc(1rem*var(--scale-factor, 1)) 0;overflow-y:scroll;scrollbar-width:thin;overflow:auto}.sidebar__panel-footer{border-block-start:1px solid #d5d7dc;inset-block-end:0px;inline-size:100%;inline-size:-moz-available;inline-size:-webkit-stretch;inline-size:stretch;background-color:#fff;border-end-end-radius:8px}:root{--rpf-brand-black: hsla(60, 4%, 11%, 1);--rpf-brand-leaf: hsla(123, 43%, 48%, 1);--rpf-brand-raspberry: hsla(342, 71%, 47%, 1)}:root{--space-0-125: 0.0625rem;--space-0-25: 0.125rem;--space-0-5: 0.25rem;--space-1: 0.5rem;--space-1-5: 0.75rem;--space-2: 1rem;--space-3: 1.5rem;--space-4: 2rem;--space-5: 2.5rem;--space-6: 3rem;--space-7: 3.5rem;--space-8: 4rem;--space-9: 4.5rem;--space-10: 5rem}.rpf-squiggle,.rpf-squiggle-heading::after,.project-instructions .c-project-heading--task::after{--rpf-squiggle-mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xml%3Aspace%3D%22preserve%22%20style%3D%22fill-rule%3Aevenodd%3Bclip-rule%3Aevenodd%3Bstroke-linecap%3Around%3Bstroke-miterlimit%3A10%22%20viewBox%3D%220%200%2029%2013%22%20preserveAspectRatio%3D%22none%22%3E%3Cpath%20d%3D%22M3%2011c7%200%207-8%2014-8%208%200%208%208%2015%208%22%20style%3D%22fill%3Anone%3Bfill-rule%3Anonzero%3Bstroke%3Awhite%3Bstroke-width%3A4px%22%20transform%3D%22translate%28-3%29%22%2F%3E%3C%2Fsvg%3E");--rpf-squiggle-end-cap-l-mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xml%3Aspace%3D%22preserve%22%20style%3D%22fill-rule%3Aevenodd%3Bclip-rule%3Aevenodd%22%20viewBox%3D%220%200%202%2013%22%3E%3Ccircle%20cx%3D%220%22%20cy%3D%2211%22%20r%3D%222%22%20style%3D%22fill%3Awhite%22%2F%3E%3C%2Fsvg%3E");--rpf-squiggle-end-cap-r-mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xml%3Aspace%3D%22preserve%22%20style%3D%22fill-rule%3Aevenodd%3Bclip-rule%3Aevenodd%22%20viewBox%3D%220%200%202%2013%22%3E%3Ccircle%20cx%3D%222%22%20cy%3D%2211%22%20r%3D%222%22%20style%3D%22fill%3Awhite%22%2F%3E%3C%2Fsvg%3E");background-color:var(--rpf-squiggle-color, var(--rpf-brand-raspberry));border:2px solid rgba(0,0,0,0);border-block:none;height:13px;mask-clip:content-box,border-box,border-box;mask-image:var(--rpf-squiggle-mask),var(--rpf-squiggle-end-cap-l-mask),var(--rpf-squiggle-end-cap-r-mask);mask-origin:content-box,border-box,border-box;mask-position:top left,top right,top left;mask-repeat:round,no-repeat,no-repeat;mask-size:29px 13px,2px 13px,2px 13px;-webkit-mask-clip:content-box,border-box,border-box;-webkit-mask-image:var(--rpf-squiggle-mask),var(--rpf-squiggle-end-cap-l-mask),var(--rpf-squiggle-end-cap-r-mask);-webkit-mask-origin:content-box,border-box,border-box;-webkit-mask-position:top left,top right,top left;-webkit-mask-repeat:round,no-repeat,no-repeat;-webkit-mask-size:29px 13px,2px 13px,2px 13px}.rpf-squiggle-heading,.project-instructions .c-project-heading--task{display:inline-block;position:relative;padding-bottom:calc(13px + var(--space-1))}.rpf-squiggle-heading::after,.project-instructions .c-project-heading--task::after{content:"";display:block;position:absolute;left:0;right:0;margin-top:var(--space-1)}.project-instructions h2{font-size:calc(1.25rem*var(--scale-factor, 1));margin:0}.project-instructions strong{font-weight:700}.project-instructions img{max-inline-size:100%}.project-instructions table{border-collapse:collapse;margin-block-end:calc(1.5rem*var(--scale-factor, 1));inline-size:100%}.project-instructions table tr{border-block-end:1px solid #000}.project-instructions table td{padding:calc(.5rem*var(--scale-factor, 1)) calc(1.5rem*var(--scale-factor, 1))}.project-instructions pre{background-color:#33353d;border-radius:8px;padding:calc(.5rem*var(--scale-factor, 1));overflow:auto;margin:calc(1rem*var(--scale-factor, 1)) 0}.project-instructions code{color:#fff;background-color:#33353d;border-radius:8px;padding:calc(.75*.125rem*var(--scale-factor, 1)) calc(.5rem*var(--scale-factor, 1))}.project-instructions .c-project-code{margin:calc(1rem*var(--scale-factor, 1)) 0 calc(1.5rem*var(--scale-factor, 1)) 0;border-radius:8px;background-color:#33353d}.project-instructions .c-project-code pre{margin:0}.project-instructions .c-project-code code{padding-inline-start:0}.project-instructions .c-code-filename{font-family:monospace;margin:0;padding:calc(.5rem*var(--scale-factor, 1)) calc(1rem*var(--scale-factor, 1));color:#fff;background-color:#2a2b32;border-start-start-radius:8px;border-start-end-radius:8px;border-block-end:1px solid #4a4d59}.project-instructions .line-numbers{padding-inline-start:calc(3rem*var(--scale-factor, 1));padding-inline-end:calc(1rem*var(--scale-factor, 1))}.project-instructions .line-numbers-rows{border-color:#ccc}.project-instructions .line-numbers-rows span::before{padding-inline-end:calc(.5rem*var(--scale-factor, 1));color:#ccc}.project-instructions .line-highlight{margin-block-start:.5rem;background-color:#fff;mix-blend-mode:difference;min-inline-size:100%}.project-instructions .language-python .number,.project-instructions .language-python .boolean,.project-instructions .language-python .function{color:#9ee8ff}.project-instructions .language-python .keyword{color:#ecf}.project-instructions .language-python .string,.project-instructions .language-python .char{color:#94f9af}.project-instructions .language-python .comment{color:#ffca99}.project-instructions .language-python .keyword-print{color:#fff}.project-instructions .language-css{color:#9ee8ff}.project-instructions .language-css .comment{color:#ffca99}.project-instructions .language-css .selector{color:#ecf}.project-instructions .language-css .function{color:#ecf}.project-instructions .language-css .property,.project-instructions .language-css .punctuation{color:#fff}.project-instructions .language-html .tag{color:#ecf}.project-instructions .language-html .tag .punctuation,.project-instructions .language-html .tag .attr-name{color:#fff}.project-instructions .language-html .tag .attr-value{color:#94f9af}.project-instructions .language-html .tag .attr-value .punctuation{color:inherit}.project-instructions .language-html .tag .attr-value .attr-equals{color:#fff}.project-instructions .language-html .comment{color:#ffca99}.project-instructions .c-project-heading--task{--rpf-squiggle-color: var(--rpf-blue-800);background-color:#e5f4fd;padding:calc(1rem*var(--scale-factor, 1));inline-size:100%;box-sizing:border-box;border-start-start-radius:8px;border-start-end-radius:8px}.project-instructions .c-project-heading--task::after{margin-inline:calc(1rem*var(--scale-factor, 1));margin-block-start:calc(.25rem*var(--scale-factor, 1))}.project-instructions .c-project-task{background-color:#e5f4fd;padding:calc(1rem*var(--scale-factor, 1));display:flex;flex-direction:column;gap:calc(1rem*var(--scale-factor, 1));border-end-start-radius:8px;border-end-end-radius:8px;margin-block-end:calc(1.5rem*var(--scale-factor, 1))}.project-instructions .c-project-task p{margin:0}.project-instructions .c-project-task__checkbox{display:none}.project-instructions .c-project-callout{background-color:#e5f4fd;border-inline-start:4px solid #0090f0;padding:calc(.5rem*var(--scale-factor, 1)) calc(1rem*var(--scale-factor, 1));display:flex;flex-direction:column;gap:calc(.5rem*var(--scale-factor, 1));margin:calc(1.5rem*var(--scale-factor, 1)) 0}.project-instructions .c-project-callout h3{margin:0;padding-inline-start:calc(2rem*var(--scale-factor, 1));font-size:calc(1rem*var(--scale-factor, 1));background-repeat:no-repeat;background-position:inline-start calc(.5rem*var(--scale-factor, 1)) center}.project-instructions .c-project-callout p{margin:0}.project-instructions .c-project-callout--tip{background-color:#ecf7ed;border-inline-start:4px solid #46af4b}.project-instructions .c-project-callout--tip h3{background-image:url('+u+")}.project-instructions .c-project-callout--debug{background-color:#feeeed;border-inline-start:4px solid #f3514f}.project-instructions .c-project-callout--debug h3{background-image:url("+d+")}.project-instructions .c-project-output{display:flex;align-items:flex-start;align-self:stretch;padding:calc(1rem*var(--scale-factor, 1));border-radius:8px;border:1px solid var(--rpf-grey-150);margin-block-end:calc(1.5rem*var(--scale-factor, 1))}.project-instructions .c-project-output pre{padding:0;margin:0;inline-size:100%;background-color:#fff}.project-instructions .c-project-output code{background-color:#fff;color:#212121;padding:0;white-space:pre-wrap}.projects-panel-wrapper .sidebar__panel-content{overflow:visible}.projects-panel-wrapper .projects-panel__your-projects-button{display:flex;align-items:center;justify-content:center;inline-size:100%;box-sizing:border-box;margin:0}.projects-panel-wrapper .projects-panel__your-projects-button a{color:#000;text-decoration:none}.projects-panel-wrapper .projects-panel__download-button{inline-size:100%;margin:0;justify-content:center}.projects-panel-wrapper .project-name{block-size:auto;padding-inline-start:0}.projects-panel-wrapper .project-name__label{padding-inline-start:0}.projects-panel-wrapper .project-name__input{padding:0 calc(1rem*var(--scale-factor, 1))}.projects-panel-wrapper .projects-panel__item{margin-block-end:calc(1rem*var(--scale-factor, 1))}.projects-panel-wrapper .projects-panel__save,.projects-panel-wrapper .projects-panel__button{border-block-start:1px solid var(--sidebar-border);padding:calc(1rem*var(--scale-factor, 1)) 0;display:flex}.projects-panel-wrapper .projects-panel__save-button{inline-size:100%;margin-block-end:calc(1rem*var(--scale-factor, 1));justify-content:center}.projects-panel-wrapper .projects-panel__save-button .icon{display:none}.projects-panel-wrapper .projects-panel__save-button .content{margin:auto}.projects-panel-wrapper .projects-panel__save-button span{font-weight:bold}.projects-panel-wrapper .projects-panel__save-status{margin:auto;inline-size:fit-content}.--dark .projects-panel__save-button .content{color:#fff}.project-name{align-items:center;display:flex;block-size:100%;padding-inline-start:calc(.5rem*var(--scale-factor, 1))}.project-name .btn--primary{margin:0 calc(.5rem*var(--scale-factor, 1))}.project-name__title{font-size:calc(1.25rem*var(--scale-factor, 1));font-weight:700;margin-block:calc(1rem*var(--scale-factor, 1));margin-inline-start:calc(.5rem*var(--scale-factor, 1));margin-inline-end:calc(1rem*var(--scale-factor, 1));overflow:hidden;text-overflow:ellipsis;text-wrap:nowrap}.project-name__label{font-size:calc(1rem*var(--scale-factor, 1));line-height:calc(1.5rem*var(--scale-factor, 1));font-weight:700;margin-block-end:calc(.5rem*var(--scale-factor, 1));display:block}.project-name__input{font-size:calc(1rem*var(--scale-factor, 1));line-height:calc(1.5rem*var(--scale-factor, 1));padding:0 calc(1.5rem*var(--scale-factor, 1));block-size:calc(3rem*var(--scale-factor, 1));border-radius:calc(.5rem*var(--scale-factor, 1));border:none;color:inherit;background-color:inherit;text-overflow:ellipsis;inline-size:100%}.project-name__button{margin:calc(.5rem*var(--scale-factor, 1));inline-size:48px;block-size:48px}.project-name__button svg{block-size:calc(1.5rem*var(--scale-factor, 1));inline-size:calc(1.5rem*var(--scale-factor, 1));margin:0}.--dark .project-name__input{background-color:#4a4d59}.--dark .project-name__input:focus-visible{background-color:inherit;outline:2px solid #fff}.--light .project-name__input{background-color:#f1f2f3}.--light .project-name__input:focus-visible{background-color:inherit;outline:2px solid #212121}.project-info{align-items:inline-start;display:flex;flex-direction:column;padding:calc(1rem*var(--scale-factor, 1));border-radius:calc(.5rem*var(--scale-factor, 1));border:none;background-color:inherit}.project-info .btn--primary{margin:0 calc(.5rem*var(--scale-factor, 1))}.project-type__label{font-size:calc(1rem*var(--scale-factor, 1));line-height:calc(1.5rem*var(--scale-factor, 1));font-weight:700;margin-block-end:calc(.5rem*var(--scale-factor, 1));display:block}.project-type__text{font-size:calc(1rem*var(--scale-factor, 1));line-height:calc(1.5rem*var(--scale-factor, 1));color:inherit;text-overflow:ellipsis}.--light .project-info{background-color:#f1f2f3}.--dark .project-info{background-color:#4a4d59}.download-panel__login-section{border-block-end:1px solid #d5d7dc;margin-block-end:calc(1.5rem*var(--scale-factor, 1));padding-block-end:calc(1.5rem*var(--scale-factor, 1))}.download-panel__subtitle{font-size:calc(1rem*var(--scale-factor, 1));line-height:calc(1.5rem*var(--scale-factor, 1));font-weight:700;margin-block-end:calc(.5rem*var(--scale-factor, 1))}.download-panel__hint{margin:0;margin-block-end:calc(1rem*var(--scale-factor, 1))}.download-panel__button-container{display:flex;flex-direction:column;justify-content:center;align-self:stretch;gap:calc(1rem*var(--scale-factor, 1));align-items:stretch}.download-panel__button{justify-content:center;inline-size:100%;box-sizing:border-box;margin:0}.download-panel__download-section{margin-block-end:calc(1rem*var(--scale-factor, 1))}.settings-panel{display:flex;flex-direction:column;gap:calc(1.25rem*var(--scale-factor, 1));padding:calc(.25rem*var(--scale-factor, 1))}.settings-panel .select-buttons__legend{font-size:calc(1.25rem*var(--scale-factor, 1));line-height:calc(1.5rem*var(--scale-factor, 1));font-weight:700}.settings-panel .select-buttons__options{flex-direction:column}.select-buttons{border:none;margin:0;padding:0}.select-buttons__legend{padding:0;margin-block-end:calc(1rem*var(--scale-factor, 1))}.select-buttons__options{display:flex;inline-size:100%;gap:calc(1rem*var(--scale-factor, 1));flex-wrap:wrap}.select-buttons__option{flex:1}.select-buttons__button{opacity:0;position:absolute}.select-buttons__label{display:flex;align-items:center;padding:calc(.75rem*var(--scale-factor, 1));gap:calc(.75rem*var(--scale-factor, 1));border-radius:8px;position:relative;box-sizing:border-box;font-weight:700;cursor:pointer}.select-buttons__tick{display:flex;align-items:center;margin-inline-start:auto;visibility:hidden}.select-buttons__tick--selected{visibility:visible}.select-buttons__tick--selected svg rect{fill:var(--editor-color-theme)}.select-buttons__tick--selected svg path{fill:var(--rpf-select-buttons-tick-color)}.--light .select-buttons__label{border:2px solid #d5d7dc}.--light .select-buttons__label--selected{border:2px solid #212121}.--dark .select-buttons__label{border:2px solid #636674}.--dark .select-buttons__label--selected{border:2px solid #babcc5}.select-buttons__button:focus-visible+.select-buttons__label{outline:3px solid #cd2356}.info-panel{border-radius:calc(.5rem*var(--scale-factor, 1));padding:calc(1rem*var(--scale-factor, 1));margin-block-end:calc(.5rem*var(--scale-factor, 1))}.info-panel p{margin:0}.info-panel__links{display:flex;flex-direction:column}.info-panel__links a{font-size:calc(1rem*var(--scale-factor, 1));line-height:calc(1.5rem*var(--scale-factor, 1));font-weight:700;text-decoration:underline}.info-panel__link:last-of-type{margin-block-end:calc(1rem*var(--scale-factor, 1))}.--dark .info-panel{color:#fff;background-color:#4a4d59}.--dark .info-panel__links a{color:#fff}.--light .info-panel{color:#212121;background-color:#f1f2f3}.--light .info-panel__links a{color:#212121}.progress-bar{accent-color:var(--editor-color-theme);display:flex;align-items:center;justify-content:center;max-inline-size:300px;margin:auto}.progress-bar progress{flex:1;min-inline-size:0px}.progress-bar .btn-outer{padding:calc(.5rem*var(--scale-factor, 1))}.run-bar{display:flex;flex-direction:row;justify-content:flex-end;padding:calc(.5rem*var(--scale-factor, 1))}.--light .run-bar{border-block-start:1px solid #d5d7dc}.--dark .run-bar{border-block-start:1px solid #4a4d59}.runner-controls{display:flex;align-items:center;padding:0 calc(.5rem*var(--scale-factor, 1))}.pythonrunner-container{display:flex;flex-direction:column;flex:1;block-size:100%;inline-size:100%}.pythonrunner-console{padding:calc(.5rem*var(--scale-factor, 1)) calc(1.5rem*var(--scale-factor, 1));margin:0;white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;width:100%;word-wrap:break-word;overflow-y:auto}.pythonrunner-console--medium{font-size:calc(1.5rem*var(--scale-factor, 1));line-height:calc(2rem*var(--scale-factor, 1))}.pythonrunner-console--large{font-size:calc(2rem*var(--scale-factor, 1));line-height:calc(2.5rem*var(--scale-factor, 1))}.pythonrunner-console-output-line{padding-inline-end:5px}.pythonrunner-console-output-line.stderr{color:red}.pythonrunner-input{caret-color:inherit;color:#2467ec;display:block;line-height:20px;padding:2px 1px 2px 0}.pythonrunner-input:focus{outline:0}.pythonrunner-graphic{overflow:auto;position:relative}.visual-output{flex:1;display:flex;min-block-size:100%;inline-size:100%}#p5Sketch{display:flex;flex:1;position:absolute}.--light .visual-output{background:url(\"data:image/svg+xml,%3Csvg width='525' height='686' viewBox='0 0 525 686' fill='none' xmlns='http:%2F%2Fwww.w3.org/2000/svg' xmlns:xlink='http:%2F%2Fwww.w3.org/1999/xlink'%3E%3Crect width='526' height='686' transform='translate(0.5)' fill='url(%23pattern0)' fill-opacity='0.1'/%3E%3Cdefs%3E%3Cpattern id='pattern0' patternContentUnits='objectBoundingBox' width='0.0152091' height='0.0116618'%3E%3Cuse xlink:href='%23image0_214_29626' transform='scale(0.00190114 0.00145773)'/%3E%3C/pattern%3E%3Cimage id='image0_214_29626' width='8' height='8' xlink:href='data:image/png%3Bbase64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAAXNSR0IArs4c6QAAABdJREFUGBljYGBg+A/FQAoTMGEKDUcRAATwAgFGIXEOAAAAAElFTkSuQmCC'/%3E%3C/defs%3E%3C/svg%3E\")}.--dark .visual-output{background:url(\"data:image/svg+xml,%3Csvg width='527' height='684' viewBox='0 0 527 684' fill='none' xmlns='http:%2F%2Fwww.w3.org/2000/svg' xmlns:xlink='http:%2F%2Fwww.w3.org/1999/xlink'%3E%3Crect width='526' height='686' transform='translate(0.388916)' fill='url(%23pattern0)'/%3E%3Cdefs%3E%3Cpattern id='pattern0' patternContentUnits='objectBoundingBox' width='0.0152091' height='0.0116618'%3E%3Cuse xlink:href='%23image0_214_22403' transform='scale(0.00190114 0.00145773)'/%3E%3C/pattern%3E%3Cimage id='image0_214_22403' width='8' height='8' xlink:href='data:image/png%3Bbase64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAAXNSR0IArs4c6QAAABdJREFUGBljYGBg+A/FQAoTMGEKDUcRAATwAgFGIXEOAAAAAElFTkSuQmCC'/%3E%3C/defs%3E%3C/svg%3E%0A\")}.output-panel{display:flex;overflow:hidden}.output-panel--text{flex:3}.output-panel--visual{flex:7}.--light .output-panel--visual{border-block-end:5px solid #e3e4e8}.--dark .output-panel--visual{border-block-end:5px solid #4a4d59}.--light .output-panel--single,.--dark .output-panel--single{border-block-end:none}.htmlrunner-container{container-type:inline-size;display:flex;block-size:100%;inline-size:100%}.htmlrunner-link{margin-inline-start:auto}@container (max-width: 480px){.htmlrunner-link__text{display:none}}.htmlrunner-iframe{border:none;background-color:#fff;block-size:100%;inline-size:100%}.error-message{color:#7e0305;background-color:#fde2e1;padding:calc(.75rem*var(--scale-factor, 1)) calc(1.25rem*var(--scale-factor, 1))}.error-message__content{padding:0;margin:0;white-space:pre-wrap;word-break:break-word}.error-message--medium{font-size:calc(1.5rem*var(--scale-factor, 1));line-height:calc(2rem*var(--scale-factor, 1))}.error-message--large{font-size:calc(2rem*var(--scale-factor, 1));line-height:calc(2.5rem*var(--scale-factor, 1))}.output-view-toggle__button{block-size:100%}.--light .output-view-toggle{border-inline-start:1px solid #d5d7dc}.--dark .output-view-toggle{border-inline-start:1px solid #4a4d59}.sense-hat{inline-size:100%;flex:1;display:flex;flex-flow:column}.sense-hat-model{display:flex;flex-flow:column;max-block-size:50%;min-block-size:200px;flex:1;padding-block-end:calc(.5rem*var(--scale-factor, 1))}.sense-hat-model canvas{cursor:grab}.sense-hat-model-orientation{display:flex;align-items:center;justify-content:center;margin:0 calc(.5rem*var(--scale-factor, 1))}.sense-hat-model-orientation__spacing{flex:1}.sense-hat-model-orientation__values{flex:10;display:flex;margin:0 calc(.5rem*var(--scale-factor, 1))}.sense-hat-model-orientation__reading{font-size:calc(.75rem*var(--scale-factor, 1));line-height:calc(1rem*var(--scale-factor, 1));flex:1;text-transform:uppercase;font-weight:700;margin:0 calc(.5rem*var(--scale-factor, 1))}.sense-hat-model-orientation__reset-btn{flex:1;display:flex;margin-inline-start:auto}.sense-hat-model-orientation__reset-btn svg{padding:calc(.5rem*var(--scale-factor, 1));border-radius:5px;fill:#000}.sense-hat-model-orientation__reset-btn button{cursor:pointer}.sense-hat-controls{padding:calc(.5rem*var(--scale-factor, 1));display:flex;flex-flow:column}.sense-hat-controls-heading{font-size:calc(1rem*var(--scale-factor, 1));line-height:calc(1.5rem*var(--scale-factor, 1));font-weight:400;margin-block:0 calc(.5rem*var(--scale-factor, 1));margin-inline:0}.sense-hat-controls-panel{flex:1;display:flex;flex-flow:column}.sense-hat-controls-panel__control{display:flex;flex-flow:column;align-items:center;text-align:center;padding-block:calc(.25rem*var(--scale-factor, 1)) calc(.5rem*var(--scale-factor, 1));padding-inline:calc(.5rem*var(--scale-factor, 1));box-sizing:border-box;border-radius:5px;inline-size:32%;justify-content:space-between}.sense-hat-controls-panel__control-reading{inline-size:100%;border-radius:5px;margin-block-start:calc(.25rem*var(--scale-factor, 1));padding:calc(.25rem*var(--scale-factor, 1));box-sizing:border-box;display:flex;align-items:center;justify-content:center;font-family:source-code-pro,Menlo,Monaco,Consolas,\"Courier New\",monospace}.sense-hat-controls-panel__control-reading-timer{margin-block-start:0;padding:calc(.5rem*var(--scale-factor, 1)) 0;inline-size:100%}.sense-hat-controls-panel__control-toggle{border-radius:5px;inline-size:100%;flex:1;box-sizing:border-box;display:flex;align-items:center;justify-content:center}.sense-hat-controls-panel__control-toggle label{flex:1}.sense-hat-controls-panel__control-input{cursor:pointer;inline-size:85px;transform:rotate(270deg)}.sense-hat-controls-panel__control input[type=color]{border-radius:5px;flex:1;inline-size:100%;padding:calc(.25rem*var(--scale-factor, 1)) calc(1.5rem*var(--scale-factor, 1))}.sense-hat-controls-panel__control-name{font-variant:small-caps;text-transform:lowercase;margin:calc(.25rem*var(--scale-factor, 1)) 0}.sense-hat-controls-panel__control-value{margin-inline-start:calc(.25rem*var(--scale-factor, 1))}.sense-hat-controls-panel__control-last{margin-block-start:calc(.5rem*var(--scale-factor, 1));flex-flow:row;inline-size:100%;align-items:inherit;justify-content:space-between}.sense-hat-controls-panel__sliders{display:flex;justify-content:space-between}.sense-hat-controls-panel__sliders .sense-hat-controls-panel__control{min-block-size:175px}.sense-hat-controls-panel__container{display:flex;flex-flow:column;align-items:center;inline-size:32%}.sense-hat-controls-panel__container .sense-hat-controls-panel__control-name,.sense-hat-controls-panel__container input{cursor:pointer}.sense-hat-controls-panel__container-timer .sense-hat-controls-panel__control-name{cursor:default}.--dark .sense-hat{background-color:#2a2b32}.--dark .sense-hat-controls{border-block-start:7px solid #17181c}.--dark .sense-hat-controls-panel__control{box-shadow:inset 0 0 calc(3rem*var(--scale-factor, 1)) #33353d;background-color:#33353d}.--dark .sense-hat-controls-panel__control-reading{background-color:#2a2b32;border:1px solid #636674}.--dark .sense-hat-controls-panel__control input[type=color]{background-color:#2a2b32;border:1px solid #636674}.--dark .sense-hat-controls-panel__control-toggle{background-color:#2a2b32;border:1px solid #636674}.--dark .sense-hat-controls-panel__control-toggle .react-toggle-thumb{border:1px solid #fff;background-color:#fff}.--dark .sense-hat-model{background-color:#002b3f}.--dark .sense-hat-model-orientation{background-color:#002b3f;color:#fff}.--dark .sense-hat-model-orientation__reset-btn svg{background-color:#fff}.--light .sense-hat{background-color:#fff}.--light .sense-hat-controls{border-block-start:5px solid #e3e4e8}.--light .sense-hat-controls-panel__control{box-shadow:inset 0 0 calc(3rem*var(--scale-factor, 1)) #e3e4e8;background-color:#f1f2f3}.--light .sense-hat-controls-panel__control-reading{background-color:#e3e4e8;border:2px solid #babcc5}.--light .sense-hat-controls-panel__control input[type=color]{background-color:#fff;border:2px solid #babcc5}.--light .sense-hat-controls-panel__control-toggle{background-color:#fff;border:2px solid #babcc5}.--light .sense-hat-controls-panel__control-toggle .react-toggle-thumb{border:1px solid #e3e4e8;background-color:#e3e4e8}.--light .sense-hat-model{background-color:#002b3f}.--light .sense-hat-model-orientation{background-color:#002b3f;color:#fff}.--light .sense-hat-model-orientation__reset-btn svg{background-color:#fff}.mobile-project-bar{background-color:#fff;border-block-start:1px solid #d5d7dc;display:flex;block-size:25px;justify-content:space-between;padding:0 calc(.5rem*var(--scale-factor, 1))}.mobile-project-bar__name{font-size:calc(.75rem*var(--scale-factor, 1));line-height:calc(1rem*var(--scale-factor, 1));font-weight:700;margin:auto 0}.--dark .mobile-project-bar{background-color:#2a2b32;border-block-start:1px solid #4a4d59}.--dark .mobile-project-bar__name{color:#fff}.--light .mobile-project-bar{background-color:#fff;border-block-start:1px solid #d5d7dc}.--light .mobile-project-bar__name{color:#4d575b}.btn{align-items:center;border-radius:calc(.5rem*var(--scale-factor, 1));border:3px solid rgba(0,0,0,0);box-sizing:border-box;color:inherit;cursor:pointer;display:inline-flex;font-family:sans-serif;font-size:inherit;font-weight:700;gap:calc(.5rem*var(--scale-factor, 1));justify-content:center;min-block-size:44px;min-inline-size:44px;padding:10px;position:relative;text-align:center;text-decoration:none}.btn:disabled{background-color:#4a4d59;color:#fff;cursor:default}.btn:focus-visible{border:3px solid #cd2356;outline:none}.btn--primary{background-color:var(--rpf-button-primary-background-color);border-radius:calc(.5rem*var(--scale-factor, 1));color:var(--rpf-button-primary-text-color)}.btn--primary svg{fill:var(--rpf-button-primary-text-color)}.btn--primary:active,.btn-outer:active .btn--primary{background-color:var(--rpf-button-primary-background-color-active)}.btn--primary:focus-visible,.btn-outer:focus-visible .btn--primary{background-color:var(--rpf-button-primary-background-color-focus)}.btn--primary:hover,.btn-outer:hover .btn--primary{background-color:var(--rpf-button-primary-background-color-hover);border-radius:calc(.5rem*var(--scale-factor, 1))}.btn--primary:disabled{background-color:var(--rpf-button-primary-background-color-disabled);color:var(--rpf-button-primary-color-disabled)}.btn--primary:disabled svg{fill:var(--rpf-button-primary-color-disabled)}.btn--primary:disabled:hover,.btn-outer:hover .btn--primary:disabled{background-color:var(--rpf-button-primary-background-color-disabled)}.btn--secondary{background-color:inherit;color:var(--rpf-button-secondary-text-color);border:2px solid var(--rpf-button-primary-background-color)}.btn--secondary svg{fill:var(--rpf-button-secondary-text-color)}.btn--secondary:active,.btn-outer:active .btn--secondary{background-color:inherit}.btn--secondary:focus-visible,.btn-outer:focus-visible .btn--secondary{background-color:inherit}.btn--secondary:hover,.btn-outer:hover .btn--secondary{background-color:inherit}.btn--secondary:disabled{background-color:var(--rpf-button-secondary-background-color-disabled);color:var(--rpf-button-secondary-background-color-active)}.btn--secondary:disabled svg{fill:var(--rpf-button-secondary-background-color-active)}.btn--secondary:disabled:hover,.btn-outer:hover .btn--secondary:disabled{background-color:var(--rpf-button-secondary-background-color-disabled)}.btn--secondary:active{border:2px solid var(--rpf-button-secondary-background-color-active)}.btn--secondary:hover{background-color:var(--rpf-button-secondary-background-color-hover);color:var(--rpf-button-secondary-text-color-hover);border-color:var(--rpf-button-secondary-border-color-hover) !important}.btn--secondary:hover svg{fill:var(--rpf-button-secondary-text-color-hover)}.btn--secondary:focus-visible{outline:3px solid var(--rpf-button-secondary-background-color-focus)}.btn--tertiary{background-color:inherit;color:inherit}.btn--tertiary:active,.btn-outer:active .btn--tertiary{background-color:inherit}.btn--tertiary:focus-visible,.btn-outer:focus-visible .btn--tertiary{background-color:inherit}.btn--tertiary:hover,.btn-outer:hover .btn--tertiary{background-color:inherit}.btn--tertiary:disabled{background-color:inherit;color:#4a4d59}.btn--tertiary:disabled svg{fill:#4a4d59}.btn--tertiary:disabled:hover,.btn-outer:hover .btn--tertiary:disabled{background-color:inherit}.btn--tertiary:active{color:#0e857a}.btn--tertiary:active svg{fill:#0e857a}.btn--tertiary:hover{color:var(--rpf-button-tertiary-text-color-hover)}.btn--tertiary:hover svg{fill:var(--rpf-button-tertiary-text-color-hover)}.btn--danger{background-color:#9e0a0a;color:#fff}.btn--danger svg{fill:#fff}.btn--danger:active,.btn-outer:active .btn--danger{background-color:#9e0a0a}.btn--danger:focus-visible,.btn-outer:focus-visible .btn--danger{background-color:#9e0a0a}.btn--danger:hover,.btn-outer:hover .btn--danger{background-color:#86151e}.btn--danger:disabled{background-color:#9e0a0a;color:#fff}.btn--danger:disabled svg{fill:#fff}.btn--danger:disabled:hover,.btn-outer:hover .btn--danger:disabled{background-color:#9e0a0a}.btn--danger:focus-visible{background-clip:padding-box;border:2px solid rgba(0,0,0,0);outline:3px solid #cd2356}.btn--small{min-block-size:unset;min-inline-size:unset;padding:calc(.25rem*var(--scale-factor, 1))}.btn--svg-only svg{margin:0}.btn-outer{background:rgba(0,0,0,0);border-radius:calc(.5rem*var(--scale-factor, 1));cursor:pointer;padding:calc(.5rem*var(--scale-factor, 1)) 0;display:flex;align-items:center;justify-content:center}.btn-outer:focus-visible{outline:none}.btn-outer:focus-visible .btn{border:3px solid #cd2356}.btn-outer:has(.btn:disabled){cursor:default}.rpf-button--primary * svg{fill:var(--rpf-button-primary-text-color)}.rpf-button--tertiary * svg{fill:var(--rpf-button-secondary-text-color) !important}.rpf-button{flex-direction:row-reverse}.rpf-button--fit{inline-size:fit-content}.rpf-button.rpf-button--fill{justify-content:center;inline-size:100%;box-sizing:border-box}.rpf-button--secondary{justify-content:center;align-items:center}.rpf-button--secondary * svg{fill:#4d575b}.--dark * .rpf-button--secondary{border-color:#89ddd5}.--dark * .rpf-button--secondary span{color:#fff}.--dark * .rpf-button--secondary svg{fill:#fff}.--dark * .rpf-button--secondary::before{background-color:#33353d}.--dark * .rpf-button--secondary:hover{border-color:#89ddd5}.--dark * .rpf-button--secondary:hover::before{background-color:rgba(255,255,255,.1)}.--dark * .rpf-button--secondary:active::before{background-color:rgba(255,255,255,.15)}.--dark * .rpf-button--secondary:disabled{border-color:#d5d7dc;background-color:inherit}.--dark * .rpf-button--secondary:disabled::before{background-color:inherit}.--dark * .rpf-button--secondary:disabled span{color:#d5d7dc}.--dark * .rpf-button--tertiary{color:#fff;border:none}.--dark * .rpf-button--tertiary:hover::before{background-color:rgba(255,255,255,.1)}.--dark * .rpf-button--tertiary:active::before{background-color:rgba(255,255,255,.15)}.--dark * .rpf-button--tertiary:disabled{background-color:inherit}.--dark * .rpf-button--tertiary:disabled::before{background-color:inherit}.--dark * .rpf-button--tertiary:disabled span{color:#d5d7dc}.--light * .rpf-button--secondary span{color:#212121}.--light * .rpf-button--secondary::before{background-color:#fff}.--light * .rpf-button--secondary:hover{border-color:#89ddd5}.--light * .rpf-button--secondary:hover::before{background-color:#e7f8f7}.--light * .rpf-button--secondary:active::before{background-color:#dcf5f3}.--light * .rpf-button--secondary:disabled{border-color:#d5d7dc;background-color:inherit}.--light * .rpf-button--secondary:disabled::before{background-color:inherit}.--light * .rpf-button--secondary:disabled span{color:#d5d7dc}.--light * .rpf-button--tertiary{color:#212121;border:none}.--light * .rpf-button--tertiary::before{background-color:#fff}.--light * .rpf-button--tertiary:hover::before{background-color:#e7f8f7}.--light * .rpf-button--tertiary:active::before{background-color:#dcf5f3}.--light * .rpf-button--tertiary:disabled{background-color:inherit}.--light * .rpf-button--tertiary:disabled::before{background-color:inherit}.--light * .rpf-button--tertiary:disabled span{color:#d5d7dc}.rpf-button__icon{display:flex}.save-status{align-items:center;display:flex;gap:calc(.25rem*var(--scale-factor, 1));justify-content:flex-end;margin-block:0;padding-inline:calc(1rem*var(--scale-factor, 1))}.save-status--mobile{margin:unset}.save-status--mobile .save-status__text{font-size:calc(1rem*var(--scale-factor, 1));line-height:calc(1.5rem*var(--scale-factor, 1))}.save-status__icon{display:flex}.context-menu__drop{padding:calc(.5rem*var(--scale-factor, 1)) calc(1rem*var(--scale-factor, 1));margin:0}.context-menu__drop svg{margin:0}.context-menu__drop :focus-visible{border:none}.context-menu{list-style-type:none;padding:0;margin-inline:calc(.5rem*var(--scale-factor, 1)) 0;margin-block:0;border-radius:5px;display:flex;flex-direction:column}.context-menu .context-menu__item{margin:0;background-color:inherit;color:var(--rpf-button-secondary-color);padding:calc(.5rem*var(--scale-factor, 1));text-align:start;white-space:nowrap;overflow-x:visible;box-sizing:border-box;inline-size:100%;justify-content:start}.context-menu :focus-visible{border:none}.context-menu svg{inline-size:calc(1.5rem*var(--scale-factor, 1));block-size:auto}.context-menu--dark{background-color:#000;color:#fff;border:1px solid rgba(0,0,0,0)}.context-menu--dark svg{fill:#fff}.context-menu--dark .btn:hover{background-color:#33353d}.context-menu--dark .btn:disabled{color:#4a4d59}.context-menu--light{background-color:#fff;color:#212121;border:1px solid #d5d7dc}.context-menu--light svg{fill:#000}.context-menu--light .btn:hover{background-color:#e3e4e8}.context-menu--light .btn:disabled{color:#babcc5}.context-menu--dark .btn:disabled svg{fill:#4a4d59}.context-menu--light .btn:disabled svg{fill:#e3e4e8}.context-menu .btn:disabled:hover{background-color:inherit}.files-list-item-wrapper{display:flex;position:relative}.files-list-item{inline-size:100%;display:flex;flex-direction:row !important;justify-content:flex-start;position:relative;align-items:center;border-radius:8px;border:3px solid rgba(0,0,0,0);box-sizing:border-box;white-space:nowrap;font-weight:400;min-block-size:44px;padding:calc(.5rem*var(--scale-factor, 1)) calc(2.5rem*var(--scale-factor, 1)) calc(.5rem*var(--scale-factor, 1)) calc(.5rem*var(--scale-factor, 1));margin:0}.files-list-item span{font-weight:700;overflow-x:hidden;text-overflow:ellipsis}.files-list-item__menu{border-radius:8px;position:absolute;inset-inline-end:0}.files-list-item:hover,.files-list-item__menu:hover{background-color:var(--rpf-files-list-item-hover)}.files-list-item:hover::before,.files-list-item__menu:hover::before{background-color:rgba(0,0,0,0) !important}.files-list-item:active,.files-list-item__menu:active{background-color:var(--rpf-files-list-item-active)}.embedded-viewer{display:flex;flex:1 1 auto;block-size:auto;overflow:hidden}.embedded-viewer .proj-runner-container{display:flex;flex:1 1 auto;flex-direction:column;border-radius:10px;block-size:auto;inline-size:100%}.embedded-viewer .pythonrunner-container{border-radius:10px;flex:1;overflow:hidden;box-sizing:border-box}.embedded-viewer .visual-output{box-sizing:border-box;overflow:auto}#app.--light .embedded-viewer{background-color:#fff}:host{font-size:1.6rem}#wc{background:var(--editor-secondary-theme, transparent);font-family:\"Roboto\",-apple-system,BlinkMacSystemFont,\"Segoe UI\",\"Oxygen\",\"Ubuntu\",\"Cantarell\",\"Fira Sans\",\"Droid Sans\",\"Helvetica Neue\",sans-serif;font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:flex;flex-flow:column;block-size:100%}#wc .proj{min-block-size:100%}code{font-family:source-code-pro,Menlo,Monaco,Consolas,\"Courier New\",monospace}button{all:initial;font-size:inherit}svg{min-inline-size:fit-content}button:focus-visible{outline:2px solid #000}.select-buttons__tick--selected svg path{fill:var(--editor-color-layer-2)}.--light{--editor-color-layer-1: #e7f8f7;--editor-color-layer-2: #ffffff;--editor-color-layer-3: #ffffff;--editor-color-outline: #d5d7dc;--editor-color-theme: #232d9a;--editor-color-theme-secondary: #0e857a;--editor-color-theme-tertiary: #e7f8f7;--editor-color-text: #212121;--editor-color-text-secondary: #4d575b}.--dark{--editor-color-layer-1: #23242a;--editor-color-layer-2: #ffffff;--editor-color-layer-3: #33353d;--editor-color-outline: #4a4d59;--editor-color-theme: #232d9a;--editor-color-theme-secondary: #89ddd5;--editor-color-theme-tertiary: #0e857a;--editor-color-text: #ffffff;--editor-color-text-secondary: #cccccc;--rpf-button-secondary-text-color: #ffffff}.--dark .rpf-button--secondary{border-color:#232d9a}",""]),t.a=c},function(e,t,n){"use strict";var r=n(2),i=n.n(r)()(!1);i.push([e.i,'.react-tabs{-webkit-tap-highlight-color:transparent}.react-tabs__tab-list{border-bottom:1px solid #aaa;margin:0 0 10px;padding:0}.react-tabs__tab{display:inline-block;border:1px solid transparent;border-bottom:none;bottom:-1px;position:relative;list-style:none;padding:6px 12px;cursor:pointer}.react-tabs__tab--selected{background:#fff;border-color:#aaa;color:black;border-radius:5px 5px 0 0}.react-tabs__tab--disabled{color:GrayText;cursor:default}.react-tabs__tab:focus{box-shadow:0 0 5px hsl(208, 99%, 50%);border-color:hsl(208, 99%, 50%);outline:none}.react-tabs__tab:focus:after{content:"";position:absolute;height:5px;left:-4px;right:-4px;bottom:-5px;background:#fff}.react-tabs__tab-panel{display:none}.react-tabs__tab-panel--selected{display:block}.react-toggle{touch-action:pan-x;display:inline-block;position:relative;cursor:pointer;background-color:transparent;border:0;padding:0;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);-webkit-tap-highlight-color:transparent}.react-toggle-screenreader-only{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.react-toggle--disabled{cursor:not-allowed;opacity:.5;-webkit-transition:opacity .25s;transition:opacity .25s}.react-toggle-track{width:50px;height:24px;padding:0;border-radius:30px;background-color:#4d4d4d;-webkit-transition:all .2s ease;-moz-transition:all .2s ease;transition:all .2s ease}.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track{background-color:#000}.react-toggle--checked .react-toggle-track{background-color:#19ab27}.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track{background-color:#128d15}.react-toggle-track-check{position:absolute;width:14px;height:10px;top:0px;bottom:0px;margin-top:auto;margin-bottom:auto;line-height:0;left:8px;opacity:0;-webkit-transition:opacity .25s ease;-moz-transition:opacity .25s ease;transition:opacity .25s ease}.react-toggle--checked .react-toggle-track-check{opacity:1;-webkit-transition:opacity .25s ease;-moz-transition:opacity .25s ease;transition:opacity .25s ease}.react-toggle-track-x{position:absolute;width:10px;height:10px;top:0px;bottom:0px;margin-top:auto;margin-bottom:auto;line-height:0;right:10px;opacity:1;-webkit-transition:opacity .25s ease;-moz-transition:opacity .25s ease;transition:opacity .25s ease}.react-toggle--checked .react-toggle-track-x{opacity:0}.react-toggle-thumb{transition:all .5s cubic-bezier(0.23, 1, 0.32, 1) 0ms;position:absolute;top:1px;left:1px;width:22px;height:22px;border:1px solid #4d4d4d;border-radius:50%;background-color:#fafafa;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:all .25s ease;-moz-transition:all .25s ease;transition:all .25s ease}.react-toggle--checked .react-toggle-thumb{left:27px;border-color:#19ab27}.react-toggle--focus .react-toggle-thumb{-webkit-box-shadow:0px 0px 3px 2px #0099e0;-moz-box-shadow:0px 0px 3px 2px #0099e0;box-shadow:0px 0px 2px 3px #0099e0}.react-toggle:active:not(.react-toggle--disabled) .react-toggle-thumb{-webkit-box-shadow:0px 0px 5px 5px #0099e0;-moz-box-shadow:0px 0px 5px 5px #0099e0;box-shadow:0px 0px 5px 5px #0099e0}pre[class*=language-].line-numbers{position:relative;padding-left:3.8em;counter-reset:linenumber}pre[class*=language-].line-numbers>code{position:relative;white-space:inherit}.line-numbers .line-numbers-rows{position:absolute;pointer-events:none;top:0;font-size:100%;left:-3.8em;width:3em;letter-spacing:-1px;border-right:1px solid #999;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.line-numbers-rows>span{display:block;counter-increment:linenumber}.line-numbers-rows>span:before{content:counter(linenumber);color:#999;display:block;padding-right:.8em;text-align:right}pre[data-line]{position:relative;padding:1em 0 1em 3em}.line-highlight{position:absolute;left:0;right:0;padding:inherit 0;margin-top:1em;background:hsla(24, 20%, 50%, 0.08);background:linear-gradient(to right, hsla(24, 20%, 50%, 0.1) 70%, hsla(24, 20%, 50%, 0));pointer-events:none;line-height:inherit;white-space:pre}@media print{.line-highlight{-webkit-print-color-adjust:exact;color-adjust:exact}}.line-highlight:before,.line-highlight[data-end]:after{content:attr(data-start);position:absolute;top:.4em;left:.6em;min-width:1em;padding:0 .5em;background-color:hsla(24, 20%, 50%, 0.4);color:hsl(24, 20%, 95%);font:bold 65%/1.5 sans-serif;text-align:center;vertical-align:.3em;border-radius:999px;text-shadow:none;box-shadow:0 1px white}.line-highlight[data-end]:after{content:attr(data-end);top:auto;bottom:.4em}.line-numbers .line-highlight:before,.line-numbers .line-highlight:after{content:none}pre[id].linkable-line-numbers span.line-numbers-rows{pointer-events:all}pre[id].linkable-line-numbers span.line-numbers-rows>span:before{cursor:pointer}pre[id].linkable-line-numbers span.line-numbers-rows>span:hover:before{background-color:rgba(128, 128, 128, 0.2)}',""]),t.a=i},function(e,t,n){"use strict";var r=n(2),i=n.n(r)()(!1);i.push([e.i,':root{--rpf-white: #ffffff}:export{grey-rpi-grey-15:#d5d7dc;grey-rpi-grey-40:#9497a4;grey-rpi-grey-5:#f1f2f3;grey-rpi-grey-70:#4a4d59;grey-rpf-white:#fff}html,body{margin:0}:host{font-size:16px}body{font-family:"Roboto",-apple-system,BlinkMacSystemFont,"Segoe UI","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,"Courier New",monospace}#app{min-block-size:100dvh}.--light,#wc.--light{--editor-color-layer-1: #e7f8f7;--editor-color-layer-2: #000000;--editor-color-layer-3: #ffffff;--editor-color-outline: #d5d7dc;--editor-color-theme: #14bdac;--editor-color-theme-secondary: #0e857a;--editor-color-theme-tertiary: #e7f8f7;--editor-color-text: #212121;--editor-color-text-secondary: #4d575b;--rpf-files-list-item-active: #dcf5f3;--rpf-files-list-item-hover: #e7f8f7;--rpf-tab-button-hover: var(--rpf-grey-100);--rpf-tab-button-background: inherit;--rpf-tab-border-bottom-selected: var(--rpf-teal-900);--sidebar-border: var(--rpf-grey-150);--sidebar-background: var(--rpf-white);--sidebar-background-selected: var(--rpf-off-white);--sidebar-panel-background: var(--rpf-white);--sidebar-option-hover: var(--rpf-grey-100);--sidebar-option-selected-icon: var(--rpf-black);--sidebar-option-selected-border: var(--editor-color-theme);--sidebar-option-selected-background: var(--editor-color-theme-tertiary);--sidebar-option-selected-background-hover: var(--rpf-teal-200)}.--dark,#wc.--dark{--editor-color-layer-1: #23242a;--editor-color-layer-2: #2a2b32;--editor-color-layer-3: #33353d;--editor-color-outline: #4a4d59;--editor-color-theme: #89ddd5;--editor-color-theme-secondary: #89ddd5;--editor-color-theme-tertiary: #0e857a;--editor-color-text: #ffffff;--editor-color-text-secondary: #cccccc;--rpf-files-list-item-active: hsla(0, 0%, 100%, 0.15);--rpf-files-list-item-hover: hsla(0, 0%, 100%, 0.1);--rpf-tab-button-hover: var(--rpf-grey-900);--rpf-tab-button-background: var(--rpf-grey-800);--rpf-tab-border-bottom-selected: var(--rpf-teal-800);--sidebar-border: var(--rpf-grey-600);--sidebar-background: var(--rpf-grey-800);--sidebar-background-selected: var(--rpf-grey-800);--sidebar-panel-background: var(--rpf-grey-700);--sidebar-option-hover: var(--rpf-grey-600);--sidebar-option-selected-icon: var(--rpf-white);--sidebar-option-selected-border: var(--editor-color-theme);--sidebar-option-selected-background: var(--editor-color-theme-tertiary);--sidebar-option-selected-background-hover: var(--rpf-teal-800)}.--dark .btn,.--dark .rpf-button,#wc.--dark .btn,#wc.--dark .rpf-button{--rpf-button-primary-background-color: var(--rpf-teal-400);--rpf-button-primary-background-color-focus: var(--rpf-teal-400);--rpf-button-primary-background-color-active: var(--rpf-teal-200);--rpf-button-primary-background-color-disabled: var(--rpf-grey-200);--rpf-button-primary-color-disabled: var(--rpf-grey-700);--rpf-button-primary-color-disabled-focus: var(--rpf-teal-400);--rpf-button-primary-background-color-hover: var(--rpf-teal-600);--rpf-button-secondary-background-color: var(--rpf-grey-800);--rpf-button-secondary-background-color-active: var(--rpf-teal-200);--rpf-button-secondary-color-disabled-background: var(--rpf-grey-700);--rpf-button-secondary-background-color-hover: var(--rpf-grey-600);--rpf-button-secondary-border-color-hover: var(--rpf-teal-400);--rpf-button-secondary-color-disabled: var(--rpf-grey-100);--rpf-button-secondary-color: var(--rpf-white);--rpf-button-secondary-text-color: var(--rpf-white);--rpf-button-tertiary-text-color-hover: var(--rpf-grey-200)}.--dark .rpf-button--secondary,#wc.--dark .rpf-button--secondary{border-color:var(--rpf-teal-400)}.btn,.rpf-button{--rpf-button-primary-background-color: var(--rpf-teal-800);--rpf-button-primary-background-color-focus: var(--rpf-teal-800);--rpf-button-primary-background-color-hover: var(--rpf-teal-900);--rpf-button-primary-background-color-active: var(--rpf-teal-600);--rpf-button-primary-background-color-disabled: var(--rpf-teal-200);--rpf-button-primary-color-disabled: var(--rpf-grey-600);--rpf-button-primary-text-color: var(--rpf-black);--rpf-button-secondary-background-color: var(--rpf-teal-800);--rpf-button-secondary-background-color-focus: $rpf-brand-raspberry;--rpf-button-secondary-background-color-hover: var(--rpf-teal-100);--rpf-button-secondary-border-color-hover: var(--rpf-teal-900);--rpf-button-secondary-background-color-active: var(--rpf-teal-900);--rpf-button-secondary-background-color-disabled: var(--rpf-grey-50);--rpf-button-secondary-text-color: var(--rpf-black);--rpf-button-tertiary-text-color-hover: var(--rpf-grey-600)}.btn .rpf-button--secondary,.rpf-button .rpf-button--secondary{border-color:var(--rpf-teal-800)}.select-buttons__tick--selected{--rpf-select-buttons-tick-color: var(--rpf-black)}.modal-overlay{--rpf-input-active-border: var(--editor-color-theme) }',""]),t.a=i},function(e,t,n){var r;r=function(e){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={exports:{},id:r,loaded:!1};return e[r].call(i.exports,i,i.exports,n),i.loaded=!0,i.exports}return n.m=e,n.c=t,n.p="",n(0)}([function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t1)throw new Error("Multiple style objects as direct descedents of a Style component are not supported ("+e.length+" style objects detected): \n\n"+e[0]);return e[0]}return"string"!=typeof n.props.children||(0,s.isValidElement)(n.props.children)?null:n.props.children},n.getRootElement=function(){if(n.props.children instanceof Array){var e=n.props.children.filter((function(e){return(0,s.isValidElement)(e)}));return e[0]}return(0,s.isValidElement)(n.props.children)?n.props.children:null},n.getRootSelectors=function(e){var t=[];return e.props.id&&t.push("#"+e.props.id),e.props.className&&e.props.className.trim().split(/\s+/g).forEach((function(e){return t.push(e)})),t.length||"function"==typeof e.type||t.push(e.type),t},n.processCSSText=function(e,t,r){return e.replace(/\s*\/\/(?![^(]*\)).*|\s*\/\*.*\*\//g,"").replace(/\s\s+/g," ").split("}").map((function(e){var i=/.*:.*;/g,o=/.*:.*(;|$|\s+)/g,s=/\s*@/g,a=/\s*(([0-9][0-9]?|100)\s*%)|\s*(to|from)\s*$/g;return e.split("{").map((function(e,l,c){if(!e.trim().length)return"";var u=c.length-1===l&&e.match(o);if(e.match(i)||u)return n.escapeTextContentForBrowser(e);var d=e;return t&&!/:target/gi.test(d)?d.match(s)||d.match(a)?d:n.scopeSelector(t,d,r):d})).join("{\n")})).join("}\n")},n.escaper=function(e){return{">":">","<":"<"}[e]},n.escapeTextContentForBrowser=function(e){return(""+e).replace(/[><]/g,n.escaper)},n.scopeSelector=function(e,t,n){for(var r=[],i=t.split(/,(?![^(|[]*\)|\])/g),o=0;o1&&void 0!==arguments[1]?arguments[1]:0;if(!(t>32||n.pepper.length>1e4))for(var r in e){var o=/^[_$]|type|ref|^value$/.test(r);e[r]&&"object"===i(e[r])&&!o?n.traverseObjectToGeneratePepper(e[r],t+1):e[r]&&!o&&"function"!=typeof e[r]&&(n.pepper+=e[r])}},n.isVoidElement=function(e){return["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"].some((function(t){return e===t}))},n.addCSSTextToHead=function(e){if(e.length){var t=(0,l.default)(e);window._reactiveStyle.cssTextHashesAddedToHead.some((function(e){return e===t}))||(window._reactiveStyle.el.innerHTML+=e,window._reactiveStyle.cssTextHashesAddedToHead.push(t))}},n.createStyleElement=function(e,t){return a.default.createElement("style",{type:"text/css",key:t,ref:function(e){return n._style=e},dangerouslySetInnerHTML:{__html:e||""}})},n.getNewChildrenForCloneElement=function(e,t,r){return[n.createStyleElement(e,r)].concat(t.props.children)},n.scopeClassNameCache={},n.scopedCSSTextCache={},n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),o(t,[{key:"render",value:function(){if(!this.props.children)return this.createStyleElement();var e=this.getStyleString(),t=this.getRootElement();if(!e&&t)return t.props.children;if(e&&!t)return this.createStyleElement(this.processCSSText(e),this.getScopeClassName(e,t));var n=t.props.className?t.props.className+" ":"",i=void 0,o=void 0,a=n+(t.props.id?t.props.id:"")+e;return this.scopeClassNameCache[a]?(i=this.scopeClassNameCache[a],o=this.scopedCSSTextCache[i]):(i=this.getScopeClassName(e,t),o=this.processCSSText(e,"."+i,this.getRootSelectors(t)),this.scopeClassNameCache[a]=i,this.scopedCSSTextCache[i]=o),(0,s.cloneElement)(t,r({},t.props,{className:""+n+i}),this.getNewChildrenForCloneElement(o,t,i))}}]),t}(s.Component);u.it=function(e,t){return a.default.createElement(u,null,e,t)},t.default=u},function(e,t){"use strict";e.exports=function(e){for(var t=1,n=0,r=0,i=e.length,o=-4&i;r{if("string"!=typeof e&&!Array.isArray(e))throw new TypeError("Expected the input to be `string | string[]`");if(t={pascalCase:!1,preserveConsecutiveUppercase:!1,...t},0===(e=Array.isArray(e)?e.map(e=>e.trim()).filter(e=>e.length).join("-"):e.trim()).length)return"";const n=!1===t.locale?e=>e.toLowerCase():e=>e.toLocaleLowerCase(t.locale),s=!1===t.locale?e=>e.toUpperCase():e=>e.toLocaleUpperCase(t.locale);if(1===e.length)return t.pascalCase?s(e):n(e);return e!==n(e)&&(e=((e,t,n)=>{let o=!1,s=!1,a=!1;for(let l=0;l(o.lastIndex=0,e.replace(o,e=>t(e))))(e,n):n(e),t.pascalCase&&(e=s(e.charAt(0))+e.slice(1)),((e,t)=>(c.lastIndex=0,u.lastIndex=0,e.replace(c,(e,n)=>t(n)).replace(u,e=>t(e))))(e,s)};e.exports=d,e.exports.default=d},function(e,t,n){"use strict";(function(e){n.d(t,"a",(function(){return l})),n.d(t,"b",(function(){return c}));var r=n(8),i=n(113);const o={nowSeconds:()=>Date.now()/1e3};const s=Object(i.b)()?function(){try{return Object(i.a)(e,"perf_hooks").performance}catch(e){return}}():function(){const{performance:e}=r.a;if(!e||!e.now)return;return{now:()=>e.now(),timeOrigin:Date.now()-e.now()}}(),a=void 0===s?o:{nowSeconds:()=>(s.timeOrigin+s.now())/1e3},l=o.nowSeconds.bind(o),c=a.nowSeconds.bind(a);let u;(()=>{const{performance:e}=r.a;if(!e||!e.now)return void(u="none");const t=e.now(),n=Date.now(),i=e.timeOrigin?Math.abs(e.timeOrigin+t-n):36e5,o=i<36e5,s=e.timing&&e.timing.navigationStart,a="number"==typeof s?Math.abs(s+t-n):36e5;o||a<36e5?i<=a?(u="timeOrigin",e.timeOrigin):u="navigationStart":u="dateNow"})()}).call(this,n(64)(e))},function(e,t,n){"use strict";function r(){return"undefined"!=typeof __SENTRY_BROWSER_BUNDLE__&&!!__SENTRY_BROWSER_BUNDLE__}n.d(t,"a",(function(){return r}))},function(e,t,n){"use strict";(function(e){n.d(t,"a",(function(){return a})),n.d(t,"b",(function(){return l}));var r=n(18),i=n(192),o=n(26),s=n(86);function a(t,n=1/0,a=1/0){try{return function t(n,a,l=1/0,c=1/0,u=Object(i.a)()){const[d,h]=u;if(null===a||["number","boolean","string"].includes(typeof a)&&!Object(r.h)(a))return a;const p=function(t,n){try{return"domain"===t&&n&&"object"==typeof n&&n._events?"[Domain]":"domainEmitter"===t?"[DomainEmitter]":void 0!==e&&n===e?"[Global]":"undefined"!=typeof window&&n===window?"[Window]":"undefined"!=typeof document&&n===document?"[Document]":Object(r.m)(n)?"[SyntheticEvent]":"number"==typeof n&&n!=n?"[NaN]":void 0===n?"[undefined]":"function"==typeof n?`[Function: ${Object(s.b)(n)}]`:"symbol"==typeof n?`[${String(n)}]`:"bigint"==typeof n?`[BigInt: ${String(n)}]`:`[object ${Object.getPrototypeOf(n).constructor.name}]`}catch(e){return`**non-serializable** (${e})`}}(n,a);if(!p.startsWith("[object "))return p;if(a.__sentry_skip_normalization__)return a;if(0===l)return p.replace("object ","");if(d(a))return"[Circular ~]";const f=a;if(f&&"function"==typeof f.toJSON)try{const e=f.toJSON();return t("",e,l-1,c,u)}catch(e){}const m=Array.isArray(a)?[]:{};let g=0;const b=Object(o.b)(a);for(const e in b){if(!Object.prototype.hasOwnProperty.call(b,e))continue;if(g>=c){m[e]="[MaxProperties ~]";break}const n=b[e];m[e]=t(e,n,l-1,c,u),g+=1}return h(a),m}("",t,n,a)}catch(e){return{ERROR:`**non-serializable** (${e})`}}}function l(e,t=3,n=102400){const r=a(e,t);return i=r,function(e){return~-encodeURI(e).split(/%..|./).length}(JSON.stringify(i))>n?l(e,t-1,n):r;var i}}).call(this,n(28))},function(e,t,n){"use strict";function r(){const e="function"==typeof WeakSet,t=e?new WeakSet:[];return[function(n){if(e)return!!t.has(n)||(t.add(n),!1);for(let e=0;ee.length)&&(t=e.length);for(var n=0,r=new Array(t);nt.getRandomValues(new Uint8Array(1))[0]:()=>16*Math.random();return([1e7]+1e3+4e3+8e3+1e11).replace(/[018]/g,e=>(e^(15&n())>>e/4).toString(16))}function o(e){return Array.isArray(e)?e:[e]}},function(e,t,n){"use strict";n.d(t,"a",(function(){return p}));var r=n(7),i=n(17),o=n(11),s=n(22);n(439);function a(e){try{return e&&"function"==typeof e&&e.name||""}catch(e){return""}}function l(){if(!("fetch"in r.a))return!1;try{return new Headers,new Request("http://www.example.com"),new Response,!0}catch(e){return!1}}function c(e){return e&&/^function fetch\(\)\s+\{\s+\[native code\]\s+\}$/.test(e.toString())}const u={},d={};function h(e){if(!d[e])switch(d[e]=!0,e){case"console":!function(){if(!("console"in r.a))return;o.a.forEach((function(e){e in r.a.console&&Object(s.c)(r.a.console,e,(function(t){return function(...n){f("console",{args:n,level:e}),t&&t.apply(r.a.console,n)}}))}))}();break;case"dom":!function(){if(!("document"in r.a))return;const e=f.bind(null,"dom"),t=S(e,!0);r.a.document.addEventListener("click",t,!1),r.a.document.addEventListener("keypress",t,!1),["EventTarget","Node"].forEach(t=>{const n=r.a[t]&&r.a[t].prototype;n&&n.hasOwnProperty&&n.hasOwnProperty("addEventListener")&&(Object(s.c)(n,"addEventListener",(function(t){return function(n,r,i){if("click"===n||"keypress"==n)try{const r=this,o=r.__sentry_instrumentation_handlers__=r.__sentry_instrumentation_handlers__||{},s=o[n]=o[n]||{refCount:0};if(!s.handler){const r=S(e);s.handler=r,t.call(this,n,r,i)}s.refCount+=1}catch(e){}return t.call(this,n,r,i)}})),Object(s.c)(n,"removeEventListener",(function(e){return function(t,n,r){if("click"===t||"keypress"==t)try{const n=this,i=n.__sentry_instrumentation_handlers__||{},o=i[t];o&&(o.refCount-=1,o.refCount<=0&&(e.call(this,t,o.handler,r),o.handler=void 0,delete i[t]),0===Object.keys(i).length&&delete n.__sentry_instrumentation_handlers__)}catch(e){}return e.call(this,t,n,r)}})))})}();break;case"xhr":!function(){if(!("XMLHttpRequest"in r.a))return;const e=XMLHttpRequest.prototype;Object(s.c)(e,"open",(function(e){return function(...t){const n=this,r=t[1],o=n.__sentry_xhr__={method:Object(i.i)(t[0])?t[0].toUpperCase():t[0],url:t[1]};Object(i.i)(r)&&"POST"===o.method&&r.match(/sentry_key/)&&(n.__sentry_own_request__=!0);const a=function(){if(4===n.readyState){try{o.status_code=n.status}catch(e){}f("xhr",{args:t,endTimestamp:Date.now(),startTimestamp:Date.now(),xhr:n})}};return"onreadystatechange"in n&&"function"==typeof n.onreadystatechange?Object(s.c)(n,"onreadystatechange",(function(e){return function(...t){return a(),e.apply(n,t)}})):n.addEventListener("readystatechange",a),e.apply(n,t)}})),Object(s.c)(e,"send",(function(e){return function(...t){return this.__sentry_xhr__&&void 0!==t[0]&&(this.__sentry_xhr__.body=t[0]),f("xhr",{args:t,startTimestamp:Date.now(),xhr:this}),e.apply(this,t)}}))}();break;case"fetch":!function(){if(!function(){if(!l())return!1;if(c(r.a.fetch))return!0;let e=!1;const t=r.a.document;if(t&&"function"==typeof t.createElement)try{const n=t.createElement("iframe");n.hidden=!0,t.head.appendChild(n),n.contentWindow&&n.contentWindow.fetch&&(e=c(n.contentWindow.fetch)),t.head.removeChild(n)}catch(e){("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&o.c.warn("Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ",e)}return e}())return;Object(s.c)(r.a,"fetch",(function(e){return function(...t){const n={args:t,fetchData:{method:m(t),url:g(t)},startTimestamp:Date.now()};return f("fetch",{...n}),e.apply(r.a,t).then(e=>(f("fetch",{...n,endTimestamp:Date.now(),response:e}),e),e=>{throw f("fetch",{...n,endTimestamp:Date.now(),error:e}),e})}}))}();break;case"history":!function(){if(!function(){const e=r.a.chrome,t=e&&e.app&&e.app.runtime,n="history"in r.a&&!!r.a.history.pushState&&!!r.a.history.replaceState;return!t&&n}())return;const e=r.a.onpopstate;function t(e){return function(...t){const n=t.length>2?t[2]:void 0;if(n){const e=b,t=String(n);b=t,f("history",{from:e,to:t})}return e.apply(this,t)}}r.a.onpopstate=function(...t){const n=r.a.location.href,i=b;if(b=n,f("history",{from:i,to:n}),e)try{return e.apply(this,t)}catch(e){}},Object(s.c)(r.a.history,"pushState",t),Object(s.c)(r.a.history,"replaceState",t)}();break;case"error":_=r.a.onerror,r.a.onerror=function(e,t,n,r,i){return f("error",{column:r,error:i,line:n,msg:e,url:t}),!!_&&_.apply(this,arguments)};break;case"unhandledrejection":x=r.a.onunhandledrejection,r.a.onunhandledrejection=function(e){return f("unhandledrejection",e),!x||x.apply(this,arguments)};break;default:return void(("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&o.c.warn("unknown instrumentation type:",e))}}function p(e,t){u[e]=u[e]||[],u[e].push(t),h(e)}function f(e,t){if(e&&u[e])for(const n of u[e]||[])try{n(t)}catch(t){("undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&o.c.error(`Error while triggering instrumentation handler.\nType: ${e}\nName: ${a(n)}\nError:`,t)}}function m(e=[]){return"Request"in r.a&&Object(i.d)(e[0],Request)&&e[0].method?String(e[0].method).toUpperCase():e[1]&&e[1].method?String(e[1].method).toUpperCase():"GET"}function g(e=[]){return"string"==typeof e[0]?e[0]:"Request"in r.a&&Object(i.d)(e[0],Request)?e[0].url:String(e[0])}let b;let v,y;function S(e,t=!1){return n=>{if(!n||y===n)return;if(function(e){if("keypress"!==e.type)return!1;try{const t=e.target;if(!t||!t.tagName)return!0;if("INPUT"===t.tagName||"TEXTAREA"===t.tagName||t.isContentEditable)return!1}catch(e){}return!0}(n))return;const i="keypress"===n.type?"input":n.type;(void 0===v||function(e,t){if(!e)return!0;if(e.type!==t.type)return!0;try{if(e.target!==t.target)return!0}catch(e){}return!1}(y,n))&&(e({event:n,name:i,global:t}),y=n),clearTimeout(v),v=r.a.setTimeout(()=>{v=void 0},1e3)}}let _=null;let x=null},,,,,,,function(e,t,n){"use strict"; /** * @license React * react.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */var r=Symbol.for("react.element"),i=Symbol.for("react.portal"),o=Symbol.for("react.fragment"),s=Symbol.for("react.strict_mode"),a=Symbol.for("react.profiler"),l=Symbol.for("react.provider"),c=Symbol.for("react.context"),u=Symbol.for("react.forward_ref"),d=Symbol.for("react.suspense"),h=Symbol.for("react.memo"),p=Symbol.for("react.lazy"),f=Symbol.iterator;var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,b={};function v(e,t,n){this.props=e,this.context=t,this.refs=b,this.updater=n||m}function y(){}function S(e,t,n){this.props=e,this.context=t,this.refs=b,this.updater=n||m}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},y.prototype=v.prototype;var _=S.prototype=new y;_.constructor=S,g(_,v.prototype),_.isPureReactComponent=!0;var x=Array.isArray,w=Object.prototype.hasOwnProperty,k={current:null},O={key:!0,ref:!0,__self:!0,__source:!0};function E(e,t,n){var i,o={},s=null,a=null;if(null!=t)for(i in void 0!==t.ref&&(a=t.ref),void 0!==t.key&&(s=""+t.key),t)w.call(t,i)&&!O.hasOwnProperty(i)&&(o[i]=t[i]);var l=arguments.length-2;if(1===l)o.children=n;else if(1