diff --git a/README.md b/README.md index fa2d4bcbeb..e54ce0cb67 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@

Latest Release:
- Analysis 1.127.0 | Visualization 1.127.1 + Analysis 1.127.0 | Visualization 1.128.0 [comment]: ################################################################################## [comment]: diff --git a/gh-pages/_posts/release/2024-09-18-vis_1_128_0.md b/gh-pages/_posts/release/2024-09-18-vis_1_128_0.md new file mode 100644 index 0000000000..755ff7ea37 --- /dev/null +++ b/gh-pages/_posts/release/2024-09-18-vis_1_128_0.md @@ -0,0 +1,43 @@ +--- +categories: + - Release + - Release-Visualization +tags: + - gh-pages + - release + - visualization + +title: Visualization version 1.128.0 +--- + +{{page.title}} is live and ready for [download](https://github.com/MaibornWolff/codecharta/releases/tag/vis-1.128.0). +This version brings the following: + +### Added 🚀 + +- Add feature to zoom at the mouse cursor [#3693](https://github.com/MaibornWolff/codecharta/pull/3693) +- Add a zoom slider under the cube, allowing to zoom in and out while always displaying the current zoom factor. [#3697](https://github.com/MaibornWolff/codecharta/pull/3697) + +### Fixed 🐞 + +- Fix issue where zooming out too much makes the map disappear and zooming in too much causes you to go through the map. [#3697](https://github.com/MaibornWolff/codecharta/pull/3697) +- Camera perspective is correctly adopted from the custom configuration[#3698](https://github.com/MaibornWolff/codecharta/pull/3698) +- Fix camera behavior when `Reset Camera when changing map` option is deactivated [#3699](https://github.com/MaibornWolff/codecharta/pull/3699) + +### Changed + +- Change OrbitControls to MapControls for improved map navigation [#3693](https://github.com/MaibornWolff/codecharta/pull/3693) +- Remove unnecessary button that opened and closed the file explorer [#3647](https://github.com/MaibornWolff/codecharta/pull/3748) +- Overhaul Focus and Unfocus functionality[#3706](https://github.com/MaibornWolff/codecharta/pull/3706) + +### Chore 👨‍💻 👩‍💻 + +- Bump node version from 18 to 20 [#3690](https://github.com/MaibornWolff/codecharta/pull/3690) +- Enabled view encapsulation for Global Configuration dialog, Ribbon Bar and File Panel [#3712](https://github.com/MaibornWolff/codecharta/pull/3712) +- Enabled view encapsulation for Slider [#3713](https://github.com/MaibornWolff/codecharta/pull/3713) +- Enabled view encapsulation for the Toolbar [#3717](https://github.com/MaibornWolff/codecharta/pull/3717) +- Enabled view encapsulation for the Legend Panel [#3720](https://github.com/MaibornWolff/codecharta/pull/3720) +- Enabled view encapsulation for the Attribute Side Bar [#3726](https://github.com/MaibornWolff/codecharta/pull/3726) +- Enabled view encapsulation for Buttons [#3729](https://github.com/MaibornWolff/codecharta/pull/3729) +- Enabled view encapsulation for the Export 3D Map Dialog [#3732](https://github.com/MaibornWolff/codecharta/pull/3732) +- Enabled view encapsulation for Dialogs [#3736](https://github.com/MaibornWolff/codecharta/pull/3736) diff --git a/gh-pages/visualization/app/3rdpartylicenses.txt b/gh-pages/visualization/app/3rdpartylicenses.txt index 47559cb35a..9ed9d6fdb9 100644 --- a/gh-pages/visualization/app/3rdpartylicenses.txt +++ b/gh-pages/visualization/app/3rdpartylicenses.txt @@ -1446,7 +1446,7 @@ three MIT The MIT License -Copyright © 2010-2021 three.js authors +Copyright © 2010-2023 three.js authors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -1467,9 +1467,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -three-orbit-controls -MIT - uri-js BSD-2-Clause Copyright 2011 Gary Court. All rights reserved. diff --git a/gh-pages/visualization/app/index.html b/gh-pages/visualization/app/index.html index f81131b06b..006c24b9b5 100644 --- a/gh-pages/visualization/app/index.html +++ b/gh-pages/visualization/app/index.html @@ -6,9 +6,9 @@ img-src 'self' https://* data:;"> - + - + diff --git a/gh-pages/visualization/app/main.7b6cd3c9e4173556.js b/gh-pages/visualization/app/main.7b6cd3c9e4173556.js deleted file mode 100644 index 38fec3eb3b..0000000000 --- a/gh-pages/visualization/app/main.7b6cd3c9e4173556.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkvisualization=self.webpackChunkvisualization||[]).push([[792],{4865:(st,be,p)=>{"use strict";var U={};function Q(t,n,e,i,r,o,s){try{var a=t[o](s),l=a.value}catch(c){return void e(c)}a.done?n(l):Promise.resolve(l).then(i,r)}function f(t){return function(){var n=this,e=arguments;return new Promise(function(i,r){var o=t.apply(n,e);function s(l){Q(o,i,r,s,a,"next",l)}function a(l){Q(o,i,r,s,a,"throw",l)}s(void 0)})}}function z(t,n){return Object.is(t,n)}p.r(U),p.d(U,{ACESFilmicToneMapping:()=>VK,AddEquation:()=>Kp,AddOperation:()=>NK,AdditiveAnimationBlendMode:()=>fP,AdditiveBlending:()=>KL,AlphaFormat:()=>KK,AlwaysDepth:()=>kK,AlwaysStencilFunc:()=>zX,AmbientLight:()=>qw,AmbientLightProbe:()=>_Z,AnimationClip:()=>Uw,AnimationLoader:()=>WFe,AnimationMixer:()=>FZ,AnimationObjectGroup:()=>TZ,AnimationUtils:()=>so,ArcCurve:()=>u5,ArrayCamera:()=>rT,ArrowHelper:()=>zZ,Audio:()=>k5,AudioAnalyser:()=>EZ,AudioContext:()=>T5,AudioListener:()=>a3e,AudioLoader:()=>gZ,AxesHelper:()=>H5,AxisHelper:()=>ske,BackSide:()=>Wo,BasicDepthPacking:()=>HX,BasicShadowMap:()=>R2e,BinaryTextureLoader:()=>uke,Bone:()=>Sw,BooleanKeyframeTrack:()=>fA,BoundingBoxHelper:()=>ake,Box2:()=>Fb,Box3:()=>ys,Box3Helper:()=>S3e,BoxBufferGeometry:()=>sc,BoxGeometry:()=>sc,BoxHelper:()=>O5,BufferAttribute:()=>Nn,BufferGeometry:()=>Bn,BufferGeometryLoader:()=>mZ,ByteType:()=>zK,Cache:()=>pA,Camera:()=>om,CameraHelper:()=>M3e,CanvasRenderer:()=>fke,CanvasTexture:()=>ZP,CatmullRomCurve3:()=>A5,CineonToneMapping:()=>HK,CircleBufferGeometry:()=>mT,CircleGeometry:()=>mT,ClampToEdgeWrapping:()=>Ta,Clock:()=>F5,Color:()=>rn,ColorKeyframeTrack:()=>l5,CompressedTexture:()=>YP,CompressedTextureLoader:()=>d5,ConeBufferGeometry:()=>pT,ConeGeometry:()=>pT,CubeCamera:()=>JS,CubeReflectionMapping:()=>W1,CubeRefractionMapping:()=>$1,CubeTexture:()=>fb,CubeTextureLoader:()=>nZ,CubeUVReflectionMapping:()=>K0,CubeUVRefractionMapping:()=>j1,CubicBezierCurve:()=>UT,CubicBezierCurve3:()=>HT,CubicInterpolant:()=>BT,CullFaceBack:()=>WL,CullFaceFront:()=>pK,CullFaceFrontBack:()=>D2e,CullFaceNone:()=>mK,Curve:()=>La,CurvePath:()=>oZ,CustomBlending:()=>gK,CustomToneMapping:()=>QK,CylinderBufferGeometry:()=>xb,CylinderGeometry:()=>xb,Cylindrical:()=>_3e,DataTexture:()=>mb,DataTexture2DArray:()=>QP,DataTexture3D:()=>zP,DataTextureLoader:()=>PT,DataUtils:()=>k3e,DecrementStencilOp:()=>z2e,DecrementWrapStencilOp:()=>q2e,DefaultLoadingManager:()=>tZ,DepthFormat:()=>Zp,DepthStencilFormat:()=>J0,DepthTexture:()=>jY,DirectionalLight:()=>bA,DirectionalLightHelper:()=>E3e,DiscreteInterpolant:()=>DT,DodecahedronBufferGeometry:()=>AT,DodecahedronGeometry:()=>AT,DoubleSide:()=>G1,DstAlphaFactor:()=>CK,DstColorFactor:()=>MK,DynamicBufferAttribute:()=>X3e,DynamicCopyUsage:()=>oEe,DynamicDrawUsage:()=>nA,DynamicReadUsage:()=>nEe,EdgesGeometry:()=>e5,EdgesHelper:()=>lke,EllipseCurve:()=>Hw,EqualDepth:()=>BK,EqualStencilFunc:()=>K2e,EquirectangularReflectionMapping:()=>MS,EquirectangularRefractionMapping:()=>SS,Euler:()=>sA,EventDispatcher:()=>Uc,ExtrudeBufferGeometry:()=>$c,ExtrudeGeometry:()=>$c,FaceColors:()=>U3e,FileLoader:()=>Ll,FlatShading:()=>jL,Float16BufferAttribute:()=>hw,Float32Attribute:()=>rke,Float32BufferAttribute:()=>wn,Float64Attribute:()=>oke,Float64BufferAttribute:()=>fw,FloatType:()=>fh,Fog:()=>yw,FogExp2:()=>vw,Font:()=>jw,FontLoader:()=>r3e,FrontSide:()=>$0,Frustum:()=>Aw,GLBufferAttribute:()=>R5,GLSL1:()=>aEe,GLSL3:()=>_P,GammaEncoding:()=>BS,GreaterDepth:()=>RK,GreaterEqualDepth:()=>DK,GreaterEqualStencilFunc:()=>J2e,GreaterStencilFunc:()=>Y2e,GridHelper:()=>UZ,Group:()=>Ps,HalfFloatType:()=>Z1,HemisphereLight:()=>_5,HemisphereLightHelper:()=>x3e,HemisphereLightProbe:()=>bZ,IcosahedronBufferGeometry:()=>xT,IcosahedronGeometry:()=>xT,ImageBitmapLoader:()=>S5,ImageLoader:()=>LT,ImageUtils:()=>iA,ImmediateRenderObject:()=>Xw,IncrementStencilOp:()=>Q2e,IncrementWrapStencilOp:()=>G2e,InstancedBufferAttribute:()=>zT,InstancedBufferGeometry:()=>$w,InstancedInterleavedBuffer:()=>D5,InstancedMesh:()=>dT,Int16Attribute:()=>eke,Int16BufferAttribute:()=>dw,Int32Attribute:()=>nke,Int32BufferAttribute:()=>uw,Int8Attribute:()=>Y3e,Int8BufferAttribute:()=>aw,IntType:()=>qK,InterleavedBuffer:()=>Ia,InterleavedBufferAttribute:()=>vh,Interpolant:()=>Rl,InterpolateDiscrete:()=>J1,InterpolateLinear:()=>ew,InterpolateSmooth:()=>kS,InvertStencilOp:()=>W2e,JSONLoader:()=>mke,KeepStencilOp:()=>RS,KeyframeTrack:()=>jc,LOD:()=>$P,LatheBufferGeometry:()=>CT,LatheGeometry:()=>CT,Layers:()=>SP,LensFlare:()=>Ake,LessDepth:()=>IK,LessEqualDepth:()=>CS,LessEqualStencilFunc:()=>X2e,LessStencilFunc:()=>j2e,Light:()=>Xc,LightProbe:()=>Ww,Line:()=>Ba,Line3:()=>DZ,LineBasicMaterial:()=>ls,LineCurve:()=>zw,LineCurve3:()=>rZ,LineDashedMaterial:()=>a5,LineLoop:()=>KP,LinePieces:()=>N3e,LineSegments:()=>Da,LineStrip:()=>P3e,LinearEncoding:()=>ka,LinearFilter:()=>Ro,LinearInterpolant:()=>Pw,LinearMipMapLinearFilter:()=>U2e,LinearMipMapNearestFilter:()=>O2e,LinearMipmapLinearFilter:()=>X0,LinearMipmapNearestFilter:()=>nP,LinearToneMapping:()=>OK,Loader:()=>bo,LoaderUtils:()=>M5,LoadingManager:()=>c5,LogLuvEncoding:()=>UX,LoopOnce:()=>LX,LoopPingPong:()=>NX,LoopRepeat:()=>PX,LuminanceAlphaFormat:()=>YK,LuminanceFormat:()=>XK,MOUSE:()=>dh,Material:()=>oo,MaterialLoader:()=>fZ,Math:()=>Jn,MathUtils:()=>Jn,Matrix3:()=>ro,Matrix4:()=>Hn,MaxEquation:()=>JL,Mesh:()=>Ci,MeshBasicMaterial:()=>qc,MeshDepthMaterial:()=>nT,MeshDistanceMaterial:()=>iT,MeshFaceMaterial:()=>V3e,MeshLambertMaterial:()=>Sb,MeshMatcapMaterial:()=>s5,MeshNormalMaterial:()=>IT,MeshPhongMaterial:()=>kT,MeshPhysicalMaterial:()=>dm,MeshStandardMaterial:()=>eu,MeshToonMaterial:()=>o5,MinEquation:()=>ZL,MirroredRepeatWrapping:()=>K1,MixOperation:()=>PK,MultiMaterial:()=>Q3e,MultiplyBlending:()=>YL,MultiplyOperation:()=>q1,NearestFilter:()=>vs,NearestMipMapLinearFilter:()=>N2e,NearestMipMapNearestFilter:()=>P2e,NearestMipmapLinearFilter:()=>FS,NearestMipmapNearestFilter:()=>TS,NeverDepth:()=>FK,NeverStencilFunc:()=>$2e,NoBlending:()=>hh,NoColors:()=>O3e,NoToneMapping:()=>Xp,NormalAnimationBlendMode:()=>IS,NormalBlending:()=>j0,NotEqualDepth:()=>LK,NotEqualStencilFunc:()=>Z2e,NumberKeyframeTrack:()=>Nw,Object3D:()=>$n,ObjectLoader:()=>e3e,ObjectSpaceNormalMap:()=>QX,OctahedronBufferGeometry:()=>Dw,OctahedronGeometry:()=>Dw,OneFactor:()=>yK,OneMinusDstAlphaFactor:()=>EK,OneMinusDstColorFactor:()=>SK,OneMinusSrcAlphaFactor:()=>tP,OneMinusSrcColorFactor:()=>xK,OrthographicCamera:()=>gA,PCFShadowMap:()=>$L,PCFSoftShadowMap:()=>AK,PMREMGenerator:()=>B3e,ParametricBufferGeometry:()=>hA,ParametricGeometry:()=>hA,Particle:()=>G3e,ParticleBasicMaterial:()=>$3e,ParticleSystem:()=>q3e,ParticleSystemMaterial:()=>j3e,Path:()=>AA,PerspectiveCamera:()=>Mo,Plane:()=>Qc,PlaneBufferGeometry:()=>sm,PlaneGeometry:()=>sm,PlaneHelper:()=>T3e,PointCloud:()=>z3e,PointCloudMaterial:()=>W3e,PointLight:()=>x5,PointLightHelper:()=>y3e,Points:()=>wb,PointsMaterial:()=>uA,PolarGridHelper:()=>C3e,PolyhedronBufferGeometry:()=>lm,PolyhedronGeometry:()=>lm,PositionalAudio:()=>c3e,PropertyBinding:()=>la,PropertyMixer:()=>MZ,QuadraticBezierCurve:()=>VT,QuadraticBezierCurve3:()=>g5,Quaternion:()=>as,QuaternionKeyframeTrack:()=>Tb,QuaternionLinearInterpolant:()=>RT,REVISION:()=>qL,RGBADepthPacking:()=>VX,RGBAFormat:()=>Fa,RGBAIntegerFormat:()=>rX,RGBA_ASTC_10x10_Format:()=>gX,RGBA_ASTC_10x5_Format:()=>mX,RGBA_ASTC_10x6_Format:()=>pX,RGBA_ASTC_10x8_Format:()=>AX,RGBA_ASTC_12x10_Format:()=>bX,RGBA_ASTC_12x12_Format:()=>_X,RGBA_ASTC_4x4_Format:()=>sX,RGBA_ASTC_5x4_Format:()=>aX,RGBA_ASTC_5x5_Format:()=>lX,RGBA_ASTC_6x5_Format:()=>cX,RGBA_ASTC_6x6_Format:()=>dX,RGBA_ASTC_8x5_Format:()=>uX,RGBA_ASTC_8x6_Format:()=>hX,RGBA_ASTC_8x8_Format:()=>fX,RGBA_BPTC_Format:()=>vX,RGBA_ETC2_EAC_Format:()=>hP,RGBA_PVRTC_2BPPV1_Format:()=>dP,RGBA_PVRTC_4BPPV1_Format:()=>cP,RGBA_S3TC_DXT1_Format:()=>rP,RGBA_S3TC_DXT3_Format:()=>oP,RGBA_S3TC_DXT5_Format:()=>sP,RGBDEncoding:()=>bP,RGBEEncoding:()=>DS,RGBEFormat:()=>ZK,RGBFormat:()=>Yf,RGBIntegerFormat:()=>iX,RGBM16Encoding:()=>gP,RGBM7Encoding:()=>AP,RGB_ETC1_Format:()=>oX,RGB_ETC2_Format:()=>uP,RGB_PVRTC_2BPPV1_Format:()=>lP,RGB_PVRTC_4BPPV1_Format:()=>aP,RGB_S3TC_DXT1_Format:()=>iP,RGFormat:()=>tX,RGIntegerFormat:()=>nX,RawShaderMaterial:()=>Mb,Ray:()=>Ah,Raycaster:()=>Kw,RectAreaLight:()=>C5,RedFormat:()=>JK,RedIntegerFormat:()=>eX,ReinhardToneMapping:()=>UK,RepeatWrapping:()=>Yp,ReplaceStencilOp:()=>V2e,ReverseSubtractEquation:()=>_K,RingBufferGeometry:()=>ET,RingGeometry:()=>ET,SRGB8_ALPHA8_ASTC_10x10_Format:()=>BX,SRGB8_ALPHA8_ASTC_10x5_Format:()=>FX,SRGB8_ALPHA8_ASTC_10x6_Format:()=>kX,SRGB8_ALPHA8_ASTC_10x8_Format:()=>IX,SRGB8_ALPHA8_ASTC_12x10_Format:()=>DX,SRGB8_ALPHA8_ASTC_12x12_Format:()=>RX,SRGB8_ALPHA8_ASTC_4x4_Format:()=>yX,SRGB8_ALPHA8_ASTC_5x4_Format:()=>wX,SRGB8_ALPHA8_ASTC_5x5_Format:()=>xX,SRGB8_ALPHA8_ASTC_6x5_Format:()=>CX,SRGB8_ALPHA8_ASTC_6x6_Format:()=>EX,SRGB8_ALPHA8_ASTC_8x5_Format:()=>MX,SRGB8_ALPHA8_ASTC_8x6_Format:()=>SX,SRGB8_ALPHA8_ASTC_8x8_Format:()=>TX,Scene:()=>cA,SceneUtils:()=>pke,ShaderChunk:()=>Ni,ShaderLib:()=>Wc,ShaderMaterial:()=>Ls,ShadowMaterial:()=>r5,Shape:()=>wh,ShapeBufferGeometry:()=>Rw,ShapeGeometry:()=>Rw,ShapePath:()=>xh,ShapeUtils:()=>yh,ShortType:()=>GK,Skeleton:()=>Tw,SkeletonHelper:()=>LZ,SkinnedMesh:()=>Mw,SmoothShading:()=>L2e,Sphere:()=>Zd,SphereBufferGeometry:()=>Lw,SphereGeometry:()=>Lw,Spherical:()=>P5,SphericalHarmonics3:()=>E5,SplineCurve:()=>QT,SpotLight:()=>y5,SpotLightHelper:()=>v3e,Sprite:()=>yb,SpriteMaterial:()=>ww,SrcAlphaFactor:()=>eP,SrcAlphaSaturateFactor:()=>TK,SrcColorFactor:()=>wK,StaticCopyUsage:()=>rEe,StaticDrawUsage:()=>iw,StaticReadUsage:()=>tEe,StereoCamera:()=>o3e,StreamCopyUsage:()=>sEe,StreamDrawUsage:()=>eEe,StreamReadUsage:()=>iEe,StringKeyframeTrack:()=>mA,SubtractEquation:()=>bK,SubtractiveBlending:()=>XL,TOUCH:()=>uh,TangentSpaceNormalMap:()=>tA,TetrahedronBufferGeometry:()=>MT,TetrahedronGeometry:()=>MT,TextBufferGeometry:()=>Eb,TextGeometry:()=>Eb,Texture:()=>ss,TextureLoader:()=>NT,TorusBufferGeometry:()=>ST,TorusGeometry:()=>ST,TorusKnotBufferGeometry:()=>TT,TorusKnotGeometry:()=>TT,Triangle:()=>$o,TriangleFanDrawMode:()=>pP,TriangleStripDrawMode:()=>OX,TrianglesDrawMode:()=>mP,TubeBufferGeometry:()=>FT,TubeGeometry:()=>FT,UVMapping:()=>ES,Uint16Attribute:()=>tke,Uint16BufferAttribute:()=>aA,Uint32Attribute:()=>ike,Uint32BufferAttribute:()=>lA,Uint8Attribute:()=>Z3e,Uint8BufferAttribute:()=>lw,Uint8ClampedAttribute:()=>J3e,Uint8ClampedBufferAttribute:()=>cw,Uniform:()=>qT,UniformsLib:()=>hn,UniformsUtils:()=>ZS,UnsignedByteType:()=>Y0,UnsignedInt248Type:()=>Z0,UnsignedIntType:()=>Y1,UnsignedShort4444Type:()=>WK,UnsignedShort5551Type:()=>$K,UnsignedShort565Type:()=>jK,UnsignedShortType:()=>X1,VSMShadowMap:()=>W0,Vector2:()=>ut,Vector3:()=>Y,Vector4:()=>Cr,VectorKeyframeTrack:()=>Ow,Vertex:()=>K3e,VertexColors:()=>H3e,VideoTexture:()=>$Y,WebGL1Renderer:()=>TY,WebGLCubeRenderTarget:()=>eT,WebGLMultisampleRenderTarget:()=>GX,WebGLRenderTarget:()=>Hc,WebGLRenderTargetCube:()=>hke,WebGLRenderer:()=>gr,WebGLUtils:()=>MY,WireframeGeometry:()=>i5,WireframeHelper:()=>cke,WrapAroundEnding:()=>tw,XHRLoader:()=>dke,ZeroCurvatureEnding:()=>Jp,ZeroFactor:()=>vK,ZeroSlopeEnding:()=>eA,ZeroStencilOp:()=>H2e,sRGBEncoding:()=>nw});let k=null,F=!1,V=1;const T=Symbol("SIGNAL");function N(t){const n=k;return k=t,n}const q={version:0,lastCleanEpoch:0,dirty:!1,producerNode:void 0,producerLastReadVersion:void 0,producerIndexOfThis:void 0,nextProducerIndex:0,liveConsumerNode:void 0,liveConsumerIndexOfThis:void 0,consumerAllowSignalWrites:!1,consumerIsAlwaysLive:!1,producerMustRecompute:()=>!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{},consumerOnSignalRead:()=>{}};function J(t){if(F)throw new Error("");if(null===k)return;k.consumerOnSignalRead(t);const n=k.nextProducerIndex++;Te(k),nt.nextProducerIndex;)t.producerNode.pop(),t.producerLastReadVersion.pop(),t.producerIndexOfThis.pop()}}function at(t){Te(t);for(let n=0;n0}function Te(t){t.producerNode??=[],t.producerIndexOfThis??=[],t.producerLastReadVersion??=[]}function le(t){t.liveConsumerNode??=[],t.liveConsumerIndexOfThis??=[]}const Ze=Symbol("UNSET"),Le=Symbol("COMPUTING"),lt=Symbol("ERRORED"),gt={...q,value:Ze,dirty:!0,error:null,equal:z,producerMustRecompute:t=>t.value===Ze||t.value===Le,producerRecomputeValue(t){if(t.value===Le)throw new Error("Detected cycle in computations.");const n=t.value;t.value=Le;const e=Ke(t);let i;try{i=t.computation()}catch(r){i=lt,t.error=r}finally{Ie(t,e)}n!==Ze&&n!==lt&&i!==lt&&t.equal(n,i)?t.value=n:(t.value=i,t.version++)}};let Qt=function Lt(){throw new Error};function vn(){Qt()}let Kn=null;function Wn(t,n){Ee()||vn(),t.equal(t.value,n)||(t.value=n,function qt(t){t.version++,function Z(){V++}(),Oe(t),Kn?.()}(t))}const St={...q,equal:z,value:void 0};const Gt=()=>{},nn={...q,consumerIsAlwaysLive:!0,consumerAllowSignalWrites:!1,consumerMarkedDirty:t=>{null!==t.schedule&&t.schedule(t.ref)},hasRun:!1,cleanupFn:Gt};function fn(t){return"function"==typeof t}function Si(t){const e=t(i=>{Error.call(i),i.stack=(new Error).stack});return e.prototype=Object.create(Error.prototype),e.prototype.constructor=e,e}const tr=Si(t=>function(e){t(this),this.message=e?`${e.length} errors occurred during unsubscription:\n${e.map((i,r)=>`${r+1}) ${i.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=e});function or(t,n){if(t){const e=t.indexOf(n);0<=e&&t.splice(e,1)}}class on{constructor(n){this.initialTeardown=n,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let n;if(!this.closed){this.closed=!0;const{_parentage:e}=this;if(e)if(this._parentage=null,Array.isArray(e))for(const o of e)o.remove(this);else e.remove(this);const{initialTeardown:i}=this;if(fn(i))try{i()}catch(o){n=o instanceof tr?o.errors:[o]}const{_finalizers:r}=this;if(r){this._finalizers=null;for(const o of r)try{Wi(o)}catch(s){n=n??[],s instanceof tr?n=[...n,...s.errors]:n.push(s)}}if(n)throw new tr(n)}}add(n){var e;if(n&&n!==this)if(this.closed)Wi(n);else{if(n instanceof on){if(n.closed||n._hasParent(this))return;n._addParent(this)}(this._finalizers=null!==(e=this._finalizers)&&void 0!==e?e:[]).push(n)}}_hasParent(n){const{_parentage:e}=this;return e===n||Array.isArray(e)&&e.includes(n)}_addParent(n){const{_parentage:e}=this;this._parentage=Array.isArray(e)?(e.push(n),e):e?[e,n]:n}_removeParent(n){const{_parentage:e}=this;e===n?this._parentage=null:Array.isArray(e)&&or(e,n)}remove(n){const{_finalizers:e}=this;e&&or(e,n),n instanceof on&&n._removeParent(this)}}on.EMPTY=(()=>{const t=new on;return t.closed=!0,t})();const eo=on.EMPTY;function Dr(t){return t instanceof on||t&&"closed"in t&&fn(t.remove)&&fn(t.add)&&fn(t.unsubscribe)}function Wi(t){fn(t)?t():t.unsubscribe()}const pt={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},fi={setTimeout(t,n,...e){const{delegate:i}=fi;return i?.setTimeout?i.setTimeout(t,n,...e):setTimeout(t,n,...e)},clearTimeout(t){const{delegate:n}=fi;return(n?.clearTimeout||clearTimeout)(t)},delegate:void 0};function Qr(t){fi.setTimeout(()=>{const{onUnhandledError:n}=pt;if(!n)throw t;n(t)})}function zr(){}const Os=ll("C",void 0,void 0);function ll(t,n,e){return{kind:t,value:n,error:e}}let lo=null;function Js(t){if(pt.useDeprecatedSynchronousErrorHandling){const n=!lo;if(n&&(lo={errorThrown:!1,error:null}),t(),n){const{errorThrown:e,error:i}=lo;if(lo=null,e)throw i}}else t()}class Vl extends on{constructor(n){super(),this.isStopped=!1,n?(this.destination=n,Dr(n)&&n.add(this)):this.destination=Dm}static create(n,e,i){return new cl(n,e,i)}next(n){this.isStopped?mu(function ws(t){return ll("N",t,void 0)}(n),this):this._next(n)}error(n){this.isStopped?mu(function Xo(t){return ll("E",void 0,t)}(n),this):(this.isStopped=!0,this._error(n))}complete(){this.isStopped?mu(Os,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(n){this.destination.next(n)}_error(n){try{this.destination.error(n)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}}const h_=Function.prototype.bind;function Na(t,n){return h_.call(t,n)}class Oa{constructor(n){this.partialObserver=n}next(n){const{partialObserver:e}=this;if(e.next)try{e.next(n)}catch(i){fc(i)}}error(n){const{partialObserver:e}=this;if(e.error)try{e.error(n)}catch(i){fc(i)}else fc(n)}complete(){const{partialObserver:n}=this;if(n.complete)try{n.complete()}catch(e){fc(e)}}}class cl extends Vl{constructor(n,e,i){let r;if(super(),fn(n)||!n)r={next:n??void 0,error:e??void 0,complete:i??void 0};else{let o;this&&pt.useDeprecatedNextContext?(o=Object.create(n),o.unsubscribe=()=>this.unsubscribe(),r={next:n.next&&Na(n.next,o),error:n.error&&Na(n.error,o),complete:n.complete&&Na(n.complete,o)}):r=n}this.destination=new Oa(r)}}function fc(t){pt.useDeprecatedSynchronousErrorHandling?function ud(t){pt.useDeprecatedSynchronousErrorHandling&&lo&&(lo.errorThrown=!0,lo.error=t)}(t):Qr(t)}function mu(t,n){const{onStoppedNotification:e}=pt;e&&fi.setTimeout(()=>e(t,n))}const Dm={closed:!0,next:zr,error:function Bm(t){throw t},complete:zr},mc="function"==typeof Symbol&&Symbol.observable||"@@observable";function cs(t){return t}let $i=(()=>{class t{constructor(e){e&&(this._subscribe=e)}lift(e){const i=new t;return i.source=this,i.operator=e,i}subscribe(e,i,r){const o=function f_(t){return t&&t instanceof Vl||function $A(t){return t&&fn(t.next)&&fn(t.error)&&fn(t.complete)}(t)&&Dr(t)}(e)?e:new cl(e,i,r);return Js(()=>{const{operator:s,source:a}=this;o.add(s?s.call(o,a):a?this._subscribe(o):this._trySubscribe(o))}),o}_trySubscribe(e){try{return this._subscribe(e)}catch(i){e.error(i)}}forEach(e,i){return new(i=pu(i))((r,o)=>{const s=new cl({next:a=>{try{e(a)}catch(l){o(l),s.unsubscribe()}},error:o,complete:r});this.subscribe(s)})}_subscribe(e){var i;return null===(i=this.source)||void 0===i?void 0:i.subscribe(e)}[mc](){return this}pipe(...e){return function hd(t){return 0===t.length?cs:1===t.length?t[0]:function(e){return t.reduce((i,r)=>r(i),e)}}(e)(this)}toPromise(e){return new(e=pu(e))((i,r)=>{let o;this.subscribe(s=>o=s,s=>r(s),()=>i(o))})}}return t.create=n=>new t(n),t})();function pu(t){var n;return null!==(n=t??pt.Promise)&&void 0!==n?n:Promise}const Lm=Si(t=>function(){t(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});let Yt=(()=>{class t extends $i{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(e){const i=new fd(this,this);return i.operator=e,i}_throwIfClosed(){if(this.closed)throw new Lm}next(e){Js(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(const i of this.currentObservers)i.next(e)}})}error(e){Js(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=e;const{observers:i}=this;for(;i.length;)i.shift().error(e)}})}complete(){Js(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;const{observers:e}=this;for(;e.length;)e.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var e;return(null===(e=this.observers)||void 0===e?void 0:e.length)>0}_trySubscribe(e){return this._throwIfClosed(),super._trySubscribe(e)}_subscribe(e){return this._throwIfClosed(),this._checkFinalizedStatuses(e),this._innerSubscribe(e)}_innerSubscribe(e){const{hasError:i,isStopped:r,observers:o}=this;return i||r?eo:(this.currentObservers=null,o.push(e),new on(()=>{this.currentObservers=null,or(o,e)}))}_checkFinalizedStatuses(e){const{hasError:i,thrownError:r,isStopped:o}=this;i?e.error(r):o&&e.complete()}asObservable(){const e=new $i;return e.source=this,e}}return t.create=(n,e)=>new fd(n,e),t})();class fd extends Yt{constructor(n,e){super(),this.destination=n,this.source=e}next(n){var e,i;null===(i=null===(e=this.destination)||void 0===e?void 0:e.next)||void 0===i||i.call(e,n)}error(n){var e,i;null===(i=null===(e=this.destination)||void 0===e?void 0:e.error)||void 0===i||i.call(e,n)}complete(){var n,e;null===(e=null===(n=this.destination)||void 0===n?void 0:n.complete)||void 0===e||e.call(n)}_subscribe(n){var e,i;return null!==(i=null===(e=this.source)||void 0===e?void 0:e.subscribe(n))&&void 0!==i?i:eo}}class De extends Yt{constructor(n){super(),this._value=n}get value(){return this.getValue()}_subscribe(n){const e=super._subscribe(n);return!e.closed&&n.next(this._value),e}getValue(){const{hasError:n,thrownError:e,_value:i}=this;if(n)throw e;return this._throwIfClosed(),i}next(n){super.next(this._value=n)}}function Be(t){return n=>{if(function he(t){return fn(t?.lift)}(n))return n.lift(function(e){try{return t(e,this)}catch(i){this.error(i)}});throw new TypeError("Unable to lift unknown Observable type")}}function Je(t,n,e,i,r){return new _t(t,n,e,i,r)}class _t extends Vl{constructor(n,e,i,r,o,s){super(n),this.onFinalize=o,this.shouldUnsubscribe=s,this._next=e?function(a){try{e(a)}catch(l){n.error(l)}}:super._next,this._error=r?function(a){try{r(a)}catch(l){n.error(l)}finally{this.unsubscribe()}}:super._error,this._complete=i?function(){try{i()}catch(a){n.error(a)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var n;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){const{closed:e}=this;super.unsubscribe(),!e&&(null===(n=this.onFinalize)||void 0===n||n.call(this))}}}function Et(t,n){return Be((e,i)=>{let r=0;e.subscribe(Je(i,o=>{i.next(t.call(n,o,r++))}))})}const Li="https://g.co/ng/security#xss";class ct extends Error{constructor(n,e){super(function hr(t,n){return`NG0${Math.abs(t)}${n?": "+n:""}`}(n,e)),this.code=n}}function Yi(t){return{toString:t}.toString()}const Yo="__parameters__";function Gr(t,n,e){return Yi(()=>{const i=function nr(t){return function(...e){if(t){const i=t(...e);for(const r in i)this[r]=i[r]}}}(n);function r(...o){if(this instanceof r)return i.apply(this,o),this;const s=new r(...o);return a.annotation=s,a;function a(l,c,d){const u=l.hasOwnProperty(Yo)?l[Yo]:Object.defineProperty(l,Yo,{value:[]})[Yo];for(;u.length<=d;)u.push(null);return(u[d]=u[d]||[]).push(s),l}}return e&&(r.prototype=Object.create(e.prototype)),r.prototype.ngMetadataName=t,r.annotationCls=r,r})}const bi=globalThis;function Vi(t){for(let n in t)if(t[n]===Vi)return n;throw Error("Could not find renamed property on target object.")}function Uh(t,n){for(const e in n)n.hasOwnProperty(e)&&!t.hasOwnProperty(e)&&(t[e]=n[e])}function qr(t){if("string"==typeof t)return t;if(Array.isArray(t))return"["+t.map(qr).join(", ")+"]";if(null==t)return""+t;if(t.overriddenName)return`${t.overriddenName}`;if(t.name)return`${t.name}`;const n=t.toString();if(null==n)return""+n;const e=n.indexOf("\n");return-1===e?n:n.substring(0,e)}function pa(t,n){return null==t||""===t?null===n?"":n:null==n||""===n?t:t+" "+n}const Us=Vi({__forward_ref__:Vi});function hi(t){return t.__forward_ref__=hi,t.toString=function(){return qr(this())},t}function Tn(t){return Ua(t)?t():t}function Ua(t){return"function"==typeof t&&t.hasOwnProperty(Us)&&t.__forward_ref__===hi}function Mt(t){return{token:t.token,providedIn:t.providedIn||null,factory:t.factory,value:void 0}}function Tt(t){return{providers:t.providers||[],imports:t.imports||[]}}function Om(t){return Ha(t,Gh)||Ha(t,oC)}function Ha(t,n){return t.hasOwnProperty(n)?t[n]:null}function zh(t){return t&&(t.hasOwnProperty(g_)||t.hasOwnProperty(K3))?t[g_]:null}const Gh=Vi({\u0275prov:Vi}),g_=Vi({\u0275inj:Vi}),oC=Vi({ngInjectableDef:Vi}),K3=Vi({ngInjectorDef:Vi});class ot{constructor(n,e){this._desc=n,this.ngMetadataName="InjectionToken",this.\u0275prov=void 0,"number"==typeof e?this.__NG_ELEMENT_ID__=e:void 0!==e&&(this.\u0275prov=Mt({token:this,providedIn:e.providedIn||"root",factory:e.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}}function v_(t){return t&&!!t.\u0275providers}const pd=Vi({\u0275cmp:Vi}),qh=Vi({\u0275dir:Vi}),ZA=Vi({\u0275pipe:Vi}),aC=Vi({\u0275mod:Vi}),Cs=Vi({\u0275fac:Vi}),Ad=Vi({__NG_ELEMENT_ID__:Vi}),JA=Vi({__NG_ENV_ID__:Vi});function li(t){return"string"==typeof t?t:null==t?"":String(t)}function y_(t,n){throw new ct(-201,!1)}var Qi=function(t){return t[t.Default=0]="Default",t[t.Host=1]="Host",t[t.Self=2]="Self",t[t.SkipSelf=4]="SkipSelf",t[t.Optional=8]="Optional",t}(Qi||{});let w_;function lC(){return w_}function na(t){const n=w_;return w_=t,n}function Hm(t,n,e){const i=Om(t);return i&&"root"==i.providedIn?void 0===i.value?i.value=i.factory():i.value:e&Qi.Optional?null:void 0!==n?n:void y_()}const Vm={},x_="__NG_DI_FLAG__",eg="ngTempTokenPath",ek=/\n/gm,tg="__source";let bu;function Va(t){const n=bu;return bu=t,n}function Wh(t,n=Qi.Default){if(void 0===bu)throw new ct(-203,!1);return null===bu?Hm(t,void 0,n):bu.get(t,n&Qi.Optional?null:void 0,n)}function oe(t,n=Qi.Default){return(lC()||Wh)(Tn(t),n)}function Ut(t,n=Qi.Default){return oe(t,Qm(n))}function Qm(t){return typeof t>"u"||"number"==typeof t?t:(t.optional&&8)|(t.host&&1)|(t.self&&2)|(t.skipSelf&&4)}function gd(t){const n=[];for(let e=0;e({token:t})),-1),co=ia(Gr("Optional"),8),ul=ia(Gr("SkipSelf"),4);function ir(t,n){return t.hasOwnProperty(Cs)?t[Cs]:null}function _u(t,n){t.forEach(e=>Array.isArray(e)?_u(e,n):n(e))}function E_(t,n,e){n>=t.length?t.push(e):t.splice(n,0,e)}function vu(t,n){return n>=t.length-1?t.pop():t.splice(n,1)[0]}function ar(t,n,e){let i=wu(t,n);return i>=0?t[1|i]=e:(i=~i,function pc(t,n,e,i){let r=t.length;if(r==n)t.push(e,i);else if(1===r)t.push(i,t[0]),t[0]=e;else{for(r--,t.push(t[r-1],t[r]);r>n;)t[r]=t[r-2],r--;t[n]=e,t[n+1]=i}}(t,i,n,e)),i}function Gl(t,n){const e=wu(t,n);if(e>=0)return t[1|e]}function wu(t,n){return function rg(t,n,e){let i=0,r=t.length>>e;for(;r!==i;){const o=i+(r-i>>1),s=t[o<n?r=o:i=o+1}return~(r<n){s=o-1;break}}}for(;o-1){let o;for(;++ro?"":r[d+1].toLowerCase(),2&i&&c!==u){if(Ga(i))return!1;s=!0}}}}else{if(!s&&!Ga(i)&&!Ga(l))return!1;if(s&&Ga(l))continue;s=!1,i=l|1&i}}return Ga(i)||s}function Ga(t){return!(1&t)}function gC(t,n,e,i){if(null===n)return-1;let r=0;if(i||!e){let o=!1;for(;r-1)for(e++;e0?'="'+a+'"':"")+"]"}else 8&i?r+="."+s:4&i&&(r+=" "+s);else""!==r&&!Ga(s)&&(n+=_C(o,r),r=""),i=s,o=o||!Ga(i);e++}return""!==r&&(n+=_C(o,r)),n}function At(t){return Yi(()=>{const n=wC(t),e={...n,decls:t.decls,vars:t.vars,template:t.template,consts:t.consts||null,ngContentSelectors:t.ngContentSelectors,onPush:t.changeDetection===xu.OnPush,directiveDefs:null,pipeDefs:null,dependencies:n.standalone&&t.dependencies||null,getStandaloneInjector:null,signals:t.signals??!1,data:t.data||{},encapsulation:t.encapsulation||za.Emulated,styles:t.styles||Zi,_:null,schemas:t.schemas||null,tView:null,id:""};$m(e);const i=t.dependencies;return e.directiveDefs=lg(i,!1),e.pipeDefs=lg(i,!0),e.id=function uk(t){let n=0;const e=[t.selectors,t.ngContentSelectors,t.hostVars,t.hostAttrs,t.consts,t.vars,t.decls,t.encapsulation,t.standalone,t.signals,t.exportAs,JSON.stringify(t.inputs),JSON.stringify(t.outputs),Object.getOwnPropertyNames(t.type.prototype),!!t.contentQueries,!!t.viewQuery].join("|");for(const r of e)n=Math.imul(31,n)+r.charCodeAt(0)|0;return n+=2147483648,"c"+n}(e),e})}function lk(t){return Ti(t)||uo(t)}function ck(t){return null!==t}function Bt(t){return Yi(()=>({type:t.type,bootstrap:t.bootstrap||Zi,declarations:t.declarations||Zi,imports:t.imports||Zi,exports:t.exports||Zi,transitiveCompileScopes:null,schemas:t.schemas||null,id:t.id||null}))}function yC(t,n){if(null==t)return fl;const e={};for(const i in t)if(t.hasOwnProperty(i)){const r=t[i];let o,s,a=bt.None;Array.isArray(r)?(a=r[0],o=r[1],s=r[2]??o):(o=r,s=r),n?(e[o]=a!==bt.None?[i,a]:i,n[o]=s):e[o]=i}return e}function zt(t){return Yi(()=>{const n=wC(t);return $m(n),n})}function lr(t){return{type:t.type,name:t.name,factory:null,pure:!1!==t.pure,standalone:!0===t.standalone,onDestroy:t.type.prototype.ngOnDestroy||null}}function Ti(t){return t[pd]||null}function uo(t){return t[qh]||null}function ds(t){return t[ZA]||null}function wC(t){const n={};return{type:t.type,providersResolver:null,factory:null,hostBindings:t.hostBindings||null,hostVars:t.hostVars||0,hostAttrs:t.hostAttrs||null,contentQueries:t.contentQueries||null,declaredInputs:n,inputTransforms:null,inputConfig:t.inputs||fl,exportAs:t.exportAs||null,standalone:!0===t.standalone,signals:!0===t.signals,selectors:t.selectors||Zi,viewQuery:t.viewQuery||null,features:t.features||null,setInput:null,findHostDirectiveDefs:null,hostDirectives:null,inputs:yC(t.inputs,n),outputs:yC(t.outputs),debugInfo:null}}function $m(t){t.features?.forEach(n=>n(t))}function lg(t,n){if(!t)return null;const e=n?ds:lk;return()=>("function"==typeof t?t():t).map(i=>e(i)).filter(ck)}function cg(...t){return{\u0275providers:k_(0,t),\u0275fromNgModule:!0}}function k_(t,...n){const e=[],i=new Set;let r;const o=s=>{e.push(s)};return _u(n,s=>{const a=s;dg(a,o,[],i)&&(r||=[],r.push(a))}),void 0!==r&&xC(r,o),e}function xC(t,n){for(let e=0;e{n(o,i)})}}function dg(t,n,e,i){if(!(t=Tn(t)))return!1;let r=null,o=zh(t);const s=!o&&Ti(t);if(o||s){if(s&&!s.standalone)return!1;r=t}else{const l=t.ngModule;if(o=zh(l),!o)return!1;r=l}const a=i.has(r);if(s){if(a)return!1;if(i.add(r),s.dependencies){const l="function"==typeof s.dependencies?s.dependencies():s.dependencies;for(const c of l)dg(c,n,e,i)}}else{if(!o)return!1;{if(null!=o.imports&&!a){let c;i.add(r);try{_u(o.imports,d=>{dg(d,n,e,i)&&(c||=[],c.push(d))})}finally{}void 0!==c&&xC(c,n)}if(!a){const c=ir(r)||(()=>new r);n({provide:r,useFactory:c,deps:Zi},r),n({provide:M_,useValue:r,multi:!0},r),n({provide:Qa,useValue:()=>oe(r),multi:!0},r)}const l=o.providers;if(null!=l&&!a){const c=t;$h(l,d=>{n(d,c)})}}}return r!==t&&void 0!==t.providers}function $h(t,n){for(let e of t)v_(e)&&(e=e.\u0275providers),Array.isArray(e)?$h(e,n):n(e)}const hk=Vi({provide:String,useValue:Vi});function I_(t){return null!==t&&"object"==typeof t&&hk in t}function Eu(t){return"function"==typeof t}const B_=new ot(""),ug={},mk={};let D_;function jh(){return void 0===D_&&(D_=new og),D_}class ml{}class Kh extends ml{get destroyed(){return this._destroyed}constructor(n,e,i,r){super(),this.parent=e,this.source=i,this.scopes=r,this.records=new Map,this._ngOnDestroyHooks=new Set,this._onDestroyHooks=[],this._destroyed=!1,R_(n,s=>this.processProvider(s)),this.records.set(ql,Ac(void 0,this)),r.has("environment")&&this.records.set(ml,Ac(void 0,this));const o=this.records.get(B_);null!=o&&"string"==typeof o.value&&this.scopes.add(o.value),this.injectorDefTypes=new Set(this.get(M_,Zi,Qi.Self))}destroy(){this.assertNotDestroyed(),this._destroyed=!0;const n=N(null);try{for(const i of this._ngOnDestroyHooks)i.ngOnDestroy();const e=this._onDestroyHooks;this._onDestroyHooks=[];for(const i of e)i()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),N(n)}}onDestroy(n){return this.assertNotDestroyed(),this._onDestroyHooks.push(n),()=>this.removeOnDestroy(n)}runInContext(n){this.assertNotDestroyed();const e=Va(this),i=na(void 0);try{return n()}finally{Va(e),na(i)}}get(n,e=Vm,i=Qi.Default){if(this.assertNotDestroyed(),n.hasOwnProperty(JA))return n[JA](this);i=Qm(i);const o=Va(this),s=na(void 0);try{if(!(i&Qi.SkipSelf)){let l=this.records.get(n);if(void 0===l){const c=function _k(t){return"function"==typeof t||"object"==typeof t&&t instanceof ot}(n)&&Om(n);l=c&&this.injectableDefInScope(c)?Ac(hg(n),ug):null,this.records.set(n,l)}if(null!=l)return this.hydrate(n,l)}return(i&Qi.Self?jh():this.parent).get(n,e=i&Qi.Optional&&e===Vm?null:e)}catch(a){if("NullInjectorError"===a.name){if((a[eg]=a[eg]||[]).unshift(qr(n)),o)throw a;return function bd(t,n,e,i){const r=t[eg];throw n[tg]&&r.unshift(n[tg]),t.message=function ko(t,n,e,i=null){t=t&&"\n"===t.charAt(0)&&"\u0275"==t.charAt(1)?t.slice(2):t;let r=qr(n);if(Array.isArray(n))r=n.map(qr).join(" -> ");else if("object"==typeof n){let o=[];for(let s in n)if(n.hasOwnProperty(s)){let a=n[s];o.push(s+":"+("string"==typeof a?JSON.stringify(a):qr(a)))}r=`{${o.join(", ")}}`}return`${e}${i?"("+i+")":""}[${r}]: ${t.replace(ek,"\n ")}`}("\n"+t.message,r,e,i),t.ngTokenPath=r,t[eg]=null,t}(a,n,"R3InjectorError",this.source)}throw a}finally{na(s),Va(o)}}resolveInjectorInitializers(){const n=N(null),e=Va(this),i=na(void 0);try{const o=this.get(Qa,Zi,Qi.Self);for(const s of o)s()}finally{Va(e),na(i),N(n)}}toString(){const n=[],e=this.records;for(const i of e.keys())n.push(qr(i));return`R3Injector[${n.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new ct(205,!1)}processProvider(n){let e=Eu(n=Tn(n))?n:Tn(n&&n.provide);const i=function Ak(t){return I_(t)?Ac(void 0,t.useValue):Ac(fg(t),ug)}(n);if(!Eu(n)&&!0===n.multi){let r=this.records.get(e);r||(r=Ac(void 0,ug,!0),r.factory=()=>gd(r.multi),this.records.set(e,r)),e=n,r.multi.push(n)}this.records.set(e,i)}hydrate(n,e){const i=N(null);try{return e.value===ug&&(e.value=mk,e.value=e.factory()),"object"==typeof e.value&&e.value&&function bk(t){return null!==t&&"object"==typeof t&&"function"==typeof t.ngOnDestroy}(e.value)&&this._ngOnDestroyHooks.add(e.value),e.value}finally{N(i)}}injectableDefInScope(n){if(!n.providedIn)return!1;const e=Tn(n.providedIn);return"string"==typeof e?"any"===e||this.scopes.has(e):this.injectorDefTypes.has(e)}removeOnDestroy(n){const e=this._onDestroyHooks.indexOf(n);-1!==e&&this._onDestroyHooks.splice(e,1)}}function hg(t){const n=Om(t),e=null!==n?n.factory:ir(t);if(null!==e)return e;if(t instanceof ot)throw new ct(204,!1);if(t instanceof Function)return function pk(t){if(t.length>0)throw new ct(204,!1);const e=function A_(t){return t&&(t[Gh]||t[oC])||null}(t);return null!==e?()=>e.factory(t):()=>new t}(t);throw new ct(204,!1)}function fg(t,n,e){let i;if(Eu(t)){const r=Tn(t);return ir(r)||hg(r)}if(I_(t))i=()=>Tn(t.useValue);else if(function EC(t){return!(!t||!t.useFactory)}(t))i=()=>t.useFactory(...gd(t.deps||[]));else if(function CC(t){return!(!t||!t.useExisting)}(t))i=()=>oe(Tn(t.useExisting));else{const r=Tn(t&&(t.useClass||t.provide));if(!function gk(t){return!!t.deps}(t))return ir(r)||hg(r);i=()=>new r(...gd(t.deps))}return i}function Ac(t,n,e=!1){return{factory:t,value:n,multi:e?[]:void 0}}function R_(t,n){for(const e of t)Array.isArray(e)?R_(e,n):e&&v_(e)?R_(e.\u0275providers,n):n(e)}function MC(){return void 0!==lC()||null!=function cC(){return bu}()}function _d(t){if(!MC())throw new ct(-203,!1)}const Wr=0,Zt=1,Vn=2,wo=3,qa=4,Ms=5,ga=6,Yh=7,kr=8,us=9,pl=10,Yn=11,Xm=12,Io=13,Zh=14,to=15,Ym=16,Jh=17,gc=18,ef=19,FC=20,vd=21,pg=22,Mu=23,ci=25,N_=1,sn=7,nf=9,no=10;var Wa=function(t){return t[t.None=0]="None",t[t.HasTransplantedViews=2]="HasTransplantedViews",t}(Wa||{});function Ss(t){return Array.isArray(t)&&"object"==typeof t[N_]}function hs(t){return Array.isArray(t)&&!0===t[N_]}function Su(t){return!!(4&t.flags)}function Wl(t){return t.componentOffset>-1}function gg(t){return!(1&~t.flags)}function Al(t){return!!t.template}function O_(t){return!!(512&t[Vn])}class z_{constructor(n,e,i){this.previousValue=n,this.currentValue=e,this.firstChange=i}isFirstChange(){return this.firstChange}}function G_(t,n,e,i){null!==n?n.applyValueToInputSignal(n,i):t[e]=i}function cr(){return LC}function LC(t){return t.type.prototype.ngOnChanges&&(t.setInput=q_),PC}function PC(){const t=W_(this),n=t?.current;if(n){const e=t.previous;if(e===fl)t.previous=n;else for(let i in n)e[i]=n[i];t.current=null,this.ngOnChanges(n)}}function q_(t,n,e,i,r){const o=this.declaredInputs[i],s=W_(t)||function NC(t,n){return t[bg]=n}(t,{previous:fl,current:null}),a=s.current||(s.current={}),l=s.previous,c=l[o];a[o]=new z_(c&&c.currentValue,e,l===fl),G_(t,n,r,e)}cr.ngInherit=!0;const bg="__ngSimpleChanges__";function W_(t){return t[bg]||null}const $a=function(t,n,e){},UC="svg";let VC=!1;function br(t){for(;Array.isArray(t);)t=t[Wr];return t}function Jm(t,n){return br(n[t])}function Qs(t,n){return br(n[t.index])}function ep(t,n){return t.data[n]}function rf(t,n){return t[n]}function ba(t,n){const e=n[t];return Ss(e)?e:e[Wr]}function vg(t){return!(128&~t[Vn])}function Ka(t,n){return null==n?null:t[n]}function j_(t){t[Jh]=0}function fs(t){1024&t[Vn]||(t[Vn]|=1024,vg(t)&&af(t))}function K_(t){return!!(9216&t[Vn]||t[Mu]?.dirty)}function X_(t){t[pl].changeDetectionScheduler?.notify(1),K_(t)?af(t):64&t[Vn]&&(function ja(){return VC}()?(t[Vn]|=1024,af(t)):t[pl].changeDetectionScheduler?.notify())}function af(t){t[pl].changeDetectionScheduler?.notify();let n=Fu(t);for(;null!==n&&!(8192&n[Vn])&&(n[Vn]|=8192,vg(n));)n=Fu(n)}function lf(t,n){if(!(256&~t[Vn]))throw new ct(911,!1);null===t[vd]&&(t[vd]=[]),t[vd].push(n)}function Fu(t){const n=t[wo];return hs(n)?n[wo]:n}const Zn={lFrame:lv(null),bindingsEnabled:!0,skipHydrationRootTNode:null};function Z_(){return Zn.bindingsEnabled}function ku(){return null!==Zn.skipHydrationRootTNode}function xt(){return Zn.lFrame.lView}function Bi(){return Zn.lFrame.tView}function Ft(t){return Zn.lFrame.contextLView=t,t[kr]}function kt(t){return Zn.lFrame.contextLView=null,t}function fr(){let t=ev();for(;null!==t&&64===t.type;)t=t.parent;return t}function ev(){return Zn.lFrame.currentTNode}function gl(t,n){const e=Zn.lFrame;e.currentTNode=t,e.isParent=n}function yg(){return Zn.lFrame.isParent}function wg(){Zn.lFrame.isParent=!1}function Ts(){const t=Zn.lFrame;let n=t.bindingRootIndex;return-1===n&&(n=t.bindingRootIndex=t.tView.bindingStartIndex),n}function bc(){return Zn.lFrame.bindingIndex}function Xa(){return Zn.lFrame.bindingIndex++}function ra(t){const n=Zn.lFrame,e=n.bindingIndex;return n.bindingIndex=n.bindingIndex+t,e}function Ok(t,n){const e=Zn.lFrame;e.bindingIndex=e.bindingRootIndex=t,rv(n)}function rv(t){Zn.lFrame.currentDirectiveIndex=t}function xg(){return Zn.lFrame.currentQueryIndex}function cf(t){Zn.lFrame.currentQueryIndex=t}function $C(t){const n=t[Zt];return 2===n.type?n.declTNode:1===n.type?t[Ms]:null}function sv(t,n,e){if(e&Qi.SkipSelf){let r=n,o=t;for(;!(r=r.parent,null!==r||e&Qi.Host||(r=$C(o),null===r||(o=o[Zh],10&r.type))););if(null===r)return!1;n=r,t=o}const i=Zn.lFrame=av();return i.currentTNode=n,i.lView=t,!0}function np(t){const n=av(),e=t[Zt];Zn.lFrame=n,n.currentTNode=e.firstChild,n.lView=t,n.tView=e,n.contextLView=t,n.bindingIndex=e.bindingStartIndex,n.inI18n=!1}function av(){const t=Zn.lFrame,n=null===t?null:t.child;return null===n?lv(t):n}function lv(t){const n={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:t,child:null,inI18n:!1};return null!==t&&(t.child=n),n}function jC(){const t=Zn.lFrame;return Zn.lFrame=t.parent,t.currentTNode=null,t.lView=null,t}const ip=jC;function df(){const t=jC();t.isParent=!0,t.tView=null,t.selectedIndex=-1,t.contextLView=null,t.elementDepthCount=0,t.currentDirectiveIndex=-1,t.currentNamespace=null,t.bindingRootIndex=-1,t.bindingIndex=-1,t.currentQueryIndex=0}function ms(){return Zn.lFrame.selectedIndex}function Bu(t){Zn.lFrame.selectedIndex=t}function Mr(){const t=Zn.lFrame;return ep(t.tView,t.selectedIndex)}function bl(){Zn.lFrame.currentNamespace=UC}function Cg(){!function uf(){Zn.lFrame.currentNamespace=null}()}let ho=!0;function _l(){return ho}function zs(t){ho=t}function vl(t,n){for(let e=n.directiveStart,i=n.directiveEnd;e=i)break}else n[l]<0&&(t[Jh]+=65536),(a>14>16&&(3&t[Vn])===n&&(t[Vn]+=16384,uv(a,o)):uv(a,o)}const $l=-1;class hf{constructor(n,e,i){this.factory=n,this.resolving=!1,this.canSeeViewProviders=e,this.injectImpl=i}}function rp(t){return t!==$l}function op(t){return 32767&t}function sp(t,n){let e=function Gk(t){return t>>16}(t),i=n;for(;e>0;)i=i[Zh],e--;return i}let fv=!0;function Mg(t){const n=fv;return fv=t,n}const Sg=255,mv=5;let qk=0;const jl={};function Tg(t,n){const e=JC(t,n);if(-1!==e)return e;const i=n[Zt];i.firstCreatePass&&(t.injectorIndex=n.length,pv(i.data,t),pv(n,null),pv(i.blueprint,null));const r=Fg(t,n),o=t.injectorIndex;if(rp(r)){const s=op(r),a=sp(r,n),l=a[Zt].data;for(let c=0;c<8;c++)n[o+c]=a[s+c]|l[s+c]}return n[o+8]=r,o}function pv(t,n){t.push(0,0,0,0,0,0,0,0,n)}function JC(t,n){return-1===t.injectorIndex||t.parent&&t.parent.injectorIndex===t.injectorIndex||null===n[t.injectorIndex+8]?-1:t.injectorIndex}function Fg(t,n){if(t.parent&&-1!==t.parent.injectorIndex)return t.parent.injectorIndex;let e=0,i=null,r=n;for(;null!==r;){if(i=_v(r),null===i)return $l;if(e++,r=r[Zh],-1!==i.injectorIndex)return i.injectorIndex|e<<16}return $l}function Av(t,n,e){!function ZC(t,n,e){let i;"string"==typeof e?i=e.charCodeAt(0)||0:e.hasOwnProperty(Ad)&&(i=e[Ad]),null==i&&(i=e[Ad]=qk++);const r=i&Sg;n.data[t+(r>>mv)]|=1<=0?n&Sg:$k:n}(e);if("function"==typeof o){if(!sv(n,t,i))return i&Qi.Host?e2(r,0,i):kg(n,e,i,r);try{let s;if(s=o(i),null!=s||i&Qi.Optional)return s;y_()}finally{ip()}}else if("number"==typeof o){let s=null,a=JC(t,n),l=$l,c=i&Qi.Host?n[to][Ms]:null;for((-1===a||i&Qi.SkipSelf)&&(l=-1===a?Fg(t,n):n[a+8],l!==$l&&Lr(i,!1)?(s=n[Zt],a=op(l),n=sp(l,n)):a=-1);-1!==a;){const d=n[Zt];if(dr(o,a,d.data)){const u=mf(a,n,e,s,i,c);if(u!==jl)return u}l=n[a+8],l!==$l&&Lr(i,n[Zt].data[a+8]===c)&&dr(o,a,n)?(s=d,a=op(l),n=sp(l,n)):a=-1}}return r}function mf(t,n,e,i,r,o){const s=n[Zt],a=s.data[t+8],d=Du(a,s,e,null==i?Wl(a)&&fv:i!=s&&!!(3&a.type),r&Qi.Host&&o===a);return null!==d?Jo(n,s,d,a):jl}function Du(t,n,e,i,r){const o=t.providerIndexes,s=n.data,a=1048575&o,l=t.directiveStart,d=o>>20,h=r?a+d:t.directiveEnd;for(let m=i?a:a+d;m=l&&A.type===e)return m}if(r){const m=s[l];if(m&&Al(m)&&m.type===e)return l}return null}function Jo(t,n,e,i){let r=t[e];const o=n.data;if(function XC(t){return t instanceof hf}(r)){const s=r;s.resolving&&function Y3(t,n){throw n&&n.join(" > "),new ct(-200,t)}(function sr(t){return"function"==typeof t?t.name||t.toString():"object"==typeof t&&null!=t&&"function"==typeof t.type?t.type.name||t.type.toString():li(t)}(o[e]));const a=Mg(s.canSeeViewProviders);s.resolving=!0;const c=s.injectImpl?na(s.injectImpl):null;sv(t,i,Qi.Default);try{r=t[e]=s.factory(void 0,o,t,i),n.firstCreatePass&&e>=i.directiveStart&&function yd(t,n,e){const{ngOnChanges:i,ngOnInit:r,ngDoCheck:o}=n.type.prototype;if(i){const s=LC(n);(e.preOrderHooks??=[]).push(t,s),(e.preOrderCheckHooks??=[]).push(t,s)}r&&(e.preOrderHooks??=[]).push(0-t,r),o&&((e.preOrderHooks??=[]).push(t,o),(e.preOrderCheckHooks??=[]).push(t,o))}(e,o[e],n)}finally{null!==c&&na(c),Mg(a),s.resolving=!1,ip()}}return r}function dr(t,n,e){return!!(e[n+(t>>mv)]&1<{const n=t.prototype.constructor,e=n[Cs]||bv(n),i=Object.prototype;let r=Object.getPrototypeOf(t.prototype).constructor;for(;r&&r!==i;){const o=r[Cs]||bv(r);if(o&&o!==e)return o;r=Object.getPrototypeOf(r)}return o=>new o})}function bv(t){return Ua(t)?()=>{const n=bv(Tn(t));return n&&n()}:ir(t)}function _v(t){const n=t[Zt],e=n.type;return 2===e?n.declTNode:1===e?t[Ms]:null}function Kl(t){return function gv(t,n){if("class"===n)return t.classes;if("style"===n)return t.styles;const e=t.attrs;if(e){const i=e.length;let r=0;for(;r{class t{static{this.THROW_IF_NOT_FOUND=Vm}static{this.NULL=new og}static create(e,i){if(Array.isArray(e))return lp({name:""},i,e,"");{const r=e.name??"";return lp({name:r},e.parent,e.providers,r)}}static{this.\u0275prov=Mt({token:t,providedIn:"any",factory:()=>oe(ql)})}static{this.__NG_ELEMENT_ID__=-1}}return t})();function yv(t){return t.ngOriginalError}class es{constructor(){this._console=console}handleError(n){const e=this._findOriginalError(n);this._console.error("ERROR",n),e&&this._console.error("ORIGINAL ERROR",e)}_findOriginalError(n){let e=n&&yv(n);for(;e&&yv(e);)e=yv(e);return e||null}}const u2=new ot("",{providedIn:"root",factory:()=>Ut(es).handleError.bind(void 0)});let xd=(()=>{class t{static{this.__NG_ELEMENT_ID__=Zk}static{this.__NG_ENV_ID__=e=>e}}return t})();class h2 extends xd{constructor(n){super(),this._lView=n}onDestroy(n){return lf(this._lView,n),()=>function Y_(t,n){if(null===t[vd])return;const e=t[vd].indexOf(n);-1!==e&&t[vd].splice(e,1)}(this._lView,n)}}function Zk(){return new h2(xt())}function Jk(){return Af(fr(),xt())}function Af(t,n){return new Un(Qs(t,n))}let Un=(()=>{class t{constructor(e){this.nativeElement=e}static{this.__NG_ELEMENT_ID__=Jk}}return t})();function f2(t){return t instanceof Un?t.nativeElement:t}function xv(t){return n=>{setTimeout(t,void 0,n)}}const Ln=class eI extends Yt{constructor(n=!1){super(),this.destroyRef=void 0,this.__isAsync=n,MC()&&(this.destroyRef=Ut(xd,{optional:!0})??void 0)}emit(n){const e=N(null);try{super.next(n)}finally{N(e)}}subscribe(n,e,i){let r=n,o=e||(()=>null),s=i;if(n&&"object"==typeof n){const l=n;r=l.next?.bind(l),o=l.error?.bind(l),s=l.complete?.bind(l)}this.__isAsync&&(o=xv(o),r&&(r=xv(r)),s&&(s=xv(s)));const a=super.subscribe({next:r,error:o,complete:s});return n instanceof on&&n.add(a),a}};function tI(){return this._results[Symbol.iterator]()}class Lu{get changes(){return this._changes??=new Ln}constructor(n=!1){this._emitDistinctChangesOnly=n,this.dirty=!0,this._onDirty=void 0,this._results=[],this._changesDetected=!1,this._changes=void 0,this.length=0,this.first=void 0,this.last=void 0;const e=Lu.prototype;e[Symbol.iterator]||(e[Symbol.iterator]=tI)}get(n){return this._results[n]}map(n){return this._results.map(n)}filter(n){return this._results.filter(n)}find(n){return this._results.find(n)}reduce(n,e){return this._results.reduce(n,e)}forEach(n){this._results.forEach(n)}some(n){return this._results.some(n)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(n,e){this.dirty=!1;const i=function Vs(t){return t.flat(Number.POSITIVE_INFINITY)}(n);(this._changesDetected=!function uC(t,n,e){if(t.length!==n.length)return!1;for(let i=0;iRoe}),Roe="ng",K6=new ot(""),vf=new ot("",{providedIn:"platform",factory:()=>"unknown"}),ts=new ot(""),iI=new ot("",{providedIn:"root",factory:()=>_f().body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce")||null});let X6=()=>null;function uI(t,n,e=!1){return X6(t,n,e)}const tU=new ot("",{providedIn:"root",factory:()=>!1});let v2,y2;function Pg(t){return function pI(){if(void 0===v2&&(v2=null,bi.trustedTypes))try{v2=bi.trustedTypes.createPolicy("angular",{createHTML:t=>t,createScript:t=>t,createScriptURL:t=>t})}catch{}return v2}()?.createHTML(t)||t}function iU(t){return function AI(){if(void 0===y2&&(y2=null,bi.trustedTypes))try{y2=bi.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:t=>t,createScript:t=>t,createScriptURL:t=>t})}catch{}return y2}()?.createHTML(t)||t}class cp{constructor(n){this.changingThisBreaksApplicationSecurity=n}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${Li})`}}function wl(t){return t instanceof cp?t.changingThisBreaksApplicationSecurity:t}function Md(t,n){const e=function Joe(t){return t instanceof cp&&t.getTypeName()||null}(t);if(null!=e&&e!==n){if("ResourceURL"===e&&"URL"===n)return!0;throw new Error(`Required a safe ${n}, got a ${e} (see ${Li})`)}return e===n}class ose{constructor(n){this.inertDocumentHelper=n}getInertBodyElement(n){n=""+n;try{const e=(new window.DOMParser).parseFromString(Pg(n),"text/html").body;return null===e?this.inertDocumentHelper.getInertBodyElement(n):(e.removeChild(e.firstChild),e)}catch{return null}}}class sse{constructor(n){this.defaultDoc=n,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert")}getInertBodyElement(n){const e=this.inertDocument.createElement("template");return e.innerHTML=Pg(n),e}}const lse=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;function w2(t){return(t=String(t)).match(lse)?t:"unsafe:"+t}function Nu(t){const n={};for(const e of t.split(","))n[e]=!0;return n}function Fv(...t){const n={};for(const e of t)for(const i in e)e.hasOwnProperty(i)&&(n[i]=!0);return n}const aU=Nu("area,br,col,hr,img,wbr"),lU=Nu("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),cU=Nu("rp,rt"),gI=Fv(aU,Fv(lU,Nu("address,article,aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul")),Fv(cU,Nu("a,abbr,acronym,audio,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video")),Fv(cU,lU)),bI=Nu("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),dU=Fv(bI,Nu("abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,scope,scrolling,shape,size,sizes,span,srclang,srcset,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"),Nu("aria-activedescendant,aria-atomic,aria-autocomplete,aria-busy,aria-checked,aria-colcount,aria-colindex,aria-colspan,aria-controls,aria-current,aria-describedby,aria-details,aria-disabled,aria-dropeffect,aria-errormessage,aria-expanded,aria-flowto,aria-grabbed,aria-haspopup,aria-hidden,aria-invalid,aria-keyshortcuts,aria-label,aria-labelledby,aria-level,aria-live,aria-modal,aria-multiline,aria-multiselectable,aria-orientation,aria-owns,aria-placeholder,aria-posinset,aria-pressed,aria-readonly,aria-relevant,aria-required,aria-roledescription,aria-rowcount,aria-rowindex,aria-rowspan,aria-selected,aria-setsize,aria-sort,aria-valuemax,aria-valuemin,aria-valuenow,aria-valuetext")),cse=Nu("script,style,template");class dse{constructor(){this.sanitizedSomething=!1,this.buf=[]}sanitizeChildren(n){let e=n.firstChild,i=!0,r=[];for(;e;)if(e.nodeType===Node.ELEMENT_NODE?i=this.startElement(e):e.nodeType===Node.TEXT_NODE?this.chars(e.nodeValue):this.sanitizedSomething=!0,i&&e.firstChild)r.push(e),e=fse(e);else for(;e;){e.nodeType===Node.ELEMENT_NODE&&this.endElement(e);let o=hse(e);if(o){e=o;break}e=r.pop()}return this.buf.join("")}startElement(n){const e=uU(n).toLowerCase();if(!gI.hasOwnProperty(e))return this.sanitizedSomething=!0,!cse.hasOwnProperty(e);this.buf.push("<"),this.buf.push(e);const i=n.attributes;for(let r=0;r"),!0}endElement(n){const e=uU(n).toLowerCase();gI.hasOwnProperty(e)&&!aU.hasOwnProperty(e)&&(this.buf.push(""))}chars(n){this.buf.push(fU(n))}}function hse(t){const n=t.nextSibling;if(n&&t!==n.previousSibling)throw hU(n);return n}function fse(t){const n=t.firstChild;if(n&&function use(t,n){return(t.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_CONTAINED_BY)!==Node.DOCUMENT_POSITION_CONTAINED_BY}(t,n))throw hU(n);return n}function uU(t){const n=t.nodeName;return"string"==typeof n?n:"FORM"}function hU(t){return new Error(`Failed to sanitize html because the element is clobbered: ${t.outerHTML}`)}const mse=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,pse=/([^\#-~ |!])/g;function fU(t){return t.replace(/&/g,"&").replace(mse,function(n){return"&#"+(1024*(n.charCodeAt(0)-55296)+(n.charCodeAt(1)-56320)+65536)+";"}).replace(pse,function(n){return"&#"+n.charCodeAt(0)+";"}).replace(//g,">")}let x2;function mU(t,n){let e=null;try{x2=x2||function sU(t){const n=new sse(t);return function ase(){try{return!!(new window.DOMParser).parseFromString(Pg(""),"text/html")}catch{return!1}}()?new ose(n):n}(t);let i=n?String(n):"";e=x2.getInertBodyElement(i);let r=5,o=i;do{if(0===r)throw new Error("Failed to sanitize html because the input is unstable");r--,i=o,o=e.innerHTML,e=x2.getInertBodyElement(i)}while(i!==o);return Pg((new dse).sanitizeChildren(_I(e)||e))}finally{if(e){const i=_I(e)||e;for(;i.firstChild;)i.removeChild(i.firstChild)}}}function _I(t){return"content"in t&&function Ase(t){return t.nodeType===Node.ELEMENT_NODE&&"TEMPLATE"===t.nodeName}(t)?t.content:null}var Ws=function(t){return t[t.NONE=0]="NONE",t[t.HTML=1]="HTML",t[t.STYLE=2]="STYLE",t[t.SCRIPT=3]="SCRIPT",t[t.URL=4]="URL",t[t.RESOURCE_URL=5]="RESOURCE_URL",t}(Ws||{});function vI(t){const n=kv();return n?iU(n.sanitize(Ws.HTML,t)||""):Md(t,"HTML")?iU(wl(t)):mU(_f(),li(t))}function dp(t){const n=kv();return n?n.sanitize(Ws.URL,t)||"":Md(t,"URL")?wl(t):w2(li(t))}function kv(){const t=xt();return t&&t[pl].sanitizer}const xse=/^>|^->||--!>|)/g,Ese="\u200b$1\u200b";function Iv(t){return t.ownerDocument.defaultView}function _U(t){return t.ownerDocument}var wf=function(t){return t[t.Important=1]="Important",t[t.DashCase=2]="DashCase",t}(wf||{});let CI;function EI(t,n){return CI(t,n)}function Og(t,n,e,i,r){if(null!=i){let o,s=!1;hs(i)?o=i:Ss(i)&&(s=!0,i=i[Wr]);const a=br(i);0===t&&null!==e?null==r?TU(n,e,a):up(n,e,a,r||null,!0):1===t&&null!==e?up(n,e,a,r||null,!0):2===t?function Rv(t,n,e){const i=T2(t,n);i&&function Qse(t,n,e,i){t.removeChild(n,e,i)}(t,i,n,e)}(n,a,s):3===t&&n.destroyNode(a),null!=o&&function qse(t,n,e,i,r){const o=e[sn];o!==br(e)&&Og(n,t,i,o,r);for(let a=no;an.replace(Cse,Ese))}(n))}function M2(t,n,e){return t.createElement(n,e)}function EU(t,n){n[pl].changeDetectionScheduler?.notify(1),k2(t,n,n[Yn],2,null,null)}function MU(t,n){const e=t[nf],i=e.indexOf(n);e.splice(i,1)}function Bv(t,n){if(t.length<=no)return;const e=no+n,i=t[e];if(i){const r=i[Ym];null!==r&&r!==t&&MU(r,i),n>0&&(t[e-1][qa]=i[qa]);const o=vu(t,no+n);!function Lse(t,n){EU(t,n),n[Wr]=null,n[Ms]=null}(i[Zt],i);const s=o[gc];null!==s&&s.detachView(o[Zt]),i[wo]=null,i[qa]=null,i[Vn]&=-129}return i}function S2(t,n){if(!(256&n[Vn])){const e=n[Yn];e.destroyNode&&k2(t,n,e,3,null,null),function Nse(t){let n=t[Xm];if(!n)return TI(t[Zt],t);for(;n;){let e=null;if(Ss(n))e=n[Xm];else{const i=n[no];i&&(e=i)}if(!e){for(;n&&!n[qa]&&n!==t;)Ss(n)&&TI(n[Zt],n),n=n[wo];null===n&&(n=t),Ss(n)&&TI(n[Zt],n),e=n&&n[qa]}n=e}}(n)}}function TI(t,n){if(256&n[Vn])return;const e=N(null);try{n[Vn]&=-129,n[Vn]|=256,n[Mu]&&Xe(n[Mu]),function Vse(t,n){let e;if(null!=t&&null!=(e=t.destroyHooks))for(let i=0;i=0?i[s]():i[-s].unsubscribe(),o+=2}else e[o].call(i[e[o+1]]);null!==i&&(n[Yh]=null);const r=n[vd];if(null!==r){n[vd]=null;for(let o=0;o-1){const{encapsulation:o}=t.data[i.directiveStart+r];if(o===za.None||o===za.Emulated)return null}return Qs(i,e)}}(t,n.parent,e)}function up(t,n,e,i,r){t.insertBefore(n,e,i,r)}function TU(t,n,e){t.appendChild(n,e)}function FU(t,n,e,i,r){null!==i?up(t,n,e,i,r):TU(t,n,e)}function T2(t,n){return t.parentNode(n)}function kU(t,n,e){return BU(t,n,e)}let kI,BU=function IU(t,n,e){return 40&t.type?Qs(t,e):null};function F2(t,n,e,i){const r=FI(t,i,n),o=n[Yn],a=kU(i.parent||n[Ms],i,n);if(null!=r)if(Array.isArray(e))for(let l=0;lci&&UU(t,n,ci,!1),$a(s?2:0,r),e(i,r)}finally{Bu(o),$a(s?3:1,r)}}function RI(t,n,e){if(Su(n)){const i=N(null);try{const o=n.directiveEnd;for(let s=n.directiveStart;snull;function qU(t,n,e,i,r){for(let o in n){if(!n.hasOwnProperty(o))continue;const s=n[o];if(void 0===s)continue;i??={};let a,l=bt.None;Array.isArray(s)?(a=s[0],l=s[1]):a=s;let c=o;if(null!==r){if(!r.hasOwnProperty(o))continue;c=r[o]}0===t?WU(i,e,c,a,l):WU(i,e,c,a)}return i}function WU(t,n,e,i,r){let o;t.hasOwnProperty(e)?(o=t[e]).push(n,i):o=t[e]=[n,i],void 0!==r&&o.push(r)}function Ja(t,n,e,i,r,o,s,a){const l=Qs(n,e);let d,c=n.inputs;!a&&null!=c&&(d=c[i])?(QI(t,e,d,i,r),Wl(n)&&function rae(t,n){const e=ba(n,t);16&e[Vn]||(e[Vn]|=64)}(e,n.index)):3&n.type&&(i=function iae(t){return"class"===t?"className":"for"===t?"htmlFor":"formaction"===t?"formAction":"innerHtml"===t?"innerHTML":"readonly"===t?"readOnly":"tabindex"===t?"tabIndex":t}(i),r=null!=s?s(r,n.value||"",i):r,o.setProperty(l,i,r))}function OI(t,n,e,i){if(Z_()){const r=null===i?null:{"":-1},o=function dae(t,n){const e=t.directiveRegistry;let i=null,r=null;if(e)for(let o=0;o0;){const e=t[--n];if("number"==typeof e&&e<0)return e}return 0})(s)!=a&&s.push(a),s.push(e,i,o)}}(t,n,i,Lv(t,e,r.hostVars,gi),r)}function Sd(t,n,e,i,r,o){const s=Qs(t,n);!function HI(t,n,e,i,r,o,s){if(null==o)t.removeAttribute(n,r,e);else{const a=null==s?li(o):s(o,i||"",r);t.setAttribute(n,r,a,e)}}(n[Yn],s,o,t.value,e,i,r)}function Aae(t,n,e,i,r,o){const s=o[n];if(null!==s)for(let a=0;a0&&(e[r-1][qa]=n),i{af(t.lView)},consumerOnSignalRead(){this.lView[Mu]=this}},i7=100;function R2(t,n=!0,e=0){const i=t[pl],r=i.rendererFactory;r.begin?.();try{!function Eae(t,n){qI(t,n);let e=0;for(;K_(t);){if(e===i7)throw new ct(103,!1);e++,qI(t,1)}}(t,e)}catch(s){throw n&&D2(t,s),s}finally{r.end?.(),i.inlineEffectRunner?.flush()}}function Mae(t,n,e,i){const r=n[Vn];if(!(256&~r))return;n[pl].inlineEffectRunner?.flush(),np(n);let s=null,a=null;(function Sae(t){return 2!==t.type})(t)&&(a=function yae(t){return t[Mu]??function wae(t){const n=n7.pop()??Object.create(Cae);return n.lView=t,n}(t)}(n),s=Ke(a));try{j_(n),function WC(t){return Zn.lFrame.bindingIndex=t}(t.bindingStartIndex),null!==e&&QU(t,n,e,2,i);const l=!(3&~r);if(l){const u=t.preOrderCheckHooks;null!==u&&wd(n,u,null)}else{const u=t.preOrderHooks;null!==u&&Ya(n,u,0,null),Eg(n,0)}if(function Tae(t){for(let n=vc(t);null!==n;n=Gs(n)){if(!(n[Vn]&Wa.HasTransplantedViews))continue;const e=n[nf];for(let i=0;i-1&&(Bv(n,i),vu(e,i))}this._attachedToViewContainer=!1}S2(this._lView[Zt],this._lView)}onDestroy(n){lf(this._lView,n)}markForCheck(){Uv(this._cdRefInjectingView||this._lView)}detach(){this._lView[Vn]&=-129}reattach(){X_(this._lView),this._lView[Vn]|=128}detectChanges(){this._lView[Vn]|=1024,R2(this._lView,this.notifyErrorHandler)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new ct(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null,EU(this._lView[Zt],this._lView)}attachToAppRef(n){if(this._attachedToViewContainer)throw new ct(902,!1);this._appRef=n,X_(this._lView)}}let Cl=(()=>{class t{static{this.__NG_ELEMENT_ID__=Bae}}return t})();const kae=Cl,Iae=class extends kae{constructor(n,e,i){super(),this._declarationLView=n,this._declarationTContainer=e,this.elementRef=i}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(n,e){return this.createEmbeddedViewImpl(n,e)}createEmbeddedViewImpl(n,e,i){const r=Pv(this._declarationLView,this._declarationTContainer,n,{embeddedViewInjector:e,dehydratedView:i});return new Hv(r)}};function Bae(){return L2(fr(),xt())}function L2(t,n){return 4&t.type?new Iae(n,t,Af(t,n)):null}let h7=()=>null;function Vg(t,n){return h7(t,n)}class H2{}class nle{}class f7{}class rle{resolveComponentFactory(n){throw function ile(t){const n=Error(`No component factory found for ${qr(t)}.`);return n.ngComponent=t,n}(n)}}let Qg=(()=>{class t{static{this.NULL=new rle}}return t})();class YI{}let hp=(()=>{class t{constructor(){this.destroyNode=null}static{this.__NG_ELEMENT_ID__=()=>function ole(){const t=xt(),e=ba(fr().index,t);return(Ss(e)?e:t)[Yn]}()}}return t})(),sle=(()=>{class t{static{this.\u0275prov=Mt({token:t,providedIn:"root",factory:()=>null})}}return t})();const ZI={},p7=new Set;function Td(t){p7.has(t)||(p7.add(t),performance?.mark?.("mark_feature_usage",{detail:{feature:t}}))}function A7(...t){}class Fn{constructor({enableLongStackTrace:n=!1,shouldCoalesceEventChangeDetection:e=!1,shouldCoalesceRunChangeDetection:i=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Ln(!1),this.onMicrotaskEmpty=new Ln(!1),this.onStable=new Ln(!1),this.onError=new Ln(!1),typeof Zone>"u")throw new ct(908,!1);Zone.assertZonePatched();const r=this;r._nesting=0,r._outer=r._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(r._inner=r._inner.fork(new Zone.TaskTrackingZoneSpec)),n&&Zone.longStackTraceZoneSpec&&(r._inner=r._inner.fork(Zone.longStackTraceZoneSpec)),r.shouldCoalesceEventChangeDetection=!i&&e,r.shouldCoalesceRunChangeDetection=i,r.lastRequestAnimationFrameId=-1,r.nativeRequestAnimationFrame=function ale(){const t="function"==typeof bi.requestAnimationFrame;let n=bi[t?"requestAnimationFrame":"setTimeout"],e=bi[t?"cancelAnimationFrame":"clearTimeout"];if(typeof Zone<"u"&&n&&e){const i=n[Zone.__symbol__("OriginalDelegate")];i&&(n=i);const r=e[Zone.__symbol__("OriginalDelegate")];r&&(e=r)}return{nativeRequestAnimationFrame:n,nativeCancelAnimationFrame:e}}().nativeRequestAnimationFrame,function dle(t){const n=()=>{!function cle(t){t.isCheckStableRunning||-1!==t.lastRequestAnimationFrameId||(t.lastRequestAnimationFrameId=t.nativeRequestAnimationFrame.call(bi,()=>{t.fakeTopEventTask||(t.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{t.lastRequestAnimationFrameId=-1,eB(t),t.isCheckStableRunning=!0,JI(t),t.isCheckStableRunning=!1},void 0,()=>{},()=>{})),t.fakeTopEventTask.invoke()}),eB(t))}(t)};t._inner=t._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(e,i,r,o,s,a)=>{if(function ule(t){return!(!Array.isArray(t)||1!==t.length)&&!0===t[0].data?.__ignore_ng_zone__}(a))return e.invokeTask(r,o,s,a);try{return g7(t),e.invokeTask(r,o,s,a)}finally{(t.shouldCoalesceEventChangeDetection&&"eventTask"===o.type||t.shouldCoalesceRunChangeDetection)&&n(),b7(t)}},onInvoke:(e,i,r,o,s,a,l)=>{try{return g7(t),e.invoke(r,o,s,a,l)}finally{t.shouldCoalesceRunChangeDetection&&n(),b7(t)}},onHasTask:(e,i,r,o)=>{e.hasTask(r,o),i===r&&("microTask"==o.change?(t._hasPendingMicrotasks=o.microTask,eB(t),JI(t)):"macroTask"==o.change&&(t.hasPendingMacrotasks=o.macroTask))},onHandleError:(e,i,r,o)=>(e.handleError(r,o),t.runOutsideAngular(()=>t.onError.emit(o)),!1)})}(r)}static isInAngularZone(){return typeof Zone<"u"&&!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!Fn.isInAngularZone())throw new ct(909,!1)}static assertNotInAngularZone(){if(Fn.isInAngularZone())throw new ct(909,!1)}run(n,e,i){return this._inner.run(n,e,i)}runTask(n,e,i,r){const o=this._inner,s=o.scheduleEventTask("NgZoneEvent: "+r,n,lle,A7,A7);try{return o.runTask(s,e,i)}finally{o.cancelTask(s)}}runGuarded(n,e,i){return this._inner.runGuarded(n,e,i)}runOutsideAngular(n){return this._outer.run(n)}}const lle={};function JI(t){if(0==t._nesting&&!t.hasPendingMicrotasks&&!t.isStable)try{t._nesting++,t.onMicrotaskEmpty.emit(null)}finally{if(t._nesting--,!t.hasPendingMicrotasks)try{t.runOutsideAngular(()=>t.onStable.emit(null))}finally{t.isStable=!0}}}function eB(t){t.hasPendingMicrotasks=!!(t._hasPendingMicrotasks||(t.shouldCoalesceEventChangeDetection||t.shouldCoalesceRunChangeDetection)&&-1!==t.lastRequestAnimationFrameId)}function g7(t){t._nesting++,t.isStable&&(t.isStable=!1,t.onUnstable.emit(null))}function b7(t){t._nesting--,JI(t)}class _7{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Ln,this.onMicrotaskEmpty=new Ln,this.onStable=new Ln,this.onError=new Ln}run(n,e,i){return n.apply(e,i)}runGuarded(n,e,i){return n.apply(e,i)}runOutsideAngular(n){return n()}runTask(n,e,i,r){return n.apply(e,i)}}let qv=(()=>{class t{constructor(){this.handler=null,this.internalCallbacks=[]}execute(){this.executeInternalCallbacks(),this.handler?.execute()}executeInternalCallbacks(){const e=[...this.internalCallbacks];this.internalCallbacks.length=0;for(const i of e)i()}ngOnDestroy(){this.handler?.destroy(),this.handler=null,this.internalCallbacks.length=0}static{this.\u0275prov=Mt({token:t,providedIn:"root",factory:()=>new t})}}return t})();function Q2(t,n,e){let i=e?t.styles:null,r=e?t.classes:null,o=0;if(null!==n)for(let s=0;s0&&NU(t,e,o.join(" "))}}(m,P,v,i),void 0!==e&&function Cle(t,n,e){const i=t.projection=[];for(let r=0;r{class t{static{this.__NG_ELEMENT_ID__=Mle}}return t})();function Mle(){return F7(fr(),xt())}const Sle=va,S7=class extends Sle{constructor(n,e,i){super(),this._lContainer=n,this._hostTNode=e,this._hostLView=i}get element(){return Af(this._hostTNode,this._hostLView)}get injector(){return new fo(this._hostTNode,this._hostLView)}get parentInjector(){const n=Fg(this._hostTNode,this._hostLView);if(rp(n)){const e=sp(n,this._hostLView),i=op(n);return new fo(e[Zt].data[i+8],e)}return new fo(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(n){const e=T7(this._lContainer);return null!==e&&e[n]||null}get length(){return this._lContainer.length-no}createEmbeddedView(n,e,i){let r,o;"number"==typeof i?r=i:null!=i&&(r=i.index,o=i.injector);const s=Vg(this._lContainer,n.ssrId),a=n.createEmbeddedViewImpl(e||{},o,s);return this.insertImpl(a,r,Hg(this._hostTNode,s)),a}createComponent(n,e,i,r,o){const s=n&&!function Km(t){return"function"==typeof t}(n);let a;if(s)a=e;else{const A=e||{};a=A.index,i=A.injector,r=A.projectableNodes,o=A.environmentInjector||A.ngModuleRef}const l=s?n:new jv(Ti(n)),c=i||this.parentInjector;if(!o&&null==l.ngModule){const v=(s?c:this.parentInjector).get(ml,null);v&&(o=v)}const d=Ti(l.componentType??{}),u=Vg(this._lContainer,d?.id??null),m=l.create(c,r,u?.firstChild??null,o);return this.insertImpl(m.hostView,a,Hg(this._hostTNode,u)),m}insert(n,e){return this.insertImpl(n,e,!0)}insertImpl(n,e,i){const r=n._lView;if(function Ik(t){return hs(t[wo])}(r)){const a=this.indexOf(n);if(-1!==a)this.detach(a);else{const l=r[wo],c=new S7(l,l[Ms],l[wo]);c.detach(c.indexOf(n))}}const o=this._adjustIndex(e),s=this._lContainer;return Nv(s,r,o,i),n.attachToViewContainerRef(),E_(rB(s),o,n),n}move(n,e){return this.insert(n,e)}indexOf(n){const e=T7(this._lContainer);return null!==e?e.indexOf(n):-1}remove(n){const e=this._adjustIndex(n,-1),i=Bv(this._lContainer,e);i&&(vu(rB(this._lContainer),e),S2(i[Zt],i))}detach(n){const e=this._adjustIndex(n,-1),i=Bv(this._lContainer,e);return i&&null!=vu(rB(this._lContainer),e)?new Hv(i):null}_adjustIndex(n,e=0){return n??this.length+e}};function T7(t){return t[8]}function rB(t){return t[8]||(t[8]=[])}function F7(t,n){let e;const i=n[t.index];return hs(i)?e=i:(e=KU(i,n,null,t),n[t.index]=e,B2(n,e)),k7(e,n,t,i),new S7(e,t,n)}let k7=function B7(t,n,e,i){if(t[sn])return;let r;r=8&e.type?br(i):function Tle(t,n){const e=t[Yn],i=e.createComment(""),r=Qs(n,t);return up(e,T2(e,r),i,function zse(t,n){return t.nextSibling(n)}(e,r),!1),i}(n,e),t[sn]=r},oB=()=>!1;class sB{constructor(n){this.queryList=n,this.matches=null}clone(){return new sB(this.queryList)}setDirty(){this.queryList.setDirty()}}class aB{constructor(n=[]){this.queries=n}createEmbeddedView(n){const e=n.queries;if(null!==e){const i=null!==n.contentQueries?n.contentQueries[0]:e.length,r=[];for(let o=0;on.trim())}(n):n}}class lB{constructor(n=[]){this.queries=n}elementStart(n,e){for(let i=0;i0)i.push(s[a/2]);else{const c=o[a+1],d=n[-l];for(let u=no;u(J(n),n.value);return e[T]=n,e}(t),i=e[T];return n?.equal&&(i.equal=n.equal),e.set=r=>Wn(i,r),e.update=r=>function Ye(t,n){Ee()||vn(),Wn(t,n(t.value))}(i,r),e.asReadonly=H7.bind(e),e}function H7(){const t=this[T];if(void 0===t.readonlyFn){const n=()=>this();n[T]=t,t.readonlyFn=n}return t.readonlyFn}function V7(t){return G2(t)&&"function"==typeof t.set}function di(t){let n=function Z7(t){return Object.getPrototypeOf(t.prototype).constructor}(t.type),e=!0;const i=[t];for(;n;){let r;if(Al(t))r=n.\u0275cmp||n.\u0275dir;else{if(n.\u0275cmp)throw new ct(903,!1);r=n.\u0275dir}if(r){if(e){i.push(r);const s=t;s.inputs=W2(t.inputs),s.inputTransforms=W2(t.inputTransforms),s.declaredInputs=W2(t.declaredInputs),s.outputs=W2(t.outputs);const a=r.hostBindings;a&&Yle(t,a);const l=r.viewQuery,c=r.contentQueries;if(l&&Kle(t,l),c&&Xle(t,c),$le(t,r),Uh(t.outputs,r.outputs),Al(r)&&r.data.animation){const d=t.data;d.animation=(d.animation||[]).concat(r.data.animation)}}const o=r.features;if(o)for(let s=0;s=0;i--){const r=t[i];r.hostVars=n+=r.hostVars,r.hostAttrs=qm(r.hostAttrs,e=qm(e,r.hostAttrs))}}(i)}function $le(t,n){for(const e in n.inputs){if(!n.inputs.hasOwnProperty(e)||t.inputs.hasOwnProperty(e))continue;const i=n.inputs[e];if(void 0!==i&&(t.inputs[e]=i,t.declaredInputs[e]=n.declaredInputs[e],null!==n.inputTransforms)){const r=Array.isArray(i)?i[0]:i;if(!n.inputTransforms.hasOwnProperty(r))continue;t.inputTransforms??={},t.inputTransforms[r]=n.inputTransforms[r]}}}function W2(t){return t===fl?{}:t===Zi?[]:t}function Kle(t,n){const e=t.viewQuery;t.viewQuery=e?(i,r)=>{n(i,r),e(i,r)}:n}function Xle(t,n){const e=t.contentQueries;t.contentQueries=e?(i,r,o)=>{n(i,r,o),e(i,r,o)}:n}function Yle(t,n){const e=t.hostBindings;t.hostBindings=e?(i,r)=>{n(i,r),e(i,r)}:n}function Ho(t){const n=t.inputConfig,e={};for(const i in n)if(n.hasOwnProperty(i)){const r=n[i];Array.isArray(r)&&r[3]&&(e[i]=r[3])}t.inputTransforms=e}class pp{}class ice{}class pB extends pp{constructor(n,e,i){super(),this._parent=e,this._bootstrapComponents=[],this.destroyCbs=[],this.componentFactoryResolver=new E7(this);const r=function Es(t,n){const e=t[aC]||null;if(!e&&!0===n)throw new Error(`Type ${qr(t)} does not have '\u0275mod' property.`);return e}(n);this._bootstrapComponents=function xl(t){return t instanceof Function?t():t}(r.bootstrap),this._r3Injector=c2(n,e,[{provide:pp,useValue:this},{provide:Qg,useValue:this.componentFactoryResolver},...i],qr(n),new Set(["environment"])),this._r3Injector.resolveInjectorInitializers(),this.instance=this._r3Injector.get(n)}get injector(){return this._r3Injector}destroy(){const n=this._r3Injector;!n.destroyed&&n.destroy(),this.destroyCbs.forEach(e=>e()),this.destroyCbs=null}onDestroy(n){this.destroyCbs.push(n)}}class AB extends ice{constructor(n){super(),this.moduleType=n}create(n){return new pB(this.moduleType,n,[])}}class nH extends pp{constructor(n){super(),this.componentFactoryResolver=new E7(this),this.instance=null;const e=new Kh([...n.providers,{provide:pp,useValue:this},{provide:Qg,useValue:this.componentFactoryResolver}],n.parent||jh(),n.debugName,new Set(["environment"]));this.injector=e,n.runEnvironmentInitializers&&e.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(n){this.injector.onDestroy(n)}}let Ap=(()=>{class t{constructor(){this.taskId=0,this.pendingTasks=new Set,this.hasPendingTasks=new De(!1)}get _hasPendingTasks(){return this.hasPendingTasks.value}add(){this._hasPendingTasks||this.hasPendingTasks.next(!0);const e=this.taskId++;return this.pendingTasks.add(e),e}remove(e){this.pendingTasks.delete(e),0===this.pendingTasks.size&&this._hasPendingTasks&&this.hasPendingTasks.next(!1)}ngOnDestroy(){this.pendingTasks.clear(),this._hasPendingTasks&&this.hasPendingTasks.next(!1)}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();function gB(t){return null!==t&&("function"==typeof t||"object"==typeof t)}function Fd(t,n,e){return t[n]=e}function Vo(t,n,e){return!Object.is(t[n],e)&&(t[n]=e,!0)}function gp(t,n,e,i){const r=Vo(t,n,e);return Vo(t,n+1,i)||r}function Yl(t,n,e,i,r,o){const s=gp(t,n,e,i);return gp(t,n+2,r,o)||s}function ft(t,n,e,i,r,o,s,a){const l=xt(),c=Bi(),d=t+ci,u=c.firstCreatePass?function uce(t,n,e,i,r,o,s,a,l){const c=n.consts,d=Ug(n,t,4,s||null,Ka(c,a));OI(n,e,d,Ka(c,l)),vl(n,d);const u=d.tView=NI(2,d,i,r,o,n.directiveRegistry,n.pipeRegistry,null,n.schemas,c,null);return null!==n.queries&&(n.queries.template(n,d),u.queries=n.queries.embeddedTView(d)),d}(d,c,l,n,e,i,r,o,s):c.data[d];gl(u,!1);const h=rH(c,l,u,t);_l()&&F2(c,l,h,u),dn(h,l);const m=KU(h,l,h,u);return l[d]=m,B2(l,m),function I7(t,n,e){return oB(t,n,e)}(m,u,l),gg(u)&&LI(c,l,u),null!=s&&PI(l,u,a),ft}let rH=function oH(t,n,e,i){return zs(!0),n[Yn].createComment("")};function oi(t,n,e,i){const r=xt();return Vo(r,Xa(),n)&&(Bi(),Sd(Mr(),r,t,n,e,i)),oi}function Yg(t,n,e,i){return Vo(t,Xa(),e)?n+li(e)+i:gi}function Zg(t,n,e,i,r,o){const a=gp(t,bc(),e,r);return ra(2),a?n+li(e)+i+li(r)+o:gi}function tE(t,n){return t<<17|n<<2}function Ef(t){return t>>17&32767}function SB(t){return 2|t}function _p(t){return(131068&t)>>2}function TB(t,n){return-131069&t|n<<2}function FB(t){return 1|t}function PH(t,n,e,i){const r=t[e+1],o=null===n;let s=i?Ef(r):_p(r),a=!1;for(;0!==s&&(!1===a||o);){const c=t[s+1];Xce(t[s],n)&&(a=!0,t[s+1]=i?FB(c):SB(c)),s=i?Ef(c):_p(c)}a&&(t[e+1]=i?SB(r):FB(r))}function Xce(t,n){return null===t||null==n||(Array.isArray(t)?t[1]:t)===n||!(!Array.isArray(t)||"string"!=typeof n)&&wu(t,n)>=0}const As={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function NH(t){return t.substring(As.key,As.keyEnd)}function Yce(t){return t.substring(As.value,As.valueEnd)}function OH(t,n){const e=As.textEnd;return e===n?-1:(n=As.keyEnd=function ede(t,n,e){for(;n32;)n++;return n}(t,As.key=n,e),s0(t,n,e))}function UH(t,n){const e=As.textEnd;let i=As.key=s0(t,n,e);return e===i?-1:(i=As.keyEnd=function tde(t,n,e){let i;for(;n=65&&(-33&i)<=90||i>=48&&i<=57);)n++;return n}(t,i,e),i=VH(t,i,e),i=As.value=s0(t,i,e),i=As.valueEnd=function nde(t,n,e){let i=-1,r=-1,o=-1,s=n,a=s;for(;s32&&(a=s),o=r,r=i,i=-33&l}return a}(t,i,e),VH(t,i,e))}function HH(t){As.key=0,As.keyEnd=0,As.value=0,As.valueEnd=0,As.textEnd=t.length}function s0(t,n,e){for(;n=0;e=UH(n,e))qH(t,NH(n),Yce(n))}function Cc(t){Mc(cde,kd,t,!0)}function kd(t,n){for(let e=function Zce(t){return HH(t),OH(t,s0(t,0,As.textEnd))}(n);e>=0;e=OH(n,e))ar(t,NH(n),!0)}function Ec(t,n,e,i){const r=xt(),o=Bi(),s=ra(2);o.firstUpdatePass&&GH(o,t,s,i),n!==gi&&Vo(r,s,n)&&WH(o,o.data[ms()],r,r[Yn],t,r[s+1]=function ude(t,n){return null==t||""===t||("string"==typeof n?t+=n:"object"==typeof t&&(t=qr(wl(t)))),t}(n,e),i,s)}function Mc(t,n,e,i){const r=Bi(),o=ra(2);r.firstUpdatePass&&GH(r,null,o,i);const s=xt();if(e!==gi&&Vo(s,o,e)){const a=r.data[ms()];if(jH(a,i)&&!zH(r,o)){let l=i?a.classesWithoutHost:a.stylesWithoutHost;null!==l&&(e=pa(l,e||"")),kB(r,a,s,e,i)}else!function dde(t,n,e,i,r,o,s,a){r===gi&&(r=Zi);let l=0,c=0,d=0=t.expandoStartIndex}function GH(t,n,e,i){const r=t.data;if(null===r[e+1]){const o=r[ms()],s=zH(t,e);jH(o,i)&&null===n&&!s&&(n=!1),n=function rde(t,n,e,i){const r=function ov(t){const n=Zn.lFrame.currentDirectiveIndex;return-1===n?null:t[n]}(t);let o=i?n.residualClasses:n.residualStyles;if(null===r)0===(i?n.classBindings:n.styleBindings)&&(e=ty(e=IB(null,t,n,e,i),n.attrs,i),o=null);else{const s=n.directiveStylingLast;if(-1===s||t[s]!==r)if(e=IB(r,t,n,e,i),null===o){let l=function ode(t,n,e){const i=e?n.classBindings:n.styleBindings;if(0!==_p(i))return t[Ef(i)]}(t,n,i);void 0!==l&&Array.isArray(l)&&(l=IB(null,t,n,l[1],i),l=ty(l,n.attrs,i),function sde(t,n,e,i){t[Ef(e?n.classBindings:n.styleBindings)]=i}(t,n,i,l))}else o=function ade(t,n,e){let i;const r=n.directiveEnd;for(let o=1+n.directiveStylingLast;o0)&&(c=!0)):d=e,r)if(0!==l){const h=Ef(t[a+1]);t[i+1]=tE(h,a),0!==h&&(t[h+1]=TB(t[h+1],i)),t[a+1]=function Wce(t,n){return 131071&t|n<<17}(t[a+1],i)}else t[i+1]=tE(a,0),0!==a&&(t[a+1]=TB(t[a+1],i)),a=i;else t[i+1]=tE(l,0),0===a?a=i:t[l+1]=TB(t[l+1],i),l=i;c&&(t[i+1]=SB(t[i+1])),PH(t,d,i,!0),PH(t,d,i,!1),function Kce(t,n,e,i,r){const o=r?t.residualClasses:t.residualStyles;null!=o&&"string"==typeof n&&wu(o,n)>=0&&(e[i+1]=FB(e[i+1]))}(n,d,t,i,o),s=tE(a,l),o?n.classBindings=s:n.styleBindings=s}(r,o,n,e,s,i)}}function IB(t,n,e,i,r){let o=null;const s=e.directiveEnd;let a=e.directiveStylingLast;for(-1===a?a=e.directiveStart:a++;a0;){const l=t[r],c=Array.isArray(l),d=c?l[1]:l,u=null===d;let h=e[r+1];h===gi&&(h=u?Zi:void 0);let m=u?Gl(h,i):d===i?h:void 0;if(c&&!nE(m)&&(m=Gl(l,i)),nE(m)&&(a=m,s))return a;const A=t[r+1];r=s?Ef(A):_p(A)}if(null!==n){let l=o?n.residualClasses:n.residualStyles;null!=l&&(a=Gl(l,i))}return a}function nE(t){return void 0!==t}function jH(t,n){return!!(t.flags&(n?8:16))}function Uu(t,n,e){Mc(ar,kd,Yg(xt(),t,n,e),!0)}class _de{destroy(n){}updateValue(n,e){}swap(n,e){const i=Math.min(n,e),r=Math.max(n,e),o=this.detach(r);if(r-i>1){const s=this.detach(i);this.attach(i,o),this.attach(r,s)}else this.attach(i,o)}move(n,e){this.attach(e,this.detach(n))}}function BB(t,n,e,i,r){return t===e&&Object.is(n,i)?1:Object.is(r(t,n),r(e,i))?-1:0}function DB(t,n,e,i){return!(void 0===n||!n.has(i)||(t.attach(e,n.get(i)),n.delete(i),0))}function YH(t,n,e,i,r){if(DB(t,n,i,e(i,r)))t.updateValue(i,r);else{const o=t.create(i,r);t.attach(i,o)}}function ZH(t,n,e,i){const r=new Set;for(let o=n;o<=e;o++)r.add(i(o,t.at(o)));return r}class JH{constructor(){this.kvMap=new Map,this._vMap=void 0}has(n){return this.kvMap.has(n)}delete(n){if(!this.has(n))return!1;const e=this.kvMap.get(n);return void 0!==this._vMap&&this._vMap.has(e)?(this.kvMap.set(n,this._vMap.get(e)),this._vMap.delete(e)):this.kvMap.delete(n),!0}get(n){return this.kvMap.get(n)}set(n,e){if(this.kvMap.has(n)){let i=this.kvMap.get(n);void 0===this._vMap&&(this._vMap=new Map);const r=this._vMap;for(;r.has(i);)i=r.get(i);r.set(i,e)}else this.kvMap.set(n,e)}forEach(n){for(let[e,i]of this.kvMap)if(n(i,e),void 0!==this._vMap){const r=this._vMap;for(;r.has(i);)i=r.get(i),n(i,e)}}}function yt(t,n,e){Td("NgControlFlow");const i=xt(),r=Xa(),o=RB(i,ci+t);if(Vo(i,r,n)){const a=N(null);try{if(GI(o,0),-1!==n){const l=LB(i[Zt],ci+n),c=Vg(o,l.tView.ssrId);Nv(o,Pv(i,l,e,{dehydratedView:c}),0,Hg(l,c))}}finally{N(a)}}else{const a=e7(o,0);void 0!==a&&(a[kr]=e)}}class yde{constructor(n,e,i){this.lContainer=n,this.$implicit=e,this.$index=i}get $count(){return this.lContainer.length-no}}function Sr(t,n){return n}class xde{constructor(n,e,i){this.hasEmptyBlock=n,this.trackByFn=e,this.liveCollection=i}}function yr(t,n,e,i,r,o,s,a,l,c,d,u,h){Td("NgControlFlow");const m=void 0!==l,A=xt(),v=a?s.bind(A[to][kr]):s,x=new xde(m,v);A[ci+t]=x,ft(t+1,n,e,i,r,o),m&&ft(t+2,l,c,d,u,h)}class Cde extends _de{constructor(n,e,i){super(),this.lContainer=n,this.hostLView=e,this.templateTNode=i,this.needsIndexUpdate=!1}get length(){return this.lContainer.length-no}at(n){return this.getLView(n)[kr].$implicit}attach(n,e){const i=e[ga];this.needsIndexUpdate||=n!==this.length,Nv(this.lContainer,e,n,Hg(this.templateTNode,i))}detach(n){return this.needsIndexUpdate||=n!==this.length-1,function Ede(t,n){return Bv(t,n)}(this.lContainer,n)}create(n,e){const i=Vg(this.lContainer,this.templateTNode.tView.ssrId);return Pv(this.hostLView,this.templateTNode,new yde(this.lContainer,e,n),{dehydratedView:i})}destroy(n){S2(n[Zt],n)}updateValue(n,e){this.getLView(n)[kr].$implicit=e}reset(){this.needsIndexUpdate=!1}updateIndexes(){if(this.needsIndexUpdate)for(let n=0;n{t.destroy(a)})}(s,t,o.trackByFn),s.updateIndexes(),o.hasEmptyBlock){const a=Xa(),l=0===s.length;if(Vo(i,a,l)){const c=e+2,d=RB(i,c);if(l){const u=LB(r,c),h=Vg(d,u.tView.ssrId);Nv(d,Pv(i,u,void 0,{dehydratedView:h}),0,Hg(u,h))}else GI(d,0)}}}finally{N(n)}}function RB(t,n){return t[n]}function LB(t,n){return ep(t,n)}function I(t,n,e,i){const r=xt(),o=Bi(),s=ci+t,a=r[Yn],l=o.firstCreatePass?function Sde(t,n,e,i,r,o){const s=n.consts,l=Ug(n,t,2,i,Ka(s,r));return OI(n,e,l,Ka(s,o)),null!==l.attrs&&Q2(l,l.attrs,!1),null!==l.mergedAttrs&&Q2(l,l.mergedAttrs,!0),null!==n.queries&&n.queries.elementStart(n,l),l}(s,o,r,n,e,i):o.data[s],c=e9(o,r,l,a,n,t);r[s]=c;const d=gg(l);return gl(l,!0),OU(a,c,l),!function Yv(t){return!(32&~t.flags)}(l)&&_l()&&F2(o,r,c,l),0===function Bk(){return Zn.lFrame.elementDepthCount}()&&dn(c,r),function Dk(){Zn.lFrame.elementDepthCount++}(),d&&(LI(o,r,l),RI(o,l,r)),null!==i&&PI(r,l),I}function O(){let t=fr();yg()?wg():(t=t.parent,gl(t,!1));const n=t;(function GC(t){return Zn.skipHydrationRootTNode===t})(n)&&function Pk(){Zn.skipHydrationRootTNode=null}(),function Rk(){Zn.lFrame.elementDepthCount--}();const e=Bi();return e.firstCreatePass&&(vl(e,t),Su(t)&&e.queries.elementEnd(t)),null!=n.classesWithoutHost&&function Qk(t){return!!(8&t.flags)}(n)&&kB(e,n,xt(),n.classesWithoutHost,!0),null!=n.stylesWithoutHost&&function zk(t){return!!(16&t.flags)}(n)&&kB(e,n,xt(),n.stylesWithoutHost,!1),O}function _e(t,n,e,i){return I(t,n,e,i),O(),_e}let e9=(t,n,e,i,r,o)=>(zs(!0),M2(i,r,function cv(){return Zn.lFrame.currentNamespace}()));function iE(t,n,e){const i=xt(),r=Bi(),o=t+ci,s=r.firstCreatePass?function kde(t,n,e,i,r){const o=n.consts,s=Ka(o,i),a=Ug(n,t,8,"ng-container",s);return null!==s&&Q2(a,s,!0),OI(n,e,a,Ka(o,r)),null!==n.queries&&n.queries.elementStart(n,a),a}(o,r,i,n,e):r.data[o];gl(s,!0);const a=t9(r,i,s,t);return i[o]=a,_l()&&F2(r,i,a,s),dn(a,i),gg(s)&&(LI(r,i,s),RI(r,s,i)),null!=e&&PI(i,s),iE}function rE(){let t=fr();const n=Bi();return yg()?wg():(t=t.parent,gl(t,!1)),n.firstCreatePass&&(vl(n,t),Su(t)&&n.queries.elementEnd(t)),rE}function a0(t,n,e){return iE(t,n,e),rE(),a0}let t9=(t,n,e,i)=>(zs(!0),SI(n[Yn],""));function kn(){return xt()}function Id(t,n,e){const i=xt();return Vo(i,Xa(),n)&&Ja(Bi(),Mr(),i,t,n,i[Yn],e,!0),Id}const vp=void 0;var Rde=["en",[["a","p"],["AM","PM"],vp],[["AM","PM"],vp,vp],[["S","M","T","W","T","F","S"],["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],["Su","Mo","Tu","We","Th","Fr","Sa"]],vp,[["J","F","M","A","M","J","J","A","S","O","N","D"],["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],["January","February","March","April","May","June","July","August","September","October","November","December"]],vp,[["B","A"],["BC","AD"],["Before Christ","Anno Domini"]],0,[6,0],["M/d/yy","MMM d, y","MMMM d, y","EEEE, MMMM d, y"],["h:mm a","h:mm:ss a","h:mm:ss a z","h:mm:ss a zzzz"],["{1}, {0}",vp,"{1} 'at' {0}",vp],[".",",",";","%","+","-","E","\xd7","\u2030","\u221e","NaN",":"],["#,##0.###","#,##0%","\xa4#,##0.00","#E0"],"USD","$","US Dollar",{},"ltr",function Dde(t){const e=Math.floor(Math.abs(t)),i=t.toString().replace(/^[^.]*\.?/,"").length;return 1===e&&0===i?1:5}];let l0={};function ya(t){const n=function Lde(t){return t.toLowerCase().replace(/_/g,"-")}(t);let e=r9(n);if(e)return e;const i=n.split("-")[0];if(e=r9(i),e)return e;if("en"===i)return Rde;throw new ct(701,!1)}function r9(t){return t in l0||(l0[t]=bi.ng&&bi.ng.common&&bi.ng.common.locales&&bi.ng.common.locales[t]),l0[t]}var $r=function(t){return t[t.LocaleId=0]="LocaleId",t[t.DayPeriodsFormat=1]="DayPeriodsFormat",t[t.DayPeriodsStandalone=2]="DayPeriodsStandalone",t[t.DaysFormat=3]="DaysFormat",t[t.DaysStandalone=4]="DaysStandalone",t[t.MonthsFormat=5]="MonthsFormat",t[t.MonthsStandalone=6]="MonthsStandalone",t[t.Eras=7]="Eras",t[t.FirstDayOfWeek=8]="FirstDayOfWeek",t[t.WeekendRange=9]="WeekendRange",t[t.DateFormat=10]="DateFormat",t[t.TimeFormat=11]="TimeFormat",t[t.DateTimeFormat=12]="DateTimeFormat",t[t.NumberSymbols=13]="NumberSymbols",t[t.NumberFormats=14]="NumberFormats",t[t.CurrencyCode=15]="CurrencyCode",t[t.CurrencySymbol=16]="CurrencySymbol",t[t.CurrencyName=17]="CurrencyName",t[t.Currencies=18]="Currencies",t[t.Directionality=19]="Directionality",t[t.PluralCase=20]="PluralCase",t[t.ExtraData=21]="ExtraData",t}($r||{});const c0="en-US";let o9=c0;function We(t,n,e,i){const r=xt(),o=Bi(),s=fr();return OB(o,r,r[Yn],s,t,n,i),We}function OB(t,n,e,i,r,o,s){const a=gg(i),c=t.firstCreatePass&&ZU(t),d=n[kr],u=YU(n);let h=!0;if(3&i.type||s){const v=Qs(i,n),x=s?s(v):v,C=u.length,w=s?M=>s(br(M[i.index])):i.index;let S=null;if(!s&&a&&(S=function Iue(t,n,e,i){const r=t.cleanup;if(null!=r)for(let o=0;ol?a[l]:null}"string"==typeof s&&(o+=2)}return null}(t,n,r,i.index)),null!==S)(S.__ngLastListenerFn__||S).__ngNextListenerFn__=o,S.__ngLastListenerFn__=o,h=!1;else{o=D9(i,n,d,o,!1);const M=e.listen(x,r,o);u.push(o,M),c&&c.push(r,w,C,C+1)}}else o=D9(i,n,d,o,!1);const m=i.outputs;let A;if(h&&null!==m&&(A=m[r])){const v=A.length;if(v)for(let x=0;x-1?ba(t.index,n):n);let l=B9(n,e,i,s),c=o.__ngNextListenerFn__;for(;c;)l=B9(n,e,c,s)&&l,c=c.__ngNextListenerFn__;return r&&!1===l&&s.preventDefault(),l}}function He(t=1){return function KC(t){return(Zn.lFrame.contextLView=function sf(t,n){for(;t>0;)n=n[Zh],t--;return n}(t,Zn.lFrame.contextLView))[kr]}(t)}function Bue(t,n){let e=null;const i=function bC(t){const n=t.attrs;if(null!=n){const e=n.indexOf(5);if(!(1&e))return n[e+1]}return null}(t);for(let r=0;r(zs(!0),function MI(t,n){return t.createText(n)}(n[Yn],i));function ur(t){return an("",t,""),ur}function an(t,n,e){const i=xt(),r=Yg(i,t,n,e);return r!==gi&&Ou(i,ms(),r),an}function Hu(t,n,e,i,r){const o=xt(),s=Zg(o,t,n,e,i,r);return s!==gi&&Ou(o,ms(),s),Hu}function UB(t,n,e,i,r,o,s,a,l){const c=xt(),d=function e0(t,n,e,i,r,o,s,a,l,c){const u=Yl(t,bc(),e,r,s,l);return ra(4),u?n+li(e)+i+li(r)+o+li(s)+a+li(l)+c:gi}(c,t,n,e,i,r,o,s,a,l);return d!==gi&&Ou(c,ms(),d),UB}function Tc(t,n,e){V7(n)&&(n=n());const i=xt();return Vo(i,Xa(),n)&&Ja(Bi(),Mr(),i,t,n,i[Yn],e,!1),Tc}function Bd(t,n){const e=V7(t);return e&&t.set(n),e}function Fc(t,n){const e=xt(),i=Bi(),r=fr();return OB(i,e,e[Yn],r,t,n),Fc}function HB(t,n,e,i,r){if(t=Tn(t),Array.isArray(t))for(let o=0;o>20;if(Eu(t)||!t.multi){const m=new hf(c,r,W),A=QB(l,n,r?d:d+h,u);-1===A?(Av(Tg(a,s),o,l),VB(o,t,n.length),n.push(l),a.directiveStart++,a.directiveEnd++,r&&(a.providerIndexes+=1048576),e.push(m),s.push(m)):(e[A]=m,s[A]=m)}else{const m=QB(l,n,d+h,u),A=QB(l,n,d,d+h),x=A>=0&&e[A];if(r&&!x||!r&&!(m>=0&&e[m])){Av(Tg(a,s),o,l);const C=function Yue(t,n,e,i,r){const o=new hf(t,e,W);return o.multi=[],o.index=n,o.componentProviders=0,rV(o,r,i&&!e),o}(r?Xue:Kue,e.length,r,i,c);!r&&x&&(e[A].providerFactory=C),VB(o,t,n.length,0),n.push(l),a.directiveStart++,a.directiveEnd++,r&&(a.providerIndexes+=1048576),e.push(C),s.push(C)}else VB(o,t,m>-1?m:A,rV(e[r?A:m],c,!r&&i));!r&&i&&x&&e[A].componentProviders++}}}function VB(t,n,e,i){const r=Eu(n),o=function fk(t){return!!t.useClass}(n);if(r||o){const l=(o?Tn(n.useClass):n).prototype.ngOnDestroy;if(l){const c=t.destroyHooks||(t.destroyHooks=[]);if(!r&&n.multi){const d=c.indexOf(e);-1===d?c.push(e,[i,l]):c[d+1].push(i,l)}else c.push(e,l)}}}function rV(t,n,e){return e&&t.componentProviders++,t.multi.push(n)-1}function QB(t,n,e,i){for(let r=e;r{e.providersResolver=(i,r)=>function jue(t,n,e){const i=Bi();if(i.firstCreatePass){const r=Al(t);HB(e,i.data,i.blueprint,r,!0),HB(n,i.data,i.blueprint,r,!1)}}(i,r?r(t):t,n)}}let Zue=(()=>{class t{constructor(e){this._injector=e,this.cachedInjectors=new Map}getOrCreateStandaloneInjector(e){if(!e.standalone)return null;if(!this.cachedInjectors.has(e)){const i=k_(0,e.type),r=i.length>0?function iH(t,n,e=null){return new nH({providers:t,parent:n,debugName:e,runEnvironmentInitializers:!0}).injector}([i],this._injector,`Standalone[${e.type.name}]`):null;this.cachedInjectors.set(e,r)}return this.cachedInjectors.get(e)}ngOnDestroy(){try{for(const e of this.cachedInjectors.values())null!==e&&e.destroy()}finally{this.cachedInjectors.clear()}}static{this.\u0275prov=Mt({token:t,providedIn:"environment",factory:()=>new t(oe(ml))})}}return t})();function xr(t){Td("NgStandalone"),t.getStandaloneInjector=n=>n.get(Zue).getOrCreateStandaloneInjector(t)}function cE(t,n,e){const i=t.\u0275cmp;i.directiveDefs=lg(n,!1),i.pipeDefs=lg(e,!0)}function Vu(t,n,e){const i=Ts()+t,r=xt();return r[i]===gi?Fd(r,i,e?n.call(e):n()):function Xv(t,n){return t[n]}(r,i)}function tl(t,n,e,i,r){return lV(xt(),Ts(),t,n,e,i,r)}function ly(t,n){const e=t[n];return e===gi?void 0:e}function aV(t,n,e,i,r,o){const s=n+e;return Vo(t,s,r)?Fd(t,s+1,o?i.call(o,r):i(r)):ly(t,s+1)}function lV(t,n,e,i,r,o,s){const a=n+e;return gp(t,a,r,o)?Fd(t,a+2,s?i.call(s,r,o):i(r,o)):ly(t,a+2)}function ze(t,n){const e=Bi();let i;const r=t+ci;e.firstCreatePass?(i=function ahe(t,n){if(n)for(let e=n.length-1;e>=0;e--){const i=n[e];if(t===i.name)return i}}(n,e.pipeRegistry),e.data[r]=i,i.onDestroy&&(e.destroyHooks??=[]).push(r,i.onDestroy)):i=e.data[r];const o=i.factory||(i.factory=ir(i.type)),a=na(W);try{const l=Mg(!1),c=o();return Mg(l),function Pue(t,n,e,i){e>=t.data.length&&(t.data[e]=null,t.blueprint[e]=null),n[e]=i}(e,xt(),r,c),c}finally{na(a)}}function tt(t,n,e){const i=t+ci,r=xt(),o=rf(r,i);return cy(r,i)?aV(r,Ts(),n,o.transform,e,o):o.transform(e)}function po(t,n,e,i){const r=t+ci,o=xt(),s=rf(o,r);return cy(o,r)?lV(o,Ts(),n,s.transform,e,i,s):s.transform(e,i)}function hV(t,n,e,i,r,o){const s=t+ci,a=xt(),l=rf(a,s);return cy(a,s)?function dV(t,n,e,i,r,o,s,a,l){const c=n+e;return Yl(t,c,r,o,s,a)?Fd(t,c+4,l?i.call(l,r,o,s,a):i(r,o,s,a)):ly(t,c+4)}(a,Ts(),n,l.transform,e,i,r,o,l):l.transform(e,i,r,o)}function cy(t,n){return t[Zt].data[n].pure}function Mf(t,n){return L2(t,n)}const BV=new ot(""),fE=new ot("");let YB,KB=(()=>{class t{constructor(e,i,r){this._ngZone=e,this.registry=i,this._pendingCount=0,this._isZoneStable=!0,this._callbacks=[],this.taskTrackingZone=null,YB||(function ife(t){YB=t}(r),r.addToWindow(i)),this._watchAngularEvents(),e.run(()=>{this.taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{Fn.assertNotInAngularZone(),queueMicrotask(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error("pending async requests below zero");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())queueMicrotask(()=>{for(;0!==this._callbacks.length;){let e=this._callbacks.pop();clearTimeout(e.timeoutId),e.doneCb()}});else{let e=this.getPendingTasks();this._callbacks=this._callbacks.filter(i=>!i.updateCb||!i.updateCb(e)||(clearTimeout(i.timeoutId),!1))}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(e=>({source:e.source,creationLocation:e.creationLocation,data:e.data})):[]}addCallback(e,i,r){let o=-1;i&&i>0&&(o=setTimeout(()=>{this._callbacks=this._callbacks.filter(s=>s.timeoutId!==o),e()},i)),this._callbacks.push({doneCb:e,timeoutId:o,updateCb:r})}whenStable(e,i,r){if(r&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(e,i,r),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}registerApplication(e){this.registry.registerApplication(e,this)}unregisterApplication(e){this.registry.unregisterApplication(e)}findProviders(e,i,r){return[]}static{this.\u0275fac=function(i){return new(i||t)(oe(Fn),oe(XB),oe(fE))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac})}}return t})(),XB=(()=>{class t{constructor(){this._applications=new Map}registerApplication(e,i){this._applications.set(e,i)}unregisterApplication(e){this._applications.delete(e)}unregisterAllApplications(){this._applications.clear()}getTestability(e){return this._applications.get(e)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(e,i=!0){return YB?.findTestabilityInTree(this,e,i)??null}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac,providedIn:"platform"})}}return t})();function mE(t){return!!t&&"function"==typeof t.then}function DV(t){return!!t&&"function"==typeof t.subscribe}const RV=new ot("");let ZB=(()=>{class t{constructor(){this.initialized=!1,this.done=!1,this.donePromise=new Promise((e,i)=>{this.resolve=e,this.reject=i}),this.appInits=Ut(RV,{optional:!0})??[]}runInitializers(){if(this.initialized)return;const e=[];for(const r of this.appInits){const o=r();if(mE(o))e.push(o);else if(DV(o)){const s=new Promise((a,l)=>{o.subscribe({complete:a,error:l})});e.push(s)}}const i=()=>{this.done=!0,this.resolve()};Promise.all(e).then(()=>{i()}).catch(r=>{this.reject(r)}),0===e.length&&i(),this.initialized=!0}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();const LV=new ot("");function OV(t,n){return Array.isArray(n)?n.reduce(OV,t):{...t,...n}}let Sf=(()=>{class t{constructor(){this._bootstrapListeners=[],this._runningTick=!1,this._destroyed=!1,this._destroyListeners=[],this._views=[],this.internalErrorHandler=Ut(u2),this.afterRenderEffectManager=Ut(qv),this.externalTestViews=new Set,this.beforeRender=new Yt,this.afterTick=new Yt,this.componentTypes=[],this.components=[],this.isStable=Ut(Ap).hasPendingTasks.pipe(Et(e=>!e)),this._injector=Ut(ml)}get destroyed(){return this._destroyed}get injector(){return this._injector}bootstrap(e,i){const r=e instanceof f7;if(!this._injector.get(ZB).done)throw!r&&function Cu(t){const n=Ti(t)||uo(t)||ds(t);return null!==n&&n.standalone}(e),new ct(405,!1);let s;s=r?e:this._injector.get(Qg).resolveComponentFactory(e),this.componentTypes.push(s.componentType);const a=function rfe(t){return t.isBoundToModule}(s)?void 0:this._injector.get(pp),c=s.create(Uo.NULL,[],i||s.selector,a),d=c.location.nativeElement,u=c.injector.get(BV,null);return u?.registerApplication(d),c.onDestroy(()=>{this.detachView(c.hostView),pE(this.components,c),u?.unregisterApplication(d)}),this._loadComponent(c),c}tick(){this._tick(!0)}_tick(e){if(this._runningTick)throw new ct(101,!1);const i=N(null);try{this._runningTick=!0,this.detectChangesInAttachedViews(e)}catch(r){this.internalErrorHandler(r)}finally{this.afterTick.next(),this._runningTick=!1,N(i)}}detectChangesInAttachedViews(e){let i=0;const r=this.afterRenderEffectManager;for(;;){if(i===i7)throw new ct(103,!1);if(e){const o=0===i;this.beforeRender.next(o);for(let{_lView:s,notifyErrorHandler:a}of this._views)sfe(s,o,a)}if(i++,r.executeInternalCallbacks(),![...this.externalTestViews.keys(),...this._views].some(({_lView:o})=>JB(o))&&(r.execute(),![...this.externalTestViews.keys(),...this._views].some(({_lView:o})=>JB(o))))break}}attachView(e){const i=e;this._views.push(i),i.attachToAppRef(this)}detachView(e){const i=e;pE(this._views,i),i.detachFromAppRef()}_loadComponent(e){this.attachView(e.hostView),this.tick(),this.components.push(e);const i=this._injector.get(LV,[]);[...this._bootstrapListeners,...i].forEach(r=>r(e))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(e=>e()),this._views.slice().forEach(e=>e.destroy())}finally{this._destroyed=!0,this._views=[],this._bootstrapListeners=[],this._destroyListeners=[]}}onDestroy(e){return this._destroyListeners.push(e),()=>pE(this._destroyListeners,e)}destroy(){if(this._destroyed)throw new ct(406,!1);const e=this._injector;e.destroy&&!e.destroyed&&e.destroy()}get viewCount(){return this._views.length}warnIfDestroyed(){}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();function pE(t,n){const e=t.indexOf(n);e>-1&&t.splice(e,1)}function sfe(t,n,e){!n&&!JB(t)||function afe(t,n,e){let i;e?(i=0,t[Vn]|=1024):i=64&t[Vn]?0:1,R2(t,n,i)}(t,e,n)}function JB(t){return K_(t)}let ufe=(()=>{class t{constructor(){this.zone=Ut(Fn),this.applicationRef=Ut(Sf)}initialize(){this._onMicrotaskEmptySubscription||(this._onMicrotaskEmptySubscription=this.zone.onMicrotaskEmpty.subscribe({next:()=>{this.zone.run(()=>{this.applicationRef.tick()})}}))}ngOnDestroy(){this._onMicrotaskEmptySubscription?.unsubscribe()}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();function hfe(){const t=Ut(Fn),n=Ut(es);return e=>t.runOutsideAngular(()=>n.handleError(e))}let mfe=(()=>{class t{constructor(){this.subscription=new on,this.initialized=!1,this.zone=Ut(Fn),this.pendingTasks=Ut(Ap)}initialize(){if(this.initialized)return;this.initialized=!0;let e=null;!this.zone.isStable&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(e=this.pendingTasks.add()),this.zone.runOutsideAngular(()=>{this.subscription.add(this.zone.onStable.subscribe(()=>{Fn.assertNotInAngularZone(),queueMicrotask(()=>{null!==e&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(this.pendingTasks.remove(e),e=null)})}))}),this.subscription.add(this.zone.onUnstable.subscribe(()=>{Fn.assertInAngularZone(),e??=this.pendingTasks.add()}))}ngOnDestroy(){this.subscription.unsubscribe()}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();const Dd=new ot("",{providedIn:"root",factory:()=>Ut(Dd,Qi.Optional|Qi.SkipSelf)||function pfe(){return typeof $localize<"u"&&$localize.locale||c0}()}),eD=new ot("");let QV=(()=>{class t{constructor(e){this._injector=e,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(e,i){const r=function hle(t="zone.js",n){return"noop"===t?new _7:"zone.js"===t?new Fn(n):t}(i?.ngZone,function VV(t){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:t?.eventCoalescing??!1,shouldCoalesceRunChangeDetection:t?.runCoalescing??!1}}({eventCoalescing:i?.ngZoneEventCoalescing,runCoalescing:i?.ngZoneRunCoalescing}));return r.run(()=>{const o=function oce(t,n,e){return new pB(t,n,e)}(e.moduleType,this.injector,function HV(t){return[{provide:Fn,useFactory:t},{provide:Qa,multi:!0,useFactory:()=>{const n=Ut(ufe,{optional:!0});return()=>n.initialize()}},{provide:Qa,multi:!0,useFactory:()=>{const n=Ut(mfe);return()=>{n.initialize()}}},{provide:u2,useFactory:hfe}]}(()=>r)),s=o.injector.get(es,null);return r.runOutsideAngular(()=>{const a=r.onError.subscribe({next:l=>{s.handleError(l)}});o.onDestroy(()=>{pE(this._modules,o),a.unsubscribe()})}),function NV(t,n,e){try{const i=e();return mE(i)?i.catch(r=>{throw n.runOutsideAngular(()=>t.handleError(r)),r}):i}catch(i){throw n.runOutsideAngular(()=>t.handleError(i)),i}}(s,r,()=>{const a=o.injector.get(ZB);return a.runInitializers(),a.donePromise.then(()=>(function s9(t){"string"==typeof t&&(o9=t.toLowerCase().replace(/_/g,"-"))}(o.injector.get(Dd,c0)||c0),this._moduleDoBootstrap(o),o))})})}bootstrapModule(e,i=[]){const r=OV({},i);return function dfe(t,n,e){const i=new AB(e);return Promise.resolve(i)}(0,0,e).then(o=>this.bootstrapModuleFactory(o,r))}_moduleDoBootstrap(e){const i=e.injector.get(Sf);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach(r=>i.bootstrap(r));else{if(!e.instance.ngDoBootstrap)throw new ct(-403,!1);e.instance.ngDoBootstrap(i)}this._modules.push(e)}onDestroy(e){this._destroyListeners.push(e)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new ct(404,!1);this._modules.slice().forEach(i=>i.destroy()),this._destroyListeners.forEach(i=>i());const e=this._injector.get(eD,null);e&&(e.forEach(i=>i()),e.clear()),this._destroyed=!0}get destroyed(){return this._destroyed}static{this.\u0275fac=function(i){return new(i||t)(oe(Uo))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac,providedIn:"platform"})}}return t})(),Tf=null;const zV=new ot("");function GV(t,n,e=[]){const i=`Platform: ${n}`,r=new ot(i);return(o=[])=>{let s=tD();if(!s||s.injector.get(zV,!1)){const a=[...e,...o,{provide:r,useValue:!0}];t?t(a):function bfe(t){if(Tf&&!Tf.get(zV,!1))throw new ct(400,!1);(function PV(){!function Pn(t){Qt=t}(()=>{throw new ct(600,!1)})})(),Tf=t;const n=t.get(QV);(function WV(t){t.get(K6,null)?.forEach(e=>e())})(t)}(function qV(t=[],n){return Uo.create({name:n,providers:[{provide:B_,useValue:"platform"},{provide:eD,useValue:new Set([()=>Tf=null])},...t]})}(a,i))}return function _fe(t){const n=tD();if(!n)throw new ct(401,!1);return n}()}}function tD(){return Tf?.get(QV)??null}let Ao=(()=>{class t{static{this.__NG_ELEMENT_ID__=yfe}}return t})();function yfe(t){return function wfe(t,n,e){if(Wl(t)&&!e){const i=ba(t.index,n);return new Hv(i,i)}return 47&t.type?new Hv(n[to],n):null}(fr(),xt(),!(16&~t))}class eQ{constructor(){}supports(n){return n instanceof Map||gB(n)}create(){return new kfe}}class kfe{constructor(){this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}get isDirty(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}forEachItem(n){let e;for(e=this._mapHead;null!==e;e=e._next)n(e)}forEachPreviousItem(n){let e;for(e=this._previousMapHead;null!==e;e=e._nextPrevious)n(e)}forEachChangedItem(n){let e;for(e=this._changesHead;null!==e;e=e._nextChanged)n(e)}forEachAddedItem(n){let e;for(e=this._additionsHead;null!==e;e=e._nextAdded)n(e)}forEachRemovedItem(n){let e;for(e=this._removalsHead;null!==e;e=e._nextRemoved)n(e)}diff(n){if(n){if(!(n instanceof Map||gB(n)))throw new ct(900,!1)}else n=new Map;return this.check(n)?this:null}onDestroy(){}check(n){this._reset();let e=this._mapHead;if(this._appendAfter=null,this._forEach(n,(i,r)=>{if(e&&e.key===r)this._maybeAddToChanges(e,i),this._appendAfter=e,e=e._next;else{const o=this._getOrCreateRecordForKey(r,i);e=this._insertBeforeOrAppend(e,o)}}),e){e._prev&&(e._prev._next=null),this._removalsHead=e;for(let i=e;null!==i;i=i._nextRemoved)i===this._mapHead&&(this._mapHead=null),this._records.delete(i.key),i._nextRemoved=i._next,i.previousValue=i.currentValue,i.currentValue=null,i._prev=null,i._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(n,e){if(n){const i=n._prev;return e._next=n,e._prev=i,n._prev=e,i&&(i._next=e),n===this._mapHead&&(this._mapHead=e),this._appendAfter=n,n}return this._appendAfter?(this._appendAfter._next=e,e._prev=this._appendAfter):this._mapHead=e,this._appendAfter=e,null}_getOrCreateRecordForKey(n,e){if(this._records.has(n)){const r=this._records.get(n);this._maybeAddToChanges(r,e);const o=r._prev,s=r._next;return o&&(o._next=s),s&&(s._prev=o),r._next=null,r._prev=null,r}const i=new Ife(n);return this._records.set(n,i),i.currentValue=e,this._addToAdditions(i),i}_reset(){if(this.isDirty){let n;for(this._previousMapHead=this._mapHead,n=this._previousMapHead;null!==n;n=n._next)n._nextPrevious=n._next;for(n=this._changesHead;null!==n;n=n._nextChanged)n.previousValue=n.currentValue;for(n=this._additionsHead;null!=n;n=n._nextAdded)n.previousValue=n.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(n,e){Object.is(e,n.currentValue)||(n.previousValue=n.currentValue,n.currentValue=e,this._addToChanges(n))}_addToAdditions(n){null===this._additionsHead?this._additionsHead=this._additionsTail=n:(this._additionsTail._nextAdded=n,this._additionsTail=n)}_addToChanges(n){null===this._changesHead?this._changesHead=this._changesTail=n:(this._changesTail._nextChanged=n,this._changesTail=n)}_forEach(n,e){n instanceof Map?n.forEach(e):Object.keys(n).forEach(i=>e(n[i],i))}}class Ife{constructor(n){this.key=n,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}function nQ(){return new _E([new eQ])}let _E=(()=>{class t{static{this.\u0275prov=Mt({token:t,providedIn:"root",factory:nQ})}constructor(e){this.factories=e}static create(e,i){if(i){const r=i.factories.slice();e=e.concat(r)}return new t(e)}static extend(e){return{provide:t,useFactory:i=>t.create(e,i||nQ()),deps:[[t,new ul,new co]]}}find(e){const i=this.factories.find(r=>r.supports(e));if(i)return i;throw new ct(901,!1)}}return t})();const Rfe=GV(null,"core",[]);let Lfe=(()=>{class t{constructor(e){}static{this.\u0275fac=function(i){return new(i||t)(oe(Sf))}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({})}}return t})();function qn(t){return"boolean"==typeof t?t:null!=t&&"false"!==t}function sa(t,n=NaN){return isNaN(parseFloat(t))||isNaN(Number(t))?n:Number(t)}function CQ(t,n){Td("NgSignals");const e=function Pe(t){const n=Object.create(gt);n.computation=t;const e=()=>{if(xe(n),J(n),n.value===lt)throw n.error;return n.value};return e[T]=n,e}(t);return n?.equal&&(e[T].equal=n.equal),e}function EQ(t){const n=N(null);try{return t()}finally{N(n)}}const ume=new ot("",{providedIn:"root",factory:()=>Ut(hme)});let hme=(()=>{class t{static{this.\u0275prov=Mt({token:t,providedIn:"root",factory:()=>new fme})}}return t})();class fme{constructor(){this.queuedEffectCount=0,this.queues=new Map,this.pendingTasks=Ut(Ap),this.taskId=null}scheduleEffect(n){if(this.enqueue(n),null===this.taskId){const e=this.taskId=this.pendingTasks.add();queueMicrotask(()=>{this.flush(),this.pendingTasks.remove(e),this.taskId=null})}}enqueue(n){const e=n.creationZone;this.queues.has(e)||this.queues.set(e,new Set);const i=this.queues.get(e);i.has(n)||(this.queuedEffectCount++,i.add(n))}flush(){for(;this.queuedEffectCount>0;)for(const[n,e]of this.queues)null===n?this.flushQueue(e):n.run(()=>this.flushQueue(e))}flushQueue(n){for(const e of n)n.delete(e),this.queuedEffectCount--,e.run()}}class mme{constructor(n,e,i,r,o,s){this.scheduler=n,this.effectFn=e,this.creationZone=i,this.injector=o,this.watcher=function En(t,n,e){const i=Object.create(nn);e&&(i.consumerAllowSignalWrites=!0),i.fn=t,i.schedule=n;const r=l=>{i.cleanupFn=l};return i.ref={notify:()=>$e(i),run:()=>{if(null===i.fn)return;if(function G(){return F}())throw new Error("Schedulers cannot synchronously execute watches while scheduling.");if(i.dirty=!1,i.hasRun&&!at(i))return;i.hasRun=!0;const l=Ke(i);try{i.cleanupFn(),i.cleanupFn=Gt,i.fn(r)}finally{Ie(i,l)}},cleanup:()=>i.cleanupFn(),destroy:()=>function s(l){(function o(l){return null===l.fn&&null===l.schedule})(l)||(Xe(l),l.cleanupFn(),l.fn=null,l.schedule=null,l.cleanupFn=Gt)}(i),[T]:i},i.ref}(a=>this.runEffect(a),()=>this.schedule(),s),this.unregisterOnDestroy=r?.onDestroy(()=>this.destroy())}runEffect(n){try{this.effectFn(n)}catch(e){this.injector.get(es,null,{optional:!0})?.handleError(e)}}run(){this.watcher.run()}schedule(){this.scheduler.scheduleEffect(this)}destroy(){this.watcher.destroy(),this.unregisterOnDestroy?.()}}let SQ=null;function Ff(){return SQ}class Ame{}const xi=new ot("");let TQ=(()=>{class t{historyGo(e){throw new Error("")}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275prov=Mt({token:t,factory:()=>Ut(gme),providedIn:"platform"})}}return t})(),gme=(()=>{class t extends TQ{constructor(){super(),this._doc=Ut(xi),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return Ff().getBaseHref(this._doc)}onPopState(e){const i=Ff().getGlobalEventTarget(this._doc,"window");return i.addEventListener("popstate",e,!1),()=>i.removeEventListener("popstate",e)}onHashChange(e){const i=Ff().getGlobalEventTarget(this._doc,"window");return i.addEventListener("hashchange",e,!1),()=>i.removeEventListener("hashchange",e)}get href(){return this._location.href}get protocol(){return this._location.protocol}get hostname(){return this._location.hostname}get port(){return this._location.port}get pathname(){return this._location.pathname}get search(){return this._location.search}get hash(){return this._location.hash}set pathname(e){this._location.pathname=e}pushState(e,i,r){this._history.pushState(e,i,r)}replaceState(e,i,r){this._history.replaceState(e,i,r)}forward(){this._history.forward()}back(){this._history.back()}historyGo(e=0){this._history.go(e)}getState(){return this._history.state}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275prov=Mt({token:t,factory:()=>new t,providedIn:"platform"})}}return t})();function FQ(t,n){if(0==t.length)return n;if(0==n.length)return t;let e=0;return t.endsWith("/")&&e++,n.startsWith("/")&&e++,2==e?t+n.substring(1):1==e?t+n:t+"/"+n}function kQ(t){const n=t.match(/#|\?|$/),e=n&&n.index||t.length;return t.slice(0,e-("/"===t[e-1]?1:0))+t.slice(e)}function wp(t){return t&&"?"!==t[0]?"?"+t:t}let dD=(()=>{class t{historyGo(e){throw new Error("")}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275prov=Mt({token:t,factory:()=>Ut(_me),providedIn:"root"})}}return t})();const bme=new ot("");let _me=(()=>{class t extends dD{constructor(e,i){super(),this._platformLocation=e,this._removeListenerFns=[],this._baseHref=i??this._platformLocation.getBaseHrefFromDOM()??Ut(xi).location?.origin??""}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(e){this._removeListenerFns.push(this._platformLocation.onPopState(e),this._platformLocation.onHashChange(e))}getBaseHref(){return this._baseHref}prepareExternalUrl(e){return FQ(this._baseHref,e)}path(e=!1){const i=this._platformLocation.pathname+wp(this._platformLocation.search),r=this._platformLocation.hash;return r&&e?`${i}${r}`:i}pushState(e,i,r,o){const s=this.prepareExternalUrl(r+wp(o));this._platformLocation.pushState(e,i,s)}replaceState(e,i,r,o){const s=this.prepareExternalUrl(r+wp(o));this._platformLocation.replaceState(e,i,s)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(e=0){this._platformLocation.historyGo?.(e)}static{this.\u0275fac=function(i){return new(i||t)(oe(TQ),oe(bme,8))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})(),uD=(()=>{class t{constructor(e){this._subject=new Ln,this._urlChangeListeners=[],this._urlChangeSubscription=null,this._locationStrategy=e;const i=this._locationStrategy.getBaseHref();this._basePath=function wme(t){if(new RegExp("^(https?:)?//").test(t)){const[,e]=t.split(/\/\/[^\/]+/);return e}return t}(kQ(IQ(i))),this._locationStrategy.onPopState(r=>{this._subject.emit({url:this.path(!0),pop:!0,state:r.state,type:r.type})})}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(e=!1){return this.normalize(this._locationStrategy.path(e))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(e,i=""){return this.path()==this.normalize(e+wp(i))}normalize(e){return t.stripTrailingSlash(function yme(t,n){if(!t||!n.startsWith(t))return n;const e=n.substring(t.length);return""===e||["/",";","?","#"].includes(e[0])?e:n}(this._basePath,IQ(e)))}prepareExternalUrl(e){return e&&"/"!==e[0]&&(e="/"+e),this._locationStrategy.prepareExternalUrl(e)}go(e,i="",r=null){this._locationStrategy.pushState(r,"",e,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+wp(i)),r)}replaceState(e,i="",r=null){this._locationStrategy.replaceState(r,"",e,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+wp(i)),r)}forward(){this._locationStrategy.forward()}back(){this._locationStrategy.back()}historyGo(e=0){this._locationStrategy.historyGo?.(e)}onUrlChange(e){return this._urlChangeListeners.push(e),this._urlChangeSubscription??=this.subscribe(i=>{this._notifyUrlChangeListeners(i.url,i.state)}),()=>{const i=this._urlChangeListeners.indexOf(e);this._urlChangeListeners.splice(i,1),0===this._urlChangeListeners.length&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(e="",i){this._urlChangeListeners.forEach(r=>r(e,i))}subscribe(e,i,r){return this._subject.subscribe({next:e,error:i,complete:r})}static{this.normalizeQueryParams=wp}static{this.joinWithSlash=FQ}static{this.stripTrailingSlash=kQ}static{this.\u0275fac=function(i){return new(i||t)(oe(dD))}}static{this.\u0275prov=Mt({token:t,factory:()=>function vme(){return new uD(oe(dD))}(),providedIn:"root"})}}return t})();function IQ(t){return t.replace(/\/index.html$/,"")}var EE=function(t){return t[t.Decimal=0]="Decimal",t[t.Percent=1]="Percent",t[t.Currency=2]="Currency",t[t.Scientific=3]="Scientific",t}(EE||{}),m0=function(t){return t[t.Zero=0]="Zero",t[t.One=1]="One",t[t.Two=2]="Two",t[t.Few=3]="Few",t[t.Many=4]="Many",t[t.Other=5]="Other",t}(m0||{});const ns={Decimal:0,Group:1,List:2,PercentSign:3,PlusSign:4,MinusSign:5,Exponential:6,SuperscriptingExponent:7,PerMille:8,Infinity:9,NaN:10,TimeSeparator:11,CurrencyDecimal:12,CurrencyGroup:13};function Zl(t,n){const e=ya(t),i=e[$r.NumberSymbols][n];if(typeof i>"u"){if(n===ns.CurrencyDecimal)return e[$r.NumberSymbols][ns.Decimal];if(n===ns.CurrencyGroup)return e[$r.NumberSymbols][ns.Group]}return i}const kme=function i9(t){return ya(t)[$r.PluralCase]},Kme=/^(\d+)?\.((\d+)(-(\d+))?)?$/;function _D(t){const n=parseInt(t);if(isNaN(n))throw new Error("Invalid integer literal when parsing "+t);return n}let vD=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275prov=Mt({token:t,factory:function(i){let r=null;return i?r=new i:(o=oe(Dd),r=new ope(o)),r;var o},providedIn:"root"})}}return t})();let ope=(()=>{class t extends vD{constructor(e){super(),this.locale=e}getPluralCategory(e,i){switch(kme(i||this.locale)(e)){case m0.Zero:return"zero";case m0.One:return"one";case m0.Two:return"two";case m0.Few:return"few";case m0.Many:return"many";default:return"other"}}static{this.\u0275fac=function(i){return new(i||t)(oe(Dd))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac})}}return t})();function HQ(t,n){n=encodeURIComponent(n);for(const e of t.split(";")){const i=e.indexOf("="),[r,o]=-1==i?[e,""]:[e.slice(0,i),e.slice(i+1)];if(r.trim()===n)return decodeURIComponent(o)}return null}const yD=/\s+/,VQ=[];let Rd=(()=>{class t{constructor(e,i){this._ngEl=e,this._renderer=i,this.initialClasses=VQ,this.stateMap=new Map}set klass(e){this.initialClasses=null!=e?e.trim().split(yD):VQ}set ngClass(e){this.rawClass="string"==typeof e?e.trim().split(yD):e}ngDoCheck(){for(const i of this.initialClasses)this._updateState(i,!0);const e=this.rawClass;if(Array.isArray(e)||e instanceof Set)for(const i of e)this._updateState(i,!0);else if(null!=e)for(const i of Object.keys(e))this._updateState(i,!!e[i]);this._applyStateDiff()}_updateState(e,i){const r=this.stateMap.get(e);void 0!==r?(r.enabled!==i&&(r.changed=!0,r.enabled=i),r.touched=!0):this.stateMap.set(e,{enabled:i,changed:!0,touched:!0})}_applyStateDiff(){for(const e of this.stateMap){const i=e[0],r=e[1];r.changed?(this._toggleClass(i,r.enabled),r.changed=!1):r.touched||(r.enabled&&this._toggleClass(i,!1),this.stateMap.delete(i)),r.touched=!1}}_toggleClass(e,i){(e=e.trim()).length>0&&e.split(yD).forEach(r=>{i?this._renderer.addClass(this._ngEl.nativeElement,r):this._renderer.removeClass(this._ngEl.nativeElement,r)})}static{this.\u0275fac=function(i){return new(i||t)(W(Un),W(hp))}}static{this.\u0275dir=zt({type:t,selectors:[["","ngClass",""]],inputs:{klass:[bt.None,"class","klass"],ngClass:"ngClass"},standalone:!0})}}return t})(),p0=(()=>{class t{constructor(e,i){this._viewContainer=e,this._context=new cpe,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=i}set ngIf(e){this._context.$implicit=this._context.ngIf=e,this._updateView()}set ngIfThen(e){GQ("ngIfThen",e),this._thenTemplateRef=e,this._thenViewRef=null,this._updateView()}set ngIfElse(e){GQ("ngIfElse",e),this._elseTemplateRef=e,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngTemplateContextGuard(e,i){return!0}static{this.\u0275fac=function(i){return new(i||t)(W(va),W(Cl))}}static{this.\u0275dir=zt({type:t,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"},standalone:!0})}}return t})();class cpe{constructor(){this.$implicit=null,this.ngIf=null}}function GQ(t,n){if(n&&!n.createEmbeddedView)throw new Error(`${t} must be a TemplateRef, but received '${qr(n)}'.`)}class wD{constructor(n,e){this._viewContainerRef=n,this._templateRef=e,this._created=!1}create(){this._created=!0,this._viewContainerRef.createEmbeddedView(this._templateRef)}destroy(){this._created=!1,this._viewContainerRef.clear()}enforceState(n){n&&!this._created?this.create():!n&&this._created&&this.destroy()}}let CD=(()=>{class t{constructor(e){this._localization=e,this._caseViews={}}set ngPlural(e){this._updateView(e)}addCase(e,i){this._caseViews[e]=i}_updateView(e){this._clearViews();const r=function UQ(t,n,e,i){let r=`=${t}`;if(n.indexOf(r)>-1||(r=e.getPluralCategory(t,i),n.indexOf(r)>-1))return r;if(n.indexOf("other")>-1)return"other";throw new Error(`No plural message found for value "${t}"`)}(e,Object.keys(this._caseViews),this._localization);this._activateView(this._caseViews[r])}_clearViews(){this._activeView&&this._activeView.destroy()}_activateView(e){e&&(this._activeView=e,this._activeView.create())}static{this.\u0275fac=function(i){return new(i||t)(W(vD))}}static{this.\u0275dir=zt({type:t,selectors:[["","ngPlural",""]],inputs:{ngPlural:"ngPlural"},standalone:!0})}}return t})(),qQ=(()=>{class t{constructor(e,i,r,o){this.value=e;const s=!isNaN(Number(e));o.addCase(s?`=${e}`:e,new wD(r,i))}static{this.\u0275fac=function(i){return new(i||t)(Kl("ngPluralCase"),W(Cl),W(va),W(CD,1))}}static{this.\u0275dir=zt({type:t,selectors:[["","ngPluralCase",""]],standalone:!0})}}return t})(),A0=(()=>{class t{constructor(e,i,r){this._ngEl=e,this._differs=i,this._renderer=r,this._ngStyle=null,this._differ=null}set ngStyle(e){this._ngStyle=e,!this._differ&&e&&(this._differ=this._differs.find(e).create())}ngDoCheck(){if(this._differ){const e=this._differ.diff(this._ngStyle);e&&this._applyChanges(e)}}_setStyle(e,i){const[r,o]=e.split("."),s=-1===r.indexOf("-")?void 0:wf.DashCase;null!=i?this._renderer.setStyle(this._ngEl.nativeElement,r,o?`${i}${o}`:i,s):this._renderer.removeStyle(this._ngEl.nativeElement,r,s)}_applyChanges(e){e.forEachRemovedItem(i=>this._setStyle(i.key,null)),e.forEachAddedItem(i=>this._setStyle(i.key,i.currentValue)),e.forEachChangedItem(i=>this._setStyle(i.key,i.currentValue))}static{this.\u0275fac=function(i){return new(i||t)(W(Un),W(_E),W(hp))}}static{this.\u0275dir=zt({type:t,selectors:[["","ngStyle",""]],inputs:{ngStyle:"ngStyle"},standalone:!0})}}return t})(),py=(()=>{class t{constructor(e){this._viewContainerRef=e,this._viewRef=null,this.ngTemplateOutletContext=null,this.ngTemplateOutlet=null,this.ngTemplateOutletInjector=null}ngOnChanges(e){if(this._shouldRecreateView(e)){const i=this._viewContainerRef;if(this._viewRef&&i.remove(i.indexOf(this._viewRef)),!this.ngTemplateOutlet)return void(this._viewRef=null);const r=this._createContextForwardProxy();this._viewRef=i.createEmbeddedView(this.ngTemplateOutlet,r,{injector:this.ngTemplateOutletInjector??void 0})}}_shouldRecreateView(e){return!!e.ngTemplateOutlet||!!e.ngTemplateOutletInjector}_createContextForwardProxy(){return new Proxy({},{set:(e,i,r)=>!!this.ngTemplateOutletContext&&Reflect.set(this.ngTemplateOutletContext,i,r),get:(e,i,r)=>{if(this.ngTemplateOutletContext)return Reflect.get(this.ngTemplateOutletContext,i,r)}})}static{this.\u0275fac=function(i){return new(i||t)(W(va))}}static{this.\u0275dir=zt({type:t,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet",ngTemplateOutletInjector:"ngTemplateOutletInjector"},standalone:!0,features:[cr]})}}return t})();function Ic(t,n){return new ct(2100,!1)}class fpe{createSubscription(n,e){return EQ(()=>n.subscribe({next:e,error:i=>{throw i}}))}dispose(n){EQ(()=>n.unsubscribe())}}class mpe{createSubscription(n,e){return n.then(e,i=>{throw i})}dispose(n){}}const ppe=new mpe,Ape=new fpe;let Gn=(()=>{class t{constructor(e){this._latestValue=null,this.markForCheckOnValueUpdate=!0,this._subscription=null,this._obj=null,this._strategy=null,this._ref=e}ngOnDestroy(){this._subscription&&this._dispose(),this._ref=null}transform(e){if(!this._obj){if(e)try{this.markForCheckOnValueUpdate=!1,this._subscribe(e)}finally{this.markForCheckOnValueUpdate=!0}return this._latestValue}return e!==this._obj?(this._dispose(),this.transform(e)):this._latestValue}_subscribe(e){this._obj=e,this._strategy=this._selectStrategy(e),this._subscription=this._strategy.createSubscription(e,i=>this._updateLatestValue(e,i))}_selectStrategy(e){if(mE(e))return ppe;if(DV(e))return Ape;throw Ic()}_dispose(){this._strategy.dispose(this._subscription),this._latestValue=null,this._subscription=null,this._obj=null}_updateLatestValue(e,i){e===this._obj&&(this._latestValue=i,this.markForCheckOnValueUpdate&&this._ref?.markForCheck())}static{this.\u0275fac=function(i){return new(i||t)(W(Ao,16))}}static{this.\u0275pipe=lr({name:"async",type:t,pure:!1,standalone:!0})}}return t})();const bpe=/(?:[0-9A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF38\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A])\S*/g;let WQ=(()=>{class t{transform(e){if(null==e)return null;if("string"!=typeof e)throw Ic();return e.replace(bpe,i=>i[0].toUpperCase()+i.slice(1).toLowerCase())}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275pipe=lr({name:"titlecase",type:t,pure:!0,standalone:!0})}}return t})(),PE=(()=>{class t{constructor(e){this.differs=e,this.keyValues=[],this.compareFn=$Q}transform(e,i=$Q){if(!e||!(e instanceof Map)&&"object"!=typeof e)return null;this.differ??=this.differs.find(e).create();const r=this.differ.diff(e),o=i!==this.compareFn;return r&&(this.keyValues=[],r.forEachItem(s=>{this.keyValues.push(function Tpe(t,n){return{key:t,value:n}}(s.key,s.currentValue))})),(r||o)&&(this.keyValues.sort(i),this.compareFn=i),this.keyValues}static{this.\u0275fac=function(i){return new(i||t)(W(_E,16))}}static{this.\u0275pipe=lr({name:"keyvalue",type:t,pure:!1,standalone:!0})}}return t})();function $Q(t,n){const e=t.key,i=n.key;if(e===i)return 0;if(void 0===e)return 1;if(void 0===i)return-1;if(null===e)return 1;if(null===i)return-1;if("string"==typeof e&&"string"==typeof i)return e{class t{constructor(e){this._locale=e}transform(e,i,r){if(!function ED(t){return!(null==t||""===t||t!=t)}(e))return null;r||=this._locale;try{return function tpe(t,n,e){return function gD(t,n,e,i,r,o,s=!1){let a="",l=!1;if(isFinite(t)){let c=function ipe(t){let i,r,o,s,a,n=Math.abs(t)+"",e=0;for((r=n.indexOf("."))>-1&&(n=n.replace(".","")),(o=n.search(/e/i))>0?(r<0&&(r=o),r+=+n.slice(o+1),n=n.substring(0,o)):r<0&&(r=n.length),o=0;"0"===n.charAt(o);o++);if(o===(a=n.length))i=[0],r=1;else{for(a--;"0"===n.charAt(a);)a--;for(r-=o,i=[],s=0;o<=a;o++,s++)i[s]=Number(n.charAt(o))}return r>22&&(i=i.splice(0,21),e=r-1,r=1),{digits:i,exponent:e,integerLen:r}}(t);s&&(c=function npe(t){if(0===t.digits[0])return t;const n=t.digits.length-t.integerLen;return t.exponent?t.exponent+=2:(0===n?t.digits.push(0,0):1===n&&t.digits.push(0),t.integerLen+=2),t}(c));let d=n.minInt,u=n.minFrac,h=n.maxFrac;if(o){const w=o.match(Kme);if(null===w)throw new Error(`${o} is not a valid digit info`);const S=w[1],M=w[3],B=w[5];null!=S&&(d=_D(S)),null!=M&&(u=_D(M)),null!=B?h=_D(B):null!=M&&u>h&&(h=u)}!function rpe(t,n,e){if(n>e)throw new Error(`The minimum number of digits after fraction (${n}) is higher than the maximum (${e}).`);let i=t.digits,r=i.length-t.integerLen;const o=Math.min(Math.max(n,r),e);let s=o+t.integerLen,a=i[s];if(s>0){i.splice(Math.max(t.integerLen,s));for(let u=s;u=5)if(s-1<0){for(let u=0;u>s;u--)i.unshift(0),t.integerLen++;i.unshift(1),t.integerLen++}else i[s-1]++;for(;r=c?A.pop():l=!1),h>=10?1:0},0);d&&(i.unshift(d),t.integerLen++)}(c,u,h);let m=c.digits,A=c.integerLen;const v=c.exponent;let x=[];for(l=m.every(w=>!w);A0?x=m.splice(A,m.length):(x=m,m=[0]);const C=[];for(m.length>=n.lgSize&&C.unshift(m.splice(-n.lgSize,m.length).join(""));m.length>n.gSize;)C.unshift(m.splice(-n.gSize,m.length).join(""));m.length&&C.unshift(m.join("")),a=C.join(Zl(e,i)),x.length&&(a+=Zl(e,r)+x.join("")),v&&(a+=Zl(e,ns.Exponential)+"+"+v)}else a=Zl(e,ns.Infinity);return a=t<0&&!l?n.negPre+a+n.negSuf:n.posPre+a+n.posSuf,a}(t,function bD(t,n="-"){const e={minInt:1,minFrac:0,maxFrac:0,posPre:"",posSuf:"",negPre:"",negSuf:"",gSize:0,lgSize:0},i=t.split(";"),r=i[0],o=i[1],s=-1!==r.indexOf(".")?r.split("."):[r.substring(0,r.lastIndexOf("0")+1),r.substring(r.lastIndexOf("0")+1)],a=s[0],l=s[1]||"";e.posPre=a.substring(0,a.indexOf("#"));for(let d=0;d{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({})}}return t})();const jQ="browser";function KQ(t){return"server"===t}class XQ{}class cAe extends Ame{constructor(){super(...arguments),this.supportsDOMEvents=!0}}class TD extends cAe{static makeCurrent(){!function pme(t){SQ??=t}(new TD)}onAndCancel(n,e,i){return n.addEventListener(e,i),()=>{n.removeEventListener(e,i)}}dispatchEvent(n,e){n.dispatchEvent(e)}remove(n){n.parentNode&&n.parentNode.removeChild(n)}createElement(n,e){return(e=e||this.getDefaultDocument()).createElement(n)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(n){return n.nodeType===Node.ELEMENT_NODE}isShadowRoot(n){return n instanceof DocumentFragment}getGlobalEventTarget(n,e){return"window"===e?window:"document"===e?n:"body"===e?n.body:null}getBaseHref(n){const e=function dAe(){return _y=_y||document.querySelector("base"),_y?_y.getAttribute("href"):null}();return null==e?null:function uAe(t){return new URL(t,document.baseURI).pathname}(e)}resetBaseElement(){_y=null}getUserAgent(){return window.navigator.userAgent}getCookie(n){return HQ(document.cookie,n)}}let _y=null,fAe=(()=>{class t{build(){return new XMLHttpRequest}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac})}}return t})();const FD=new ot("");let oz=(()=>{class t{constructor(e,i){this._zone=i,this._eventNameToPlugin=new Map,e.forEach(r=>{r.manager=this}),this._plugins=e.slice().reverse()}addEventListener(e,i,r){return this._findPluginFor(i).addEventListener(e,i,r)}getZone(){return this._zone}_findPluginFor(e){let i=this._eventNameToPlugin.get(e);if(i)return i;if(i=this._plugins.find(o=>o.supports(e)),!i)throw new ct(5101,!1);return this._eventNameToPlugin.set(e,i),i}static{this.\u0275fac=function(i){return new(i||t)(oe(FD),oe(Fn))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac})}}return t})();class sz{constructor(n){this._doc=n}}const kD="ng-app-id";let az=(()=>{class t{constructor(e,i,r,o={}){this.doc=e,this.appId=i,this.nonce=r,this.platformId=o,this.styleRef=new Map,this.hostNodes=new Set,this.styleNodesInDOM=this.collectServerRenderedStyles(),this.platformIsServer=KQ(o),this.resetHostNodes()}addStyles(e){for(const i of e)1===this.changeUsageCount(i,1)&&this.onStyleAdded(i)}removeStyles(e){for(const i of e)this.changeUsageCount(i,-1)<=0&&this.onStyleRemoved(i)}ngOnDestroy(){const e=this.styleNodesInDOM;e&&(e.forEach(i=>i.remove()),e.clear());for(const i of this.getAllStyles())this.onStyleRemoved(i);this.resetHostNodes()}addHost(e){this.hostNodes.add(e);for(const i of this.getAllStyles())this.addStyleToHost(e,i)}removeHost(e){this.hostNodes.delete(e)}getAllStyles(){return this.styleRef.keys()}onStyleAdded(e){for(const i of this.hostNodes)this.addStyleToHost(i,e)}onStyleRemoved(e){const i=this.styleRef;i.get(e)?.elements?.forEach(r=>r.remove()),i.delete(e)}collectServerRenderedStyles(){const e=this.doc.head?.querySelectorAll(`style[${kD}="${this.appId}"]`);if(e?.length){const i=new Map;return e.forEach(r=>{null!=r.textContent&&i.set(r.textContent,r)}),i}return null}changeUsageCount(e,i){const r=this.styleRef;if(r.has(e)){const o=r.get(e);return o.usage+=i,o.usage}return r.set(e,{usage:i,elements:[]}),i}getStyleElement(e,i){const r=this.styleNodesInDOM,o=r?.get(i);if(o?.parentNode===e)return r.delete(i),o.removeAttribute(kD),o;{const s=this.doc.createElement("style");return this.nonce&&s.setAttribute("nonce",this.nonce),s.textContent=i,this.platformIsServer&&s.setAttribute(kD,this.appId),e.appendChild(s),s}}addStyleToHost(e,i){const r=this.getStyleElement(e,i),o=this.styleRef,s=o.get(i)?.elements;s?s.push(r):o.set(i,{elements:[r],usage:1})}resetHostNodes(){const e=this.hostNodes;e.clear(),e.add(this.doc.head)}static{this.\u0275fac=function(i){return new(i||t)(oe(xi),oe(Cv),oe(iI,8),oe(vf))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac})}}return t})();const ID={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",math:"http://www.w3.org/1998/MathML/"},BD=/%COMP%/g,gAe=new ot("",{providedIn:"root",factory:()=>!0});function cz(t,n){return n.map(e=>e.replace(BD,t))}let DD=(()=>{class t{constructor(e,i,r,o,s,a,l,c=null){this.eventManager=e,this.sharedStylesHost=i,this.appId=r,this.removeStylesOnCompDestroy=o,this.doc=s,this.platformId=a,this.ngZone=l,this.nonce=c,this.rendererByCompId=new Map,this.platformIsServer=KQ(a),this.defaultRenderer=new RD(e,s,l,this.platformIsServer)}createRenderer(e,i){if(!e||!i)return this.defaultRenderer;this.platformIsServer&&i.encapsulation===za.ShadowDom&&(i={...i,encapsulation:za.Emulated});const r=this.getOrCreateRenderer(e,i);return r instanceof uz?r.applyToHost(e):r instanceof LD&&r.applyStyles(),r}getOrCreateRenderer(e,i){const r=this.rendererByCompId;let o=r.get(i.id);if(!o){const s=this.doc,a=this.ngZone,l=this.eventManager,c=this.sharedStylesHost,d=this.removeStylesOnCompDestroy,u=this.platformIsServer;switch(i.encapsulation){case za.Emulated:o=new uz(l,c,i,this.appId,d,s,a,u);break;case za.ShadowDom:return new yAe(l,c,e,i,s,a,this.nonce,u);default:o=new LD(l,c,i,d,s,a,u)}r.set(i.id,o)}return o}ngOnDestroy(){this.rendererByCompId.clear()}static{this.\u0275fac=function(i){return new(i||t)(oe(oz),oe(az),oe(Cv),oe(gAe),oe(xi),oe(vf),oe(Fn),oe(iI))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac})}}return t})();class RD{constructor(n,e,i,r){this.eventManager=n,this.doc=e,this.ngZone=i,this.platformIsServer=r,this.data=Object.create(null),this.throwOnSyntheticProps=!0,this.destroyNode=null}destroy(){}createElement(n,e){return e?this.doc.createElementNS(ID[e]||e,n):this.doc.createElement(n)}createComment(n){return this.doc.createComment(n)}createText(n){return this.doc.createTextNode(n)}appendChild(n,e){(dz(n)?n.content:n).appendChild(e)}insertBefore(n,e,i){n&&(dz(n)?n.content:n).insertBefore(e,i)}removeChild(n,e){n&&n.removeChild(e)}selectRootElement(n,e){let i="string"==typeof n?this.doc.querySelector(n):n;if(!i)throw new ct(-5104,!1);return e||(i.textContent=""),i}parentNode(n){return n.parentNode}nextSibling(n){return n.nextSibling}setAttribute(n,e,i,r){if(r){e=r+":"+e;const o=ID[r];o?n.setAttributeNS(o,e,i):n.setAttribute(e,i)}else n.setAttribute(e,i)}removeAttribute(n,e,i){if(i){const r=ID[i];r?n.removeAttributeNS(r,e):n.removeAttribute(`${i}:${e}`)}else n.removeAttribute(e)}addClass(n,e){n.classList.add(e)}removeClass(n,e){n.classList.remove(e)}setStyle(n,e,i,r){r&(wf.DashCase|wf.Important)?n.style.setProperty(e,i,r&wf.Important?"important":""):n.style[e]=i}removeStyle(n,e,i){i&wf.DashCase?n.style.removeProperty(e):n.style[e]=""}setProperty(n,e,i){null!=n&&(n[e]=i)}setValue(n,e){n.nodeValue=e}listen(n,e,i){if("string"==typeof n&&!(n=Ff().getGlobalEventTarget(this.doc,n)))throw new Error(`Unsupported event target ${n} for event ${e}`);return this.eventManager.addEventListener(n,e,this.decoratePreventDefault(i))}decoratePreventDefault(n){return e=>{if("__ngUnwrap__"===e)return n;!1===(this.platformIsServer?this.ngZone.runGuarded(()=>n(e)):n(e))&&e.preventDefault()}}}function dz(t){return"TEMPLATE"===t.tagName&&void 0!==t.content}class yAe extends RD{constructor(n,e,i,r,o,s,a,l){super(n,o,s,l),this.sharedStylesHost=e,this.hostEl=i,this.shadowRoot=i.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const c=cz(r.id,r.styles);for(const d of c){const u=document.createElement("style");a&&u.setAttribute("nonce",a),u.textContent=d,this.shadowRoot.appendChild(u)}}nodeOrShadowRoot(n){return n===this.hostEl?this.shadowRoot:n}appendChild(n,e){return super.appendChild(this.nodeOrShadowRoot(n),e)}insertBefore(n,e,i){return super.insertBefore(this.nodeOrShadowRoot(n),e,i)}removeChild(n,e){return super.removeChild(this.nodeOrShadowRoot(n),e)}parentNode(n){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(n)))}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}}class LD extends RD{constructor(n,e,i,r,o,s,a,l){super(n,o,s,a),this.sharedStylesHost=e,this.removeStylesOnCompDestroy=r,this.styles=l?cz(l,i.styles):i.styles}applyStyles(){this.sharedStylesHost.addStyles(this.styles)}destroy(){this.removeStylesOnCompDestroy&&this.sharedStylesHost.removeStyles(this.styles)}}class uz extends LD{constructor(n,e,i,r,o,s,a,l){const c=r+"-"+i.id;super(n,e,i,o,s,a,l,c),this.contentAttr=function bAe(t){return"_ngcontent-%COMP%".replace(BD,t)}(c),this.hostAttr=function _Ae(t){return"_nghost-%COMP%".replace(BD,t)}(c)}applyToHost(n){this.applyStyles(),this.setAttribute(n,this.hostAttr,"")}createElement(n,e){const i=super.createElement(n,e);return super.setAttribute(i,this.contentAttr,""),i}}let wAe=(()=>{class t extends sz{constructor(e){super(e)}supports(e){return!0}addEventListener(e,i,r){return e.addEventListener(i,r,!1),()=>this.removeEventListener(e,i,r)}removeEventListener(e,i,r){return e.removeEventListener(i,r)}static{this.\u0275fac=function(i){return new(i||t)(oe(xi))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac})}}return t})();const hz=["alt","control","meta","shift"],xAe={"\b":"Backspace","\t":"Tab","\x7f":"Delete","\x1b":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},CAe={alt:t=>t.altKey,control:t=>t.ctrlKey,meta:t=>t.metaKey,shift:t=>t.shiftKey};let EAe=(()=>{class t extends sz{constructor(e){super(e)}supports(e){return null!=t.parseEventName(e)}addEventListener(e,i,r){const o=t.parseEventName(i),s=t.eventCallback(o.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Ff().onAndCancel(e,o.domEventName,s))}static parseEventName(e){const i=e.toLowerCase().split("."),r=i.shift();if(0===i.length||"keydown"!==r&&"keyup"!==r)return null;const o=t._normalizeKey(i.pop());let s="",a=i.indexOf("code");if(a>-1&&(i.splice(a,1),s="code."),hz.forEach(c=>{const d=i.indexOf(c);d>-1&&(i.splice(d,1),s+=c+".")}),s+=o,0!=i.length||0===o.length)return null;const l={};return l.domEventName=r,l.fullKey=s,l}static matchEventFullKeyCode(e,i){let r=xAe[e.key]||e.key,o="";return i.indexOf("code.")>-1&&(r=e.code,o="code."),!(null==r||!r)&&(r=r.toLowerCase()," "===r?r="space":"."===r&&(r="dot"),hz.forEach(s=>{s!==r&&(0,CAe[s])(e)&&(o+=s+".")}),o+=r,o===i)}static eventCallback(e,i,r){return o=>{t.matchEventFullKeyCode(o,e)&&r.runGuarded(()=>i(o))}}static _normalizeKey(e){return"esc"===e?"escape":e}static{this.\u0275fac=function(i){return new(i||t)(oe(xi))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac})}}return t})();const mz=[{provide:vf,useValue:jQ},{provide:K6,useValue:function MAe(){TD.makeCurrent()},multi:!0},{provide:xi,useFactory:function TAe(){return function Doe(t){nI=t}(document),document},deps:[]}],FAe=GV(Rfe,"browser",mz),kAe=new ot(""),pz=[{provide:fE,useClass:class hAe{addToWindow(n){bi.getAngularTestability=(i,r=!0)=>{const o=n.findTestabilityInTree(i,r);if(null==o)throw new ct(5103,!1);return o},bi.getAllAngularTestabilities=()=>n.getAllTestabilities(),bi.getAllAngularRootElements=()=>n.getAllRootElements(),bi.frameworkStabilizers||(bi.frameworkStabilizers=[]),bi.frameworkStabilizers.push(i=>{const r=bi.getAllAngularTestabilities();let o=r.length;const s=function(){o--,0==o&&i()};r.forEach(a=>{a.whenStable(s)})})}findTestabilityInTree(n,e,i){return null==e?null:n.getTestability(e)??(i?Ff().isShadowRoot(e)?this.findTestabilityInTree(n,e.host,!0):this.findTestabilityInTree(n,e.parentElement,!0):null)}},deps:[]},{provide:BV,useClass:KB,deps:[Fn,XB,fE]},{provide:KB,useClass:KB,deps:[Fn,XB,fE]}],Az=[{provide:B_,useValue:"root"},{provide:es,useFactory:function SAe(){return new es},deps:[]},{provide:FD,useClass:wAe,multi:!0,deps:[xi,Fn,vf]},{provide:FD,useClass:EAe,multi:!0,deps:[xi]},DD,az,oz,{provide:YI,useExisting:DD},{provide:XQ,useClass:fAe,deps:[]},[]];let gz=(()=>{class t{constructor(e){}static withServerTransition(e){return{ngModule:t,providers:[{provide:Cv,useValue:e.appId}]}}static{this.\u0275fac=function(i){return new(i||t)(oe(kAe,12))}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({providers:[...Az,...pz],imports:[An,Lfe]})}}return t})();function yz(t){return t&&fn(t.schedule)}function ND(t){return t[t.length-1]}function OD(t){return fn(ND(t))?t.pop():void 0}function yy(t){return yz(ND(t))?t.pop():void 0}function kf(t){return this instanceof kf?(this.v=t,this):new kf(t)}function Ez(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e,n=t[Symbol.asyncIterator];return n?n.call(t):(t=function QD(t){var n="function"==typeof Symbol&&Symbol.iterator,e=n&&t[n],i=0;if(e)return e.call(t);if(t&&"number"==typeof t.length)return{next:function(){return t&&i>=t.length&&(t=void 0),{value:t&&t[i++],done:!t}}};throw new TypeError(n?"Object is not iterable.":"Symbol.iterator is not defined.")}(t),e={},i("next"),i("throw"),i("return"),e[Symbol.asyncIterator]=function(){return this},e);function i(o){e[o]=t[o]&&function(s){return new Promise(function(a,l){!function r(o,s,a,l){Promise.resolve(l).then(function(c){o({value:c,done:a})},s)}(a,l,(s=t[o](s)).done,s.value)})}}}"function"==typeof SuppressedError&&SuppressedError;const zD=t=>t&&"number"==typeof t.length&&"function"!=typeof t;function Mz(t){return fn(t?.then)}function Sz(t){return fn(t[mc])}function Tz(t){return Symbol.asyncIterator&&fn(t?.[Symbol.asyncIterator])}function Fz(t){return new TypeError(`You provided ${null!==t&&"object"==typeof t?"an invalid object":`'${t}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`)}const kz=function ige(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}();function Iz(t){return fn(t?.[kz])}function Bz(t){return function Cz(t,n,e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,i=e.apply(t,n||[]),o=[];return r={},s("next"),s("throw"),s("return"),r[Symbol.asyncIterator]=function(){return this},r;function s(h){i[h]&&(r[h]=function(m){return new Promise(function(A,v){o.push([h,m,A,v])>1||a(h,m)})})}function a(h,m){try{!function l(h){h.value instanceof kf?Promise.resolve(h.value.v).then(c,d):u(o[0][2],h)}(i[h](m))}catch(A){u(o[0][3],A)}}function c(h){a("next",h)}function d(h){a("throw",h)}function u(h,m){h(m),o.shift(),o.length&&a(o[0][0],o[0][1])}}(this,arguments,function*(){const e=t.getReader();try{for(;;){const{value:i,done:r}=yield kf(e.read());if(r)return yield kf(void 0);yield yield kf(i)}}finally{e.releaseLock()}})}function Dz(t){return fn(t?.getReader)}function Go(t){if(t instanceof $i)return t;if(null!=t){if(Sz(t))return function rge(t){return new $i(n=>{const e=t[mc]();if(fn(e.subscribe))return e.subscribe(n);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}(t);if(zD(t))return function oge(t){return new $i(n=>{for(let e=0;e{t.then(e=>{n.closed||(n.next(e),n.complete())},e=>n.error(e)).then(null,Qr)})}(t);if(Tz(t))return Rz(t);if(Iz(t))return function age(t){return new $i(n=>{for(const e of t)if(n.next(e),n.closed)return;n.complete()})}(t);if(Dz(t))return function lge(t){return Rz(Bz(t))}(t)}throw Fz(t)}function Rz(t){return new $i(n=>{(function cge(t,n){var e,i,r,o;return function wz(t,n,e,i){return new(e||(e=Promise))(function(o,s){function a(d){try{c(i.next(d))}catch(u){s(u)}}function l(d){try{c(i.throw(d))}catch(u){s(u)}}function c(d){d.done?o(d.value):function r(o){return o instanceof e?o:new e(function(s){s(o)})}(d.value).then(a,l)}c((i=i.apply(t,n||[])).next())})}(this,void 0,void 0,function*(){try{for(e=Ez(t);!(i=yield e.next()).done;)if(n.next(i.value),n.closed)return}catch(s){r={error:s}}finally{try{i&&!i.done&&(o=e.return)&&(yield o.call(e))}finally{if(r)throw r.error}}n.complete()})})(t,n).catch(e=>n.error(e))})}function Gu(t,n,e,i=0,r=!1){const o=n.schedule(function(){e(),r?t.add(this.schedule(null,i)):this.unsubscribe()},i);if(t.add(o),!r)return o}function GD(t,n=0){return Be((e,i)=>{e.subscribe(Je(i,r=>Gu(i,t,()=>i.next(r),n),()=>Gu(i,t,()=>i.complete(),n),r=>Gu(i,t,()=>i.error(r),n)))})}function Lz(t,n=0){return Be((e,i)=>{i.add(t.schedule(()=>e.subscribe(i),n))})}function Pz(t,n){if(!t)throw new Error("Iterable cannot be null");return new $i(e=>{Gu(e,n,()=>{const i=t[Symbol.asyncIterator]();Gu(e,n,()=>{i.next().then(r=>{r.done?e.complete():e.next(r.value)})},0,!0)})})}function xp(t,n){return n?function pge(t,n){if(null!=t){if(Sz(t))return function dge(t,n){return Go(t).pipe(Lz(n),GD(n))}(t,n);if(zD(t))return function hge(t,n){return new $i(e=>{let i=0;return n.schedule(function(){i===t.length?e.complete():(e.next(t[i++]),e.closed||this.schedule())})})}(t,n);if(Mz(t))return function uge(t,n){return Go(t).pipe(Lz(n),GD(n))}(t,n);if(Tz(t))return Pz(t,n);if(Iz(t))return function fge(t,n){return new $i(e=>{let i;return Gu(e,n,()=>{i=t[kz](),Gu(e,n,()=>{let r,o;try{({value:r,done:o}=i.next())}catch(s){return void e.error(s)}o?e.complete():e.next(r)},0,!0)}),()=>fn(i?.return)&&i.return()})}(t,n);if(Dz(t))return function mge(t,n){return Pz(Bz(t),n)}(t,n)}throw Fz(t)}(t,n):Go(t)}function nl(...t){return xp(t,yy(t))}function If(t,n,e=1/0){return fn(n)?If((i,r)=>Et((o,s)=>n(i,o,r,s))(Go(t(i,r))),e):("number"==typeof n&&(e=n),Be((i,r)=>function Age(t,n,e,i,r,o,s,a){const l=[];let c=0,d=0,u=!1;const h=()=>{u&&!l.length&&!c&&n.complete()},m=v=>c{o&&n.next(v),c++;let x=!1;Go(e(v,d++)).subscribe(Je(n,C=>{r?.(C),o?m(C):n.next(C)},()=>{x=!0},void 0,()=>{if(x)try{for(c--;l.length&&cA(C)):A(C)}h()}catch(C){n.error(C)}}))};return t.subscribe(Je(n,m,()=>{u=!0,h()})),()=>{a?.()}}(i,r,t,e)))}function Ii(t,n){return Be((e,i)=>{let r=0;e.subscribe(Je(i,o=>t.call(n,o,r++)&&i.next(o)))})}function qD(t){return Be((n,e)=>{try{n.subscribe(e)}finally{e.add(t)}})}function Bf(t,n){return Be((e,i)=>{let r=null,o=0,s=!1;const a=()=>s&&!r&&i.complete();e.subscribe(Je(i,l=>{r?.unsubscribe();let c=0;const d=o++;Go(t(l,d)).subscribe(r=Je(i,u=>i.next(n?n(l,u,d,c++):u),()=>{r=null,a()}))},()=>{s=!0,a()}))})}class HE{}class VE{}class ec{constructor(n){this.normalizedNames=new Map,this.lazyUpdate=null,n?"string"==typeof n?this.lazyInit=()=>{this.headers=new Map,n.split("\n").forEach(e=>{const i=e.indexOf(":");if(i>0){const r=e.slice(0,i),o=r.toLowerCase(),s=e.slice(i+1).trim();this.maybeSetNormalizedName(r,o),this.headers.has(o)?this.headers.get(o).push(s):this.headers.set(o,[s])}})}:typeof Headers<"u"&&n instanceof Headers?(this.headers=new Map,n.forEach((e,i)=>{this.setHeaderEntries(i,e)})):this.lazyInit=()=>{this.headers=new Map,Object.entries(n).forEach(([e,i])=>{this.setHeaderEntries(e,i)})}:this.headers=new Map}has(n){return this.init(),this.headers.has(n.toLowerCase())}get(n){this.init();const e=this.headers.get(n.toLowerCase());return e&&e.length>0?e[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(n){return this.init(),this.headers.get(n.toLowerCase())||null}append(n,e){return this.clone({name:n,value:e,op:"a"})}set(n,e){return this.clone({name:n,value:e,op:"s"})}delete(n,e){return this.clone({name:n,value:e,op:"d"})}maybeSetNormalizedName(n,e){this.normalizedNames.has(e)||this.normalizedNames.set(e,n)}init(){this.lazyInit&&(this.lazyInit instanceof ec?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(n=>this.applyUpdate(n)),this.lazyUpdate=null))}copyFrom(n){n.init(),Array.from(n.headers.keys()).forEach(e=>{this.headers.set(e,n.headers.get(e)),this.normalizedNames.set(e,n.normalizedNames.get(e))})}clone(n){const e=new ec;return e.lazyInit=this.lazyInit&&this.lazyInit instanceof ec?this.lazyInit:this,e.lazyUpdate=(this.lazyUpdate||[]).concat([n]),e}applyUpdate(n){const e=n.name.toLowerCase();switch(n.op){case"a":case"s":let i=n.value;if("string"==typeof i&&(i=[i]),0===i.length)return;this.maybeSetNormalizedName(n.name,e);const r=("a"===n.op?this.headers.get(e):void 0)||[];r.push(...i),this.headers.set(e,r);break;case"d":const o=n.value;if(o){let s=this.headers.get(e);if(!s)return;s=s.filter(a=>-1===o.indexOf(a)),0===s.length?(this.headers.delete(e),this.normalizedNames.delete(e)):this.headers.set(e,s)}else this.headers.delete(e),this.normalizedNames.delete(e)}}setHeaderEntries(n,e){const i=(Array.isArray(e)?e:[e]).map(o=>o.toString()),r=n.toLowerCase();this.headers.set(r,i),this.maybeSetNormalizedName(n,r)}forEach(n){this.init(),Array.from(this.normalizedNames.keys()).forEach(e=>n(this.normalizedNames.get(e),this.headers.get(e)))}}class bge{encodeKey(n){return Nz(n)}encodeValue(n){return Nz(n)}decodeKey(n){return decodeURIComponent(n)}decodeValue(n){return decodeURIComponent(n)}}const vge=/%(\d[a-f0-9])/gi,yge={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function Nz(t){return encodeURIComponent(t).replace(vge,(n,e)=>yge[e]??n)}function QE(t){return`${t}`}class Df{constructor(n={}){if(this.updates=null,this.cloneFrom=null,this.encoder=n.encoder||new bge,n.fromString){if(n.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=function _ge(t,n){const e=new Map;return t.length>0&&t.replace(/^\?/,"").split("&").forEach(r=>{const o=r.indexOf("="),[s,a]=-1==o?[n.decodeKey(r),""]:[n.decodeKey(r.slice(0,o)),n.decodeValue(r.slice(o+1))],l=e.get(s)||[];l.push(a),e.set(s,l)}),e}(n.fromString,this.encoder)}else n.fromObject?(this.map=new Map,Object.keys(n.fromObject).forEach(e=>{const i=n.fromObject[e],r=Array.isArray(i)?i.map(QE):[QE(i)];this.map.set(e,r)})):this.map=null}has(n){return this.init(),this.map.has(n)}get(n){this.init();const e=this.map.get(n);return e?e[0]:null}getAll(n){return this.init(),this.map.get(n)||null}keys(){return this.init(),Array.from(this.map.keys())}append(n,e){return this.clone({param:n,value:e,op:"a"})}appendAll(n){const e=[];return Object.keys(n).forEach(i=>{const r=n[i];Array.isArray(r)?r.forEach(o=>{e.push({param:i,value:o,op:"a"})}):e.push({param:i,value:r,op:"a"})}),this.clone(e)}set(n,e){return this.clone({param:n,value:e,op:"s"})}delete(n,e){return this.clone({param:n,value:e,op:"d"})}toString(){return this.init(),this.keys().map(n=>{const e=this.encoder.encodeKey(n);return this.map.get(n).map(i=>e+"="+this.encoder.encodeValue(i)).join("&")}).filter(n=>""!==n).join("&")}clone(n){const e=new Df({encoder:this.encoder});return e.cloneFrom=this.cloneFrom||this,e.updates=(this.updates||[]).concat(n),e}init(){null===this.map&&(this.map=new Map),null!==this.cloneFrom&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(n=>this.map.set(n,this.cloneFrom.map.get(n))),this.updates.forEach(n=>{switch(n.op){case"a":case"s":const e=("a"===n.op?this.map.get(n.param):void 0)||[];e.push(QE(n.value)),this.map.set(n.param,e);break;case"d":if(void 0===n.value){this.map.delete(n.param);break}{let i=this.map.get(n.param)||[];const r=i.indexOf(QE(n.value));-1!==r&&i.splice(r,1),i.length>0?this.map.set(n.param,i):this.map.delete(n.param)}}}),this.cloneFrom=this.updates=null)}}class wge{constructor(){this.map=new Map}set(n,e){return this.map.set(n,e),this}get(n){return this.map.has(n)||this.map.set(n,n.defaultValue()),this.map.get(n)}delete(n){return this.map.delete(n),this}has(n){return this.map.has(n)}keys(){return this.map.keys()}}function Oz(t){return typeof ArrayBuffer<"u"&&t instanceof ArrayBuffer}function Uz(t){return typeof Blob<"u"&&t instanceof Blob}function Hz(t){return typeof FormData<"u"&&t instanceof FormData}class wy{constructor(n,e,i,r){let o;if(this.url=e,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=n.toUpperCase(),function xge(t){switch(t){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}(this.method)||r?(this.body=void 0!==i?i:null,o=r):o=i,o&&(this.reportProgress=!!o.reportProgress,this.withCredentials=!!o.withCredentials,o.responseType&&(this.responseType=o.responseType),o.headers&&(this.headers=o.headers),o.context&&(this.context=o.context),o.params&&(this.params=o.params),this.transferCache=o.transferCache),this.headers??=new ec,this.context??=new wge,this.params){const s=this.params.toString();if(0===s.length)this.urlWithParams=e;else{const a=e.indexOf("?");this.urlWithParams=e+(-1===a?"?":ah.set(m,n.setHeaders[m]),c)),n.setParams&&(d=Object.keys(n.setParams).reduce((h,m)=>h.set(m,n.setParams[m]),d)),new wy(e,i,s,{params:d,headers:c,context:u,reportProgress:l,responseType:r,withCredentials:a,transferCache:o})}}var Rf=function(t){return t[t.Sent=0]="Sent",t[t.UploadProgress=1]="UploadProgress",t[t.ResponseHeader=2]="ResponseHeader",t[t.DownloadProgress=3]="DownloadProgress",t[t.Response=4]="Response",t[t.User=5]="User",t}(Rf||{});class WD{constructor(n,e=xy.Ok,i="OK"){this.headers=n.headers||new ec,this.status=void 0!==n.status?n.status:e,this.statusText=n.statusText||i,this.url=n.url||null,this.ok=this.status>=200&&this.status<300}}class zE extends WD{constructor(n={}){super(n),this.type=Rf.ResponseHeader}clone(n={}){return new zE({headers:n.headers||this.headers,status:void 0!==n.status?n.status:this.status,statusText:n.statusText||this.statusText,url:n.url||this.url||void 0})}}class Cp extends WD{constructor(n={}){super(n),this.type=Rf.Response,this.body=void 0!==n.body?n.body:null}clone(n={}){return new Cp({body:void 0!==n.body?n.body:this.body,headers:n.headers||this.headers,status:void 0!==n.status?n.status:this.status,statusText:n.statusText||this.statusText,url:n.url||this.url||void 0})}}class g0 extends WD{constructor(n){super(n,0,"Unknown Error"),this.name="HttpErrorResponse",this.ok=!1,this.message=this.status>=200&&this.status<300?`Http failure during parsing for ${n.url||"(unknown url)"}`:`Http failure response for ${n.url||"(unknown url)"}: ${n.status} ${n.statusText}`,this.error=n.error||null}}var xy=function(t){return t[t.Continue=100]="Continue",t[t.SwitchingProtocols=101]="SwitchingProtocols",t[t.Processing=102]="Processing",t[t.EarlyHints=103]="EarlyHints",t[t.Ok=200]="Ok",t[t.Created=201]="Created",t[t.Accepted=202]="Accepted",t[t.NonAuthoritativeInformation=203]="NonAuthoritativeInformation",t[t.NoContent=204]="NoContent",t[t.ResetContent=205]="ResetContent",t[t.PartialContent=206]="PartialContent",t[t.MultiStatus=207]="MultiStatus",t[t.AlreadyReported=208]="AlreadyReported",t[t.ImUsed=226]="ImUsed",t[t.MultipleChoices=300]="MultipleChoices",t[t.MovedPermanently=301]="MovedPermanently",t[t.Found=302]="Found",t[t.SeeOther=303]="SeeOther",t[t.NotModified=304]="NotModified",t[t.UseProxy=305]="UseProxy",t[t.Unused=306]="Unused",t[t.TemporaryRedirect=307]="TemporaryRedirect",t[t.PermanentRedirect=308]="PermanentRedirect",t[t.BadRequest=400]="BadRequest",t[t.Unauthorized=401]="Unauthorized",t[t.PaymentRequired=402]="PaymentRequired",t[t.Forbidden=403]="Forbidden",t[t.NotFound=404]="NotFound",t[t.MethodNotAllowed=405]="MethodNotAllowed",t[t.NotAcceptable=406]="NotAcceptable",t[t.ProxyAuthenticationRequired=407]="ProxyAuthenticationRequired",t[t.RequestTimeout=408]="RequestTimeout",t[t.Conflict=409]="Conflict",t[t.Gone=410]="Gone",t[t.LengthRequired=411]="LengthRequired",t[t.PreconditionFailed=412]="PreconditionFailed",t[t.PayloadTooLarge=413]="PayloadTooLarge",t[t.UriTooLong=414]="UriTooLong",t[t.UnsupportedMediaType=415]="UnsupportedMediaType",t[t.RangeNotSatisfiable=416]="RangeNotSatisfiable",t[t.ExpectationFailed=417]="ExpectationFailed",t[t.ImATeapot=418]="ImATeapot",t[t.MisdirectedRequest=421]="MisdirectedRequest",t[t.UnprocessableEntity=422]="UnprocessableEntity",t[t.Locked=423]="Locked",t[t.FailedDependency=424]="FailedDependency",t[t.TooEarly=425]="TooEarly",t[t.UpgradeRequired=426]="UpgradeRequired",t[t.PreconditionRequired=428]="PreconditionRequired",t[t.TooManyRequests=429]="TooManyRequests",t[t.RequestHeaderFieldsTooLarge=431]="RequestHeaderFieldsTooLarge",t[t.UnavailableForLegalReasons=451]="UnavailableForLegalReasons",t[t.InternalServerError=500]="InternalServerError",t[t.NotImplemented=501]="NotImplemented",t[t.BadGateway=502]="BadGateway",t[t.ServiceUnavailable=503]="ServiceUnavailable",t[t.GatewayTimeout=504]="GatewayTimeout",t[t.HttpVersionNotSupported=505]="HttpVersionNotSupported",t[t.VariantAlsoNegotiates=506]="VariantAlsoNegotiates",t[t.InsufficientStorage=507]="InsufficientStorage",t[t.LoopDetected=508]="LoopDetected",t[t.NotExtended=510]="NotExtended",t[t.NetworkAuthenticationRequired=511]="NetworkAuthenticationRequired",t}(xy||{});function $D(t,n){return{body:n,headers:t.headers,context:t.context,observe:t.observe,params:t.params,reportProgress:t.reportProgress,responseType:t.responseType,withCredentials:t.withCredentials,transferCache:t.transferCache}}let Cy=(()=>{class t{constructor(e){this.handler=e}request(e,i,r={}){let o;if(e instanceof wy)o=e;else{let l,c;l=r.headers instanceof ec?r.headers:new ec(r.headers),r.params&&(c=r.params instanceof Df?r.params:new Df({fromObject:r.params})),o=new wy(e,i,void 0!==r.body?r.body:null,{headers:l,context:r.context,params:c,reportProgress:r.reportProgress,responseType:r.responseType||"json",withCredentials:r.withCredentials,transferCache:r.transferCache})}const s=nl(o).pipe(function gge(t,n){return fn(n)?If(t,n,1):If(t,1)}(l=>this.handler.handle(l)));if(e instanceof wy||"events"===r.observe)return s;const a=s.pipe(Ii(l=>l instanceof Cp));switch(r.observe||"body"){case"body":switch(o.responseType){case"arraybuffer":return a.pipe(Et(l=>{if(null!==l.body&&!(l.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return l.body}));case"blob":return a.pipe(Et(l=>{if(null!==l.body&&!(l.body instanceof Blob))throw new Error("Response is not a Blob.");return l.body}));case"text":return a.pipe(Et(l=>{if(null!==l.body&&"string"!=typeof l.body)throw new Error("Response is not a string.");return l.body}));default:return a.pipe(Et(l=>l.body))}case"response":return a;default:throw new Error(`Unreachable: unhandled observe type ${r.observe}}`)}}delete(e,i={}){return this.request("DELETE",e,i)}get(e,i={}){return this.request("GET",e,i)}head(e,i={}){return this.request("HEAD",e,i)}jsonp(e,i){return this.request("JSONP",e,{params:(new Df).append(i,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(e,i={}){return this.request("OPTIONS",e,i)}patch(e,i,r={}){return this.request("PATCH",e,$D(r,i))}post(e,i,r={}){return this.request("POST",e,$D(r,i))}put(e,i,r={}){return this.request("PUT",e,$D(r,i))}static{this.\u0275fac=function(i){return new(i||t)(oe(HE))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac})}}return t})();function Qz(t,n){return n(t)}function Fge(t,n){return(e,i)=>n.intercept(e,{handle:r=>t(r,i)})}const Ige=new ot(""),Ey=new ot(""),zz=new ot(""),Gz=new ot("");function Bge(){let t=null;return(n,e)=>{null===t&&(t=(Ut(Ige,{optional:!0})??[]).reduceRight(Fge,Qz));const i=Ut(Ap),r=i.add();return t(n,e).pipe(qD(()=>i.remove(r)))}}let qz=(()=>{class t extends HE{constructor(e,i){super(),this.backend=e,this.injector=i,this.chain=null,this.pendingTasks=Ut(Ap);const r=Ut(Gz,{optional:!0});this.backend=r??e}handle(e){if(null===this.chain){const r=Array.from(new Set([...this.injector.get(Ey),...this.injector.get(zz,[])]));this.chain=r.reduceRight((o,s)=>function kge(t,n,e){return(i,r)=>function L_(t,n){t instanceof Kh&&t.assertNotDestroyed();const i=Va(t),r=na(void 0);try{return n()}finally{Va(i),na(r)}}(e,()=>n(i,o=>t(o,r)))}(o,s,this.injector),Qz)}const i=this.pendingTasks.add();return this.chain(e,r=>this.backend.handle(r)).pipe(qD(()=>this.pendingTasks.remove(i)))}static{this.\u0275fac=function(i){return new(i||t)(oe(VE),oe(ml))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac})}}return t})();const Nge=/^\)\]\}',?\n/;let $z=(()=>{class t{constructor(e){this.xhrFactory=e}handle(e){if("JSONP"===e.method)throw new ct(-2800,!1);const i=this.xhrFactory;return(i.\u0275loadImpl?xp(i.\u0275loadImpl()):nl(null)).pipe(Bf(()=>new $i(o=>{const s=i.build();if(s.open(e.method,e.urlWithParams),e.withCredentials&&(s.withCredentials=!0),e.headers.forEach((v,x)=>s.setRequestHeader(v,x.join(","))),e.headers.has("Accept")||s.setRequestHeader("Accept","application/json, text/plain, */*"),!e.headers.has("Content-Type")){const v=e.detectContentTypeHeader();null!==v&&s.setRequestHeader("Content-Type",v)}if(e.responseType){const v=e.responseType.toLowerCase();s.responseType="json"!==v?v:"text"}const a=e.serializeBody();let l=null;const c=()=>{if(null!==l)return l;const v=s.statusText||"OK",x=new ec(s.getAllResponseHeaders()),C=function Oge(t){return"responseURL"in t&&t.responseURL?t.responseURL:/^X-Request-URL:/m.test(t.getAllResponseHeaders())?t.getResponseHeader("X-Request-URL"):null}(s)||e.url;return l=new zE({headers:x,status:s.status,statusText:v,url:C}),l},d=()=>{let{headers:v,status:x,statusText:C,url:w}=c(),S=null;x!==xy.NoContent&&(S=typeof s.response>"u"?s.responseText:s.response),0===x&&(x=S?xy.Ok:0);let M=x>=200&&x<300;if("json"===e.responseType&&"string"==typeof S){const B=S;S=S.replace(Nge,"");try{S=""!==S?JSON.parse(S):null}catch(P){S=B,M&&(M=!1,S={error:P,text:S})}}M?(o.next(new Cp({body:S,headers:v,status:x,statusText:C,url:w||void 0})),o.complete()):o.error(new g0({error:S,headers:v,status:x,statusText:C,url:w||void 0}))},u=v=>{const{url:x}=c(),C=new g0({error:v,status:s.status||0,statusText:s.statusText||"Unknown Error",url:x||void 0});o.error(C)};let h=!1;const m=v=>{h||(o.next(c()),h=!0);let x={type:Rf.DownloadProgress,loaded:v.loaded};v.lengthComputable&&(x.total=v.total),"text"===e.responseType&&s.responseText&&(x.partialText=s.responseText),o.next(x)},A=v=>{let x={type:Rf.UploadProgress,loaded:v.loaded};v.lengthComputable&&(x.total=v.total),o.next(x)};return s.addEventListener("load",d),s.addEventListener("error",u),s.addEventListener("timeout",u),s.addEventListener("abort",u),e.reportProgress&&(s.addEventListener("progress",m),null!==a&&s.upload&&s.upload.addEventListener("progress",A)),s.send(a),o.next({type:Rf.Sent}),()=>{s.removeEventListener("error",u),s.removeEventListener("abort",u),s.removeEventListener("load",d),s.removeEventListener("timeout",u),e.reportProgress&&(s.removeEventListener("progress",m),null!==a&&s.upload&&s.upload.removeEventListener("progress",A)),s.readyState!==s.DONE&&s.abort()}})))}static{this.\u0275fac=function(i){return new(i||t)(oe(XQ))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac})}}return t})();const XD=new ot(""),jz=new ot("",{providedIn:"root",factory:()=>"XSRF-TOKEN"}),Kz=new ot("",{providedIn:"root",factory:()=>"X-XSRF-TOKEN"});class Xz{}let Vge=(()=>{class t{constructor(e,i,r){this.doc=e,this.platform=i,this.cookieName=r,this.lastCookieString="",this.lastToken=null,this.parseCount=0}getToken(){if("server"===this.platform)return null;const e=this.doc.cookie||"";return e!==this.lastCookieString&&(this.parseCount++,this.lastToken=HQ(e,this.cookieName),this.lastCookieString=e),this.lastToken}static{this.\u0275fac=function(i){return new(i||t)(oe(xi),oe(vf),oe(jz))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac})}}return t})();function Qge(t,n){const e=t.url.toLowerCase();if(!Ut(XD)||"GET"===t.method||"HEAD"===t.method||e.startsWith("http://")||e.startsWith("https://"))return n(t);const i=Ut(Xz).getToken(),r=Ut(Kz);return null!=i&&!t.headers.has(r)&&(t=t.clone({headers:t.headers.set(r,i)})),n(t)}var Lf=function(t){return t[t.Interceptors=0]="Interceptors",t[t.LegacyInterceptors=1]="LegacyInterceptors",t[t.CustomXsrfConfiguration=2]="CustomXsrfConfiguration",t[t.NoXsrfProtection=3]="NoXsrfProtection",t[t.JsonpSupport=4]="JsonpSupport",t[t.RequestsMadeViaParent=5]="RequestsMadeViaParent",t[t.Fetch=6]="Fetch",t}(Lf||{});function Ep(t,n){return{\u0275kind:t,\u0275providers:n}}function zge(...t){const n=[Cy,$z,qz,{provide:HE,useExisting:qz},{provide:VE,useExisting:$z},{provide:Ey,useValue:Qge,multi:!0},{provide:XD,useValue:!0},{provide:Xz,useClass:Vge}];for(const e of t)n.push(...e.\u0275providers);return function jm(t){return{\u0275providers:t}}(n)}const Yz=new ot("");let Zz=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({providers:[zge(Ep(Lf.LegacyInterceptors,[{provide:Yz,useFactory:Bge},{provide:Ey,useExisting:Yz,multi:!0}]))]})}}return t})();const{isArray:Xge}=Array,{getPrototypeOf:Yge,prototype:Zge,keys:Jge}=Object;function sG(t){if(1===t.length){const n=t[0];if(Xge(n))return{args:n,keys:null};if(function e0e(t){return t&&"object"==typeof t&&Yge(t)===Zge}(n)){const e=Jge(n);return{args:e.map(i=>n[i]),keys:e}}}return{args:t,keys:null}}const{isArray:t0e}=Array;function YD(t){return Et(n=>function n0e(t,n){return t0e(n)?t(...n):t(n)}(t,n))}function aG(t,n){return t.reduce((e,i,r)=>(e[i]=n[r],e),{})}let cG=(()=>{class t{constructor(e,i){this._renderer=e,this._elementRef=i,this.onChange=r=>{},this.onTouched=()=>{}}setProperty(e,i){this._renderer.setProperty(this._elementRef.nativeElement,e,i)}registerOnTouched(e){this.onTouched=e}registerOnChange(e){this.onChange=e}setDisabledState(e){this.setProperty("disabled",e)}static{this.\u0275fac=function(i){return new(i||t)(W(hp),W(Un))}}static{this.\u0275dir=zt({type:t})}}return t})(),Mp=(()=>{class t extends cG{static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=_r(t)))(r||t)}})()}static{this.\u0275dir=zt({type:t,features:[di]})}}return t})();const Fs=new ot(""),r0e={provide:Fs,useExisting:hi(()=>Pf),multi:!0},s0e=new ot("");let Pf=(()=>{class t extends cG{constructor(e,i,r){super(e,i),this._compositionMode=r,this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function o0e(){const t=Ff()?Ff().getUserAgent():"";return/android (\d+)/.test(t.toLowerCase())}())}writeValue(e){this.setProperty("value",e??"")}_handleInput(e){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(e)}_compositionStart(){this._composing=!0}_compositionEnd(e){this._composing=!1,this._compositionMode&&this.onChange(e)}static{this.\u0275fac=function(i){return new(i||t)(W(hp),W(Un),W(s0e,8))}}static{this.\u0275dir=zt({type:t,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(i,r){1&i&&We("input",function(s){return r._handleInput(s.target.value)})("blur",function(){return r.onTouched()})("compositionstart",function(){return r._compositionStart()})("compositionend",function(s){return r._compositionEnd(s.target.value)})},features:[ni([r0e]),di]})}}return t})();function Nf(t){return null==t||("string"==typeof t||Array.isArray(t))&&0===t.length}function uG(t){return null!=t&&"number"==typeof t.length}const rs=new ot(""),Of=new ot(""),a0e=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;class ZD{static min(n){return function hG(t){return n=>{if(Nf(n.value)||Nf(t))return null;const e=parseFloat(n.value);return!isNaN(e)&&e{if(Nf(n.value)||Nf(t))return null;const e=parseFloat(n.value);return!isNaN(e)&&e>t?{max:{max:t,actual:n.value}}:null}}(n)}static required(n){return mG(n)}static requiredTrue(n){return function pG(t){return!0===t.value?null:{required:!0}}(n)}static email(n){return function AG(t){return Nf(t.value)||a0e.test(t.value)?null:{email:!0}}(n)}static minLength(n){return function gG(t){return n=>Nf(n.value)||!uG(n.value)?null:n.value.lengthuG(n.value)&&n.value.length>t?{maxlength:{requiredLength:t,actualLength:n.value.length}}:null}(n)}static pattern(n){return function _G(t){if(!t)return qE;let n,e;return"string"==typeof t?(e="","^"!==t.charAt(0)&&(e+="^"),e+=t,"$"!==t.charAt(t.length-1)&&(e+="$"),n=new RegExp(e)):(e=t.toString(),n=t),i=>{if(Nf(i.value))return null;const r=i.value;return n.test(r)?null:{pattern:{requiredPattern:e,actualValue:r}}}}(n)}static nullValidator(n){return null}static compose(n){return EG(n)}static composeAsync(n){return MG(n)}}function mG(t){return Nf(t.value)?{required:!0}:null}function qE(t){return null}function vG(t){return null!=t}function yG(t){return mE(t)?xp(t):t}function wG(t){let n={};return t.forEach(e=>{n=null!=e?{...n,...e}:n}),0===Object.keys(n).length?null:n}function xG(t,n){return n.map(e=>e(t))}function CG(t){return t.map(n=>function l0e(t){return!t.validate}(n)?n:e=>n.validate(e))}function EG(t){if(!t)return null;const n=t.filter(vG);return 0==n.length?null:function(e){return wG(xG(e,n))}}function JD(t){return null!=t?EG(CG(t)):null}function MG(t){if(!t)return null;const n=t.filter(vG);return 0==n.length?null:function(e){return function lG(...t){const n=OD(t),{args:e,keys:i}=sG(t),r=new $i(o=>{const{length:s}=e;if(!s)return void o.complete();const a=new Array(s);let l=s,c=s;for(let d=0;d{u||(u=!0,c--),a[d]=h},()=>l--,void 0,()=>{(!l||!u)&&(c||o.next(i?aG(i,a):a),o.complete())}))}});return n?r.pipe(YD(n)):r}(xG(e,n).map(yG)).pipe(Et(wG))}}function e4(t){return null!=t?MG(CG(t)):null}function SG(t,n){return null===t?[n]:Array.isArray(t)?[...t,n]:[t,n]}function TG(t){return t._rawValidators}function FG(t){return t._rawAsyncValidators}function t4(t){return t?Array.isArray(t)?t:[t]:[]}function WE(t,n){return Array.isArray(t)?t.includes(n):t===n}function kG(t,n){const e=t4(n);return t4(t).forEach(r=>{WE(e,r)||e.push(r)}),e}function IG(t,n){return t4(n).filter(e=>!WE(t,e))}class BG{constructor(){this._rawValidators=[],this._rawAsyncValidators=[],this._onDestroyCallbacks=[]}get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_setValidators(n){this._rawValidators=n||[],this._composedValidatorFn=JD(this._rawValidators)}_setAsyncValidators(n){this._rawAsyncValidators=n||[],this._composedAsyncValidatorFn=e4(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_registerOnDestroy(n){this._onDestroyCallbacks.push(n)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(n=>n()),this._onDestroyCallbacks=[]}reset(n=void 0){this.control&&this.control.reset(n)}hasError(n,e){return!!this.control&&this.control.hasError(n,e)}getError(n,e){return this.control?this.control.getError(n,e):null}}class Ea extends BG{get formDirective(){return null}get path(){return null}}class Ld extends BG{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null}}class DG{constructor(n){this._cd=n}get isTouched(){return!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return!!this._cd?.submitted}}let b0=(()=>{class t extends DG{constructor(e){super(e)}static{this.\u0275fac=function(i){return new(i||t)(W(Ld,2))}}static{this.\u0275dir=zt({type:t,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(i,r){2&i&&xn("ng-untouched",r.isUntouched)("ng-touched",r.isTouched)("ng-pristine",r.isPristine)("ng-dirty",r.isDirty)("ng-valid",r.isValid)("ng-invalid",r.isInvalid)("ng-pending",r.isPending)},features:[di]})}}return t})();const My="VALID",jE="INVALID",_0="PENDING",Sy="DISABLED";function r4(t){return(KE(t)?t.validators:t)||null}function o4(t,n){return(KE(n)?n.asyncValidators:t)||null}function KE(t){return null!=t&&!Array.isArray(t)&&"object"==typeof t}class s4{constructor(n,e){this._pendingDirty=!1,this._hasOwnPendingAsyncValidator=!1,this._pendingTouched=!1,this._onCollectionChange=()=>{},this._parent=null,this.pristine=!0,this.touched=!1,this._onDisabledChange=[],this._assignValidators(n),this._assignAsyncValidators(e)}get validator(){return this._composedValidatorFn}set validator(n){this._rawValidators=this._composedValidatorFn=n}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(n){this._rawAsyncValidators=this._composedAsyncValidatorFn=n}get parent(){return this._parent}get valid(){return this.status===My}get invalid(){return this.status===jE}get pending(){return this.status==_0}get disabled(){return this.status===Sy}get enabled(){return this.status!==Sy}get dirty(){return!this.pristine}get untouched(){return!this.touched}get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(n){this._assignValidators(n)}setAsyncValidators(n){this._assignAsyncValidators(n)}addValidators(n){this.setValidators(kG(n,this._rawValidators))}addAsyncValidators(n){this.setAsyncValidators(kG(n,this._rawAsyncValidators))}removeValidators(n){this.setValidators(IG(n,this._rawValidators))}removeAsyncValidators(n){this.setAsyncValidators(IG(n,this._rawAsyncValidators))}hasValidator(n){return WE(this._rawValidators,n)}hasAsyncValidator(n){return WE(this._rawAsyncValidators,n)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(n={}){this.touched=!0,this._parent&&!n.onlySelf&&this._parent.markAsTouched(n)}markAllAsTouched(){this.markAsTouched({onlySelf:!0}),this._forEachChild(n=>n.markAllAsTouched())}markAsUntouched(n={}){this.touched=!1,this._pendingTouched=!1,this._forEachChild(e=>{e.markAsUntouched({onlySelf:!0})}),this._parent&&!n.onlySelf&&this._parent._updateTouched(n)}markAsDirty(n={}){this.pristine=!1,this._parent&&!n.onlySelf&&this._parent.markAsDirty(n)}markAsPristine(n={}){this.pristine=!0,this._pendingDirty=!1,this._forEachChild(e=>{e.markAsPristine({onlySelf:!0})}),this._parent&&!n.onlySelf&&this._parent._updatePristine(n)}markAsPending(n={}){this.status=_0,!1!==n.emitEvent&&this.statusChanges.emit(this.status),this._parent&&!n.onlySelf&&this._parent.markAsPending(n)}disable(n={}){const e=this._parentMarkedDirty(n.onlySelf);this.status=Sy,this.errors=null,this._forEachChild(i=>{i.disable({...n,onlySelf:!0})}),this._updateValue(),!1!==n.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors({...n,skipPristineCheck:e}),this._onDisabledChange.forEach(i=>i(!0))}enable(n={}){const e=this._parentMarkedDirty(n.onlySelf);this.status=My,this._forEachChild(i=>{i.enable({...n,onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:n.emitEvent}),this._updateAncestors({...n,skipPristineCheck:e}),this._onDisabledChange.forEach(i=>i(!1))}_updateAncestors(n){this._parent&&!n.onlySelf&&(this._parent.updateValueAndValidity(n),n.skipPristineCheck||this._parent._updatePristine(),this._parent._updateTouched())}setParent(n){this._parent=n}getRawValue(){return this.value}updateValueAndValidity(n={}){this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===My||this.status===_0)&&this._runAsyncValidator(n.emitEvent)),!1!==n.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!n.onlySelf&&this._parent.updateValueAndValidity(n)}_updateTreeValidity(n={emitEvent:!0}){this._forEachChild(e=>e._updateTreeValidity(n)),this.updateValueAndValidity({onlySelf:!0,emitEvent:n.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?Sy:My}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(n){if(this.asyncValidator){this.status=_0,this._hasOwnPendingAsyncValidator=!0;const e=yG(this.asyncValidator(this));this._asyncValidationSubscription=e.subscribe(i=>{this._hasOwnPendingAsyncValidator=!1,this.setErrors(i,{emitEvent:n})})}}_cancelExistingSubscription(){this._asyncValidationSubscription&&(this._asyncValidationSubscription.unsubscribe(),this._hasOwnPendingAsyncValidator=!1)}setErrors(n,e={}){this.errors=n,this._updateControlsErrors(!1!==e.emitEvent)}get(n){let e=n;return null==e||(Array.isArray(e)||(e=e.split(".")),0===e.length)?null:e.reduce((i,r)=>i&&i._find(r),this)}getError(n,e){const i=e?this.get(e):this;return i&&i.errors?i.errors[n]:null}hasError(n,e){return!!this.getError(n,e)}get root(){let n=this;for(;n._parent;)n=n._parent;return n}_updateControlsErrors(n){this.status=this._calculateStatus(),n&&this.statusChanges.emit(this.status),this._parent&&this._parent._updateControlsErrors(n)}_initObservables(){this.valueChanges=new Ln,this.statusChanges=new Ln}_calculateStatus(){return this._allControlsDisabled()?Sy:this.errors?jE:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(_0)?_0:this._anyControlsHaveStatus(jE)?jE:My}_anyControlsHaveStatus(n){return this._anyControls(e=>e.status===n)}_anyControlsDirty(){return this._anyControls(n=>n.dirty)}_anyControlsTouched(){return this._anyControls(n=>n.touched)}_updatePristine(n={}){this.pristine=!this._anyControlsDirty(),this._parent&&!n.onlySelf&&this._parent._updatePristine(n)}_updateTouched(n={}){this.touched=this._anyControlsTouched(),this._parent&&!n.onlySelf&&this._parent._updateTouched(n)}_registerOnCollectionChange(n){this._onCollectionChange=n}_setUpdateStrategy(n){KE(n)&&null!=n.updateOn&&(this._updateOn=n.updateOn)}_parentMarkedDirty(n){return!n&&!(!this._parent||!this._parent.dirty)&&!this._parent._anyControlsDirty()}_find(n){return null}_assignValidators(n){this._rawValidators=Array.isArray(n)?n.slice():n,this._composedValidatorFn=function f0e(t){return Array.isArray(t)?JD(t):t||null}(this._rawValidators)}_assignAsyncValidators(n){this._rawAsyncValidators=Array.isArray(n)?n.slice():n,this._composedAsyncValidatorFn=function m0e(t){return Array.isArray(t)?e4(t):t||null}(this._rawAsyncValidators)}}class a4 extends s4{constructor(n,e,i){super(r4(e),o4(i,e)),this.controls=n,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}registerControl(n,e){return this.controls[n]?this.controls[n]:(this.controls[n]=e,e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange),e)}addControl(n,e,i={}){this.registerControl(n,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}removeControl(n,e={}){this.controls[n]&&this.controls[n]._registerOnCollectionChange(()=>{}),delete this.controls[n],this.updateValueAndValidity({emitEvent:e.emitEvent}),this._onCollectionChange()}setControl(n,e,i={}){this.controls[n]&&this.controls[n]._registerOnCollectionChange(()=>{}),delete this.controls[n],e&&this.registerControl(n,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}contains(n){return this.controls.hasOwnProperty(n)&&this.controls[n].enabled}setValue(n,e={}){(function PG(t,n,e){t._forEachChild((i,r)=>{if(void 0===e[r])throw new ct(1002,"")})})(this,0,n),Object.keys(n).forEach(i=>{(function LG(t,n,e){const i=t.controls;if(!(n?Object.keys(i):i).length)throw new ct(1e3,"");if(!i[e])throw new ct(1001,"")})(this,!0,i),this.controls[i].setValue(n[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(n,e={}){null!=n&&(Object.keys(n).forEach(i=>{const r=this.controls[i];r&&r.patchValue(n[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e))}reset(n={},e={}){this._forEachChild((i,r)=>{i.reset(n?n[r]:null,{onlySelf:!0,emitEvent:e.emitEvent})}),this._updatePristine(e),this._updateTouched(e),this.updateValueAndValidity(e)}getRawValue(){return this._reduceChildren({},(n,e,i)=>(n[i]=e.getRawValue(),n))}_syncPendingControls(){let n=this._reduceChildren(!1,(e,i)=>!!i._syncPendingControls()||e);return n&&this.updateValueAndValidity({onlySelf:!0}),n}_forEachChild(n){Object.keys(this.controls).forEach(e=>{const i=this.controls[e];i&&n(i,e)})}_setUpControls(){this._forEachChild(n=>{n.setParent(this),n._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(n){for(const[e,i]of Object.entries(this.controls))if(this.contains(e)&&n(i))return!0;return!1}_reduceValue(){return this._reduceChildren({},(e,i,r)=>((i.enabled||this.disabled)&&(e[r]=i.value),e))}_reduceChildren(n,e){let i=n;return this._forEachChild((r,o)=>{i=e(i,r,o)}),i}_allControlsDisabled(){for(const n of Object.keys(this.controls))if(this.controls[n].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_find(n){return this.controls.hasOwnProperty(n)?this.controls[n]:null}}const Sp=new ot("CallSetDisabledState",{providedIn:"root",factory:()=>Ty}),Ty="always";function Fy(t,n,e=Ty){l4(t,n),n.valueAccessor.writeValue(t.value),(t.disabled||"always"===e)&&n.valueAccessor.setDisabledState?.(t.disabled),function g0e(t,n){n.valueAccessor.registerOnChange(e=>{t._pendingValue=e,t._pendingChange=!0,t._pendingDirty=!0,"change"===t.updateOn&&NG(t,n)})}(t,n),function _0e(t,n){const e=(i,r)=>{n.valueAccessor.writeValue(i),r&&n.viewToModelUpdate(i)};t.registerOnChange(e),n._registerOnDestroy(()=>{t._unregisterOnChange(e)})}(t,n),function b0e(t,n){n.valueAccessor.registerOnTouched(()=>{t._pendingTouched=!0,"blur"===t.updateOn&&t._pendingChange&&NG(t,n),"submit"!==t.updateOn&&t.markAsTouched()})}(t,n),function A0e(t,n){if(n.valueAccessor.setDisabledState){const e=i=>{n.valueAccessor.setDisabledState(i)};t.registerOnDisabledChange(e),n._registerOnDestroy(()=>{t._unregisterOnDisabledChange(e)})}}(t,n)}function YE(t,n,e=!0){const i=()=>{};n.valueAccessor&&(n.valueAccessor.registerOnChange(i),n.valueAccessor.registerOnTouched(i)),JE(t,n),t&&(n._invokeOnDestroyCallbacks(),t._registerOnCollectionChange(()=>{}))}function ZE(t,n){t.forEach(e=>{e.registerOnValidatorChange&&e.registerOnValidatorChange(n)})}function l4(t,n){const e=TG(t);null!==n.validator?t.setValidators(SG(e,n.validator)):"function"==typeof e&&t.setValidators([e]);const i=FG(t);null!==n.asyncValidator?t.setAsyncValidators(SG(i,n.asyncValidator)):"function"==typeof i&&t.setAsyncValidators([i]);const r=()=>t.updateValueAndValidity();ZE(n._rawValidators,r),ZE(n._rawAsyncValidators,r)}function JE(t,n){let e=!1;if(null!==t){if(null!==n.validator){const r=TG(t);if(Array.isArray(r)&&r.length>0){const o=r.filter(s=>s!==n.validator);o.length!==r.length&&(e=!0,t.setValidators(o))}}if(null!==n.asyncValidator){const r=FG(t);if(Array.isArray(r)&&r.length>0){const o=r.filter(s=>s!==n.asyncValidator);o.length!==r.length&&(e=!0,t.setAsyncValidators(o))}}}const i=()=>{};return ZE(n._rawValidators,i),ZE(n._rawAsyncValidators,i),e}function NG(t,n){t._pendingDirty&&t.markAsDirty(),t.setValue(t._pendingValue,{emitModelToViewChange:!1}),n.viewToModelUpdate(t._pendingValue),t._pendingChange=!1}function OG(t,n){l4(t,n)}function d4(t,n){if(!t.hasOwnProperty("model"))return!1;const e=t.model;return!!e.isFirstChange()||!Object.is(n,e.currentValue)}function UG(t,n){t._syncPendingControls(),n.forEach(e=>{const i=e.control;"submit"===i.updateOn&&i._pendingChange&&(e.viewToModelUpdate(i._pendingValue),i._pendingChange=!1)})}function u4(t,n){if(!n)return null;let e,i,r;return Array.isArray(n),n.forEach(o=>{o.constructor===Pf?e=o:function w0e(t){return Object.getPrototypeOf(t.constructor)===Mp}(o)?i=o:r=o}),r||i||e||null}const C0e={provide:Ea,useExisting:hi(()=>Iy)},ky=Promise.resolve();let Iy=(()=>{class t extends Ea{constructor(e,i,r){super(),this.callSetDisabledState=r,this.submitted=!1,this._directives=new Set,this.ngSubmit=new Ln,this.form=new a4({},JD(e),e4(i))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(e){ky.then(()=>{const i=this._findContainer(e.path);e.control=i.registerControl(e.name,e.control),Fy(e.control,e,this.callSetDisabledState),e.control.updateValueAndValidity({emitEvent:!1}),this._directives.add(e)})}getControl(e){return this.form.get(e.path)}removeControl(e){ky.then(()=>{const i=this._findContainer(e.path);i&&i.removeControl(e.name),this._directives.delete(e)})}addFormGroup(e){ky.then(()=>{const i=this._findContainer(e.path),r=new a4({});OG(r,e),i.registerControl(e.name,r),r.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(e){ky.then(()=>{const i=this._findContainer(e.path);i&&i.removeControl(e.name)})}getFormGroup(e){return this.form.get(e.path)}updateModel(e,i){ky.then(()=>{this.form.get(e.path).setValue(i)})}setValue(e){this.control.setValue(e)}onSubmit(e){return this.submitted=!0,UG(this.form,this._directives),this.ngSubmit.emit(e),"dialog"===e?.target?.method}onReset(){this.resetForm()}resetForm(e=void 0){this.form.reset(e),this.submitted=!1}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.form._updateOn=this.options.updateOn)}_findContainer(e){return e.pop(),e.length?this.form.get(e):this.form}static{this.\u0275fac=function(i){return new(i||t)(W(rs,10),W(Of,10),W(Sp,8))}}static{this.\u0275dir=zt({type:t,selectors:[["form",3,"ngNoForm","",3,"formGroup",""],["ng-form"],["","ngForm",""]],hostBindings:function(i,r){1&i&&We("submit",function(s){return r.onSubmit(s)})("reset",function(){return r.onReset()})},inputs:{options:[bt.None,"ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[ni([C0e]),di]})}}return t})();function HG(t,n){const e=t.indexOf(n);e>-1&&t.splice(e,1)}function VG(t){return"object"==typeof t&&null!==t&&2===Object.keys(t).length&&"value"in t&&"disabled"in t}const h4=class extends s4{constructor(n=null,e,i){super(r4(e),o4(i,e)),this.defaultValue=null,this._onChange=[],this._pendingChange=!1,this._applyFormState(n),this._setUpdateStrategy(e),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),KE(e)&&(e.nonNullable||e.initialValueIsDefault)&&(this.defaultValue=VG(n)?n.value:n)}setValue(n,e={}){this.value=this._pendingValue=n,this._onChange.length&&!1!==e.emitModelToViewChange&&this._onChange.forEach(i=>i(this.value,!1!==e.emitViewToModelChange)),this.updateValueAndValidity(e)}patchValue(n,e={}){this.setValue(n,e)}reset(n=this.defaultValue,e={}){this._applyFormState(n),this.markAsPristine(e),this.markAsUntouched(e),this.setValue(this.value,e),this._pendingChange=!1}_updateValue(){}_anyControls(n){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(n){this._onChange.push(n)}_unregisterOnChange(n){HG(this._onChange,n)}registerOnDisabledChange(n){this._onDisabledChange.push(n)}_unregisterOnDisabledChange(n){HG(this._onDisabledChange,n)}_forEachChild(n){}_syncPendingControls(){return!("submit"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange)||(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),0))}_applyFormState(n){VG(n)?(this.value=this._pendingValue=n.value,n.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=n}},QG=h4,S0e={provide:Ld,useExisting:hi(()=>v0)},qG=Promise.resolve();let v0=(()=>{class t extends Ld{constructor(e,i,r,o,s,a){super(),this._changeDetectorRef=s,this.callSetDisabledState=a,this.control=new h4,this._registered=!1,this.name="",this.update=new Ln,this._parent=e,this._setValidators(i),this._setAsyncValidators(r),this.valueAccessor=u4(0,o)}ngOnChanges(e){if(this._checkForErrors(),!this._registered||"name"in e){if(this._registered&&(this._checkName(),this.formDirective)){const i=e.name.previousValue;this.formDirective.removeControl({name:i,path:this._getPath(i)})}this._setUpControl()}"isDisabled"in e&&this._updateDisabled(e),d4(e,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._getPath(this.name)}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!(!this.options||!this.options.standalone)}_setUpStandalone(){Fy(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._isStandalone()||this._checkParentType(),this._checkName()}_checkParentType(){}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()}_updateValue(e){qG.then(()=>{this.control.setValue(e,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(e){const i=e.isDisabled.currentValue,r=0!==i&&qn(i);qG.then(()=>{r&&!this.control.disabled?this.control.disable():!r&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(e){return this._parent?function XE(t,n){return[...n.path,t]}(e,this._parent):[e]}static{this.\u0275fac=function(i){return new(i||t)(W(Ea,9),W(rs,10),W(Of,10),W(Fs,10),W(Ao,8),W(Sp,8))}}static{this.\u0275dir=zt({type:t,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:[bt.None,"disabled","isDisabled"],model:[bt.None,"ngModel","model"],options:[bt.None,"ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],features:[ni([S0e]),di,cr]})}}return t})();const f4=new ot(""),D0e={provide:Ld,useExisting:hi(()=>eM)};let eM=(()=>{class t extends Ld{set isDisabled(e){}static{this._ngModelWarningSentOnce=!1}constructor(e,i,r,o,s){super(),this._ngModelWarningConfig=o,this.callSetDisabledState=s,this.update=new Ln,this._ngModelWarningSent=!1,this._setValidators(e),this._setAsyncValidators(i),this.valueAccessor=u4(0,r)}ngOnChanges(e){if(this._isControlChanged(e)){const i=e.form.previousValue;i&&YE(i,this,!1),Fy(this.form,this,this.callSetDisabledState),this.form.updateValueAndValidity({emitEvent:!1})}d4(e,this.viewModel)&&(this.form.setValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.form&&YE(this.form,this,!1)}get path(){return[]}get control(){return this.form}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}_isControlChanged(e){return e.hasOwnProperty("form")}static{this.\u0275fac=function(i){return new(i||t)(W(rs,10),W(Of,10),W(Fs,10),W(f4,8),W(Sp,8))}}static{this.\u0275dir=zt({type:t,selectors:[["","formControl",""]],inputs:{form:[bt.None,"formControl","form"],isDisabled:[bt.None,"disabled","isDisabled"],model:[bt.None,"ngModel","model"]},outputs:{update:"ngModelChange"},exportAs:["ngForm"],features:[ni([D0e]),di,cr]})}}return t})();const R0e={provide:Ea,useExisting:hi(()=>By)};let By=(()=>{class t extends Ea{constructor(e,i,r){super(),this.callSetDisabledState=r,this.submitted=!1,this._onCollectionChange=()=>this._updateDomValue(),this.directives=[],this.form=null,this.ngSubmit=new Ln,this._setValidators(e),this._setAsyncValidators(i)}ngOnChanges(e){this._checkFormPresent(),e.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}ngOnDestroy(){this.form&&(JE(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get control(){return this.form}get path(){return[]}addControl(e){const i=this.form.get(e.path);return Fy(i,e,this.callSetDisabledState),i.updateValueAndValidity({emitEvent:!1}),this.directives.push(e),i}getControl(e){return this.form.get(e.path)}removeControl(e){YE(e.control||null,e,!1),function x0e(t,n){const e=t.indexOf(n);e>-1&&t.splice(e,1)}(this.directives,e)}addFormGroup(e){this._setUpFormContainer(e)}removeFormGroup(e){this._cleanUpFormContainer(e)}getFormGroup(e){return this.form.get(e.path)}addFormArray(e){this._setUpFormContainer(e)}removeFormArray(e){this._cleanUpFormContainer(e)}getFormArray(e){return this.form.get(e.path)}updateModel(e,i){this.form.get(e.path).setValue(i)}onSubmit(e){return this.submitted=!0,UG(this.form,this.directives),this.ngSubmit.emit(e),"dialog"===e?.target?.method}onReset(){this.resetForm()}resetForm(e=void 0){this.form.reset(e),this.submitted=!1}_updateDomValue(){this.directives.forEach(e=>{const i=e.control,r=this.form.get(e.path);i!==r&&(YE(i||null,e),(t=>t instanceof h4)(r)&&(Fy(r,e,this.callSetDisabledState),e.control=r))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(e){const i=this.form.get(e.path);OG(i,e),i.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(e){if(this.form){const i=this.form.get(e.path);i&&function v0e(t,n){return JE(t,n)}(i,e)&&i.updateValueAndValidity({emitEvent:!1})}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{})}_updateValidators(){l4(this.form,this),this._oldForm&&JE(this._oldForm,this)}_checkFormPresent(){}static{this.\u0275fac=function(i){return new(i||t)(W(rs,10),W(Of,10),W(Sp,8))}}static{this.\u0275dir=zt({type:t,selectors:[["","formGroup",""]],hostBindings:function(i,r){1&i&&We("submit",function(s){return r.onSubmit(s)})("reset",function(){return r.onReset()})},inputs:{form:[bt.None,"formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[ni([R0e]),di,cr]})}}return t})(),Tp=(()=>{class t{constructor(){this._validator=qE}ngOnChanges(e){if(this.inputName in e){const i=this.normalizeInput(e[this.inputName].currentValue);this._enabled=this.enabled(i),this._validator=this._enabled?this.createValidator(i):qE,this._onChange&&this._onChange()}}validate(e){return this._validator(e)}registerOnValidatorChange(e){this._onChange=e}enabled(e){return null!=e}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275dir=zt({type:t,features:[cr]})}}return t})();const W0e={provide:rs,useExisting:hi(()=>tM),multi:!0};let tM=(()=>{class t extends Tp{constructor(){super(...arguments),this.inputName="required",this.normalizeInput=qn,this.createValidator=e=>mG}enabled(e){return e}static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=_r(t)))(r||t)}})()}static{this.\u0275dir=zt({type:t,selectors:[["","required","","formControlName","",3,"type","checkbox"],["","required","","formControl","",3,"type","checkbox"],["","required","","ngModel","",3,"type","checkbox"]],hostVars:1,hostBindings:function(i,r){2&i&&oi("required",r._enabled?"":null)},inputs:{required:"required"},features:[ni([W0e]),di]})}}return t})(),aq=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({})}}return t})(),Bc=(()=>{class t{static withConfig(e){return{ngModule:t,providers:[{provide:Sp,useValue:e.callSetDisabledState??Ty}]}}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[aq]})}}return t})(),Dy=(()=>{class t{static withConfig(e){return{ngModule:t,providers:[{provide:f4,useValue:e.warnOnNgModelWithFormControl??"always"},{provide:Sp,useValue:e.callSetDisabledState??Ty}]}}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[aq]})}}return t})();function lq(t=1/0){return If(cs,t)}const y0=new $i(t=>t.complete());function Sl(...t){const n=yy(t),e=function LAe(t,n){return"number"==typeof ND(t)?t.pop():n}(t,1/0),i=t;return i.length?1===i.length?Go(i[0]):lq(e)(xp(i,n)):y0}function cq(){return Be((t,n)=>{t.subscribe(Je(n,zr))})}class qu{constructor(n,e,i){this.kind=n,this.value=e,this.error=i,this.hasValue="N"===n}observe(n){return uq(this,n)}do(n,e,i){const{kind:r,value:o,error:s}=this;return"N"===r?n?.(o):"E"===r?e?.(s):i?.()}accept(n,e,i){var r;return fn(null===(r=n)||void 0===r?void 0:r.next)?this.observe(n):this.do(n,e,i)}toObservable(){const{kind:n,value:e,error:i}=this,r="N"===n?nl(e):"E"===n?function dq(t,n){const e=fn(t)?t:()=>t,i=r=>r.error(e());return new $i(n?r=>n.schedule(i,0,r):i)}(()=>i):"C"===n?y0:0;if(!r)throw new TypeError(`Unexpected notification kind ${n}`);return r}static createNext(n){return new qu("N",n)}static createError(n){return new qu("E",void 0,n)}static createComplete(){return qu.completeNotification}}function uq(t,n){var e,i,r;const{kind:o,value:s,error:a}=t;if("string"!=typeof o)throw new TypeError('Invalid notification, missing "kind"');"N"===o?null===(e=n.next)||void 0===e||e.call(n,s):"E"===o?null===(i=n.error)||void 0===i||i.call(n,a):null===(r=n.complete)||void 0===r||r.call(n)}function b4(t){return Be((n,e)=>{let o,i=null,r=!1;i=n.subscribe(Je(e,void 0,void 0,s=>{o=Go(t(s,b4(t)(n))),i?(i.unsubscribe(),i=null,o.subscribe(e)):r=!0})),r&&(i.unsubscribe(),i=null,o.subscribe(e))})}function hq(t,n,e,i){return Be((r,o)=>{let s;n&&"function"!=typeof n?({duration:e,element:s,connector:i}=n):s=n;const a=new Map,l=A=>{a.forEach(A),A(o)},c=A=>l(v=>v.error(A));let d=0,u=!1;const h=new _t(o,A=>{try{const v=t(A);let x=a.get(v);if(!x){a.set(v,x=i?i():new Yt);const C=function m(A,v){const x=new $i(C=>{d++;const w=v.subscribe(C);return()=>{w.unsubscribe(),0==--d&&u&&h.unsubscribe()}});return x.key=A,x}(v,x);if(o.next(C),e){const w=Je(x,()=>{x.complete(),w?.unsubscribe()},void 0,void 0,()=>a.delete(v));h.add(Go(e(C)).subscribe(w))}}x.next(s?s(A):A)}catch(v){c(v)}},()=>l(A=>A.complete()),c,()=>a.clear(),()=>(u=!0,0===d));r.subscribe(h)})}function fq(t,n){return n?e=>e.pipe(fq((i,r)=>Go(t(i,r)).pipe(Et((o,s)=>n(i,o,r,s))))):Be((e,i)=>{let r=0,o=null,s=!1;e.subscribe(Je(i,a=>{o||(o=Je(i,void 0,()=>{o=null,s&&i.complete()}),Go(t(a,r++)).subscribe(o))},()=>{s=!0,!o&&i.complete()}))})}function qo(t){return t<=0?()=>y0:Be((n,e)=>{let i=0;n.subscribe(Je(e,r=>{++i<=t&&(e.next(r),t<=i&&e.complete())}))})}qu.completeNotification=new qu("C");class ibe extends on{constructor(n,e){super()}schedule(n,e=0){return this}}const iM={setInterval(t,n,...e){const{delegate:i}=iM;return i?.setInterval?i.setInterval(t,n,...e):setInterval(t,n,...e)},clearInterval(t){const{delegate:n}=iM;return(n?.clearInterval||clearInterval)(t)},delegate:void 0};class rM extends ibe{constructor(n,e){super(n,e),this.scheduler=n,this.work=e,this.pending=!1}schedule(n,e=0){var i;if(this.closed)return this;this.state=n;const r=this.id,o=this.scheduler;return null!=r&&(this.id=this.recycleAsyncId(o,r,e)),this.pending=!0,this.delay=e,this.id=null!==(i=this.id)&&void 0!==i?i:this.requestAsyncId(o,this.id,e),this}requestAsyncId(n,e,i=0){return iM.setInterval(n.flush.bind(n,this),i)}recycleAsyncId(n,e,i=0){if(null!=i&&this.delay===i&&!1===this.pending)return e;null!=e&&iM.clearInterval(e)}execute(n,e){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;const i=this._execute(n,e);if(i)return i;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))}_execute(n,e){let r,i=!1;try{this.work(n)}catch(o){i=!0,r=o||new Error("Scheduled action threw falsy error")}if(i)return this.unsubscribe(),r}unsubscribe(){if(!this.closed){const{id:n,scheduler:e}=this,{actions:i}=e;this.work=this.state=this.scheduler=null,this.pending=!1,or(i,this),null!=n&&(this.id=this.recycleAsyncId(e,n,null)),this.delay=null,super.unsubscribe()}}}const _4={now:()=>(_4.delegate||Date).now(),delegate:void 0};class Ry{constructor(n,e=Ry.now){this.schedulerActionCtor=n,this.now=e}schedule(n,e=0,i){return new this.schedulerActionCtor(this,n).schedule(i,e)}}Ry.now=_4.now;class oM extends Ry{constructor(n,e=Ry.now){super(n,e),this.actions=[],this._active=!1}flush(n){const{actions:e}=this;if(this._active)return void e.push(n);let i;this._active=!0;do{if(i=n.execute(n.state,n.delay))break}while(n=e.shift());if(this._active=!1,i){for(;n=e.shift();)n.unsubscribe();throw i}}}const sbe=new class obe extends oM{}(class rbe extends rM{constructor(n,e){super(n,e),this.scheduler=n,this.work=e}schedule(n,e=0){return e>0?super.schedule(n,e):(this.delay=e,this.state=n,this.scheduler.flush(this),this)}execute(n,e){return e>0||this.closed?super.execute(n,e):this._execute(n,e)}requestAsyncId(n,e,i=0){return null!=i&&i>0||null==i&&this.delay>0?super.requestAsyncId(n,e,i):(n.flush(this),0)}});function Wu(...t){const n=OD(t);return Be((e,i)=>{const r=t.length,o=new Array(r);let s=t.map(()=>!1),a=!1;for(let l=0;l{o[l]=c,!a&&!s[l]&&(s[l]=!0,(a=s.every(cs))&&(s=null))},zr));e.subscribe(Je(i,l=>{if(a){const c=[l,...o];i.next(n?n(...c):c)}}))})}function Ly(t,n=cs){return t=t??dbe,Be((e,i)=>{let r,o=!0;e.subscribe(Je(i,s=>{const a=n(s);(o||!t(r,a))&&(o=!1,r=a,i.next(s))}))})}function dbe(t,n){return t===n}const Py={};function un(t,n){if(Py[t]=(Py[t]||0)+1,"function"==typeof n)return v4(t,(...i)=>({...n(...i),type:t}));switch(n?n._as:"empty"){case"empty":return v4(t,()=>({type:t}));case"props":return v4(t,i=>({...i,type:t}));default:throw new Error("Unexpected config.")}}function v4(t,n){return Object.defineProperty(n,"type",{value:t,writable:!1})}const Aq="@ngrx/store/init";let Fp=(()=>{class t extends De{constructor(){super({type:Aq})}next(e){if("function"==typeof e)throw new TypeError("\n Dispatch expected an object, instead it received a function.\n If you're using the createAction function, make sure to invoke the function\n before dispatching the action. For example, someAction should be someAction().");if(typeof e>"u")throw new TypeError("Actions must be objects");if(typeof e.type>"u")throw new TypeError("Actions must have a type property");super.next(e)}complete(){}ngOnDestroy(){super.complete()}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac})}}return t})();const Abe=[Fp],w4=new ot("@ngrx/store Internal Root Guard"),gq=new ot("@ngrx/store Internal Initial State"),x4=new ot("@ngrx/store Initial State"),bq=new ot("@ngrx/store Reducer Factory"),_q=new ot("@ngrx/store Internal Reducer Factory Provider"),vq=new ot("@ngrx/store Initial Reducers"),C4=new ot("@ngrx/store Internal Initial Reducers"),yq=new ot("@ngrx/store Store Features"),wq=new ot("@ngrx/store Internal Store Reducers"),E4=new ot("@ngrx/store Internal Feature Reducers"),xq=new ot("@ngrx/store Internal Feature Configs"),M4=new ot("@ngrx/store Internal Store Features"),Cq=new ot("@ngrx/store Internal Feature Reducers Token"),S4=new ot("@ngrx/store Feature Reducers"),Eq=new ot("@ngrx/store User Provided Meta Reducers"),sM=new ot("@ngrx/store Meta Reducers"),Mq=new ot("@ngrx/store Internal Resolved Meta Reducers"),Sq=new ot("@ngrx/store User Runtime Checks Config"),Tq=new ot("@ngrx/store Internal User Runtime Checks Config"),Ny=new ot("@ngrx/store Internal Runtime Checks"),Oy=new ot("@ngrx/store Check if Action types are unique");function kp(t,n={}){const e=Object.keys(t),i={};for(let o=0;oo(r),e(n))}}function Iq(t,n){return Array.isArray(n)&&n.length>0&&(t=kq.apply(null,[...n,t])),(e,i)=>{const r=t(e);return(o,s)=>r(o=void 0===o?i:o,s)}}new ot("@ngrx/store Root Store Provider"),new ot("@ngrx/store Feature State Provider");class aM extends $i{}class Bq extends Fp{}let Uy=(()=>{class t extends De{get currentReducers(){return this.reducers}constructor(e,i,r,o){super(o(r,i)),this.dispatcher=e,this.initialState=i,this.reducers=r,this.reducerFactory=o}addFeature(e){this.addFeatures([e])}addFeatures(e){const i=e.reduce((r,{reducers:o,reducerFactory:s,metaReducers:a,initialState:l,key:c})=>{const d="function"==typeof o?function bbe(t){const n=Array.isArray(t)&&t.length>0?kq(...t):e=>e;return(e,i)=>(e=n(e),(r,o)=>e(r=void 0===r?i:r,o))}(a)(o,l):Iq(s,a)(o,l);return r[c]=d,r},{});this.addReducers(i)}removeFeature(e){this.removeFeatures([e])}removeFeatures(e){this.removeReducers(e.map(i=>i.key))}addReducer(e,i){this.addReducers({[e]:i})}addReducers(e){this.reducers={...this.reducers,...e},this.updateReducers(Object.keys(e))}removeReducer(e){this.removeReducers([e])}removeReducers(e){e.forEach(i=>{this.reducers=function gbe(t,n){return Object.keys(t).filter(e=>e!==n).reduce((e,i)=>Object.assign(e,{[i]:t[i]}),{})}(this.reducers,i)}),this.updateReducers(e)}updateReducers(e){this.next(this.reducerFactory(this.reducers,this.initialState)),this.dispatcher.next({type:"@ngrx/store/update-reducers",features:e})}ngOnDestroy(){this.complete()}static{this.\u0275fac=function(i){return new(i||t)(oe(Bq),oe(x4),oe(vq),oe(bq))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac})}}return t})();const vbe=[Uy,{provide:aM,useExisting:Uy},{provide:Bq,useExisting:Fp}];let Hy=(()=>{class t extends Yt{ngOnDestroy(){this.complete()}static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=_r(t)))(r||t)}})()}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac})}}return t})();const ybe=[Hy];class Dq extends $i{}let Br=(()=>{class t extends De{static{this.INIT=Aq}constructor(e,i,r,o){super(o);const c=e.pipe(GD(sbe)).pipe(Wu(i)).pipe(function lbe(t,n){return Be(function abe(t,n,e,i,r){return(o,s)=>{let a=e,l=n,c=0;o.subscribe(Je(s,d=>{const u=c++;l=a?t(l,d,u):(a=!0,d),i&&s.next(l)},r&&(()=>{a&&s.next(l),s.complete()})))}}(t,n,arguments.length>=2,!0))}(wbe,{state:o}));this.stateSubscription=c.subscribe(({state:d,action:u})=>{this.next(d),r.next(u)}),this.state=function pq(t,n){const e=!n?.manualCleanup;e&&!n?.injector&&_d();const i=e?n?.injector?.get(xd)??Ut(xd):null;let r;r=fB(n?.requireSync?{kind:0}:{kind:1,value:n?.initialValue});const o=t.subscribe({next:s=>r.set({kind:1,value:s}),error:s=>{if(n?.rejectErrors)throw s;r.set({kind:2,error:s})}});return i?.onDestroy(o.unsubscribe.bind(o)),CQ(()=>{const s=r();switch(s.kind){case 1:return s.value;case 2:throw s.error;case 0:throw new ct(601,"`toSignal()` called with `requireSync` but `Observable` did not emit synchronously.")}})}(this,{manualCleanup:!0,requireSync:!0})}ngOnDestroy(){this.stateSubscription.unsubscribe(),this.complete()}static{this.\u0275fac=function(i){return new(i||t)(oe(Fp),oe(aM),oe(Hy),oe(x4))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac})}}return t})();function wbe(t={state:void 0},[n,e]){const{state:i}=t;return{state:e(i,n),action:n}}const xbe=[Br,{provide:Dq,useExisting:Br}];let Wt=(()=>{class t extends $i{constructor(e,i,r){super(),this.actionsObserver=i,this.reducerManager=r,this.source=e,this.state=e.state}select(e,...i){return Ebe.call(null,e,...i)(this)}selectSignal(e,i){return CQ(()=>e(this.state()),i)}lift(e){const i=new t(this,this.actionsObserver,this.reducerManager);return i.operator=e,i}dispatch(e){this.actionsObserver.next(e)}next(e){this.actionsObserver.next(e)}error(e){this.actionsObserver.error(e)}complete(){this.actionsObserver.complete()}addReducer(e,i){this.reducerManager.addReducer(e,i)}removeReducer(e){this.reducerManager.removeReducer(e)}static{this.\u0275fac=function(i){return new(i||t)(oe(Dq),oe(Fp),oe(Uy))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac})}}return t})();const Cbe=[Wt];function Ebe(t,n,...e){return function(r){let o;if("string"==typeof t){const s=[n,...e].filter(Boolean);o=r.pipe(function cbe(...t){const n=t.length;if(0===n)throw new Error("list of properties cannot be empty.");return Et(e=>{let i=e;for(let r=0;rt(s,n)))}return o.pipe(Ly())}}const F4="https://ngrx.io/guide/store/configuration/runtime-checks";function Rq(t){return void 0===t}function Lq(t){return null===t}function Pq(t){return Array.isArray(t)}function Nq(t){return"object"==typeof t&&null!==t}function k4(t){return"function"==typeof t}function I4(t,n){return t===n}function B4(t,n=I4,e=I4){let o,i=null,r=null;return{memoized:function c(){if(void 0!==o)return o.result;if(!i)return r=t.apply(null,arguments),i=arguments,r;if(!function Dbe(t,n,e){for(let i=0;i"function"==typeof n)}(i[0])&&(i=function Obe(t){const n=Object.values(t),e=Object.keys(t);return[...n,(...r)=>e.reduce((o,s,a)=>({...o,[s]:r[a]}),{})]}(i[0]));const r=i.slice(0,i.length-1),o=i[i.length-1],s=r.filter(d=>d.release&&"function"==typeof d.release),a=t(function(...d){return o.apply(null,d)}),l=B4(function(d,u){return n.stateFn.apply(null,[d,r,u,a])});return Object.assign(l.memoized,{release:function c(){l.reset(),a.reset(),s.forEach(d=>d.release())},projector:a.memoized,setResult:l.setResult,clearResult:l.clearResult})}}(B4)(...t)}function Rbe(t,n,e,i){if(void 0===e){const o=n.map(s=>s(t));return i.memoized.apply(null,o)}const r=n.map(o=>o(t,e));return i.memoized.apply(null,[...r,e])}function Vbe(t){return t instanceof ot?Ut(t):t}function Qbe(t,n){return n.map((e,i)=>{if(t[i]instanceof ot){const r=Ut(t[i]);return{key:e.key,reducerFactory:r.reducerFactory?r.reducerFactory:kp,metaReducers:r.metaReducers?r.metaReducers:[],initialState:r.initialState}}return e})}function zbe(t){return t.map(n=>n instanceof ot?Ut(n):n)}function D4(t){return"function"==typeof t?t():t}function Gbe(t,n){return t.concat(n)}function qbe(){if(Ut(Wt,{optional:!0,skipSelf:!0}))throw new TypeError("The root Store has been provided more than once. Feature modules should provide feature states instead.");return"guarded"}function R4(t){Object.freeze(t);const n=k4(t);return Object.getOwnPropertyNames(t).forEach(e=>{if(!e.startsWith("\u0275")&&function Ibe(t,n){return Object.prototype.hasOwnProperty.call(t,n)}(t,e)&&(!n||"caller"!==e&&"callee"!==e&&"arguments"!==e)){const i=t[e];(Nq(i)||k4(i))&&!Object.isFrozen(i)&&R4(i)}}),t}function L4(t,n=[]){return(Rq(t)||Lq(t))&&0===n.length?{path:["root"],value:t}:Object.keys(t).reduce((i,r)=>{if(i)return i;const o=t[r];return function kbe(t){return k4(t)&&t.hasOwnProperty("\u0275cmp")}(o)?i:!(Rq(o)||Lq(o)||function Tbe(t){return"number"==typeof t}(o)||function Sbe(t){return"boolean"==typeof t}(o)||function Mbe(t){return"string"==typeof t}(o)||Pq(o))&&(function Oq(t){if(!function Fbe(t){return Nq(t)&&!Pq(t)}(t))return!1;const n=Object.getPrototypeOf(t);return n===Object.prototype||null===n}(o)?L4(o,[...n,r]):{path:[...n,r],value:o})},!1)}function Hq(t,n){if(!1===t)return;const e=t.path.join("."),i=new Error(`Detected unserializable ${n} at "${e}". ${F4}#strict${n}serializability`);throw i.value=t.value,i.unserializablePath=e,i}function Kbe(t){return{strictStateSerializability:!1,strictActionSerializability:!1,strictStateImmutability:!1,strictActionImmutability:!1,strictActionWithinNgZone:!1,strictActionTypeUniqueness:!1}}function Xbe({strictActionSerializability:t,strictStateSerializability:n}){return e=>t||n?function $be(t,n){return function(e,i){n.action(i)&&Hq(L4(i),"action");const r=t(e,i);return n.state()&&Hq(L4(r),"state"),r}}(e,{action:i=>t&&!P4(i),state:()=>n}):e}function Ybe({strictActionImmutability:t,strictStateImmutability:n}){return e=>t||n?function Wbe(t,n){return function(e,i){const r=n.action(i)?R4(i):i,o=t(e,r);return n.state()?R4(o):o}}(e,{action:i=>t&&!P4(i),state:()=>n}):e}function P4(t){return t.type.startsWith("@ngrx")}function Zbe({strictActionWithinNgZone:t}){return n=>t?function jbe(t,n){return function(e,i){if(n.action(i)&&!Fn.isInAngularZone())throw new Error(`Action '${i.type}' running outside NgZone. ${F4}#strictactionwithinngzone`);return t(e,i)}}(n,{action:e=>t&&!P4(e)}):n}function Jbe(t){return[{provide:Tq,useValue:t},{provide:Sq,useFactory:e_e,deps:[Tq]},{provide:Ny,deps:[Sq],useFactory:Kbe},{provide:sM,multi:!0,deps:[Ny],useFactory:Ybe},{provide:sM,multi:!0,deps:[Ny],useFactory:Xbe},{provide:sM,multi:!0,deps:[Ny],useFactory:Zbe}]}function Vq(){return[{provide:Oy,multi:!0,deps:[Ny],useFactory:t_e}]}function e_e(t){return t}function t_e(t){if(!t.strictActionTypeUniqueness)return;const n=Object.entries(Py).filter(([,e])=>e>1).map(([e])=>e);if(n.length)throw new Error(`Action types are registered more than once, ${n.map(e=>`"${e}"`).join(", ")}. ${F4}#strictactiontypeuniqueness`)}function Qq(t={},n={}){return[{provide:w4,useFactory:qbe},{provide:gq,useValue:n.initialState},{provide:x4,useFactory:D4,deps:[gq]},{provide:C4,useValue:t},{provide:wq,useExisting:t instanceof ot?t:C4},{provide:vq,deps:[C4,[new ng(wq)]],useFactory:Vbe},{provide:Eq,useValue:n.metaReducers?n.metaReducers:[]},{provide:Mq,deps:[sM,Eq],useFactory:Gbe},{provide:_q,useValue:n.reducerFactory?n.reducerFactory:kp},{provide:bq,deps:[_q,Mq],useFactory:Iq},Abe,vbe,ybe,xbe,Cbe,Jbe(n.runtimeChecks),Vq()]}function zq(t,n,e={}){return[{provide:xq,multi:!0,useValue:t instanceof Object?{}:e},{provide:yq,multi:!0,useValue:{key:t instanceof Object?t.name:t,reducerFactory:e instanceof ot||!e.reducerFactory?kp:e.reducerFactory,metaReducers:e instanceof ot||!e.metaReducers?[]:e.metaReducers,initialState:e instanceof ot||!e.initialState?void 0:e.initialState}},{provide:M4,deps:[xq,yq],useFactory:Qbe},{provide:E4,multi:!0,useValue:t instanceof Object?t.reducer:n},{provide:Cq,multi:!0,useExisting:n instanceof ot?n:E4},{provide:S4,multi:!0,deps:[E4,[new ng(Cq)]],useFactory:zbe},Vq()]}let lM=(()=>{class t{constructor(e,i,r,o,s,a){}static{this.\u0275fac=function(i){return new(i||t)(oe(Fp),oe(aM),oe(Hy),oe(Wt),oe(w4,8),oe(Oy,8))}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({})}}return t})(),N4=(()=>{class t{constructor(e,i,r,o,s){this.features=e,this.featureReducers=i,this.reducerManager=r;const a=e.map((l,c)=>{const u=i.shift()[c];return{...l,reducers:u,initialState:D4(l.initialState)}});r.addFeatures(a)}ngOnDestroy(){this.reducerManager.removeFeatures(this.features)}static{this.\u0275fac=function(i){return new(i||t)(oe(M4),oe(S4),oe(Uy),oe(lM),oe(Oy,8))}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({})}}return t})(),s_e=(()=>{class t{static forRoot(e,i){return{ngModule:lM,providers:[...Qq(e,i)]}}static forFeature(e,i,r={}){return{ngModule:N4,providers:[...zq(e,i,r)]}}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({})}}return t})();function bn(...t){return{reducer:t.pop(),types:t.map(i=>i.type)}}function ui(t,...n){const e=new Map;for(const i of n)for(const r of i.types){const o=e.get(r);e.set(r,o?(a,l)=>i.reducer(o(a,l),l):i.reducer)}return function(i=t,r){const o=e.get(r.type);return o?o(i,r):i}}const a_e={dispatch:!0,functional:!1,useEffectsErrorHandler:!0},cM="__@ngrx/effects_create__";function Bo(t,n={}){const e=n.functional?t:t(),i={...a_e,...n};return Object.defineProperty(e,cM,{value:i}),e}function qq(t){return Object.getPrototypeOf(t)}function O4(t){return"function"==typeof t}function U4(t){return t.filter(O4)}function u_e(t,n,e){const i=qq(t),o=i&&"Object"!==i.constructor.name?i.constructor.name:null,s=function Gq(t){return function l_e(t){return Object.getOwnPropertyNames(t).filter(i=>!(!t[i]||!t[i].hasOwnProperty(cM))&&t[i][cM].hasOwnProperty("dispatch")).map(i=>({propertyName:i,...t[i][cM]}))}(t)}(t).map(({propertyName:a,dispatch:l,useEffectsErrorHandler:c})=>{const d="function"==typeof t[a]?t[a]():t[a],u=c?e(d,n):d;return!1===l?u.pipe(cq()):u.pipe(function tbe(){return Be((t,n)=>{t.subscribe(Je(n,e=>{n.next(qu.createNext(e))},()=>{n.next(qu.createComplete()),n.complete()},e=>{n.next(qu.createError(e)),n.complete()}))})}()).pipe(Et(m=>({effect:t[a],notification:m,propertyName:a,sourceName:o,sourceInstance:t})))});return Sl(...s)}function Wq(t,n,e=10){return t.pipe(b4(i=>(n&&n.handleError(i),e<=1?t:Wq(t,n,e-1))))}let $u=(()=>{class t extends $i{constructor(e){super(),e&&(this.source=e)}lift(e){const i=new t;return i.source=this,i.operator=e,i}static{this.\u0275fac=function(i){return new(i||t)(oe(Hy))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();function Dc(...t){return Ii(n=>t.some(e=>"string"==typeof e?e===n.type:e.type===n.type))}const $q=new ot("@ngrx/effects Internal Root Guard"),dM=new ot("@ngrx/effects User Provided Effects"),H4=new ot("@ngrx/effects Internal Root Effects"),jq=new ot("@ngrx/effects Internal Root Effects Instances"),Kq=new ot("@ngrx/effects Internal Feature Effects"),Xq=new ot("@ngrx/effects Internal Feature Effects Instance Groups"),f_e=new ot("@ngrx/effects Effects Error Handler",{providedIn:"root",factory:()=>Wq}),Yq="@ngrx/effects/init";un(Yq);function C_e(t){return V4(t,"ngrxOnInitEffects")}function V4(t,n){return t&&n in t&&"function"==typeof t[n]}let Q4=(()=>{class t extends Yt{constructor(e,i){super(),this.errorHandler=e,this.effectsErrorHandler=i}addEffects(e){this.next(e)}toActions(){return this.pipe(hq(e=>function c_e(t){return!!t.constructor&&"Object"!==t.constructor.name&&"Function"!==t.constructor.name}(e)?qq(e):e),If(e=>e.pipe(hq(E_e))),If(e=>{const i=e.pipe(fq(o=>function M_e(t,n){return e=>{const i=u_e(e,t,n);return function w_e(t){return V4(t,"ngrxOnRunEffects")}(e)?e.ngrxOnRunEffects(i):i}}(this.errorHandler,this.effectsErrorHandler)(o)),Et(o=>(function p_e(t,n){if("N"===t.notification.kind){const e=t.notification.value;!function A_e(t){return"function"!=typeof t&&t&&t.type&&"string"==typeof t.type}(e)&&n.handleError(new Error(`Effect ${function g_e({propertyName:t,sourceInstance:n,sourceName:e}){const i="function"==typeof n[t];return e?`"${e}.${String(t)}${i?"()":""}"`:`"${String(t)}()"`}(t)} dispatched an invalid action: ${function b_e(t){try{return JSON.stringify(t)}catch{return t}}(e)}`))}}(o,this.errorHandler),o.notification)),Ii(o=>"N"===o.kind&&null!=o.value),function nbe(){return Be((t,n)=>{t.subscribe(Je(n,e=>uq(e,n)))})}());return Sl(i,e.pipe(qo(1),Ii(C_e),Et(o=>o.ngrxOnInitEffects())))}))}static{this.\u0275fac=function(i){return new(i||t)(oe(es),oe(f_e))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();function E_e(t){return function v_e(t){return V4(t,"ngrxOnIdentifyEffects")}(t)?t.ngrxOnIdentifyEffects():""}let z4=(()=>{class t{get isStarted(){return!!this.effectsSubscription}constructor(e,i){this.effectSources=e,this.store=i,this.effectsSubscription=null}start(){this.effectsSubscription||(this.effectsSubscription=this.effectSources.toActions().subscribe(this.store))}ngOnDestroy(){this.effectsSubscription&&(this.effectsSubscription.unsubscribe(),this.effectsSubscription=null)}static{this.\u0275fac=function(i){return new(i||t)(oe(Q4),oe(Wt))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})(),Zq=(()=>{class t{constructor(e,i,r,o,s,a,l){this.sources=e,i.start();for(const c of o)e.addEffects(c);r.dispatch({type:Yq})}addEffects(e){this.sources.addEffects(e)}static{this.\u0275fac=function(i){return new(i||t)(oe(Q4),oe(z4),oe(Wt),oe(jq),oe(lM,8),oe(N4,8),oe($q,8))}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({})}}return t})(),S_e=(()=>{class t{constructor(e,i,r,o){const s=i.flat();for(const a of s)e.addEffects(a)}static{this.\u0275fac=function(i){return new(i||t)(oe(Zq),oe(Xq),oe(lM,8),oe(N4,8))}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({})}}return t})(),T_e=(()=>{class t{static forFeature(...e){const i=e.flat(),r=U4(i);return{ngModule:S_e,providers:[r,{provide:Kq,multi:!0,useValue:i},{provide:dM,multi:!0,useValue:[]},{provide:Xq,multi:!0,useFactory:Jq,deps:[Kq,dM]}]}}static forRoot(...e){const i=e.flat(),r=U4(i);return{ngModule:Zq,providers:[r,{provide:H4,useValue:[i]},{provide:$q,useFactory:F_e},{provide:dM,multi:!0,useValue:[]},{provide:jq,useFactory:Jq,deps:[H4,dM]}]}}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({})}}return t})();function Jq(t,n){const e=[];for(const i of t)e.push(...i);for(const i of n)e.push(...i);return e.map(i=>function d_e(t){return t instanceof ot||O4(t)}(i)?Ut(i):i)}function F_e(){const t=Ut(z4,{optional:!0,skipSelf:!0}),n=Ut(H4,{self:!0});if((1!==n.length||0!==n[0].length)&&t)throw new TypeError("EffectsModule.forRoot() called twice. Feature modules should use EffectsModule.forFeature() instead.");return"guarded"}const Ip=un("SET_IS_LOADING_FILE",{_as:"props",_p:void 0});const Rc=p(4999),Uf=un("SET_AMOUNT_OF_TOP_LABELS",{_as:"props",_p:void 0}),Vy=un("SET_COLOR_LABELS",{_as:"props",_p:void 0}),w0=un("SET_EDGE_HEIGHT",{_as:"props",_p:void 0}),uM=un("SET_SCREENSHOT_TO_CLIPBOARD_ENABLED",{_as:"props",_p:void 0}),hM=un("SET_EXPERIMENTAL_FEATURES_ENABLED",{_as:"props",_p:void 0}),Qy=un("SET_ENABLE_FLOOR_LABELS",{_as:"props",_p:void 0}),zy=un("SET_HIDE_FLAT_BUILDINGS",{_as:"props",_p:void 0}),Gy=un("SET_INVERT_AREA",{_as:"props",_p:void 0}),qy=un("SET_INVERT_HEIGHT",{_as:"props",_p:void 0}),G4=un("SET_IS_EDGE_METRIC_VISIBLE",{_as:"props",_p:void 0}),fM=un("TOGGLE_IS_EDGE_METRIC_VISIBLE"),q4=un("SET_IS_COLOR_METRIC_LINKED_TO_HEIGHT_METRIC",{_as:"props",_p:void 0}),W4=un("TOGGLE_IS_COLOR_METRIC_LINKED_TO_HEIGHT_METRIC"),mM=un("SET_PRESENTATION_MODE",{_as:"props",_p:void 0}),Wy=un("SET_IS_WHITE_BACKGROUND",{_as:"props",_p:void 0}),$y=un("SET_LAYOUT_ALGORITHM",{_as:"props",_p:void 0}),ju=un("SET_MAP_COLORS",{_as:"props",_p:void 0}),pM=un("INVERT_COLOR_RANGE"),AM=un("INVERT_DELTA_COLORS"),jy=un("SET_MAX_TREE_MAP_FILES",{_as:"props",_p:void 0}),gM=un("SET_RESET_CAMERA_IF_NEW_FILE_IS_LOADED",{_as:"props",_p:void 0}),x0=un("SET_SCALING",{_as:"props",_p:void 0}),Ky=un("SET_SHARPNESS_MODE",{_as:"props",_p:void 0}),Xy=un("SET_SHOW_METRIC_LABEL_NAME_VALUE",{_as:"props",_p:void 0}),Yy=un("SET_SHOW_METRIC_LABEL_NODE_NAME",{_as:"props",_p:void 0}),Zy=un("SET_SHOW_ONLY_BUILDINGS_WITH_EDGES",{_as:"props",_p:void 0}),Ku=un("SET_AREA_METRIC",{_as:"props",_p:void 0}),Lc=un("SET_COLOR_METRIC",{_as:"props",_p:void 0}),C0=un("SET_COLOR_MODE",{_as:"props",_p:void 0}),Pd=un("SET_COLOR_RANGE",{_as:"props",_p:void 0}),Jy=un("SET_DISTRIBUTION_METRIC",{_as:"props",_p:void 0}),Xu=un("SET_EDGE_METRIC",{_as:"props",_p:void 0}),bM=un("SET_ALL_FOCUSED_NODES",{_as:"props",_p:void 0}),_M=un("FOCUS_NODE",{_as:"props",_p:void 0}),e1=un("UNFOCUS_ALL_NODES"),vM=un("UNFOCUS_NODE"),Yu=un("SET_HEIGHT_METRIC",{_as:"props",_p:void 0}),E0=un("SET_MARGIN",{_as:"props",_p:void 0}),Hf=un("SET_SEARCH_PATTERN",{_as:"props",_p:void 0}),yM=un("SET_SORTING_OPTION",{_as:"props",_p:void 0}),$4=un("SET_ATTRIBUTE_DESCRIPTORS",{_as:"props",_p:void 0}),j4=un("SET_ATTRIBUTE_TYPES",{_as:"props",_p:void 0}),K4=un("UPDATE_ATTRIBUTE_TYPE",{_as:"props",_p:void 0}),X4=un("SET_BLACKLIST",{_as:"props",_p:void 0}),Y4=un("ADD_BLACKLIST_ITEM",{_as:"props",_p:void 0}),wM=un("ADD_BLACKLIST_ITEMS",{_as:"props",_p:void 0}),xM=un("REMOVE_BLACKLIST_ITEM",{_as:"props",_p:void 0}),Z4=un("ADD_BLACKLIST_ITEMS_IF_NOT_RESULTS_IN_EMPTY_MAP",{_as:"props",_p:void 0}),J4=un("SET_EDGES",{_as:"props",_p:void 0}),tW=un("ADD_EDGE",{_as:"props",_p:void 0}),nW=un("REMOVE_EDGE",{_as:"props",_p:void 0}),CM=un("SET_MARKED_PACKAGES",{_as:"props",_p:void 0}),t1=un("MARK_PACKAGES",{_as:"props",_p:void 0}),EM=un("UNMARK_PACKAGE",{_as:"props",_p:void 0});function iW(t,n){this.v=t,this.k=n}function rW(t){return new iW(t,0)}function n1(t){var n,e;function i(o,s){try{var a=t[o](s),l=a.value,c=l instanceof iW;Promise.resolve(c?l.v:l).then(function(d){if(c){var u="return"===o?"return":"next";if(!l.k||d.done)return i(u,d);d=t[u](d).value}r(a.done?"return":"normal",d)},function(d){i("throw",d)})}catch(d){r("throw",d)}}function r(o,s){switch(o){case"return":n.resolve({value:s,done:!0});break;case"throw":n.reject(s);break;default:n.resolve({value:s,done:!1})}(n=n.next)?i(n.key,n.arg):e=null}this._invoke=function(o,s){return new Promise(function(a,l){var c={key:o,arg:s,resolve:a,reject:l,next:null};e?e=e.next=c:(n=e=c,i(o,s))})},"function"!=typeof t.return&&(this.return=void 0)}n1.prototype["function"==typeof Symbol&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},n1.prototype.next=function(t){return this._invoke("next",t)},n1.prototype.throw=function(t){return this._invoke("throw",t)},n1.prototype.return=function(t){return this._invoke("return",t)};const eR=(t,n)=>n.some(e=>t instanceof e);let oW,sW;const tR=new WeakMap,nR=new WeakMap,MM=new WeakMap;let iR={get(t,n,e){if(t instanceof IDBTransaction){if("done"===n)return tR.get(t);if("store"===n)return e.objectStoreNames[1]?void 0:e.objectStore(e.objectStoreNames[0])}return Vf(t[n])},set:(t,n,e)=>(t[n]=e,!0),has:(t,n)=>t instanceof IDBTransaction&&("done"===n||"store"===n)||n in t};function aW(t){iR=t(iR)}function P_e(t){return"function"==typeof t?function L_e(t){return function B_e(){return sW||(sW=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}().includes(t)?function(...n){return t.apply(rR(this),n),Vf(this.request)}:function(...n){return Vf(t.apply(rR(this),n))}}(t):(t instanceof IDBTransaction&&function R_e(t){if(tR.has(t))return;const n=new Promise((e,i)=>{const r=()=>{t.removeEventListener("complete",o),t.removeEventListener("error",s),t.removeEventListener("abort",s)},o=()=>{e(),r()},s=()=>{i(t.error||new DOMException("AbortError","AbortError")),r()};t.addEventListener("complete",o),t.addEventListener("error",s),t.addEventListener("abort",s)});tR.set(t,n)}(t),eR(t,function I_e(){return oW||(oW=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}())?new Proxy(t,iR):t)}function Vf(t){if(t instanceof IDBRequest)return function D_e(t){const n=new Promise((e,i)=>{const r=()=>{t.removeEventListener("success",o),t.removeEventListener("error",s)},o=()=>{e(Vf(t.result)),r()},s=()=>{i(t.error),r()};t.addEventListener("success",o),t.addEventListener("error",s)});return MM.set(n,t),n}(t);if(nR.has(t))return nR.get(t);const n=P_e(t);return n!==t&&(nR.set(t,n),MM.set(n,t)),n}const rR=t=>MM.get(t),O_e=["get","getKey","getAll","getAllKeys","count"],U_e=["put","add","delete","clear"],oR=new Map;function lW(t,n){if(!(t instanceof IDBDatabase)||n in t||"string"!=typeof n)return;if(oR.get(n))return oR.get(n);const e=n.replace(/FromIndex$/,""),i=n!==e,r=U_e.includes(e);if(!(e in(i?IDBIndex:IDBObjectStore).prototype)||!r&&!O_e.includes(e))return;const o=function(){var s=f(function*(a,...l){const c=this.transaction(a,r?"readwrite":"readonly");let d=c.store;return i&&(d=d.index(l.shift())),(yield Promise.all([d[e](...l),r&&c.done]))[0]});return function(l){return s.apply(this,arguments)}}();return oR.set(n,o),o}aW(t=>({...t,get:(n,e,i)=>lW(n,e)||t.get(n,e,i),has:(n,e)=>!!lW(n,e)||t.has(n,e)}));const H_e=["continue","continuePrimaryKey","advance"],cW={},sR=new WeakMap,dW=new WeakMap,V_e={get(t,n){if(!H_e.includes(n))return t[n];let e=cW[n];return e||(e=cW[n]=function(...i){sR.set(this,dW.get(this)[n](...i))}),e}};function Q_e(){return aR.apply(this,arguments)}function aR(){return aR=function k_e(t){return function(){return new n1(t.apply(this,arguments))}}(function*(...t){let n=this;if(n instanceof IDBCursor||(n=yield rW(n.openCursor(...t))),!n)return;const e=new Proxy(n,V_e);for(dW.set(e,n),MM.set(e,rR(n));n;)yield e,n=yield rW(sR.get(e)||n.continue()),sR.delete(e)}),aR.apply(this,arguments)}function uW(t,n){return n===Symbol.asyncIterator&&eR(t,[IDBIndex,IDBObjectStore,IDBCursor])||"iterate"===n&&eR(t,[IDBIndex,IDBObjectStore])}aW(t=>({...t,get:(n,e,i)=>uW(n,e)?Q_e:t.get(n,e,i),has:(n,e)=>uW(n,e)||t.has(n,e)}));const z_e="CodeCharta",G_e=1,r1="ccstate",hW="id",lR=1001;function cR(){return(cR=f(function*(t){const e=(yield fR()).transaction(r1,"readwrite");yield e.store.put({[hW]:lR,state:t}),yield e.done})).apply(this,arguments)}function dR(){return uR.apply(this,arguments)}function uR(){return(uR=f(function*(){return(yield(yield fR()).get(r1,lR))?.state||null})).apply(this,arguments)}function hR(){return(hR=f(function*(){const n=(yield fR()).transaction(r1,"readwrite");yield n.store.delete(lR),yield n.done})).apply(this,arguments)}function fR(){return mR.apply(this,arguments)}function mR(){return(mR=f(function*(){return function N_e(t,n,{blocked:e,upgrade:i,blocking:r,terminated:o}={}){const s=indexedDB.open(t,n),a=Vf(s);return i&&s.addEventListener("upgradeneeded",l=>{i(Vf(s.result),l.oldVersion,l.newVersion,Vf(s.transaction),l)}),e&&s.addEventListener("blocked",l=>e(l.oldVersion,l.newVersion,l)),a.then(l=>{o&&l.addEventListener("close",()=>o()),r&&l.addEventListener("versionchange",c=>r(c.oldVersion,c.newVersion,c))}).catch(()=>{}),a}(z_e,G_e,{upgrade(t){t.objectStoreNames.contains(r1)||t.createObjectStore(r1,{keyPath:hW})}})})).apply(this,arguments)}const $_e=JSON.parse('{"projectName":"Sample Project with Edges","apiVersion":"1.2","fileChecksum":"valid-md5-sample1","nodes":[{"name":"root","type":"Folder","attributes":{},"children":[{"name":"sample1OnlyLeaf.scss","type":"File","attributes":{"rloc":400,"functions":10,"complexity":100,"pairingRate":32,"avgCommits":17},"link":"http://www.google.de"},{"name":"bigLeaf.ts","type":"File","attributes":{"rloc":100,"functions":10,"complexity":1,"pairingRate":77,"avgCommits":56},"link":"http://www.google.de"},{"name":"ParentLeaf","type":"Folder","attributes":{},"children":[{"name":"smallLeaf.html","type":"File","attributes":{"rloc":30,"functions":100,"complexity":100,"pairingRate":60,"avgCommits":51}},{"name":"otherSmallLeaf.ts","type":"File","attributes":{"rloc":70,"functions":1000,"complexity":10,"pairingRate":65,"avgCommits":22}}]}]}],"edges":[{"fromNodeName":"/root/bigLeaf.ts","toNodeName":"/root/ParentLeaf/smallLeaf.html","attributes":{"pairingRate":89,"avgCommits":34}},{"fromNodeName":"/root/sample1OnlyLeaf.scss","toNodeName":"/root/ParentLeaf/smallLeaf.html","attributes":{"pairingRate":32,"avgCommits":17}},{"fromNodeName":"/root/ParentLeaf/otherSmallLeaf.ts","toNodeName":"/root/bigLeaf.ts","attributes":{"pairingRate":65,"avgCommits":22}}],"attributeTypes":{"nodes":{"rloc":"absolute","functions":"absolute","complexity":"absolute","pairingRate":"relative"},"edges":{"pairingRate":"relative","avgCommits":"absolute"}}}'),j_e=JSON.parse('{"projectName":"Sample Project","apiVersion":"1.2","fileChecksum":"valid-md5-sample2","nodes":[{"name":"root","type":"Folder","attributes":{},"children":[{"name":"bigLeaf.ts","type":"File","attributes":{"rloc":120,"functions":10,"complexity":1},"link":"http://www.google.de"},{"name":"ParentLeaf","type":"Folder","attributes":{},"children":[{"name":"smallLeaf.html","type":"File","attributes":{"rloc":30,"functions":101,"complexity":80}},{"name":"otherSmallLeaf.ts","type":"File","attributes":{"rloc":70,"functions":10,"complexity":100}},{"name":"sample2LeafMergedIn.kt","type":"File","attributes":{"rloc":600,"functions":10,"complexity":1},"link":"http://www.google.de"}]}]}],"attributeTypes":{"nodes":{"rloc":"absolute","functions":"absolute","complexity":"absolute"}}}');var Pi=function(t){return t.Reference="Reference",t.Comparison="Comparison",t.Partial="Partial",t.None="None",t}(Pi||{});const pR=".png",fW="~",SM="_";function mW(t){return t.some(n=>n.selectedAs!==Pi.None)}function TM(t){return t.filter(n=>n.selectedAs!==Pi.None)}function Nd(t){return t.some(n=>n.selectedAs===Pi.Reference)}function pW(t){return t.some(n=>n.selectedAs===Pi.Partial)}function FM(t,n){return t.fileMeta.fileChecksum===n.fileMeta.fileChecksum}const M0=new oM(rM),nve=M0;function S0(t,n=M0){return Be((e,i)=>{let r=null,o=null,s=null;const a=()=>{if(r){r.unsubscribe(),r=null;const c=o;o=null,i.next(c)}};function l(){const c=s+t,d=n.now();if(d{o=c,s=n.now(),r||(r=n.schedule(l,t),i.add(r))},()=>{a(),i.complete()},void 0,()=>{o=r=null}))})}function Nr(t,n,e){const i=fn(t)||n||e?{next:t,error:n,complete:e}:t;return i?Be((r,o)=>{var s;null===(s=i.subscribe)||void 0===s||s.call(i);let a=!0;r.subscribe(Je(o,l=>{var c;null===(c=i.next)||void 0===c||c.call(i,l),o.next(l)},()=>{var l;a=!1,null===(l=i.complete)||void 0===l||l.call(i),o.complete()},l=>{var c;a=!1,null===(c=i.error)||void 0===c||c.call(i,l),o.error(l)},()=>{var l,c;a&&(null===(l=i.unsubscribe)||void 0===l||l.call(i)),null===(c=i.finalize)||void 0===c||c.call(i)}))}):cs}const o1=t=>t.fileSettings,Od=Xt(o1,t=>t.blacklist),Zu=t=>t.files,Ud=Xt(Zu,TM);function ive(t){var n=0,e=t.children,i=e&&e.length;if(i)for(;--i>=0;)n+=e[i].value;else n=1;t.value=n}function io(t,n){t instanceof Map?(t=[void 0,t],void 0===n&&(n=vve)):void 0===n&&(n=_ve);for(var i,o,s,a,l,e=new kM(t),r=[e];i=r.pop();)if((s=n(i.data))&&(l=(s=Array.from(s)).length))for(i.children=s,a=l-1;a>=0;--a)r.push(o=s[a]=new kM(s[a])),o.parent=i,o.depth=i.depth+1;return e.eachBefore(wve)}function _ve(t){return t.children}function vve(t){return Array.isArray(t)?t[1]:null}function yve(t){void 0!==t.data.value&&(t.value=t.data.value),t.data=t.data.data}function wve(t){var n=0;do{t.height=n}while((t=t.parent)&&t.height<++n)}function kM(t){this.data=t,this.depth=this.height=0,this.parent=null}kM.prototype=io.prototype={constructor:kM,count:function rve(){return this.eachAfter(ive)},each:function ove(t,n){let e=-1;for(const i of this)t.call(n,i,++e,this);return this},eachAfter:function ave(t,n){for(var o,s,a,e=this,i=[e],r=[],l=-1;e=i.pop();)if(r.push(e),o=e.children)for(s=0,a=o.length;s=0;--o)i.push(r[o]);return this},find:function lve(t,n){let e=-1;for(const i of this)if(t.call(n,i,++e,this))return i},sum:function cve(t){return this.eachAfter(function(n){for(var e=+t(n.data)||0,i=n.children,r=i&&i.length;--r>=0;)e+=i[r].value;n.value=e})},sort:function dve(t){return this.eachBefore(function(n){n.children&&n.children.sort(t)})},path:function uve(t){for(var n=this,e=function hve(t,n){if(t===n)return t;var e=t.ancestors(),i=n.ancestors(),r=null;for(t=e.pop(),n=i.pop();t===n;)r=t,t=e.pop(),n=i.pop();return r}(n,t),i=[n];n!==e;)i.push(n=n.parent);for(var r=i.length;t!==e;)i.splice(r,0,t),t=t.parent;return i},ancestors:function fve(){for(var t=this,n=[t];t=t.parent;)n.push(t);return n},descendants:function mve(){return Array.from(this)},leaves:function pve(){var t=[];return this.eachBefore(function(n){n.children||t.push(n)}),t},links:function Ave(){var t=this,n=[];return t.each(function(e){e!==t&&n.push({source:e.parent,target:e})}),n},copy:function bve(){return io(this).eachBefore(yve)},[Symbol.iterator]:function*gve(){var n,i,r,o,t=this,e=[t];do{for(n=e.reverse(),e=[];t=n.pop();)if(yield t,i=t.children)for(r=0,o=i.length;r=7340032:return RM.BIG_MAP;case e>=2097152:return RM.MEDIUM_MAP;default:return RM.SMALL_MAP}}const vW=t=>{t.sort((n,e)=>{const i=n.name.toLowerCase(),r=e.name.toLowerCase();return i>r?1:r>i?-1:0})};function Dve(t,n){const e=new Map,i=new Set;for(const{file:o}of t)for(const{data:s}of io(o.map))i.add(s.path);for(const o of t)for(const s of o.file.settings.fileSettings.edges)if(Rve(s,i,n))for(const a of Object.keys(s.attributes))Pve(Lve(e,a),s.fromNodeName,s.toNodeName);const r=function Nve(t){const n=[];for(const[e,i]of t){const r=[];let o=0,s=Number.MAX_SAFE_INTEGER;for(const a of i.values()){const l=a.incoming+a.outgoing;r.push(l),l>o&&(o=l),l<=s&&(s=l)}n.push({name:e,values:r,maxValue:o,minValue:s})}return n}(e);return vW(r),{edgeMetricData:r,nodeEdgeMetricsMap:e}}function Rve(t,n,e){return!(!n.has(t.fromNodeName)||!n.has(t.toNodeName)||Ju(t.fromNodeName,e,"exclude")||Ju(t.toNodeName,e,"exclude"))}function Lve(t,n){let e=t.get(n);return e||(e=new Map,t.set(n,e)),e}function Pve(t,n,e){const i=t.get(n);void 0===i?t.set(n,{incoming:0,outgoing:1}):i.outgoing+=1;const r=t.get(e);void 0===r?t.set(e,{incoming:1,outgoing:0}):r.incoming+=1}const PM="unary",yW=(t,n)=>{if(0===t.length)return[];const e=new Map,i=new Map,r=new Map;for(const{file:s}of t)for(const a of io(s.map))if(Eo(a)&&a.data.path&&!Ju(a.data.path,n,"exclude"))for(const l of Object.keys(a.data.attributes)){const c=i.get(l),d=r.get(l);e.get(l)||e.set(l,[]),e.get(l).push(a.data.attributes[l]),(void 0===d||d>=a.data.attributes[l])&&r.set(l,a.data.attributes[l]),(void 0===c||c<=a.data.attributes[l])&&i.set(l,a.data.attributes[l])}const o=[];i.set(PM,1),r.set(PM,1);for(const[s,a]of i)o.push({name:s,values:e.get(s),maxValue:a,minValue:r.get(s)});return vW(o),o},ks=Xt(Ud,Od,(t,n)=>({nodeMetricData:yW(t,n),...Dve(t,n)})),Ove=[Xu,Yu,Lc,Ku];var Vd=function(t){return t.areaMetric="area",t.heightMetric="height",t.colorMetric="color",t.edgeMetric="edge",t}(Vd||{});let Uve=(()=>{class t{constructor(e,i,r,o){this.loadInitialFileService=e,this.actions$=i,this.state=r,this.store=o,this.saveMetricsInQueryParameters$=Bo(()=>this.actions$.pipe(Dc(...Ove),Wu(this.store.select(ks)),Et(s=>s[1].edgeMetricData&&s[1].edgeMetricData.length>0),S0(100),Nr(s=>{this.updateMetricQueryParameters(s)})),{dispatch:!1})}updateMetricQueryParameters(e){const i=this.state.getValue(),{edgeMetric:r,heightMetric:o,colorMetric:s,areaMetric:a}=i.dynamicSettings;this.loadInitialFileService.checkFileQueryParameterPresent()&&(this.addOrUpdateQueryParameter(Vd.areaMetric,a),this.addOrUpdateQueryParameter(Vd.heightMetric,o),this.addOrUpdateQueryParameter(Vd.colorMetric,s),e?this.addOrUpdateQueryParameter(Vd.edgeMetric,r):this.deleteQueryParameterIfExists(Vd.edgeMetric))}addOrUpdateQueryParameter(e,i){const r=new URL(window.location.href),o=r.search.slice(1),s=o.length>0?o.split("&"):[],a=[];let l=!1;for(const c of s)c.split("=")[0]===e?(a.push(`${e}=${encodeURIComponent(i)}`),l=!0):a.push(c);l||a.push(`${e}=${encodeURIComponent(i)}`),r.search=a.join("&"),window.history.replaceState(null,"",r.toString())}deleteQueryParameterIfExists(e){const i=new URL(window.location.href),r=i.search.slice(1),o=r.length>0?r.split("&"):[],s=[];for(const a of o){const[l,c]=a.split("=");l!==e&&s.push(`${l}=${c}`)}i.search=s.join("&"),window.history.replaceState(null,"",i.toString())}static{this.\u0275fac=function(i){return new(i||t)(oe(zL),oe($u),oe(Br),oe(Wt))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac})}}return t})();const F0=un("SET_IS_LOADING_MAP",{_as:"props",_p:void 0}),s1=un("SET_FILES",{_as:"props",_p:void 0}),wW=un("ADD_FILE",{_as:"props",_p:void 0}),gR=un("REMOVE_FILE",{_as:"props",_p:void 0}),a1=un("SET_STANDARD",{_as:"props",_p:void 0}),bR=un("SET_STANDARD_BY_NAMES",{_as:"props",_p:void 0}),_R=un("SET_ALL"),vR=un("INVERT_STANDARD"),yR=un("SWITCH_REFERENCE_AND_COMPARISON"),wR=un("SET_DELTA_COMPARISON",{_as:"props",_p:void 0}),xR=un("SET_DELTA_REFERENCE",{_as:"props",_p:void 0}),NM=un("SET_DELTA",{_as:"props",_p:void 0}),OM=[s1,wW,gR,a1,bR,_R,vR,yR,wR,xR,NM];function $s(t){return null!=t&&"false"!=`${t}`}function Qf(t,n=0){return function Hve(t){return!isNaN(parseFloat(t))&&!isNaN(Number(t))}(t)?Number(t):n}function UM(t){return Array.isArray(t)?t:[t]}function os(t){return null==t?"":"string"==typeof t?t:`${t}px`}function eh(t){return t instanceof Un?t.nativeElement:t}const Vve=["addListener","removeListener"],Qve=["addEventListener","removeEventListener"],zve=["on","off"];function k0(t,n,e,i){if(fn(e)&&(i=e,e=void 0),i)return k0(t,n,e).pipe(YD(i));const[r,o]=function Wve(t){return fn(t.addEventListener)&&fn(t.removeEventListener)}(t)?Qve.map(s=>a=>t[s](n,a,e)):function Gve(t){return fn(t.addListener)&&fn(t.removeListener)}(t)?Vve.map(xW(t,n)):function qve(t){return fn(t.on)&&fn(t.off)}(t)?zve.map(xW(t,n)):[];if(!r&&zD(t))return If(s=>k0(s,n,e))(Go(t));if(!r)throw new TypeError("Invalid event target");return new $i(s=>{const a=(...l)=>s.next(1o(a)})}function xW(t,n){return e=>i=>t[e](n,i)}const l1={schedule(t){let n=requestAnimationFrame,e=cancelAnimationFrame;const{delegate:i}=l1;i&&(n=i.requestAnimationFrame,e=i.cancelAnimationFrame);const r=n(o=>{e=void 0,t(o)});return new on(()=>e?.(r))},requestAnimationFrame(...t){const{delegate:n}=l1;return(n?.requestAnimationFrame||requestAnimationFrame)(...t)},cancelAnimationFrame(...t){const{delegate:n}=l1;return(n?.cancelAnimationFrame||cancelAnimationFrame)(...t)},delegate:void 0};new class jve extends oM{flush(n){this._active=!0;const e=this._scheduled;this._scheduled=void 0;const{actions:i}=this;let r;n=n||i.shift();do{if(r=n.execute(n.state,n.delay))break}while((n=i[0])&&n.id===e&&i.shift());if(this._active=!1,r){for(;(n=i[0])&&n.id===e&&i.shift();)n.unsubscribe();throw r}}}(class $ve extends rM{constructor(n,e){super(n,e),this.scheduler=n,this.work=e}requestAsyncId(n,e,i=0){return null!==i&&i>0?super.requestAsyncId(n,e,i):(n.actions.push(this),n._scheduled||(n._scheduled=l1.requestAnimationFrame(()=>n.flush(void 0))))}recycleAsyncId(n,e,i=0){var r;if(null!=i?i>0:this.delay>0)return super.recycleAsyncId(n,e,i);const{actions:o}=n;null!=e&&(null===(r=o[o.length-1])||void 0===r?void 0:r.id)!==e&&(l1.cancelAnimationFrame(e),n._scheduled=void 0)}});let CR,Xve=1;const HM={};function CW(t){return t in HM&&(delete HM[t],!0)}const Yve={setImmediate(t){const n=Xve++;return HM[n]=!0,CR||(CR=Promise.resolve()),CR.then(()=>CW(n)&&t()),n},clearImmediate(t){CW(t)}},{setImmediate:Zve,clearImmediate:Jve}=Yve,VM={setImmediate(...t){const{delegate:n}=VM;return(n?.setImmediate||Zve)(...t)},clearImmediate(t){const{delegate:n}=VM;return(n?.clearImmediate||Jve)(t)},delegate:void 0},ER=new class tye extends oM{flush(n){this._active=!0;const e=this._scheduled;this._scheduled=void 0;const{actions:i}=this;let r;n=n||i.shift();do{if(r=n.execute(n.state,n.delay))break}while((n=i[0])&&n.id===e&&i.shift());if(this._active=!1,r){for(;(n=i[0])&&n.id===e&&i.shift();)n.unsubscribe();throw r}}}(class eye extends rM{constructor(n,e){super(n,e),this.scheduler=n,this.work=e}requestAsyncId(n,e,i=0){return null!==i&&i>0?super.requestAsyncId(n,e,i):(n.actions.push(this),n._scheduled||(n._scheduled=VM.setImmediate(n.flush.bind(n,void 0))))}recycleAsyncId(n,e,i=0){var r;if(null!=i?i>0:this.delay>0)return super.recycleAsyncId(n,e,i);const{actions:o}=n;null!=e&&(null===(r=o[o.length-1])||void 0===r?void 0:r.id)!==e&&(VM.clearImmediate(e),n._scheduled===e&&(n._scheduled=void 0))}});function MR(t=0,n,e=nve){let i=-1;return null!=n&&(yz(n)?e=n:i=n),new $i(r=>{let o=function iye(t){return t instanceof Date&&!isNaN(t)}(t)?+t-e.now():t;o<0&&(o=0);let s=0;return e.schedule(function(){r.closed||(r.next(s++),0<=i?this.schedule(void 0,i):r.complete())},o)})}function SR(t,n=M0){return function nye(t){return Be((n,e)=>{let i=!1,r=null,o=null,s=!1;const a=()=>{if(o?.unsubscribe(),o=null,i){i=!1;const c=r;r=null,e.next(c)}s&&e.complete()},l=()=>{o=null,s&&e.complete()};n.subscribe(Je(e,c=>{i=!0,r=c,o||Go(t(c)).subscribe(o=Je(e,a,l))},()=>{s=!0,(!i||!o||o.closed)&&e.complete()}))})}(()=>MR(t,n))}let TR;try{TR=typeof Intl<"u"&&Intl.v8BreakIterator}catch{TR=!1}let I0,Or=(()=>{class t{constructor(e){this._platformId=e,this.isBrowser=this._platformId?function Rpe(t){return t===jQ}(this._platformId):"object"==typeof document&&!!document,this.EDGE=this.isBrowser&&/(edge)/i.test(navigator.userAgent),this.TRIDENT=this.isBrowser&&/(msie|trident)/i.test(navigator.userAgent),this.BLINK=this.isBrowser&&!(!window.chrome&&!TR)&&typeof CSS<"u"&&!this.EDGE&&!this.TRIDENT,this.WEBKIT=this.isBrowser&&/AppleWebKit/i.test(navigator.userAgent)&&!this.BLINK&&!this.EDGE&&!this.TRIDENT,this.IOS=this.isBrowser&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!("MSStream"in window),this.FIREFOX=this.isBrowser&&/(firefox|minefield)/i.test(navigator.userAgent),this.ANDROID=this.isBrowser&&/android/i.test(navigator.userAgent)&&!this.TRIDENT,this.SAFARI=this.isBrowser&&/safari/i.test(navigator.userAgent)&&this.WEBKIT}static{this.\u0275fac=function(i){return new(i||t)(oe(vf))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();const EW=["color","button","checkbox","date","datetime-local","email","file","hidden","image","month","number","password","radio","range","reset","search","submit","tel","text","time","url","week"];function MW(){if(I0)return I0;if("object"!=typeof document||!document)return I0=new Set(EW),I0;let t=document.createElement("input");return I0=new Set(EW.filter(n=>(t.setAttribute("type",n),t.type===n))),I0}let c1,Dp,FR;function Bp(t){return function rye(){if(null==c1&&typeof window<"u")try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:()=>c1=!0}))}finally{c1=c1||!1}return c1}()?t:!!t.capture}function oye(){if(null==Dp){if("object"!=typeof document||!document||"function"!=typeof Element||!Element)return Dp=!1,Dp;if("scrollBehavior"in document.documentElement.style)Dp=!0;else{const t=Element.prototype.scrollTo;Dp=!!t&&!/\{\s*\[native code\]\s*\}/.test(t.toString())}}return Dp}function zM(){let t=typeof document<"u"&&document?document.activeElement:null;for(;t&&t.shadowRoot;){const n=t.shadowRoot.activeElement;if(n===t)break;t=n}return t}function zf(t){return t.composedPath?t.composedPath()[0]:t.target}function kR(){return typeof __karma__<"u"&&!!__karma__||typeof jasmine<"u"&&!!jasmine||typeof jest<"u"&&!!jest||typeof Mocha<"u"&&!!Mocha}const lye=new ot("cdk-dir-doc",{providedIn:"root",factory:function cye(){return Ut(xi)}}),dye=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;let th=(()=>{class t{constructor(e){this.value="ltr",this.change=new Ln,e&&(this.value=function uye(t){const n=t?.toLowerCase()||"";return"auto"===n&&typeof navigator<"u"&&navigator?.language?dye.test(navigator.language)?"rtl":"ltr":"rtl"===n?"rtl":"ltr"}((e.body?e.body.dir:null)||(e.documentElement?e.documentElement.dir:null)||"ltr"))}ngOnDestroy(){this.change.complete()}static{this.\u0275fac=function(i){return new(i||t)(oe(lye,8))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})(),u1=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({})}}return t})(),SW=(()=>{class t{constructor(e,i,r){this._ngZone=e,this._platform=i,this._scrolled=new Yt,this._globalSubscription=null,this._scrolledCount=0,this.scrollContainers=new Map,this._document=r}register(e){this.scrollContainers.has(e)||this.scrollContainers.set(e,e.elementScrolled().subscribe(()=>this._scrolled.next(e)))}deregister(e){const i=this.scrollContainers.get(e);i&&(i.unsubscribe(),this.scrollContainers.delete(e))}scrolled(e=20){return this._platform.isBrowser?new $i(i=>{this._globalSubscription||this._addGlobalListener();const r=e>0?this._scrolled.pipe(SR(e)).subscribe(i):this._scrolled.subscribe(i);return this._scrolledCount++,()=>{r.unsubscribe(),this._scrolledCount--,this._scrolledCount||this._removeGlobalListener()}}):nl()}ngOnDestroy(){this._removeGlobalListener(),this.scrollContainers.forEach((e,i)=>this.deregister(i)),this._scrolled.complete()}ancestorScrolled(e,i){const r=this.getAncestorScrollContainers(e);return this.scrolled(i).pipe(Ii(o=>!o||r.indexOf(o)>-1))}getAncestorScrollContainers(e){const i=[];return this.scrollContainers.forEach((r,o)=>{this._scrollableContainsElement(o,e)&&i.push(o)}),i}_getWindow(){return this._document.defaultView||window}_scrollableContainsElement(e,i){let r=eh(i),o=e.getElementRef().nativeElement;do{if(r==o)return!0}while(r=r.parentElement);return!1}_addGlobalListener(){this._globalSubscription=this._ngZone.runOutsideAngular(()=>k0(this._getWindow().document,"scroll").subscribe(()=>this._scrolled.next()))}_removeGlobalListener(){this._globalSubscription&&(this._globalSubscription.unsubscribe(),this._globalSubscription=null)}static{this.\u0275fac=function(i){return new(i||t)(oe(Fn),oe(Or),oe(xi,8))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})(),IR=(()=>{class t{constructor(e,i,r){this._platform=e,this._change=new Yt,this._changeListener=o=>{this._change.next(o)},this._document=r,i.runOutsideAngular(()=>{if(e.isBrowser){const o=this._getWindow();o.addEventListener("resize",this._changeListener),o.addEventListener("orientationchange",this._changeListener)}this.change().subscribe(()=>this._viewportSize=null)})}ngOnDestroy(){if(this._platform.isBrowser){const e=this._getWindow();e.removeEventListener("resize",this._changeListener),e.removeEventListener("orientationchange",this._changeListener)}this._change.complete()}getViewportSize(){this._viewportSize||this._updateViewportSize();const e={width:this._viewportSize.width,height:this._viewportSize.height};return this._platform.isBrowser||(this._viewportSize=null),e}getViewportRect(){const e=this.getViewportScrollPosition(),{width:i,height:r}=this.getViewportSize();return{top:e.top,left:e.left,bottom:e.top+r,right:e.left+i,height:r,width:i}}getViewportScrollPosition(){if(!this._platform.isBrowser)return{top:0,left:0};const e=this._document,i=this._getWindow(),r=e.documentElement,o=r.getBoundingClientRect();return{top:-o.top||e.body.scrollTop||i.scrollY||r.scrollTop||0,left:-o.left||e.body.scrollLeft||i.scrollX||r.scrollLeft||0}}change(e=20){return e>0?this._change.pipe(SR(e)):this._change}_getWindow(){return this._document.defaultView||window}_updateViewportSize(){const e=this._getWindow();this._viewportSize=this._platform.isBrowser?{width:e.innerWidth,height:e.innerHeight}:{width:0,height:0}}static{this.\u0275fac=function(i){return new(i||t)(oe(Or),oe(Fn),oe(xi,8))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})(),h1=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({})}}return t})(),TW=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[u1,h1,u1,h1]})}}return t})();function Ur(t){return Be((n,e)=>{Go(t).subscribe(Je(e,()=>e.complete(),zr)),!e.closed&&n.subscribe(e)})}class BR{attach(n){return this._attachedHost=n,n.attach(this)}detach(){let n=this._attachedHost;null!=n&&(this._attachedHost=null,n.detach())}get isAttached(){return null!=this._attachedHost}setAttachedHost(n){this._attachedHost=n}}class f1 extends BR{constructor(n,e,i,r,o){super(),this.component=n,this.viewContainerRef=e,this.injector=i,this.componentFactoryResolver=r,this.projectableNodes=o}}class m1 extends BR{constructor(n,e,i,r){super(),this.templateRef=n,this.viewContainerRef=e,this.context=i,this.injector=r}get origin(){return this.templateRef.elementRef}attach(n,e=this.context){return this.context=e,super.attach(n)}detach(){return this.context=void 0,super.detach()}}class pye extends BR{constructor(n){super(),this.element=n instanceof Un?n.nativeElement:n}}class DR{constructor(){this._isDisposed=!1,this.attachDomPortal=null}hasAttached(){return!!this._attachedPortal}attach(n){return n instanceof f1?(this._attachedPortal=n,this.attachComponentPortal(n)):n instanceof m1?(this._attachedPortal=n,this.attachTemplatePortal(n)):this.attachDomPortal&&n instanceof pye?(this._attachedPortal=n,this.attachDomPortal(n)):void 0}detach(){this._attachedPortal&&(this._attachedPortal.setAttachedHost(null),this._attachedPortal=null),this._invokeDisposeFn()}dispose(){this.hasAttached()&&this.detach(),this._invokeDisposeFn(),this._isDisposed=!0}setDisposeFn(n){this._disposeFn=n}_invokeDisposeFn(){this._disposeFn&&(this._disposeFn(),this._disposeFn=null)}}class Aye extends DR{constructor(n,e,i,r,o){super(),this.outletElement=n,this._componentFactoryResolver=e,this._appRef=i,this._defaultInjector=r,this.attachDomPortal=s=>{const a=s.element,l=this._document.createComment("dom-portal");a.parentNode.insertBefore(l,a),this.outletElement.appendChild(a),this._attachedPortal=s,super.setDisposeFn(()=>{l.parentNode&&l.parentNode.replaceChild(a,l)})},this._document=o}attachComponentPortal(n){const i=(n.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(n.component);let r;return n.viewContainerRef?(r=n.viewContainerRef.createComponent(i,n.viewContainerRef.length,n.injector||n.viewContainerRef.injector,n.projectableNodes||void 0),this.setDisposeFn(()=>r.destroy())):(r=i.create(n.injector||this._defaultInjector||Uo.NULL),this._appRef.attachView(r.hostView),this.setDisposeFn(()=>{this._appRef.viewCount>0&&this._appRef.detachView(r.hostView),r.destroy()})),this.outletElement.appendChild(this._getComponentRootNode(r)),this._attachedPortal=n,r}attachTemplatePortal(n){let e=n.viewContainerRef,i=e.createEmbeddedView(n.templateRef,n.context,{injector:n.injector});return i.rootNodes.forEach(r=>this.outletElement.appendChild(r)),i.detectChanges(),this.setDisposeFn(()=>{let r=e.indexOf(i);-1!==r&&e.remove(r)}),this._attachedPortal=n,i}dispose(){super.dispose(),this.outletElement.remove()}_getComponentRootNode(n){return n.hostView.rootNodes[0]}}let GM=(()=>{class t extends DR{constructor(e,i,r){super(),this._componentFactoryResolver=e,this._viewContainerRef=i,this._isInitialized=!1,this.attached=new Ln,this.attachDomPortal=o=>{const s=o.element,a=this._document.createComment("dom-portal");o.setAttachedHost(this),s.parentNode.insertBefore(a,s),this._getRootNode().appendChild(s),this._attachedPortal=o,super.setDisposeFn(()=>{a.parentNode&&a.parentNode.replaceChild(s,a)})},this._document=r}get portal(){return this._attachedPortal}set portal(e){this.hasAttached()&&!e&&!this._isInitialized||(this.hasAttached()&&super.detach(),e&&super.attach(e),this._attachedPortal=e||null)}get attachedRef(){return this._attachedRef}ngOnInit(){this._isInitialized=!0}ngOnDestroy(){super.dispose(),this._attachedRef=this._attachedPortal=null}attachComponentPortal(e){e.setAttachedHost(this);const i=null!=e.viewContainerRef?e.viewContainerRef:this._viewContainerRef,o=(e.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(e.component),s=i.createComponent(o,i.length,e.injector||i.injector,e.projectableNodes||void 0);return i!==this._viewContainerRef&&this._getRootNode().appendChild(s.hostView.rootNodes[0]),super.setDisposeFn(()=>s.destroy()),this._attachedPortal=e,this._attachedRef=s,this.attached.emit(s),s}attachTemplatePortal(e){e.setAttachedHost(this);const i=this._viewContainerRef.createEmbeddedView(e.templateRef,e.context,{injector:e.injector});return super.setDisposeFn(()=>this._viewContainerRef.clear()),this._attachedPortal=e,this._attachedRef=i,this.attached.emit(i),i}_getRootNode(){const e=this._viewContainerRef.element.nativeElement;return e.nodeType===e.ELEMENT_NODE?e:e.parentNode}static{this.\u0275fac=function(i){return new(i||t)(W(Qg),W(va),W(xi))}}static{this.\u0275dir=zt({type:t,selectors:[["","cdkPortalOutlet",""]],inputs:{portal:[bt.None,"cdkPortalOutlet","portal"]},outputs:{attached:"attached"},exportAs:["cdkPortalOutlet"],standalone:!0,features:[di]})}}return t})(),p1=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({})}}return t})();function Pc(t,...n){return n.length?n.some(e=>t[e]):t.altKey||t.shiftKey||t.ctrlKey||t.metaKey}const FW=oye();class kye{constructor(n,e){this._viewportRuler=n,this._previousHTMLStyles={top:"",left:""},this._isEnabled=!1,this._document=e}attach(){}enable(){if(this._canBeEnabled()){const n=this._document.documentElement;this._previousScrollPosition=this._viewportRuler.getViewportScrollPosition(),this._previousHTMLStyles.left=n.style.left||"",this._previousHTMLStyles.top=n.style.top||"",n.style.left=os(-this._previousScrollPosition.left),n.style.top=os(-this._previousScrollPosition.top),n.classList.add("cdk-global-scrollblock"),this._isEnabled=!0}}disable(){if(this._isEnabled){const n=this._document.documentElement,i=n.style,r=this._document.body.style,o=i.scrollBehavior||"",s=r.scrollBehavior||"";this._isEnabled=!1,i.left=this._previousHTMLStyles.left,i.top=this._previousHTMLStyles.top,n.classList.remove("cdk-global-scrollblock"),FW&&(i.scrollBehavior=r.scrollBehavior="auto"),window.scroll(this._previousScrollPosition.left,this._previousScrollPosition.top),FW&&(i.scrollBehavior=o,r.scrollBehavior=s)}}_canBeEnabled(){if(this._document.documentElement.classList.contains("cdk-global-scrollblock")||this._isEnabled)return!1;const e=this._document.body,i=this._viewportRuler.getViewportSize();return e.scrollHeight>i.height||e.scrollWidth>i.width}}class Iye{constructor(n,e,i,r){this._scrollDispatcher=n,this._ngZone=e,this._viewportRuler=i,this._config=r,this._scrollSubscription=null,this._detach=()=>{this.disable(),this._overlayRef.hasAttached()&&this._ngZone.run(()=>this._overlayRef.detach())}}attach(n){this._overlayRef=n}enable(){if(this._scrollSubscription)return;const n=this._scrollDispatcher.scrolled(0).pipe(Ii(e=>!e||!this._overlayRef.overlayElement.contains(e.getElementRef().nativeElement)));this._config&&this._config.threshold&&this._config.threshold>1?(this._initialScrollPosition=this._viewportRuler.getViewportScrollPosition().top,this._scrollSubscription=n.subscribe(()=>{const e=this._viewportRuler.getViewportScrollPosition().top;Math.abs(e-this._initialScrollPosition)>this._config.threshold?this._detach():this._overlayRef.updatePosition()})):this._scrollSubscription=n.subscribe(this._detach)}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}}class kW{enable(){}disable(){}attach(){}}function LR(t,n){return n.some(e=>t.bottome.bottom||t.righte.right)}function IW(t,n){return n.some(e=>t.tope.bottom||t.lefte.right)}class Bye{constructor(n,e,i,r){this._scrollDispatcher=n,this._viewportRuler=e,this._ngZone=i,this._config=r,this._scrollSubscription=null}attach(n){this._overlayRef=n}enable(){this._scrollSubscription||(this._scrollSubscription=this._scrollDispatcher.scrolled(this._config?this._config.scrollThrottle:0).subscribe(()=>{if(this._overlayRef.updatePosition(),this._config&&this._config.autoClose){const e=this._overlayRef.overlayElement.getBoundingClientRect(),{width:i,height:r}=this._viewportRuler.getViewportSize();LR(e,[{width:i,height:r,bottom:r,right:i,top:0,left:0}])&&(this.disable(),this._ngZone.run(()=>this._overlayRef.detach()))}}))}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}}let Dye=(()=>{class t{constructor(e,i,r,o){this._scrollDispatcher=e,this._viewportRuler=i,this._ngZone=r,this.noop=()=>new kW,this.close=s=>new Iye(this._scrollDispatcher,this._ngZone,this._viewportRuler,s),this.block=()=>new kye(this._viewportRuler,this._document),this.reposition=s=>new Bye(this._scrollDispatcher,this._viewportRuler,this._ngZone,s),this._document=o}static{this.\u0275fac=function(i){return new(i||t)(oe(SW),oe(IR),oe(Fn),oe(xi))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();class KM{constructor(n){if(this.scrollStrategy=new kW,this.panelClass="",this.hasBackdrop=!1,this.backdropClass="cdk-overlay-dark-backdrop",this.disposeOnNavigation=!1,n){const e=Object.keys(n);for(const i of e)void 0!==n[i]&&(this[i]=n[i])}}}class Rye{constructor(n,e){this.connectionPair=n,this.scrollableViewProperties=e}}let BW=(()=>{class t{constructor(e){this._attachedOverlays=[],this._document=e}ngOnDestroy(){this.detach()}add(e){this.remove(e),this._attachedOverlays.push(e)}remove(e){const i=this._attachedOverlays.indexOf(e);i>-1&&this._attachedOverlays.splice(i,1),0===this._attachedOverlays.length&&this.detach()}static{this.\u0275fac=function(i){return new(i||t)(oe(xi))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})(),Lye=(()=>{class t extends BW{constructor(e,i){super(e),this._ngZone=i,this._keydownListener=r=>{const o=this._attachedOverlays;for(let s=o.length-1;s>-1;s--)if(o[s]._keydownEvents.observers.length>0){const a=o[s]._keydownEvents;this._ngZone?this._ngZone.run(()=>a.next(r)):a.next(r);break}}}add(e){super.add(e),this._isAttached||(this._ngZone?this._ngZone.runOutsideAngular(()=>this._document.body.addEventListener("keydown",this._keydownListener)):this._document.body.addEventListener("keydown",this._keydownListener),this._isAttached=!0)}detach(){this._isAttached&&(this._document.body.removeEventListener("keydown",this._keydownListener),this._isAttached=!1)}static{this.\u0275fac=function(i){return new(i||t)(oe(xi),oe(Fn,8))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})(),Pye=(()=>{class t extends BW{constructor(e,i,r){super(e),this._platform=i,this._ngZone=r,this._cursorStyleIsSet=!1,this._pointerDownListener=o=>{this._pointerDownEventTarget=zf(o)},this._clickListener=o=>{const s=zf(o),a="click"===o.type&&this._pointerDownEventTarget?this._pointerDownEventTarget:s;this._pointerDownEventTarget=null;const l=this._attachedOverlays.slice();for(let c=l.length-1;c>-1;c--){const d=l[c];if(d._outsidePointerEvents.observers.length<1||!d.hasAttached())continue;if(d.overlayElement.contains(s)||d.overlayElement.contains(a))break;const u=d._outsidePointerEvents;this._ngZone?this._ngZone.run(()=>u.next(o)):u.next(o)}}}add(e){if(super.add(e),!this._isAttached){const i=this._document.body;this._ngZone?this._ngZone.runOutsideAngular(()=>this._addEventListeners(i)):this._addEventListeners(i),this._platform.IOS&&!this._cursorStyleIsSet&&(this._cursorOriginalValue=i.style.cursor,i.style.cursor="pointer",this._cursorStyleIsSet=!0),this._isAttached=!0}}detach(){if(this._isAttached){const e=this._document.body;e.removeEventListener("pointerdown",this._pointerDownListener,!0),e.removeEventListener("click",this._clickListener,!0),e.removeEventListener("auxclick",this._clickListener,!0),e.removeEventListener("contextmenu",this._clickListener,!0),this._platform.IOS&&this._cursorStyleIsSet&&(e.style.cursor=this._cursorOriginalValue,this._cursorStyleIsSet=!1),this._isAttached=!1}}_addEventListeners(e){e.addEventListener("pointerdown",this._pointerDownListener,!0),e.addEventListener("click",this._clickListener,!0),e.addEventListener("auxclick",this._clickListener,!0),e.addEventListener("contextmenu",this._clickListener,!0)}static{this.\u0275fac=function(i){return new(i||t)(oe(xi),oe(Or),oe(Fn,8))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})(),XM=(()=>{class t{constructor(e,i){this._platform=i,this._document=e}ngOnDestroy(){this._containerElement?.remove()}getContainerElement(){return this._containerElement||this._createContainer(),this._containerElement}_createContainer(){const e="cdk-overlay-container";if(this._platform.isBrowser||kR()){const r=this._document.querySelectorAll(`.${e}[platform="server"], .${e}[platform="test"]`);for(let o=0;othis._backdropClick.next(u),this._backdropTransitionendHandler=u=>{this._disposeBackdrop(u.target)},this._keydownEvents=new Yt,this._outsidePointerEvents=new Yt,r.scrollStrategy&&(this._scrollStrategy=r.scrollStrategy,this._scrollStrategy.attach(this)),this._positionStrategy=r.positionStrategy}get overlayElement(){return this._pane}get backdropElement(){return this._backdropElement}get hostElement(){return this._host}attach(n){!this._host.parentElement&&this._previousHostParent&&this._previousHostParent.appendChild(this._host);const e=this._portalOutlet.attach(n);return this._positionStrategy&&this._positionStrategy.attach(this),this._updateStackingOrder(),this._updateElementSize(),this._updateElementDirection(),this._scrollStrategy&&this._scrollStrategy.enable(),this._ngZone.onStable.pipe(qo(1)).subscribe(()=>{this.hasAttached()&&this.updatePosition()}),this._togglePointerEvents(!0),this._config.hasBackdrop&&this._attachBackdrop(),this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!0),this._attachments.next(),this._keyboardDispatcher.add(this),this._config.disposeOnNavigation&&(this._locationChanges=this._location.subscribe(()=>this.dispose())),this._outsideClickDispatcher.add(this),"function"==typeof e?.onDestroy&&e.onDestroy(()=>{this.hasAttached()&&this._ngZone.runOutsideAngular(()=>Promise.resolve().then(()=>this.detach()))}),e}detach(){if(!this.hasAttached())return;this.detachBackdrop(),this._togglePointerEvents(!1),this._positionStrategy&&this._positionStrategy.detach&&this._positionStrategy.detach(),this._scrollStrategy&&this._scrollStrategy.disable();const n=this._portalOutlet.detach();return this._detachments.next(),this._keyboardDispatcher.remove(this),this._detachContentWhenStable(),this._locationChanges.unsubscribe(),this._outsideClickDispatcher.remove(this),n}dispose(){const n=this.hasAttached();this._positionStrategy&&this._positionStrategy.dispose(),this._disposeScrollStrategy(),this._disposeBackdrop(this._backdropElement),this._locationChanges.unsubscribe(),this._keyboardDispatcher.remove(this),this._portalOutlet.dispose(),this._attachments.complete(),this._backdropClick.complete(),this._keydownEvents.complete(),this._outsidePointerEvents.complete(),this._outsideClickDispatcher.remove(this),this._host?.remove(),this._previousHostParent=this._pane=this._host=null,n&&this._detachments.next(),this._detachments.complete()}hasAttached(){return this._portalOutlet.hasAttached()}backdropClick(){return this._backdropClick}attachments(){return this._attachments}detachments(){return this._detachments}keydownEvents(){return this._keydownEvents}outsidePointerEvents(){return this._outsidePointerEvents}getConfig(){return this._config}updatePosition(){this._positionStrategy&&this._positionStrategy.apply()}updatePositionStrategy(n){n!==this._positionStrategy&&(this._positionStrategy&&this._positionStrategy.dispose(),this._positionStrategy=n,this.hasAttached()&&(n.attach(this),this.updatePosition()))}updateSize(n){this._config={...this._config,...n},this._updateElementSize()}setDirection(n){this._config={...this._config,direction:n},this._updateElementDirection()}addPanelClass(n){this._pane&&this._toggleClasses(this._pane,n,!0)}removePanelClass(n){this._pane&&this._toggleClasses(this._pane,n,!1)}getDirection(){const n=this._config.direction;return n?"string"==typeof n?n:n.value:"ltr"}updateScrollStrategy(n){n!==this._scrollStrategy&&(this._disposeScrollStrategy(),this._scrollStrategy=n,this.hasAttached()&&(n.attach(this),n.enable()))}_updateElementDirection(){this._host.setAttribute("dir",this.getDirection())}_updateElementSize(){if(!this._pane)return;const n=this._pane.style;n.width=os(this._config.width),n.height=os(this._config.height),n.minWidth=os(this._config.minWidth),n.minHeight=os(this._config.minHeight),n.maxWidth=os(this._config.maxWidth),n.maxHeight=os(this._config.maxHeight)}_togglePointerEvents(n){this._pane.style.pointerEvents=n?"":"none"}_attachBackdrop(){const n="cdk-overlay-backdrop-showing";this._backdropElement=this._document.createElement("div"),this._backdropElement.classList.add("cdk-overlay-backdrop"),this._animationsDisabled&&this._backdropElement.classList.add("cdk-overlay-backdrop-noop-animation"),this._config.backdropClass&&this._toggleClasses(this._backdropElement,this._config.backdropClass,!0),this._host.parentElement.insertBefore(this._backdropElement,this._host),this._backdropElement.addEventListener("click",this._backdropClickHandler),!this._animationsDisabled&&typeof requestAnimationFrame<"u"?this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>{this._backdropElement&&this._backdropElement.classList.add(n)})}):this._backdropElement.classList.add(n)}_updateStackingOrder(){this._host.nextSibling&&this._host.parentNode.appendChild(this._host)}detachBackdrop(){const n=this._backdropElement;if(n){if(this._animationsDisabled)return void this._disposeBackdrop(n);n.classList.remove("cdk-overlay-backdrop-showing"),this._ngZone.runOutsideAngular(()=>{n.addEventListener("transitionend",this._backdropTransitionendHandler)}),n.style.pointerEvents="none",this._backdropTimeout=this._ngZone.runOutsideAngular(()=>setTimeout(()=>{this._disposeBackdrop(n)},500))}}_toggleClasses(n,e,i){const r=UM(e||[]).filter(o=>!!o);r.length&&(i?n.classList.add(...r):n.classList.remove(...r))}_detachContentWhenStable(){this._ngZone.runOutsideAngular(()=>{const n=this._ngZone.onStable.pipe(Ur(Sl(this._attachments,this._detachments))).subscribe(()=>{(!this._pane||!this._host||0===this._pane.children.length)&&(this._pane&&this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!1),this._host&&this._host.parentElement&&(this._previousHostParent=this._host.parentElement,this._host.remove()),n.unsubscribe())})})}_disposeScrollStrategy(){const n=this._scrollStrategy;n&&(n.disable(),n.detach&&n.detach())}_disposeBackdrop(n){n&&(n.removeEventListener("click",this._backdropClickHandler),n.removeEventListener("transitionend",this._backdropTransitionendHandler),n.remove(),this._backdropElement===n&&(this._backdropElement=null)),this._backdropTimeout&&(clearTimeout(this._backdropTimeout),this._backdropTimeout=void 0)}}const DW="cdk-overlay-connected-position-bounding-box",Nye=/([A-Za-z%]+)$/;class Oye{get positions(){return this._preferredPositions}constructor(n,e,i,r,o){this._viewportRuler=e,this._document=i,this._platform=r,this._overlayContainer=o,this._lastBoundingBoxSize={width:0,height:0},this._isPushed=!1,this._canPush=!0,this._growAfterOpen=!1,this._hasFlexibleDimensions=!0,this._positionLocked=!1,this._viewportMargin=0,this._scrollables=[],this._preferredPositions=[],this._positionChanges=new Yt,this._resizeSubscription=on.EMPTY,this._offsetX=0,this._offsetY=0,this._appliedPanelClasses=[],this.positionChanges=this._positionChanges,this.setOrigin(n)}attach(n){this._validatePositions(),n.hostElement.classList.add(DW),this._overlayRef=n,this._boundingBox=n.hostElement,this._pane=n.overlayElement,this._isDisposed=!1,this._isInitialRender=!0,this._lastPosition=null,this._resizeSubscription.unsubscribe(),this._resizeSubscription=this._viewportRuler.change().subscribe(()=>{this._isInitialRender=!0,this.apply()})}apply(){if(this._isDisposed||!this._platform.isBrowser)return;if(!this._isInitialRender&&this._positionLocked&&this._lastPosition)return void this.reapplyLastPosition();this._clearPanelClasses(),this._resetOverlayElementStyles(),this._resetBoundingBoxStyles(),this._viewportRect=this._getNarrowedViewportRect(),this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();const n=this._originRect,e=this._overlayRect,i=this._viewportRect,r=this._containerRect,o=[];let s;for(let a of this._preferredPositions){let l=this._getOriginPoint(n,r,a),c=this._getOverlayPoint(l,e,a),d=this._getOverlayFit(c,e,i,a);if(d.isCompletelyWithinViewport)return this._isPushed=!1,void this._applyPosition(a,l);this._canFitWithFlexibleDimensions(d,c,i)?o.push({position:a,origin:l,overlayRect:e,boundingBoxRect:this._calculateBoundingBoxRect(l,a)}):(!s||s.overlayFit.visibleAreal&&(l=d,a=c)}return this._isPushed=!1,void this._applyPosition(a.position,a.origin)}if(this._canPush)return this._isPushed=!0,void this._applyPosition(s.position,s.originPoint);this._applyPosition(s.position,s.originPoint)}detach(){this._clearPanelClasses(),this._lastPosition=null,this._previousPushAmount=null,this._resizeSubscription.unsubscribe()}dispose(){this._isDisposed||(this._boundingBox&&Rp(this._boundingBox.style,{top:"",left:"",right:"",bottom:"",height:"",width:"",alignItems:"",justifyContent:""}),this._pane&&this._resetOverlayElementStyles(),this._overlayRef&&this._overlayRef.hostElement.classList.remove(DW),this.detach(),this._positionChanges.complete(),this._overlayRef=this._boundingBox=null,this._isDisposed=!0)}reapplyLastPosition(){if(this._isDisposed||!this._platform.isBrowser)return;const n=this._lastPosition;if(n){this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._viewportRect=this._getNarrowedViewportRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();const e=this._getOriginPoint(this._originRect,this._containerRect,n);this._applyPosition(n,e)}else this.apply()}withScrollableContainers(n){return this._scrollables=n,this}withPositions(n){return this._preferredPositions=n,-1===n.indexOf(this._lastPosition)&&(this._lastPosition=null),this._validatePositions(),this}withViewportMargin(n){return this._viewportMargin=n,this}withFlexibleDimensions(n=!0){return this._hasFlexibleDimensions=n,this}withGrowAfterOpen(n=!0){return this._growAfterOpen=n,this}withPush(n=!0){return this._canPush=n,this}withLockedPosition(n=!0){return this._positionLocked=n,this}setOrigin(n){return this._origin=n,this}withDefaultOffsetX(n){return this._offsetX=n,this}withDefaultOffsetY(n){return this._offsetY=n,this}withTransformOriginOn(n){return this._transformOriginSelector=n,this}_getOriginPoint(n,e,i){let r,o;if("center"==i.originX)r=n.left+n.width/2;else{const s=this._isRtl()?n.right:n.left,a=this._isRtl()?n.left:n.right;r="start"==i.originX?s:a}return e.left<0&&(r-=e.left),o="center"==i.originY?n.top+n.height/2:"top"==i.originY?n.top:n.bottom,e.top<0&&(o-=e.top),{x:r,y:o}}_getOverlayPoint(n,e,i){let r,o;return r="center"==i.overlayX?-e.width/2:"start"===i.overlayX?this._isRtl()?-e.width:0:this._isRtl()?0:-e.width,o="center"==i.overlayY?-e.height/2:"top"==i.overlayY?0:-e.height,{x:n.x+r,y:n.y+o}}_getOverlayFit(n,e,i,r){const o=LW(e);let{x:s,y:a}=n,l=this._getOffset(r,"x"),c=this._getOffset(r,"y");l&&(s+=l),c&&(a+=c);let h=0-a,m=a+o.height-i.height,A=this._subtractOverflows(o.width,0-s,s+o.width-i.width),v=this._subtractOverflows(o.height,h,m),x=A*v;return{visibleArea:x,isCompletelyWithinViewport:o.width*o.height===x,fitsInViewportVertically:v===o.height,fitsInViewportHorizontally:A==o.width}}_canFitWithFlexibleDimensions(n,e,i){if(this._hasFlexibleDimensions){const r=i.bottom-e.y,o=i.right-e.x,s=RW(this._overlayRef.getConfig().minHeight),a=RW(this._overlayRef.getConfig().minWidth);return(n.fitsInViewportVertically||null!=s&&s<=r)&&(n.fitsInViewportHorizontally||null!=a&&a<=o)}return!1}_pushOverlayOnScreen(n,e,i){if(this._previousPushAmount&&this._positionLocked)return{x:n.x+this._previousPushAmount.x,y:n.y+this._previousPushAmount.y};const r=LW(e),o=this._viewportRect,s=Math.max(n.x+r.width-o.width,0),a=Math.max(n.y+r.height-o.height,0),l=Math.max(o.top-i.top-n.y,0),c=Math.max(o.left-i.left-n.x,0);let d=0,u=0;return d=r.width<=o.width?c||-s:n.xA&&!this._isInitialRender&&!this._growAfterOpen&&(s=n.y-A/2)}if("end"===e.overlayX&&!r||"start"===e.overlayX&&r)h=i.width-n.x+2*this._viewportMargin,d=n.x-this._viewportMargin;else if("start"===e.overlayX&&!r||"end"===e.overlayX&&r)u=n.x,d=i.right-n.x;else{const m=Math.min(i.right-n.x+i.left,n.x),A=this._lastBoundingBoxSize.width;d=2*m,u=n.x-m,d>A&&!this._isInitialRender&&!this._growAfterOpen&&(u=n.x-A/2)}return{top:s,left:u,bottom:a,right:h,width:d,height:o}}_setBoundingBoxStyles(n,e){const i=this._calculateBoundingBoxRect(n,e);!this._isInitialRender&&!this._growAfterOpen&&(i.height=Math.min(i.height,this._lastBoundingBoxSize.height),i.width=Math.min(i.width,this._lastBoundingBoxSize.width));const r={};if(this._hasExactPosition())r.top=r.left="0",r.bottom=r.right=r.maxHeight=r.maxWidth="",r.width=r.height="100%";else{const o=this._overlayRef.getConfig().maxHeight,s=this._overlayRef.getConfig().maxWidth;r.height=os(i.height),r.top=os(i.top),r.bottom=os(i.bottom),r.width=os(i.width),r.left=os(i.left),r.right=os(i.right),r.alignItems="center"===e.overlayX?"center":"end"===e.overlayX?"flex-end":"flex-start",r.justifyContent="center"===e.overlayY?"center":"bottom"===e.overlayY?"flex-end":"flex-start",o&&(r.maxHeight=os(o)),s&&(r.maxWidth=os(s))}this._lastBoundingBoxSize=i,Rp(this._boundingBox.style,r)}_resetBoundingBoxStyles(){Rp(this._boundingBox.style,{top:"0",left:"0",right:"0",bottom:"0",height:"",width:"",alignItems:"",justifyContent:""})}_resetOverlayElementStyles(){Rp(this._pane.style,{top:"",left:"",bottom:"",right:"",position:"",transform:""})}_setOverlayElementStyles(n,e){const i={},r=this._hasExactPosition(),o=this._hasFlexibleDimensions,s=this._overlayRef.getConfig();if(r){const d=this._viewportRuler.getViewportScrollPosition();Rp(i,this._getExactOverlayY(e,n,d)),Rp(i,this._getExactOverlayX(e,n,d))}else i.position="static";let a="",l=this._getOffset(e,"x"),c=this._getOffset(e,"y");l&&(a+=`translateX(${l}px) `),c&&(a+=`translateY(${c}px)`),i.transform=a.trim(),s.maxHeight&&(r?i.maxHeight=os(s.maxHeight):o&&(i.maxHeight="")),s.maxWidth&&(r?i.maxWidth=os(s.maxWidth):o&&(i.maxWidth="")),Rp(this._pane.style,i)}_getExactOverlayY(n,e,i){let r={top:"",bottom:""},o=this._getOverlayPoint(e,this._overlayRect,n);return this._isPushed&&(o=this._pushOverlayOnScreen(o,this._overlayRect,i)),"bottom"===n.overlayY?r.bottom=this._document.documentElement.clientHeight-(o.y+this._overlayRect.height)+"px":r.top=os(o.y),r}_getExactOverlayX(n,e,i){let s,r={left:"",right:""},o=this._getOverlayPoint(e,this._overlayRect,n);return this._isPushed&&(o=this._pushOverlayOnScreen(o,this._overlayRect,i)),s=this._isRtl()?"end"===n.overlayX?"left":"right":"end"===n.overlayX?"right":"left","right"===s?r.right=this._document.documentElement.clientWidth-(o.x+this._overlayRect.width)+"px":r.left=os(o.x),r}_getScrollVisibility(){const n=this._getOriginRect(),e=this._pane.getBoundingClientRect(),i=this._scrollables.map(r=>r.getElementRef().nativeElement.getBoundingClientRect());return{isOriginClipped:IW(n,i),isOriginOutsideView:LR(n,i),isOverlayClipped:IW(e,i),isOverlayOutsideView:LR(e,i)}}_subtractOverflows(n,...e){return e.reduce((i,r)=>i-Math.max(r,0),n)}_getNarrowedViewportRect(){const n=this._document.documentElement.clientWidth,e=this._document.documentElement.clientHeight,i=this._viewportRuler.getViewportScrollPosition();return{top:i.top+this._viewportMargin,left:i.left+this._viewportMargin,right:i.left+n-this._viewportMargin,bottom:i.top+e-this._viewportMargin,width:n-2*this._viewportMargin,height:e-2*this._viewportMargin}}_isRtl(){return"rtl"===this._overlayRef.getDirection()}_hasExactPosition(){return!this._hasFlexibleDimensions||this._isPushed}_getOffset(n,e){return"x"===e?null==n.offsetX?this._offsetX:n.offsetX:null==n.offsetY?this._offsetY:n.offsetY}_validatePositions(){}_addPanelClasses(n){this._pane&&UM(n).forEach(e=>{""!==e&&-1===this._appliedPanelClasses.indexOf(e)&&(this._appliedPanelClasses.push(e),this._pane.classList.add(e))})}_clearPanelClasses(){this._pane&&(this._appliedPanelClasses.forEach(n=>{this._pane.classList.remove(n)}),this._appliedPanelClasses=[])}_getOriginRect(){const n=this._origin;if(n instanceof Un)return n.nativeElement.getBoundingClientRect();if(n instanceof Element)return n.getBoundingClientRect();const e=n.width||0,i=n.height||0;return{top:n.y,bottom:n.y+i,left:n.x,right:n.x+e,height:i,width:e}}}function Rp(t,n){for(let e in n)n.hasOwnProperty(e)&&(t[e]=n[e]);return t}function RW(t){if("number"!=typeof t&&null!=t){const[n,e]=t.split(Nye);return e&&"px"!==e?null:parseFloat(n)}return t||null}function LW(t){return{top:Math.floor(t.top),right:Math.floor(t.right),bottom:Math.floor(t.bottom),left:Math.floor(t.left),width:Math.floor(t.width),height:Math.floor(t.height)}}const PW="cdk-global-overlay-wrapper";class Hye{constructor(){this._cssPosition="static",this._topOffset="",this._bottomOffset="",this._alignItems="",this._xPosition="",this._xOffset="",this._width="",this._height="",this._isDisposed=!1}attach(n){const e=n.getConfig();this._overlayRef=n,this._width&&!e.width&&n.updateSize({width:this._width}),this._height&&!e.height&&n.updateSize({height:this._height}),n.hostElement.classList.add(PW),this._isDisposed=!1}top(n=""){return this._bottomOffset="",this._topOffset=n,this._alignItems="flex-start",this}left(n=""){return this._xOffset=n,this._xPosition="left",this}bottom(n=""){return this._topOffset="",this._bottomOffset=n,this._alignItems="flex-end",this}right(n=""){return this._xOffset=n,this._xPosition="right",this}start(n=""){return this._xOffset=n,this._xPosition="start",this}end(n=""){return this._xOffset=n,this._xPosition="end",this}width(n=""){return this._overlayRef?this._overlayRef.updateSize({width:n}):this._width=n,this}height(n=""){return this._overlayRef?this._overlayRef.updateSize({height:n}):this._height=n,this}centerHorizontally(n=""){return this.left(n),this._xPosition="center",this}centerVertically(n=""){return this.top(n),this._alignItems="center",this}apply(){if(!this._overlayRef||!this._overlayRef.hasAttached())return;const n=this._overlayRef.overlayElement.style,e=this._overlayRef.hostElement.style,i=this._overlayRef.getConfig(),{width:r,height:o,maxWidth:s,maxHeight:a}=i,l=!("100%"!==r&&"100vw"!==r||s&&"100%"!==s&&"100vw"!==s),c=!("100%"!==o&&"100vh"!==o||a&&"100%"!==a&&"100vh"!==a),d=this._xPosition,u=this._xOffset,h="rtl"===this._overlayRef.getConfig().direction;let m="",A="",v="";l?v="flex-start":"center"===d?(v="center",h?A=u:m=u):h?"left"===d||"end"===d?(v="flex-end",m=u):("right"===d||"start"===d)&&(v="flex-start",A=u):"left"===d||"start"===d?(v="flex-start",m=u):("right"===d||"end"===d)&&(v="flex-end",A=u),n.position=this._cssPosition,n.marginLeft=l?"0":m,n.marginTop=c?"0":this._topOffset,n.marginBottom=this._bottomOffset,n.marginRight=l?"0":A,e.justifyContent=v,e.alignItems=c?"flex-start":this._alignItems}dispose(){if(this._isDisposed||!this._overlayRef)return;const n=this._overlayRef.overlayElement.style,e=this._overlayRef.hostElement,i=e.style;e.classList.remove(PW),i.justifyContent=i.alignItems=n.marginTop=n.marginBottom=n.marginLeft=n.marginRight=n.position="",this._overlayRef=null,this._isDisposed=!0}}let Vye=(()=>{class t{constructor(e,i,r,o){this._viewportRuler=e,this._document=i,this._platform=r,this._overlayContainer=o}global(){return new Hye}flexibleConnectedTo(e){return new Oye(e,this._viewportRuler,this._document,this._platform,this._overlayContainer)}static{this.\u0275fac=function(i){return new(i||t)(oe(IR),oe(xi),oe(Or),oe(XM))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})(),Qye=0,_s=(()=>{class t{constructor(e,i,r,o,s,a,l,c,d,u,h,m){this.scrollStrategies=e,this._overlayContainer=i,this._componentFactoryResolver=r,this._positionBuilder=o,this._keyboardDispatcher=s,this._injector=a,this._ngZone=l,this._document=c,this._directionality=d,this._location=u,this._outsideClickDispatcher=h,this._animationsModuleType=m}create(e){const i=this._createHostElement(),r=this._createPaneElement(i),o=this._createPortalOutlet(r),s=new KM(e);return s.direction=s.direction||this._directionality.value,new YM(o,i,r,s,this._ngZone,this._keyboardDispatcher,this._document,this._location,this._outsideClickDispatcher,"NoopAnimations"===this._animationsModuleType)}position(){return this._positionBuilder}_createPaneElement(e){const i=this._document.createElement("div");return i.id="cdk-overlay-"+Qye++,i.classList.add("cdk-overlay-pane"),e.appendChild(i),i}_createHostElement(){const e=this._document.createElement("div");return this._overlayContainer.getContainerElement().appendChild(e),e}_createPortalOutlet(e){return this._appRef||(this._appRef=this._injector.get(Sf)),new Aye(e,this._componentFactoryResolver,this._appRef,this._injector,this._document)}static{this.\u0275fac=function(i){return new(i||t)(oe(Dye),oe(XM),oe(Qg),oe(Vye),oe(Lye),oe(Uo),oe(Fn),oe(xi),oe(th),oe(uD),oe(Pye),oe(ts,8))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();const zye=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"}],NW=new ot("cdk-connected-overlay-scroll-strategy",{providedIn:"root",factory:()=>{const t=Ut(_s);return()=>t.scrollStrategies.reposition()}});let PR=(()=>{class t{constructor(e){this.elementRef=e}static{this.\u0275fac=function(i){return new(i||t)(W(Un))}}static{this.\u0275dir=zt({type:t,selectors:[["","cdk-overlay-origin",""],["","overlay-origin",""],["","cdkOverlayOrigin",""]],exportAs:["cdkOverlayOrigin"],standalone:!0})}}return t})(),OW=(()=>{class t{get offsetX(){return this._offsetX}set offsetX(e){this._offsetX=e,this._position&&this._updatePositionStrategy(this._position)}get offsetY(){return this._offsetY}set offsetY(e){this._offsetY=e,this._position&&this._updatePositionStrategy(this._position)}get disposeOnNavigation(){return this._disposeOnNavigation}set disposeOnNavigation(e){this._disposeOnNavigation=e}constructor(e,i,r,o,s){this._overlay=e,this._dir=s,this._backdropSubscription=on.EMPTY,this._attachSubscription=on.EMPTY,this._detachSubscription=on.EMPTY,this._positionSubscription=on.EMPTY,this._disposeOnNavigation=!1,this._ngZone=Ut(Fn),this.viewportMargin=0,this.open=!1,this.disableClose=!1,this.hasBackdrop=!1,this.lockPosition=!1,this.flexibleDimensions=!1,this.growAfterOpen=!1,this.push=!1,this.backdropClick=new Ln,this.positionChange=new Ln,this.attach=new Ln,this.detach=new Ln,this.overlayKeydown=new Ln,this.overlayOutsideClick=new Ln,this._templatePortal=new m1(i,r),this._scrollStrategyFactory=o,this.scrollStrategy=this._scrollStrategyFactory()}get overlayRef(){return this._overlayRef}get dir(){return this._dir?this._dir.value:"ltr"}ngOnDestroy(){this._attachSubscription.unsubscribe(),this._detachSubscription.unsubscribe(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this._overlayRef&&this._overlayRef.dispose()}ngOnChanges(e){this._position&&(this._updatePositionStrategy(this._position),this._overlayRef.updateSize({width:this.width,minWidth:this.minWidth,height:this.height,minHeight:this.minHeight}),e.origin&&this.open&&this._position.apply()),e.open&&(this.open?this._attachOverlay():this._detachOverlay())}_createOverlay(){(!this.positions||!this.positions.length)&&(this.positions=zye);const e=this._overlayRef=this._overlay.create(this._buildConfig());this._attachSubscription=e.attachments().subscribe(()=>this.attach.emit()),this._detachSubscription=e.detachments().subscribe(()=>this.detach.emit()),e.keydownEvents().subscribe(i=>{this.overlayKeydown.next(i),27===i.keyCode&&!this.disableClose&&!Pc(i)&&(i.preventDefault(),this._detachOverlay())}),this._overlayRef.outsidePointerEvents().subscribe(i=>{this.overlayOutsideClick.next(i)})}_buildConfig(){const e=this._position=this.positionStrategy||this._createPositionStrategy(),i=new KM({direction:this._dir,positionStrategy:e,scrollStrategy:this.scrollStrategy,hasBackdrop:this.hasBackdrop,disposeOnNavigation:this.disposeOnNavigation});return(this.width||0===this.width)&&(i.width=this.width),(this.height||0===this.height)&&(i.height=this.height),(this.minWidth||0===this.minWidth)&&(i.minWidth=this.minWidth),(this.minHeight||0===this.minHeight)&&(i.minHeight=this.minHeight),this.backdropClass&&(i.backdropClass=this.backdropClass),this.panelClass&&(i.panelClass=this.panelClass),i}_updatePositionStrategy(e){const i=this.positions.map(r=>({originX:r.originX,originY:r.originY,overlayX:r.overlayX,overlayY:r.overlayY,offsetX:r.offsetX||this.offsetX,offsetY:r.offsetY||this.offsetY,panelClass:r.panelClass||void 0}));return e.setOrigin(this._getFlexibleConnectedPositionStrategyOrigin()).withPositions(i).withFlexibleDimensions(this.flexibleDimensions).withPush(this.push).withGrowAfterOpen(this.growAfterOpen).withViewportMargin(this.viewportMargin).withLockedPosition(this.lockPosition).withTransformOriginOn(this.transformOriginSelector)}_createPositionStrategy(){const e=this._overlay.position().flexibleConnectedTo(this._getFlexibleConnectedPositionStrategyOrigin());return this._updatePositionStrategy(e),e}_getFlexibleConnectedPositionStrategyOrigin(){return this.origin instanceof PR?this.origin.elementRef:this.origin}_attachOverlay(){this._overlayRef?this._overlayRef.getConfig().hasBackdrop=this.hasBackdrop:this._createOverlay(),this._overlayRef.hasAttached()||this._overlayRef.attach(this._templatePortal),this.hasBackdrop?this._backdropSubscription=this._overlayRef.backdropClick().subscribe(e=>{this.backdropClick.emit(e)}):this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this.positionChange.observers.length>0&&(this._positionSubscription=this._position.positionChanges.pipe(function mye(t,n=!1){return Be((e,i)=>{let r=0;e.subscribe(Je(i,o=>{const s=t(o,r++);(s||n)&&i.next(o),!s&&i.complete()}))})}(()=>this.positionChange.observers.length>0)).subscribe(e=>{this._ngZone.run(()=>this.positionChange.emit(e)),0===this.positionChange.observers.length&&this._positionSubscription.unsubscribe()}))}_detachOverlay(){this._overlayRef&&this._overlayRef.detach(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe()}static{this.\u0275fac=function(i){return new(i||t)(W(_s),W(Cl),W(va),W(NW),W(th,8))}}static{this.\u0275dir=zt({type:t,selectors:[["","cdk-connected-overlay",""],["","connected-overlay",""],["","cdkConnectedOverlay",""]],inputs:{origin:[bt.None,"cdkConnectedOverlayOrigin","origin"],positions:[bt.None,"cdkConnectedOverlayPositions","positions"],positionStrategy:[bt.None,"cdkConnectedOverlayPositionStrategy","positionStrategy"],offsetX:[bt.None,"cdkConnectedOverlayOffsetX","offsetX"],offsetY:[bt.None,"cdkConnectedOverlayOffsetY","offsetY"],width:[bt.None,"cdkConnectedOverlayWidth","width"],height:[bt.None,"cdkConnectedOverlayHeight","height"],minWidth:[bt.None,"cdkConnectedOverlayMinWidth","minWidth"],minHeight:[bt.None,"cdkConnectedOverlayMinHeight","minHeight"],backdropClass:[bt.None,"cdkConnectedOverlayBackdropClass","backdropClass"],panelClass:[bt.None,"cdkConnectedOverlayPanelClass","panelClass"],viewportMargin:[bt.None,"cdkConnectedOverlayViewportMargin","viewportMargin"],scrollStrategy:[bt.None,"cdkConnectedOverlayScrollStrategy","scrollStrategy"],open:[bt.None,"cdkConnectedOverlayOpen","open"],disableClose:[bt.None,"cdkConnectedOverlayDisableClose","disableClose"],transformOriginSelector:[bt.None,"cdkConnectedOverlayTransformOriginOn","transformOriginSelector"],hasBackdrop:[bt.HasDecoratorInputTransform,"cdkConnectedOverlayHasBackdrop","hasBackdrop",qn],lockPosition:[bt.HasDecoratorInputTransform,"cdkConnectedOverlayLockPosition","lockPosition",qn],flexibleDimensions:[bt.HasDecoratorInputTransform,"cdkConnectedOverlayFlexibleDimensions","flexibleDimensions",qn],growAfterOpen:[bt.HasDecoratorInputTransform,"cdkConnectedOverlayGrowAfterOpen","growAfterOpen",qn],push:[bt.HasDecoratorInputTransform,"cdkConnectedOverlayPush","push",qn],disposeOnNavigation:[bt.HasDecoratorInputTransform,"cdkConnectedOverlayDisposeOnNavigation","disposeOnNavigation",qn]},outputs:{backdropClick:"backdropClick",positionChange:"positionChange",attach:"attach",detach:"detach",overlayKeydown:"overlayKeydown",overlayOutsideClick:"overlayOutsideClick"},exportAs:["cdkConnectedOverlay"],standalone:!0,features:[Ho,cr]})}}return t})();const qye={provide:NW,deps:[_s],useFactory:function Gye(t){return()=>t.scrollStrategies.reposition()}};let g1=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({providers:[_s,qye],imports:[u1,p1,TW,TW]})}}return t})();function b1(t){return Ii((n,e)=>t<=e)}let UW=(()=>{class t{create(e){return typeof MutationObserver>"u"?null:new MutationObserver(e)}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})(),Wye=(()=>{class t{constructor(e){this._mutationObserverFactory=e,this._observedElements=new Map}ngOnDestroy(){this._observedElements.forEach((e,i)=>this._cleanupObserver(i))}observe(e){const i=eh(e);return new $i(r=>{const s=this._observeElement(i).subscribe(r);return()=>{s.unsubscribe(),this._unobserveElement(i)}})}_observeElement(e){if(this._observedElements.has(e))this._observedElements.get(e).count++;else{const i=new Yt,r=this._mutationObserverFactory.create(o=>i.next(o));r&&r.observe(e,{characterData:!0,childList:!0,subtree:!0}),this._observedElements.set(e,{observer:r,stream:i,count:1})}return this._observedElements.get(e).stream}_unobserveElement(e){this._observedElements.has(e)&&(this._observedElements.get(e).count--,this._observedElements.get(e).count||this._cleanupObserver(e))}_cleanupObserver(e){if(this._observedElements.has(e)){const{observer:i,stream:r}=this._observedElements.get(e);i&&i.disconnect(),r.complete(),this._observedElements.delete(e)}}static{this.\u0275fac=function(i){return new(i||t)(oe(UW))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})(),HW=(()=>{class t{get disabled(){return this._disabled}set disabled(e){this._disabled=e,this._disabled?this._unsubscribe():this._subscribe()}get debounce(){return this._debounce}set debounce(e){this._debounce=Qf(e),this._subscribe()}constructor(e,i,r){this._contentObserver=e,this._elementRef=i,this._ngZone=r,this.event=new Ln,this._disabled=!1,this._currentSubscription=null}ngAfterContentInit(){!this._currentSubscription&&!this.disabled&&this._subscribe()}ngOnDestroy(){this._unsubscribe()}_subscribe(){this._unsubscribe();const e=this._contentObserver.observe(this._elementRef);this._ngZone.runOutsideAngular(()=>{this._currentSubscription=(this.debounce?e.pipe(S0(this.debounce)):e).subscribe(this.event)})}_unsubscribe(){this._currentSubscription?.unsubscribe()}static{this.\u0275fac=function(i){return new(i||t)(W(Wye),W(Un),W(Fn))}}static{this.\u0275dir=zt({type:t,selectors:[["","cdkObserveContent",""]],inputs:{disabled:[bt.HasDecoratorInputTransform,"cdkObserveContentDisabled","disabled",qn],debounce:"debounce"},outputs:{event:"cdkObserveContent"},exportAs:["cdkObserveContent"],standalone:!0,features:[Ho]})}}return t})(),NR=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({providers:[UW]})}}return t})();function nh(...t){const n=yy(t),e=OD(t),{args:i,keys:r}=sG(t);if(0===i.length)return xp([],n);const o=new $i(function $ye(t,n,e=cs){return i=>{VW(n,()=>{const{length:r}=t,o=new Array(r);let s=r,a=r;for(let l=0;l{const c=xp(t[l],n);let d=!1;c.subscribe(Je(i,u=>{o[l]=u,d||(d=!0,a--),a||i.next(e(o.slice()))},()=>{--s||i.complete()}))},i)},i)}}(i,n,r?s=>aG(r,s):cs));return e?o.pipe(YD(e)):o}function VW(t,n,e){t?Gu(e,t,n):n()}function ZM(...t){return function jye(){return lq(1)}()(xp(t,yy(t)))}function Qd(...t){const n=yy(t);return Be((e,i)=>{(n?ZM(t,e,n):ZM(t,e)).subscribe(i)})}const QW=new Set;let Lp,Kye=(()=>{class t{constructor(e,i){this._platform=e,this._nonce=i,this._matchMedia=this._platform.isBrowser&&window.matchMedia?window.matchMedia.bind(window):Yye}matchMedia(e){return(this._platform.WEBKIT||this._platform.BLINK)&&function Xye(t,n){if(!QW.has(t))try{Lp||(Lp=document.createElement("style"),n&&Lp.setAttribute("nonce",n),Lp.setAttribute("type","text/css"),document.head.appendChild(Lp)),Lp.sheet&&(Lp.sheet.insertRule(`@media ${t} {body{ }}`,0),QW.add(t))}catch(e){console.error(e)}}(e,this._nonce),this._matchMedia(e)}static{this.\u0275fac=function(i){return new(i||t)(oe(Or),oe(iI,8))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();function Yye(t){return{matches:"all"===t||""===t,media:t,addListener:()=>{},removeListener:()=>{}}}let Zye=(()=>{class t{constructor(e,i){this._mediaMatcher=e,this._zone=i,this._queries=new Map,this._destroySubject=new Yt}ngOnDestroy(){this._destroySubject.next(),this._destroySubject.complete()}isMatched(e){return zW(UM(e)).some(r=>this._registerQuery(r).mql.matches)}observe(e){let o=nh(zW(UM(e)).map(s=>this._registerQuery(s).observable));return o=ZM(o.pipe(qo(1)),o.pipe(b1(1),S0(0))),o.pipe(Et(s=>{const a={matches:!1,breakpoints:{}};return s.forEach(({matches:l,query:c})=>{a.matches=a.matches||l,a.breakpoints[c]=l}),a}))}_registerQuery(e){if(this._queries.has(e))return this._queries.get(e);const i=this._mediaMatcher.matchMedia(e),o={observable:new $i(s=>{const a=l=>this._zone.run(()=>s.next(l));return i.addListener(a),()=>{i.removeListener(a)}}).pipe(Qd(i),Et(({matches:s})=>({query:e,matches:s})),Ur(this._destroySubject)),mql:i};return this._queries.set(e,o),o}static{this.\u0275fac=function(i){return new(i||t)(oe(Kye),oe(Fn))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();function zW(t){return t.map(n=>n.split(",")).reduce((n,e)=>n.concat(e)).map(n=>n.trim())}function qW(t,n,e){const i=JM(t,n);e=e.trim(),!i.some(r=>r.trim()===e)&&(i.push(e),t.setAttribute(n,i.join(" ")))}function OR(t,n,e){const i=JM(t,n);e=e.trim();const r=i.filter(o=>o!==e);r.length?t.setAttribute(n,r.join(" ")):t.removeAttribute(n)}function JM(t,n){return t.getAttribute(n)?.match(/\S+/g)??[]}const WW="cdk-describedby-message",eS="cdk-describedby-host";let UR=0,Jye=(()=>{class t{constructor(e,i){this._platform=i,this._messageRegistry=new Map,this._messagesContainer=null,this._id=""+UR++,this._document=e,this._id=Ut(Cv)+"-"+UR++}describe(e,i,r){if(!this._canBeDescribed(e,i))return;const o=HR(i,r);"string"!=typeof i?($W(i,this._id),this._messageRegistry.set(o,{messageElement:i,referenceCount:0})):this._messageRegistry.has(o)||this._createMessageElement(i,r),this._isElementDescribedByMessage(e,o)||this._addMessageReference(e,o)}removeDescription(e,i,r){if(!i||!this._isElementNode(e))return;const o=HR(i,r);if(this._isElementDescribedByMessage(e,o)&&this._removeMessageReference(e,o),"string"==typeof i){const s=this._messageRegistry.get(o);s&&0===s.referenceCount&&this._deleteMessageElement(o)}0===this._messagesContainer?.childNodes.length&&(this._messagesContainer.remove(),this._messagesContainer=null)}ngOnDestroy(){const e=this._document.querySelectorAll(`[${eS}="${this._id}"]`);for(let i=0;i0!=r.indexOf(WW));e.setAttribute("aria-describedby",i.join(" "))}_addMessageReference(e,i){const r=this._messageRegistry.get(i);qW(e,"aria-describedby",r.messageElement.id),e.setAttribute(eS,this._id),r.referenceCount++}_removeMessageReference(e,i){const r=this._messageRegistry.get(i);r.referenceCount--,OR(e,"aria-describedby",r.messageElement.id),e.removeAttribute(eS)}_isElementDescribedByMessage(e,i){const r=JM(e,"aria-describedby"),o=this._messageRegistry.get(i),s=o&&o.messageElement.id;return!!s&&-1!=r.indexOf(s)}_canBeDescribed(e,i){if(!this._isElementNode(e))return!1;if(i&&"object"==typeof i)return!0;const r=null==i?"":`${i}`.trim(),o=e.getAttribute("aria-label");return!(!r||o&&o.trim()===r)}_isElementNode(e){return e.nodeType===this._document.ELEMENT_NODE}static{this.\u0275fac=function(i){return new(i||t)(oe(xi),oe(Or))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();function HR(t,n){return"string"==typeof t?`${n||""}/${t}`:t}function $W(t,n){t.id||(t.id=`${WW}-${n}-${UR++}`)}class jW{constructor(n,e){this._items=n,this._activeItemIndex=-1,this._activeItem=null,this._wrap=!1,this._letterKeyStream=new Yt,this._typeaheadSubscription=on.EMPTY,this._vertical=!0,this._allowedModifierKeys=[],this._homeAndEnd=!1,this._pageUpAndDown={enabled:!1,delta:10},this._skipPredicateFn=i=>i.disabled,this._pressedLetters=[],this.tabOut=new Yt,this.change=new Yt,n instanceof Lu?this._itemChangesSubscription=n.changes.subscribe(i=>this._itemsChanged(i.toArray())):G2(n)&&(this._effectRef=function MQ(t,n){Td("NgSignals"),!n?.injector&&_d();const e=n?.injector??Ut(Uo),i=!0!==n?.manualCleanup?e.get(xd):null,r=new mme(e.get(ume),t,typeof Zone>"u"?null:Zone.current,i,e,n?.allowSignalWrites??!1),o=e.get(Ao,null,{optional:!0});return o&&8&o._lView[Vn]?(o._lView[pg]??=[]).push(r.watcher.notify):r.watcher.notify(),r}(()=>this._itemsChanged(n()),{injector:e}))}skipPredicate(n){return this._skipPredicateFn=n,this}withWrap(n=!0){return this._wrap=n,this}withVerticalOrientation(n=!0){return this._vertical=n,this}withHorizontalOrientation(n){return this._horizontal=n,this}withAllowedModifierKeys(n){return this._allowedModifierKeys=n,this}withTypeAhead(n=200){return this._typeaheadSubscription.unsubscribe(),this._typeaheadSubscription=this._letterKeyStream.pipe(Nr(e=>this._pressedLetters.push(e)),S0(n),Ii(()=>this._pressedLetters.length>0),Et(()=>this._pressedLetters.join(""))).subscribe(e=>{const i=this._getItemsArray();for(let r=1;r!n[o]||this._allowedModifierKeys.indexOf(o)>-1);switch(e){case 9:return void this.tabOut.next();case 40:if(this._vertical&&r){this.setNextItemActive();break}return;case 38:if(this._vertical&&r){this.setPreviousItemActive();break}return;case 39:if(this._horizontal&&r){"rtl"===this._horizontal?this.setPreviousItemActive():this.setNextItemActive();break}return;case 37:if(this._horizontal&&r){"rtl"===this._horizontal?this.setNextItemActive():this.setPreviousItemActive();break}return;case 36:if(this._homeAndEnd&&r){this.setFirstItemActive();break}return;case 35:if(this._homeAndEnd&&r){this.setLastItemActive();break}return;case 33:if(this._pageUpAndDown.enabled&&r){const o=this._activeItemIndex-this._pageUpAndDown.delta;this._setActiveItemByIndex(o>0?o:0,1);break}return;case 34:if(this._pageUpAndDown.enabled&&r){const o=this._activeItemIndex+this._pageUpAndDown.delta,s=this._getItemsArray().length;this._setActiveItemByIndex(o=65&&e<=90||e>=48&&e<=57)&&this._letterKeyStream.next(String.fromCharCode(e))))}this._pressedLetters=[],n.preventDefault()}get activeItemIndex(){return this._activeItemIndex}get activeItem(){return this._activeItem}isTyping(){return this._pressedLetters.length>0}setFirstItemActive(){this._setActiveItemByIndex(0,1)}setLastItemActive(){this._setActiveItemByIndex(this._items.length-1,-1)}setNextItemActive(){this._activeItemIndex<0?this.setFirstItemActive():this._setActiveItemByDelta(1)}setPreviousItemActive(){this._activeItemIndex<0&&this._wrap?this.setLastItemActive():this._setActiveItemByDelta(-1)}updateActiveItem(n){const e=this._getItemsArray(),i="number"==typeof n?n:e.indexOf(n);this._activeItem=e[i]??null,this._activeItemIndex=i}destroy(){this._typeaheadSubscription.unsubscribe(),this._itemChangesSubscription?.unsubscribe(),this._effectRef?.destroy(),this._letterKeyStream.complete(),this.tabOut.complete(),this.change.complete(),this._pressedLetters=[]}_setActiveItemByDelta(n){this._wrap?this._setActiveInWrapMode(n):this._setActiveInDefaultMode(n)}_setActiveInWrapMode(n){const e=this._getItemsArray();for(let i=1;i<=e.length;i++){const r=(this._activeItemIndex+n*i+e.length)%e.length;if(!this._skipPredicateFn(e[r]))return void this.setActiveItem(r)}}_setActiveInDefaultMode(n){this._setActiveItemByIndex(this._activeItemIndex+n,n)}_setActiveItemByIndex(n,e){const i=this._getItemsArray();if(i[n]){for(;this._skipPredicateFn(i[n]);)if(!i[n+=e])return;this.setActiveItem(n)}}_getItemsArray(){return G2(this._items)?this._items():this._items instanceof Lu?this._items.toArray():this._items}_itemsChanged(n){if(this._activeItem){const e=n.indexOf(this._activeItem);e>-1&&e!==this._activeItemIndex&&(this._activeItemIndex=e)}}}class e1e extends jW{setActiveItem(n){this.activeItem&&this.activeItem.setInactiveStyles(),super.setActiveItem(n),this.activeItem&&this.activeItem.setActiveStyles()}}class VR extends jW{constructor(){super(...arguments),this._origin="program"}setFocusOrigin(n){return this._origin=n,this}setActiveItem(n){super.setActiveItem(n),this.activeItem&&this.activeItem.focus(this._origin)}}let QR=(()=>{class t{constructor(e){this._platform=e}isDisabled(e){return e.hasAttribute("disabled")}isVisible(e){return function n1e(t){return!!(t.offsetWidth||t.offsetHeight||"function"==typeof t.getClientRects&&t.getClientRects().length)}(e)&&"visible"===getComputedStyle(e).visibility}isTabbable(e){if(!this._platform.isBrowser)return!1;const i=function t1e(t){try{return t.frameElement}catch{return null}}(function d1e(t){return t.ownerDocument&&t.ownerDocument.defaultView||window}(e));if(i&&(-1===XW(i)||!this.isVisible(i)))return!1;let r=e.nodeName.toLowerCase(),o=XW(e);return e.hasAttribute("contenteditable")?-1!==o:!("iframe"===r||"object"===r||this._platform.WEBKIT&&this._platform.IOS&&!function l1e(t){let n=t.nodeName.toLowerCase(),e="input"===n&&t.type;return"text"===e||"password"===e||"select"===n||"textarea"===n}(e))&&("audio"===r?!!e.hasAttribute("controls")&&-1!==o:"video"===r?-1!==o&&(null!==o||this._platform.FIREFOX||e.hasAttribute("controls")):e.tabIndex>=0)}isFocusable(e,i){return function c1e(t){return!function r1e(t){return function s1e(t){return"input"==t.nodeName.toLowerCase()}(t)&&"hidden"==t.type}(t)&&(function i1e(t){let n=t.nodeName.toLowerCase();return"input"===n||"select"===n||"button"===n||"textarea"===n}(t)||function o1e(t){return function a1e(t){return"a"==t.nodeName.toLowerCase()}(t)&&t.hasAttribute("href")}(t)||t.hasAttribute("contenteditable")||KW(t))}(e)&&!this.isDisabled(e)&&(i?.ignoreVisibility||this.isVisible(e))}static{this.\u0275fac=function(i){return new(i||t)(oe(Or))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();function KW(t){if(!t.hasAttribute("tabindex")||void 0===t.tabIndex)return!1;let n=t.getAttribute("tabindex");return!(!n||isNaN(parseInt(n,10)))}function XW(t){if(!KW(t))return null;const n=parseInt(t.getAttribute("tabindex")||"",10);return isNaN(n)?-1:n}class YW{get enabled(){return this._enabled}set enabled(n){this._enabled=n,this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(n,this._startAnchor),this._toggleAnchorTabIndex(n,this._endAnchor))}constructor(n,e,i,r,o=!1){this._element=n,this._checker=e,this._ngZone=i,this._document=r,this._hasAttached=!1,this.startAnchorListener=()=>this.focusLastTabbableElement(),this.endAnchorListener=()=>this.focusFirstTabbableElement(),this._enabled=!0,o||this.attachAnchors()}destroy(){const n=this._startAnchor,e=this._endAnchor;n&&(n.removeEventListener("focus",this.startAnchorListener),n.remove()),e&&(e.removeEventListener("focus",this.endAnchorListener),e.remove()),this._startAnchor=this._endAnchor=null,this._hasAttached=!1}attachAnchors(){return!!this._hasAttached||(this._ngZone.runOutsideAngular(()=>{this._startAnchor||(this._startAnchor=this._createAnchor(),this._startAnchor.addEventListener("focus",this.startAnchorListener)),this._endAnchor||(this._endAnchor=this._createAnchor(),this._endAnchor.addEventListener("focus",this.endAnchorListener))}),this._element.parentNode&&(this._element.parentNode.insertBefore(this._startAnchor,this._element),this._element.parentNode.insertBefore(this._endAnchor,this._element.nextSibling),this._hasAttached=!0),this._hasAttached)}focusInitialElementWhenReady(n){return new Promise(e=>{this._executeOnStable(()=>e(this.focusInitialElement(n)))})}focusFirstTabbableElementWhenReady(n){return new Promise(e=>{this._executeOnStable(()=>e(this.focusFirstTabbableElement(n)))})}focusLastTabbableElementWhenReady(n){return new Promise(e=>{this._executeOnStable(()=>e(this.focusLastTabbableElement(n)))})}_getRegionBoundary(n){const e=this._element.querySelectorAll(`[cdk-focus-region-${n}], [cdkFocusRegion${n}], [cdk-focus-${n}]`);return"start"==n?e.length?e[0]:this._getFirstTabbableElement(this._element):e.length?e[e.length-1]:this._getLastTabbableElement(this._element)}focusInitialElement(n){const e=this._element.querySelector("[cdk-focus-initial], [cdkFocusInitial]");if(e){if(!this._checker.isFocusable(e)){const i=this._getFirstTabbableElement(e);return i?.focus(n),!!i}return e.focus(n),!0}return this.focusFirstTabbableElement(n)}focusFirstTabbableElement(n){const e=this._getRegionBoundary("start");return e&&e.focus(n),!!e}focusLastTabbableElement(n){const e=this._getRegionBoundary("end");return e&&e.focus(n),!!e}hasAttached(){return this._hasAttached}_getFirstTabbableElement(n){if(this._checker.isFocusable(n)&&this._checker.isTabbable(n))return n;const e=n.children;for(let i=0;i=0;i--){const r=e[i].nodeType===this._document.ELEMENT_NODE?this._getLastTabbableElement(e[i]):null;if(r)return r}return null}_createAnchor(){const n=this._document.createElement("div");return this._toggleAnchorTabIndex(this._enabled,n),n.classList.add("cdk-visually-hidden"),n.classList.add("cdk-focus-trap-anchor"),n.setAttribute("aria-hidden","true"),n}_toggleAnchorTabIndex(n,e){n?e.setAttribute("tabindex","0"):e.removeAttribute("tabindex")}toggleAnchors(n){this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(n,this._startAnchor),this._toggleAnchorTabIndex(n,this._endAnchor))}_executeOnStable(n){this._ngZone.isStable?n():this._ngZone.onStable.pipe(qo(1)).subscribe(n)}}let ZW=(()=>{class t{constructor(e,i,r){this._checker=e,this._ngZone=i,this._document=r}create(e,i=!1){return new YW(e,this._checker,this._ngZone,this._document,i)}static{this.\u0275fac=function(i){return new(i||t)(oe(QR),oe(Fn),oe(xi))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();function zR(t){return 0===t.buttons||0===t.detail}function GR(t){const n=t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0];return!(!n||-1!==n.identifier||null!=n.radiusX&&1!==n.radiusX||null!=n.radiusY&&1!==n.radiusY)}const u1e=new ot("cdk-input-modality-detector-options"),h1e={ignoreKeys:[18,17,224,91,16]},R0=Bp({passive:!0,capture:!0});let f1e=(()=>{class t{get mostRecentModality(){return this._modality.value}constructor(e,i,r,o){this._platform=e,this._mostRecentTarget=null,this._modality=new De(null),this._lastTouchMs=0,this._onKeydown=s=>{this._options?.ignoreKeys?.some(a=>a===s.keyCode)||(this._modality.next("keyboard"),this._mostRecentTarget=zf(s))},this._onMousedown=s=>{Date.now()-this._lastTouchMs<650||(this._modality.next(zR(s)?"keyboard":"mouse"),this._mostRecentTarget=zf(s))},this._onTouchstart=s=>{GR(s)?this._modality.next("keyboard"):(this._lastTouchMs=Date.now(),this._modality.next("touch"),this._mostRecentTarget=zf(s))},this._options={...h1e,...o},this.modalityDetected=this._modality.pipe(b1(1)),this.modalityChanged=this.modalityDetected.pipe(Ly()),e.isBrowser&&i.runOutsideAngular(()=>{r.addEventListener("keydown",this._onKeydown,R0),r.addEventListener("mousedown",this._onMousedown,R0),r.addEventListener("touchstart",this._onTouchstart,R0)})}ngOnDestroy(){this._modality.complete(),this._platform.isBrowser&&(document.removeEventListener("keydown",this._onKeydown,R0),document.removeEventListener("mousedown",this._onMousedown,R0),document.removeEventListener("touchstart",this._onTouchstart,R0))}static{this.\u0275fac=function(i){return new(i||t)(oe(Or),oe(Fn),oe(xi),oe(u1e,8))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();const m1e=new ot("liveAnnouncerElement",{providedIn:"root",factory:function p1e(){return null}}),A1e=new ot("LIVE_ANNOUNCER_DEFAULT_OPTIONS");let g1e=0,b1e=(()=>{class t{constructor(e,i,r,o){this._ngZone=i,this._defaultOptions=o,this._document=r,this._liveElement=e||this._createLiveElement()}announce(e,...i){const r=this._defaultOptions;let o,s;return 1===i.length&&"number"==typeof i[0]?s=i[0]:[o,s]=i,this.clear(),clearTimeout(this._previousTimeout),o||(o=r&&r.politeness?r.politeness:"polite"),null==s&&r&&(s=r.duration),this._liveElement.setAttribute("aria-live",o),this._liveElement.id&&this._exposeAnnouncerToModals(this._liveElement.id),this._ngZone.runOutsideAngular(()=>(this._currentPromise||(this._currentPromise=new Promise(a=>this._currentResolve=a)),clearTimeout(this._previousTimeout),this._previousTimeout=setTimeout(()=>{this._liveElement.textContent=e,"number"==typeof s&&(this._previousTimeout=setTimeout(()=>this.clear(),s)),this._currentResolve?.(),this._currentPromise=this._currentResolve=void 0},100),this._currentPromise))}clear(){this._liveElement&&(this._liveElement.textContent="")}ngOnDestroy(){clearTimeout(this._previousTimeout),this._liveElement?.remove(),this._liveElement=null,this._currentResolve?.(),this._currentPromise=this._currentResolve=void 0}_createLiveElement(){const e="cdk-live-announcer-element",i=this._document.getElementsByClassName(e),r=this._document.createElement("div");for(let o=0;o .cdk-overlay-container [aria-modal="true"]');for(let r=0;r{class t{constructor(e,i,r,o,s){this._ngZone=e,this._platform=i,this._inputModalityDetector=r,this._origin=null,this._windowFocused=!1,this._originFromTouchInteraction=!1,this._elementInfo=new Map,this._monitoredElementCount=0,this._rootNodeFocusListenerCount=new Map,this._windowFocusListener=()=>{this._windowFocused=!0,this._windowFocusTimeoutId=window.setTimeout(()=>this._windowFocused=!1)},this._stopInputModalityDetector=new Yt,this._rootNodeFocusAndBlurListener=a=>{for(let c=zf(a);c;c=c.parentElement)"focus"===a.type?this._onFocus(a,c):this._onBlur(a,c)},this._document=o,this._detectionMode=s?.detectionMode||tS.IMMEDIATE}monitor(e,i=!1){const r=eh(e);if(!this._platform.isBrowser||1!==r.nodeType)return nl();const o=function aye(t){if(function sye(){if(null==FR){const t=typeof document<"u"?document.head:null;FR=!(!t||!t.createShadowRoot&&!t.attachShadow)}return FR}()){const n=t.getRootNode?t.getRootNode():null;if(typeof ShadowRoot<"u"&&ShadowRoot&&n instanceof ShadowRoot)return n}return null}(r)||this._getDocument(),s=this._elementInfo.get(r);if(s)return i&&(s.checkChildren=!0),s.subject;const a={checkChildren:i,subject:new Yt,rootNode:o};return this._elementInfo.set(r,a),this._registerGlobalListeners(a),a.subject}stopMonitoring(e){const i=eh(e),r=this._elementInfo.get(i);r&&(r.subject.complete(),this._setClasses(i),this._elementInfo.delete(i),this._removeGlobalListeners(r))}focusVia(e,i,r){const o=eh(e);o===this._getDocument().activeElement?this._getClosestElementsInfo(o).forEach(([a,l])=>this._originChanged(a,i,l)):(this._setOrigin(i),"function"==typeof o.focus&&o.focus(r))}ngOnDestroy(){this._elementInfo.forEach((e,i)=>this.stopMonitoring(i))}_getDocument(){return this._document||document}_getWindow(){return this._getDocument().defaultView||window}_getFocusOrigin(e){return this._origin?this._originFromTouchInteraction?this._shouldBeAttributedToTouch(e)?"touch":"program":this._origin:this._windowFocused&&this._lastFocusOrigin?this._lastFocusOrigin:e&&this._isLastInteractionFromInputLabel(e)?"mouse":"program"}_shouldBeAttributedToTouch(e){return this._detectionMode===tS.EVENTUAL||!!e?.contains(this._inputModalityDetector._mostRecentTarget)}_setClasses(e,i){e.classList.toggle("cdk-focused",!!i),e.classList.toggle("cdk-touch-focused","touch"===i),e.classList.toggle("cdk-keyboard-focused","keyboard"===i),e.classList.toggle("cdk-mouse-focused","mouse"===i),e.classList.toggle("cdk-program-focused","program"===i)}_setOrigin(e,i=!1){this._ngZone.runOutsideAngular(()=>{this._origin=e,this._originFromTouchInteraction="touch"===e&&i,this._detectionMode===tS.IMMEDIATE&&(clearTimeout(this._originTimeoutId),this._originTimeoutId=setTimeout(()=>this._origin=null,this._originFromTouchInteraction?650:1))})}_onFocus(e,i){const r=this._elementInfo.get(i),o=zf(e);!r||!r.checkChildren&&i!==o||this._originChanged(i,this._getFocusOrigin(o),r)}_onBlur(e,i){const r=this._elementInfo.get(i);!r||r.checkChildren&&e.relatedTarget instanceof Node&&i.contains(e.relatedTarget)||(this._setClasses(i),this._emitOrigin(r,null))}_emitOrigin(e,i){e.subject.observers.length&&this._ngZone.run(()=>e.subject.next(i))}_registerGlobalListeners(e){if(!this._platform.isBrowser)return;const i=e.rootNode,r=this._rootNodeFocusListenerCount.get(i)||0;r||this._ngZone.runOutsideAngular(()=>{i.addEventListener("focus",this._rootNodeFocusAndBlurListener,nS),i.addEventListener("blur",this._rootNodeFocusAndBlurListener,nS)}),this._rootNodeFocusListenerCount.set(i,r+1),1==++this._monitoredElementCount&&(this._ngZone.runOutsideAngular(()=>{this._getWindow().addEventListener("focus",this._windowFocusListener)}),this._inputModalityDetector.modalityDetected.pipe(Ur(this._stopInputModalityDetector)).subscribe(o=>{this._setOrigin(o,!0)}))}_removeGlobalListeners(e){const i=e.rootNode;if(this._rootNodeFocusListenerCount.has(i)){const r=this._rootNodeFocusListenerCount.get(i);r>1?this._rootNodeFocusListenerCount.set(i,r-1):(i.removeEventListener("focus",this._rootNodeFocusAndBlurListener,nS),i.removeEventListener("blur",this._rootNodeFocusAndBlurListener,nS),this._rootNodeFocusListenerCount.delete(i))}--this._monitoredElementCount||(this._getWindow().removeEventListener("focus",this._windowFocusListener),this._stopInputModalityDetector.next(),clearTimeout(this._windowFocusTimeoutId),clearTimeout(this._originTimeoutId))}_originChanged(e,i,r){this._setClasses(e,i),this._emitOrigin(r,i),this._lastFocusOrigin=i}_getClosestElementsInfo(e){const i=[];return this._elementInfo.forEach((r,o)=>{(o===e||r.checkChildren&&o.contains(e))&&i.push([o,r])}),i}_isLastInteractionFromInputLabel(e){const{_mostRecentTarget:i,mostRecentModality:r}=this._inputModalityDetector;if("mouse"!==r||!i||i===e||"INPUT"!==e.nodeName&&"TEXTAREA"!==e.nodeName||e.disabled)return!1;const o=e.labels;if(o)for(let s=0;s{class t{constructor(e,i){this._platform=e,this._document=i,this._breakpointSubscription=Ut(Zye).observe("(forced-colors: active)").subscribe(()=>{this._hasCheckedHighContrastMode&&(this._hasCheckedHighContrastMode=!1,this._applyBodyHighContrastModeCssClasses())})}getHighContrastMode(){if(!this._platform.isBrowser)return Pp.NONE;const e=this._document.createElement("div");e.style.backgroundColor="rgb(1,2,3)",e.style.position="absolute",this._document.body.appendChild(e);const i=this._document.defaultView||window,r=i&&i.getComputedStyle?i.getComputedStyle(e):null,o=(r&&r.backgroundColor||"").replace(/ /g,"");switch(e.remove(),o){case"rgb(0,0,0)":case"rgb(45,50,54)":case"rgb(32,32,32)":return Pp.WHITE_ON_BLACK;case"rgb(255,255,255)":case"rgb(255,250,239)":return Pp.BLACK_ON_WHITE}return Pp.NONE}ngOnDestroy(){this._breakpointSubscription.unsubscribe()}_applyBodyHighContrastModeCssClasses(){if(!this._hasCheckedHighContrastMode&&this._platform.isBrowser&&this._document.body){const e=this._document.body.classList;e.remove(qR,e$,t$),this._hasCheckedHighContrastMode=!0;const i=this.getHighContrastMode();i===Pp.BLACK_ON_WHITE?e.add(qR,e$):i===Pp.WHITE_ON_BLACK&&e.add(qR,t$)}}static{this.\u0275fac=function(i){return new(i||t)(oe(Or),oe(xi))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})(),WR=(()=>{class t{constructor(e){e._applyBodyHighContrastModeCssClasses()}static{this.\u0275fac=function(i){return new(i||t)(oe(n$))}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[NR]})}}return t})();function $R(t){return new $i(n=>{Go(t()).subscribe(n)})}function v1e(t,n){}class iS{constructor(){this.role="dialog",this.panelClass="",this.hasBackdrop=!0,this.backdropClass="",this.disableClose=!1,this.width="",this.height="",this.data=null,this.ariaDescribedBy=null,this.ariaLabelledBy=null,this.ariaLabel=null,this.ariaModal=!0,this.autoFocus="first-tabbable",this.restoreFocus=!0,this.closeOnNavigation=!0,this.closeOnDestroy=!0,this.closeOnOverlayDetachments=!0}}let i$=(()=>{class t extends DR{constructor(e,i,r,o,s,a,l,c){super(),this._elementRef=e,this._focusTrapFactory=i,this._config=o,this._interactivityChecker=s,this._ngZone=a,this._overlayRef=l,this._focusMonitor=c,this._platform=Ut(Or),this._focusTrap=null,this._elementFocusedBeforeDialogWasOpened=null,this._closeInteractionType=null,this._ariaLabelledByQueue=[],this._changeDetectorRef=Ut(Ao),this.attachDomPortal=d=>{this._portalOutlet.hasAttached();const u=this._portalOutlet.attachDomPortal(d);return this._contentAttached(),u},this._document=r,this._config.ariaLabelledBy&&this._ariaLabelledByQueue.push(this._config.ariaLabelledBy)}_addAriaLabelledBy(e){this._ariaLabelledByQueue.push(e),this._changeDetectorRef.markForCheck()}_removeAriaLabelledBy(e){const i=this._ariaLabelledByQueue.indexOf(e);i>-1&&(this._ariaLabelledByQueue.splice(i,1),this._changeDetectorRef.markForCheck())}_contentAttached(){this._initializeFocusTrap(),this._handleBackdropClicks(),this._captureInitialFocus()}_captureInitialFocus(){this._trapFocus()}ngOnDestroy(){this._restoreFocus()}attachComponentPortal(e){this._portalOutlet.hasAttached();const i=this._portalOutlet.attachComponentPortal(e);return this._contentAttached(),i}attachTemplatePortal(e){this._portalOutlet.hasAttached();const i=this._portalOutlet.attachTemplatePortal(e);return this._contentAttached(),i}_recaptureFocus(){this._containsFocus()||this._trapFocus()}_forceFocus(e,i){this._interactivityChecker.isFocusable(e)||(e.tabIndex=-1,this._ngZone.runOutsideAngular(()=>{const r=()=>{e.removeEventListener("blur",r),e.removeEventListener("mousedown",r),e.removeAttribute("tabindex")};e.addEventListener("blur",r),e.addEventListener("mousedown",r)})),e.focus(i)}_focusByCssSelector(e,i){let r=this._elementRef.nativeElement.querySelector(e);r&&this._forceFocus(r,i)}_trapFocus(){const e=this._elementRef.nativeElement;switch(this._config.autoFocus){case!1:case"dialog":this._containsFocus()||e.focus();break;case!0:case"first-tabbable":this._focusTrap?.focusInitialElementWhenReady().then(i=>{i||this._focusDialogContainer()});break;case"first-heading":this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role="heading"]');break;default:this._focusByCssSelector(this._config.autoFocus)}}_restoreFocus(){const e=this._config.restoreFocus;let i=null;if("string"==typeof e?i=this._document.querySelector(e):"boolean"==typeof e?i=e?this._elementFocusedBeforeDialogWasOpened:null:e&&(i=e),this._config.restoreFocus&&i&&"function"==typeof i.focus){const r=zM(),o=this._elementRef.nativeElement;(!r||r===this._document.body||r===o||o.contains(r))&&(this._focusMonitor?(this._focusMonitor.focusVia(i,this._closeInteractionType),this._closeInteractionType=null):i.focus())}this._focusTrap&&this._focusTrap.destroy()}_focusDialogContainer(){this._elementRef.nativeElement.focus&&this._elementRef.nativeElement.focus()}_containsFocus(){const e=this._elementRef.nativeElement,i=zM();return e===i||e.contains(i)}_initializeFocusTrap(){this._platform.isBrowser&&(this._focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement),this._document&&(this._elementFocusedBeforeDialogWasOpened=zM()))}_handleBackdropClicks(){this._overlayRef.backdropClick().subscribe(()=>{this._config.disableClose&&this._recaptureFocus()})}static{this.\u0275fac=function(i){return new(i||t)(W(Un),W(ZW),W(xi,8),W(iS),W(QR),W(Fn),W(YM),W(ih))}}static{this.\u0275cmp=At({type:t,selectors:[["cdk-dialog-container"]],viewQuery:function(i,r){if(1&i&&ti(GM,7),2&i){let o;mn(o=pn())&&(r._portalOutlet=o.first)}},hostAttrs:["tabindex","-1",1,"cdk-dialog-container"],hostVars:6,hostBindings:function(i,r){2&i&&oi("id",r._config.id||null)("role",r._config.role)("aria-modal",r._config.ariaModal)("aria-labelledby",r._config.ariaLabel?null:r._ariaLabelledByQueue[0])("aria-label",r._config.ariaLabel)("aria-describedby",r._config.ariaDescribedBy||null)},standalone:!0,features:[di,xr],decls:1,vars:0,consts:[["cdkPortalOutlet",""]],template:function(i,r){1&i&&ft(0,v1e,0,0,"ng-template",0)},dependencies:[GM],styles:[".cdk-dialog-container{display:block;width:100%;height:100%;min-height:inherit;max-height:inherit}"],encapsulation:2})}}return t})();class jR{constructor(n,e){this.overlayRef=n,this.config=e,this.closed=new Yt,this.disableClose=e.disableClose,this.backdropClick=n.backdropClick(),this.keydownEvents=n.keydownEvents(),this.outsidePointerEvents=n.outsidePointerEvents(),this.id=e.id,this.keydownEvents.subscribe(i=>{27===i.keyCode&&!this.disableClose&&!Pc(i)&&(i.preventDefault(),this.close(void 0,{focusOrigin:"keyboard"}))}),this.backdropClick.subscribe(()=>{this.disableClose||this.close(void 0,{focusOrigin:"mouse"})}),this._detachSubscription=n.detachments().subscribe(()=>{!1!==e.closeOnOverlayDetachments&&this.close()})}close(n,e){if(this.containerInstance){const i=this.closed;this.containerInstance._closeInteractionType=e?.focusOrigin||"program",this._detachSubscription.unsubscribe(),this.overlayRef.dispose(),i.next(n),i.complete(),this.componentInstance=this.containerInstance=null}}updatePosition(){return this.overlayRef.updatePosition(),this}updateSize(n="",e=""){return this.overlayRef.updateSize({width:n,height:e}),this}addPanelClass(n){return this.overlayRef.addPanelClass(n),this}removePanelClass(n){return this.overlayRef.removePanelClass(n),this}}const r$=new ot("DialogScrollStrategy",{providedIn:"root",factory:()=>{const t=Ut(_s);return()=>t.scrollStrategies.block()}}),y1e=new ot("DialogData"),w1e=new ot("DefaultDialogConfig");let C1e=0,o$=(()=>{class t{get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}constructor(e,i,r,o,s,a){this._overlay=e,this._injector=i,this._defaultOptions=r,this._parentDialog=o,this._overlayContainer=s,this._openDialogsAtThisLevel=[],this._afterAllClosedAtThisLevel=new Yt,this._afterOpenedAtThisLevel=new Yt,this._ariaHiddenElements=new Map,this.afterAllClosed=$R(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(Qd(void 0))),this._scrollStrategy=a}open(e,i){(i={...this._defaultOptions||new iS,...i}).id=i.id||"cdk-dialog-"+C1e++,i.id&&this.getDialogById(i.id);const o=this._getOverlayConfig(i),s=this._overlay.create(o),a=new jR(s,i),l=this._attachContainer(s,a,i);return a.containerInstance=l,this._attachDialogContent(e,a,l,i),this.openDialogs.length||this._hideNonDialogContentFromAssistiveTechnology(),this.openDialogs.push(a),a.closed.subscribe(()=>this._removeOpenDialog(a,!0)),this.afterOpened.next(a),a}closeAll(){KR(this.openDialogs,e=>e.close())}getDialogById(e){return this.openDialogs.find(i=>i.id===e)}ngOnDestroy(){KR(this._openDialogsAtThisLevel,e=>{!1===e.config.closeOnDestroy&&this._removeOpenDialog(e,!1)}),KR(this._openDialogsAtThisLevel,e=>e.close()),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete(),this._openDialogsAtThisLevel=[]}_getOverlayConfig(e){const i=new KM({positionStrategy:e.positionStrategy||this._overlay.position().global().centerHorizontally().centerVertically(),scrollStrategy:e.scrollStrategy||this._scrollStrategy(),panelClass:e.panelClass,hasBackdrop:e.hasBackdrop,direction:e.direction,minWidth:e.minWidth,minHeight:e.minHeight,maxWidth:e.maxWidth,maxHeight:e.maxHeight,width:e.width,height:e.height,disposeOnNavigation:e.closeOnNavigation});return e.backdropClass&&(i.backdropClass=e.backdropClass),i}_attachContainer(e,i,r){const o=r.injector||r.viewContainerRef?.injector,s=[{provide:iS,useValue:r},{provide:jR,useValue:i},{provide:YM,useValue:e}];let a;r.container?"function"==typeof r.container?a=r.container:(a=r.container.type,s.push(...r.container.providers(r))):a=i$;const l=new f1(a,r.viewContainerRef,Uo.create({parent:o||this._injector,providers:s}),r.componentFactoryResolver);return e.attach(l).instance}_attachDialogContent(e,i,r,o){if(e instanceof Cl){const s=this._createInjector(o,i,r,void 0);let a={$implicit:o.data,dialogRef:i};o.templateContext&&(a={...a,..."function"==typeof o.templateContext?o.templateContext():o.templateContext}),r.attachTemplatePortal(new m1(e,null,a,s))}else{const s=this._createInjector(o,i,r,this._injector),a=r.attachComponentPortal(new f1(e,o.viewContainerRef,s,o.componentFactoryResolver));i.componentRef=a,i.componentInstance=a.instance}}_createInjector(e,i,r,o){const s=e.injector||e.viewContainerRef?.injector,a=[{provide:y1e,useValue:e.data},{provide:jR,useValue:i}];return e.providers&&("function"==typeof e.providers?a.push(...e.providers(i,e,r)):a.push(...e.providers)),e.direction&&(!s||!s.get(th,null,{optional:!0}))&&a.push({provide:th,useValue:{value:e.direction,change:nl()}}),Uo.create({parent:s||o,providers:a})}_removeOpenDialog(e,i){const r=this.openDialogs.indexOf(e);r>-1&&(this.openDialogs.splice(r,1),this.openDialogs.length||(this._ariaHiddenElements.forEach((o,s)=>{o?s.setAttribute("aria-hidden",o):s.removeAttribute("aria-hidden")}),this._ariaHiddenElements.clear(),i&&this._getAfterAllClosed().next()))}_hideNonDialogContentFromAssistiveTechnology(){const e=this._overlayContainer.getContainerElement();if(e.parentElement){const i=e.parentElement.children;for(let r=i.length-1;r>-1;r--){const o=i[r];o!==e&&"SCRIPT"!==o.nodeName&&"STYLE"!==o.nodeName&&!o.hasAttribute("aria-live")&&(this._ariaHiddenElements.set(o,o.getAttribute("aria-hidden")),o.setAttribute("aria-hidden","true"))}}}_getAfterAllClosed(){const e=this._parentDialog;return e?e._getAfterAllClosed():this._afterAllClosedAtThisLevel}static{this.\u0275fac=function(i){return new(i||t)(oe(_s),oe(Uo),oe(w1e,8),oe(t,12),oe(XM),oe(r$))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();function KR(t,n){let e=t.length;for(;e--;)n(t[e])}let E1e=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({providers:[o$],imports:[g1,p1,WR,p1]})}}return t})();const M1e=["text"],S1e=[[["mat-icon"]],"*"],T1e=["mat-icon","*"];function F1e(t,n){if(1&t&&_e(0,"mat-pseudo-checkbox",1),2&t){const e=He();ue("disabled",e.disabled)("state",e.selected?"checked":"unchecked")}}function k1e(t,n){1&t&&_e(0,"mat-pseudo-checkbox",3),2&t&&ue("disabled",He().disabled)}function I1e(t,n){if(1&t&&(I(0,"span",4),ve(1),O()),2&t){const e=He();H(),an("(",e.group.label,")")}}const B1e=["mat-internal-form-field",""],D1e=["*"],L1e=new ot("mat-sanity-checks",{providedIn:"root",factory:function R1e(){return!0}});let Ki=(()=>{class t{constructor(e,i,r){this._sanityChecks=i,this._document=r,this._hasDoneGlobalChecks=!1,e._applyBodyHighContrastModeCssClasses(),this._hasDoneGlobalChecks||(this._hasDoneGlobalChecks=!0)}_checkIsEnabled(e){return!kR()&&("boolean"==typeof this._sanityChecks?this._sanityChecks:!!this._sanityChecks[e])}static{this.\u0275fac=function(i){return new(i||t)(oe(n$),oe(L1e,8),oe(xi))}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[u1,u1]})}}return t})();class XR{constructor(n,e,i,r,o){this._defaultMatcher=n,this.ngControl=e,this._parentFormGroup=i,this._parentForm=r,this._stateChanges=o,this.errorState=!1}updateErrorState(){const n=this.errorState,e=this._parentFormGroup||this._parentForm,i=this.matcher||this._defaultMatcher,r=this.ngControl?this.ngControl.control:null,o=i?.isErrorState(r,e)??!1;o!==n&&(this.errorState=o,this._stateChanges.next())}}let l$=(()=>{class t{isErrorState(e,i){return!!(e&&e.invalid&&(e.touched||i&&i.submitted))}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();var il=function(t){return t[t.FADING_IN=0]="FADING_IN",t[t.VISIBLE=1]="VISIBLE",t[t.FADING_OUT=2]="FADING_OUT",t[t.HIDDEN=3]="HIDDEN",t}(il||{});class V1e{constructor(n,e,i,r=!1){this._renderer=n,this.element=e,this.config=i,this._animationForciblyDisabledThroughCss=r,this.state=il.HIDDEN}fadeOut(){this._renderer.fadeOutRipple(this)}}const c$=Bp({passive:!0,capture:!0});class Q1e{constructor(){this._events=new Map,this._delegateEventHandler=n=>{const e=zf(n);e&&this._events.get(n.type)?.forEach((i,r)=>{(r===e||r.contains(e))&&i.forEach(o=>o.handleEvent(n))})}}addHandler(n,e,i,r){const o=this._events.get(e);if(o){const s=o.get(i);s?s.add(r):o.set(i,new Set([r]))}else this._events.set(e,new Map([[i,new Set([r])]])),n.runOutsideAngular(()=>{document.addEventListener(e,this._delegateEventHandler,c$)})}removeHandler(n,e,i){const r=this._events.get(n);if(!r)return;const o=r.get(e);o&&(o.delete(i),0===o.size&&r.delete(e),0===r.size&&(this._events.delete(n),document.removeEventListener(n,this._delegateEventHandler,c$)))}}const d$={enterDuration:225,exitDuration:150},u$=Bp({passive:!0,capture:!0}),h$=["mousedown","touchstart"],f$=["mouseup","mouseleave","touchend","touchcancel"];class v1{static{this._eventManager=new Q1e}constructor(n,e,i,r){this._target=n,this._ngZone=e,this._platform=r,this._isPointerDown=!1,this._activeRipples=new Map,this._pointerUpEventsRegistered=!1,r.isBrowser&&(this._containerElement=eh(i))}fadeInRipple(n,e,i={}){const r=this._containerRect=this._containerRect||this._containerElement.getBoundingClientRect(),o={...d$,...i.animation};i.centered&&(n=r.left+r.width/2,e=r.top+r.height/2);const s=i.radius||function G1e(t,n,e){const i=Math.max(Math.abs(t-e.left),Math.abs(t-e.right)),r=Math.max(Math.abs(n-e.top),Math.abs(n-e.bottom));return Math.sqrt(i*i+r*r)}(n,e,r),a=n-r.left,l=e-r.top,c=o.enterDuration,d=document.createElement("div");d.classList.add("mat-ripple-element"),d.style.left=a-s+"px",d.style.top=l-s+"px",d.style.height=2*s+"px",d.style.width=2*s+"px",null!=i.color&&(d.style.backgroundColor=i.color),d.style.transitionDuration=`${c}ms`,this._containerElement.appendChild(d);const u=window.getComputedStyle(d),m=u.transitionDuration,A="none"===u.transitionProperty||"0s"===m||"0s, 0s"===m||0===r.width&&0===r.height,v=new V1e(this,d,i,A);d.style.transform="scale3d(1, 1, 1)",v.state=il.FADING_IN,i.persistent||(this._mostRecentTransientRipple=v);let x=null;return!A&&(c||o.exitDuration)&&this._ngZone.runOutsideAngular(()=>{const C=()=>this._finishRippleTransition(v),w=()=>this._destroyRipple(v);d.addEventListener("transitionend",C),d.addEventListener("transitioncancel",w),x={onTransitionEnd:C,onTransitionCancel:w}}),this._activeRipples.set(v,x),(A||!c)&&this._finishRippleTransition(v),v}fadeOutRipple(n){if(n.state===il.FADING_OUT||n.state===il.HIDDEN)return;const e=n.element,i={...d$,...n.config.animation};e.style.transitionDuration=`${i.exitDuration}ms`,e.style.opacity="0",n.state=il.FADING_OUT,(n._animationForciblyDisabledThroughCss||!i.exitDuration)&&this._finishRippleTransition(n)}fadeOutAll(){this._getActiveRipples().forEach(n=>n.fadeOut())}fadeOutAllNonPersistent(){this._getActiveRipples().forEach(n=>{n.config.persistent||n.fadeOut()})}setupTriggerEvents(n){const e=eh(n);!this._platform.isBrowser||!e||e===this._triggerElement||(this._removeTriggerEvents(),this._triggerElement=e,h$.forEach(i=>{v1._eventManager.addHandler(this._ngZone,i,e,this)}))}handleEvent(n){"mousedown"===n.type?this._onMousedown(n):"touchstart"===n.type?this._onTouchStart(n):this._onPointerUp(),this._pointerUpEventsRegistered||(this._ngZone.runOutsideAngular(()=>{f$.forEach(e=>{this._triggerElement.addEventListener(e,this,u$)})}),this._pointerUpEventsRegistered=!0)}_finishRippleTransition(n){n.state===il.FADING_IN?this._startFadeOutTransition(n):n.state===il.FADING_OUT&&this._destroyRipple(n)}_startFadeOutTransition(n){const e=n===this._mostRecentTransientRipple,{persistent:i}=n.config;n.state=il.VISIBLE,!i&&(!e||!this._isPointerDown)&&n.fadeOut()}_destroyRipple(n){const e=this._activeRipples.get(n)??null;this._activeRipples.delete(n),this._activeRipples.size||(this._containerRect=null),n===this._mostRecentTransientRipple&&(this._mostRecentTransientRipple=null),n.state=il.HIDDEN,null!==e&&(n.element.removeEventListener("transitionend",e.onTransitionEnd),n.element.removeEventListener("transitioncancel",e.onTransitionCancel)),n.element.remove()}_onMousedown(n){const e=zR(n),i=this._lastTouchStartEvent&&Date.now(){!n.config.persistent&&(n.state===il.VISIBLE||n.config.terminateOnPointerUp&&n.state===il.FADING_IN)&&n.fadeOut()}))}_getActiveRipples(){return Array.from(this._activeRipples.keys())}_removeTriggerEvents(){const n=this._triggerElement;n&&(h$.forEach(e=>v1._eventManager.removeHandler(e,n,this)),this._pointerUpEventsRegistered&&f$.forEach(e=>n.removeEventListener(e,this,u$)))}}const L0=new ot("mat-ripple-global-options");let rh=(()=>{class t{get disabled(){return this._disabled}set disabled(e){e&&this.fadeOutAllNonPersistent(),this._disabled=e,this._setupTriggerEventsIfEnabled()}get trigger(){return this._trigger||this._elementRef.nativeElement}set trigger(e){this._trigger=e,this._setupTriggerEventsIfEnabled()}constructor(e,i,r,o,s){this._elementRef=e,this._animationMode=s,this.radius=0,this._disabled=!1,this._isInitialized=!1,this._globalOptions=o||{},this._rippleRenderer=new v1(this,i,e,r)}ngOnInit(){this._isInitialized=!0,this._setupTriggerEventsIfEnabled()}ngOnDestroy(){this._rippleRenderer._removeTriggerEvents()}fadeOutAll(){this._rippleRenderer.fadeOutAll()}fadeOutAllNonPersistent(){this._rippleRenderer.fadeOutAllNonPersistent()}get rippleConfig(){return{centered:this.centered,radius:this.radius,color:this.color,animation:{...this._globalOptions.animation,..."NoopAnimations"===this._animationMode?{enterDuration:0,exitDuration:0}:{},...this.animation},terminateOnPointerUp:this._globalOptions.terminateOnPointerUp}}get rippleDisabled(){return this.disabled||!!this._globalOptions.disabled}_setupTriggerEventsIfEnabled(){!this.disabled&&this._isInitialized&&this._rippleRenderer.setupTriggerEvents(this.trigger)}launch(e,i=0,r){return"number"==typeof e?this._rippleRenderer.fadeInRipple(e,i,{...this.rippleConfig,...r}):this._rippleRenderer.fadeInRipple(0,0,{...this.rippleConfig,...e})}static{this.\u0275fac=function(i){return new(i||t)(W(Un),W(Fn),W(Or),W(L0,8),W(ts,8))}}static{this.\u0275dir=zt({type:t,selectors:[["","mat-ripple",""],["","matRipple",""]],hostAttrs:[1,"mat-ripple"],hostVars:2,hostBindings:function(i,r){2&i&&xn("mat-ripple-unbounded",r.unbounded)},inputs:{color:[bt.None,"matRippleColor","color"],unbounded:[bt.None,"matRippleUnbounded","unbounded"],centered:[bt.None,"matRippleCentered","centered"],radius:[bt.None,"matRippleRadius","radius"],animation:[bt.None,"matRippleAnimation","animation"],disabled:[bt.None,"matRippleDisabled","disabled"],trigger:[bt.None,"matRippleTrigger","trigger"]},exportAs:["matRipple"],standalone:!0})}}return t})(),P0=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[Ki,Ki]})}}return t})(),m$=(()=>{class t{constructor(e){this._animationMode=e,this.state="unchecked",this.disabled=!1,this.appearance="full"}static{this.\u0275fac=function(i){return new(i||t)(W(ts,8))}}static{this.\u0275cmp=At({type:t,selectors:[["mat-pseudo-checkbox"]],hostAttrs:[1,"mat-pseudo-checkbox"],hostVars:12,hostBindings:function(i,r){2&i&&xn("mat-pseudo-checkbox-indeterminate","indeterminate"===r.state)("mat-pseudo-checkbox-checked","checked"===r.state)("mat-pseudo-checkbox-disabled",r.disabled)("mat-pseudo-checkbox-minimal","minimal"===r.appearance)("mat-pseudo-checkbox-full","full"===r.appearance)("_mat-animation-noopable","NoopAnimations"===r._animationMode)},inputs:{state:"state",disabled:"disabled",appearance:"appearance"},standalone:!0,features:[xr],decls:0,vars:0,template:function(i,r){},styles:['.mat-pseudo-checkbox{border-radius:2px;cursor:pointer;display:inline-block;vertical-align:middle;box-sizing:border-box;position:relative;flex-shrink:0;transition:border-color 90ms cubic-bezier(0, 0, 0.2, 0.1),background-color 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox::after{position:absolute;opacity:0;content:"";border-bottom:2px solid currentColor;transition:opacity 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox._mat-animation-noopable{transition:none !important;animation:none !important}.mat-pseudo-checkbox._mat-animation-noopable::after{transition:none}.mat-pseudo-checkbox-disabled{cursor:default}.mat-pseudo-checkbox-indeterminate::after{left:1px;opacity:1;border-radius:2px}.mat-pseudo-checkbox-checked::after{left:1px;border-left:2px solid currentColor;transform:rotate(-45deg);opacity:1;box-sizing:content-box}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked::after,.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate::after{color:var(--mat-minimal-pseudo-checkbox-selected-checkmark-color)}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled::after,.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled::after{color:var(--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color)}.mat-pseudo-checkbox-full{border-color:var(--mat-full-pseudo-checkbox-unselected-icon-color);border-width:2px;border-style:solid}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-disabled{border-color:var(--mat-full-pseudo-checkbox-disabled-unselected-icon-color)}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate{background-color:var(--mat-full-pseudo-checkbox-selected-icon-color);border-color:rgba(0,0,0,0)}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked::after,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate::after{color:var(--mat-full-pseudo-checkbox-selected-checkmark-color)}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background-color:var(--mat-full-pseudo-checkbox-disabled-selected-icon-color)}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled::after,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled::after{color:var(--mat-full-pseudo-checkbox-disabled-selected-checkmark-color)}.mat-pseudo-checkbox{width:18px;height:18px}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked::after{width:14px;height:6px;transform-origin:center;top:-4.2426406871px;left:0;bottom:0;right:0;margin:auto}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate::after{top:8px;width:16px}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked::after{width:10px;height:4px;transform-origin:center;top:-2.8284271247px;left:0;bottom:0;right:0;margin:auto}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate::after{top:6px;width:12px}'],encapsulation:2,changeDetection:0})}}return t})(),p$=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[Ki]})}}return t})();const A$=new ot("MAT_OPTION_PARENT_COMPONENT"),g$=new ot("MatOptgroup");let q1e=0;class W1e{constructor(n,e=!1){this.source=n,this.isUserInput=e}}let zd=(()=>{class t{get multiple(){return this._parent&&this._parent.multiple}get selected(){return this._selected}get disabled(){return this.group&&this.group.disabled||this._disabled}set disabled(e){this._disabled=e}get disableRipple(){return!(!this._parent||!this._parent.disableRipple)}get hideSingleSelectionIndicator(){return!(!this._parent||!this._parent.hideSingleSelectionIndicator)}constructor(e,i,r,o){this._element=e,this._changeDetectorRef=i,this._parent=r,this.group=o,this._selected=!1,this._active=!1,this._disabled=!1,this._mostRecentViewValue="",this.id="mat-option-"+q1e++,this.onSelectionChange=new Ln,this._stateChanges=new Yt}get active(){return this._active}get viewValue(){return(this._text?.nativeElement.textContent||"").trim()}select(e=!0){this._selected||(this._selected=!0,this._changeDetectorRef.markForCheck(),e&&this._emitSelectionChangeEvent())}deselect(e=!0){this._selected&&(this._selected=!1,this._changeDetectorRef.markForCheck(),e&&this._emitSelectionChangeEvent())}focus(e,i){const r=this._getHostElement();"function"==typeof r.focus&&r.focus(i)}setActiveStyles(){this._active||(this._active=!0,this._changeDetectorRef.markForCheck())}setInactiveStyles(){this._active&&(this._active=!1,this._changeDetectorRef.markForCheck())}getLabel(){return this.viewValue}_handleKeydown(e){(13===e.keyCode||32===e.keyCode)&&!Pc(e)&&(this._selectViaInteraction(),e.preventDefault())}_selectViaInteraction(){this.disabled||(this._selected=!this.multiple||!this._selected,this._changeDetectorRef.markForCheck(),this._emitSelectionChangeEvent(!0))}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._element.nativeElement}ngAfterViewChecked(){if(this._selected){const e=this.viewValue;e!==this._mostRecentViewValue&&(this._mostRecentViewValue&&this._stateChanges.next(),this._mostRecentViewValue=e)}}ngOnDestroy(){this._stateChanges.complete()}_emitSelectionChangeEvent(e=!1){this.onSelectionChange.emit(new W1e(this,e))}static{this.\u0275fac=function(i){return new(i||t)(W(Un),W(Ao),W(A$,8),W(g$,8))}}static{this.\u0275cmp=At({type:t,selectors:[["mat-option"]],viewQuery:function(i,r){if(1&i&&ti(M1e,7),2&i){let o;mn(o=pn())&&(r._text=o.first)}},hostAttrs:["role","option",1,"mat-mdc-option","mdc-list-item"],hostVars:11,hostBindings:function(i,r){1&i&&We("click",function(){return r._selectViaInteraction()})("keydown",function(s){return r._handleKeydown(s)}),2&i&&(Id("id",r.id),oi("aria-selected",r.selected)("aria-disabled",r.disabled.toString()),xn("mdc-list-item--selected",r.selected)("mat-mdc-option-multiple",r.multiple)("mat-mdc-option-active",r.active)("mdc-list-item--disabled",r.disabled))},inputs:{value:"value",id:"id",disabled:[bt.HasDecoratorInputTransform,"disabled","disabled",qn]},outputs:{onSelectionChange:"onSelectionChange"},exportAs:["matOption"],standalone:!0,features:[Ho,xr],ngContentSelectors:T1e,decls:8,vars:5,consts:[["text",""],["aria-hidden","true",1,"mat-mdc-option-pseudo-checkbox",3,"disabled","state"],[1,"mdc-list-item__primary-text"],["state","checked","aria-hidden","true","appearance","minimal",1,"mat-mdc-option-pseudo-checkbox",3,"disabled"],[1,"cdk-visually-hidden"],["aria-hidden","true","mat-ripple","",1,"mat-mdc-option-ripple","mat-mdc-focus-indicator",3,"matRippleTrigger","matRippleDisabled"]],template:function(i,r){1&i&&(mo(S1e),ft(0,F1e,1,2,"mat-pseudo-checkbox",1),zn(1),I(2,"span",2,0),zn(4,1),O(),ft(5,k1e,1,1,"mat-pseudo-checkbox",3)(6,I1e,2,1,"span",4),_e(7,"div",5)),2&i&&(yt(0,r.multiple?0:-1),H(5),yt(5,r.multiple||!r.selected||r.hideSingleSelectionIndicator?-1:5),H(),yt(6,r.group&&r.group._inert?6:-1),H(),ue("matRippleTrigger",r._getHostElement())("matRippleDisabled",r.disabled||r.disableRipple))},dependencies:[m$,rh],styles:['.mat-mdc-option{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;padding-left:16px;padding-right:16px;-webkit-user-select:none;user-select:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0);color:var(--mat-option-label-text-color);font-family:var(--mat-option-label-text-font);line-height:var(--mat-option-label-text-line-height);font-size:var(--mat-option-label-text-size);letter-spacing:var(--mat-option-label-text-tracking);font-weight:var(--mat-option-label-text-weight);min-height:48px}.mat-mdc-option:focus{outline:none}[dir=rtl] .mat-mdc-option,.mat-mdc-option[dir=rtl]{padding-left:16px;padding-right:16px}.mat-mdc-option:hover:not(.mdc-list-item--disabled){background-color:var(--mat-option-hover-state-layer-color)}.mat-mdc-option:focus.mdc-list-item,.mat-mdc-option.mat-mdc-option-active.mdc-list-item{background-color:var(--mat-option-focus-state-layer-color)}.mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled) .mdc-list-item__primary-text{color:var(--mat-option-selected-state-label-text-color)}.mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled):not(.mat-mdc-option-multiple){background-color:var(--mat-option-selected-state-layer-color)}.mat-mdc-option.mdc-list-item{align-items:center;background:rgba(0,0,0,0)}.mat-mdc-option.mdc-list-item--disabled{cursor:default;pointer-events:none}.mat-mdc-option.mdc-list-item--disabled .mat-mdc-option-pseudo-checkbox,.mat-mdc-option.mdc-list-item--disabled .mdc-list-item__primary-text,.mat-mdc-option.mdc-list-item--disabled>mat-icon{opacity:.38}.mat-mdc-optgroup .mat-mdc-option:not(.mat-mdc-option-multiple){padding-left:32px}[dir=rtl] .mat-mdc-optgroup .mat-mdc-option:not(.mat-mdc-option-multiple){padding-left:16px;padding-right:32px}.mat-mdc-option .mat-icon,.mat-mdc-option .mat-pseudo-checkbox-full{margin-right:16px;flex-shrink:0}[dir=rtl] .mat-mdc-option .mat-icon,[dir=rtl] .mat-mdc-option .mat-pseudo-checkbox-full{margin-right:0;margin-left:16px}.mat-mdc-option .mat-pseudo-checkbox-minimal{margin-left:16px;flex-shrink:0}[dir=rtl] .mat-mdc-option .mat-pseudo-checkbox-minimal{margin-right:16px;margin-left:0}.mat-mdc-option .mat-mdc-option-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-mdc-option .mdc-list-item__primary-text{white-space:normal;font-size:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;font-family:inherit;text-decoration:inherit;text-transform:inherit;margin-right:auto}[dir=rtl] .mat-mdc-option .mdc-list-item__primary-text{margin-right:0;margin-left:auto}.cdk-high-contrast-active .mat-mdc-option.mdc-list-item--selected:not(.mat-mdc-option-multiple)::after{content:"";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}[dir=rtl] .cdk-high-contrast-active .mat-mdc-option.mdc-list-item--selected:not(.mat-mdc-option-multiple)::after{right:auto;left:16px}.mat-mdc-option-multiple{--mdc-list-list-item-selected-container-color:var(--mdc-list-list-item-container-color, transparent)}.mat-mdc-option-active .mat-mdc-focus-indicator::before{content:""}'],encapsulation:2,changeDetection:0})}}return t})(),b$=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[P0,Ki,p$]})}}return t})();const _$={capture:!0},v$=["focus","click","mouseenter","touchstart"],YR="mat-ripple-loader-uninitialized",ZR="mat-ripple-loader-class-name",y$="mat-ripple-loader-centered",rS="mat-ripple-loader-disabled";let K1e=(()=>{class t{constructor(){this._document=Ut(xi,{optional:!0}),this._animationMode=Ut(ts,{optional:!0}),this._globalRippleOptions=Ut(L0,{optional:!0}),this._platform=Ut(Or),this._ngZone=Ut(Fn),this._hosts=new Map,this._onInteraction=e=>{if(!(e.target instanceof HTMLElement))return;const r=e.target.closest(`[${YR}]`);r&&this._createRipple(r)},this._ngZone.runOutsideAngular(()=>{for(const e of v$)this._document?.addEventListener(e,this._onInteraction,_$)})}ngOnDestroy(){const e=this._hosts.keys();for(const i of e)this.destroyRipple(i);for(const i of v$)this._document?.removeEventListener(i,this._onInteraction,_$)}configureRipple(e,i){e.setAttribute(YR,""),(i.className||!e.hasAttribute(ZR))&&e.setAttribute(ZR,i.className||""),i.centered&&e.setAttribute(y$,""),i.disabled&&e.setAttribute(rS,"")}getRipple(e){return this._hosts.get(e)||this._createRipple(e)}setDisabled(e,i){const r=this._hosts.get(e);r?r.disabled=i:i?e.setAttribute(rS,""):e.removeAttribute(rS)}_createRipple(e){if(!this._document)return;const i=this._hosts.get(e);if(i)return i;e.querySelector(".mat-ripple")?.remove();const r=this._document.createElement("span");r.classList.add("mat-ripple",e.getAttribute(ZR)),e.append(r);const o=new rh(new Un(r),this._ngZone,this._platform,this._globalRippleOptions?this._globalRippleOptions:void 0,this._animationMode?this._animationMode:void 0);return o._isInitialized=!0,o.trigger=e,o.centered=e.hasAttribute(y$),o.disabled=e.hasAttribute(rS),this.attachRipple(e,o),o}attachRipple(e,i){e.removeAttribute(YR),this._hosts.set(e,i)}destroyRipple(e){const i=this._hosts.get(e);i&&(i.ngOnDestroy(),this._hosts.delete(e))}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})(),w$=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=At({type:t,selectors:[["div","mat-internal-form-field",""]],hostAttrs:[1,"mdc-form-field","mat-internal-form-field"],hostVars:2,hostBindings:function(i,r){2&i&&xn("mdc-form-field--align-end","before"===r.labelPosition)},inputs:{labelPosition:"labelPosition"},standalone:!0,features:[xr],attrs:B1e,ngContentSelectors:D1e,decls:1,vars:0,template:function(i,r){1&i&&(mo(),zn(0))},styles:[".mdc-form-field{display:inline-flex;align-items:center;vertical-align:middle}.mdc-form-field[hidden]{display:none}.mdc-form-field>label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0;order:0}[dir=rtl] .mdc-form-field>label,.mdc-form-field>label[dir=rtl]{margin-left:auto;margin-right:0}[dir=rtl] .mdc-form-field>label,.mdc-form-field>label[dir=rtl]{padding-left:0;padding-right:4px}.mdc-form-field--nowrap>label{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.mdc-form-field--align-end>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px;order:-1}[dir=rtl] .mdc-form-field--align-end>label,.mdc-form-field--align-end>label[dir=rtl]{margin-left:0;margin-right:auto}[dir=rtl] .mdc-form-field--align-end>label,.mdc-form-field--align-end>label[dir=rtl]{padding-left:4px;padding-right:0}.mdc-form-field--space-between{justify-content:space-between}.mdc-form-field--space-between>label{margin:0}[dir=rtl] .mdc-form-field--space-between>label,.mdc-form-field--space-between>label[dir=rtl]{margin:0}.mdc-form-field{font-family:var(--mdc-form-field-label-text-font);line-height:var(--mdc-form-field-label-text-line-height);font-size:var(--mdc-form-field-label-text-size);font-weight:var(--mdc-form-field-label-text-weight);letter-spacing:var(--mdc-form-field-label-text-tracking);color:var(--mdc-form-field-label-text-color)}.mat-internal-form-field{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}"],encapsulation:2,changeDetection:0})}}return t})();var si=function(t){return t[t.State=0]="State",t[t.Transition=1]="Transition",t[t.Sequence=2]="Sequence",t[t.Group=3]="Group",t[t.Animate=4]="Animate",t[t.Keyframes=5]="Keyframes",t[t.Style=6]="Style",t[t.Trigger=7]="Trigger",t[t.Reference=8]="Reference",t[t.AnimateChild=9]="AnimateChild",t[t.AnimateRef=10]="AnimateRef",t[t.Query=11]="Query",t[t.Stagger=12]="Stagger",t}(si||{});const oh="*";function sh(t,n){return{type:si.Trigger,name:t,definitions:n,options:{}}}function tc(t,n=null){return{type:si.Animate,styles:n,timings:t}}function Do(t){return{type:si.Style,styles:t,offset:null}}function nc(t,n,e){return{type:si.State,name:t,styles:n,options:e}}function Tl(t,n,e=null){return{type:si.Transition,expr:t,animation:n,options:e}}function JR(t=null){return{type:si.AnimateChild,options:t}}function eL(t,n,e=null){return{type:si.Query,selector:t,animation:n,options:e}}class y1{constructor(n=0,e=0){this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._originalOnDoneFns=[],this._originalOnStartFns=[],this._started=!1,this._destroyed=!1,this._finished=!1,this._position=0,this.parentPlayer=null,this.totalTime=n+e}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(n=>n()),this._onDoneFns=[])}onStart(n){this._originalOnStartFns.push(n),this._onStartFns.push(n)}onDone(n){this._originalOnDoneFns.push(n),this._onDoneFns.push(n)}onDestroy(n){this._onDestroyFns.push(n)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){queueMicrotask(()=>this._onFinish())}_onStart(){this._onStartFns.forEach(n=>n()),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(n=>n()),this._onDestroyFns=[])}reset(){this._started=!1,this._finished=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}setPosition(n){this._position=this.totalTime?n*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(n){const e="start"==n?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}}class C${constructor(n){this._onDoneFns=[],this._onStartFns=[],this._finished=!1,this._started=!1,this._destroyed=!1,this._onDestroyFns=[],this.parentPlayer=null,this.totalTime=0,this.players=n;let e=0,i=0,r=0;const o=this.players.length;0==o?queueMicrotask(()=>this._onFinish()):this.players.forEach(s=>{s.onDone(()=>{++e==o&&this._onFinish()}),s.onDestroy(()=>{++i==o&&this._onDestroy()}),s.onStart(()=>{++r==o&&this._onStart()})}),this.totalTime=this.players.reduce((s,a)=>Math.max(s,a.totalTime),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(n=>n()),this._onDoneFns=[])}init(){this.players.forEach(n=>n.init())}onStart(n){this._onStartFns.push(n)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(n=>n()),this._onStartFns=[])}onDone(n){this._onDoneFns.push(n)}onDestroy(n){this._onDestroyFns.push(n)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(n=>n.play())}pause(){this.players.forEach(n=>n.pause())}restart(){this.players.forEach(n=>n.restart())}finish(){this._onFinish(),this.players.forEach(n=>n.finish())}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(n=>n.destroy()),this._onDestroyFns.forEach(n=>n()),this._onDestroyFns=[])}reset(){this.players.forEach(n=>n.reset()),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(n){const e=n*this.totalTime;this.players.forEach(i=>{const r=i.totalTime?Math.min(1,e/i.totalTime):1;i.setPosition(r)})}getPosition(){const n=this.players.reduce((e,i)=>null===e||i.totalTime>e.totalTime?i:e,null);return null!=n?n.getPosition():0}beforeDestroy(){this.players.forEach(n=>{n.beforeDestroy&&n.beforeDestroy()})}triggerCallback(n){const e="start"==n?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}}function twe(t,n){}class nL{constructor(){this.role="dialog",this.panelClass="",this.hasBackdrop=!0,this.backdropClass="",this.disableClose=!1,this.width="",this.height="",this.data=null,this.ariaDescribedBy=null,this.ariaLabelledBy=null,this.ariaLabel=null,this.ariaModal=!0,this.autoFocus="first-tabbable",this.restoreFocus=!0,this.delayFocusTrap=!0,this.closeOnNavigation=!0}}const iL="mdc-dialog--open",E$="mdc-dialog--opening",M$="mdc-dialog--closing";let S$=(()=>{class t extends i${constructor(e,i,r,o,s,a,l,c,d){super(e,i,r,o,s,a,l,d),this._animationMode=c,this._animationStateChanged=new Ln,this._animationsEnabled="NoopAnimations"!==this._animationMode,this._actionSectionCount=0,this._hostElement=this._elementRef.nativeElement,this._enterAnimationDuration=this._animationsEnabled?F$(this._config.enterAnimationDuration)??150:0,this._exitAnimationDuration=this._animationsEnabled?F$(this._config.exitAnimationDuration)??75:0,this._animationTimer=null,this._finishDialogOpen=()=>{this._clearAnimationClasses(),this._openAnimationDone(this._enterAnimationDuration)},this._finishDialogClose=()=>{this._clearAnimationClasses(),this._animationStateChanged.emit({state:"closed",totalTime:this._exitAnimationDuration})}}_contentAttached(){super._contentAttached(),this._startOpenAnimation()}_startOpenAnimation(){this._animationStateChanged.emit({state:"opening",totalTime:this._enterAnimationDuration}),this._animationsEnabled?(this._hostElement.style.setProperty(T$,`${this._enterAnimationDuration}ms`),this._requestAnimationFrame(()=>this._hostElement.classList.add(E$,iL)),this._waitForAnimationToComplete(this._enterAnimationDuration,this._finishDialogOpen)):(this._hostElement.classList.add(iL),Promise.resolve().then(()=>this._finishDialogOpen()))}_startExitAnimation(){this._animationStateChanged.emit({state:"closing",totalTime:this._exitAnimationDuration}),this._hostElement.classList.remove(iL),this._animationsEnabled?(this._hostElement.style.setProperty(T$,`${this._exitAnimationDuration}ms`),this._requestAnimationFrame(()=>this._hostElement.classList.add(M$)),this._waitForAnimationToComplete(this._exitAnimationDuration,this._finishDialogClose)):Promise.resolve().then(()=>this._finishDialogClose())}_updateActionSectionCount(e){this._actionSectionCount+=e,this._changeDetectorRef.markForCheck()}_clearAnimationClasses(){this._hostElement.classList.remove(E$,M$)}_waitForAnimationToComplete(e,i){null!==this._animationTimer&&clearTimeout(this._animationTimer),this._animationTimer=setTimeout(i,e)}_requestAnimationFrame(e){this._ngZone.runOutsideAngular(()=>{"function"==typeof requestAnimationFrame?requestAnimationFrame(e):e()})}_captureInitialFocus(){this._config.delayFocusTrap||this._trapFocus()}_openAnimationDone(e){this._config.delayFocusTrap&&this._trapFocus(),this._animationStateChanged.next({state:"opened",totalTime:e})}ngOnDestroy(){super.ngOnDestroy(),null!==this._animationTimer&&clearTimeout(this._animationTimer)}attachComponentPortal(e){const i=super.attachComponentPortal(e);return i.location.nativeElement.classList.add("mat-mdc-dialog-component-host"),i}static{this.\u0275fac=function(i){return new(i||t)(W(Un),W(ZW),W(xi,8),W(nL),W(QR),W(Fn),W(YM),W(ts,8),W(ih))}}static{this.\u0275cmp=At({type:t,selectors:[["mat-dialog-container"]],hostAttrs:["tabindex","-1",1,"mat-mdc-dialog-container","mdc-dialog"],hostVars:10,hostBindings:function(i,r){2&i&&(Id("id",r._config.id),oi("aria-modal",r._config.ariaModal)("role",r._config.role)("aria-labelledby",r._config.ariaLabel?null:r._ariaLabelledByQueue[0])("aria-label",r._config.ariaLabel)("aria-describedby",r._config.ariaDescribedBy||null),xn("_mat-animation-noopable",!r._animationsEnabled)("mat-mdc-dialog-container-with-actions",r._actionSectionCount>0))},standalone:!0,features:[di,xr],decls:3,vars:0,consts:[[1,"mdc-dialog__container"],[1,"mat-mdc-dialog-surface","mdc-dialog__surface"],["cdkPortalOutlet",""]],template:function(i,r){1&i&&(I(0,"div",0)(1,"div",1),ft(2,twe,0,0,"ng-template",2),O()())},dependencies:[GM],styles:['.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:var(--mdc-elevation-overlay-opacity, 0);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-dialog,.mdc-dialog__scrim{position:fixed;top:0;left:0;align-items:center;justify-content:center;box-sizing:border-box;width:100%;height:100%}.mdc-dialog{display:none;z-index:var(--mdc-dialog-z-index, 7)}.mdc-dialog .mdc-dialog__content{padding:20px 24px 20px 24px}.mdc-dialog .mdc-dialog__surface{min-width:280px}@media(max-width: 592px){.mdc-dialog .mdc-dialog__surface{max-width:calc(100vw - 32px)}}@media(min-width: 592px){.mdc-dialog .mdc-dialog__surface{max-width:560px}}.mdc-dialog .mdc-dialog__surface{max-height:calc(100% - 32px)}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-width:none}@media(max-width: 960px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-height:560px;width:560px}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{right:-12px}}@media(max-width: 720px)and (max-width: 672px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{width:calc(100vw - 112px)}}@media(max-width: 720px)and (min-width: 672px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{width:560px}}@media(max-width: 720px)and (max-height: 720px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-height:calc(100vh - 160px)}}@media(max-width: 720px)and (min-height: 720px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-height:560px}}@media(max-width: 720px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{right:-12px}}@media(max-width: 720px)and (max-height: 400px),(max-width: 600px),(min-width: 720px)and (max-height: 400px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{height:100%;max-height:100vh;max-width:100vw;width:100vw;border-radius:0}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{order:-1;left:-12px}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__header{padding:0 16px 9px;justify-content:flex-start}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__title{margin-left:calc(16px - 2 * 12px)}}@media(min-width: 960px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{width:calc(100vw - 400px)}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{right:-12px}}.mdc-dialog.mdc-dialog__scrim--hidden .mdc-dialog__scrim{opacity:0}.mdc-dialog__scrim{opacity:0;z-index:-1}.mdc-dialog__container{display:flex;flex-direction:row;align-items:center;justify-content:space-around;box-sizing:border-box;height:100%;opacity:0;pointer-events:none}.mdc-dialog__surface{position:relative;display:flex;flex-direction:column;flex-grow:0;flex-shrink:0;box-sizing:border-box;max-width:100%;max-height:100%;pointer-events:auto;overflow-y:auto;outline:0;transform:scale(0.8)}.mdc-dialog__surface .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}[dir=rtl] .mdc-dialog__surface,.mdc-dialog__surface[dir=rtl]{text-align:right}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mdc-dialog__surface{outline:2px solid windowText}}.mdc-dialog__surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:2px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}@media screen and (forced-colors: active){.mdc-dialog__surface::before{border-color:CanvasText}}@media screen and (-ms-high-contrast: active),screen and (-ms-high-contrast: none){.mdc-dialog__surface::before{content:none}}.mdc-dialog__title{display:block;margin-top:0;position:relative;flex-shrink:0;box-sizing:border-box;margin:0 0 1px;padding:0 24px 9px}.mdc-dialog__title::before{display:inline-block;width:0;height:40px;content:"";vertical-align:0}[dir=rtl] .mdc-dialog__title,.mdc-dialog__title[dir=rtl]{text-align:right}.mdc-dialog--scrollable .mdc-dialog__title{margin-bottom:1px;padding-bottom:15px}.mdc-dialog--fullscreen .mdc-dialog__header{align-items:baseline;border-bottom:1px solid rgba(0,0,0,0);display:inline-flex;justify-content:space-between;padding:0 24px 9px;z-index:1}@media screen and (forced-colors: active){.mdc-dialog--fullscreen .mdc-dialog__header{border-bottom-color:CanvasText}}.mdc-dialog--fullscreen .mdc-dialog__header .mdc-dialog__close{right:-12px}.mdc-dialog--fullscreen .mdc-dialog__title{margin-bottom:0;padding:0;border-bottom:0}.mdc-dialog--fullscreen.mdc-dialog--scrollable .mdc-dialog__title{border-bottom:0;margin-bottom:0}.mdc-dialog--fullscreen .mdc-dialog__close{top:5px}.mdc-dialog--fullscreen.mdc-dialog--scrollable .mdc-dialog__actions{border-top:1px solid rgba(0,0,0,0)}@media screen and (forced-colors: active){.mdc-dialog--fullscreen.mdc-dialog--scrollable .mdc-dialog__actions{border-top-color:CanvasText}}.mdc-dialog--fullscreen--titleless .mdc-dialog__close{margin-top:4px}.mdc-dialog--fullscreen--titleless.mdc-dialog--scrollable .mdc-dialog__close{margin-top:0}.mdc-dialog__content{flex-grow:1;box-sizing:border-box;margin:0;overflow:auto}.mdc-dialog__content>:first-child{margin-top:0}.mdc-dialog__content>:last-child{margin-bottom:0}.mdc-dialog__title+.mdc-dialog__content,.mdc-dialog__header+.mdc-dialog__content{padding-top:0}.mdc-dialog--scrollable .mdc-dialog__title+.mdc-dialog__content{padding-top:8px;padding-bottom:8px}.mdc-dialog__content .mdc-deprecated-list:first-child:last-child{padding:6px 0 0}.mdc-dialog--scrollable .mdc-dialog__content .mdc-deprecated-list:first-child:last-child{padding:0}.mdc-dialog__actions{display:flex;position:relative;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;box-sizing:border-box;min-height:52px;margin:0;padding:8px;border-top:1px solid rgba(0,0,0,0)}@media screen and (forced-colors: active){.mdc-dialog__actions{border-top-color:CanvasText}}.mdc-dialog--stacked .mdc-dialog__actions{flex-direction:column;align-items:flex-end}.mdc-dialog__button{margin-left:8px;margin-right:0;max-width:100%;text-align:right}[dir=rtl] .mdc-dialog__button,.mdc-dialog__button[dir=rtl]{margin-left:0;margin-right:8px}.mdc-dialog__button:first-child{margin-left:0;margin-right:0}[dir=rtl] .mdc-dialog__button:first-child,.mdc-dialog__button:first-child[dir=rtl]{margin-left:0;margin-right:0}[dir=rtl] .mdc-dialog__button,.mdc-dialog__button[dir=rtl]{text-align:left}.mdc-dialog--stacked .mdc-dialog__button:not(:first-child){margin-top:12px}.mdc-dialog--open,.mdc-dialog--opening,.mdc-dialog--closing{display:flex}.mdc-dialog--opening .mdc-dialog__scrim{transition:opacity 150ms linear}.mdc-dialog--opening .mdc-dialog__container{transition:opacity 75ms linear,transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-dialog--closing .mdc-dialog__scrim,.mdc-dialog--closing .mdc-dialog__container{transition:opacity 75ms linear}.mdc-dialog--closing .mdc-dialog__container{transform:none}.mdc-dialog--closing .mdc-dialog__surface{transform:none}.mdc-dialog--open .mdc-dialog__scrim{opacity:1}.mdc-dialog--open .mdc-dialog__container{opacity:1}.mdc-dialog--open .mdc-dialog__surface{transform:none}.mdc-dialog--open.mdc-dialog__surface-scrim--shown .mdc-dialog__surface-scrim{opacity:1}.mdc-dialog--open.mdc-dialog__surface-scrim--hiding .mdc-dialog__surface-scrim{transition:opacity 75ms linear}.mdc-dialog--open.mdc-dialog__surface-scrim--showing .mdc-dialog__surface-scrim{transition:opacity 150ms linear}.mdc-dialog__surface-scrim{display:none;opacity:0;position:absolute;width:100%;height:100%;z-index:1}.mdc-dialog__surface-scrim--shown .mdc-dialog__surface-scrim,.mdc-dialog__surface-scrim--showing .mdc-dialog__surface-scrim,.mdc-dialog__surface-scrim--hiding .mdc-dialog__surface-scrim{display:block}.mdc-dialog-scroll-lock{overflow:hidden}.mdc-dialog--no-content-padding .mdc-dialog__content{padding:0}.mdc-dialog--sheet .mdc-dialog__container .mdc-dialog__close{right:12px;top:9px;position:absolute;z-index:1}.mdc-dialog__scrim--removed{pointer-events:none}.mdc-dialog__scrim--removed .mdc-dialog__scrim,.mdc-dialog__scrim--removed .mdc-dialog__surface-scrim{display:none}.mat-mdc-dialog-content{max-height:65vh}.mat-mdc-dialog-container{position:static;display:block}.mat-mdc-dialog-container,.mat-mdc-dialog-container .mdc-dialog__container,.mat-mdc-dialog-container .mdc-dialog__surface{max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit}.mat-mdc-dialog-container .mdc-dialog__surface{width:100%;height:100%}.mat-mdc-dialog-component-host{display:contents}.mat-mdc-dialog-container{--mdc-dialog-container-elevation: var(--mdc-dialog-container-elevation-shadow);outline:0}.mat-mdc-dialog-container .mdc-dialog__surface{background-color:var(--mdc-dialog-container-color, white)}.mat-mdc-dialog-container .mdc-dialog__surface{box-shadow:var(--mdc-dialog-container-elevation, 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12))}.mat-mdc-dialog-container .mdc-dialog__surface{border-radius:var(--mdc-dialog-container-shape, 4px)}.mat-mdc-dialog-container .mdc-dialog__title{font-family:var(--mdc-dialog-subhead-font, Roboto, sans-serif);line-height:var(--mdc-dialog-subhead-line-height, 1.5rem);font-size:var(--mdc-dialog-subhead-size, 1rem);font-weight:var(--mdc-dialog-subhead-weight, 400);letter-spacing:var(--mdc-dialog-subhead-tracking, 0.03125em)}.mat-mdc-dialog-container .mdc-dialog__title{color:var(--mdc-dialog-subhead-color, rgba(0, 0, 0, 0.87))}.mat-mdc-dialog-container .mdc-dialog__content{font-family:var(--mdc-dialog-supporting-text-font, Roboto, sans-serif);line-height:var(--mdc-dialog-supporting-text-line-height, 1.5rem);font-size:var(--mdc-dialog-supporting-text-size, 1rem);font-weight:var(--mdc-dialog-supporting-text-weight, 400);letter-spacing:var(--mdc-dialog-supporting-text-tracking, 0.03125em)}.mat-mdc-dialog-container .mdc-dialog__content{color:var(--mdc-dialog-supporting-text-color, rgba(0, 0, 0, 0.6))}.mat-mdc-dialog-container .mdc-dialog__container{transition:opacity linear var(--mat-dialog-transition-duration, 0ms)}.mat-mdc-dialog-container .mdc-dialog__surface{transition:transform var(--mat-dialog-transition-duration, 0ms) 0ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-dialog-container._mat-animation-noopable .mdc-dialog__container,.mat-mdc-dialog-container._mat-animation-noopable .mdc-dialog__surface{transition:none}.cdk-overlay-pane.mat-mdc-dialog-panel{max-width:var(--mat-dialog-container-max-width, 80vw);min-width:var(--mat-dialog-container-min-width, 0)}@media(max-width: 599px){.cdk-overlay-pane.mat-mdc-dialog-panel{max-width:var(--mat-dialog-container-small-max-width, 80vw)}}.mat-mdc-dialog-title{padding:var(--mat-dialog-headline-padding, 0 24px 9px)}.mat-mdc-dialog-content{display:block}.mat-mdc-dialog-container .mat-mdc-dialog-content{padding:var(--mat-dialog-content-padding, 20px 24px)}.mat-mdc-dialog-container-with-actions .mat-mdc-dialog-content{padding:var(--mat-dialog-with-actions-content-padding, 20px 24px)}.mat-mdc-dialog-container .mat-mdc-dialog-title+.mat-mdc-dialog-content{padding-top:0}.mat-mdc-dialog-actions{padding:var(--mat-dialog-actions-padding, 8px);justify-content:var(--mat-dialog-actions-alignment, start)}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-start,.mat-mdc-dialog-actions[align=start]{justify-content:start}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-center,.mat-mdc-dialog-actions[align=center]{justify-content:center}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-end,.mat-mdc-dialog-actions[align=end]{justify-content:flex-end}.mat-mdc-dialog-actions .mat-button-base+.mat-button-base,.mat-mdc-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-mdc-dialog-actions .mat-button-base+.mat-button-base,[dir=rtl] .mat-mdc-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:0;margin-right:8px}'],encapsulation:2})}}return t})();const T$="--mat-dialog-transition-duration";function F$(t){return null==t?null:"number"==typeof t?t:t.endsWith("ms")?Qf(t.substring(0,t.length-2)):t.endsWith("s")?1e3*Qf(t.substring(0,t.length-1)):"0"===t?0:null}var oS=function(t){return t[t.OPEN=0]="OPEN",t[t.CLOSING=1]="CLOSING",t[t.CLOSED=2]="CLOSED",t}(oS||{});class rL{constructor(n,e,i){this._ref=n,this._containerInstance=i,this._afterOpened=new Yt,this._beforeClosed=new Yt,this._state=oS.OPEN,this.disableClose=e.disableClose,this.id=n.id,n.addPanelClass("mat-mdc-dialog-panel"),i._animationStateChanged.pipe(Ii(r=>"opened"===r.state),qo(1)).subscribe(()=>{this._afterOpened.next(),this._afterOpened.complete()}),i._animationStateChanged.pipe(Ii(r=>"closed"===r.state),qo(1)).subscribe(()=>{clearTimeout(this._closeFallbackTimeout),this._finishDialogClose()}),n.overlayRef.detachments().subscribe(()=>{this._beforeClosed.next(this._result),this._beforeClosed.complete(),this._finishDialogClose()}),Sl(this.backdropClick(),this.keydownEvents().pipe(Ii(r=>27===r.keyCode&&!this.disableClose&&!Pc(r)))).subscribe(r=>{this.disableClose||(r.preventDefault(),k$(this,"keydown"===r.type?"keyboard":"mouse"))})}close(n){this._result=n,this._containerInstance._animationStateChanged.pipe(Ii(e=>"closing"===e.state),qo(1)).subscribe(e=>{this._beforeClosed.next(n),this._beforeClosed.complete(),this._ref.overlayRef.detachBackdrop(),this._closeFallbackTimeout=setTimeout(()=>this._finishDialogClose(),e.totalTime+100)}),this._state=oS.CLOSING,this._containerInstance._startExitAnimation()}afterOpened(){return this._afterOpened}afterClosed(){return this._ref.closed}beforeClosed(){return this._beforeClosed}backdropClick(){return this._ref.backdropClick}keydownEvents(){return this._ref.keydownEvents}updatePosition(n){let e=this._ref.config.positionStrategy;return n&&(n.left||n.right)?n.left?e.left(n.left):e.right(n.right):e.centerHorizontally(),n&&(n.top||n.bottom)?n.top?e.top(n.top):e.bottom(n.bottom):e.centerVertically(),this._ref.updatePosition(),this}updateSize(n="",e=""){return this._ref.updateSize(n,e),this}addPanelClass(n){return this._ref.addPanelClass(n),this}removePanelClass(n){return this._ref.removePanelClass(n),this}getState(){return this._state}_finishDialogClose(){this._state=oS.CLOSED,this._ref.close(this._result,{focusOrigin:this._closeInteractionType}),this.componentInstance=null}}function k$(t,n,e){return t._closeInteractionType=n,t.close(e)}const w1=new ot("MatMdcDialogData"),rwe=new ot("mat-mdc-dialog-default-options"),I$=new ot("mat-mdc-dialog-scroll-strategy",{providedIn:"root",factory:()=>{const t=Ut(_s);return()=>t.scrollStrategies.block()}});let swe=0,Is=(()=>{class t{get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}_getAfterAllClosed(){const e=this._parentDialog;return e?e._getAfterAllClosed():this._afterAllClosedAtThisLevel}constructor(e,i,r,o,s,a,l,c){this._overlay=e,this._defaultOptions=o,this._scrollStrategy=s,this._parentDialog=a,this._openDialogsAtThisLevel=[],this._afterAllClosedAtThisLevel=new Yt,this._afterOpenedAtThisLevel=new Yt,this.dialogConfigClass=nL,this.afterAllClosed=$R(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(Qd(void 0))),this._dialog=i.get(o$),this._dialogRefConstructor=rL,this._dialogContainerType=S$,this._dialogDataToken=w1}open(e,i){let r;(i={...this._defaultOptions||new nL,...i}).id=i.id||"mat-mdc-dialog-"+swe++,i.scrollStrategy=i.scrollStrategy||this._scrollStrategy();const o=this._dialog.open(e,{...i,positionStrategy:this._overlay.position().global().centerHorizontally().centerVertically(),disableClose:!0,closeOnDestroy:!1,closeOnOverlayDetachments:!1,container:{type:this._dialogContainerType,providers:()=>[{provide:this.dialogConfigClass,useValue:i},{provide:iS,useValue:i}]},templateContext:()=>({dialogRef:r}),providers:(s,a,l)=>(r=new this._dialogRefConstructor(s,i,l),r.updatePosition(i?.position),[{provide:this._dialogContainerType,useValue:l},{provide:this._dialogDataToken,useValue:a.data},{provide:this._dialogRefConstructor,useValue:r}])});return r.componentRef=o.componentRef,r.componentInstance=o.componentInstance,this.openDialogs.push(r),this.afterOpened.next(r),r.afterClosed().subscribe(()=>{const s=this.openDialogs.indexOf(r);s>-1&&(this.openDialogs.splice(s,1),this.openDialogs.length||this._getAfterAllClosed().next())}),r}closeAll(){this._closeDialogs(this.openDialogs)}getDialogById(e){return this.openDialogs.find(i=>i.id===e)}ngOnDestroy(){this._closeDialogs(this._openDialogsAtThisLevel),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete()}_closeDialogs(e){let i=e.length;for(;i--;)e[i].close()}static{this.\u0275fac=function(i){return new(i||t)(oe(_s),oe(Uo),oe(uD,8),oe(rwe,8),oe(I$),oe(t,12),oe(XM),oe(ts,8))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})(),awe=0,ic=(()=>{class t{constructor(e,i,r){this.dialogRef=e,this._elementRef=i,this._dialog=r,this.type="button"}ngOnInit(){this.dialogRef||(this.dialogRef=D$(this._elementRef,this._dialog.openDialogs))}ngOnChanges(e){const i=e._matDialogClose||e._matDialogCloseResult;i&&(this.dialogResult=i.currentValue)}_onButtonClick(e){k$(this.dialogRef,0===e.screenX&&0===e.screenY?"keyboard":"mouse",this.dialogResult)}static{this.\u0275fac=function(i){return new(i||t)(W(rL,8),W(Un),W(Is))}}static{this.\u0275dir=zt({type:t,selectors:[["","mat-dialog-close",""],["","matDialogClose",""]],hostVars:2,hostBindings:function(i,r){1&i&&We("click",function(s){return r._onButtonClick(s)}),2&i&&oi("aria-label",r.ariaLabel||null)("type",r.type)},inputs:{ariaLabel:[bt.None,"aria-label","ariaLabel"],type:"type",dialogResult:[bt.None,"mat-dialog-close","dialogResult"],_matDialogClose:[bt.None,"matDialogClose","_matDialogClose"]},exportAs:["matDialogClose"],standalone:!0,features:[cr]})}}return t})(),B$=(()=>{class t{constructor(e,i,r){this._dialogRef=e,this._elementRef=i,this._dialog=r}ngOnInit(){this._dialogRef||(this._dialogRef=D$(this._elementRef,this._dialog.openDialogs)),this._dialogRef&&Promise.resolve().then(()=>{this._onAdd()})}ngOnDestroy(){this._dialogRef?._containerInstance&&Promise.resolve().then(()=>{this._onRemove()})}static{this.\u0275fac=function(i){return new(i||t)(W(rL,8),W(Un),W(Is))}}static{this.\u0275dir=zt({type:t,standalone:!0})}}return t})(),sS=(()=>{class t extends B${constructor(){super(...arguments),this.id="mat-mdc-dialog-title-"+awe++}_onAdd(){this._dialogRef._containerInstance?._addAriaLabelledBy?.(this.id)}_onRemove(){this._dialogRef?._containerInstance?._removeAriaLabelledBy?.(this.id)}static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=_r(t)))(r||t)}})()}static{this.\u0275dir=zt({type:t,selectors:[["","mat-dialog-title",""],["","matDialogTitle",""]],hostAttrs:[1,"mat-mdc-dialog-title","mdc-dialog__title"],hostVars:1,hostBindings:function(i,r){2&i&&Id("id",r.id)},inputs:{id:"id"},exportAs:["matDialogTitle"],standalone:!0,features:[di]})}}return t})(),Nc=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275dir=zt({type:t,selectors:[["","mat-dialog-content",""],["mat-dialog-content"],["","matDialogContent",""]],hostAttrs:[1,"mat-mdc-dialog-content","mdc-dialog__content"],standalone:!0})}}return t})(),Oc=(()=>{class t extends B${_onAdd(){this._dialogRef._containerInstance?._updateActionSectionCount?.(1)}_onRemove(){this._dialogRef._containerInstance?._updateActionSectionCount?.(-1)}static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=_r(t)))(r||t)}})()}static{this.\u0275dir=zt({type:t,selectors:[["","mat-dialog-actions",""],["mat-dialog-actions"],["","matDialogActions",""]],hostAttrs:[1,"mat-mdc-dialog-actions","mdc-dialog__actions"],hostVars:6,hostBindings:function(i,r){2&i&&xn("mat-mdc-dialog-actions-align-start","start"===r.align)("mat-mdc-dialog-actions-align-center","center"===r.align)("mat-mdc-dialog-actions-align-end","end"===r.align)},inputs:{align:"align"},standalone:!0,features:[di]})}}return t})();function D$(t,n){let e=t.nativeElement.parentElement;for(;e&&!e.classList.contains("mat-mdc-dialog-container");)e=e.parentElement;return e?n.find(i=>i.id===e.id):null}let Np=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({providers:[Is],imports:[E1e,g1,p1,Ki,Ki]})}}return t})();const lwe=["mat-button",""],cwe=[[["",8,"material-icons",3,"iconPositionEnd",""],["mat-icon",3,"iconPositionEnd",""],["","matButtonIcon","",3,"iconPositionEnd",""]],"*",[["","iconPositionEnd","",8,"material-icons"],["mat-icon","iconPositionEnd",""],["","matButtonIcon","","iconPositionEnd",""]]],dwe=[".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])","*",".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"],uwe=new ot("MAT_BUTTON_CONFIG"),hwe=[{attribute:"mat-button",mdcClasses:["mdc-button","mat-mdc-button"]},{attribute:"mat-flat-button",mdcClasses:["mdc-button","mdc-button--unelevated","mat-mdc-unelevated-button"]},{attribute:"mat-raised-button",mdcClasses:["mdc-button","mdc-button--raised","mat-mdc-raised-button"]},{attribute:"mat-stroked-button",mdcClasses:["mdc-button","mdc-button--outlined","mat-mdc-outlined-button"]},{attribute:"mat-fab",mdcClasses:["mdc-fab","mat-mdc-fab"]},{attribute:"mat-mini-fab",mdcClasses:["mdc-fab","mdc-fab--mini","mat-mdc-mini-fab"]},{attribute:"mat-icon-button",mdcClasses:["mdc-icon-button","mat-mdc-icon-button"]}];let fwe=(()=>{class t{get ripple(){return this._rippleLoader?.getRipple(this._elementRef.nativeElement)}set ripple(e){this._rippleLoader?.attachRipple(this._elementRef.nativeElement,e)}get disableRipple(){return this._disableRipple}set disableRipple(e){this._disableRipple=e,this._updateRippleDisabled()}get disabled(){return this._disabled}set disabled(e){this._disabled=e,this._updateRippleDisabled()}constructor(e,i,r,o){this._elementRef=e,this._platform=i,this._ngZone=r,this._animationMode=o,this._focusMonitor=Ut(ih),this._rippleLoader=Ut(K1e),this._isFab=!1,this._disableRipple=!1,this._disabled=!1;const s=Ut(uwe,{optional:!0}),a=e.nativeElement,l=a.classList;this.disabledInteractive=s?.disabledInteractive??!1,this._rippleLoader?.configureRipple(a,{className:"mat-mdc-button-ripple"});for(const{attribute:c,mdcClasses:d}of hwe)a.hasAttribute(c)&&l.add(...d)}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0)}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._rippleLoader?.destroyRipple(this._elementRef.nativeElement)}focus(e="program",i){e?this._focusMonitor.focusVia(this._elementRef.nativeElement,e,i):this._elementRef.nativeElement.focus(i)}_getAriaDisabled(){return null!=this.ariaDisabled?this.ariaDisabled:!(!this.disabled||!this.disabledInteractive)||null}_getDisabledAttribute(){return!(this.disabledInteractive||!this.disabled)||null}_updateRippleDisabled(){this._rippleLoader?.setDisabled(this._elementRef.nativeElement,this.disableRipple||this.disabled)}static{this.\u0275fac=function(i){!function HU(){throw new Error("invalid")}()}}static{this.\u0275dir=zt({type:t,inputs:{color:"color",disableRipple:[bt.HasDecoratorInputTransform,"disableRipple","disableRipple",qn],disabled:[bt.HasDecoratorInputTransform,"disabled","disabled",qn],ariaDisabled:[bt.HasDecoratorInputTransform,"aria-disabled","ariaDisabled",qn],disabledInteractive:[bt.HasDecoratorInputTransform,"disabledInteractive","disabledInteractive",qn]},features:[Ho]})}}return t})(),Bs=(()=>{class t extends fwe{constructor(e,i,r,o){super(e,i,r,o)}static{this.\u0275fac=function(i){return new(i||t)(W(Un),W(Or),W(Fn),W(ts,8))}}static{this.\u0275cmp=At({type:t,selectors:[["button","mat-button",""],["button","mat-raised-button",""],["button","mat-flat-button",""],["button","mat-stroked-button",""]],hostVars:14,hostBindings:function(i,r){2&i&&(oi("disabled",r._getDisabledAttribute())("aria-disabled",r._getAriaDisabled()),Cc(r.color?"mat-"+r.color:""),xn("mat-mdc-button-disabled",r.disabled)("mat-mdc-button-disabled-interactive",r.disabledInteractive)("_mat-animation-noopable","NoopAnimations"===r._animationMode)("mat-unthemed",!r.color)("mat-mdc-button-base",!0))},exportAs:["matButton"],standalone:!0,features:[di,xr],attrs:lwe,ngContentSelectors:dwe,decls:7,vars:4,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-mdc-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,r){1&i&&(mo(cwe),_e(0,"span",0),zn(1),I(2,"span",1),zn(3,1),O(),zn(4,2),_e(5,"span",2)(6,"span",3)),2&i&&xn("mdc-button__ripple",!r._isFab)("mdc-fab__ripple",r._isFab)},styles:['.mdc-touch-target-wrapper{display:inline}.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:var(--mdc-elevation-overlay-opacity, 0);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button{position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:64px;border:none;outline:none;line-height:inherit;user-select:none;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:rgba(0,0,0,0)}.mdc-button .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-button::-moz-focus-inner{padding:0;border:0}.mdc-button:active{outline:none}.mdc-button:hover{cursor:pointer}.mdc-button:disabled{cursor:default;pointer-events:none}.mdc-button[hidden]{display:none}.mdc-button .mdc-button__icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top}[dir=rtl] .mdc-button .mdc-button__icon,.mdc-button .mdc-button__icon[dir=rtl]{margin-left:8px;margin-right:0}.mdc-button .mdc-button__progress-indicator{font-size:0;position:absolute;transform:translate(-50%, -50%);top:50%;left:50%;line-height:initial}.mdc-button .mdc-button__label{position:relative}.mdc-button .mdc-button__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px);display:none}@media screen and (forced-colors: active){.mdc-button .mdc-button__focus-ring{border-color:CanvasText}}.mdc-button .mdc-button__focus-ring::after{content:"";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-button .mdc-button__focus-ring::after{border-color:CanvasText}}@media screen and (forced-colors: active){.mdc-button.mdc-ripple-upgraded--background-focused .mdc-button__focus-ring,.mdc-button:not(.mdc-ripple-upgraded):focus .mdc-button__focus-ring{display:block}}.mdc-button .mdc-button__touch{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mdc-button__label+.mdc-button__icon{margin-left:8px;margin-right:0}[dir=rtl] .mdc-button__label+.mdc-button__icon,.mdc-button__label+.mdc-button__icon[dir=rtl]{margin-left:0;margin-right:8px}svg.mdc-button__icon{fill:currentColor}.mdc-button--touch{margin-top:6px;margin-bottom:6px}.mdc-button{padding:0 8px 0 8px}.mdc-button--unelevated{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--unelevated.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--unelevated.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--raised{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--raised.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--raised.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--outlined{border-style:solid;transition:border 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button--outlined .mdc-button__ripple{border-style:solid;border-color:rgba(0,0,0,0)}.mat-mdc-button{font-family:var(--mdc-text-button-label-text-font);font-size:var(--mdc-text-button-label-text-size);letter-spacing:var(--mdc-text-button-label-text-tracking);font-weight:var(--mdc-text-button-label-text-weight);text-transform:var(--mdc-text-button-label-text-transform);height:var(--mdc-text-button-container-height);border-radius:var(--mdc-text-button-container-shape);padding:0 var(--mat-text-button-horizontal-padding, 8px)}.mat-mdc-button:not(:disabled){color:var(--mdc-text-button-label-text-color)}.mat-mdc-button:disabled{color:var(--mdc-text-button-disabled-label-text-color)}.mat-mdc-button .mdc-button__ripple{border-radius:var(--mdc-text-button-container-shape)}.mat-mdc-button:has(.material-icons,mat-icon,[matButtonIcon]){padding:0 var(--mat-text-button-with-icon-horizontal-padding, 8px)}.mat-mdc-button>.mat-icon{margin-right:var(--mat-text-button-icon-spacing, 8px);margin-left:var(--mat-text-button-icon-offset, 0)}[dir=rtl] .mat-mdc-button>.mat-icon{margin-right:var(--mat-text-button-icon-offset, 0);margin-left:var(--mat-text-button-icon-spacing, 8px)}.mat-mdc-button .mdc-button__label+.mat-icon{margin-right:var(--mat-text-button-icon-offset, 0);margin-left:var(--mat-text-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-button .mdc-button__label+.mat-icon{margin-right:var(--mat-text-button-icon-spacing, 8px);margin-left:var(--mat-text-button-icon-offset, 0)}.mat-mdc-button .mat-ripple-element{background-color:var(--mat-text-button-ripple-color)}.mat-mdc-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-text-button-state-layer-color)}.mat-mdc-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-text-button-disabled-state-layer-color)}.mat-mdc-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-hover-state-layer-opacity)}.mat-mdc-button.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-button.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-button.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-focus-state-layer-opacity)}.mat-mdc-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-pressed-state-layer-opacity)}.mat-mdc-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-text-button-touch-target-display)}.mat-mdc-button[disabled],.mat-mdc-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-text-button-disabled-label-text-color)}.mat-mdc-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-unelevated-button{font-family:var(--mdc-filled-button-label-text-font);font-size:var(--mdc-filled-button-label-text-size);letter-spacing:var(--mdc-filled-button-label-text-tracking);font-weight:var(--mdc-filled-button-label-text-weight);text-transform:var(--mdc-filled-button-label-text-transform);height:var(--mdc-filled-button-container-height);border-radius:var(--mdc-filled-button-container-shape);padding:0 var(--mat-filled-button-horizontal-padding, 16px)}.mat-mdc-unelevated-button:not(:disabled){background-color:var(--mdc-filled-button-container-color)}.mat-mdc-unelevated-button:disabled{background-color:var(--mdc-filled-button-disabled-container-color)}.mat-mdc-unelevated-button:not(:disabled){color:var(--mdc-filled-button-label-text-color)}.mat-mdc-unelevated-button:disabled{color:var(--mdc-filled-button-disabled-label-text-color)}.mat-mdc-unelevated-button .mdc-button__ripple{border-radius:var(--mdc-filled-button-container-shape)}.mat-mdc-unelevated-button>.mat-icon{margin-right:var(--mat-filled-button-icon-spacing, 8px);margin-left:var(--mat-filled-button-icon-offset, -4px)}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon{margin-right:var(--mat-filled-button-icon-offset, -4px);margin-left:var(--mat-filled-button-icon-spacing, 8px)}.mat-mdc-unelevated-button .mdc-button__label+.mat-icon{margin-right:var(--mat-filled-button-icon-offset, -4px);margin-left:var(--mat-filled-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-unelevated-button .mdc-button__label+.mat-icon{margin-right:var(--mat-filled-button-icon-spacing, 8px);margin-left:var(--mat-filled-button-icon-offset, -4px)}.mat-mdc-unelevated-button .mat-ripple-element{background-color:var(--mat-filled-button-ripple-color)}.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-filled-button-state-layer-color)}.mat-mdc-unelevated-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-filled-button-disabled-state-layer-color)}.mat-mdc-unelevated-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-hover-state-layer-opacity)}.mat-mdc-unelevated-button.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-focus-state-layer-opacity)}.mat-mdc-unelevated-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-pressed-state-layer-opacity)}.mat-mdc-unelevated-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-filled-button-touch-target-display)}.mat-mdc-unelevated-button[disabled],.mat-mdc-unelevated-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-filled-button-disabled-label-text-color);background-color:var(--mdc-filled-button-disabled-container-color)}.mat-mdc-unelevated-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-raised-button{font-family:var(--mdc-protected-button-label-text-font);font-size:var(--mdc-protected-button-label-text-size);letter-spacing:var(--mdc-protected-button-label-text-tracking);font-weight:var(--mdc-protected-button-label-text-weight);text-transform:var(--mdc-protected-button-label-text-transform);height:var(--mdc-protected-button-container-height);border-radius:var(--mdc-protected-button-container-shape);padding:0 var(--mat-protected-button-horizontal-padding, 16px);box-shadow:var(--mdc-protected-button-container-elevation-shadow)}.mat-mdc-raised-button:not(:disabled){background-color:var(--mdc-protected-button-container-color)}.mat-mdc-raised-button:disabled{background-color:var(--mdc-protected-button-disabled-container-color)}.mat-mdc-raised-button:not(:disabled){color:var(--mdc-protected-button-label-text-color)}.mat-mdc-raised-button:disabled{color:var(--mdc-protected-button-disabled-label-text-color)}.mat-mdc-raised-button .mdc-button__ripple{border-radius:var(--mdc-protected-button-container-shape)}.mat-mdc-raised-button>.mat-icon{margin-right:var(--mat-protected-button-icon-spacing, 8px);margin-left:var(--mat-protected-button-icon-offset, -4px)}[dir=rtl] .mat-mdc-raised-button>.mat-icon{margin-right:var(--mat-protected-button-icon-offset, -4px);margin-left:var(--mat-protected-button-icon-spacing, 8px)}.mat-mdc-raised-button .mdc-button__label+.mat-icon{margin-right:var(--mat-protected-button-icon-offset, -4px);margin-left:var(--mat-protected-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-raised-button .mdc-button__label+.mat-icon{margin-right:var(--mat-protected-button-icon-spacing, 8px);margin-left:var(--mat-protected-button-icon-offset, -4px)}.mat-mdc-raised-button .mat-ripple-element{background-color:var(--mat-protected-button-ripple-color)}.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-protected-button-state-layer-color)}.mat-mdc-raised-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-protected-button-disabled-state-layer-color)}.mat-mdc-raised-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-hover-state-layer-opacity)}.mat-mdc-raised-button.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-focus-state-layer-opacity)}.mat-mdc-raised-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-pressed-state-layer-opacity)}.mat-mdc-raised-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-protected-button-touch-target-display)}.mat-mdc-raised-button:hover{box-shadow:var(--mdc-protected-button-hover-container-elevation-shadow)}.mat-mdc-raised-button:focus{box-shadow:var(--mdc-protected-button-focus-container-elevation-shadow)}.mat-mdc-raised-button:active,.mat-mdc-raised-button:focus:active{box-shadow:var(--mdc-protected-button-pressed-container-elevation-shadow)}.mat-mdc-raised-button[disabled],.mat-mdc-raised-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-protected-button-disabled-label-text-color);background-color:var(--mdc-protected-button-disabled-container-color)}.mat-mdc-raised-button[disabled].mat-mdc-button-disabled,.mat-mdc-raised-button.mat-mdc-button-disabled.mat-mdc-button-disabled{box-shadow:var(--mdc-protected-button-disabled-container-elevation-shadow)}.mat-mdc-raised-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-outlined-button{font-family:var(--mdc-outlined-button-label-text-font);font-size:var(--mdc-outlined-button-label-text-size);letter-spacing:var(--mdc-outlined-button-label-text-tracking);font-weight:var(--mdc-outlined-button-label-text-weight);text-transform:var(--mdc-outlined-button-label-text-transform);height:var(--mdc-outlined-button-container-height);border-radius:var(--mdc-outlined-button-container-shape);padding:0 15px 0 15px;border-width:var(--mdc-outlined-button-outline-width);padding:0 var(--mat-outlined-button-horizontal-padding, 15px)}.mat-mdc-outlined-button:not(:disabled){color:var(--mdc-outlined-button-label-text-color)}.mat-mdc-outlined-button:disabled{color:var(--mdc-outlined-button-disabled-label-text-color)}.mat-mdc-outlined-button .mdc-button__ripple{border-radius:var(--mdc-outlined-button-container-shape)}.mat-mdc-outlined-button:not(:disabled){border-color:var(--mdc-outlined-button-outline-color)}.mat-mdc-outlined-button:disabled{border-color:var(--mdc-outlined-button-disabled-outline-color)}.mat-mdc-outlined-button.mdc-button--icon-trailing{padding:0 11px 0 15px}.mat-mdc-outlined-button.mdc-button--icon-leading{padding:0 15px 0 11px}.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:var(--mdc-outlined-button-outline-width)}.mat-mdc-outlined-button .mdc-button__touch{left:calc(-1 * var(--mdc-outlined-button-outline-width));width:calc(100% + 2 * var(--mdc-outlined-button-outline-width))}.mat-mdc-outlined-button>.mat-icon{margin-right:var(--mat-outlined-button-icon-spacing, 8px);margin-left:var(--mat-outlined-button-icon-offset, -4px)}[dir=rtl] .mat-mdc-outlined-button>.mat-icon{margin-right:var(--mat-outlined-button-icon-offset, -4px);margin-left:var(--mat-outlined-button-icon-spacing, 8px)}.mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-right:var(--mat-outlined-button-icon-offset, -4px);margin-left:var(--mat-outlined-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-right:var(--mat-outlined-button-icon-spacing, 8px);margin-left:var(--mat-outlined-button-icon-offset, -4px)}.mat-mdc-outlined-button .mat-ripple-element{background-color:var(--mat-outlined-button-ripple-color)}.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-outlined-button-state-layer-color)}.mat-mdc-outlined-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-outlined-button-disabled-state-layer-color)}.mat-mdc-outlined-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-hover-state-layer-opacity)}.mat-mdc-outlined-button.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-focus-state-layer-opacity)}.mat-mdc-outlined-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-pressed-state-layer-opacity)}.mat-mdc-outlined-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-outlined-button-touch-target-display)}.mat-mdc-outlined-button[disabled],.mat-mdc-outlined-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-outlined-button-disabled-label-text-color);border-color:var(--mdc-outlined-button-disabled-outline-color)}.mat-mdc-outlined-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-button-base{text-decoration:none}.mat-mdc-button,.mat-mdc-unelevated-button,.mat-mdc-raised-button,.mat-mdc-outlined-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0}.mat-mdc-button .mdc-button__label,.mat-mdc-unelevated-button .mdc-button__label,.mat-mdc-raised-button .mdc-button__label,.mat-mdc-outlined-button .mdc-button__label{z-index:1}.mat-mdc-button .mat-mdc-focus-indicator,.mat-mdc-unelevated-button .mat-mdc-focus-indicator,.mat-mdc-raised-button .mat-mdc-focus-indicator,.mat-mdc-outlined-button .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-unelevated-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-raised-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-outlined-button:focus .mat-mdc-focus-indicator::before{content:""}.mat-mdc-button._mat-animation-noopable,.mat-mdc-unelevated-button._mat-animation-noopable,.mat-mdc-raised-button._mat-animation-noopable,.mat-mdc-outlined-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon,.mat-mdc-raised-button>.mat-icon,.mat-mdc-outlined-button>.mat-icon{display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem}.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:-1px}.mat-mdc-unelevated-button .mat-mdc-focus-indicator::before,.mat-mdc-raised-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 2px)*-1)}.mat-mdc-outlined-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 3px)*-1)}',".cdk-high-contrast-active .mat-mdc-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-unelevated-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-raised-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-outlined-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-icon-button{outline:solid 1px}"],encapsulation:2,changeDetection:0})}}return t})(),oL=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[Ki,P0,Ki]})}}return t})();function pwe(t,n){if(1&t){const e=kn();I(0,"button",5),We("click",function(){return Ft(e),kt(He().data.resolveErrorData.onResolveErrorClick())}),ve(1),O()}if(2&t){const e=He();H(),an(" ",e.data.resolveErrorData.buttonText," ")}}let Op=(()=>{class t{constructor(e){this.data=e}static{this.\u0275fac=function(i){return new(i||t)(W(w1))}}static{this.\u0275cmp=At({type:t,selectors:[["ng-component"]],decls:7,vars:3,consts:[["mat-dialog-title",""],["mat-dialog-content","",3,"innerHTML"],["mat-dialog-actions","","align","end"],["mat-button","","mat-dialog-close","",3,"click",4,"ngIf"],["mat-button","","mat-dialog-close",""],["mat-button","","mat-dialog-close","",3,"click"]],template:function(i,r){1&i&&(I(0,"h1",0),ve(1),O(),_e(2,"div",1),I(3,"div",2),ft(4,pwe,2,1,"button",3),I(5,"button",4),ve(6,"OK"),O()()),2&i&&(H(),ur(r.data.title),H(),ue("innerHTML",r.data.message,vI),H(2),ue("ngIf",r.data.resolveErrorData))},dependencies:[p0,Bs,ic,sS,Oc,Nc],encapsulation:2})}}return t})();function Awe(t){return{title:"Something is wrong with the loaded file(s)",message:[...gwe(t),...bwe(t)].join("")}}function gwe(t){const n=t.filter(e=>e.errors.length>0);return n.length>0?["

Errors

",...n.map(e=>function _we(t){return`

${t.fileName}: ${sL(' ',t.errors)}

`}(e))]:[]}function bwe(t){const n=t.filter(e=>e.warnings.length>0);return n.length>0?["

Warnings

",...n.map(e=>function vwe(t){return`

${t.fileName}: ${sL(' ',t.warnings)}

`}(e))]:[]}function sL(t,n){return`

${n.map(e=>t+e).join("
")}

`}var ywe=p(7172),L$=p.n(ywe);const x1=JSON.parse('{"rE":"1.127.1","f4":{"X":"1.3"}}'),wwe=JSON.parse('{"$ref":"#/definitions/ExportCCFile","$schema":"http://json-schema.org/draft-07/schema#","definitions":{"AttributeTypes":{"properties":{"edges":{"additionalProperties":{"enum":["absolute","relative"],"type":"string"},"type":"object"},"nodes":{"additionalProperties":{"enum":["absolute","relative"],"type":"string"},"type":"object"}},"type":"object"},"CodeMapNode":{"properties":{"attributes":{"$ref":"#/definitions/KeyValuePair"},"children":{"items":{"$ref":"#/definitions/CodeMapNode"},"type":"array"},"deltas":{"additionalProperties":{"type":"number"},"type":"object"},"edgeAttributes":{"additionalProperties":{"$ref":"#/definitions/EdgeMetricCount"},"type":"object"},"fixedPosition":{"$ref":"#/definitions/FixedPosition"},"id":{"type":"number"},"isExcluded":{"type":"boolean"},"isFlattened":{"type":"boolean"},"link":{"type":"string"},"name":{"type":"string"},"path":{"type":"string"},"type":{"$ref":"#/definitions/NodeType"}},"required":["name","type"],"type":"object"},"Edge":{"properties":{"attributes":{"$ref":"#/definitions/KeyValuePair"},"fromNodeName":{"type":"string"},"toNodeName":{"type":"string"},"visible":{"$ref":"#/definitions/EdgeVisibility"}},"required":["attributes","fromNodeName","toNodeName"],"type":"object"},"EdgeMetricCount":{"properties":{"incoming":{"type":"number"},"outgoing":{"type":"number"}},"required":["incoming","outgoing"],"type":"object"},"EdgeVisibility":{"enum":["both","from","none","to"],"type":"string"},"ExportBlacklistItem":{"properties":{"path":{"type":"string"},"type":{"$ref":"#/definitions/ExportBlacklistType"}},"required":["path","type"],"type":"object"},"ExportBlacklistType":{"enum":["exclude","hide"],"type":"string"},"ExportCCFile":{"properties":{"apiVersion":{"type":"string"},"attributeTypes":{"anyOf":[{"$ref":"#/definitions/OldAttributeTypes"},{"$ref":"#/definitions/AttributeTypes"}]},"blacklist":{"items":{"$ref":"#/definitions/ExportBlacklistItem"},"type":"array"},"edges":{"items":{"$ref":"#/definitions/Edge"},"type":"array"},"markedPackages":{"items":{"$ref":"#/definitions/MarkedPackage"},"type":"array"},"nodes":{"items":{"$ref":"#/definitions/CodeMapNode"},"type":"array"},"projectName":{"type":"string"}},"required":["apiVersion","nodes","projectName"],"type":"object"},"FixedPosition":{"properties":{"height":{"type":"number"},"left":{"type":"number"},"top":{"type":"number"},"width":{"type":"number"}},"required":["height","left","top","width"],"type":"object"},"KeyValuePair":{"additionalProperties":{"type":"number"},"type":"object"},"MarkedPackage":{"properties":{"color":{"type":"string"},"path":{"type":"string"}},"required":["color","path"],"type":"object"},"NodeType":{"enum":["File","Folder"],"type":"string"},"OldAttributeTypes":{"properties":{"edges":{"additionalItems":{"anyOf":[{"additionalProperties":{"enum":["absolute","relative"],"type":"string"},"type":"object"}]},"items":[{"additionalProperties":{"enum":["absolute","relative"],"type":"string"},"type":"object"}],"minItems":0,"type":"array"},"nodes":{"additionalItems":{"anyOf":[{"additionalProperties":{"enum":["absolute","relative"],"type":"string"},"type":"object"}]},"items":[{"additionalProperties":{"enum":["absolute","relative"],"type":"string"},"type":"object"}],"minItems":0,"type":"array"}},"type":"object"}}}'),P$=x1.f4.X,Gd={fileIsInvalid:"File is empty or invalid.",apiVersionIsInvalid:"API Version is empty or invalid.",majorApiVersionIsOutdated:"API Version Outdated: Update CodeCharta API Version to match cc.json.",minorApiVersionOutdated:"Minor API Version Outdated.",nodesNotUnique:"Node names in combination with node types are not unique.",nodesEmpty:"The nodes array is empty. At least one node is required.",notAllFoldersAreFixed:"If at least one direct sub-folder of root is marked as fixed, all direct sub-folders of root must be fixed.",fixedFoldersOutOfBounds:"Coordinates of fixed folders must be within a range of 0 and 100.",fixedFoldersOverlapped:"Folders may not overlap.",fixedFoldersNotAllowed:"Fixated folders may not be defined in API-Version < 1.2.",fileAlreadyExists:"File already exists.",blacklistError:"Excluding all buildings is not possible."};function xwe(t){const n=[];return t&&function Twe(t){return C1(t.apiVersion).minor>C1(P$).minor}(t)&&n.push(`${Gd.minorApiVersionOutdated} Found: ${t.apiVersion}`),n}function Cwe(t){const n=[];switch(!0){case!t:n.push(Gd.fileIsInvalid);break;case!function Mwe(t){const{apiVersion:n}=t,e=void 0!==n,r=/\d+\.\d+/.test(n);return e&&r}(t):n.push(Gd.apiVersionIsInvalid);break;case function Swe(t){return C1(t.apiVersion).major>C1(P$).major}(t):n.push(Gd.majorApiVersionIsOutdated)}return 0===n.length&&n.push(...function Ewe(t){const n=[];if(0===n.length){const i=new(L$())({allErrors:!0}).compile(wwe);i(t)?0===t.nodes.length?n.push(Gd.nodesEmpty):n.push(...function kwe(t){const n=[],e=new Set;return e.add(`${t.name}|${t.type}`),N$(t,n,e,`/${t.name}`),n}(t.nodes[0]),...O$(t)):n.push(...i.errors.map(o=>function Fwe(t){return`${t.keyword.charAt(0).toUpperCase()+t.keyword.slice(1)} error: ${t.dataPath.slice(1)} ${t.message}`}(o)))}return n}(t)),n}function C1(t){return{major:Number(t.split(".")[0]),minor:Number(t.split(".")[1])}}function N$(t,n,e,i){if(!Eo(t))for(const r of t.children){const o=`${i}/${r.name}`;e.has(`${o}|${r.type}`)?n.push(`${Gd.nodesNotUnique} Found duplicate of ${r.type} with path: ${o}`):(e.add(`${o}|${r.type}`),N$(r,n,e,o))}}function O$(t,n=t.nodes[0].children){const e=[],i=[],r=[],o=new Set;(function Iwe(t,n,e,i,r,o){for(const s of t)if(void 0===s.fixedPosition)n.push(`${s.name}`);else{const a=C1(e.apiVersion);if(a.major<1||1===a.major&&a.minor<2)return void i.push(`${Gd.fixedFoldersNotAllowed} Found: ${e.apiVersion}`);Dwe(s)&&r.push(E1(s));for(const l of t)void 0!==l.fixedPosition&&s!==l&&Bwe(s.fixedPosition,l.fixedPosition)&&!o.has(`${E1(l)} and ${E1(s)}`)&&o.add(`${E1(s)} and ${E1(l)}`)}})(n,i,t,e,r,o),i.length>0&&i.length!==n.length&&e.push(`${Gd.notAllFoldersAreFixed} Found: ${i.join(", ")}`),r.length>0&&e.push(`${Gd.fixedFoldersOutOfBounds} Found: ${r.join(", ")}`),o.size>0&&e.push(`${Gd.fixedFoldersOverlapped} Found: ${[...o].join(", ")}`);for(const s of n)s.children&&e.push(...O$(t,s.children));return e}function E1(t){return`${t.name} ${JSON.stringify(t.fixedPosition)}`}function Bwe(t,n){return aS(t.left,t.top,n)||aS(t.left,t.top+t.height,n)||aS(t.left+t.width,t.top,n)||aS(t.left+t.width,t.top+t.height,n)}function aS(t,n,e){return t>=e.left&&t<=e.left+e.width&&n>=e.top&&n<=e.top+e.height}function Dwe({fixedPosition:{left:t,top:n,width:e,height:i}}){return t<0||n<0||t+e>100||n+i>100||e<0||i<0}var qd=function(t){return t.SquarifiedTreeMap="Squarified TreeMap",t.StreetMap="StreetMap",t.TreeMapStreet="TreeMapStreet",t}(qd||{}),Up=function(t){return t.Standard="High",t.PixelRatioNoAA="Low",t.PixelRatioFXAA="Medium",t.PixelRatioAA="Best",t}(Up||{}),Ma=function(t){return t.FILE="File",t.FOLDER="Folder",t}(Ma||{}),lS=function(t){return t.NAME="Name",t.NUMBER_OF_FILES="Number of Files",t}(lS||{}),Gf=function(t){return t.absolute="absolute",t.relative="relative",t}(Gf||{}),qf=function(t){return t.trueGradient="trueGradient",t.weightedGradient="weightedGradient",t.focusedGradient="focusedGradient",t.absolute="absolute",t}(qf||{}),Wd=function(t){return t.none="none",t.from="from",t.to="to",t.both="both",t}(Wd||{});function cS(t,n){return n instanceof Map?{dataType:"Map",value:[...n.entries()]}:n instanceof Set?{dataType:"Set",value:[...n]}:n}function U$(t,n){return"Map"===n?.dataType?new Map(n.value):"Set"===n?.dataType?new Set(n.value):n}const aL={decorateMap(t,n,e){for(const{data:i}of io(t)){i.isFlattened=!1,i.isExcluded=!1;for(const r of e)"flatten"===r.type?i.isFlattened=i.isFlattened||bW(i,r.path):i.isExcluded=i.isExcluded||bW(i,r.path)&&Eo(i)}t.isExcluded=!1,this.decorateMapWithMetricData(t,n)},decorateMapWithMetricData(t,n){const{nodeMetricData:e,edgeMetricData:i}=n;let r=0;for(const{data:o}of io(t)){o.id=r,r++,void 0===o.attributes&&(o.attributes={}),Eo(o)&&(o.attributes[PM]=1);for(const s of e)void 0===o.attributes[s.name]&&(o.attributes[s.name]=0),void 0!==o.deltas&&void 0===o.deltas[s.name]&&(o.deltas[s.name]=0);void 0===o.edgeAttributes&&(o.edgeAttributes={});for(const s of i)void 0===o.edgeAttributes[s.name]&&(o.edgeAttributes[s.name]={incoming:0,outgoing:0});Rwe(o)}},decorateMapWithPathAttribute(t){for(const n of io(t.map))n.data.path=n.parent?`${n.parent.data.path}/${n.data.name}`:`/${n.data.name}`;return t},decorateParentNodesWithAggregatedAttributes(t,n,e){const i=new Map,r=Object.keys(t.attributes),o=Object.keys(t.edgeAttributes);io(t).eachAfter(function({data:a,parent:l}){if(!a.isExcluded&&l){for(const c of r){const u=`${c}${l.data.path}`;e.nodes[c]===Gf.relative?(Pwe(i,`${c}${a.path}`,u,a,c,n),Lwe(i,u,a,c,n)):(l.data.attributes[c]+=a.attributes[c],n&&l.data.deltas&&(l.data.deltas[c]=l.data.deltas[c]??0,l.data.deltas[c]+=a.deltas[c]??0))}n&&l.data.fileCount&&(l.data.fileCount.added+=a.fileCount.added,l.data.fileCount.changed+=a.fileCount.changed,l.data.fileCount.removed+=a.fileCount.removed);for(const c of o){const d=a.edgeAttributes[c];if(!d)continue;const u=`${c}${a.path}`,h=`${c}${l.data.path}`;e.edges[c]===Gf.relative?(V$(i,`INCOMING${u}`,`INCOMING${h}`,a,c,"incoming"),V$(i,`OUTGOING${u}`,`OUTGOING${h}`,a,c,"outgoing"),H$(i,`INCOMING${h}`,a,c,"incoming"),H$(i,`OUTGOING${h}`,a,c,"outgoing")):(l.data.edgeAttributes[c].incoming+=d.incoming,l.data.edgeAttributes[c].outgoing+=d.outgoing)}}});for(const s of o)e.edges[s]===Gf.relative&&(t.edgeAttributes[s].incoming=Hp(i.get(`INCOMING${s}${t.path}`)),t.edgeAttributes[s].outgoing=Hp(i.get(`OUTGOING${s}${t.path}`)));for(const s of r)e.nodes[s]===Gf.relative&&(t.attributes[s]=Hp(i.get(`MEDIAN${s}${t.path}`)),n&&t.deltas&&(t.deltas[s]=Hp(i.get(`DELTA${s}${t.path}`))))}};function Rwe(t){if((1!==t.children?.length||!t.children[0]?.fixedPosition)&&1===t.children?.length&&t.children[0].children?.length>0){const[n]=t.children;t.children=n.children,t.name+=`/${n.name}`,t.path+=`/${n.name}`,n.link&&(t.link=n.link)}}function H$(t,n,e,i,r){0!==e.edgeAttributes[i][r]&&cL(t,n,e,e.edgeAttributes[i][r])}function Lwe(t,n,e,i,r){0!==e.attributes[i]&&cL(t,`MEDIAN${n}`,e,e.attributes[i]),r&&e.deltas&&0!==e.deltas[i]&&cL(t,`DELTA${n}`,e,e.deltas[i])}function Pwe(t,n,e,i,r,o){if(Eo(i))return;const s=t.get(`MEDIAN${n}`);if(void 0!==s&&(i.attributes[r]=Hp(s),lL(t,`MEDIAN${e}`,s)),o&&i.deltas){const a=t.get(`DELTA${n}`);void 0!==a&&(i.deltas[r]=Hp(a),lL(t,`DELTA${e}`,a))}}function V$(t,n,e,i,r,o){if(Eo(i))return;const s=t.get(n);void 0!==s&&(i.edgeAttributes[r][o]=Hp(s),lL(t,e,s))}function lL(t,n,e){const i=t.get(n);void 0===i?t.set(n,e):function Owe(t,n){let e=0;for(let i=0;in[e]&&(r++,e++,e!==n.length););if(r>0&&(t.splice(i,0,...n.slice(e-r,e)),e===n.length))return}t.push(...n.slice(e))}(i,e)}function cL(t,n,e,i){const r=t.get(n);void 0===r?t.set(n,[i]):Eo(e)&&function Nwe(t,n){let e=0,i=t.length-1,r=0;if(i<0||t[i]<=n)t.push(n);else if(t[0]>=n)t.unshift(n);else for(;e<=i;)if(r=Math.floor((e+i)/2),t[r]{switch(n.type){case"flatten":return{path:n.path,type:"hide"};case"exclude":return{path:n.path,type:n.type}}})}}function Vwe(t,n,e){const i=function Mve(t){const n=t.content;return{fileMeta:{fileName:t.fileName,fileChecksum:n.fileChecksum,projectName:n.projectName,apiVersion:n.apiVersion,exportedFileSize:t.fileSize,repoCreationDate:n.repoCreationDate||""},settings:{fileSettings:{edges:n.edges||[],attributeTypes:Sve(n.attributeTypes),attributeDescriptors:Tve(n.attributeDescriptors),blacklist:Fve(n.blacklist||[]),markedPackages:n.markedPackages||[]}},map:Hd(n.nodes[0])}}(e);aL.decorateMapWithPathAttribute(i);const r=i.fileMeta.fileChecksum;let o=i.fileMeta.fileName;const s=new Map(t.map(c=>[c.file.fileMeta.fileName,c.file.fileMeta.fileChecksum])),a=new Map(t.map((c,d)=>[c.file.fileMeta.fileChecksum,d])),l=a.has(r);if(s.has(o)&&(o=function Qwe(t,n,e){if(n.get(t)===e)return t;let i=!1,r=1,o=t;for(;!i;){const s=t.indexOf(".");o=s>=0?[t.slice(0,s),"_",r,t.slice(s)].join(""):`${t}_${r}`,(n.get(o)===e||!n.has(o))&&(i=!0),r++}return o}(o,s,r),i.fileMeta.fileName=o),l)return t[a.get(r)].file.fileMeta.fileName=o,n[0]=o,void n.push(o);t.push({file:i,selectedAs:Pi.None}),n.push(o)}const z$=Xt(Zu,t=>t.find(n=>n.selectedAs===Pi.Reference)?.file),$d={rootName:"root",rootPath:"/root",updateRoot(t){this.rootName=t,this.rootPath=`/${t}`}},dL="File(s) could not be loaded";let N0=(()=>{class t{static{this.CC_FILE_EXTENSION=".cc.json"}constructor(e,i,r){this.store=e,this.state=i,this.dialog=r,this.referenceFileSubscription=this.store.select(z$).pipe(Nr(o=>{o&&$d.updateRoot(o.map.name)})).subscribe()}ngOnDestroy(){this.referenceFileSubscription.unsubscribe()}loadFiles(e){const i=Hd(this.state.getValue().files),r=[],o=[];if(function Hwe(t,n,e,i){for(const r of e){const o={fileName:r?.fileName,errors:[],warnings:[]};o.errors.push(...Cwe(r?.content)),0===o.errors.length&&(o.warnings.push(...xwe(r?.content)),Vwe(t,n,r)),(o.errors.length>0||o.warnings.length>0)&&i.push(o)}}(i,r,e,o),o.length>0&&this.dialog.open(Op,{data:Awe(o)}),0===r.length)throw new Error(dL);this.store.dispatch(s1({value:i}));const s=r[0],a=this.state.getValue().files.find(l=>l.file.fileMeta.fileName===s).file.map.name;this.store.dispatch(bR({fileNames:r})),$d.updateRoot(a)}static{this.\u0275fac=function(i){return new(i||t)(oe(Wt),oe(Br),oe(Is))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();const uL=Si(t=>function(){t(this),this.name="EmptyError",this.message="no elements in sequence"});function G$(t,n){const e="object"==typeof n;return new Promise((i,r)=>{const o=new cl({next:s=>{i(s),o.unsubscribe()},error:r,complete:()=>{e?i(n.defaultValue):r(new uL)}});t.subscribe(o)})}function O0(t){let n=t.length;for(;--n>=0;)t[n]=0}const AL=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),dS=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),Xwe=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),Z$=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),ah=new Array(576);O0(ah);const T1=new Array(60);O0(T1);const F1=new Array(512);O0(F1);const k1=new Array(256);O0(k1);const gL=new Array(29);O0(gL);const uS=new Array(30);function bL(t,n,e,i,r){this.static_tree=t,this.extra_bits=n,this.extra_base=e,this.elems=i,this.max_length=r,this.has_stree=t&&t.length}let J$,ej,tj;function _L(t,n){this.dyn_tree=t,this.max_code=0,this.stat_desc=n}O0(uS);const nj=t=>t<256?F1[t]:F1[256+(t>>>7)],I1=(t,n)=>{t.pending_buf[t.pending++]=255&n,t.pending_buf[t.pending++]=n>>>8&255},rl=(t,n,e)=>{t.bi_valid>16-e?(t.bi_buf|=n<>16-t.bi_valid,t.bi_valid+=e-16):(t.bi_buf|=n<{rl(t,e[2*n],e[2*n+1])},ij=(t,n)=>{let e=0;do{e|=1&t,t>>>=1,e<<=1}while(--n>0);return e>>>1},rj=(t,n,e)=>{const i=new Array(16);let o,s,r=0;for(o=1;o<=15;o++)r=r+e[o-1]<<1,i[o]=r;for(s=0;s<=n;s++){let a=t[2*s+1];0!==a&&(t[2*s]=ij(i[a]++,a))}},oj=t=>{let n;for(n=0;n<286;n++)t.dyn_ltree[2*n]=0;for(n=0;n<30;n++)t.dyn_dtree[2*n]=0;for(n=0;n<19;n++)t.bl_tree[2*n]=0;t.dyn_ltree[512]=1,t.opt_len=t.static_len=0,t.sym_next=t.matches=0},sj=t=>{t.bi_valid>8?I1(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0},aj=(t,n,e,i)=>{const r=2*n,o=2*e;return t[r]{const i=t.heap[e];let r=e<<1;for(;r<=t.heap_len&&(r{let i,r,s,a,o=0;if(0!==t.sym_next)do{i=255&t.pending_buf[t.sym_buf+o++],i+=(255&t.pending_buf[t.sym_buf+o++])<<8,r=t.pending_buf[t.sym_buf+o++],0===i?jd(t,r,n):(s=k1[r],jd(t,s+256+1,n),a=AL[s],0!==a&&(r-=gL[s],rl(t,r,a)),i--,s=nj(i),jd(t,s,e),a=dS[s],0!==a&&(i-=uS[s],rl(t,i,a)))}while(o{const e=n.dyn_tree,i=n.stat_desc.static_tree,r=n.stat_desc.has_stree,o=n.stat_desc.elems;let s,a,c,l=-1;for(t.heap_len=0,t.heap_max=573,s=0;s>1;s>=1;s--)vL(t,e,s);c=o;do{s=t.heap[1],t.heap[1]=t.heap[t.heap_len--],vL(t,e,1),a=t.heap[1],t.heap[--t.heap_max]=s,t.heap[--t.heap_max]=a,e[2*c]=e[2*s]+e[2*a],t.depth[c]=(t.depth[s]>=t.depth[a]?t.depth[s]:t.depth[a])+1,e[2*s+1]=e[2*a+1]=c,t.heap[1]=c++,vL(t,e,1)}while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],((t,n)=>{const e=n.dyn_tree,i=n.max_code,r=n.stat_desc.static_tree,o=n.stat_desc.has_stree,s=n.stat_desc.extra_bits,a=n.stat_desc.extra_base,l=n.stat_desc.max_length;let c,d,u,h,m,A,v=0;for(h=0;h<=15;h++)t.bl_count[h]=0;for(e[2*t.heap[t.heap_max]+1]=0,c=t.heap_max+1;c<573;c++)d=t.heap[c],h=e[2*e[2*d+1]+1]+1,h>l&&(h=l,v++),e[2*d+1]=h,!(d>i)&&(t.bl_count[h]++,m=0,d>=a&&(m=s[d-a]),A=e[2*d],t.opt_len+=A*(h+m),o&&(t.static_len+=A*(r[2*d+1]+m)));if(0!==v){do{for(h=l-1;0===t.bl_count[h];)h--;t.bl_count[h]--,t.bl_count[h+1]+=2,t.bl_count[l]--,v-=2}while(v>0);for(h=l;0!==h;h--)for(d=t.bl_count[h];0!==d;)u=t.heap[--c],!(u>i)&&(e[2*u+1]!==h&&(t.opt_len+=(h-e[2*u+1])*e[2*u],e[2*u+1]=h),d--)}})(t,n),rj(e,l,t.bl_count)},cj=(t,n,e)=>{let i,o,r=-1,s=n[1],a=0,l=7,c=4;for(0===s&&(l=138,c=3),n[2*(e+1)+1]=65535,i=0;i<=e;i++)o=s,s=n[2*(i+1)+1],!(++a{let i,o,r=-1,s=n[1],a=0,l=7,c=4;for(0===s&&(l=138,c=3),i=0;i<=e;i++)if(o=s,s=n[2*(i+1)+1],!(++a{rl(t,0+(i?1:0),3),sj(t),I1(t,e),I1(t,~e),e&&t.pending_buf.set(t.window.subarray(n,n+e),t.pending),t.pending+=e};var fxe={_tr_init:t=>{uj||((()=>{let t,n,e,i,r;const o=new Array(16);for(e=0,i=0;i<28;i++)for(gL[i]=e,t=0;t<1<>=7;i<30;i++)for(uS[i]=r<<7,t=0;t<1<{let r,o,s=0;t.level>0?(2===t.strm.data_type&&(t.strm.data_type=(t=>{let e,n=4093624447;for(e=0;e<=31;e++,n>>>=1)if(1&n&&0!==t.dyn_ltree[2*e])return 0;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return 1;for(e=32;e<256;e++)if(0!==t.dyn_ltree[2*e])return 1;return 0})(t)),yL(t,t.l_desc),yL(t,t.d_desc),s=(t=>{let n;for(cj(t,t.dyn_ltree,t.l_desc.max_code),cj(t,t.dyn_dtree,t.d_desc.max_code),yL(t,t.bl_desc),n=18;n>=3&&0===t.bl_tree[2*Z$[n]+1];n--);return t.opt_len+=3*(n+1)+5+5+4,n})(t),r=t.opt_len+3+7>>>3,o=t.static_len+3+7>>>3,o<=r&&(r=o)):r=o=e+5,e+4<=r&&-1!==n?hj(t,n,e,i):4===t.strategy||o===r?(rl(t,2+(i?1:0),3),lj(t,ah,T1)):(rl(t,4+(i?1:0),3),((t,n,e,i)=>{let r;for(rl(t,n-257,5),rl(t,e-1,5),rl(t,i-4,4),r=0;r(t.pending_buf[t.sym_buf+t.sym_next++]=n,t.pending_buf[t.sym_buf+t.sym_next++]=n>>8,t.pending_buf[t.sym_buf+t.sym_next++]=e,0===n?t.dyn_ltree[2*e]++:(t.matches++,n--,t.dyn_ltree[2*(k1[e]+256+1)]++,t.dyn_dtree[2*nj(n)]++),t.sym_next===t.sym_end),_tr_align:t=>{rl(t,2,3),jd(t,256,ah),(t=>{16===t.bi_valid?(I1(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)})(t)}},B1=(t,n,e,i)=>{let r=65535&t,o=t>>>16&65535,s=0;for(;0!==e;){s=e>2e3?2e3:e,e-=s;do{r=r+n[i++]|0,o=o+r|0}while(--s);r%=65521,o%=65521}return r|o<<16};const pxe=new Uint32Array((()=>{let t,n=[];for(var e=0;e<256;e++){t=e;for(var i=0;i<8;i++)t=1&t?3988292384^t>>>1:t>>>1;n[e]=t}return n})());var Ds=(t,n,e,i)=>{const r=pxe,o=i+e;t^=-1;for(let s=i;s>>8^r[255&(t^n[s])];return~t},Qp={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},zp={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:Axe,_tr_stored_block:wL,_tr_flush_block:gxe,_tr_tally:Wf,_tr_align:bxe}=fxe,{Z_NO_FLUSH:$f,Z_PARTIAL_FLUSH:_xe,Z_FULL_FLUSH:vxe,Z_FINISH:rc,Z_BLOCK:fj,Z_OK:js,Z_STREAM_END:mj,Z_STREAM_ERROR:Kd,Z_DATA_ERROR:yxe,Z_BUF_ERROR:xL,Z_DEFAULT_COMPRESSION:wxe,Z_FILTERED:xxe,Z_HUFFMAN_ONLY:hS,Z_RLE:Cxe,Z_FIXED:Exe,Z_DEFAULT_STRATEGY:Mxe,Z_UNKNOWN:Sxe,Z_DEFLATED:fS}=zp,Xd=262,Wp=(t,n)=>(t.msg=Qp[n],n),pj=t=>2*t-(t>4?9:0),Kf=t=>{let n=t.length;for(;--n>=0;)t[n]=0},Nxe=t=>{let n,e,i,r=t.w_size;n=t.hash_size,i=n;do{e=t.head[--i],t.head[i]=e>=r?e-r:0}while(--n);n=r,i=n;do{e=t.prev[--i],t.prev[i]=e>=r?e-r:0}while(--n)};let Xf=(t,n,e)=>(n<{const n=t.state;let e=n.pending;e>t.avail_out&&(e=t.avail_out),0!==e&&(t.output.set(n.pending_buf.subarray(n.pending_out,n.pending_out+e),t.next_out),t.next_out+=e,n.pending_out+=e,t.total_out+=e,t.avail_out-=e,n.pending-=e,0===n.pending&&(n.pending_out=0))},kl=(t,n)=>{gxe(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,n),t.block_start=t.strstart,Fl(t.strm)},Ar=(t,n)=>{t.pending_buf[t.pending++]=n},R1=(t,n)=>{t.pending_buf[t.pending++]=n>>>8&255,t.pending_buf[t.pending++]=255&n},kL=(t,n,e,i)=>{let r=t.avail_in;return r>i&&(r=i),0===r?0:(t.avail_in-=r,n.set(t.input.subarray(t.next_in,t.next_in+r),e),1===t.state.wrap?t.adler=B1(t.adler,n,r,e):2===t.state.wrap&&(t.adler=Ds(t.adler,n,r,e)),t.next_in+=r,t.total_in+=r,r)},Aj=(t,n)=>{let r,o,e=t.max_chain_length,i=t.strstart,s=t.prev_length,a=t.nice_match;const l=t.strstart>t.w_size-Xd?t.strstart-(t.w_size-Xd):0,c=t.window,d=t.w_mask,u=t.prev,h=t.strstart+258;let m=c[i+s-1],A=c[i+s];t.prev_length>=t.good_match&&(e>>=2),a>t.lookahead&&(a=t.lookahead);do{if(r=n,c[r+s]===A&&c[r+s-1]===m&&c[r]===c[i]&&c[++r]===c[i+1]){i+=2,r++;do{}while(c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&is){if(t.match_start=n,s=o,o>=a)break;m=c[i+s-1],A=c[i+s]}}}while((n=u[n&d])>l&&0!=--e);return s<=t.lookahead?s:t.lookahead},z0=t=>{const n=t.w_size;let e,i,r;do{if(i=t.window_size-t.lookahead-t.strstart,t.strstart>=n+(n-Xd)&&(t.window.set(t.window.subarray(n,n+n-i),0),t.match_start-=n,t.strstart-=n,t.block_start-=n,t.insert>t.strstart&&(t.insert=t.strstart),Nxe(t),i+=n),0===t.strm.avail_in)break;if(e=kL(t.strm,t.window,t.strstart+t.lookahead,i),t.lookahead+=e,t.lookahead+t.insert>=3)for(r=t.strstart-t.insert,t.ins_h=t.window[r],t.ins_h=Xf(t,t.ins_h,t.window[r+1]);t.insert&&(t.ins_h=Xf(t,t.ins_h,t.window[r+3-1]),t.prev[r&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=r,r++,t.insert--,!(t.lookahead+t.insert<3)););}while(t.lookahead{let i,r,o,e=t.pending_buf_size-5>t.w_size?t.w_size:t.pending_buf_size-5,s=0,a=t.strm.avail_in;do{if(i=65535,o=t.bi_valid+42>>3,t.strm.avail_outr+t.strm.avail_in&&(i=r+t.strm.avail_in),i>o&&(i=o),i>8,t.pending_buf[t.pending-2]=~i,t.pending_buf[t.pending-1]=~i>>8,Fl(t.strm),r&&(r>i&&(r=i),t.strm.output.set(t.window.subarray(t.block_start,t.block_start+r),t.strm.next_out),t.strm.next_out+=r,t.strm.avail_out-=r,t.strm.total_out+=r,t.block_start+=r,i-=r),i&&(kL(t.strm,t.strm.output,t.strm.next_out,i),t.strm.next_out+=i,t.strm.avail_out-=i,t.strm.total_out+=i)}while(0===s);return a-=t.strm.avail_in,a&&(a>=t.w_size?(t.matches=2,t.window.set(t.strm.input.subarray(t.strm.next_in-t.w_size,t.strm.next_in),0),t.strstart=t.w_size,t.insert=t.strstart):(t.window_size-t.strstart<=a&&(t.strstart-=t.w_size,t.window.set(t.window.subarray(t.w_size,t.w_size+t.strstart),0),t.matches<2&&t.matches++,t.insert>t.strstart&&(t.insert=t.strstart)),t.window.set(t.strm.input.subarray(t.strm.next_in-a,t.strm.next_in),t.strstart),t.strstart+=a,t.insert+=a>t.w_size-t.insert?t.w_size-t.insert:a),t.block_start=t.strstart),t.high_watero&&t.block_start>=t.w_size&&(t.block_start-=t.w_size,t.strstart-=t.w_size,t.window.set(t.window.subarray(t.w_size,t.w_size+t.strstart),0),t.matches<2&&t.matches++,o+=t.w_size,t.insert>t.strstart&&(t.insert=t.strstart)),o>t.strm.avail_in&&(o=t.strm.avail_in),o&&(kL(t.strm,t.window,t.strstart,o),t.strstart+=o,t.insert+=o>t.w_size-t.insert?t.w_size-t.insert:o),t.high_water>3,o=t.pending_buf_size-o>65535?65535:t.pending_buf_size-o,e=o>t.w_size?t.w_size:o,r=t.strstart-t.block_start,(r>=e||(r||n===rc)&&n!==$f&&0===t.strm.avail_in&&r<=o)&&(i=r>o?o:r,s=n===rc&&0===t.strm.avail_in&&i===r?1:0,wL(t,t.block_start,i,s),t.block_start+=i,Fl(t.strm)),s?3:1)},IL=(t,n)=>{let e,i;for(;;){if(t.lookahead=3&&(t.ins_h=Xf(t,t.ins_h,t.window[t.strstart+3-1]),e=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),0!==e&&t.strstart-e<=t.w_size-Xd&&(t.match_length=Aj(t,e)),t.match_length>=3)if(i=Wf(t,t.strstart-t.match_start,t.match_length-3),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=3){t.match_length--;do{t.strstart++,t.ins_h=Xf(t,t.ins_h,t.window[t.strstart+3-1]),e=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart}while(0!=--t.match_length);t.strstart++}else t.strstart+=t.match_length,t.match_length=0,t.ins_h=t.window[t.strstart],t.ins_h=Xf(t,t.ins_h,t.window[t.strstart+1]);else i=Wf(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++;if(i&&(kl(t,!1),0===t.strm.avail_out))return 1}return t.insert=t.strstart<2?t.strstart:2,n===rc?(kl(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(kl(t,!1),0===t.strm.avail_out)?1:2},G0=(t,n)=>{let e,i,r;for(;;){if(t.lookahead=3&&(t.ins_h=Xf(t,t.ins_h,t.window[t.strstart+3-1]),e=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),t.prev_length=t.match_length,t.prev_match=t.match_start,t.match_length=2,0!==e&&t.prev_length4096)&&(t.match_length=2)),t.prev_length>=3&&t.match_length<=t.prev_length){r=t.strstart+t.lookahead-3,i=Wf(t,t.strstart-1-t.prev_match,t.prev_length-3),t.lookahead-=t.prev_length-1,t.prev_length-=2;do{++t.strstart<=r&&(t.ins_h=Xf(t,t.ins_h,t.window[t.strstart+3-1]),e=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart)}while(0!=--t.prev_length);if(t.match_available=0,t.match_length=2,t.strstart++,i&&(kl(t,!1),0===t.strm.avail_out))return 1}else if(t.match_available){if(i=Wf(t,0,t.window[t.strstart-1]),i&&kl(t,!1),t.strstart++,t.lookahead--,0===t.strm.avail_out)return 1}else t.match_available=1,t.strstart++,t.lookahead--}return t.match_available&&(i=Wf(t,0,t.window[t.strstart-1]),t.match_available=0),t.insert=t.strstart<2?t.strstart:2,n===rc?(kl(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(kl(t,!1),0===t.strm.avail_out)?1:2};function Yd(t,n,e,i,r){this.good_length=t,this.max_lazy=n,this.nice_length=e,this.max_chain=i,this.func=r}const L1=[new Yd(0,0,0,0,gj),new Yd(4,4,8,4,IL),new Yd(4,5,16,8,IL),new Yd(4,6,32,32,IL),new Yd(4,4,16,16,G0),new Yd(8,16,32,32,G0),new Yd(8,16,128,128,G0),new Yd(8,32,128,256,G0),new Yd(32,128,258,1024,G0),new Yd(32,258,258,4096,G0)];function Vxe(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=fS,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),Kf(this.dyn_ltree),Kf(this.dyn_dtree),Kf(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),Kf(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),Kf(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const P1=t=>{if(!t)return 1;const n=t.state;return!n||n.strm!==t||42!==n.status&&57!==n.status&&69!==n.status&&73!==n.status&&91!==n.status&&103!==n.status&&113!==n.status&&666!==n.status?1:0},bj=t=>{if(P1(t))return Wp(t,Kd);t.total_in=t.total_out=0,t.data_type=Sxe;const n=t.state;return n.pending=0,n.pending_out=0,n.wrap<0&&(n.wrap=-n.wrap),n.status=2===n.wrap?57:n.wrap?42:113,t.adler=2===n.wrap?0:1,n.last_flush=-2,Axe(n),js},_j=t=>{const n=bj(t);return n===js&&(t=>{t.window_size=2*t.w_size,Kf(t.head),t.max_lazy_match=L1[t.level].max_lazy,t.good_match=L1[t.level].good_length,t.nice_match=L1[t.level].nice_length,t.max_chain_length=L1[t.level].max_chain,t.strstart=0,t.block_start=0,t.lookahead=0,t.insert=0,t.match_length=t.prev_length=2,t.match_available=0,t.ins_h=0})(t.state),n},vj=(t,n,e,i,r,o)=>{if(!t)return Kd;let s=1;if(n===wxe&&(n=6),i<0?(s=0,i=-i):i>15&&(s=2,i-=16),r<1||r>9||e!==fS||i<8||i>15||n<0||n>9||o<0||o>Exe||8===i&&1!==s)return Wp(t,Kd);8===i&&(i=9);const a=new Vxe;return t.state=a,a.strm=t,a.status=42,a.wrap=s,a.gzhead=null,a.w_bits=i,a.w_size=1<vj(t,n,fS,15,8,Mxe),deflateInit2:vj,deflateReset:_j,deflateResetKeep:bj,deflateSetHeader:(t,n)=>P1(t)||2!==t.state.wrap?Kd:(t.state.gzhead=n,js),deflate:(t,n)=>{if(P1(t)||n>fj||n<0)return t?Wp(t,Kd):Kd;const e=t.state;if(!t.output||0!==t.avail_in&&!t.input||666===e.status&&n!==rc)return Wp(t,0===t.avail_out?xL:Kd);const i=e.last_flush;if(e.last_flush=n,0!==e.pending){if(Fl(t),0===t.avail_out)return e.last_flush=-1,js}else if(0===t.avail_in&&pj(n)<=pj(i)&&n!==rc)return Wp(t,xL);if(666===e.status&&0!==t.avail_in)return Wp(t,xL);if(42===e.status&&0===e.wrap&&(e.status=113),42===e.status){let r=fS+(e.w_bits-8<<4)<<8,o=-1;if(o=e.strategy>=hS||e.level<2?0:e.level<6?1:6===e.level?2:3,r|=o<<6,0!==e.strstart&&(r|=32),r+=31-r%31,R1(e,r),0!==e.strstart&&(R1(e,t.adler>>>16),R1(e,65535&t.adler)),t.adler=1,e.status=113,Fl(t),0!==e.pending)return e.last_flush=-1,js}if(57===e.status)if(t.adler=0,Ar(e,31),Ar(e,139),Ar(e,8),e.gzhead)Ar(e,(e.gzhead.text?1:0)+(e.gzhead.hcrc?2:0)+(e.gzhead.extra?4:0)+(e.gzhead.name?8:0)+(e.gzhead.comment?16:0)),Ar(e,255&e.gzhead.time),Ar(e,e.gzhead.time>>8&255),Ar(e,e.gzhead.time>>16&255),Ar(e,e.gzhead.time>>24&255),Ar(e,9===e.level?2:e.strategy>=hS||e.level<2?4:0),Ar(e,255&e.gzhead.os),e.gzhead.extra&&e.gzhead.extra.length&&(Ar(e,255&e.gzhead.extra.length),Ar(e,e.gzhead.extra.length>>8&255)),e.gzhead.hcrc&&(t.adler=Ds(t.adler,e.pending_buf,e.pending,0)),e.gzindex=0,e.status=69;else if(Ar(e,0),Ar(e,0),Ar(e,0),Ar(e,0),Ar(e,0),Ar(e,9===e.level?2:e.strategy>=hS||e.level<2?4:0),Ar(e,3),e.status=113,Fl(t),0!==e.pending)return e.last_flush=-1,js;if(69===e.status){if(e.gzhead.extra){let r=e.pending,o=(65535&e.gzhead.extra.length)-e.gzindex;for(;e.pending+o>e.pending_buf_size;){let a=e.pending_buf_size-e.pending;if(e.pending_buf.set(e.gzhead.extra.subarray(e.gzindex,e.gzindex+a),e.pending),e.pending=e.pending_buf_size,e.gzhead.hcrc&&e.pending>r&&(t.adler=Ds(t.adler,e.pending_buf,e.pending-r,r)),e.gzindex+=a,Fl(t),0!==e.pending)return e.last_flush=-1,js;r=0,o-=a}let s=new Uint8Array(e.gzhead.extra);e.pending_buf.set(s.subarray(e.gzindex,e.gzindex+o),e.pending),e.pending+=o,e.gzhead.hcrc&&e.pending>r&&(t.adler=Ds(t.adler,e.pending_buf,e.pending-r,r)),e.gzindex=0}e.status=73}if(73===e.status){if(e.gzhead.name){let o,r=e.pending;do{if(e.pending===e.pending_buf_size){if(e.gzhead.hcrc&&e.pending>r&&(t.adler=Ds(t.adler,e.pending_buf,e.pending-r,r)),Fl(t),0!==e.pending)return e.last_flush=-1,js;r=0}o=e.gzindexr&&(t.adler=Ds(t.adler,e.pending_buf,e.pending-r,r)),e.gzindex=0}e.status=91}if(91===e.status){if(e.gzhead.comment){let o,r=e.pending;do{if(e.pending===e.pending_buf_size){if(e.gzhead.hcrc&&e.pending>r&&(t.adler=Ds(t.adler,e.pending_buf,e.pending-r,r)),Fl(t),0!==e.pending)return e.last_flush=-1,js;r=0}o=e.gzindexr&&(t.adler=Ds(t.adler,e.pending_buf,e.pending-r,r))}e.status=103}if(103===e.status){if(e.gzhead.hcrc){if(e.pending+2>e.pending_buf_size&&(Fl(t),0!==e.pending))return e.last_flush=-1,js;Ar(e,255&t.adler),Ar(e,t.adler>>8&255),t.adler=0}if(e.status=113,Fl(t),0!==e.pending)return e.last_flush=-1,js}if(0!==t.avail_in||0!==e.lookahead||n!==$f&&666!==e.status){let r=0===e.level?gj(e,n):e.strategy===hS?((t,n)=>{let e;for(;;){if(0===t.lookahead&&(z0(t),0===t.lookahead)){if(n===$f)return 1;break}if(t.match_length=0,e=Wf(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,e&&(kl(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,n===rc?(kl(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(kl(t,!1),0===t.strm.avail_out)?1:2})(e,n):e.strategy===Cxe?((t,n)=>{let e,i,r,o;const s=t.window;for(;;){if(t.lookahead<=258){if(z0(t),t.lookahead<=258&&n===$f)return 1;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=3&&t.strstart>0&&(r=t.strstart-1,i=s[r],i===s[++r]&&i===s[++r]&&i===s[++r])){o=t.strstart+258;do{}while(i===s[++r]&&i===s[++r]&&i===s[++r]&&i===s[++r]&&i===s[++r]&&i===s[++r]&&i===s[++r]&&i===s[++r]&&rt.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=3?(e=Wf(t,1,t.match_length-3),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(e=Wf(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),e&&(kl(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,n===rc?(kl(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(kl(t,!1),0===t.strm.avail_out)?1:2})(e,n):L1[e.level].func(e,n);if((3===r||4===r)&&(e.status=666),1===r||3===r)return 0===t.avail_out&&(e.last_flush=-1),js;if(2===r&&(n===_xe?bxe(e):n!==fj&&(wL(e,0,0,!1),n===vxe&&(Kf(e.head),0===e.lookahead&&(e.strstart=0,e.block_start=0,e.insert=0))),Fl(t),0===t.avail_out))return e.last_flush=-1,js}return n!==rc?js:e.wrap<=0?mj:(2===e.wrap?(Ar(e,255&t.adler),Ar(e,t.adler>>8&255),Ar(e,t.adler>>16&255),Ar(e,t.adler>>24&255),Ar(e,255&t.total_in),Ar(e,t.total_in>>8&255),Ar(e,t.total_in>>16&255),Ar(e,t.total_in>>24&255)):(R1(e,t.adler>>>16),R1(e,65535&t.adler)),Fl(t),e.wrap>0&&(e.wrap=-e.wrap),0!==e.pending?js:mj)},deflateEnd:t=>{if(P1(t))return Kd;const n=t.state.status;return t.state=null,113===n?Wp(t,yxe):js},deflateSetDictionary:(t,n)=>{let e=n.length;if(P1(t))return Kd;const i=t.state,r=i.wrap;if(2===r||1===r&&42!==i.status||i.lookahead)return Kd;if(1===r&&(t.adler=B1(t.adler,n,e,0)),i.wrap=0,e>=i.w_size){0===r&&(Kf(i.head),i.strstart=0,i.block_start=0,i.insert=0);let l=new Uint8Array(i.w_size);l.set(n.subarray(e-i.w_size,e),0),n=l,e=i.w_size}const o=t.avail_in,s=t.next_in,a=t.input;for(t.avail_in=e,t.next_in=0,t.input=n,z0(i);i.lookahead>=3;){let l=i.strstart,c=i.lookahead-2;do{i.ins_h=Xf(i,i.ins_h,i.window[l+3-1]),i.prev[l&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=l,l++}while(--c);i.strstart=l,i.lookahead=2,z0(i)}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=2,i.match_available=0,t.next_in=s,t.input=a,t.avail_in=o,i.wrap=r,js},deflateInfo:"pako deflate (from Nodeca project)"};const nCe=(t,n)=>Object.prototype.hasOwnProperty.call(t,n);var mS={assign:function(t){const n=Array.prototype.slice.call(arguments,1);for(;n.length;){const e=n.shift();if(e){if("object"!=typeof e)throw new TypeError(e+"must be non-object");for(const i in e)nCe(e,i)&&(t[i]=e[i])}}return t},flattenChunks:t=>{let n=0;for(let i=0,r=t.length;i=252?6:t>=248?5:t>=240?4:t>=224?3:t>=192?2:1;O1[254]=O1[254]=1;var U1={string2buf:t=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(t);let n,e,i,r,o,s=t.length,a=0;for(r=0;r>>6,n[o++]=128|63&e):e<65536?(n[o++]=224|e>>>12,n[o++]=128|e>>>6&63,n[o++]=128|63&e):(n[o++]=240|e>>>18,n[o++]=128|e>>>12&63,n[o++]=128|e>>>6&63,n[o++]=128|63&e);return n},buf2string:(t,n)=>{const e=n||t.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(t.subarray(0,n));let i,r;const o=new Array(2*e);for(r=0,i=0;i4)o[r++]=65533,i+=a-1;else{for(s&=2===a?31:3===a?15:7;a>1&&i1?o[r++]=65533:s<65536?o[r++]=s:(s-=65536,o[r++]=55296|s>>10&1023,o[r++]=56320|1023&s)}}return((t,n)=>{if(n<65534&&t.subarray&&yj)return String.fromCharCode.apply(null,t.length===n?t:t.subarray(0,n));let e="";for(let i=0;i{(n=n||t.length)>t.length&&(n=t.length);let e=n-1;for(;e>=0&&128==(192&t[e]);)e--;return e<0||0===e?n:e+O1[t[e]]>n?e:n}},wj=function cCe(){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};const xj=Object.prototype.toString,{Z_NO_FLUSH:dCe,Z_SYNC_FLUSH:uCe,Z_FULL_FLUSH:hCe,Z_FINISH:fCe,Z_OK:pS,Z_STREAM_END:mCe,Z_DEFAULT_COMPRESSION:pCe,Z_DEFAULT_STRATEGY:ACe,Z_DEFLATED:gCe}=zp;function H1(t){this.options=mS.assign({level:pCe,method:gCe,chunkSize:16384,windowBits:15,memLevel:8,strategy:ACe},t||{});let n=this.options;n.raw&&n.windowBits>0?n.windowBits=-n.windowBits:n.gzip&&n.windowBits>0&&n.windowBits<16&&(n.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new wj,this.strm.avail_out=0;let e=N1.deflateInit2(this.strm,n.level,n.method,n.windowBits,n.memLevel,n.strategy);if(e!==pS)throw new Error(Qp[e]);if(n.header&&N1.deflateSetHeader(this.strm,n.header),n.dictionary){let i;if(i="string"==typeof n.dictionary?U1.string2buf(n.dictionary):"[object ArrayBuffer]"===xj.call(n.dictionary)?new Uint8Array(n.dictionary):n.dictionary,e=N1.deflateSetDictionary(this.strm,i),e!==pS)throw new Error(Qp[e]);this._dict_set=!0}}function BL(t,n){const e=new H1(n);if(e.push(t,!0),e.err)throw e.msg||Qp[e.err];return e.result}H1.prototype.push=function(t,n){const e=this.strm,i=this.options.chunkSize;let r,o;if(this.ended)return!1;for(o=n===~~n?n:!0===n?fCe:dCe,e.input="string"==typeof t?U1.string2buf(t):"[object ArrayBuffer]"===xj.call(t)?new Uint8Array(t):t,e.next_in=0,e.avail_in=e.input.length;;)if(0===e.avail_out&&(e.output=new Uint8Array(i),e.next_out=0,e.avail_out=i),(o===uCe||o===hCe)&&e.avail_out<=6)this.onData(e.output.subarray(0,e.next_out)),e.avail_out=0;else{if(r=N1.deflate(e,o),r===mCe)return e.next_out>0&&this.onData(e.output.subarray(0,e.next_out)),r=N1.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===pS;if(0!==e.avail_out){if(o>0&&e.next_out>0)this.onData(e.output.subarray(0,e.next_out)),e.avail_out=0;else if(0===e.avail_in)break}else this.onData(e.output)}return!0},H1.prototype.onData=function(t){this.chunks.push(t)},H1.prototype.onEnd=function(t){t===pS&&(this.result=mS.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};var ECe={Deflate:H1,deflate:BL,deflateRaw:function bCe(t,n){return(n=n||{}).raw=!0,BL(t,n)},gzip:function _Ce(t,n){return(n=n||{}).gzip=!0,BL(t,n)},constants:zp};const AS=16209;var SCe=function(n,e){let i,r,o,s,a,l,c,d,u,h,m,A,v,x,C,w,S,M,B,P,$,ee,te,re;const ne=n.state;i=n.next_in,te=n.input,r=i+(n.avail_in-5),o=n.next_out,re=n.output,s=o-(e-n.avail_out),a=o+(n.avail_out-257),l=ne.dmax,c=ne.wsize,d=ne.whave,u=ne.wnext,h=ne.window,m=ne.hold,A=ne.bits,v=ne.lencode,x=ne.distcode,C=(1<>>24,m>>>=M,A-=M,M=S>>>16&255,0===M)re[o++]=65535&S;else{if(!(16&M)){if(64&M){if(32&M){ne.mode=16191;break e}n.msg="invalid literal/length code",ne.mode=AS;break e}S=v[(65535&S)+(m&(1<>>=M,A-=M),A<15&&(m+=te[i++]<>>24,m>>>=M,A-=M,M=S>>>16&255,16&M){if(P=65535&S,M&=15,Al){n.msg="invalid distance too far back",ne.mode=AS;break e}if(m>>>=M,A-=M,M=o-s,P>M){if(M=P-M,M>d&&ne.sane){n.msg="invalid distance too far back",ne.mode=AS;break e}if($=0,ee=h,0===u){if($+=c-M,M2;)re[o++]=ee[$++],re[o++]=ee[$++],re[o++]=ee[$++],B-=3;B&&(re[o++]=ee[$++],B>1&&(re[o++]=ee[$++]))}else{$=o-P;do{re[o++]=re[$++],re[o++]=re[$++],re[o++]=re[$++],B-=3}while(B>2);B&&(re[o++]=re[$++],B>1&&(re[o++]=re[$++]))}break}if(64&M){n.msg="invalid distance code",ne.mode=AS;break e}S=x[(65535&S)+(m&(1<>3,i-=B,A-=B<<3,m&=(1<{const l=a.bits;let S,M,B,P,$,te,c=0,d=0,u=0,h=0,m=0,A=0,v=0,x=0,C=0,w=0,ee=null;const re=new Uint16Array(16),ne=new Uint16Array(16);let we,j,me,Ce=null;for(c=0;c<=15;c++)re[c]=0;for(d=0;d=1&&0===re[h];h--);if(m>h&&(m=h),0===h)return r[o++]=20971520,r[o++]=20971520,a.bits=1,0;for(u=1;u0&&(0===t||1!==h))return-1;for(ne[1]=0,c=1;c<15;c++)ne[c+1]=ne[c]+re[c];for(d=0;d852||2===t&&C>592)return 1;for(;;){we=c-v,s[d]+1=te?(j=Ce[s[d]-te],me=ee[s[d]-te]):(j=96,me=0),S=1<>v)+M]=we<<24|j<<16|me}while(0!==M);for(S=1<>=1;if(0!==S?(w&=S-1,w+=S):w=0,d++,0==--re[c]){if(c===h)break;c=n[e+s[d]]}if(c>m&&(w&P)!==B){for(0===v&&(v=m),$+=u,A=c-v,x=1<852||2===t&&C>592)return 1;B=w&P,r[B]=m<<24|A<<16|$-o}}return 0!==w&&(r[$+w]=c-v<<24|64<<16),a.bits=m,0};const{Z_FINISH:kj,Z_BLOCK:DCe,Z_TREES:gS,Z_OK:$p,Z_STREAM_END:RCe,Z_NEED_DICT:LCe,Z_STREAM_ERROR:oc,Z_DATA_ERROR:Ij,Z_MEM_ERROR:Bj,Z_BUF_ERROR:PCe,Z_DEFLATED:Dj}=zp,bS=16180,_S=16190,lh=16191,vS=16199,yS=16200,go=16209,iK=t=>(t>>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24);function HCe(){this.strm=null,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 Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const jp=t=>{if(!t)return 1;const n=t.state;return!n||n.strm!==t||n.mode16211?1:0},rK=t=>{if(jp(t))return oc;const n=t.state;return t.total_in=t.total_out=n.total=0,t.msg="",n.wrap&&(t.adler=1&n.wrap),n.mode=bS,n.last=0,n.havedict=0,n.flags=-1,n.dmax=32768,n.head=null,n.hold=0,n.bits=0,n.lencode=n.lendyn=new Int32Array(852),n.distcode=n.distdyn=new Int32Array(592),n.sane=1,n.back=-1,$p},oK=t=>{if(jp(t))return oc;const n=t.state;return n.wsize=0,n.whave=0,n.wnext=0,rK(t)},sK=(t,n)=>{let e;if(jp(t))return oc;const i=t.state;return n<0?(e=0,n=-n):(e=5+(n>>4),n<48&&(n&=15)),n&&(n<8||n>15)?oc:(null!==i.window&&i.wbits!==n&&(i.window=null),i.wrap=e,i.wbits=n,oK(t))},aK=(t,n)=>{if(!t)return oc;const e=new HCe;t.state=e,e.strm=t,e.window=null,e.mode=bS;const i=sK(t,n);return i!==$p&&(t.state=null),i};let NL,OL,lK=!0;const QCe=t=>{if(lK){NL=new Int32Array(512),OL=new Int32Array(32);let n=0;for(;n<144;)t.lens[n++]=8;for(;n<256;)t.lens[n++]=9;for(;n<280;)t.lens[n++]=7;for(;n<288;)t.lens[n++]=8;for(V1(1,t.lens,0,288,NL,0,t.work,{bits:9}),n=0;n<32;)t.lens[n++]=5;V1(2,t.lens,0,32,OL,0,t.work,{bits:5}),lK=!1}t.lencode=NL,t.lenbits=9,t.distcode=OL,t.distbits=5},cK=(t,n,e,i)=>{let r;const o=t.state;return null===o.window&&(o.wsize=1<=o.wsize?(o.window.set(n.subarray(e-o.wsize,e),0),o.wnext=0,o.whave=o.wsize):(r=o.wsize-o.wnext,r>i&&(r=i),o.window.set(n.subarray(e-i,e-i+r),o.wnext),(i-=r)?(o.window.set(n.subarray(e-i,e),0),o.wnext=i,o.whave=o.wsize):(o.wnext+=r,o.wnext===o.wsize&&(o.wnext=0),o.whaveaK(t,15),inflateInit2:aK,inflate:(t,n)=>{let e,i,r,o,s,a,l,c,d,u,h,m,A,v,C,w,S,M,B,P,$,ee,x=0;const te=new Uint8Array(4);let re,ne;const Ce=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(jp(t)||!t.output||!t.input&&0!==t.avail_in)return oc;e=t.state,e.mode===lh&&(e.mode=16192),s=t.next_out,r=t.output,l=t.avail_out,o=t.next_in,i=t.input,a=t.avail_in,c=e.hold,d=e.bits,u=a,h=l,ee=$p;e:for(;;)switch(e.mode){case bS:if(0===e.wrap){e.mode=16192;break}for(;d<16;){if(0===a)break e;a--,c+=i[o++]<>>8&255,e.check=Ds(e.check,te,2,0),c=0,d=0,e.mode=16181;break}if(e.head&&(e.head.done=!1),!(1&e.wrap)||(((255&c)<<8)+(c>>8))%31){t.msg="incorrect header check",e.mode=go;break}if((15&c)!==Dj){t.msg="unknown compression method",e.mode=go;break}if(c>>>=4,d-=4,$=8+(15&c),0===e.wbits&&(e.wbits=$),$>15||$>e.wbits){t.msg="invalid window size",e.mode=go;break}e.dmax=1<>8&1),512&e.flags&&4&e.wrap&&(te[0]=255&c,te[1]=c>>>8&255,e.check=Ds(e.check,te,2,0)),c=0,d=0,e.mode=16182;case 16182:for(;d<32;){if(0===a)break e;a--,c+=i[o++]<>>8&255,te[2]=c>>>16&255,te[3]=c>>>24&255,e.check=Ds(e.check,te,4,0)),c=0,d=0,e.mode=16183;case 16183:for(;d<16;){if(0===a)break e;a--,c+=i[o++]<>8),512&e.flags&&4&e.wrap&&(te[0]=255&c,te[1]=c>>>8&255,e.check=Ds(e.check,te,2,0)),c=0,d=0,e.mode=16184;case 16184:if(1024&e.flags){for(;d<16;){if(0===a)break e;a--,c+=i[o++]<>>8&255,e.check=Ds(e.check,te,2,0)),c=0,d=0}else e.head&&(e.head.extra=null);e.mode=16185;case 16185:if(1024&e.flags&&(m=e.length,m>a&&(m=a),m&&(e.head&&($=e.head.extra_len-e.length,e.head.extra||(e.head.extra=new Uint8Array(e.head.extra_len)),e.head.extra.set(i.subarray(o,o+m),$)),512&e.flags&&4&e.wrap&&(e.check=Ds(e.check,i,m,o)),a-=m,o+=m,e.length-=m),e.length))break e;e.length=0,e.mode=16186;case 16186:if(2048&e.flags){if(0===a)break e;m=0;do{$=i[o+m++],e.head&&$&&e.length<65536&&(e.head.name+=String.fromCharCode($))}while($&&m>9&1,e.head.done=!0),t.adler=e.check=0,e.mode=lh;break;case 16189:for(;d<32;){if(0===a)break e;a--,c+=i[o++]<>>=7&d,d-=7&d,e.mode=16206;break}for(;d<3;){if(0===a)break e;a--,c+=i[o++]<>>=1,d-=1,3&c){case 0:e.mode=16193;break;case 1:if(QCe(e),e.mode=vS,n===gS){c>>>=2,d-=2;break e}break;case 2:e.mode=16196;break;case 3:t.msg="invalid block type",e.mode=go}c>>>=2,d-=2;break;case 16193:for(c>>>=7&d,d-=7&d;d<32;){if(0===a)break e;a--,c+=i[o++]<>>16^65535)){t.msg="invalid stored block lengths",e.mode=go;break}if(e.length=65535&c,c=0,d=0,e.mode=16194,n===gS)break e;case 16194:e.mode=16195;case 16195:if(m=e.length,m){if(m>a&&(m=a),m>l&&(m=l),0===m)break e;r.set(i.subarray(o,o+m),s),a-=m,o+=m,l-=m,s+=m,e.length-=m;break}e.mode=lh;break;case 16196:for(;d<14;){if(0===a)break e;a--,c+=i[o++]<>>=5,d-=5,e.ndist=1+(31&c),c>>>=5,d-=5,e.ncode=4+(15&c),c>>>=4,d-=4,e.nlen>286||e.ndist>30){t.msg="too many length or distance symbols",e.mode=go;break}e.have=0,e.mode=16197;case 16197:for(;e.have>>=3,d-=3}for(;e.have<19;)e.lens[Ce[e.have++]]=0;if(e.lencode=e.lendyn,e.lenbits=7,re={bits:e.lenbits},ee=V1(0,e.lens,0,19,e.lencode,0,e.work,re),e.lenbits=re.bits,ee){t.msg="invalid code lengths set",e.mode=go;break}e.have=0,e.mode=16198;case 16198:for(;e.have>>24,w=x>>>16&255,S=65535&x,!(C<=d);){if(0===a)break e;a--,c+=i[o++]<>>=C,d-=C,e.lens[e.have++]=S;else{if(16===S){for(ne=C+2;d>>=C,d-=C,0===e.have){t.msg="invalid bit length repeat",e.mode=go;break}$=e.lens[e.have-1],m=3+(3&c),c>>>=2,d-=2}else if(17===S){for(ne=C+3;d>>=C,d-=C,$=0,m=3+(7&c),c>>>=3,d-=3}else{for(ne=C+7;d>>=C,d-=C,$=0,m=11+(127&c),c>>>=7,d-=7}if(e.have+m>e.nlen+e.ndist){t.msg="invalid bit length repeat",e.mode=go;break}for(;m--;)e.lens[e.have++]=$}}if(e.mode===go)break;if(0===e.lens[256]){t.msg="invalid code -- missing end-of-block",e.mode=go;break}if(e.lenbits=9,re={bits:e.lenbits},ee=V1(1,e.lens,0,e.nlen,e.lencode,0,e.work,re),e.lenbits=re.bits,ee){t.msg="invalid literal/lengths set",e.mode=go;break}if(e.distbits=6,e.distcode=e.distdyn,re={bits:e.distbits},ee=V1(2,e.lens,e.nlen,e.ndist,e.distcode,0,e.work,re),e.distbits=re.bits,ee){t.msg="invalid distances set",e.mode=go;break}if(e.mode=vS,n===gS)break e;case vS:e.mode=yS;case yS:if(a>=6&&l>=258){t.next_out=s,t.avail_out=l,t.next_in=o,t.avail_in=a,e.hold=c,e.bits=d,SCe(t,h),s=t.next_out,r=t.output,l=t.avail_out,o=t.next_in,i=t.input,a=t.avail_in,c=e.hold,d=e.bits,e.mode===lh&&(e.back=-1);break}for(e.back=0;x=e.lencode[c&(1<>>24,w=x>>>16&255,S=65535&x,!(C<=d);){if(0===a)break e;a--,c+=i[o++]<>M)],C=x>>>24,w=x>>>16&255,S=65535&x,!(M+C<=d);){if(0===a)break e;a--,c+=i[o++]<>>=M,d-=M,e.back+=M}if(c>>>=C,d-=C,e.back+=C,e.length=S,0===w){e.mode=16205;break}if(32&w){e.back=-1,e.mode=lh;break}if(64&w){t.msg="invalid literal/length code",e.mode=go;break}e.extra=15&w,e.mode=16201;case 16201:if(e.extra){for(ne=e.extra;d>>=e.extra,d-=e.extra,e.back+=e.extra}e.was=e.length,e.mode=16202;case 16202:for(;x=e.distcode[c&(1<>>24,w=x>>>16&255,S=65535&x,!(C<=d);){if(0===a)break e;a--,c+=i[o++]<>M)],C=x>>>24,w=x>>>16&255,S=65535&x,!(M+C<=d);){if(0===a)break e;a--,c+=i[o++]<>>=M,d-=M,e.back+=M}if(c>>>=C,d-=C,e.back+=C,64&w){t.msg="invalid distance code",e.mode=go;break}e.offset=S,e.extra=15&w,e.mode=16203;case 16203:if(e.extra){for(ne=e.extra;d>>=e.extra,d-=e.extra,e.back+=e.extra}if(e.offset>e.dmax){t.msg="invalid distance too far back",e.mode=go;break}e.mode=16204;case 16204:if(0===l)break e;if(m=h-l,e.offset>m){if(m=e.offset-m,m>e.whave&&e.sane){t.msg="invalid distance too far back",e.mode=go;break}m>e.wnext?(m-=e.wnext,A=e.wsize-m):A=e.wnext-m,m>e.length&&(m=e.length),v=e.window}else v=r,A=s-e.offset,m=e.length;m>l&&(m=l),l-=m,e.length-=m;do{r[s++]=v[A++]}while(--m);0===e.length&&(e.mode=yS);break;case 16205:if(0===l)break e;r[s++]=e.length,l--,e.mode=yS;break;case 16206:if(e.wrap){for(;d<32;){if(0===a)break e;a--,c|=i[o++]<{if(jp(t))return oc;let n=t.state;return n.window&&(n.window=null),t.state=null,$p},inflateGetHeader:(t,n)=>{if(jp(t))return oc;const e=t.state;return 2&e.wrap?(e.head=n,n.done=!1,$p):oc},inflateSetDictionary:(t,n)=>{const e=n.length;let i,r,o;return jp(t)||(i=t.state,0!==i.wrap&&i.mode!==_S)?oc:i.mode===_S&&(r=1,r=B1(r,n,e,0),r!==i.check)?Ij:(o=cK(t,n,e,e),o?(i.mode=16210,Bj):(i.havedict=1,$p))},inflateInfo:"pako inflate (from Nodeca project)"},r2e=function i2e(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1};const dK=Object.prototype.toString,{Z_NO_FLUSH:o2e,Z_FINISH:s2e,Z_OK:Q1,Z_STREAM_END:UL,Z_NEED_DICT:HL,Z_STREAM_ERROR:a2e,Z_DATA_ERROR:uK,Z_MEM_ERROR:l2e}=zp;function z1(t){this.options=mS.assign({chunkSize:65536,windowBits:15,to:""},t||{});const n=this.options;n.raw&&n.windowBits>=0&&n.windowBits<16&&(n.windowBits=-n.windowBits,0===n.windowBits&&(n.windowBits=-15)),n.windowBits>=0&&n.windowBits<16&&!(t&&t.windowBits)&&(n.windowBits+=32),n.windowBits>15&&n.windowBits<48&&(15&n.windowBits||(n.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new wj,this.strm.avail_out=0;let e=ch.inflateInit2(this.strm,n.windowBits);if(e!==Q1)throw new Error(Qp[e]);if(this.header=new r2e,ch.inflateGetHeader(this.strm,this.header),n.dictionary&&("string"==typeof n.dictionary?n.dictionary=U1.string2buf(n.dictionary):"[object ArrayBuffer]"===dK.call(n.dictionary)&&(n.dictionary=new Uint8Array(n.dictionary)),n.raw&&(e=ch.inflateSetDictionary(this.strm,n.dictionary),e!==Q1)))throw new Error(Qp[e])}function VL(t,n){const e=new z1(n);if(e.push(t),e.err)throw e.msg||Qp[e.err];return e.result}z1.prototype.push=function(t,n){const e=this.strm,i=this.options.chunkSize,r=this.options.dictionary;let o,s,a;if(this.ended)return!1;for(s=n===~~n?n:!0===n?s2e:o2e,e.input="[object ArrayBuffer]"===dK.call(t)?new Uint8Array(t):t,e.next_in=0,e.avail_in=e.input.length;;){for(0===e.avail_out&&(e.output=new Uint8Array(i),e.next_out=0,e.avail_out=i),o=ch.inflate(e,s),o===HL&&r&&(o=ch.inflateSetDictionary(e,r),o===Q1?o=ch.inflate(e,s):o===uK&&(o=HL));e.avail_in>0&&o===UL&&e.state.wrap>0&&0!==t[e.next_in];)ch.inflateReset(e),o=ch.inflate(e,s);switch(o){case a2e:case uK:case HL:case l2e:return this.onEnd(o),this.ended=!0,!1}if(a=e.avail_out,e.next_out&&(0===e.avail_out||o===UL))if("string"===this.options.to){let l=U1.utf8border(e.output,e.next_out),c=e.next_out-l,d=U1.buf2string(e.output,l);e.next_out=c,e.avail_out=i-c,c&&e.output.set(e.output.subarray(l,l+c),0),this.onData(d)}else this.onData(e.output.length===e.next_out?e.output:e.output.subarray(0,e.next_out));if(o!==Q1||0!==a){if(o===UL)return o=ch.inflateEnd(this.strm),this.onEnd(o),this.ended=!0,!0;if(0===e.avail_in)break}}return!0},z1.prototype.onData=function(t){this.chunks.push(t)},z1.prototype.onEnd=function(t){t===Q1&&(this.result="string"===this.options.to?this.chunks.join(""):mS.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};var p2e={Inflate:z1,inflate:VL,inflateRaw:function c2e(t,n){return(n=n||{}).raw=!0,VL(t,n)},ungzip:VL,constants:zp};const{ungzip:x2e}=p2e;var QL=x2e;class hK{constructor(n){this.httpClient=n}getParameterByName(n){const e=n.replaceAll(/[[\]]/g,"\\$&"),r=new RegExp(`[?&]${e}(=([^&#]*)|&|#|$)`).exec(window.location.href);return r?r[2]?decodeURIComponent(r[2].replaceAll("+"," ")):"":null}getFileDataFromQueryParam(){var n=this;return f(function*(){const i=new URLSearchParams(window.location.search).getAll("file");if(0===i.length)throw new Error("Filename is missing");return Promise.all(i.map(function(){var r=f(function*(o){return n.getFileDataFromFile(o)});return function(o){return r.apply(this,arguments)}}()))})()}getFileDataFromFile(n){var e=this;return f(function*(){if(!n)throw new Error("Filename is missing");return n.endsWith(".gz")?e.getUnzippedFile(n):e.getFile(n)})()}getUnzippedFile(n){var e=this;return f(function*(){const i=yield G$(e.httpClient.get(n,{responseType:"arraybuffer",observe:"response"}));if(i.status>=200&&i.status<300){const s=AR(QL(i.body,{to:"string"}));return{fileName:e.getFileName(n,s.projectName),fileSize:13,content:s}}throw new Error(`Could not load file "${n}"`)})()}getFile(n){var e=this;return f(function*(){const i=yield G$(e.httpClient.get(n,{observe:"response"}));if(i.status>=200&&i.status<300){const o=AR(i.body);return{fileName:n=e.getFileName(n,o.projectName),fileSize:15,content:o}}throw new Error(`Could not load file "${n}"`)})()}getFileName(n,e){return e?.trim()||n.split("/").pop()}}const wS={fileName:"sample1.cc.json",fileSize:3072,content:$_e},xS={fileName:"sample2.cc.json",fileSize:2048,content:j_e};let zL=(()=>{class t{constructor(e,i,r,o,s){this.store=e,this.state=i,this.dialog=r,this.loadFileService=o,this.httpClient=s,this.urlUtils=new hK(this.httpClient)}loadFilesOrSampleFiles(){var e=this;return f(function*(){yield e.checkFileQueryParameterPresent()?e.loadFilesFromQueryParams():e.loadFilesFromIndexedDB()})()}checkFileQueryParameterPresent(){return!!this.urlUtils.getParameterByName("file")}loadFilesFromQueryParams(){var e=this;return f(function*(){try{const i=yield e.urlUtils.getFileDataFromQueryParam(),r=yield dR();if(!r)return e.loadFileService.loadFiles(i),void e.setRenderStateFromUrl();const o=r.files,s=o.map(c=>Q$(c.file)),a=i.map(c=>c.content.fileChecksum),l=s.map(c=>c.content.fileChecksum);Rc(a)===Rc(l)?e.applySettingsAndFilesFromSavedState(o,r,s):e.applySettingsFromSavedState(r,i),e.setRenderStateFromUrl()}catch(i){yield e.handleErrorLoadFilesFromQueryParams(i)}finally{e.setMetricsFromUrl()}})()}applySettingsAndFilesFromSavedState(e,i,r){const o=[],s=this.applyAppSettings(i.appSettings);o.push(...s),this.loadFileService.loadFiles(r),this.store.dispatch(s1({value:e}));const a=this.applyFileSettings(i.fileSettings);o.push(...a);const l=this.applyDynamicSettings(i.dynamicSettings);o.push(...l),o.length>0&&this.showErrorDialogForMissingProperties(o)}applySettingsFromSavedState(e,i){this.applyAllSettings(e),this.loadFileService.loadFiles(i)}showErrorDialogForMissingProperties(e){const r=this.buildMissingPropertiesMessage(e);this.showErrorDialog("The previous state could not be fully restored after loading the page. The following properties were not restored.",r)}handleErrorLoadFilesFromQueryParams(e){var i=this;return f(function*(){if(e.message!==dL){const r="File(s) could not be loaded from the given file URL parameter. Loaded sample files instead.",o=i.createTitleUrlErrorDialog(e);i.showErrorDialog(r,o)}yield i.loadSampleFiles()})()}loadFilesFromIndexedDB(){var e=this;return f(function*(){try{const i=yield dR();if(!i)return void(yield e.loadSampleFiles());const r=i.files,o=r.map(s=>Q$(s.file));e.applySettingsAndFilesFromSavedState(r,i,o)}catch(i){yield e.handleErrorLoadFilesFromIndexedDB(i)}})()}handleErrorLoadFilesFromIndexedDB(e){var i=this;return f(function*(){e.message!==dL&&i.showErrorDialog("Previously loaded files and settings could not be restored. Loaded sample files instead.",e.message),yield i.loadSampleFiles()})()}applyAllSettings(e){var i=this;return f(function*(){const r=e.fileSettings,o=e.dynamicSettings,s=e.appSettings,a=[];if(r){const l=i.applyFileSettings(r);a.push(...l)}if(o){const l=i.applyDynamicSettings(o);a.push(...l)}if(s){const l=i.applyAppSettings(s);a.push(...l)}a.length>0&&i.showErrorDialogForMissingProperties(a)})()}applyFileSettings(e){const i=this.state.getValue().fileSettings,r=[];for(const[o,s]of Object.entries(i))o in e?Rc(s)!==Rc(e[o])&&this.mapFileSettingToAction(o,e[o]):r.push(o);return r}applyDynamicSettings(e){const i=this.state.getValue().dynamicSettings,r=[];for(const[o,s]of Object.entries(i))o in e?Rc(s)!==Rc(e[o])&&this.mapDynamicSettingToAction(o,e[o]):r.push(o);return r}applyAppSettings(e){const i=this.state.getValue().appSettings,r=[];for(const[o,s]of Object.entries(i))o in e?Rc(s)!==Rc(e[o])&&this.mapAppSettingToAction(o,e[o]):r.push(o);return r}mapFileSettingToAction(e,i){switch(e){case"attributeTypes":this.store.dispatch(j4({value:i}));break;case"attributeDescriptors":this.store.dispatch($4({value:i}));break;case"blacklist":this.store.dispatch(X4({value:i}));break;case"edges":this.store.dispatch(J4({value:i}));break;case"markedPackages":this.store.dispatch(CM({value:i}));break;default:throw new Error(`Unhandled key: ${e}`)}}mapDynamicSettingToAction(e,i){switch(e){case"areaMetric":this.store.dispatch(Ku({value:i}));break;case"heightMetric":this.store.dispatch(Yu({value:i}));break;case"edgeMetric":this.store.dispatch(Xu({value:i}));break;case"colorMetric":this.store.dispatch(Lc({value:i}));break;case"colorMode":this.store.dispatch(C0({value:i}));break;case"sortingOption":this.store.dispatch(yM({value:i}));break;case"colorRange":this.store.dispatch(Pd({value:i}));break;case"distributionMetric":this.store.dispatch(Jy({value:i}));break;case"focusedNodePath":this.store.dispatch(bM({value:i}));break;case"searchPattern":this.store.dispatch(Hf({value:i}));break;case"margin":this.store.dispatch(E0({value:i}));break;default:throw new Error(`Unhandled key: ${e}`)}}mapAppSettingToAction(e,i){switch(e){case"amountOfTopLabels":case"amountOfEdgePreviews":this.store.dispatch(Uf({value:i}));break;case"edgeHeight":this.store.dispatch(w0({value:i}));break;case"scaling":this.store.dispatch(x0({value:i}));break;case"hideFlatBuildings":this.store.dispatch(zy({value:i}));break;case"invertHeight":this.store.dispatch(qy({value:i}));break;case"invertArea":this.store.dispatch(Gy({value:i}));break;case"isWhiteBackground":this.store.dispatch(Wy({value:i}));break;case"mapColors":this.store.dispatch(ju({value:i}));break;case"isPresentationMode":this.store.dispatch(mM({value:i}));break;case"showOnlyBuildingsWithEdges":this.store.dispatch(Zy({value:i}));break;case"isEdgeMetricVisible":this.store.dispatch(G4({value:i}));break;case"resetCameraIfNewFileIsLoaded":this.store.dispatch(gM({value:i}));break;case"isLoadingMap":this.store.dispatch(F0({value:i}));break;case"isLoadingFile":this.store.dispatch(Ip({value:i}));break;case"sortingOrderAscending":case"isSearchPanelPinned":break;case"showMetricLabelNameValue":this.store.dispatch(Xy({value:i}));break;case"showMetricLabelNodeName":this.store.dispatch(Yy({value:i}));break;case"layoutAlgorithm":this.store.dispatch($y({value:i}));break;case"maxTreeMapFiles":this.store.dispatch(jy({value:i}));break;case"sharpnessMode":this.store.dispatch(Ky({value:i}));break;case"experimentalFeaturesEnabled":this.store.dispatch(hM({value:i}));break;case"screenshotToClipboardEnabled":this.store.dispatch(uM({value:i}));break;case"colorLabels":this.store.dispatch(Vy({value:i}));break;case"isColorMetricLinkedToHeightMetric":this.store.dispatch(q4({value:i}));break;case"enableFloorLabels":this.store.dispatch(Qy({value:i}));break;default:throw new Error(`Unhandled key: ${e}`)}}buildMissingPropertiesMessage(e){return`${sL(' ',e)}`}loadSampleFiles(){var e=this;return f(function*(){try{const i=yield dR();i&&e.applyAllSettings(i),e.loadFileService.loadFiles([wS,xS])}catch{e.loadFileService.loadFiles([wS,xS])}})()}showErrorDialog(e,i){this.dialog.open(Op,{data:{title:e,message:i}})}createTitleUrlErrorDialog(e){let i="Error";return e.message?i+=` (${e.message})`:e.statusText&&e.status&&(i+=` (${e.status}: ${e.statusText})`),i}setMetricsFromUrl(){const e=this.urlUtils.getParameterByName(Vd.areaMetric),i=this.urlUtils.getParameterByName(Vd.heightMetric),r=this.urlUtils.getParameterByName(Vd.colorMetric),o=this.urlUtils.getParameterByName(Vd.edgeMetric),s=this.state.getValue(),a=ks(s).nodeMetricData,l=ks(s).edgeMetricData;if(!a)return;const c=new Set(a.map(u=>u.name)),d=l.map(u=>u.name);e&&c.has(e)&&this.store.dispatch(Ku({value:e})),i&&c.has(i)&&this.store.dispatch(Yu({value:i})),r&&c.has(r)&&this.store.dispatch(Lc({value:r})),o&&d.includes(o)&&this.store.dispatch(Xu({value:o}))}setRenderStateFromUrl(){const e=this.urlUtils.getParameterByName("mode"),i=function X_e(t){return t.map(n=>n.file)}(this.state.getValue().files);"Delta"===e&&i.length>=2&&this.store.dispatch(NM({referenceFile:i[0],comparisonFile:i[1]}))}static{this.\u0275fac=function(i){return new(i||t)(oe(Wt),oe(Br),oe(Is),oe(N0),oe(Cy))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})(),B2e=(()=>{class t{constructor(){this.version=x1.rE}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=At({type:t,selectors:[["cc-logo"]],decls:5,vars:1,consts:[["id","logo"],["href","https://github.com/MaibornWolff/codecharta","target","_blank","rel","noopener noreferrer"],["src","codeCharta/assets/codecharta_logo.svg","alt","CodeCharta","rel","noopener noreferrer"]],template:function(i,r){1&i&&(I(0,"div",0)(1,"a",1),_e(2,"img",2),O(),I(3,"h2"),ve(4),O()()),2&i&&(H(4),an("Version ",r.version,""))},encapsulation:2})}}return t})();const Hr=t=>t.appSettings,GL=Xt(Hr,t=>t.isLoadingFile),fK=Xt(Hr,t=>t.sharpnessMode),qL="126",dh={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},uh={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},mK=0,WL=1,pK=2,D2e=3,R2e=0,$L=1,AK=2,W0=3,$0=0,Wo=1,G1=2,jL=1,L2e=2,hh=0,j0=1,KL=2,XL=3,YL=4,gK=5,Kp=100,bK=101,_K=102,ZL=103,JL=104,vK=200,yK=201,wK=202,xK=203,eP=204,tP=205,CK=206,EK=207,MK=208,SK=209,TK=210,FK=0,kK=1,IK=2,CS=3,BK=4,DK=5,RK=6,LK=7,q1=0,PK=1,NK=2,Xp=0,OK=1,UK=2,HK=3,VK=4,QK=5,ES=300,W1=301,$1=302,MS=303,SS=304,K0=306,j1=307,Yp=1e3,Ta=1001,K1=1002,vs=1003,TS=1004,P2e=1004,FS=1005,N2e=1005,Ro=1006,nP=1007,O2e=1007,X0=1008,U2e=1008,Y0=1009,zK=1010,GK=1011,X1=1012,qK=1013,Y1=1014,fh=1015,Z1=1016,WK=1017,$K=1018,jK=1019,Z0=1020,KK=1021,Yf=1022,Fa=1023,XK=1024,YK=1025,ZK=Fa,Zp=1026,J0=1027,JK=1028,eX=1029,tX=1030,nX=1031,iX=1032,rX=1033,iP=33776,rP=33777,oP=33778,sP=33779,aP=35840,lP=35841,cP=35842,dP=35843,oX=36196,uP=37492,hP=37496,sX=37808,aX=37809,lX=37810,cX=37811,dX=37812,uX=37813,hX=37814,fX=37815,mX=37816,pX=37817,AX=37818,gX=37819,bX=37820,_X=37821,vX=36492,yX=37840,wX=37841,xX=37842,CX=37843,EX=37844,MX=37845,SX=37846,TX=37847,FX=37848,kX=37849,IX=37850,BX=37851,DX=37852,RX=37853,LX=2200,PX=2201,NX=2202,J1=2300,ew=2301,kS=2302,Jp=2400,eA=2401,tw=2402,IS=2500,fP=2501,mP=0,OX=1,pP=2,ka=3e3,nw=3001,BS=3007,DS=3002,UX=3003,AP=3004,gP=3005,bP=3006,HX=3200,VX=3201,tA=0,QX=1,H2e=0,RS=7680,V2e=7681,Q2e=7682,z2e=7683,G2e=34055,q2e=34056,W2e=5386,$2e=512,j2e=513,K2e=514,X2e=515,Y2e=516,Z2e=517,J2e=518,zX=519,iw=35044,nA=35048,eEe=35040,tEe=35045,nEe=35049,iEe=35041,rEe=35046,oEe=35050,sEe=35042,aEe="100",_P="300 es";function Uc(){}Object.assign(Uc.prototype,{addEventListener:function(t,n){void 0===this._listeners&&(this._listeners={});const e=this._listeners;void 0===e[t]&&(e[t]=[]),-1===e[t].indexOf(n)&&e[t].push(n)},hasEventListener:function(t,n){if(void 0===this._listeners)return!1;const e=this._listeners;return void 0!==e[t]&&-1!==e[t].indexOf(n)},removeEventListener:function(t,n){if(void 0===this._listeners)return;const i=this._listeners[t];if(void 0!==i){const r=i.indexOf(n);-1!==r&&i.splice(r,1)}},dispatchEvent:function(t){if(void 0===this._listeners)return;const e=this._listeners[t.type];if(void 0!==e){t.target=this;const i=e.slice(0);for(let r=0,o=i.length;r>8&255]+Ks[t>>16&255]+Ks[t>>24&255]+"-"+Ks[255&n]+Ks[n>>8&255]+"-"+Ks[n>>16&15|64]+Ks[n>>24&255]+"-"+Ks[63&e|128]+Ks[e>>8&255]+"-"+Ks[e>>16&255]+Ks[e>>24&255]+Ks[255&i]+Ks[i>>8&255]+Ks[i>>16&255]+Ks[i>>24&255]).toUpperCase()},clamp:function(t,n,e){return Math.max(n,Math.min(e,t))},euclideanModulo:function(t,n){return(t%n+n)%n},mapLinear:function(t,n,e,i,r){return i+(t-n)*(r-i)/(e-n)},lerp:function(t,n,e){return(1-e)*t+e*n},damp:function(t,n,e,i){return Jn.lerp(t,n,1-Math.exp(-e*i))},pingpong:function(t,n=1){return n-Math.abs(Jn.euclideanModulo(t,2*n)-n)},smoothstep:function(t,n,e){return t<=n?0:t>=e?1:(t=(t-n)/(e-n))*t*(3-2*t)},smootherstep:function(t,n,e){return t<=n?0:t>=e?1:(t=(t-n)/(e-n))*t*t*(t*(6*t-15)+10)},randInt:function(t,n){return t+Math.floor(Math.random()*(n-t+1))},randFloat:function(t,n){return t+Math.random()*(n-t)},randFloatSpread:function(t){return t*(.5-Math.random())},seededRandom:function(t){return void 0!==t&&(LS=t%2147483647),LS=16807*LS%2147483647,(LS-1)/2147483646},degToRad:function(t){return t*Jn.DEG2RAD},radToDeg:function(t){return t*Jn.RAD2DEG},isPowerOfTwo:function(t){return!(t&t-1)&&0!==t},ceilPowerOfTwo:function(t){return Math.pow(2,Math.ceil(Math.log(t)/Math.LN2))},floorPowerOfTwo:function(t){return Math.pow(2,Math.floor(Math.log(t)/Math.LN2))},setQuaternionFromProperEuler:function(t,n,e,i,r){const o=Math.cos,s=Math.sin,a=o(e/2),l=s(e/2),c=o((n+i)/2),d=s((n+i)/2),u=o((n-i)/2),h=s((n-i)/2),m=o((i-n)/2),A=s((i-n)/2);switch(r){case"XYX":t.set(a*d,l*u,l*h,a*c);break;case"YZY":t.set(l*h,a*d,l*u,a*c);break;case"ZXZ":t.set(l*u,l*h,a*d,a*c);break;case"XZX":t.set(a*d,l*A,l*m,a*c);break;case"YXY":t.set(l*m,a*d,l*A,a*c);break;case"ZYZ":t.set(l*A,l*m,a*d,a*c);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+r)}}};class ut{constructor(n=0,e=0){this.x=n,this.y=e}get width(){return this.x}set width(n){this.x=n}get height(){return this.y}set height(n){this.y=n}set(n,e){return this.x=n,this.y=e,this}setScalar(n){return this.x=n,this.y=n,this}setX(n){return this.x=n,this}setY(n){return this.y=n,this}setComponent(n,e){switch(n){case 0:this.x=e;break;case 1:this.y=e;break;default:throw new Error("index is out of range: "+n)}return this}getComponent(n){switch(n){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+n)}}clone(){return new this.constructor(this.x,this.y)}copy(n){return this.x=n.x,this.y=n.y,this}add(n,e){return void 0!==e?(console.warn("THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(n,e)):(this.x+=n.x,this.y+=n.y,this)}addScalar(n){return this.x+=n,this.y+=n,this}addVectors(n,e){return this.x=n.x+e.x,this.y=n.y+e.y,this}addScaledVector(n,e){return this.x+=n.x*e,this.y+=n.y*e,this}sub(n,e){return void 0!==e?(console.warn("THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(n,e)):(this.x-=n.x,this.y-=n.y,this)}subScalar(n){return this.x-=n,this.y-=n,this}subVectors(n,e){return this.x=n.x-e.x,this.y=n.y-e.y,this}multiply(n){return this.x*=n.x,this.y*=n.y,this}multiplyScalar(n){return this.x*=n,this.y*=n,this}divide(n){return this.x/=n.x,this.y/=n.y,this}divideScalar(n){return this.multiplyScalar(1/n)}applyMatrix3(n){const e=this.x,i=this.y,r=n.elements;return this.x=r[0]*e+r[3]*i+r[6],this.y=r[1]*e+r[4]*i+r[7],this}min(n){return this.x=Math.min(this.x,n.x),this.y=Math.min(this.y,n.y),this}max(n){return this.x=Math.max(this.x,n.x),this.y=Math.max(this.y,n.y),this}clamp(n,e){return this.x=Math.max(n.x,Math.min(e.x,this.x)),this.y=Math.max(n.y,Math.min(e.y,this.y)),this}clampScalar(n,e){return this.x=Math.max(n,Math.min(e,this.x)),this.y=Math.max(n,Math.min(e,this.y)),this}clampLength(n,e){const i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(n,Math.min(e,i)))}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(n){return this.x*n.x+this.y*n.y}cross(n){return this.x*n.y-this.y*n.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(n){return Math.sqrt(this.distanceToSquared(n))}distanceToSquared(n){const e=this.x-n.x,i=this.y-n.y;return e*e+i*i}manhattanDistanceTo(n){return Math.abs(this.x-n.x)+Math.abs(this.y-n.y)}setLength(n){return this.normalize().multiplyScalar(n)}lerp(n,e){return this.x+=(n.x-this.x)*e,this.y+=(n.y-this.y)*e,this}lerpVectors(n,e,i){return this.x=n.x+(e.x-n.x)*i,this.y=n.y+(e.y-n.y)*i,this}equals(n){return n.x===this.x&&n.y===this.y}fromArray(n,e=0){return this.x=n[e],this.y=n[e+1],this}toArray(n=[],e=0){return n[e]=this.x,n[e+1]=this.y,n}fromBufferAttribute(n,e,i){return void 0!==i&&console.warn("THREE.Vector2: offset has been removed from .fromBufferAttribute()."),this.x=n.getX(e),this.y=n.getY(e),this}rotateAround(n,e){const i=Math.cos(e),r=Math.sin(e),o=this.x-n.x,s=this.y-n.y;return this.x=o*i-s*r+n.x,this.y=o*r+s*i+n.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}}ut.prototype.isVector2=!0;class ro{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(n,e,i,r,o,s,a,l,c){const d=this.elements;return d[0]=n,d[1]=r,d[2]=a,d[3]=e,d[4]=o,d[5]=l,d[6]=i,d[7]=s,d[8]=c,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(n){const e=this.elements,i=n.elements;return e[0]=i[0],e[1]=i[1],e[2]=i[2],e[3]=i[3],e[4]=i[4],e[5]=i[5],e[6]=i[6],e[7]=i[7],e[8]=i[8],this}extractBasis(n,e,i){return n.setFromMatrix3Column(this,0),e.setFromMatrix3Column(this,1),i.setFromMatrix3Column(this,2),this}setFromMatrix4(n){const e=n.elements;return this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]),this}multiply(n){return this.multiplyMatrices(this,n)}premultiply(n){return this.multiplyMatrices(n,this)}multiplyMatrices(n,e){const i=n.elements,r=e.elements,o=this.elements,s=i[0],a=i[3],l=i[6],c=i[1],d=i[4],u=i[7],h=i[2],m=i[5],A=i[8],v=r[0],x=r[3],C=r[6],w=r[1],S=r[4],M=r[7],B=r[2],P=r[5],$=r[8];return o[0]=s*v+a*w+l*B,o[3]=s*x+a*S+l*P,o[6]=s*C+a*M+l*$,o[1]=c*v+d*w+u*B,o[4]=c*x+d*S+u*P,o[7]=c*C+d*M+u*$,o[2]=h*v+m*w+A*B,o[5]=h*x+m*S+A*P,o[8]=h*C+m*M+A*$,this}multiplyScalar(n){const e=this.elements;return e[0]*=n,e[3]*=n,e[6]*=n,e[1]*=n,e[4]*=n,e[7]*=n,e[2]*=n,e[5]*=n,e[8]*=n,this}determinant(){const n=this.elements,e=n[0],i=n[1],r=n[2],o=n[3],s=n[4],a=n[5],l=n[6],c=n[7],d=n[8];return e*s*d-e*a*c-i*o*d+i*a*l+r*o*c-r*s*l}invert(){const n=this.elements,e=n[0],i=n[1],r=n[2],o=n[3],s=n[4],a=n[5],l=n[6],c=n[7],d=n[8],u=d*s-a*c,h=a*l-d*o,m=c*o-s*l,A=e*u+i*h+r*m;if(0===A)return this.set(0,0,0,0,0,0,0,0,0);const v=1/A;return n[0]=u*v,n[1]=(r*c-d*i)*v,n[2]=(a*i-r*s)*v,n[3]=h*v,n[4]=(d*e-r*l)*v,n[5]=(r*o-a*e)*v,n[6]=m*v,n[7]=(i*l-c*e)*v,n[8]=(s*e-i*o)*v,this}transpose(){let n;const e=this.elements;return n=e[1],e[1]=e[3],e[3]=n,n=e[2],e[2]=e[6],e[6]=n,n=e[5],e[5]=e[7],e[7]=n,this}getNormalMatrix(n){return this.setFromMatrix4(n).invert().transpose()}transposeIntoArray(n){const e=this.elements;return n[0]=e[0],n[1]=e[3],n[2]=e[6],n[3]=e[1],n[4]=e[4],n[5]=e[7],n[6]=e[2],n[7]=e[5],n[8]=e[8],this}setUvTransform(n,e,i,r,o,s,a){const l=Math.cos(o),c=Math.sin(o);return this.set(i*l,i*c,-i*(l*s+c*a)+s+n,-r*c,r*l,-r*(-c*s+l*a)+a+e,0,0,1),this}scale(n,e){const i=this.elements;return i[0]*=n,i[3]*=n,i[6]*=n,i[1]*=e,i[4]*=e,i[7]*=e,this}rotate(n){const e=Math.cos(n),i=Math.sin(n),r=this.elements,o=r[0],s=r[3],a=r[6],l=r[1],c=r[4],d=r[7];return r[0]=e*o+i*l,r[3]=e*s+i*c,r[6]=e*a+i*d,r[1]=-i*o+e*l,r[4]=-i*s+e*c,r[7]=-i*a+e*d,this}translate(n,e){const i=this.elements;return i[0]+=n*i[2],i[3]+=n*i[5],i[6]+=n*i[8],i[1]+=e*i[2],i[4]+=e*i[5],i[7]+=e*i[8],this}equals(n){const e=this.elements,i=n.elements;for(let r=0;r<9;r++)if(e[r]!==i[r])return!1;return!0}fromArray(n,e=0){for(let i=0;i<9;i++)this.elements[i]=n[i+e];return this}toArray(n=[],e=0){const i=this.elements;return n[e]=i[0],n[e+1]=i[1],n[e+2]=i[2],n[e+3]=i[3],n[e+4]=i[4],n[e+5]=i[5],n[e+6]=i[6],n[e+7]=i[7],n[e+8]=i[8],n}clone(){return(new this.constructor).fromArray(this.elements)}}let eb;ro.prototype.isMatrix3=!0;const iA={getDataURL:function(t){if(/^data:/i.test(t.src)||typeof HTMLCanvasElement>"u")return t.src;let n;if(t instanceof HTMLCanvasElement)n=t;else{void 0===eb&&(eb=document.createElementNS("http://www.w3.org/1999/xhtml","canvas")),eb.width=t.width,eb.height=t.height;const e=eb.getContext("2d");t instanceof ImageData?e.putImageData(t,0,0):e.drawImage(t,0,0,t.width,t.height),n=eb}return n.width>2048||n.height>2048?n.toDataURL("image/jpeg",.6):n.toDataURL("image/png")}};let lEe=0;class ss extends Uc{constructor(n=ss.DEFAULT_IMAGE,e=ss.DEFAULT_MAPPING,i=Ta,r=Ta,o=Ro,s=X0,a=Fa,l=Y0,c=1,d=ka){super(),Object.defineProperty(this,"id",{value:lEe++}),this.uuid=Jn.generateUUID(),this.name="",this.image=n,this.mipmaps=[],this.mapping=e,this.wrapS=i,this.wrapT=r,this.magFilter=o,this.minFilter=s,this.anisotropy=c,this.format=a,this.internalFormat=null,this.type=l,this.offset=new ut(0,0),this.repeat=new ut(1,1),this.center=new ut(0,0),this.rotation=0,this.matrixAutoUpdate=!0,this.matrix=new ro,this.generateMipmaps=!0,this.premultiplyAlpha=!1,this.flipY=!0,this.unpackAlignment=4,this.encoding=d,this.version=0,this.onUpdate=null}updateMatrix(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)}clone(){return(new this.constructor).copy(this)}copy(n){return this.name=n.name,this.image=n.image,this.mipmaps=n.mipmaps.slice(0),this.mapping=n.mapping,this.wrapS=n.wrapS,this.wrapT=n.wrapT,this.magFilter=n.magFilter,this.minFilter=n.minFilter,this.anisotropy=n.anisotropy,this.format=n.format,this.internalFormat=n.internalFormat,this.type=n.type,this.offset.copy(n.offset),this.repeat.copy(n.repeat),this.center.copy(n.center),this.rotation=n.rotation,this.matrixAutoUpdate=n.matrixAutoUpdate,this.matrix.copy(n.matrix),this.generateMipmaps=n.generateMipmaps,this.premultiplyAlpha=n.premultiplyAlpha,this.flipY=n.flipY,this.unpackAlignment=n.unpackAlignment,this.encoding=n.encoding,this}toJSON(n){const e=void 0===n||"string"==typeof n;if(!e&&void 0!==n.textures[this.uuid])return n.textures[this.uuid];const i={metadata:{version:4.5,type:"Texture",generator:"Texture.toJSON"},uuid:this.uuid,name:this.name,mapping:this.mapping,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],format:this.format,type:this.type,encoding:this.encoding,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY,premultiplyAlpha:this.premultiplyAlpha,unpackAlignment:this.unpackAlignment};if(void 0!==this.image){const r=this.image;if(void 0===r.uuid&&(r.uuid=Jn.generateUUID()),!e&&void 0===n.images[r.uuid]){let o;if(Array.isArray(r)){o=[];for(let s=0,a=r.length;s1)switch(this.wrapS){case Yp:n.x=n.x-Math.floor(n.x);break;case Ta:n.x=n.x<0?0:1;break;case K1:n.x=1===Math.abs(Math.floor(n.x)%2)?Math.ceil(n.x)-n.x:n.x-Math.floor(n.x)}if(n.y<0||n.y>1)switch(this.wrapT){case Yp:n.y=n.y-Math.floor(n.y);break;case Ta:n.y=n.y<0?0:1;break;case K1:n.y=1===Math.abs(Math.floor(n.y)%2)?Math.ceil(n.y)-n.y:n.y-Math.floor(n.y)}return this.flipY&&(n.y=1-n.y),n}set needsUpdate(n){!0===n&&this.version++}}function vP(t){return typeof HTMLImageElement<"u"&&t instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&t instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&t instanceof ImageBitmap?iA.getDataURL(t):t.data?{data:Array.prototype.slice.call(t.data),width:t.width,height:t.height,type:t.data.constructor.name}:(console.warn("THREE.Texture: Unable to serialize Texture."),{})}ss.DEFAULT_IMAGE=void 0,ss.DEFAULT_MAPPING=ES,ss.prototype.isTexture=!0;class Cr{constructor(n=0,e=0,i=0,r=1){this.x=n,this.y=e,this.z=i,this.w=r}get width(){return this.z}set width(n){this.z=n}get height(){return this.w}set height(n){this.w=n}set(n,e,i,r){return this.x=n,this.y=e,this.z=i,this.w=r,this}setScalar(n){return this.x=n,this.y=n,this.z=n,this.w=n,this}setX(n){return this.x=n,this}setY(n){return this.y=n,this}setZ(n){return this.z=n,this}setW(n){return this.w=n,this}setComponent(n,e){switch(n){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;case 3:this.w=e;break;default:throw new Error("index is out of range: "+n)}return this}getComponent(n){switch(n){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: "+n)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(n){return this.x=n.x,this.y=n.y,this.z=n.z,this.w=void 0!==n.w?n.w:1,this}add(n,e){return void 0!==e?(console.warn("THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(n,e)):(this.x+=n.x,this.y+=n.y,this.z+=n.z,this.w+=n.w,this)}addScalar(n){return this.x+=n,this.y+=n,this.z+=n,this.w+=n,this}addVectors(n,e){return this.x=n.x+e.x,this.y=n.y+e.y,this.z=n.z+e.z,this.w=n.w+e.w,this}addScaledVector(n,e){return this.x+=n.x*e,this.y+=n.y*e,this.z+=n.z*e,this.w+=n.w*e,this}sub(n,e){return void 0!==e?(console.warn("THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(n,e)):(this.x-=n.x,this.y-=n.y,this.z-=n.z,this.w-=n.w,this)}subScalar(n){return this.x-=n,this.y-=n,this.z-=n,this.w-=n,this}subVectors(n,e){return this.x=n.x-e.x,this.y=n.y-e.y,this.z=n.z-e.z,this.w=n.w-e.w,this}multiply(n){return this.x*=n.x,this.y*=n.y,this.z*=n.z,this.w*=n.w,this}multiplyScalar(n){return this.x*=n,this.y*=n,this.z*=n,this.w*=n,this}applyMatrix4(n){const e=this.x,i=this.y,r=this.z,o=this.w,s=n.elements;return this.x=s[0]*e+s[4]*i+s[8]*r+s[12]*o,this.y=s[1]*e+s[5]*i+s[9]*r+s[13]*o,this.z=s[2]*e+s[6]*i+s[10]*r+s[14]*o,this.w=s[3]*e+s[7]*i+s[11]*r+s[15]*o,this}divideScalar(n){return this.multiplyScalar(1/n)}setAxisAngleFromQuaternion(n){this.w=2*Math.acos(n.w);const e=Math.sqrt(1-n.w*n.w);return e<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=n.x/e,this.y=n.y/e,this.z=n.z/e),this}setAxisAngleFromRotationMatrix(n){let e,i,r,o;const l=n.elements,c=l[0],d=l[4],u=l[8],h=l[1],m=l[5],A=l[9],v=l[2],x=l[6],C=l[10];if(Math.abs(d-h)<.01&&Math.abs(u-v)<.01&&Math.abs(A-x)<.01){if(Math.abs(d+h)<.1&&Math.abs(u+v)<.1&&Math.abs(A+x)<.1&&Math.abs(c+m+C-3)<.1)return this.set(1,0,0,0),this;e=Math.PI;const S=(c+1)/2,M=(m+1)/2,B=(C+1)/2,P=(d+h)/4,$=(u+v)/4,ee=(A+x)/4;return S>M&&S>B?S<.01?(i=0,r=.707106781,o=.707106781):(i=Math.sqrt(S),r=P/i,o=$/i):M>B?M<.01?(i=.707106781,r=0,o=.707106781):(r=Math.sqrt(M),i=P/r,o=ee/r):B<.01?(i=.707106781,r=.707106781,o=0):(o=Math.sqrt(B),i=$/o,r=ee/o),this.set(i,r,o,e),this}let w=Math.sqrt((x-A)*(x-A)+(u-v)*(u-v)+(h-d)*(h-d));return Math.abs(w)<.001&&(w=1),this.x=(x-A)/w,this.y=(u-v)/w,this.z=(h-d)/w,this.w=Math.acos((c+m+C-1)/2),this}min(n){return this.x=Math.min(this.x,n.x),this.y=Math.min(this.y,n.y),this.z=Math.min(this.z,n.z),this.w=Math.min(this.w,n.w),this}max(n){return this.x=Math.max(this.x,n.x),this.y=Math.max(this.y,n.y),this.z=Math.max(this.z,n.z),this.w=Math.max(this.w,n.w),this}clamp(n,e){return this.x=Math.max(n.x,Math.min(e.x,this.x)),this.y=Math.max(n.y,Math.min(e.y,this.y)),this.z=Math.max(n.z,Math.min(e.z,this.z)),this.w=Math.max(n.w,Math.min(e.w,this.w)),this}clampScalar(n,e){return this.x=Math.max(n,Math.min(e,this.x)),this.y=Math.max(n,Math.min(e,this.y)),this.z=Math.max(n,Math.min(e,this.z)),this.w=Math.max(n,Math.min(e,this.w)),this}clampLength(n,e){const i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(n,Math.min(e,i)))}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(n){return this.x*n.x+this.y*n.y+this.z*n.z+this.w*n.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(n){return this.normalize().multiplyScalar(n)}lerp(n,e){return this.x+=(n.x-this.x)*e,this.y+=(n.y-this.y)*e,this.z+=(n.z-this.z)*e,this.w+=(n.w-this.w)*e,this}lerpVectors(n,e,i){return this.x=n.x+(e.x-n.x)*i,this.y=n.y+(e.y-n.y)*i,this.z=n.z+(e.z-n.z)*i,this.w=n.w+(e.w-n.w)*i,this}equals(n){return n.x===this.x&&n.y===this.y&&n.z===this.z&&n.w===this.w}fromArray(n,e=0){return this.x=n[e],this.y=n[e+1],this.z=n[e+2],this.w=n[e+3],this}toArray(n=[],e=0){return n[e]=this.x,n[e+1]=this.y,n[e+2]=this.z,n[e+3]=this.w,n}fromBufferAttribute(n,e,i){return void 0!==i&&console.warn("THREE.Vector4: offset has been removed from .fromBufferAttribute()."),this.x=n.getX(e),this.y=n.getY(e),this.z=n.getZ(e),this.w=n.getW(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}}Cr.prototype.isVector4=!0;class Hc extends Uc{constructor(n,e,i){super(),this.width=n,this.height=e,this.depth=1,this.scissor=new Cr(0,0,n,e),this.scissorTest=!1,this.viewport=new Cr(0,0,n,e),this.texture=new ss(void 0,(i=i||{}).mapping,i.wrapS,i.wrapT,i.magFilter,i.minFilter,i.format,i.type,i.anisotropy,i.encoding),this.texture.image={},this.texture.image.width=n,this.texture.image.height=e,this.texture.image.depth=1,this.texture.generateMipmaps=void 0!==i.generateMipmaps&&i.generateMipmaps,this.texture.minFilter=void 0!==i.minFilter?i.minFilter:Ro,this.depthBuffer=void 0===i.depthBuffer||i.depthBuffer,this.stencilBuffer=void 0!==i.stencilBuffer&&i.stencilBuffer,this.depthTexture=void 0!==i.depthTexture?i.depthTexture:null}setTexture(n){n.image={width:this.width,height:this.height,depth:this.depth},this.texture=n}setSize(n,e,i=1){(this.width!==n||this.height!==e||this.depth!==i)&&(this.width=n,this.height=e,this.depth=i,this.texture.image.width=n,this.texture.image.height=e,this.texture.image.depth=i,this.dispose()),this.viewport.set(0,0,n,e),this.scissor.set(0,0,n,e)}clone(){return(new this.constructor).copy(this)}copy(n){return this.width=n.width,this.height=n.height,this.depth=n.depth,this.viewport.copy(n.viewport),this.texture=n.texture.clone(),this.depthBuffer=n.depthBuffer,this.stencilBuffer=n.stencilBuffer,this.depthTexture=n.depthTexture,this}dispose(){this.dispatchEvent({type:"dispose"})}}Hc.prototype.isWebGLRenderTarget=!0;class GX extends Hc{constructor(n,e,i){super(n,e,i),this.samples=4}copy(n){return super.copy.call(this,n),this.samples=n.samples,this}}GX.prototype.isWebGLMultisampleRenderTarget=!0;class as{constructor(n=0,e=0,i=0,r=1){this._x=n,this._y=e,this._z=i,this._w=r}static slerp(n,e,i,r){return i.copy(n).slerp(e,r)}static slerpFlat(n,e,i,r,o,s,a){let l=i[r+0],c=i[r+1],d=i[r+2],u=i[r+3];const h=o[s+0],m=o[s+1],A=o[s+2],v=o[s+3];if(0===a)return n[e+0]=l,n[e+1]=c,n[e+2]=d,void(n[e+3]=u);if(1===a)return n[e+0]=h,n[e+1]=m,n[e+2]=A,void(n[e+3]=v);if(u!==v||l!==h||c!==m||d!==A){let x=1-a;const C=l*h+c*m+d*A+u*v,w=C>=0?1:-1,S=1-C*C;if(S>Number.EPSILON){const B=Math.sqrt(S),P=Math.atan2(B,C*w);x=Math.sin(x*P)/B,a=Math.sin(a*P)/B}const M=a*w;if(l=l*x+h*M,c=c*x+m*M,d=d*x+A*M,u=u*x+v*M,x===1-a){const B=1/Math.sqrt(l*l+c*c+d*d+u*u);l*=B,c*=B,d*=B,u*=B}}n[e]=l,n[e+1]=c,n[e+2]=d,n[e+3]=u}static multiplyQuaternionsFlat(n,e,i,r,o,s){const a=i[r],l=i[r+1],c=i[r+2],d=i[r+3],u=o[s],h=o[s+1],m=o[s+2],A=o[s+3];return n[e]=a*A+d*u+l*m-c*h,n[e+1]=l*A+d*h+c*u-a*m,n[e+2]=c*A+d*m+a*h-l*u,n[e+3]=d*A-a*u-l*h-c*m,n}get x(){return this._x}set x(n){this._x=n,this._onChangeCallback()}get y(){return this._y}set y(n){this._y=n,this._onChangeCallback()}get z(){return this._z}set z(n){this._z=n,this._onChangeCallback()}get w(){return this._w}set w(n){this._w=n,this._onChangeCallback()}set(n,e,i,r){return this._x=n,this._y=e,this._z=i,this._w=r,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(n){return this._x=n.x,this._y=n.y,this._z=n.z,this._w=n.w,this._onChangeCallback(),this}setFromEuler(n,e){if(!n||!n.isEuler)throw new Error("THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.");const i=n._x,r=n._y,o=n._z,s=n._order,a=Math.cos,l=Math.sin,c=a(i/2),d=a(r/2),u=a(o/2),h=l(i/2),m=l(r/2),A=l(o/2);switch(s){case"XYZ":this._x=h*d*u+c*m*A,this._y=c*m*u-h*d*A,this._z=c*d*A+h*m*u,this._w=c*d*u-h*m*A;break;case"YXZ":this._x=h*d*u+c*m*A,this._y=c*m*u-h*d*A,this._z=c*d*A-h*m*u,this._w=c*d*u+h*m*A;break;case"ZXY":this._x=h*d*u-c*m*A,this._y=c*m*u+h*d*A,this._z=c*d*A+h*m*u,this._w=c*d*u-h*m*A;break;case"ZYX":this._x=h*d*u-c*m*A,this._y=c*m*u+h*d*A,this._z=c*d*A-h*m*u,this._w=c*d*u+h*m*A;break;case"YZX":this._x=h*d*u+c*m*A,this._y=c*m*u+h*d*A,this._z=c*d*A-h*m*u,this._w=c*d*u-h*m*A;break;case"XZY":this._x=h*d*u-c*m*A,this._y=c*m*u-h*d*A,this._z=c*d*A+h*m*u,this._w=c*d*u+h*m*A;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+s)}return!1!==e&&this._onChangeCallback(),this}setFromAxisAngle(n,e){const i=e/2,r=Math.sin(i);return this._x=n.x*r,this._y=n.y*r,this._z=n.z*r,this._w=Math.cos(i),this._onChangeCallback(),this}setFromRotationMatrix(n){const e=n.elements,i=e[0],r=e[4],o=e[8],s=e[1],a=e[5],l=e[9],c=e[2],d=e[6],u=e[10],h=i+a+u;if(h>0){const m=.5/Math.sqrt(h+1);this._w=.25/m,this._x=(d-l)*m,this._y=(o-c)*m,this._z=(s-r)*m}else if(i>a&&i>u){const m=2*Math.sqrt(1+i-a-u);this._w=(d-l)/m,this._x=.25*m,this._y=(r+s)/m,this._z=(o+c)/m}else if(a>u){const m=2*Math.sqrt(1+a-i-u);this._w=(o-c)/m,this._x=(r+s)/m,this._y=.25*m,this._z=(l+d)/m}else{const m=2*Math.sqrt(1+u-i-a);this._w=(s-r)/m,this._x=(o+c)/m,this._y=(l+d)/m,this._z=.25*m}return this._onChangeCallback(),this}setFromUnitVectors(n,e){let r=n.dot(e)+1;return r<1e-6?(r=0,Math.abs(n.x)>Math.abs(n.z)?(this._x=-n.y,this._y=n.x,this._z=0,this._w=r):(this._x=0,this._y=-n.z,this._z=n.y,this._w=r)):(this._x=n.y*e.z-n.z*e.y,this._y=n.z*e.x-n.x*e.z,this._z=n.x*e.y-n.y*e.x,this._w=r),this.normalize()}angleTo(n){return 2*Math.acos(Math.abs(Jn.clamp(this.dot(n),-1,1)))}rotateTowards(n,e){const i=this.angleTo(n);if(0===i)return this;const r=Math.min(1,e/i);return this.slerp(n,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(n){return this._x*n._x+this._y*n._y+this._z*n._z+this._w*n._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 n=this.length();return 0===n?(this._x=0,this._y=0,this._z=0,this._w=1):(n=1/n,this._x=this._x*n,this._y=this._y*n,this._z=this._z*n,this._w=this._w*n),this._onChangeCallback(),this}multiply(n,e){return void 0!==e?(console.warn("THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead."),this.multiplyQuaternions(n,e)):this.multiplyQuaternions(this,n)}premultiply(n){return this.multiplyQuaternions(n,this)}multiplyQuaternions(n,e){const i=n._x,r=n._y,o=n._z,s=n._w,a=e._x,l=e._y,c=e._z,d=e._w;return this._x=i*d+s*a+r*c-o*l,this._y=r*d+s*l+o*a-i*c,this._z=o*d+s*c+i*l-r*a,this._w=s*d-i*a-r*l-o*c,this._onChangeCallback(),this}slerp(n,e){if(0===e)return this;if(1===e)return this.copy(n);const i=this._x,r=this._y,o=this._z,s=this._w;let a=s*n._w+i*n._x+r*n._y+o*n._z;if(a<0?(this._w=-n._w,this._x=-n._x,this._y=-n._y,this._z=-n._z,a=-a):this.copy(n),a>=1)return this._w=s,this._x=i,this._y=r,this._z=o,this;const l=1-a*a;if(l<=Number.EPSILON){const m=1-e;return this._w=m*s+e*this._w,this._x=m*i+e*this._x,this._y=m*r+e*this._y,this._z=m*o+e*this._z,this.normalize(),this._onChangeCallback(),this}const c=Math.sqrt(l),d=Math.atan2(c,a),u=Math.sin((1-e)*d)/c,h=Math.sin(e*d)/c;return this._w=s*u+this._w*h,this._x=i*u+this._x*h,this._y=r*u+this._y*h,this._z=o*u+this._z*h,this._onChangeCallback(),this}equals(n){return n._x===this._x&&n._y===this._y&&n._z===this._z&&n._w===this._w}fromArray(n,e=0){return this._x=n[e],this._y=n[e+1],this._z=n[e+2],this._w=n[e+3],this._onChangeCallback(),this}toArray(n=[],e=0){return n[e]=this._x,n[e+1]=this._y,n[e+2]=this._z,n[e+3]=this._w,n}fromBufferAttribute(n,e){return this._x=n.getX(e),this._y=n.getY(e),this._z=n.getZ(e),this._w=n.getW(e),this}_onChange(n){return this._onChangeCallback=n,this}_onChangeCallback(){}}as.prototype.isQuaternion=!0;class Y{constructor(n=0,e=0,i=0){this.x=n,this.y=e,this.z=i}set(n,e,i){return void 0===i&&(i=this.z),this.x=n,this.y=e,this.z=i,this}setScalar(n){return this.x=n,this.y=n,this.z=n,this}setX(n){return this.x=n,this}setY(n){return this.y=n,this}setZ(n){return this.z=n,this}setComponent(n,e){switch(n){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error("index is out of range: "+n)}return this}getComponent(n){switch(n){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+n)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(n){return this.x=n.x,this.y=n.y,this.z=n.z,this}add(n,e){return void 0!==e?(console.warn("THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(n,e)):(this.x+=n.x,this.y+=n.y,this.z+=n.z,this)}addScalar(n){return this.x+=n,this.y+=n,this.z+=n,this}addVectors(n,e){return this.x=n.x+e.x,this.y=n.y+e.y,this.z=n.z+e.z,this}addScaledVector(n,e){return this.x+=n.x*e,this.y+=n.y*e,this.z+=n.z*e,this}sub(n,e){return void 0!==e?(console.warn("THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(n,e)):(this.x-=n.x,this.y-=n.y,this.z-=n.z,this)}subScalar(n){return this.x-=n,this.y-=n,this.z-=n,this}subVectors(n,e){return this.x=n.x-e.x,this.y=n.y-e.y,this.z=n.z-e.z,this}multiply(n,e){return void 0!==e?(console.warn("THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead."),this.multiplyVectors(n,e)):(this.x*=n.x,this.y*=n.y,this.z*=n.z,this)}multiplyScalar(n){return this.x*=n,this.y*=n,this.z*=n,this}multiplyVectors(n,e){return this.x=n.x*e.x,this.y=n.y*e.y,this.z=n.z*e.z,this}applyEuler(n){return n&&n.isEuler||console.error("THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order."),this.applyQuaternion(qX.setFromEuler(n))}applyAxisAngle(n,e){return this.applyQuaternion(qX.setFromAxisAngle(n,e))}applyMatrix3(n){const e=this.x,i=this.y,r=this.z,o=n.elements;return this.x=o[0]*e+o[3]*i+o[6]*r,this.y=o[1]*e+o[4]*i+o[7]*r,this.z=o[2]*e+o[5]*i+o[8]*r,this}applyNormalMatrix(n){return this.applyMatrix3(n).normalize()}applyMatrix4(n){const e=this.x,i=this.y,r=this.z,o=n.elements,s=1/(o[3]*e+o[7]*i+o[11]*r+o[15]);return this.x=(o[0]*e+o[4]*i+o[8]*r+o[12])*s,this.y=(o[1]*e+o[5]*i+o[9]*r+o[13])*s,this.z=(o[2]*e+o[6]*i+o[10]*r+o[14])*s,this}applyQuaternion(n){const e=this.x,i=this.y,r=this.z,o=n.x,s=n.y,a=n.z,l=n.w,c=l*e+s*r-a*i,d=l*i+a*e-o*r,u=l*r+o*i-s*e,h=-o*e-s*i-a*r;return this.x=c*l+h*-o+d*-a-u*-s,this.y=d*l+h*-s+u*-o-c*-a,this.z=u*l+h*-a+c*-s-d*-o,this}project(n){return this.applyMatrix4(n.matrixWorldInverse).applyMatrix4(n.projectionMatrix)}unproject(n){return this.applyMatrix4(n.projectionMatrixInverse).applyMatrix4(n.matrixWorld)}transformDirection(n){const e=this.x,i=this.y,r=this.z,o=n.elements;return this.x=o[0]*e+o[4]*i+o[8]*r,this.y=o[1]*e+o[5]*i+o[9]*r,this.z=o[2]*e+o[6]*i+o[10]*r,this.normalize()}divide(n){return this.x/=n.x,this.y/=n.y,this.z/=n.z,this}divideScalar(n){return this.multiplyScalar(1/n)}min(n){return this.x=Math.min(this.x,n.x),this.y=Math.min(this.y,n.y),this.z=Math.min(this.z,n.z),this}max(n){return this.x=Math.max(this.x,n.x),this.y=Math.max(this.y,n.y),this.z=Math.max(this.z,n.z),this}clamp(n,e){return this.x=Math.max(n.x,Math.min(e.x,this.x)),this.y=Math.max(n.y,Math.min(e.y,this.y)),this.z=Math.max(n.z,Math.min(e.z,this.z)),this}clampScalar(n,e){return this.x=Math.max(n,Math.min(e,this.x)),this.y=Math.max(n,Math.min(e,this.y)),this.z=Math.max(n,Math.min(e,this.z)),this}clampLength(n,e){const i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(n,Math.min(e,i)))}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(n){return this.x*n.x+this.y*n.y+this.z*n.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(n){return this.normalize().multiplyScalar(n)}lerp(n,e){return this.x+=(n.x-this.x)*e,this.y+=(n.y-this.y)*e,this.z+=(n.z-this.z)*e,this}lerpVectors(n,e,i){return this.x=n.x+(e.x-n.x)*i,this.y=n.y+(e.y-n.y)*i,this.z=n.z+(e.z-n.z)*i,this}cross(n,e){return void 0!==e?(console.warn("THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead."),this.crossVectors(n,e)):this.crossVectors(this,n)}crossVectors(n,e){const i=n.x,r=n.y,o=n.z,s=e.x,a=e.y,l=e.z;return this.x=r*l-o*a,this.y=o*s-i*l,this.z=i*a-r*s,this}projectOnVector(n){const e=n.lengthSq();if(0===e)return this.set(0,0,0);const i=n.dot(this)/e;return this.copy(n).multiplyScalar(i)}projectOnPlane(n){return yP.copy(this).projectOnVector(n),this.sub(yP)}reflect(n){return this.sub(yP.copy(n).multiplyScalar(2*this.dot(n)))}angleTo(n){const e=Math.sqrt(this.lengthSq()*n.lengthSq());if(0===e)return Math.PI/2;const i=this.dot(n)/e;return Math.acos(Jn.clamp(i,-1,1))}distanceTo(n){return Math.sqrt(this.distanceToSquared(n))}distanceToSquared(n){const e=this.x-n.x,i=this.y-n.y,r=this.z-n.z;return e*e+i*i+r*r}manhattanDistanceTo(n){return Math.abs(this.x-n.x)+Math.abs(this.y-n.y)+Math.abs(this.z-n.z)}setFromSpherical(n){return this.setFromSphericalCoords(n.radius,n.phi,n.theta)}setFromSphericalCoords(n,e,i){const r=Math.sin(e)*n;return this.x=r*Math.sin(i),this.y=Math.cos(e)*n,this.z=r*Math.cos(i),this}setFromCylindrical(n){return this.setFromCylindricalCoords(n.radius,n.theta,n.y)}setFromCylindricalCoords(n,e,i){return this.x=n*Math.sin(e),this.y=i,this.z=n*Math.cos(e),this}setFromMatrixPosition(n){const e=n.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this}setFromMatrixScale(n){const e=this.setFromMatrixColumn(n,0).length(),i=this.setFromMatrixColumn(n,1).length(),r=this.setFromMatrixColumn(n,2).length();return this.x=e,this.y=i,this.z=r,this}setFromMatrixColumn(n,e){return this.fromArray(n.elements,4*e)}setFromMatrix3Column(n,e){return this.fromArray(n.elements,3*e)}equals(n){return n.x===this.x&&n.y===this.y&&n.z===this.z}fromArray(n,e=0){return this.x=n[e],this.y=n[e+1],this.z=n[e+2],this}toArray(n=[],e=0){return n[e]=this.x,n[e+1]=this.y,n[e+2]=this.z,n}fromBufferAttribute(n,e,i){return void 0!==i&&console.warn("THREE.Vector3: offset has been removed from .fromBufferAttribute()."),this.x=n.getX(e),this.y=n.getY(e),this.z=n.getZ(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}}Y.prototype.isVector3=!0;const yP=new Y,qX=new as;class ys{constructor(n=new Y(1/0,1/0,1/0),e=new Y(-1/0,-1/0,-1/0)){this.min=n,this.max=e}set(n,e){return this.min.copy(n),this.max.copy(e),this}setFromArray(n){let e=1/0,i=1/0,r=1/0,o=-1/0,s=-1/0,a=-1/0;for(let l=0,c=n.length;lo&&(o=d),u>s&&(s=u),h>a&&(a=h)}return this.min.set(e,i,r),this.max.set(o,s,a),this}setFromBufferAttribute(n){let e=1/0,i=1/0,r=1/0,o=-1/0,s=-1/0,a=-1/0;for(let l=0,c=n.count;lo&&(o=d),u>s&&(s=u),h>a&&(a=h)}return this.min.set(e,i,r),this.max.set(o,s,a),this}setFromPoints(n){this.makeEmpty();for(let e=0,i=n.length;ethis.max.x||n.ythis.max.y||n.zthis.max.z)}containsBox(n){return this.min.x<=n.min.x&&n.max.x<=this.max.x&&this.min.y<=n.min.y&&n.max.y<=this.max.y&&this.min.z<=n.min.z&&n.max.z<=this.max.z}getParameter(n,e){return void 0===e&&(console.warn("THREE.Box3: .getParameter() target is now required"),e=new Y),e.set((n.x-this.min.x)/(this.max.x-this.min.x),(n.y-this.min.y)/(this.max.y-this.min.y),(n.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(n){return!(n.max.xthis.max.x||n.max.ythis.max.y||n.max.zthis.max.z)}intersectsSphere(n){return this.clampPoint(n.center,rw),rw.distanceToSquared(n.center)<=n.radius*n.radius}intersectsPlane(n){let e,i;return n.normal.x>0?(e=n.normal.x*this.min.x,i=n.normal.x*this.max.x):(e=n.normal.x*this.max.x,i=n.normal.x*this.min.x),n.normal.y>0?(e+=n.normal.y*this.min.y,i+=n.normal.y*this.max.y):(e+=n.normal.y*this.max.y,i+=n.normal.y*this.min.y),n.normal.z>0?(e+=n.normal.z*this.min.z,i+=n.normal.z*this.max.z):(e+=n.normal.z*this.max.z,i+=n.normal.z*this.min.z),e<=-n.constant&&i>=-n.constant}intersectsTriangle(n){if(this.isEmpty())return!1;this.getCenter(ow),PS.subVectors(this.max,ow),tb.subVectors(n.a,ow),nb.subVectors(n.b,ow),ib.subVectors(n.c,ow),Zf.subVectors(nb,tb),Jf.subVectors(ib,nb),rA.subVectors(tb,ib);let e=[0,-Zf.z,Zf.y,0,-Jf.z,Jf.y,0,-rA.z,rA.y,Zf.z,0,-Zf.x,Jf.z,0,-Jf.x,rA.z,0,-rA.x,-Zf.y,Zf.x,0,-Jf.y,Jf.x,0,-rA.y,rA.x,0];return!(!xP(e,tb,nb,ib,PS)||(e=[1,0,0,0,1,0,0,0,1],!xP(e,tb,nb,ib,PS)))&&(NS.crossVectors(Zf,Jf),e=[NS.x,NS.y,NS.z],xP(e,tb,nb,ib,PS))}clampPoint(n,e){return void 0===e&&(console.warn("THREE.Box3: .clampPoint() target is now required"),e=new Y),e.copy(n).clamp(this.min,this.max)}distanceToPoint(n){return rw.copy(n).clamp(this.min,this.max).sub(n).length()}getBoundingSphere(n){return void 0===n&&console.error("THREE.Box3: .getBoundingSphere() target is now required"),this.getCenter(n.center),n.radius=.5*this.getSize(rw).length(),n}intersect(n){return this.min.max(n.min),this.max.min(n.max),this.isEmpty()&&this.makeEmpty(),this}union(n){return this.min.min(n.min),this.max.max(n.max),this}applyMatrix4(n){return this.isEmpty()||(mh[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(n),mh[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(n),mh[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(n),mh[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(n),mh[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(n),mh[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(n),mh[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(n),mh[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(n),this.setFromPoints(mh)),this}translate(n){return this.min.add(n),this.max.add(n),this}equals(n){return n.min.equals(this.min)&&n.max.equals(this.max)}}ys.prototype.isBox3=!0;const mh=[new Y,new Y,new Y,new Y,new Y,new Y,new Y,new Y],rw=new Y,wP=new ys,tb=new Y,nb=new Y,ib=new Y,Zf=new Y,Jf=new Y,rA=new Y,ow=new Y,PS=new Y,NS=new Y,oA=new Y;function xP(t,n,e,i,r){for(let o=0,s=t.length-3;o<=s;o+=3){oA.fromArray(t,o);const a=r.x*Math.abs(oA.x)+r.y*Math.abs(oA.y)+r.z*Math.abs(oA.z),l=n.dot(oA),c=e.dot(oA),d=i.dot(oA);if(Math.max(-Math.max(l,c,d),Math.min(l,c,d))>a)return!1}return!0}const cEe=new ys;class Zd{constructor(n=new Y,e=-1){this.center=n,this.radius=e}set(n,e){return this.center.copy(n),this.radius=e,this}setFromPoints(n,e){const i=this.center;void 0!==e?i.copy(e):cEe.setFromPoints(n).getCenter(i);let r=0;for(let o=0,s=n.length;othis.radius*this.radius&&(e.sub(this.center).normalize(),e.multiplyScalar(this.radius).add(this.center)),e}getBoundingBox(n){return void 0===n&&(console.warn("THREE.Sphere: .getBoundingBox() target is now required"),n=new ys),this.isEmpty()?(n.makeEmpty(),n):(n.set(this.center,this.center),n.expandByScalar(this.radius),n)}applyMatrix4(n){return this.center.applyMatrix4(n),this.radius=this.radius*n.getMaxScaleOnAxis(),this}translate(n){return this.center.add(n),this}equals(n){return n.center.equals(this.center)&&n.radius===this.radius}clone(){return(new this.constructor).copy(this)}}const ph=new Y,CP=new Y,OS=new Y,em=new Y,EP=new Y,US=new Y,MP=new Y;class Ah{constructor(n=new Y,e=new Y(0,0,-1)){this.origin=n,this.direction=e}set(n,e){return this.origin.copy(n),this.direction.copy(e),this}copy(n){return this.origin.copy(n.origin),this.direction.copy(n.direction),this}at(n,e){return void 0===e&&(console.warn("THREE.Ray: .at() target is now required"),e=new Y),e.copy(this.direction).multiplyScalar(n).add(this.origin)}lookAt(n){return this.direction.copy(n).sub(this.origin).normalize(),this}recast(n){return this.origin.copy(this.at(n,ph)),this}closestPointToPoint(n,e){void 0===e&&(console.warn("THREE.Ray: .closestPointToPoint() target is now required"),e=new Y),e.subVectors(n,this.origin);const i=e.dot(this.direction);return i<0?e.copy(this.origin):e.copy(this.direction).multiplyScalar(i).add(this.origin)}distanceToPoint(n){return Math.sqrt(this.distanceSqToPoint(n))}distanceSqToPoint(n){const e=ph.subVectors(n,this.origin).dot(this.direction);return e<0?this.origin.distanceToSquared(n):(ph.copy(this.direction).multiplyScalar(e).add(this.origin),ph.distanceToSquared(n))}distanceSqToSegment(n,e,i,r){CP.copy(n).add(e).multiplyScalar(.5),OS.copy(e).sub(n).normalize(),em.copy(this.origin).sub(CP);const o=.5*n.distanceTo(e),s=-this.direction.dot(OS),a=em.dot(this.direction),l=-em.dot(OS),c=em.lengthSq(),d=Math.abs(1-s*s);let u,h,m,A;if(d>0)if(u=s*l-a,h=s*a-l,A=o*d,u>=0)if(h>=-A)if(h<=A){const v=1/d;u*=v,h*=v,m=u*(u+s*h+2*a)+h*(s*u+h+2*l)+c}else h=o,u=Math.max(0,-(s*h+a)),m=-u*u+h*(h+2*l)+c;else h=-o,u=Math.max(0,-(s*h+a)),m=-u*u+h*(h+2*l)+c;else h<=-A?(u=Math.max(0,-(-s*o+a)),h=u>0?-o:Math.min(Math.max(-o,-l),o),m=-u*u+h*(h+2*l)+c):h<=A?(u=0,h=Math.min(Math.max(-o,-l),o),m=h*(h+2*l)+c):(u=Math.max(0,-(s*o+a)),h=u>0?o:Math.min(Math.max(-o,-l),o),m=-u*u+h*(h+2*l)+c);else h=s>0?-o:o,u=Math.max(0,-(s*h+a)),m=-u*u+h*(h+2*l)+c;return i&&i.copy(this.direction).multiplyScalar(u).add(this.origin),r&&r.copy(OS).multiplyScalar(h).add(CP),m}intersectSphere(n,e){ph.subVectors(n.center,this.origin);const i=ph.dot(this.direction),r=ph.dot(ph)-i*i,o=n.radius*n.radius;if(r>o)return null;const s=Math.sqrt(o-r),a=i-s,l=i+s;return a<0&&l<0?null:this.at(a<0?l:a,e)}intersectsSphere(n){return this.distanceSqToPoint(n.center)<=n.radius*n.radius}distanceToPlane(n){const e=n.normal.dot(this.direction);if(0===e)return 0===n.distanceToPoint(this.origin)?0:null;const i=-(this.origin.dot(n.normal)+n.constant)/e;return i>=0?i:null}intersectPlane(n,e){const i=this.distanceToPlane(n);return null===i?null:this.at(i,e)}intersectsPlane(n){const e=n.distanceToPoint(this.origin);return 0===e||n.normal.dot(this.direction)*e<0}intersectBox(n,e){let i,r,o,s,a,l;const c=1/this.direction.x,d=1/this.direction.y,u=1/this.direction.z,h=this.origin;return c>=0?(i=(n.min.x-h.x)*c,r=(n.max.x-h.x)*c):(i=(n.max.x-h.x)*c,r=(n.min.x-h.x)*c),d>=0?(o=(n.min.y-h.y)*d,s=(n.max.y-h.y)*d):(o=(n.max.y-h.y)*d,s=(n.min.y-h.y)*d),i>s||o>r||((o>i||i!=i)&&(i=o),(s=0?(a=(n.min.z-h.z)*u,l=(n.max.z-h.z)*u):(a=(n.max.z-h.z)*u,l=(n.min.z-h.z)*u),i>l||a>r)||((a>i||i!=i)&&(i=a),(l=0?i:r,e)}intersectsBox(n){return null!==this.intersectBox(n,ph)}intersectTriangle(n,e,i,r,o){EP.subVectors(e,n),US.subVectors(i,n),MP.crossVectors(EP,US);let a,s=this.direction.dot(MP);if(s>0){if(r)return null;a=1}else{if(!(s<0))return null;a=-1,s=-s}em.subVectors(this.origin,n);const l=a*this.direction.dot(US.crossVectors(em,US));if(l<0)return null;const c=a*this.direction.dot(EP.cross(em));if(c<0||l+c>s)return null;const d=-a*em.dot(MP);return d<0?null:this.at(d/s,o)}applyMatrix4(n){return this.origin.applyMatrix4(n),this.direction.transformDirection(n),this}equals(n){return n.origin.equals(this.origin)&&n.direction.equals(this.direction)}clone(){return(new this.constructor).copy(this)}}class Hn{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(n,e,i,r,o,s,a,l,c,d,u,h,m,A,v,x){const C=this.elements;return C[0]=n,C[4]=e,C[8]=i,C[12]=r,C[1]=o,C[5]=s,C[9]=a,C[13]=l,C[2]=c,C[6]=d,C[10]=u,C[14]=h,C[3]=m,C[7]=A,C[11]=v,C[15]=x,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 Hn).fromArray(this.elements)}copy(n){const e=this.elements,i=n.elements;return e[0]=i[0],e[1]=i[1],e[2]=i[2],e[3]=i[3],e[4]=i[4],e[5]=i[5],e[6]=i[6],e[7]=i[7],e[8]=i[8],e[9]=i[9],e[10]=i[10],e[11]=i[11],e[12]=i[12],e[13]=i[13],e[14]=i[14],e[15]=i[15],this}copyPosition(n){const e=this.elements,i=n.elements;return e[12]=i[12],e[13]=i[13],e[14]=i[14],this}setFromMatrix3(n){const e=n.elements;return this.set(e[0],e[3],e[6],0,e[1],e[4],e[7],0,e[2],e[5],e[8],0,0,0,0,1),this}extractBasis(n,e,i){return n.setFromMatrixColumn(this,0),e.setFromMatrixColumn(this,1),i.setFromMatrixColumn(this,2),this}makeBasis(n,e,i){return this.set(n.x,e.x,i.x,0,n.y,e.y,i.y,0,n.z,e.z,i.z,0,0,0,0,1),this}extractRotation(n){const e=this.elements,i=n.elements,r=1/rb.setFromMatrixColumn(n,0).length(),o=1/rb.setFromMatrixColumn(n,1).length(),s=1/rb.setFromMatrixColumn(n,2).length();return e[0]=i[0]*r,e[1]=i[1]*r,e[2]=i[2]*r,e[3]=0,e[4]=i[4]*o,e[5]=i[5]*o,e[6]=i[6]*o,e[7]=0,e[8]=i[8]*s,e[9]=i[9]*s,e[10]=i[10]*s,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromEuler(n){n&&n.isEuler||console.error("THREE.Matrix4: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.");const e=this.elements,i=n.x,r=n.y,o=n.z,s=Math.cos(i),a=Math.sin(i),l=Math.cos(r),c=Math.sin(r),d=Math.cos(o),u=Math.sin(o);if("XYZ"===n.order){const h=s*d,m=s*u,A=a*d,v=a*u;e[0]=l*d,e[4]=-l*u,e[8]=c,e[1]=m+A*c,e[5]=h-v*c,e[9]=-a*l,e[2]=v-h*c,e[6]=A+m*c,e[10]=s*l}else if("YXZ"===n.order){const h=l*d,m=l*u,A=c*d,v=c*u;e[0]=h+v*a,e[4]=A*a-m,e[8]=s*c,e[1]=s*u,e[5]=s*d,e[9]=-a,e[2]=m*a-A,e[6]=v+h*a,e[10]=s*l}else if("ZXY"===n.order){const h=l*d,m=l*u,A=c*d,v=c*u;e[0]=h-v*a,e[4]=-s*u,e[8]=A+m*a,e[1]=m+A*a,e[5]=s*d,e[9]=v-h*a,e[2]=-s*c,e[6]=a,e[10]=s*l}else if("ZYX"===n.order){const h=s*d,m=s*u,A=a*d,v=a*u;e[0]=l*d,e[4]=A*c-m,e[8]=h*c+v,e[1]=l*u,e[5]=v*c+h,e[9]=m*c-A,e[2]=-c,e[6]=a*l,e[10]=s*l}else if("YZX"===n.order){const h=s*l,m=s*c,A=a*l,v=a*c;e[0]=l*d,e[4]=v-h*u,e[8]=A*u+m,e[1]=u,e[5]=s*d,e[9]=-a*d,e[2]=-c*d,e[6]=m*u+A,e[10]=h-v*u}else if("XZY"===n.order){const h=s*l,m=s*c,A=a*l,v=a*c;e[0]=l*d,e[4]=-u,e[8]=c*d,e[1]=h*u+v,e[5]=s*d,e[9]=m*u-A,e[2]=A*u-m,e[6]=a*d,e[10]=v*u+h}return e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromQuaternion(n){return this.compose(dEe,n,uEe)}lookAt(n,e,i){const r=this.elements;return Il.subVectors(n,e),0===Il.lengthSq()&&(Il.z=1),Il.normalize(),tm.crossVectors(i,Il),0===tm.lengthSq()&&(1===Math.abs(i.z)?Il.x+=1e-4:Il.z+=1e-4,Il.normalize(),tm.crossVectors(i,Il)),tm.normalize(),HS.crossVectors(Il,tm),r[0]=tm.x,r[4]=HS.x,r[8]=Il.x,r[1]=tm.y,r[5]=HS.y,r[9]=Il.y,r[2]=tm.z,r[6]=HS.z,r[10]=Il.z,this}multiply(n,e){return void 0!==e?(console.warn("THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead."),this.multiplyMatrices(n,e)):this.multiplyMatrices(this,n)}premultiply(n){return this.multiplyMatrices(n,this)}multiplyMatrices(n,e){const i=n.elements,r=e.elements,o=this.elements,s=i[0],a=i[4],l=i[8],c=i[12],d=i[1],u=i[5],h=i[9],m=i[13],A=i[2],v=i[6],x=i[10],C=i[14],w=i[3],S=i[7],M=i[11],B=i[15],P=r[0],$=r[4],ee=r[8],te=r[12],re=r[1],ne=r[5],Ce=r[9],we=r[13],j=r[2],me=r[6],X=r[10],Ae=r[14],ke=r[3],Qe=r[7],ht=r[11],ye=r[15];return o[0]=s*P+a*re+l*j+c*ke,o[4]=s*$+a*ne+l*me+c*Qe,o[8]=s*ee+a*Ce+l*X+c*ht,o[12]=s*te+a*we+l*Ae+c*ye,o[1]=d*P+u*re+h*j+m*ke,o[5]=d*$+u*ne+h*me+m*Qe,o[9]=d*ee+u*Ce+h*X+m*ht,o[13]=d*te+u*we+h*Ae+m*ye,o[2]=A*P+v*re+x*j+C*ke,o[6]=A*$+v*ne+x*me+C*Qe,o[10]=A*ee+v*Ce+x*X+C*ht,o[14]=A*te+v*we+x*Ae+C*ye,o[3]=w*P+S*re+M*j+B*ke,o[7]=w*$+S*ne+M*me+B*Qe,o[11]=w*ee+S*Ce+M*X+B*ht,o[15]=w*te+S*we+M*Ae+B*ye,this}multiplyScalar(n){const e=this.elements;return e[0]*=n,e[4]*=n,e[8]*=n,e[12]*=n,e[1]*=n,e[5]*=n,e[9]*=n,e[13]*=n,e[2]*=n,e[6]*=n,e[10]*=n,e[14]*=n,e[3]*=n,e[7]*=n,e[11]*=n,e[15]*=n,this}determinant(){const n=this.elements,e=n[0],i=n[4],r=n[8],o=n[12],s=n[1],a=n[5],l=n[9],c=n[13],d=n[2],u=n[6],h=n[10],m=n[14];return n[3]*(+o*l*u-r*c*u-o*a*h+i*c*h+r*a*m-i*l*m)+n[7]*(+e*l*m-e*c*h+o*s*h-r*s*m+r*c*d-o*l*d)+n[11]*(+e*c*u-e*a*m-o*s*u+i*s*m+o*a*d-i*c*d)+n[15]*(-r*a*d-e*l*u+e*a*h+r*s*u-i*s*h+i*l*d)}transpose(){const n=this.elements;let e;return e=n[1],n[1]=n[4],n[4]=e,e=n[2],n[2]=n[8],n[8]=e,e=n[6],n[6]=n[9],n[9]=e,e=n[3],n[3]=n[12],n[12]=e,e=n[7],n[7]=n[13],n[13]=e,e=n[11],n[11]=n[14],n[14]=e,this}setPosition(n,e,i){const r=this.elements;return n.isVector3?(r[12]=n.x,r[13]=n.y,r[14]=n.z):(r[12]=n,r[13]=e,r[14]=i),this}invert(){const n=this.elements,e=n[0],i=n[1],r=n[2],o=n[3],s=n[4],a=n[5],l=n[6],c=n[7],d=n[8],u=n[9],h=n[10],m=n[11],A=n[12],v=n[13],x=n[14],C=n[15],w=u*x*c-v*h*c+v*l*m-a*x*m-u*l*C+a*h*C,S=A*h*c-d*x*c-A*l*m+s*x*m+d*l*C-s*h*C,M=d*v*c-A*u*c+A*a*m-s*v*m-d*a*C+s*u*C,B=A*u*l-d*v*l-A*a*h+s*v*h+d*a*x-s*u*x,P=e*w+i*S+r*M+o*B;if(0===P)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const $=1/P;return n[0]=w*$,n[1]=(v*h*o-u*x*o-v*r*m+i*x*m+u*r*C-i*h*C)*$,n[2]=(a*x*o-v*l*o+v*r*c-i*x*c-a*r*C+i*l*C)*$,n[3]=(u*l*o-a*h*o-u*r*c+i*h*c+a*r*m-i*l*m)*$,n[4]=S*$,n[5]=(d*x*o-A*h*o+A*r*m-e*x*m-d*r*C+e*h*C)*$,n[6]=(A*l*o-s*x*o-A*r*c+e*x*c+s*r*C-e*l*C)*$,n[7]=(s*h*o-d*l*o+d*r*c-e*h*c-s*r*m+e*l*m)*$,n[8]=M*$,n[9]=(A*u*o-d*v*o-A*i*m+e*v*m+d*i*C-e*u*C)*$,n[10]=(s*v*o-A*a*o+A*i*c-e*v*c-s*i*C+e*a*C)*$,n[11]=(d*a*o-s*u*o-d*i*c+e*u*c+s*i*m-e*a*m)*$,n[12]=B*$,n[13]=(d*v*r-A*u*r+A*i*h-e*v*h-d*i*x+e*u*x)*$,n[14]=(A*a*r-s*v*r-A*i*l+e*v*l+s*i*x-e*a*x)*$,n[15]=(s*u*r-d*a*r+d*i*l-e*u*l-s*i*h+e*a*h)*$,this}scale(n){const e=this.elements,i=n.x,r=n.y,o=n.z;return e[0]*=i,e[4]*=r,e[8]*=o,e[1]*=i,e[5]*=r,e[9]*=o,e[2]*=i,e[6]*=r,e[10]*=o,e[3]*=i,e[7]*=r,e[11]*=o,this}getMaxScaleOnAxis(){const n=this.elements;return Math.sqrt(Math.max(n[0]*n[0]+n[1]*n[1]+n[2]*n[2],n[4]*n[4]+n[5]*n[5]+n[6]*n[6],n[8]*n[8]+n[9]*n[9]+n[10]*n[10]))}makeTranslation(n,e,i){return this.set(1,0,0,n,0,1,0,e,0,0,1,i,0,0,0,1),this}makeRotationX(n){const e=Math.cos(n),i=Math.sin(n);return this.set(1,0,0,0,0,e,-i,0,0,i,e,0,0,0,0,1),this}makeRotationY(n){const e=Math.cos(n),i=Math.sin(n);return this.set(e,0,i,0,0,1,0,0,-i,0,e,0,0,0,0,1),this}makeRotationZ(n){const e=Math.cos(n),i=Math.sin(n);return this.set(e,-i,0,0,i,e,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(n,e){const i=Math.cos(e),r=Math.sin(e),o=1-i,s=n.x,a=n.y,l=n.z,c=o*s,d=o*a;return this.set(c*s+i,c*a-r*l,c*l+r*a,0,c*a+r*l,d*a+i,d*l-r*s,0,c*l-r*a,d*l+r*s,o*l*l+i,0,0,0,0,1),this}makeScale(n,e,i){return this.set(n,0,0,0,0,e,0,0,0,0,i,0,0,0,0,1),this}makeShear(n,e,i){return this.set(1,e,i,0,n,1,i,0,n,e,1,0,0,0,0,1),this}compose(n,e,i){const r=this.elements,o=e._x,s=e._y,a=e._z,l=e._w,c=o+o,d=s+s,u=a+a,h=o*c,m=o*d,A=o*u,v=s*d,x=s*u,C=a*u,w=l*c,S=l*d,M=l*u,B=i.x,P=i.y,$=i.z;return r[0]=(1-(v+C))*B,r[1]=(m+M)*B,r[2]=(A-S)*B,r[3]=0,r[4]=(m-M)*P,r[5]=(1-(h+C))*P,r[6]=(x+w)*P,r[7]=0,r[8]=(A+S)*$,r[9]=(x-w)*$,r[10]=(1-(h+v))*$,r[11]=0,r[12]=n.x,r[13]=n.y,r[14]=n.z,r[15]=1,this}decompose(n,e,i){const r=this.elements;let o=rb.set(r[0],r[1],r[2]).length();const s=rb.set(r[4],r[5],r[6]).length(),a=rb.set(r[8],r[9],r[10]).length();this.determinant()<0&&(o=-o),n.x=r[12],n.y=r[13],n.z=r[14],Vc.copy(this);const c=1/o,d=1/s,u=1/a;return Vc.elements[0]*=c,Vc.elements[1]*=c,Vc.elements[2]*=c,Vc.elements[4]*=d,Vc.elements[5]*=d,Vc.elements[6]*=d,Vc.elements[8]*=u,Vc.elements[9]*=u,Vc.elements[10]*=u,e.setFromRotationMatrix(Vc),i.x=o,i.y=s,i.z=a,this}makePerspective(n,e,i,r,o,s){void 0===s&&console.warn("THREE.Matrix4: .makePerspective() has been redefined and has a new signature. Please check the docs.");const a=this.elements,c=2*o/(i-r),d=(e+n)/(e-n),u=(i+r)/(i-r),h=-(s+o)/(s-o),m=-2*s*o/(s-o);return a[0]=2*o/(e-n),a[4]=0,a[8]=d,a[12]=0,a[1]=0,a[5]=c,a[9]=u,a[13]=0,a[2]=0,a[6]=0,a[10]=h,a[14]=m,a[3]=0,a[7]=0,a[11]=-1,a[15]=0,this}makeOrthographic(n,e,i,r,o,s){const a=this.elements,l=1/(e-n),c=1/(i-r),d=1/(s-o),u=(e+n)*l,h=(i+r)*c,m=(s+o)*d;return a[0]=2*l,a[4]=0,a[8]=0,a[12]=-u,a[1]=0,a[5]=2*c,a[9]=0,a[13]=-h,a[2]=0,a[6]=0,a[10]=-2*d,a[14]=-m,a[3]=0,a[7]=0,a[11]=0,a[15]=1,this}equals(n){const e=this.elements,i=n.elements;for(let r=0;r<16;r++)if(e[r]!==i[r])return!1;return!0}fromArray(n,e=0){for(let i=0;i<16;i++)this.elements[i]=n[i+e];return this}toArray(n=[],e=0){const i=this.elements;return n[e]=i[0],n[e+1]=i[1],n[e+2]=i[2],n[e+3]=i[3],n[e+4]=i[4],n[e+5]=i[5],n[e+6]=i[6],n[e+7]=i[7],n[e+8]=i[8],n[e+9]=i[9],n[e+10]=i[10],n[e+11]=i[11],n[e+12]=i[12],n[e+13]=i[13],n[e+14]=i[14],n[e+15]=i[15],n}}Hn.prototype.isMatrix4=!0;const rb=new Y,Vc=new Hn,dEe=new Y(0,0,0),uEe=new Y(1,1,1),tm=new Y,HS=new Y,Il=new Y,WX=new Hn,$X=new as;class sA{constructor(n=0,e=0,i=0,r=sA.DefaultOrder){this._x=n,this._y=e,this._z=i,this._order=r}get x(){return this._x}set x(n){this._x=n,this._onChangeCallback()}get y(){return this._y}set y(n){this._y=n,this._onChangeCallback()}get z(){return this._z}set z(n){this._z=n,this._onChangeCallback()}get order(){return this._order}set order(n){this._order=n,this._onChangeCallback()}set(n,e,i,r){return this._x=n,this._y=e,this._z=i,this._order=r||this._order,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(n){return this._x=n._x,this._y=n._y,this._z=n._z,this._order=n._order,this._onChangeCallback(),this}setFromRotationMatrix(n,e,i){const r=Jn.clamp,o=n.elements,s=o[0],a=o[4],l=o[8],c=o[1],d=o[5],u=o[9],h=o[2],m=o[6],A=o[10];switch(e=e||this._order){case"XYZ":this._y=Math.asin(r(l,-1,1)),Math.abs(l)<.9999999?(this._x=Math.atan2(-u,A),this._z=Math.atan2(-a,s)):(this._x=Math.atan2(m,d),this._z=0);break;case"YXZ":this._x=Math.asin(-r(u,-1,1)),Math.abs(u)<.9999999?(this._y=Math.atan2(l,A),this._z=Math.atan2(c,d)):(this._y=Math.atan2(-h,s),this._z=0);break;case"ZXY":this._x=Math.asin(r(m,-1,1)),Math.abs(m)<.9999999?(this._y=Math.atan2(-h,A),this._z=Math.atan2(-a,d)):(this._y=0,this._z=Math.atan2(c,s));break;case"ZYX":this._y=Math.asin(-r(h,-1,1)),Math.abs(h)<.9999999?(this._x=Math.atan2(m,A),this._z=Math.atan2(c,s)):(this._x=0,this._z=Math.atan2(-a,d));break;case"YZX":this._z=Math.asin(r(c,-1,1)),Math.abs(c)<.9999999?(this._x=Math.atan2(-u,d),this._y=Math.atan2(-h,s)):(this._x=0,this._y=Math.atan2(l,A));break;case"XZY":this._z=Math.asin(-r(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(m,d),this._y=Math.atan2(l,s)):(this._x=Math.atan2(-u,A),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+e)}return this._order=e,!1!==i&&this._onChangeCallback(),this}setFromQuaternion(n,e,i){return WX.makeRotationFromQuaternion(n),this.setFromRotationMatrix(WX,e,i)}setFromVector3(n,e){return this.set(n.x,n.y,n.z,e||this._order)}reorder(n){return $X.setFromEuler(this),this.setFromQuaternion($X,n)}equals(n){return n._x===this._x&&n._y===this._y&&n._z===this._z&&n._order===this._order}fromArray(n){return this._x=n[0],this._y=n[1],this._z=n[2],void 0!==n[3]&&(this._order=n[3]),this._onChangeCallback(),this}toArray(n=[],e=0){return n[e]=this._x,n[e+1]=this._y,n[e+2]=this._z,n[e+3]=this._order,n}toVector3(n){return n?n.set(this._x,this._y,this._z):new Y(this._x,this._y,this._z)}_onChange(n){return this._onChangeCallback=n,this}_onChangeCallback(){}}sA.prototype.isEuler=!0,sA.DefaultOrder="XYZ",sA.RotationOrders=["XYZ","YZX","ZXY","XZY","YXZ","ZYX"];class SP{constructor(){this.mask=1}set(n){this.mask=1<1){for(let n=0;n1){for(let e=0;e0){i.children=[];for(let s=0;s0){i.animations=[];for(let s=0;s0&&(e.geometries=s),a.length>0&&(e.materials=a),l.length>0&&(e.textures=l),c.length>0&&(e.images=c),d.length>0&&(e.shapes=d),u.length>0&&(e.skeletons=u),h.length>0&&(e.animations=h)}return e.object=i,e;function o(s){const a=[];for(const l in s){const c=s[l];delete c.metadata,a.push(c)}return a}},clone:function(t){return(new this.constructor).copy(this,t)},copy:function(t,n=!0){if(this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.rotation.order=t.rotation.order,this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.layers.mask=t.layers.mask,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.userData=JSON.parse(JSON.stringify(t.userData)),!0===n)for(let e=0;e1?void 0:e.copy(i).multiplyScalar(o).add(n.start)}intersectsLine(n){const e=this.distanceToPoint(n.start),i=this.distanceToPoint(n.end);return e<0&&i>0||i<0&&e>0}intersectsBox(n){return n.intersectsPlane(this)}intersectsSphere(n){return n.intersectsPlane(this)}coplanarPoint(n){return void 0===n&&(console.warn("THREE.Plane: .coplanarPoint() target is now required"),n=new Y),n.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(n,e){const i=e||gEe.getNormalMatrix(n),r=this.coplanarPoint(TP).applyMatrix4(n),o=this.normal.applyMatrix3(i).normalize();return this.constant=-r.dot(o),this}translate(n){return this.constant-=n.dot(this.normal),this}equals(n){return n.normal.equals(this.normal)&&n.constant===this.constant}clone(){return(new this.constructor).copy(this)}}Qc.prototype.isPlane=!0;const zc=new Y,bh=new Y,FP=new Y,_h=new Y,sb=new Y,ab=new Y,JX=new Y,kP=new Y,IP=new Y,BP=new Y;class $o{constructor(n=new Y,e=new Y,i=new Y){this.a=n,this.b=e,this.c=i}static getNormal(n,e,i,r){void 0===r&&(console.warn("THREE.Triangle: .getNormal() target is now required"),r=new Y),r.subVectors(i,e),zc.subVectors(n,e),r.cross(zc);const o=r.lengthSq();return o>0?r.multiplyScalar(1/Math.sqrt(o)):r.set(0,0,0)}static getBarycoord(n,e,i,r,o){zc.subVectors(r,e),bh.subVectors(i,e),FP.subVectors(n,e);const s=zc.dot(zc),a=zc.dot(bh),l=zc.dot(FP),c=bh.dot(bh),d=bh.dot(FP),u=s*c-a*a;if(void 0===o&&(console.warn("THREE.Triangle: .getBarycoord() target is now required"),o=new Y),0===u)return o.set(-2,-1,-1);const h=1/u,m=(c*l-a*d)*h,A=(s*d-a*l)*h;return o.set(1-m-A,A,m)}static containsPoint(n,e,i,r){return this.getBarycoord(n,e,i,r,_h),_h.x>=0&&_h.y>=0&&_h.x+_h.y<=1}static getUV(n,e,i,r,o,s,a,l){return this.getBarycoord(n,e,i,r,_h),l.set(0,0),l.addScaledVector(o,_h.x),l.addScaledVector(s,_h.y),l.addScaledVector(a,_h.z),l}static isFrontFacing(n,e,i,r){return zc.subVectors(i,e),bh.subVectors(n,e),zc.cross(bh).dot(r)<0}set(n,e,i){return this.a.copy(n),this.b.copy(e),this.c.copy(i),this}setFromPointsAndIndices(n,e,i,r){return this.a.copy(n[e]),this.b.copy(n[i]),this.c.copy(n[r]),this}clone(){return(new this.constructor).copy(this)}copy(n){return this.a.copy(n.a),this.b.copy(n.b),this.c.copy(n.c),this}getArea(){return zc.subVectors(this.c,this.b),bh.subVectors(this.a,this.b),.5*zc.cross(bh).length()}getMidpoint(n){return void 0===n&&(console.warn("THREE.Triangle: .getMidpoint() target is now required"),n=new Y),n.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(n){return $o.getNormal(this.a,this.b,this.c,n)}getPlane(n){return void 0===n&&(console.warn("THREE.Triangle: .getPlane() target is now required"),n=new Qc),n.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(n,e){return $o.getBarycoord(n,this.a,this.b,this.c,e)}getUV(n,e,i,r,o){return $o.getUV(n,this.a,this.b,this.c,e,i,r,o)}containsPoint(n){return $o.containsPoint(n,this.a,this.b,this.c)}isFrontFacing(n){return $o.isFrontFacing(this.a,this.b,this.c,n)}intersectsBox(n){return n.intersectsTriangle(this)}closestPointToPoint(n,e){void 0===e&&(console.warn("THREE.Triangle: .closestPointToPoint() target is now required"),e=new Y);const i=this.a,r=this.b,o=this.c;let s,a;sb.subVectors(r,i),ab.subVectors(o,i),kP.subVectors(n,i);const l=sb.dot(kP),c=ab.dot(kP);if(l<=0&&c<=0)return e.copy(i);IP.subVectors(n,r);const d=sb.dot(IP),u=ab.dot(IP);if(d>=0&&u<=d)return e.copy(r);const h=l*u-d*c;if(h<=0&&l>=0&&d<=0)return s=l/(l-d),e.copy(i).addScaledVector(sb,s);BP.subVectors(n,o);const m=sb.dot(BP),A=ab.dot(BP);if(A>=0&&m<=A)return e.copy(o);const v=m*c-l*A;if(v<=0&&c>=0&&A<=0)return a=c/(c-A),e.copy(i).addScaledVector(ab,a);const x=d*A-m*u;if(x<=0&&u-d>=0&&m-A>=0)return JX.subVectors(o,r),a=(u-d)/(u-d+(m-A)),e.copy(r).addScaledVector(JX,a);const C=1/(x+v+h);return s=v*C,a=h*C,e.copy(i).addScaledVector(sb,s).addScaledVector(ab,a)}equals(n){return n.a.equals(this.a)&&n.b.equals(this.b)&&n.c.equals(this.c)}}let bEe=0;function oo(){Object.defineProperty(this,"id",{value:bEe++}),this.uuid=Jn.generateUUID(),this.name="",this.type="Material",this.fog=!0,this.blending=j0,this.side=$0,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.blendSrc=eP,this.blendDst=tP,this.blendEquation=Kp,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.depthFunc=CS,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=zX,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=RS,this.stencilZFail=RS,this.stencilZPass=RS,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.alphaTest=0,this.premultipliedAlpha=!1,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0}oo.prototype=Object.assign(Object.create(Uc.prototype),{constructor:oo,isMaterial:!0,onBeforeCompile:function(){},customProgramCacheKey:function(){return this.onBeforeCompile.toString()},setValues:function(t){if(void 0!==t)for(const n in t){const e=t[n];if(void 0===e){console.warn("THREE.Material: '"+n+"' parameter is undefined.");continue}if("shading"===n){console.warn("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead."),this.flatShading=e===jL;continue}const i=this[n];void 0!==i?i&&i.isColor?i.set(e):i&&i.isVector3&&e&&e.isVector3?i.copy(e):this[n]=e:console.warn("THREE."+this.type+": '"+n+"' is not a property of this material.")}},toJSON:function(t){const n=void 0===t||"string"==typeof t;n&&(t={textures:{},images:{}});const e={metadata:{version:4.5,type:"Material",generator:"Material.toJSON"}};function i(r){const o=[];for(const s in r){const a=r[s];delete a.metadata,o.push(a)}return o}if(e.uuid=this.uuid,e.type=this.type,""!==this.name&&(e.name=this.name),this.color&&this.color.isColor&&(e.color=this.color.getHex()),void 0!==this.roughness&&(e.roughness=this.roughness),void 0!==this.metalness&&(e.metalness=this.metalness),this.sheen&&this.sheen.isColor&&(e.sheen=this.sheen.getHex()),this.emissive&&this.emissive.isColor&&(e.emissive=this.emissive.getHex()),this.emissiveIntensity&&1!==this.emissiveIntensity&&(e.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(e.specular=this.specular.getHex()),void 0!==this.shininess&&(e.shininess=this.shininess),void 0!==this.clearcoat&&(e.clearcoat=this.clearcoat),void 0!==this.clearcoatRoughness&&(e.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(e.clearcoatMap=this.clearcoatMap.toJSON(t).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(e.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(t).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(e.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(t).uuid,e.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.map&&this.map.isTexture&&(e.map=this.map.toJSON(t).uuid),this.matcap&&this.matcap.isTexture&&(e.matcap=this.matcap.toJSON(t).uuid),this.alphaMap&&this.alphaMap.isTexture&&(e.alphaMap=this.alphaMap.toJSON(t).uuid),this.lightMap&&this.lightMap.isTexture&&(e.lightMap=this.lightMap.toJSON(t).uuid,e.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(e.aoMap=this.aoMap.toJSON(t).uuid,e.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(e.bumpMap=this.bumpMap.toJSON(t).uuid,e.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(e.normalMap=this.normalMap.toJSON(t).uuid,e.normalMapType=this.normalMapType,e.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(e.displacementMap=this.displacementMap.toJSON(t).uuid,e.displacementScale=this.displacementScale,e.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(e.roughnessMap=this.roughnessMap.toJSON(t).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(e.metalnessMap=this.metalnessMap.toJSON(t).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(e.emissiveMap=this.emissiveMap.toJSON(t).uuid),this.specularMap&&this.specularMap.isTexture&&(e.specularMap=this.specularMap.toJSON(t).uuid),this.envMap&&this.envMap.isTexture&&(e.envMap=this.envMap.toJSON(t).uuid,e.reflectivity=this.reflectivity,e.refractionRatio=this.refractionRatio,void 0!==this.combine&&(e.combine=this.combine),void 0!==this.envMapIntensity&&(e.envMapIntensity=this.envMapIntensity)),this.gradientMap&&this.gradientMap.isTexture&&(e.gradientMap=this.gradientMap.toJSON(t).uuid),void 0!==this.size&&(e.size=this.size),void 0!==this.sizeAttenuation&&(e.sizeAttenuation=this.sizeAttenuation),this.blending!==j0&&(e.blending=this.blending),this.side!==$0&&(e.side=this.side),this.vertexColors&&(e.vertexColors=!0),this.opacity<1&&(e.opacity=this.opacity),!0===this.transparent&&(e.transparent=this.transparent),e.depthFunc=this.depthFunc,e.depthTest=this.depthTest,e.depthWrite=this.depthWrite,e.stencilWrite=this.stencilWrite,e.stencilWriteMask=this.stencilWriteMask,e.stencilFunc=this.stencilFunc,e.stencilRef=this.stencilRef,e.stencilFuncMask=this.stencilFuncMask,e.stencilFail=this.stencilFail,e.stencilZFail=this.stencilZFail,e.stencilZPass=this.stencilZPass,this.rotation&&0!==this.rotation&&(e.rotation=this.rotation),!0===this.polygonOffset&&(e.polygonOffset=!0),0!==this.polygonOffsetFactor&&(e.polygonOffsetFactor=this.polygonOffsetFactor),0!==this.polygonOffsetUnits&&(e.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth&&1!==this.linewidth&&(e.linewidth=this.linewidth),void 0!==this.dashSize&&(e.dashSize=this.dashSize),void 0!==this.gapSize&&(e.gapSize=this.gapSize),void 0!==this.scale&&(e.scale=this.scale),!0===this.dithering&&(e.dithering=!0),this.alphaTest>0&&(e.alphaTest=this.alphaTest),!0===this.premultipliedAlpha&&(e.premultipliedAlpha=this.premultipliedAlpha),!0===this.wireframe&&(e.wireframe=this.wireframe),this.wireframeLinewidth>1&&(e.wireframeLinewidth=this.wireframeLinewidth),"round"!==this.wireframeLinecap&&(e.wireframeLinecap=this.wireframeLinecap),"round"!==this.wireframeLinejoin&&(e.wireframeLinejoin=this.wireframeLinejoin),!0===this.morphTargets&&(e.morphTargets=!0),!0===this.morphNormals&&(e.morphNormals=!0),!0===this.skinning&&(e.skinning=!0),!0===this.flatShading&&(e.flatShading=this.flatShading),!1===this.visible&&(e.visible=!1),!1===this.toneMapped&&(e.toneMapped=!1),"{}"!==JSON.stringify(this.userData)&&(e.userData=this.userData),n){const r=i(t.textures),o=i(t.images);r.length>0&&(e.textures=r),o.length>0&&(e.images=o)}return e},clone:function(){return(new this.constructor).copy(this)},copy:function(t){this.name=t.name,this.fog=t.fog,this.blending=t.blending,this.side=t.side,this.vertexColors=t.vertexColors,this.opacity=t.opacity,this.transparent=t.transparent,this.blendSrc=t.blendSrc,this.blendDst=t.blendDst,this.blendEquation=t.blendEquation,this.blendSrcAlpha=t.blendSrcAlpha,this.blendDstAlpha=t.blendDstAlpha,this.blendEquationAlpha=t.blendEquationAlpha,this.depthFunc=t.depthFunc,this.depthTest=t.depthTest,this.depthWrite=t.depthWrite,this.stencilWriteMask=t.stencilWriteMask,this.stencilFunc=t.stencilFunc,this.stencilRef=t.stencilRef,this.stencilFuncMask=t.stencilFuncMask,this.stencilFail=t.stencilFail,this.stencilZFail=t.stencilZFail,this.stencilZPass=t.stencilZPass,this.stencilWrite=t.stencilWrite;const n=t.clippingPlanes;let e=null;if(null!==n){const i=n.length;e=new Array(i);for(let r=0;r!==i;++r)e[r]=n[r].clone()}return this.clippingPlanes=e,this.clipIntersection=t.clipIntersection,this.clipShadows=t.clipShadows,this.shadowSide=t.shadowSide,this.colorWrite=t.colorWrite,this.precision=t.precision,this.polygonOffset=t.polygonOffset,this.polygonOffsetFactor=t.polygonOffsetFactor,this.polygonOffsetUnits=t.polygonOffsetUnits,this.dithering=t.dithering,this.alphaTest=t.alphaTest,this.premultipliedAlpha=t.premultipliedAlpha,this.visible=t.visible,this.toneMapped=t.toneMapped,this.userData=JSON.parse(JSON.stringify(t.userData)),this},dispose:function(){this.dispatchEvent({type:"dispose"})}}),Object.defineProperty(oo.prototype,"needsUpdate",{set:function(t){!0===t&&this.version++}});const eY={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},Gc={h:0,s:0,l:0},QS={h:0,s:0,l:0};function DP(t,n,e){return e<0&&(e+=1),e>1&&(e-=1),e<1/6?t+6*(n-t)*e:e<.5?n:e<2/3?t+6*(n-t)*(2/3-e):t}function RP(t){return t<.04045?.0773993808*t:Math.pow(.9478672986*t+.0521327014,2.4)}function LP(t){return t<.0031308?12.92*t:1.055*Math.pow(t,.41666)-.055}let rn=(()=>{class t{constructor(e,i,r){return void 0===i&&void 0===r?this.set(e):this.setRGB(e,i,r)}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){return e=Math.floor(e),this.r=(e>>16&255)/255,this.g=(e>>8&255)/255,this.b=(255&e)/255,this}setRGB(e,i,r){return this.r=e,this.g=i,this.b=r,this}setHSL(e,i,r){if(e=Jn.euclideanModulo(e,1),i=Jn.clamp(i,0,1),r=Jn.clamp(r,0,1),0===i)this.r=this.g=this.b=r;else{const o=r<=.5?r*(1+i):r+i-r*i,s=2*r-o;this.r=DP(s,o,e+1/3),this.g=DP(s,o,e),this.b=DP(s,o,e-1/3)}return this}setStyle(e){function i(o){void 0!==o&&parseFloat(o)<1&&console.warn("THREE.Color: Alpha component of "+e+" will be ignored.")}let r;if(r=/^((?:rgb|hsl)a?)\(([^\)]*)\)/.exec(e)){let o;const a=r[2];switch(r[1]){case"rgb":case"rgba":if(o=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return this.r=Math.min(255,parseInt(o[1],10))/255,this.g=Math.min(255,parseInt(o[2],10))/255,this.b=Math.min(255,parseInt(o[3],10))/255,i(o[4]),this;if(o=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return this.r=Math.min(100,parseInt(o[1],10))/100,this.g=Math.min(100,parseInt(o[2],10))/100,this.b=Math.min(100,parseInt(o[3],10))/100,i(o[4]),this;break;case"hsl":case"hsla":if(o=/^\s*(\d*\.?\d+)\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a)){const l=parseFloat(o[1])/360,c=parseInt(o[2],10)/100,d=parseInt(o[3],10)/100;return i(o[4]),this.setHSL(l,c,d)}}}else if(r=/^\#([A-Fa-f\d]+)$/.exec(e)){const o=r[1],s=o.length;if(3===s)return this.r=parseInt(o.charAt(0)+o.charAt(0),16)/255,this.g=parseInt(o.charAt(1)+o.charAt(1),16)/255,this.b=parseInt(o.charAt(2)+o.charAt(2),16)/255,this;if(6===s)return this.r=parseInt(o.charAt(0)+o.charAt(1),16)/255,this.g=parseInt(o.charAt(2)+o.charAt(3),16)/255,this.b=parseInt(o.charAt(4)+o.charAt(5),16)/255,this}return e&&e.length>0?this.setColorName(e):this}setColorName(e){const i=eY[e];return void 0!==i?this.setHex(i):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}copyGammaToLinear(e,i=2){return this.r=Math.pow(e.r,i),this.g=Math.pow(e.g,i),this.b=Math.pow(e.b,i),this}copyLinearToGamma(e,i=2){const r=i>0?1/i:1;return this.r=Math.pow(e.r,r),this.g=Math.pow(e.g,r),this.b=Math.pow(e.b,r),this}convertGammaToLinear(e){return this.copyGammaToLinear(this,e),this}convertLinearToGamma(e){return this.copyLinearToGamma(this,e),this}copySRGBToLinear(e){return this.r=RP(e.r),this.g=RP(e.g),this.b=RP(e.b),this}copyLinearToSRGB(e){return this.r=LP(e.r),this.g=LP(e.g),this.b=LP(e.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(){return 255*this.r<<16^255*this.g<<8^255*this.b}getHexString(){return("000000"+this.getHex().toString(16)).slice(-6)}getHSL(e){void 0===e&&(console.warn("THREE.Color: .getHSL() target is now required"),e={h:0,s:0,l:0});const i=this.r,r=this.g,o=this.b,s=Math.max(i,r,o),a=Math.min(i,r,o);let l,c;const d=(a+s)/2;if(a===s)l=0,c=0;else{const u=s-a;switch(c=d<=.5?u/(s+a):u/(2-s-a),s){case i:l=(r-o)/u+(rn&&(n=t[e]);return n}Object.defineProperty(Nn.prototype,"needsUpdate",{set:function(t){!0===t&&this.version++}}),Object.assign(Nn.prototype,{isBufferAttribute:!0,onUploadCallback:function(){},setUsage:function(t){return this.usage=t,this},copy:function(t){return this.name=t.name,this.array=new t.array.constructor(t.array),this.itemSize=t.itemSize,this.count=t.count,this.normalized=t.normalized,this.usage=t.usage,this},copyAt:function(t,n,e){t*=this.itemSize,e*=n.itemSize;for(let i=0,r=this.itemSize;i65535?lA:aA)(t,1):t,this},getAttribute:function(t){return this.attributes[t]},setAttribute:function(t,n){return this.attributes[t]=n,this},deleteAttribute:function(t){return delete this.attributes[t],this},hasAttribute:function(t){return void 0!==this.attributes[t]},addGroup:function(t,n,e=0){this.groups.push({start:t,count:n,materialIndex:e})},clearGroups:function(){this.groups=[]},setDrawRange:function(t,n){this.drawRange.start=t,this.drawRange.count=n},applyMatrix4:function(t){const n=this.attributes.position;void 0!==n&&(n.applyMatrix4(t),n.needsUpdate=!0);const e=this.attributes.normal;if(void 0!==e){const r=(new ro).getNormalMatrix(t);e.applyNormalMatrix(r),e.needsUpdate=!0}const i=this.attributes.tangent;return void 0!==i&&(i.transformDirection(t),i.needsUpdate=!0),null!==this.boundingBox&&this.computeBoundingBox(),null!==this.boundingSphere&&this.computeBoundingSphere(),this},rotateX:function(t){return Jd.makeRotationX(t),this.applyMatrix4(Jd),this},rotateY:function(t){return Jd.makeRotationY(t),this.applyMatrix4(Jd),this},rotateZ:function(t){return Jd.makeRotationZ(t),this.applyMatrix4(Jd),this},translate:function(t,n,e){return Jd.makeTranslation(t,n,e),this.applyMatrix4(Jd),this},scale:function(t,n,e){return Jd.makeScale(t,n,e),this.applyMatrix4(Jd),this},lookAt:function(t){return PP.lookAt(t),PP.updateMatrix(),this.applyMatrix4(PP.matrix),this},center:function(){return this.computeBoundingBox(),this.boundingBox.getCenter(lb).negate(),this.translate(lb.x,lb.y,lb.z),this},setFromPoints:function(t){const n=[];for(let e=0,i=t.length;e0&&(t.userData=this.userData),void 0!==this.parameters){const a=this.parameters;for(const l in a)void 0!==a[l]&&(t[l]=a[l]);return t}t.data={attributes:{}};const n=this.index;null!==n&&(t.data.index={type:n.array.constructor.name,array:Array.prototype.slice.call(n.array)});const e=this.attributes;for(const a in e){const l=e[a],c=l.toJSON(t.data);""!==l.name&&(c.name=l.name),t.data.attributes[a]=c}const i={};let r=!1;for(const a in this.morphAttributes){const l=this.morphAttributes[a],c=[];for(let d=0,u=l.length;d0&&(i[a]=c,r=!0)}r&&(t.data.morphAttributes=i,t.data.morphTargetsRelative=this.morphTargetsRelative);const o=this.groups;o.length>0&&(t.data.groups=JSON.parse(JSON.stringify(o)));const s=this.boundingSphere;return null!==s&&(t.data.boundingSphere={center:s.center.toArray(),radius:s.radius}),t},clone:function(){return(new Bn).copy(this)},copy:function(t){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const n={};this.name=t.name;const e=t.index;null!==e&&this.setIndex(e.clone(n));const i=t.attributes;for(const l in i)this.setAttribute(l,i[l].clone(n));const r=t.morphAttributes;for(const l in r){const c=[],d=r[l];for(let u=0,h=d.length;ue.far?null:{distance:c,point:XS.clone(),object:t}}(t,n,e,i,nm,im,rm,VP);if(m){a&&($S.fromBufferAttribute(a,c),jS.fromBufferAttribute(a,d),KS.fromBufferAttribute(a,u),m.uv=$o.getUV(VP,nm,im,rm,$S,jS,KS,new ut)),l&&($S.fromBufferAttribute(l,c),jS.fromBufferAttribute(l,d),KS.fromBufferAttribute(l,u),m.uv2=$o.getUV(VP,nm,im,rm,$S,jS,KS,new ut));const A={a:c,b:d,c:u,normal:new Y,materialIndex:0};$o.getNormal(nm,im,rm,A.normal),m.face=A}return m}Ci.prototype=Object.assign(Object.create($n.prototype),{constructor:Ci,isMesh:!0,copy:function(t){return $n.prototype.copy.call(this,t),void 0!==t.morphTargetInfluences&&(this.morphTargetInfluences=t.morphTargetInfluences.slice()),void 0!==t.morphTargetDictionary&&(this.morphTargetDictionary=Object.assign({},t.morphTargetDictionary)),this.material=t.material,this.geometry=t.geometry,this},updateMorphTargets:function(){const t=this.geometry;if(t.isBufferGeometry){const n=t.morphAttributes,e=Object.keys(n);if(e.length>0){const i=n[e[0]];if(void 0!==i){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let r=0,o=i.length;r0&&console.error("THREE.Mesh.updateMorphTargets() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.")}},raycast:function(t,n){const e=this.geometry,i=this.material,r=this.matrixWorld;if(void 0===i||(null===e.boundingSphere&&e.computeBoundingSphere(),NP.copy(e.boundingSphere),NP.applyMatrix4(r),!1===t.ray.intersectsSphere(NP))||(nY.copy(r).invert(),cb.copy(t.ray).applyMatrix4(nY),null!==e.boundingBox&&!1===cb.intersectsBox(e.boundingBox)))return;let o;if(e.isBufferGeometry){const s=e.index,a=e.attributes.position,l=e.morphAttributes.position,c=e.morphTargetsRelative,d=e.attributes.uv,u=e.attributes.uv2,h=e.groups,m=e.drawRange;if(null!==s)if(Array.isArray(i))for(let A=0,v=h.length;A0?1:-1,d.push(Qe.x,Qe.y,Qe.z),u.push(fe/$),u.push(1-ht/ee),Ae+=1}for(let ht=0;ht0&&(n.defines=this.defines),n.vertexShader=this.vertexShader,n.fragmentShader=this.fragmentShader;const e={};for(const i in this.extensions)!0===this.extensions[i]&&(e[i]=!0);return Object.keys(e).length>0&&(n.extensions=e),n},om.prototype=Object.assign(Object.create($n.prototype),{constructor:om,isCamera:!0,copy:function(t,n){return $n.prototype.copy.call(this,t,n),this.matrixWorldInverse.copy(t.matrixWorldInverse),this.projectionMatrix.copy(t.projectionMatrix),this.projectionMatrixInverse.copy(t.projectionMatrixInverse),this},getWorldDirection:function(t){void 0===t&&(console.warn("THREE.Camera: .getWorldDirection() target is now required"),t=new Y),this.updateWorldMatrix(!0,!1);const n=this.matrixWorld.elements;return t.set(-n[8],-n[9],-n[10]).normalize()},updateMatrixWorld:function(t){$n.prototype.updateMatrixWorld.call(this,t),this.matrixWorldInverse.copy(this.matrixWorld).invert()},updateWorldMatrix:function(t,n){$n.prototype.updateWorldMatrix.call(this,t,n),this.matrixWorldInverse.copy(this.matrixWorld).invert()},clone:function(){return(new this.constructor).copy(this)}}),Mo.prototype=Object.assign(Object.create(om.prototype),{constructor:Mo,isPerspectiveCamera:!0,copy:function(t,n){return om.prototype.copy.call(this,t,n),this.fov=t.fov,this.zoom=t.zoom,this.near=t.near,this.far=t.far,this.focus=t.focus,this.aspect=t.aspect,this.view=null===t.view?null:Object.assign({},t.view),this.filmGauge=t.filmGauge,this.filmOffset=t.filmOffset,this},setFocalLength:function(t){const n=.5*this.getFilmHeight()/t;this.fov=2*Jn.RAD2DEG*Math.atan(n),this.updateProjectionMatrix()},getFocalLength:function(){const t=Math.tan(.5*Jn.DEG2RAD*this.fov);return.5*this.getFilmHeight()/t},getEffectiveFOV:function(){return 2*Jn.RAD2DEG*Math.atan(Math.tan(.5*Jn.DEG2RAD*this.fov)/this.zoom)},getFilmWidth:function(){return this.filmGauge*Math.min(this.aspect,1)},getFilmHeight:function(){return this.filmGauge/Math.max(this.aspect,1)},setViewOffset:function(t,n,e,i,r,o){this.aspect=t/n,null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=n,this.view.offsetX=e,this.view.offsetY=i,this.view.width=r,this.view.height=o,this.updateProjectionMatrix()},clearViewOffset:function(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()},updateProjectionMatrix:function(){const t=this.near;let n=t*Math.tan(.5*Jn.DEG2RAD*this.fov)/this.zoom,e=2*n,i=this.aspect*e,r=-.5*i;const o=this.view;if(null!==this.view&&this.view.enabled){const a=o.fullWidth,l=o.fullHeight;r+=o.offsetX*i/a,n-=o.offsetY*e/l,i*=o.width/a,e*=o.height/l}const s=this.filmOffset;0!==s&&(r+=t*s/this.getFilmWidth()),this.projectionMatrix.makePerspective(r,r+i,n,n-e,t,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()},toJSON:function(t){const n=$n.prototype.toJSON.call(this,t);return n.object.fov=this.fov,n.object.zoom=this.zoom,n.object.near=this.near,n.object.far=this.far,n.object.focus=this.focus,n.object.aspect=this.aspect,null!==this.view&&(n.object.view=Object.assign({},this.view)),n.object.filmGauge=this.filmGauge,n.object.filmOffset=this.filmOffset,n}});class JS extends $n{constructor(n,e,i){if(super(),this.type="CubeCamera",!0!==i.isWebGLCubeRenderTarget)return void console.error("THREE.CubeCamera: The constructor now expects an instance of WebGLCubeRenderTarget as third parameter.");this.renderTarget=i;const r=new Mo(90,1,n,e);r.layers=this.layers,r.up.set(0,-1,0),r.lookAt(new Y(1,0,0)),this.add(r);const o=new Mo(90,1,n,e);o.layers=this.layers,o.up.set(0,-1,0),o.lookAt(new Y(-1,0,0)),this.add(o);const s=new Mo(90,1,n,e);s.layers=this.layers,s.up.set(0,0,1),s.lookAt(new Y(0,1,0)),this.add(s);const a=new Mo(90,1,n,e);a.layers=this.layers,a.up.set(0,0,-1),a.lookAt(new Y(0,-1,0)),this.add(a);const l=new Mo(90,1,n,e);l.layers=this.layers,l.up.set(0,-1,0),l.lookAt(new Y(0,0,1)),this.add(l);const c=new Mo(90,1,n,e);c.layers=this.layers,c.up.set(0,-1,0),c.lookAt(new Y(0,0,-1)),this.add(c)}update(n,e){null===this.parent&&this.updateMatrixWorld();const i=this.renderTarget,[r,o,s,a,l,c]=this.children,d=n.xr.enabled,u=n.getRenderTarget();n.xr.enabled=!1;const h=i.texture.generateMipmaps;i.texture.generateMipmaps=!1,n.setRenderTarget(i,0),n.render(e,r),n.setRenderTarget(i,1),n.render(e,o),n.setRenderTarget(i,2),n.render(e,s),n.setRenderTarget(i,3),n.render(e,a),n.setRenderTarget(i,4),n.render(e,l),i.texture.generateMipmaps=h,n.setRenderTarget(i,5),n.render(e,c),n.setRenderTarget(u),n.xr.enabled=d}}class fb extends ss{constructor(n,e,i,r,o,s,a,l,c,d){super(n=void 0!==n?n:[],e=void 0!==e?e:W1,i,r,o,s,a=void 0!==a?a:Yf,l,c,d),this._needsFlipEnvMap=!0,this.flipY=!1}get images(){return this.image}set images(n){this.image=n}}fb.prototype.isCubeTexture=!0;class eT extends Hc{constructor(n,e,i){Number.isInteger(e)&&(console.warn("THREE.WebGLCubeRenderTarget: constructor signature is now WebGLCubeRenderTarget( size, options )"),e=i),super(n,n,e),this.texture=new fb(void 0,(e=e||{}).mapping,e.wrapS,e.wrapT,e.magFilter,e.minFilter,e.format,e.type,e.anisotropy,e.encoding),this.texture.generateMipmaps=void 0!==e.generateMipmaps&&e.generateMipmaps,this.texture.minFilter=void 0!==e.minFilter?e.minFilter:Ro,this.texture._needsFlipEnvMap=!1}fromEquirectangularTexture(n,e){this.texture.type=e.type,this.texture.format=Fa,this.texture.encoding=e.encoding,this.texture.generateMipmaps=e.generateMipmaps,this.texture.minFilter=e.minFilter,this.texture.magFilter=e.magFilter;const i_uniforms={tEquirect:{value:null}},i_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",i_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 sc(5,5,5),o=new Ls({name:"CubemapFromEquirect",uniforms:db(i_uniforms),vertexShader:i_vertexShader,fragmentShader:i_fragmentShader,side:Wo,blending:hh});o.uniforms.tEquirect.value=e;const s=new Ci(r,o),a=e.minFilter;return e.minFilter===X0&&(e.minFilter=Ro),new JS(1,10,this).update(n,s),e.minFilter=a,s.geometry.dispose(),s.material.dispose(),this}clear(n,e,i,r){const o=n.getRenderTarget();for(let s=0;s<6;s++)n.setRenderTarget(this,s),n.clear(e,i,r);n.setRenderTarget(o)}}eT.prototype.isWebGLCubeRenderTarget=!0;class mb extends ss{constructor(n,e,i,r,o,s,a,l,c,d,u,h){super(null,s,a,l,c,d,r,o,u,h),this.image={data:n||null,width:e||1,height:i||1},this.magFilter=void 0!==c?c:vs,this.minFilter=void 0!==d?d:vs,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1,this.needsUpdate=!0}}mb.prototype.isDataTexture=!0;const pb=new Zd,tT=new Y;class Aw{constructor(n=new Qc,e=new Qc,i=new Qc,r=new Qc,o=new Qc,s=new Qc){this.planes=[n,e,i,r,o,s]}set(n,e,i,r,o,s){const a=this.planes;return a[0].copy(n),a[1].copy(e),a[2].copy(i),a[3].copy(r),a[4].copy(o),a[5].copy(s),this}copy(n){const e=this.planes;for(let i=0;i<6;i++)e[i].copy(n.planes[i]);return this}setFromProjectionMatrix(n){const e=this.planes,i=n.elements,r=i[0],o=i[1],s=i[2],a=i[3],l=i[4],c=i[5],d=i[6],u=i[7],h=i[8],m=i[9],A=i[10],v=i[11],x=i[12],C=i[13],w=i[14],S=i[15];return e[0].setComponents(a-r,u-l,v-h,S-x).normalize(),e[1].setComponents(a+r,u+l,v+h,S+x).normalize(),e[2].setComponents(a+o,u+c,v+m,S+C).normalize(),e[3].setComponents(a-o,u-c,v-m,S-C).normalize(),e[4].setComponents(a-s,u-d,v-A,S-w).normalize(),e[5].setComponents(a+s,u+d,v+A,S+w).normalize(),this}intersectsObject(n){const e=n.geometry;return null===e.boundingSphere&&e.computeBoundingSphere(),pb.copy(e.boundingSphere).applyMatrix4(n.matrixWorld),this.intersectsSphere(pb)}intersectsSprite(n){return pb.center.set(0,0,0),pb.radius=.7071067811865476,pb.applyMatrix4(n.matrixWorld),this.intersectsSphere(pb)}intersectsSphere(n){const e=this.planes,i=n.center,r=-n.radius;for(let o=0;o<6;o++)if(e[o].distanceToPoint(i)0?n.max.x:n.min.x,tT.y=r.normal.y>0?n.max.y:n.min.y,tT.z=r.normal.z>0?n.max.z:n.min.z,r.distanceToPoint(tT)<0)return!1}return!0}containsPoint(n){const e=this.planes;for(let i=0;i<6;i++)if(e[i].distanceToPoint(n)<0)return!1;return!0}clone(){return(new this.constructor).copy(this)}}function iY(){let t=null,n=!1,e=null,i=null;function r(o,s){e(o,s),i=t.requestAnimationFrame(r)}return{start:function(){!0!==n&&null!==e&&(i=t.requestAnimationFrame(r),n=!0)},stop:function(){t.cancelAnimationFrame(i),n=!1},setAnimationLoop:function(o){e=o},setContext:function(o){t=o}}}function CEe(t,n){const e=n.isWebGL2,i=new WeakMap;return{get:function s(c){return c.isInterleavedBufferAttribute&&(c=c.data),i.get(c)},remove:function a(c){c.isInterleavedBufferAttribute&&(c=c.data);const d=i.get(c);d&&(t.deleteBuffer(d.buffer),i.delete(c))},update:function l(c,d){if(c.isGLBufferAttribute){const h=i.get(c);return void((!h||h.version 0.0 ) {\n\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t}\n\treturn distanceFalloff;\n#else\n\tif( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\n\t\treturn pow( saturate( -lightDistance / cutoffDistance + 1.0 ), decayExponent );\n\t}\n\treturn 1.0;\n#endif\n}\nvec3 BRDF_Diffuse_Lambert( const in vec3 diffuseColor ) {\n\treturn RECIPROCAL_PI * diffuseColor;\n}\nvec3 F_Schlick( const in vec3 specularColor, const in float dotLH ) {\n\tfloat fresnel = exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );\n\treturn ( 1.0 - specularColor ) * fresnel + specularColor;\n}\nvec3 F_Schlick_RoughnessDependent( const in vec3 F0, const in float dotNV, const in float roughness ) {\n\tfloat fresnel = exp2( ( -5.55473 * dotNV - 6.98316 ) * dotNV );\n\tvec3 Fr = max( vec3( 1.0 - roughness ), F0 ) - F0;\n\treturn Fr * fresnel + F0;\n}\nfloat G_GGX_Smith( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\tfloat gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\treturn 1.0 / ( gl * gv );\n}\nfloat G_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\nvec3 BRDF_Specular_GGX( const in IncidentLight incidentLight, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float roughness ) {\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( incidentLight.direction + viewDir );\n\tfloat dotNL = saturate( dot( normal, incidentLight.direction ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, dotLH );\n\tfloat G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\tfloat D = D_GGX( alpha, dotNH );\n\treturn F * ( G * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\nvec3 BRDF_Specular_GGX_Environment( const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tvec2 brdf = integrateSpecularBRDF( dotNV, roughness );\n\treturn specularColor * brdf.x + brdf.y;\n}\nvoid BRDF_Specular_Multiscattering_Environment( const in GeometricContext geometry, const in vec3 specularColor, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\n\tvec3 F = F_Schlick_RoughnessDependent( specularColor, dotNV, roughness );\n\tvec2 brdf = integrateSpecularBRDF( dotNV, roughness );\n\tvec3 FssEss = F * brdf.x + brdf.y;\n\tfloat Ess = brdf.x + brdf.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}\nfloat G_BlinnPhong_Implicit( ) {\n\treturn 0.25;\n}\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\n\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\n}\nvec3 BRDF_Specular_BlinnPhong( const in IncidentLight incidentLight, const in GeometricContext geometry, const in vec3 specularColor, const in float shininess ) {\n\tvec3 halfDir = normalize( incidentLight.direction + geometry.viewDir );\n\tfloat dotNH = saturate( dot( geometry.normal, halfDir ) );\n\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, dotLH );\n\tfloat G = G_BlinnPhong_Implicit( );\n\tfloat D = D_BlinnPhong( shininess, dotNH );\n\treturn F * ( G * D );\n}\nfloat GGXRoughnessToBlinnExponent( const in float ggxRoughness ) {\n\treturn ( 2.0 / pow2( ggxRoughness + 0.0001 ) - 2.0 );\n}\nfloat BlinnExponentToGGXRoughness( const in float blinnExponent ) {\n\treturn sqrt( 2.0 / ( blinnExponent + 2.0 ) );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie(float roughness, float NoH) {\n\tfloat invAlpha = 1.0 / roughness;\n\tfloat cos2h = NoH * NoH;\n\tfloat sin2h = max(1.0 - cos2h, 0.0078125);\treturn (2.0 + invAlpha) * pow(sin2h, invAlpha * 0.5) / (2.0 * PI);\n}\nfloat V_Neubelt(float NoV, float NoL) {\n\treturn saturate(1.0 / (4.0 * (NoL + NoV - NoL * NoV)));\n}\nvec3 BRDF_Specular_Sheen( const in float roughness, const in vec3 L, const in GeometricContext geometry, vec3 specularColor ) {\n\tvec3 N = geometry.normal;\n\tvec3 V = geometry.viewDir;\n\tvec3 H = normalize( V + L );\n\tfloat dotNH = saturate( dot( N, H ) );\n\treturn specularColor * D_Charlie( roughness, dotNH ) * V_Neubelt( dot(N, V), dot(N, L) );\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:"#ifdef USE_COLOR\n\tdiffuseColor.rgb *= vColor;\n#endif",color_pars_fragment:"#ifdef USE_COLOR\n\tvarying vec3 vColor;\n#endif",color_pars_vertex:"#if defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvarying vec3 vColor;\n#endif",color_vertex:"#if defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvColor = vec3( 1.0 );\n#endif\n#ifdef USE_COLOR\n\tvColor.xyz *= color.xyz;\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 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 max3( vec3 v ) { return max( max( v.x, v.y ), v.z ); }\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 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}\nvec3 projectOnPlane(in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\tfloat distance = dot( planeNormal, point - pointOnPlane );\n\treturn - distance * planeNormal + point;\n}\nfloat sideOfPlane( in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\treturn sign( dot( point - pointOnPlane, planeNormal ) );\n}\nvec3 linePlaneIntersect( in vec3 pointOnLine, in vec3 lineDirection, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\treturn lineDirection * ( dot( planeNormal, pointOnPlane - pointOnLine ) / dot( planeNormal, lineDirection ) ) + pointOnLine;\n}\nmat3 transposeMat3( const in mat3 m ) {\n\tmat3 tmp;\n\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n\treturn tmp;\n}\nfloat linearToRelativeLuminance( const in vec3 color ) {\n\tvec3 weights = vec3( 0.2126, 0.7152, 0.0722 );\n\treturn dot( weights, color.rgb );\n}\nbool isPerspectiveMatrix( mat4 m ) {\n\treturn m[ 2 ][ 3 ] == - 1.0;\n}\nvec2 equirectUv( in vec3 dir ) {\n\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\n\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\treturn vec2( u, v );\n}",cube_uv_reflection_fragment:"#ifdef ENVMAP_TYPE_CUBE_UV\n\t#define cubeUV_maxMipLevel 8.0\n\t#define cubeUV_minMipLevel 4.0\n\t#define cubeUV_maxTileSize 256.0\n\t#define cubeUV_minTileSize 16.0\n\tfloat getFace( vec3 direction ) {\n\t\tvec3 absDirection = abs( direction );\n\t\tfloat face = - 1.0;\n\t\tif ( absDirection.x > absDirection.z ) {\n\t\t\tif ( absDirection.x > absDirection.y )\n\t\t\t\tface = direction.x > 0.0 ? 0.0 : 3.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t} else {\n\t\t\tif ( absDirection.z > absDirection.y )\n\t\t\t\tface = direction.z > 0.0 ? 2.0 : 5.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t}\n\t\treturn face;\n\t}\n\tvec2 getUV( vec3 direction, float face ) {\n\t\tvec2 uv;\n\t\tif ( face == 0.0 ) {\n\t\t\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 1.0 ) {\n\t\t\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\n\t\t} else if ( face == 2.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\n\t\t} else if ( face == 3.0 ) {\n\t\t\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 4.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\n\t\t} else {\n\t\t\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\n\t\t}\n\t\treturn 0.5 * ( uv + 1.0 );\n\t}\n\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\n\t\tfloat face = getFace( direction );\n\t\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\n\t\tmipInt = max( mipInt, cubeUV_minMipLevel );\n\t\tfloat faceSize = exp2( mipInt );\n\t\tfloat texelSize = 1.0 / ( 3.0 * cubeUV_maxTileSize );\n\t\tvec2 uv = getUV( direction, face ) * ( faceSize - 1.0 );\n\t\tvec2 f = fract( uv );\n\t\tuv += 0.5 - f;\n\t\tif ( face > 2.0 ) {\n\t\t\tuv.y += faceSize;\n\t\t\tface -= 3.0;\n\t\t}\n\t\tuv.x += face * faceSize;\n\t\tif ( mipInt < cubeUV_maxMipLevel ) {\n\t\t\tuv.y += 2.0 * cubeUV_maxTileSize;\n\t\t}\n\t\tuv.y += filterInt * 2.0 * cubeUV_minTileSize;\n\t\tuv.x += 3.0 * max( 0.0, cubeUV_maxTileSize - 2.0 * faceSize );\n\t\tuv *= texelSize;\n\t\tvec3 tl = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\n\t\tuv.x += texelSize;\n\t\tvec3 tr = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\n\t\tuv.y += texelSize;\n\t\tvec3 br = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\n\t\tuv.x -= texelSize;\n\t\tvec3 bl = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\n\t\tvec3 tm = mix( tl, tr, f.x );\n\t\tvec3 bm = mix( bl, br, f.x );\n\t\treturn mix( tm, bm, f.y );\n\t}\n\t#define r0 1.0\n\t#define v0 0.339\n\t#define m0 - 2.0\n\t#define r1 0.8\n\t#define v1 0.276\n\t#define m1 - 1.0\n\t#define r4 0.4\n\t#define v4 0.046\n\t#define m4 2.0\n\t#define r5 0.305\n\t#define v5 0.016\n\t#define m5 3.0\n\t#define r6 0.21\n\t#define v6 0.0038\n\t#define m6 4.0\n\tfloat roughnessToMip( float roughness ) {\n\t\tfloat mip = 0.0;\n\t\tif ( roughness >= r1 ) {\n\t\t\tmip = ( r0 - roughness ) * ( m1 - m0 ) / ( r0 - r1 ) + m0;\n\t\t} else if ( roughness >= r4 ) {\n\t\t\tmip = ( r1 - roughness ) * ( m4 - m1 ) / ( r1 - r4 ) + m1;\n\t\t} else if ( roughness >= r5 ) {\n\t\t\tmip = ( r4 - roughness ) * ( m5 - m4 ) / ( r4 - r5 ) + m4;\n\t\t} else if ( roughness >= r6 ) {\n\t\t\tmip = ( r5 - roughness ) * ( m6 - m5 ) / ( r5 - r6 ) + m5;\n\t\t} else {\n\t\t\tmip = - 2.0 * log2( 1.16 * roughness );\t\t}\n\t\treturn mip;\n\t}\n\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\n\t\tfloat mip = clamp( roughnessToMip( roughness ), m0, cubeUV_maxMipLevel );\n\t\tfloat mipF = fract( mip );\n\t\tfloat mipInt = floor( mip );\n\t\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\n\t\tif ( mipF == 0.0 ) {\n\t\t\treturn vec4( color0, 1.0 );\n\t\t} else {\n\t\t\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\n\t\t\treturn vec4( mix( color0, color1, mipF ), 1.0 );\n\t\t}\n\t}\n#endif",defaultnormal_vertex:"vec3 transformedNormal = objectNormal;\n#ifdef USE_INSTANCING\n\tmat3 m = mat3( instanceMatrix );\n\ttransformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) );\n\ttransformedNormal = m * transformedNormal;\n#endif\ntransformedNormal = normalMatrix * transformedNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal = - transformedNormal;\n#endif\n#ifdef USE_TANGENT\n\tvec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#ifdef FLIP_SIDED\n\t\ttransformedTangent = - transformedTangent;\n\t#endif\n#endif",displacementmap_pars_vertex:"#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif",displacementmap_vertex:"#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vUv ).x * displacementScale + displacementBias );\n#endif",emissivemap_fragment:"#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vUv );\n\temissiveColor.rgb = emissiveMapTexelToLinear( emissiveColor ).rgb;\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif",emissivemap_pars_fragment:"#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif",encodings_fragment:"gl_FragColor = linearToOutputTexel( gl_FragColor );",encodings_pars_fragment:"\nvec4 LinearToLinear( in vec4 value ) {\n\treturn value;\n}\nvec4 GammaToLinear( in vec4 value, in float gammaFactor ) {\n\treturn vec4( pow( value.rgb, vec3( gammaFactor ) ), value.a );\n}\nvec4 LinearToGamma( in vec4 value, in float gammaFactor ) {\n\treturn vec4( pow( value.rgb, vec3( 1.0 / gammaFactor ) ), value.a );\n}\nvec4 sRGBToLinear( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.a );\n}\nvec4 LinearTosRGB( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\n}\nvec4 RGBEToLinear( in vec4 value ) {\n\treturn vec4( value.rgb * exp2( value.a * 255.0 - 128.0 ), 1.0 );\n}\nvec4 LinearToRGBE( in vec4 value ) {\n\tfloat maxComponent = max( max( value.r, value.g ), value.b );\n\tfloat fExp = clamp( ceil( log2( maxComponent ) ), -128.0, 127.0 );\n\treturn vec4( value.rgb / exp2( fExp ), ( fExp + 128.0 ) / 255.0 );\n}\nvec4 RGBMToLinear( in vec4 value, in float maxRange ) {\n\treturn vec4( value.rgb * value.a * maxRange, 1.0 );\n}\nvec4 LinearToRGBM( in vec4 value, in float maxRange ) {\n\tfloat maxRGB = max( value.r, max( value.g, value.b ) );\n\tfloat M = clamp( maxRGB / maxRange, 0.0, 1.0 );\n\tM = ceil( M * 255.0 ) / 255.0;\n\treturn vec4( value.rgb / ( M * maxRange ), M );\n}\nvec4 RGBDToLinear( in vec4 value, in float maxRange ) {\n\treturn vec4( value.rgb * ( ( maxRange / 255.0 ) / value.a ), 1.0 );\n}\nvec4 LinearToRGBD( in vec4 value, in float maxRange ) {\n\tfloat maxRGB = max( value.r, max( value.g, value.b ) );\n\tfloat D = max( maxRange / maxRGB, 1.0 );\n\tD = clamp( floor( D ) / 255.0, 0.0, 1.0 );\n\treturn vec4( value.rgb * ( D * ( 255.0 / maxRange ) ), D );\n}\nconst mat3 cLogLuvM = mat3( 0.2209, 0.3390, 0.4184, 0.1138, 0.6780, 0.7319, 0.0102, 0.1130, 0.2969 );\nvec4 LinearToLogLuv( in vec4 value ) {\n\tvec3 Xp_Y_XYZp = cLogLuvM * value.rgb;\n\tXp_Y_XYZp = max( Xp_Y_XYZp, vec3( 1e-6, 1e-6, 1e-6 ) );\n\tvec4 vResult;\n\tvResult.xy = Xp_Y_XYZp.xy / Xp_Y_XYZp.z;\n\tfloat Le = 2.0 * log2(Xp_Y_XYZp.y) + 127.0;\n\tvResult.w = fract( Le );\n\tvResult.z = ( Le - ( floor( vResult.w * 255.0 ) ) / 255.0 ) / 255.0;\n\treturn vResult;\n}\nconst mat3 cLogLuvInverseM = mat3( 6.0014, -2.7008, -1.7996, -1.3320, 3.1029, -5.7721, 0.3008, -1.0882, 5.6268 );\nvec4 LogLuvToLinear( in vec4 value ) {\n\tfloat Le = value.z * 255.0 + value.w;\n\tvec3 Xp_Y_XYZp;\n\tXp_Y_XYZp.y = exp2( ( Le - 127.0 ) / 2.0 );\n\tXp_Y_XYZp.z = Xp_Y_XYZp.y / value.y;\n\tXp_Y_XYZp.x = value.x * Xp_Y_XYZp.z;\n\tvec3 vRGB = cLogLuvInverseM * Xp_Y_XYZp.rgb;\n\treturn vec4( max( vRGB, 0.0 ), 1.0 );\n}",envmap_fragment:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvec3 cameraToFrag;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\n\t\t#endif\n\t#else\n\t\tvec3 reflectVec = vReflect;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#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#ifndef ENVMAP_TYPE_CUBE_UV\n\t\tenvColor = envMapTexelToLinear( envColor );\n\t#endif\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\n\t#endif\n#endif",envmap_common_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float envMapIntensity;\n\tuniform float flipEnvMap;\n\tuniform int maxMipLevel;\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\t\n#endif",envmap_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float reflectivity;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\tvarying vec3 vWorldPosition;\n\t\tuniform float refractionRatio;\n\t#else\n\t\tvarying vec3 vReflect;\n\t#endif\n#endif",envmap_pars_vertex:"#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) ||defined( PHONG )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\t\n\t\tvarying vec3 vWorldPosition;\n\t#else\n\t\tvarying vec3 vReflect;\n\t\tuniform float refractionRatio;\n\t#endif\n#endif",envmap_physical_pars_fragment:"#if defined( USE_ENVMAP )\n\t#ifdef ENVMAP_MODE_REFRACTION\n\t\tuniform float refractionRatio;\n\t#endif\n\tvec3 getLightProbeIndirectIrradiance( const in GeometricContext geometry, const in int maxMIPLevel ) {\n\t\tvec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix );\n\t\t#ifdef ENVMAP_TYPE_CUBE\n\t\t\tvec3 queryVec = vec3( flipEnvMap * worldNormal.x, worldNormal.yz );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = textureCubeLodEXT( envMap, queryVec, float( maxMIPLevel ) );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = textureCube( envMap, queryVec, float( maxMIPLevel ) );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\n\t\t#else\n\t\t\tvec4 envMapColor = vec4( 0.0 );\n\t\t#endif\n\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t}\n\tfloat getSpecularMIPLevel( const in float roughness, const in int maxMIPLevel ) {\n\t\tfloat maxMIPLevelScalar = float( maxMIPLevel );\n\t\tfloat sigma = PI * roughness * roughness / ( 1.0 + roughness );\n\t\tfloat desiredMIPLevel = maxMIPLevelScalar + log2( sigma );\n\t\treturn clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );\n\t}\n\tvec3 getLightProbeIndirectRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in int maxMIPLevel ) {\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( -viewDir, normal );\n\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( -viewDir, normal, refractionRatio );\n\t\t#endif\n\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\tfloat specularMIPLevel = getSpecularMIPLevel( roughness, maxMIPLevel );\n\t\t#ifdef ENVMAP_TYPE_CUBE\n\t\t\tvec3 queryReflectVec = vec3( flipEnvMap * reflectVec.x, reflectVec.yz );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = textureCubeLodEXT( envMap, queryReflectVec, specularMIPLevel );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = textureCube( envMap, queryReflectVec, specularMIPLevel );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\n\t\t#endif\n\t\treturn envMapColor.rgb * envMapIntensity;\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\tfogDepth = - mvPosition.z;\n#endif",fog_pars_vertex:"#ifdef USE_FOG\n\tvarying float fogDepth;\n#endif",fog_fragment:"#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * fogDepth * fogDepth );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, fogDepth );\n\t#endif\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif",fog_pars_fragment:"#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\tvarying float fogDepth;\n\t#ifdef FOG_EXP2\n\t\tuniform float fogDensity;\n\t#else\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n#endif",gradientmap_pars_fragment:"#ifdef USE_GRADIENTMAP\n\tuniform sampler2D gradientMap;\n#endif\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n\tfloat dotNL = dot( normal, lightDirection );\n\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n\t#ifdef USE_GRADIENTMAP\n\t\treturn texture2D( gradientMap, coord ).rgb;\n\t#else\n\t\treturn ( coord.x < 0.7 ) ? vec3( 0.7 ) : vec3( 1.0 );\n\t#endif\n}",lightmap_fragment:"#ifdef USE_LIGHTMAP\n\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\n\treflectedLight.indirectDiffuse += PI * lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\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 );\n#ifdef DOUBLE_SIDED\n\tvIndirectBack += getAmbientLightIrradiance( ambientLightColor );\n\tvIndirectBack += getLightProbeIrradiance( lightProbe, backGeometry );\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\tgetPointDirectLightIrradiance( pointLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n\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\tgetSpotDirectLightIrradiance( spotLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n\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\tgetDirectionalDirectLightIrradiance( directionalLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n\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 );\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvIndirectBack += getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry );\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 GeometricContext geometry ) {\n\tvec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix );\n\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\n\treturn irradiance;\n}\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\treturn irradiance;\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalDirectLightIrradiance( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tdirectLight.color = directionalLight.color;\n\t\tdirectLight.direction = directionalLight.direction;\n\t\tdirectLight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointDirectLightIrradiance( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tvec3 lVector = pointLight.position - geometry.position;\n\t\tdirectLight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tdirectLight.color = pointLight.color;\n\t\tdirectLight.color *= punctualLightIntensityToIrradianceFactor( lightDistance, pointLight.distance, pointLight.decay );\n\t\tdirectLight.visible = ( directLight.color != vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotDirectLightIrradiance( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tvec3 lVector = spotLight.position - geometry.position;\n\t\tdirectLight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tfloat angleCos = dot( directLight.direction, spotLight.direction );\n\t\tif ( angleCos > spotLight.coneCos ) {\n\t\t\tfloat spotEffect = smoothstep( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\t\tdirectLight.color = spotLight.color;\n\t\t\tdirectLight.color *= spotEffect * punctualLightIntensityToIrradianceFactor( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tdirectLight.visible = true;\n\t\t} else {\n\t\t\tdirectLight.color = vec3( 0.0 );\n\t\t\tdirectLight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D 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 GeometricContext geometry ) {\n\t\tfloat dotNL = dot( geometry.normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tirradiance *= PI;\n\t\t#endif\n\t\treturn irradiance;\n\t}\n#endif",lights_toon_fragment:"ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;",lights_toon_pars_fragment:"varying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\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\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\treflectedLight.directDiffuse += irradiance * BRDF_Diffuse_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_Diffuse_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;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\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\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\treflectedLight.directDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_Specular_BlinnPhong( directLight, geometry, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong\n#define Material_LightProbeLOD( material )\t(0)",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.specularRoughness = max( roughnessFactor, 0.0525 );material.specularRoughness += geometryRoughness;\nmaterial.specularRoughness = min( material.specularRoughness, 1.0 );\n#ifdef REFLECTIVITY\n\tmaterial.specularColor = mix( vec3( MAXIMUM_SPECULAR_COEFFICIENT * pow2( reflectivity ) ), diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( DEFAULT_SPECULAR_COEFFICIENT ), diffuseColor.rgb, metalnessFactor );\n#endif\n#ifdef CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\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 = sheen;\n#endif",lights_physical_pars_fragment:"struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat specularRoughness;\n\tvec3 specularColor;\n#ifdef CLEARCOAT\n\tfloat clearcoat;\n\tfloat clearcoatRoughness;\n#endif\n#ifdef USE_SHEEN\n\tvec3 sheenColor;\n#endif\n};\n#define MAXIMUM_SPECULAR_COEFFICIENT 0.16\n#define DEFAULT_SPECULAR_COEFFICIENT 0.04\nfloat clearcoatDHRApprox( const in float roughness, const in float dotNL ) {\n\treturn DEFAULT_SPECULAR_COEFFICIENT + ( 1.0 - DEFAULT_SPECULAR_COEFFICIENT ) * ( pow( 1.0 - dotNL, 5.0 ) * pow( 1.0 - roughness, 2.0 ) );\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometry.normal;\n\t\tvec3 viewDir = geometry.viewDir;\n\t\tvec3 position = geometry.position;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.specularRoughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\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#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\t#ifdef CLEARCOAT\n\t\tfloat ccDotNL = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = ccDotNL * directLight.color;\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tccIrradiance *= PI;\n\t\t#endif\n\t\tfloat clearcoatDHR = material.clearcoat * clearcoatDHRApprox( material.clearcoatRoughness, ccDotNL );\n\t\treflectedLight.directSpecular += ccIrradiance * material.clearcoat * BRDF_Specular_GGX( directLight, geometry.viewDir, geometry.clearcoatNormal, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearcoatRoughness );\n\t#else\n\t\tfloat clearcoatDHR = 0.0;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\treflectedLight.directSpecular += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Specular_Sheen(\n\t\t\tmaterial.specularRoughness,\n\t\t\tdirectLight.direction,\n\t\t\tgeometry,\n\t\t\tmaterial.sheenColor\n\t\t);\n\t#else\n\t\treflectedLight.directSpecular += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Specular_GGX( directLight, geometry.viewDir, geometry.normal, material.specularColor, material.specularRoughness);\n\t#endif\n\treflectedLight.directDiffuse += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Diffuse_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_Diffuse_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 CLEARCOAT\n\t\tfloat ccDotNV = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\t\treflectedLight.indirectSpecular += clearcoatRadiance * material.clearcoat * BRDF_Specular_GGX_Environment( geometry.viewDir, geometry.clearcoatNormal, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearcoatRoughness );\n\t\tfloat ccDotNL = ccDotNV;\n\t\tfloat clearcoatDHR = material.clearcoat * clearcoatDHRApprox( material.clearcoatRoughness, ccDotNL );\n\t#else\n\t\tfloat clearcoatDHR = 0.0;\n\t#endif\n\tfloat clearcoatInv = 1.0 - clearcoatDHR;\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\tBRDF_Specular_Multiscattering_Environment( geometry, material.specularColor, material.specularRoughness, singleScattering, multiScattering );\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - ( singleScattering + multiScattering ) );\n\treflectedLight.indirectSpecular += clearcoatInv * 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 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\tgetPointDirectLightIrradiance( 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\tgetSpotDirectLightIrradiance( 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\tgetDirectionalDirectLightIrradiance( 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 );\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 );\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearcoatRadiance = vec3( 0.0 );\n#endif",lights_fragment_maps:"#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\n\t\tvec3 lightMapIrradiance = lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tlightMapIrradiance *= PI;\n\t\t#endif\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getLightProbeIndirectIrradiance( geometry, maxMipLevel );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\tradiance += getLightProbeIndirectRadiance( geometry.viewDir, geometry.normal, material.specularRoughness, maxMipLevel );\n\t#ifdef CLEARCOAT\n\t\tclearcoatRadiance += getLightProbeIndirectRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness, maxMipLevel );\n\t#endif\n#endif",lights_fragment_end:"#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight );\n#endif",logdepthbuf_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif",logdepthbuf_pars_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tuniform float logDepthBufFC;\n\tvarying float vFragDepth;\n\tvarying float vIsPerspective;\n#endif",logdepthbuf_pars_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t\tvarying float vIsPerspective;\n\t#else\n\t\tuniform float logDepthBufFC;\n\t#endif\n#endif",logdepthbuf_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvFragDepth = 1.0 + gl_Position.w;\n\t\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\n\t#else\n\t\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\n\t\t\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\n\t\t\tgl_Position.z *= gl_Position.w;\n\t\t}\n\t#endif\n#endif",map_fragment:"#ifdef USE_MAP\n\tvec4 texelColor = texture2D( map, vUv );\n\ttexelColor = mapTexelToLinear( texelColor );\n\tdiffuseColor *= texelColor;\n#endif",map_pars_fragment:"#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif",map_particle_fragment:"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n#endif\n#ifdef USE_MAP\n\tvec4 mapTexel = texture2D( map, uv );\n\tdiffuseColor *= mapTexelToLinear( mapTexel );\n#endif\n#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\n#endif",map_particle_pars_fragment:"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\tuniform mat3 uvTransform;\n#endif\n#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif",metalnessmap_fragment:"float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vUv );\n\tmetalnessFactor *= texelMetalness.b;\n#endif",metalnessmap_pars_fragment:"#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif",morphnormal_vertex:"#ifdef USE_MORPHNORMALS\n\tobjectNormal *= morphTargetBaseInfluence;\n\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\n\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\n\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\n\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\n#endif",morphtarget_pars_vertex:"#ifdef USE_MORPHTARGETS\n\tuniform float morphTargetBaseInfluence;\n\t#ifndef USE_MORPHNORMALS\n\t\tuniform float morphTargetInfluences[ 8 ];\n\t#else\n\t\tuniform float morphTargetInfluences[ 4 ];\n\t#endif\n#endif",morphtarget_vertex:"#ifdef USE_MORPHTARGETS\n\ttransformed *= morphTargetBaseInfluence;\n\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\n\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\n\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\n\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\n\t#ifndef USE_MORPHNORMALS\n\t\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\n\t\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\n\t\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\n\t\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\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",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 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",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\t#ifdef BONE_TEXTURE\n\t\tuniform highp sampler2D boneTexture;\n\t\tuniform int boneTextureSize;\n\t\tmat4 getBoneMatrix( const in float i ) {\n\t\t\tfloat j = i * 4.0;\n\t\t\tfloat x = mod( j, float( boneTextureSize ) );\n\t\t\tfloat y = floor( j / float( boneTextureSize ) );\n\t\t\tfloat dx = 1.0 / float( boneTextureSize );\n\t\t\tfloat dy = 1.0 / float( boneTextureSize );\n\t\t\ty = dy * ( y + 0.5 );\n\t\t\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\n\t\t\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\n\t\t\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\n\t\t\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\n\t\t\tmat4 bone = mat4( v1, v2, v3, v4 );\n\t\t\treturn bone;\n\t\t}\n\t#else\n\t\tuniform mat4 boneMatrices[ MAX_BONES ];\n\t\tmat4 getBoneMatrix( const in float i ) {\n\t\t\tmat4 bone = boneMatrices[ int(i) ];\n\t\t\treturn bone;\n\t\t}\n\t#endif\n#endif",skinning_vertex:"#ifdef USE_SKINNING\n\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\n\tvec4 skinned = vec4( 0.0 );\n\tskinned += boneMatX * skinVertex * skinWeight.x;\n\tskinned += boneMatY * skinVertex * skinWeight.y;\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\n\tskinned += boneMatW * skinVertex * skinWeight.w;\n\ttransformed = ( bindMatrixInverse * skinned ).xyz;\n#endif",skinnormal_vertex:"#ifdef USE_SKINNING\n\tmat4 skinMatrix = mat4( 0.0 );\n\tskinMatrix += skinWeight.x * boneMatX;\n\tskinMatrix += skinWeight.y * boneMatY;\n\tskinMatrix += skinWeight.z * boneMatZ;\n\tskinMatrix += skinWeight.w * boneMatW;\n\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\n\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n\t#ifdef USE_TANGENT\n\t\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#endif\n#endif",specularmap_fragment:"float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif",specularmap_pars_fragment:"#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif",tonemapping_fragment:"#if defined( TONE_MAPPING )\n\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif",tonemapping_pars_fragment:"#ifndef saturate\n#define saturate(a) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn toneMappingExposure * color;\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\n}\nvec3 OptimizedCineonToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\tcolor = max( vec3( 0.0 ), color - 0.004 );\n\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\nvec3 RRTAndODTFit( vec3 v ) {\n\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\n\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\n\treturn a / b;\n}\nvec3 ACESFilmicToneMapping( vec3 color ) {\n\tconst mat3 ACESInputMat = mat3(\n\t\tvec3( 0.59719, 0.07600, 0.02840 ),\t\tvec3( 0.35458, 0.90834, 0.13383 ),\n\t\tvec3( 0.04823, 0.01566, 0.83777 )\n\t);\n\tconst mat3 ACESOutputMat = mat3(\n\t\tvec3( 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; }",transmissionmap_fragment:"#ifdef USE_TRANSMISSIONMAP\n\ttotalTransmission *= texture2D( transmissionMap, vUv ).r;\n#endif",transmissionmap_pars_fragment:"#ifdef USE_TRANSMISSIONMAP\n\tuniform sampler2D transmissionMap;\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 )\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_frag:"uniform sampler2D t2D;\nvarying vec2 vUv;\nvoid main() {\n\tvec4 texColor = texture2D( t2D, vUv );\n\tgl_FragColor = mapTexelToLinear( texColor );\n\t#include \n\t#include \n}",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}",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}",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}",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 \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}",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}",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 \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}",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}",equirect_frag:"uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvec3 direction = normalize( vWorldDirection );\n\tvec2 sampleUV = equirectUv( direction );\n\tvec4 texColor = texture2D( tEquirect, sampleUV );\n\tgl_FragColor = mapTexelToLinear( texColor );\n\t#include \n\t#include \n}",equirect_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\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\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \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}",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 \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\n\t\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\n\t\treflectedLight.indirectDiffuse += lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t#include \n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include \n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshbasic_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#ifdef USE_ENVMAP\n\t#include \n\t#include \n\t#include \n\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",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 \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_Diffuse_Lambert( diffuseColor.rgb );\n\t#ifdef DOUBLE_SIDED\n\t\treflectedLight.directDiffuse = ( gl_FrontFacing ) ? vLightFront : vLightBack;\n\t#else\n\t\treflectedLight.directDiffuse = vLightFront;\n\t#endif\n\treflectedLight.directDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb ) * getShadowMask();\n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\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}",meshmatcap_frag:"#define MATCAP\nuniform vec3 diffuse;\nuniform float opacity;\nuniform sampler2D matcap;\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \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\tmatcapColor = matcapTexelToLinear( matcapColor );\n\t#else\n\t\tvec4 matcapColor = vec4( 1.0 );\n\t#endif\n\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshmatcap_vert:"#define MATCAP\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \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#ifndef FLAT_SHADED\n\t\tvNormal = normalize( transformedNormal );\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\tvViewPosition = - mvPosition.xyz;\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 \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\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshtoon_vert:"#define TOON\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n}",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 \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\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshphong_vert:"#define PHONG\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}",meshphysical_frag:"#define STANDARD\n#ifdef PHYSICAL\n\t#define REFLECTIVITY\n\t#define CLEARCOAT\n\t#define TRANSMISSION\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef TRANSMISSION\n\tuniform float transmission;\n#endif\n#ifdef REFLECTIVITY\n\tuniform float reflectivity;\n#endif\n#ifdef CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheen;\n#endif\nvarying vec3 vViewPosition;\n#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\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#ifdef TRANSMISSION\n\t\tfloat totalTransmission = transmission;\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\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#ifdef TRANSMISSION\n\t\tdiffuseColor.a *= mix( saturate( 1. - totalTransmission + linearToRelativeLuminance( reflectedLight.directSpecular + reflectedLight.indirectSpecular ) ), 1.0, metalness );\n\t#endif\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshphysical_vert:"#define STANDARD\nvarying vec3 vViewPosition;\n#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\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n}",normal_frag:"#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvarying vec3 vViewPosition;\n#endif\n#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\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}",normal_vert:"#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvarying vec3 vViewPosition;\n#endif\n#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\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#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\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}",points_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n}",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\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}",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}",shadow_vert:"#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}",sprite_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\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\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}"},hn={common:{diffuse:{value:new rn(15658734)},opacity:{value:1},map:{value:null},uvTransform:{value:new ro},uv2Transform:{value:new ro},alphaMap:{value:null}},specularmap:{specularMap:{value:null}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},refractionRatio:{value:.98},maxMipLevel:{value:0}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1}},emissivemap:{emissiveMap:{value:null}},bumpmap:{bumpMap:{value:null},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalScale:{value:new ut(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 rn(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 rn(15658734)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},uvTransform:{value:new ro}},sprite:{diffuse:{value:new rn(15658734)},opacity:{value:1},center:{value:new ut(.5,.5)},rotation:{value:0},map:{value:null},alphaMap:{value:null},uvTransform:{value:new ro}}},Wc={basic:{uniforms:aa([hn.common,hn.specularmap,hn.envmap,hn.aomap,hn.lightmap,hn.fog]),vertexShader:Ni.meshbasic_vert,fragmentShader:Ni.meshbasic_frag},lambert:{uniforms:aa([hn.common,hn.specularmap,hn.envmap,hn.aomap,hn.lightmap,hn.emissivemap,hn.fog,hn.lights,{emissive:{value:new rn(0)}}]),vertexShader:Ni.meshlambert_vert,fragmentShader:Ni.meshlambert_frag},phong:{uniforms:aa([hn.common,hn.specularmap,hn.envmap,hn.aomap,hn.lightmap,hn.emissivemap,hn.bumpmap,hn.normalmap,hn.displacementmap,hn.fog,hn.lights,{emissive:{value:new rn(0)},specular:{value:new rn(1118481)},shininess:{value:30}}]),vertexShader:Ni.meshphong_vert,fragmentShader:Ni.meshphong_frag},standard:{uniforms:aa([hn.common,hn.envmap,hn.aomap,hn.lightmap,hn.emissivemap,hn.bumpmap,hn.normalmap,hn.displacementmap,hn.roughnessmap,hn.metalnessmap,hn.fog,hn.lights,{emissive:{value:new rn(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:Ni.meshphysical_vert,fragmentShader:Ni.meshphysical_frag},toon:{uniforms:aa([hn.common,hn.aomap,hn.lightmap,hn.emissivemap,hn.bumpmap,hn.normalmap,hn.displacementmap,hn.gradientmap,hn.fog,hn.lights,{emissive:{value:new rn(0)}}]),vertexShader:Ni.meshtoon_vert,fragmentShader:Ni.meshtoon_frag},matcap:{uniforms:aa([hn.common,hn.bumpmap,hn.normalmap,hn.displacementmap,hn.fog,{matcap:{value:null}}]),vertexShader:Ni.meshmatcap_vert,fragmentShader:Ni.meshmatcap_frag},points:{uniforms:aa([hn.points,hn.fog]),vertexShader:Ni.points_vert,fragmentShader:Ni.points_frag},dashed:{uniforms:aa([hn.common,hn.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Ni.linedashed_vert,fragmentShader:Ni.linedashed_frag},depth:{uniforms:aa([hn.common,hn.displacementmap]),vertexShader:Ni.depth_vert,fragmentShader:Ni.depth_frag},normal:{uniforms:aa([hn.common,hn.bumpmap,hn.normalmap,hn.displacementmap,{opacity:{value:1}}]),vertexShader:Ni.normal_vert,fragmentShader:Ni.normal_frag},sprite:{uniforms:aa([hn.sprite,hn.fog]),vertexShader:Ni.sprite_vert,fragmentShader:Ni.sprite_frag},background:{uniforms:{uvTransform:{value:new ro},t2D:{value:null}},vertexShader:Ni.background_vert,fragmentShader:Ni.background_frag},cube:{uniforms:aa([hn.envmap,{opacity:{value:1}}]),vertexShader:Ni.cube_vert,fragmentShader:Ni.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Ni.equirect_vert,fragmentShader:Ni.equirect_frag},distanceRGBA:{uniforms:aa([hn.common,hn.displacementmap,{referencePosition:{value:new Y},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:Ni.distanceRGBA_vert,fragmentShader:Ni.distanceRGBA_frag},shadow:{uniforms:aa([hn.lights,hn.fog,{color:{value:new rn(0)},opacity:{value:1}}]),vertexShader:Ni.shadow_vert,fragmentShader:Ni.shadow_frag}};function WSe(t,n,e,i,r){const o=new rn(0);let a,l,s=0,c=null,d=0,u=null;function m(A,v){e.buffers.color.setClear(A.r,A.g,A.b,v,r)}return{getClearColor:function(){return o},setClearColor:function(A,v=1){o.set(A),s=v,m(o,s)},getClearAlpha:function(){return s},setClearAlpha:function(A){s=A,m(o,s)},render:function h(A,v,x,C){let w=!0===v.isScene?v.background:null;w&&w.isTexture&&(w=n.get(w));const S=t.xr,M=S.getSession&&S.getSession();M&&"additive"===M.environmentBlendMode&&(w=null),null===w?m(o,s):w&&w.isColor&&(m(w,1),C=!0),(t.autoClear||C)&&t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil),w&&(w.isCubeTexture||w.isWebGLCubeRenderTarget||w.mapping===K0)?(void 0===l&&(l=new Ci(new sc(1,1,1),new Ls({name:"BackgroundCubeMaterial",uniforms:db(Wc.cube.uniforms),vertexShader:Wc.cube.vertexShader,fragmentShader:Wc.cube.fragmentShader,side:Wo,depthTest:!1,depthWrite:!1,fog:!1})),l.geometry.deleteAttribute("normal"),l.geometry.deleteAttribute("uv"),l.onBeforeRender=function(B,P,$){this.matrixWorld.copyPosition($.matrixWorld)},Object.defineProperty(l.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),i.update(l)),w.isWebGLCubeRenderTarget&&(w=w.texture),l.material.uniforms.envMap.value=w,l.material.uniforms.flipEnvMap.value=w.isCubeTexture&&w._needsFlipEnvMap?-1:1,(c!==w||d!==w.version||u!==t.toneMapping)&&(l.material.needsUpdate=!0,c=w,d=w.version,u=t.toneMapping),A.unshift(l,l.geometry,l.material,0,0,null)):w&&w.isTexture&&(void 0===a&&(a=new Ci(new sm(2,2),new Ls({name:"BackgroundMaterial",uniforms:db(Wc.background.uniforms),vertexShader:Wc.background.vertexShader,fragmentShader:Wc.background.fragmentShader,side:$0,depthTest:!1,depthWrite:!1,fog:!1})),a.geometry.deleteAttribute("normal"),Object.defineProperty(a.material,"map",{get:function(){return this.uniforms.t2D.value}}),i.update(a)),a.material.uniforms.t2D.value=w,!0===w.matrixAutoUpdate&&w.updateMatrix(),a.material.uniforms.uvTransform.value.copy(w.matrix),(c!==w||d!==w.version||u!==t.toneMapping)&&(a.material.needsUpdate=!0,c=w,d=w.version,u=t.toneMapping),A.unshift(a,a.geometry,a.material,0,0,null))}}}function $Se(t,n,e,i){const r=t.getParameter(34921),o=i.isWebGL2?null:n.get("OES_vertex_array_object"),s=i.isWebGL2||null!==o,a={},l=v(null);let c=l;function h(we){return i.isWebGL2?t.bindVertexArray(we):o.bindVertexArrayOES(we)}function m(we){return i.isWebGL2?t.deleteVertexArray(we):o.deleteVertexArrayOES(we)}function v(we){const j=[],me=[],X=[];for(let Ae=0;Ae=0){const fe=Ae[ht];if(void 0!==fe){const ie=fe.normalized,Ne=fe.itemSize,nt=e.get(fe);if(void 0===nt)continue;const pe=nt.buffer,dt=nt.type,Pt=nt.bytesPerElement;if(fe.isInterleavedBufferAttribute){const Vt=fe.data,Ht=Vt.stride,$t=fe.offset;Vt&&Vt.isInstancedInterleavedBuffer?(M(ye,Vt.meshPerAttribute),void 0===X._maxInstanceCount&&(X._maxInstanceCount=Vt.meshPerAttribute*Vt.count)):S(ye),t.bindBuffer(34962,pe),P(ye,Ne,dt,ie,Ht*Pt,$t*Pt)}else fe.isInstancedBufferAttribute?(M(ye,fe.meshPerAttribute),void 0===X._maxInstanceCount&&(X._maxInstanceCount=fe.meshPerAttribute*fe.count)):S(ye),t.bindBuffer(34962,pe),P(ye,Ne,dt,ie,0,0)}else if("instanceMatrix"===ht){const ie=e.get(we.instanceMatrix);if(void 0===ie)continue;const Ne=ie.buffer,nt=ie.type;M(ye+0,1),M(ye+1,1),M(ye+2,1),M(ye+3,1),t.bindBuffer(34962,Ne),t.vertexAttribPointer(ye+0,4,nt,!1,64,0),t.vertexAttribPointer(ye+1,4,nt,!1,64,16),t.vertexAttribPointer(ye+2,4,nt,!1,64,32),t.vertexAttribPointer(ye+3,4,nt,!1,64,48)}else if("instanceColor"===ht){const ie=e.get(we.instanceColor);if(void 0===ie)continue;const Ne=ie.buffer,nt=ie.type;M(ye,1),t.bindBuffer(34962,Ne),t.vertexAttribPointer(ye,3,nt,!1,12,0)}else if(void 0!==Qe){const ie=Qe[ht];if(void 0!==ie)switch(ie.length){case 2:t.vertexAttrib2fv(ye,ie);break;case 3:t.vertexAttrib3fv(ye,ie);break;case 4:t.vertexAttrib4fv(ye,ie);break;default:t.vertexAttrib1fv(ye,ie)}}}}B()}(we,j,me,X),null!==Ae&&t.bindBuffer(34963,e.get(Ae).buffer))},reset:ne,resetDefaultState:Ce,dispose:function ee(){ne();for(const we in a){const j=a[we];for(const me in j){const X=j[me];for(const Ae in X)m(X[Ae].object),delete X[Ae];delete j[me]}delete a[we]}},releaseStatesOfGeometry:function te(we){if(void 0===a[we.id])return;const j=a[we.id];for(const me in j){const X=j[me];for(const Ae in X)m(X[Ae].object),delete X[Ae];delete j[me]}delete a[we.id]},releaseStatesOfProgram:function re(we){for(const j in a){const me=a[j];if(void 0===me[we.id])continue;const X=me[we.id];for(const Ae in X)m(X[Ae].object),delete X[Ae];delete me[we.id]}},initAttributes:w,enableAttribute:S,disableUnusedAttributes:B}}function jSe(t,n,e,i){const r=i.isWebGL2;let o;this.setMode=function s(c){o=c},this.render=function a(c,d){t.drawArrays(o,c,d),e.update(d,o,1)},this.renderInstances=function l(c,d,u){if(0===u)return;let h,m;if(r)h=t,m="drawArraysInstanced";else if(h=n.get("ANGLE_instanced_arrays"),m="drawArraysInstancedANGLE",null===h)return void console.error("THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");h[m](o,c,d,u),e.update(d,o,u)}}function KSe(t,n,e){let i;function o(P){if("highp"===P){if(t.getShaderPrecisionFormat(35633,36338).precision>0&&t.getShaderPrecisionFormat(35632,36338).precision>0)return"highp";P="mediump"}return"mediump"===P&&t.getShaderPrecisionFormat(35633,36337).precision>0&&t.getShaderPrecisionFormat(35632,36337).precision>0?"mediump":"lowp"}const s=typeof WebGL2RenderingContext<"u"&&t instanceof WebGL2RenderingContext||typeof WebGL2ComputeRenderingContext<"u"&&t instanceof WebGL2ComputeRenderingContext;let a=void 0!==e.precision?e.precision:"highp";const l=o(a);l!==a&&(console.warn("THREE.WebGLRenderer:",a,"not supported, using",l,"instead."),a=l);const c=!0===e.logarithmicDepthBuffer,d=t.getParameter(34930),u=t.getParameter(35660),h=t.getParameter(3379),m=t.getParameter(34076),A=t.getParameter(34921),v=t.getParameter(36347),x=t.getParameter(36348),C=t.getParameter(36349),w=u>0,S=s||n.has("OES_texture_float");return{isWebGL2:s,getMaxAnisotropy:function r(){if(void 0!==i)return i;if(!0===n.has("EXT_texture_filter_anisotropic")){const P=n.get("EXT_texture_filter_anisotropic");i=t.getParameter(P.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else i=0;return i},getMaxPrecision:o,precision:a,logarithmicDepthBuffer:c,maxTextures:d,maxVertexTextures:u,maxTextureSize:h,maxCubemapSize:m,maxAttributes:A,maxVertexUniforms:v,maxVaryings:x,maxFragmentUniforms:C,vertexTextures:w,floatFragmentTextures:S,floatVertexTextures:w&&S,maxSamples:s?t.getParameter(36183):0}}function XSe(t){const n=this;let e=null,i=0,r=!1,o=!1;const s=new Qc,a=new ro,l={value:null,needsUpdate:!1};function c(){l.value!==e&&(l.value=e,l.needsUpdate=i>0),n.numPlanes=i,n.numIntersection=0}function d(u,h,m,A){const v=null!==u?u.length:0;let x=null;if(0!==v){if(x=l.value,!0!==A||null===x){const C=m+4*v,w=h.matrixWorldInverse;a.getNormalMatrix(w),(null===x||x.length0){const c=t.getRenderTarget(),d=new eT(l.height/2);return d.fromEquirectangularTexture(t,s),n.set(s,d),t.setRenderTarget(c),s.addEventListener("dispose",r),e(d.texture,s.mapping)}return null}}}return s},dispose:function o(){n=new WeakMap}}}function ZSe(t){const n={};function e(i){if(void 0!==n[i])return n[i];let r;switch(i){case"WEBGL_depth_texture":r=t.getExtension("WEBGL_depth_texture")||t.getExtension("MOZ_WEBGL_depth_texture")||t.getExtension("WEBKIT_WEBGL_depth_texture");break;case"EXT_texture_filter_anisotropic":r=t.getExtension("EXT_texture_filter_anisotropic")||t.getExtension("MOZ_EXT_texture_filter_anisotropic")||t.getExtension("WEBKIT_EXT_texture_filter_anisotropic");break;case"WEBGL_compressed_texture_s3tc":r=t.getExtension("WEBGL_compressed_texture_s3tc")||t.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||t.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");break;case"WEBGL_compressed_texture_pvrtc":r=t.getExtension("WEBGL_compressed_texture_pvrtc")||t.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");break;default:r=t.getExtension(i)}return n[i]=r,r}return{has:function(i){return null!==e(i)},init:function(i){i.isWebGL2?e("EXT_color_buffer_float"):(e("WEBGL_depth_texture"),e("OES_texture_float"),e("OES_texture_half_float"),e("OES_texture_half_float_linear"),e("OES_standard_derivatives"),e("OES_element_index_uint"),e("OES_vertex_array_object"),e("ANGLE_instanced_arrays")),e("OES_texture_float_linear"),e("EXT_color_buffer_half_float")},get:function(i){const r=e(i);return null===r&&console.warn("THREE.WebGLRenderer: "+i+" extension not supported."),r}}}function JSe(t,n,e,i){const r={},o=new WeakMap;function s(u){const h=u.target;null!==h.index&&n.remove(h.index);for(const A in h.attributes)n.remove(h.attributes[A]);h.removeEventListener("dispose",s),delete r[h.id];const m=o.get(h);m&&(n.remove(m),o.delete(h)),i.releaseStatesOfGeometry(h),!0===h.isInstancedBufferGeometry&&delete h._maxInstanceCount,e.memory.geometries--}function c(u){const h=[],m=u.index,A=u.attributes.position;let v=0;if(null!==m){const w=m.array;v=m.version;for(let S=0,M=w.length;S65535?lA:aA)(h,1);x.version=v;const C=o.get(u);C&&n.remove(C),o.set(u,x)}return{get:function a(u,h){return!0===r[h.id]||(h.addEventListener("dispose",s),r[h.id]=!0,e.memory.geometries++),h},update:function l(u){const h=u.attributes;for(const A in h)n.update(h[A],34962);const m=u.morphAttributes;for(const A in m){const v=m[A];for(let x=0,C=v.length;x0)return t;const r=n*e;let o=sY[r];if(void 0===o&&(o=new Float32Array(r),sY[r]=o),0!==n){i.toArray(o,0);for(let s=1,a=0;s!==n;++s)a+=e,t[s].toArray(o,a)}return o}function ac(t,n){if(t.length!==n.length)return!1;for(let e=0,i=t.length;e/gm;function qP(t){return t.replace(jTe,KTe)}function KTe(t,n){const e=Ni[n];if(void 0===e)throw new Error("Can not resolve #include <"+n+">");return qP(e)}const XTe=/#pragma unroll_loop[\s]+?for \( int i \= (\d+)\; i < (\d+)\; i \+\+ \) \{([\s\S]+?)(?=\})\}/g,YTe=/#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 vY(t){return t.replace(YTe,yY).replace(XTe,ZTe)}function ZTe(t,n,e,i){return console.warn("WebGLProgram: #pragma unroll_loop shader syntax is deprecated. Please use #pragma unroll_loop_start syntax instead."),yY(0,n,e,i)}function yY(t,n,e,i){let r="";for(let o=parseInt(n);o0?t.gammaFactor:1,m=e.isWebGL2?"":function qTe(t){return[t.extensionDerivatives||t.envMapCubeUV||t.bumpMap||t.tangentSpaceNormalMap||t.clearcoatNormalMap||t.flatShading||"physical"===t.shaderID?"#extension GL_OES_standard_derivatives : enable":"",(t.extensionFragDepth||t.logarithmicDepthBuffer)&&t.rendererExtensionFragDepth?"#extension GL_EXT_frag_depth : enable":"",t.extensionDrawBuffers&&t.rendererExtensionDrawBuffers?"#extension GL_EXT_draw_buffers : require":"",(t.extensionShaderTextureLOD||t.envMap)&&t.rendererExtensionShaderTextureLod?"#extension GL_EXT_shader_texture_lod : enable":""].filter(bw).join("\n")}(e),A=function WTe(t){const n=[];for(const e in t){const i=t[e];!1!==i&&n.push("#define "+e+" "+i)}return n.join("\n")}(o),v=r.createProgram();let x,C,w=e.glslVersion?"#version "+e.glslVersion+"\n":"";e.isRawShaderMaterial?(x=[A].filter(bw).join("\n"),x.length>0&&(x+="\n"),C=[m,A].filter(bw).join("\n"),C.length>0&&(C+="\n")):(x=[wY(e),"#define SHADER_NAME "+e.shaderName,A,e.instancing?"#define USE_INSTANCING":"",e.instancingColor?"#define USE_INSTANCING_COLOR":"",e.supportsVertexTextures?"#define VERTEX_TEXTURES":"","#define GAMMA_FACTOR "+h,"#define MAX_BONES "+e.maxBones,e.useFog&&e.fog?"#define USE_FOG":"",e.useFog&&e.fogExp2?"#define FOG_EXP2":"",e.map?"#define USE_MAP":"",e.envMap?"#define USE_ENVMAP":"",e.envMap?"#define "+d:"",e.lightMap?"#define USE_LIGHTMAP":"",e.aoMap?"#define USE_AOMAP":"",e.emissiveMap?"#define USE_EMISSIVEMAP":"",e.bumpMap?"#define USE_BUMPMAP":"",e.normalMap?"#define USE_NORMALMAP":"",e.normalMap&&e.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",e.normalMap&&e.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",e.clearcoatMap?"#define USE_CLEARCOATMAP":"",e.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",e.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",e.displacementMap&&e.supportsVertexTextures?"#define USE_DISPLACEMENTMAP":"",e.specularMap?"#define USE_SPECULARMAP":"",e.roughnessMap?"#define USE_ROUGHNESSMAP":"",e.metalnessMap?"#define USE_METALNESSMAP":"",e.alphaMap?"#define USE_ALPHAMAP":"",e.transmissionMap?"#define USE_TRANSMISSIONMAP":"",e.vertexTangents?"#define USE_TANGENT":"",e.vertexColors?"#define USE_COLOR":"",e.vertexUvs?"#define USE_UV":"",e.uvsVertexOnly?"#define UVS_VERTEX_ONLY":"",e.flatShading?"#define FLAT_SHADED":"",e.skinning?"#define USE_SKINNING":"",e.useVertexTexture?"#define BONE_TEXTURE":"",e.morphTargets?"#define USE_MORPHTARGETS":"",e.morphNormals&&!1===e.flatShading?"#define USE_MORPHNORMALS":"",e.doubleSided?"#define DOUBLE_SIDED":"",e.flipSided?"#define FLIP_SIDED":"",e.shadowMapEnabled?"#define USE_SHADOWMAP":"",e.shadowMapEnabled?"#define "+l:"",e.sizeAttenuation?"#define USE_SIZEATTENUATION":"",e.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",e.logarithmicDepthBuffer&&e.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","#ifdef USE_COLOR","\tattribute vec3 color;","#endif","#ifdef USE_MORPHTARGETS","\tattribute vec3 morphTarget0;","\tattribute vec3 morphTarget1;","\tattribute vec3 morphTarget2;","\tattribute vec3 morphTarget3;","\t#ifdef USE_MORPHNORMALS","\t\tattribute vec3 morphNormal0;","\t\tattribute vec3 morphNormal1;","\t\tattribute vec3 morphNormal2;","\t\tattribute vec3 morphNormal3;","\t#else","\t\tattribute vec3 morphTarget4;","\t\tattribute vec3 morphTarget5;","\t\tattribute vec3 morphTarget6;","\t\tattribute vec3 morphTarget7;","\t#endif","#endif","#ifdef USE_SKINNING","\tattribute vec4 skinIndex;","\tattribute vec4 skinWeight;","#endif","\n"].filter(bw).join("\n"),C=[m,wY(e),"#define SHADER_NAME "+e.shaderName,A,e.alphaTest?"#define ALPHATEST "+e.alphaTest+(e.alphaTest%1?"":".0"):"","#define GAMMA_FACTOR "+h,e.useFog&&e.fog?"#define USE_FOG":"",e.useFog&&e.fogExp2?"#define FOG_EXP2":"",e.map?"#define USE_MAP":"",e.matcap?"#define USE_MATCAP":"",e.envMap?"#define USE_ENVMAP":"",e.envMap?"#define "+c:"",e.envMap?"#define "+d:"",e.envMap?"#define "+u:"",e.lightMap?"#define USE_LIGHTMAP":"",e.aoMap?"#define USE_AOMAP":"",e.emissiveMap?"#define USE_EMISSIVEMAP":"",e.bumpMap?"#define USE_BUMPMAP":"",e.normalMap?"#define USE_NORMALMAP":"",e.normalMap&&e.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",e.normalMap&&e.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",e.clearcoatMap?"#define USE_CLEARCOATMAP":"",e.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",e.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",e.specularMap?"#define USE_SPECULARMAP":"",e.roughnessMap?"#define USE_ROUGHNESSMAP":"",e.metalnessMap?"#define USE_METALNESSMAP":"",e.alphaMap?"#define USE_ALPHAMAP":"",e.sheen?"#define USE_SHEEN":"",e.transmissionMap?"#define USE_TRANSMISSIONMAP":"",e.vertexTangents?"#define USE_TANGENT":"",e.vertexColors||e.instancingColor?"#define USE_COLOR":"",e.vertexUvs?"#define USE_UV":"",e.uvsVertexOnly?"#define UVS_VERTEX_ONLY":"",e.gradientMap?"#define USE_GRADIENTMAP":"",e.flatShading?"#define FLAT_SHADED":"",e.doubleSided?"#define DOUBLE_SIDED":"",e.flipSided?"#define FLIP_SIDED":"",e.shadowMapEnabled?"#define USE_SHADOWMAP":"",e.shadowMapEnabled?"#define "+l:"",e.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",e.physicallyCorrectLights?"#define PHYSICALLY_CORRECT_LIGHTS":"",e.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",e.logarithmicDepthBuffer&&e.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"",(e.extensionShaderTextureLOD||e.envMap)&&e.rendererExtensionShaderTextureLod?"#define TEXTURE_LOD_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",e.toneMapping!==Xp?"#define TONE_MAPPING":"",e.toneMapping!==Xp?Ni.tonemapping_pars_fragment:"",e.toneMapping!==Xp?GTe("toneMapping",e.toneMapping):"",e.dithering?"#define DITHERING":"",Ni.encodings_pars_fragment,e.map?gw("mapTexelToLinear",e.mapEncoding):"",e.matcap?gw("matcapTexelToLinear",e.matcapEncoding):"",e.envMap?gw("envMapTexelToLinear",e.envMapEncoding):"",e.emissiveMap?gw("emissiveMapTexelToLinear",e.emissiveMapEncoding):"",e.lightMap?gw("lightMapTexelToLinear",e.lightMapEncoding):"",zTe("linearToOutputTexel",e.outputEncoding),e.depthPacking?"#define DEPTH_PACKING "+e.depthPacking:"","\n"].filter(bw).join("\n")),s=qP(s),s=bY(s,e),s=_Y(s,e),a=qP(a),a=bY(a,e),a=_Y(a,e),s=vY(s),a=vY(a),e.isWebGL2&&!0!==e.isRawShaderMaterial&&(w="#version 300 es\n",x=["#define attribute in","#define varying out","#define texture2D texture"].join("\n")+"\n"+x,C=["#define varying in",e.glslVersion===_P?"":"out highp vec4 pc_fragColor;",e.glslVersion===_P?"":"#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"+C);const M=w+C+a,B=pY(r,35633,w+x+s),P=pY(r,35632,M);if(r.attachShader(v,B),r.attachShader(v,P),void 0!==e.index0AttributeName?r.bindAttribLocation(v,0,e.index0AttributeName):!0===e.morphTargets&&r.bindAttribLocation(v,0,"position"),r.linkProgram(v),t.debug.checkShaderErrors){const te=r.getProgramInfoLog(v).trim(),re=r.getShaderInfoLog(B).trim(),ne=r.getShaderInfoLog(P).trim();let Ce=!0,we=!0;if(!1===r.getProgramParameter(v,35714)){Ce=!1;const j=gY(r,B,"vertex"),me=gY(r,P,"fragment");console.error("THREE.WebGLProgram: shader error: ",r.getError(),"35715",r.getProgramParameter(v,35715),"gl.getProgramInfoLog",te,j,me)}else""!==te?console.warn("THREE.WebGLProgram: gl.getProgramInfoLog()",te):(""===re||""===ne)&&(we=!1);we&&(this.diagnostics={runnable:Ce,programLog:te,vertexShader:{log:re,prefix:x},fragmentShader:{log:ne,prefix:C}})}let $,ee;return r.deleteShader(B),r.deleteShader(P),this.getUniforms=function(){return void 0===$&&($=new am(r,v)),$},this.getAttributes=function(){return void 0===ee&&(ee=function $Te(t,n){const e={},i=t.getProgramParameter(n,35721);for(let r=0;r0,maxBones:me,useVertexTexture:c,morphTargets:P.morphTargets,morphNormals:P.morphNormals,maxMorphTargets:t.maxMorphTargets,maxMorphNormals:t.maxMorphNormals,numDirLights:$.directional.length,numPointLights:$.point.length,numSpotLights:$.spot.length,numRectAreaLights:$.rectArea.length,numHemiLights:$.hemi.length,numDirLightShadows:$.directionalShadowMap.length,numPointLightShadows:$.pointShadowMap.length,numSpotLightShadows:$.spotShadowMap.length,numClippingPlanes:o.numPlanes,numClipIntersection:o.numIntersection,dithering:P.dithering,shadowMapEnabled:t.shadowMap.enabled&&ee.length>0,shadowMapType:t.shadowMap.type,toneMapping:P.toneMapped?t.toneMapping:Xp,physicallyCorrectLights:t.physicallyCorrectLights,premultipliedAlpha:P.premultipliedAlpha,alphaTest:P.alphaTest,doubleSided:P.side===G1,flipSided:P.side===Wo,depthPacking:void 0!==P.depthPacking&&P.depthPacking,index0AttributeName:P.index0AttributeName,extensionDerivatives:P.extensions&&P.extensions.derivatives,extensionFragDepth:P.extensions&&P.extensions.fragDepth,extensionDrawBuffers:P.extensions&&P.extensions.drawBuffers,extensionShaderTextureLOD:P.extensions&&P.extensions.shaderTextureLOD,rendererExtensionFragDepth:a||e.has("EXT_frag_depth"),rendererExtensionDrawBuffers:a||e.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:a||e.has("EXT_shader_texture_lod"),customProgramCacheKey:P.customProgramCacheKey()}},getProgramCacheKey:function w(P){const $=[];if(P.shaderID?$.push(P.shaderID):($.push(P.fragmentShader),$.push(P.vertexShader)),void 0!==P.defines)for(const ee in P.defines)$.push(ee),$.push(P.defines[ee]);if(!1===P.isRawShaderMaterial){for(let ee=0;ee1&&i.sort(h||sFe),r.length>1&&r.sort(m||aFe)}}}function lFe(t){let n=new WeakMap;return{get:function e(r,o){let s;return!1===n.has(r)?(s=new xY(t),n.set(r,[s])):o>=n.get(r).length?(s=new xY(t),n.get(r).push(s)):s=n.get(r)[o],s},dispose:function i(){n=new WeakMap}}}function cFe(){const t={};return{get:function(n){if(void 0!==t[n.id])return t[n.id];let e;switch(n.type){case"DirectionalLight":e={direction:new Y,color:new rn};break;case"SpotLight":e={position:new Y,direction:new Y,color:new rn,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":e={position:new Y,color:new rn,distance:0,decay:0};break;case"HemisphereLight":e={direction:new Y,skyColor:new rn,groundColor:new rn};break;case"RectAreaLight":e={color:new rn,position:new Y,halfWidth:new Y,halfHeight:new Y}}return t[n.id]=e,e}}}let uFe=0;function hFe(t,n){return(n.castShadow?1:0)-(t.castShadow?1:0)}function fFe(t,n){const e=new cFe,i=function dFe(){const t={};return{get:function(n){if(void 0!==t[n.id])return t[n.id];let e;switch(n.type){case"DirectionalLight":case"SpotLight":e={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new ut};break;case"PointLight":e={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new ut,shadowCameraNear:1,shadowCameraFar:1e3}}return t[n.id]=e,e}}}(),r={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotShadow:[],spotShadowMap:[],spotShadowMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[]};for(let d=0;d<9;d++)r.probe.push(new Y);const o=new Y,s=new Hn,a=new Hn;return{setup:function l(d){let u=0,h=0,m=0;for(let $=0;$<9;$++)r.probe[$].set(0,0,0);let A=0,v=0,x=0,C=0,w=0,S=0,M=0,B=0;d.sort(hFe);for(let $=0,ee=d.length;$0&&(n.isWebGL2||!0===t.has("OES_texture_float_linear")?(r.rectAreaLTC1=hn.LTC_FLOAT_1,r.rectAreaLTC2=hn.LTC_FLOAT_2):!0===t.has("OES_texture_half_float_linear")?(r.rectAreaLTC1=hn.LTC_HALF_1,r.rectAreaLTC2=hn.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),r.ambient[0]=u,r.ambient[1]=h,r.ambient[2]=m;const P=r.hash;(P.directionalLength!==A||P.pointLength!==v||P.spotLength!==x||P.rectAreaLength!==C||P.hemiLength!==w||P.numDirectionalShadows!==S||P.numPointShadows!==M||P.numSpotShadows!==B)&&(r.directional.length=A,r.spot.length=x,r.rectArea.length=C,r.point.length=v,r.hemi.length=w,r.directionalShadow.length=S,r.directionalShadowMap.length=S,r.pointShadow.length=M,r.pointShadowMap.length=M,r.spotShadow.length=B,r.spotShadowMap.length=B,r.directionalShadowMatrix.length=S,r.pointShadowMatrix.length=M,r.spotShadowMatrix.length=B,P.directionalLength=A,P.pointLength=v,P.spotLength=x,P.rectAreaLength=C,P.hemiLength=w,P.numDirectionalShadows=S,P.numPointShadows=M,P.numSpotShadows=B,r.version=uFe++)},setupView:function c(d,u){let h=0,m=0,A=0,v=0,x=0;const C=u.matrixWorldInverse;for(let w=0,S=d.length;w=e.get(o).length?(a=new CY(t,n),e.get(o).push(a)):a=e.get(o)[s],a},dispose:function r(){e=new WeakMap}}}class nT extends oo{constructor(n){super(),this.type="MeshDepthMaterial",this.depthPacking=HX,this.skinning=!1,this.morphTargets=!1,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.setValues(n)}copy(n){return super.copy(n),this.depthPacking=n.depthPacking,this.skinning=n.skinning,this.morphTargets=n.morphTargets,this.map=n.map,this.alphaMap=n.alphaMap,this.displacementMap=n.displacementMap,this.displacementScale=n.displacementScale,this.displacementBias=n.displacementBias,this.wireframe=n.wireframe,this.wireframeLinewidth=n.wireframeLinewidth,this}}nT.prototype.isMeshDepthMaterial=!0;class iT extends oo{constructor(n){super(),this.type="MeshDistanceMaterial",this.referencePosition=new Y,this.nearDistance=1,this.farDistance=1e3,this.skinning=!1,this.morphTargets=!1,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.fog=!1,this.setValues(n)}copy(n){return super.copy(n),this.referencePosition.copy(n.referencePosition),this.nearDistance=n.nearDistance,this.farDistance=n.farDistance,this.skinning=n.skinning,this.morphTargets=n.morphTargets,this.map=n.map,this.alphaMap=n.alphaMap,this.displacementMap=n.displacementMap,this.displacementScale=n.displacementScale,this.displacementBias=n.displacementBias,this}}iT.prototype.isMeshDistanceMaterial=!0;var pFe="uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include \nvoid main() {\n\tfloat mean = 0.0;\n\tfloat squared_mean = 0.0;\n\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy ) / resolution ) );\n\tfor ( float i = -1.0; i < 1.0 ; i += SAMPLE_RATE) {\n\t\t#ifdef HORIZONTAL_PASS\n\t\t\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( i, 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, i ) * radius ) / resolution ) );\n\t\t\tmean += depth;\n\t\t\tsquared_mean += depth * depth;\n\t\t#endif\n\t}\n\tmean = mean * HALF_SAMPLE_RATE;\n\tsquared_mean = squared_mean * HALF_SAMPLE_RATE;\n\tfloat std_dev = sqrt( squared_mean - mean * mean );\n\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}",AFe="void main() {\n\tgl_Position = vec4( position, 1.0 );\n}";function EY(t,n,e){let i=new Aw;const r=new ut,o=new ut,s=new Cr,a=[],l=[],c={},d={0:Wo,1:$0,2:G1},u=new Ls({defines:{SAMPLE_RATE:2/8,HALF_SAMPLE_RATE:1/8},uniforms:{shadow_pass:{value:null},resolution:{value:new ut},radius:{value:4}},vertexShader:AFe,fragmentShader:pFe}),h=u.clone();h.defines.HORIZONTAL_PASS=1;const m=new Bn;m.setAttribute("position",new Nn(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const A=new Ci(m,u),v=this;function x(B,P){const $=n.update(A);u.uniforms.shadow_pass.value=B.map.texture,u.uniforms.resolution.value=B.mapSize,u.uniforms.radius.value=B.radius,t.setRenderTarget(B.mapPass),t.clear(),t.renderBufferDirect(P,null,$,u,A,null),h.uniforms.shadow_pass.value=B.mapPass.texture,h.uniforms.resolution.value=B.mapSize,h.uniforms.radius.value=B.radius,t.setRenderTarget(B.map),t.clear(),t.renderBufferDirect(P,null,$,h,A,null)}function C(B,P,$){const ee=B|P<<1|$<<2;let te=a[ee];return void 0===te&&(te=new nT({depthPacking:VX,morphTargets:B,skinning:P}),a[ee]=te),te}function w(B,P,$){const ee=B|P<<1|$<<2;let te=l[ee];return void 0===te&&(te=new iT({morphTargets:B,skinning:P}),l[ee]=te),te}function S(B,P,$,ee,te,re,ne){let Ce=null,we=C,j=B.customDepthMaterial;if(!0===ee.isPointLight&&(we=w,j=B.customDistanceMaterial),void 0===j){let me=!1;!0===$.morphTargets&&(me=P.morphAttributes&&P.morphAttributes.position&&P.morphAttributes.position.length>0);let X=!1;!0===B.isSkinnedMesh&&(!0===$.skinning?X=!0:console.warn("THREE.WebGLShadowMap: THREE.SkinnedMesh with material.skinning set to false:",B)),Ce=we(me,X,!0===B.isInstancedMesh)}else Ce=j;if(t.localClippingEnabled&&!0===$.clipShadows&&0!==$.clippingPlanes.length){const me=Ce.uuid,X=$.uuid;let Ae=c[me];void 0===Ae&&(Ae={},c[me]=Ae);let ke=Ae[X];void 0===ke&&(ke=Ce.clone(),Ae[X]=ke),Ce=ke}return Ce.visible=$.visible,Ce.wireframe=$.wireframe,Ce.side=ne===W0?null!==$.shadowSide?$.shadowSide:$.side:null!==$.shadowSide?$.shadowSide:d[$.side],Ce.clipShadows=$.clipShadows,Ce.clippingPlanes=$.clippingPlanes,Ce.clipIntersection=$.clipIntersection,Ce.wireframeLinewidth=$.wireframeLinewidth,Ce.linewidth=$.linewidth,!0===ee.isPointLight&&!0===Ce.isMeshDistanceMaterial&&(Ce.referencePosition.setFromMatrixPosition(ee.matrixWorld),Ce.nearDistance=te,Ce.farDistance=re),Ce}function M(B,P,$,ee,te){if(!1===B.visible)return;if(B.layers.test(P.layers)&&(B.isMesh||B.isLine||B.isPoints)&&(B.castShadow||B.receiveShadow&&te===W0)&&(!B.frustumCulled||i.intersectsObject(B))){B.modelViewMatrix.multiplyMatrices($.matrixWorldInverse,B.matrixWorld);const Ce=n.update(B),we=B.material;if(Array.isArray(we)){const j=Ce.groups;for(let me=0,X=j.length;mee||r.y>e)&&(r.x>e&&(o.x=Math.floor(e/X.x),r.x=o.x*X.x,me.mapSize.x=o.x),r.y>e&&(o.y=Math.floor(e/X.y),r.y=o.y*X.y,me.mapSize.y=o.y)),null===me.map&&!me.isPointLightShadow&&this.type===W0){const ke={minFilter:Ro,magFilter:Ro,format:Fa};me.map=new Hc(r.x,r.y,ke),me.map.texture.name=j.name+".shadowMap",me.mapPass=new Hc(r.x,r.y,ke),me.camera.updateProjectionMatrix()}null===me.map&&(me.map=new Hc(r.x,r.y,{minFilter:vs,magFilter:vs,format:Fa}),me.map.texture.name=j.name+".shadowMap",me.camera.updateProjectionMatrix()),t.setRenderTarget(me.map),t.clear();const Ae=me.getViewportCount();for(let ke=0;ke=1):-1!==we.indexOf("OpenGL ES")&&(Ce=parseFloat(/^OpenGL ES (\d)/.exec(we)[1]),ne=Ce>=2);let j=null,me={};const X=new Cr,Ae=new Cr;function ke(qe,Kt,Ot){const en=new Uint8Array(4),wt=t.createTexture();t.bindTexture(qe,wt),t.texParameteri(qe,10241,9728),t.texParameteri(qe,10240,9728);for(let Cn=0;CnSe||de.height>Se)&&(qe=Se/Math.max(de.width,de.height)),qe<1||!0===ae){if(typeof HTMLImageElement<"u"&&de instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&de instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&de instanceof ImageBitmap){const Kt=ae?Jn.floorPowerOfTwo:Math.floor,Ot=Kt(qe*de.width),en=Kt(qe*de.height);void 0===m&&(m=v(Ot,en));const wt=Rt?v(Ot,en):m;return wt.width=Ot,wt.height=en,wt.getContext("2d").drawImage(de,0,0,Ot,en),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+de.width+"x"+de.height+") to ("+Ot+"x"+en+")."),wt}return"data"in de&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+de.width+"x"+de.height+")."),de}return de}function C(de){return Jn.isPowerOfTwo(de.width)&&Jn.isPowerOfTwo(de.height)}function S(de,ae){return de.generateMipmaps&&ae&&de.minFilter!==vs&&de.minFilter!==Ro}function M(de,ae,Rt,Se){t.generateMipmap(de),i.get(ae).__maxMipLevel=Math.log2(Math.max(Rt,Se))}function B(de,ae,Rt){if(!1===a)return ae;if(null!==de){if(void 0!==t[de])return t[de];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+de+"'")}let Se=ae;return 6403===ae&&(5126===Rt&&(Se=33326),5131===Rt&&(Se=33325),5121===Rt&&(Se=33321)),6407===ae&&(5126===Rt&&(Se=34837),5131===Rt&&(Se=34843),5121===Rt&&(Se=32849)),6408===ae&&(5126===Rt&&(Se=34836),5131===Rt&&(Se=34842),5121===Rt&&(Se=32856)),(33325===Se||33326===Se||34842===Se||34836===Se)&&n.get("EXT_color_buffer_float"),Se}function P(de){return de===vs||de===TS||de===FS?9728:9729}function $(de){const ae=de.target;ae.removeEventListener("dispose",$),function te(de){const ae=i.get(de);void 0!==ae.__webglInit&&(t.deleteTexture(ae.__webglTexture),i.remove(de))}(ae),ae.isVideoTexture&&h.delete(ae),s.memory.textures--}function ee(de){const ae=de.target;ae.removeEventListener("dispose",ee),function re(de){const ae=de.texture,Rt=i.get(de),Se=i.get(ae);if(de){if(void 0!==Se.__webglTexture&&t.deleteTexture(Se.__webglTexture),de.depthTexture&&de.depthTexture.dispose(),de.isWebGLCubeRenderTarget)for(let qe=0;qe<6;qe++)t.deleteFramebuffer(Rt.__webglFramebuffer[qe]),Rt.__webglDepthbuffer&&t.deleteRenderbuffer(Rt.__webglDepthbuffer[qe]);else t.deleteFramebuffer(Rt.__webglFramebuffer),Rt.__webglDepthbuffer&&t.deleteRenderbuffer(Rt.__webglDepthbuffer),Rt.__webglMultisampledFramebuffer&&t.deleteFramebuffer(Rt.__webglMultisampledFramebuffer),Rt.__webglColorRenderbuffer&&t.deleteRenderbuffer(Rt.__webglColorRenderbuffer),Rt.__webglDepthRenderbuffer&&t.deleteRenderbuffer(Rt.__webglDepthRenderbuffer);i.remove(ae),i.remove(de)}}(ae),s.memory.textures--}let ne=0;function j(de,ae){const Rt=i.get(de);if(de.isVideoTexture&&function rt(de){const ae=s.render.frame;h.get(de)!==ae&&(h.set(de,ae),de.update())}(de),de.version>0&&Rt.__version!==de.version){const Se=de.image;if(void 0===Se)console.warn("THREE.WebGLRenderer: Texture marked for update but image is undefined");else{if(!1!==Se.complete)return void fe(Rt,de,ae);console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete")}}e.activeTexture(33984+ae),e.bindTexture(3553,Rt.__webglTexture)}function Ae(de,ae){const Rt=i.get(de);de.version>0&&Rt.__version!==de.version?function ie(de,ae,Rt){if(6!==ae.image.length)return;ye(de,ae),e.activeTexture(33984+Rt),e.bindTexture(34067,de.__webglTexture),t.pixelStorei(37440,ae.flipY),t.pixelStorei(37441,ae.premultiplyAlpha),t.pixelStorei(3317,ae.unpackAlignment),t.pixelStorei(37443,0);const Se=ae&&(ae.isCompressedTexture||ae.image[0].isCompressedTexture),qe=ae.image[0]&&ae.image[0].isDataTexture,Kt=[];for(let jt=0;jt<6;jt++)Kt[jt]=Se||qe?qe?ae.image[jt].image:ae.image[jt]:x(ae.image[jt],!1,!0,c);const Ot=Kt[0],en=C(Ot)||a,wt=o.convert(ae.format),Cn=o.convert(ae.type),Sn=B(ae.internalFormat,wt,Cn);let Fe;if(ht(34067,ae,en),Se){for(let jt=0;jt<6;jt++){Fe=Kt[jt].mipmaps;for(let ln=0;ln1||i.get(ae).__currentAnisotropy)&&(t.texParameterf(de,Se.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(ae.anisotropy,r.getMaxAnisotropy())),i.get(ae).__currentAnisotropy=ae.anisotropy)}}function ye(de,ae){void 0===de.__webglInit&&(de.__webglInit=!0,ae.addEventListener("dispose",$),de.__webglTexture=t.createTexture(),s.memory.textures++)}function fe(de,ae,Rt){let Se=3553;ae.isDataTexture2DArray&&(Se=35866),ae.isDataTexture3D&&(Se=32879),ye(de,ae),e.activeTexture(33984+Rt),e.bindTexture(Se,de.__webglTexture),t.pixelStorei(37440,ae.flipY),t.pixelStorei(37441,ae.premultiplyAlpha),t.pixelStorei(3317,ae.unpackAlignment),t.pixelStorei(37443,0);const qe=function w(de){return!a&&(de.wrapS!==Ta||de.wrapT!==Ta||de.minFilter!==vs&&de.minFilter!==Ro)}(ae)&&!1===C(ae.image),Kt=x(ae.image,qe,!1,d),Ot=C(Kt)||a,en=o.convert(ae.format);let Sn,wt=o.convert(ae.type),Cn=B(ae.internalFormat,en,wt);ht(Se,ae,Ot);const Fe=ae.mipmaps;if(ae.isDepthTexture)Cn=6402,a?Cn=ae.type===fh?36012:ae.type===Y1?33190:ae.type===Z0?35056:33189:ae.type===fh&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),ae.format===Zp&&6402===Cn&&ae.type!==X1&&ae.type!==Y1&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),ae.type=X1,wt=o.convert(ae.type)),ae.format===J0&&6402===Cn&&(Cn=34041,ae.type!==Z0&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),ae.type=Z0,wt=o.convert(ae.type))),e.texImage2D(3553,0,Cn,Kt.width,Kt.height,0,en,wt,null);else if(ae.isDataTexture)if(Fe.length>0&&Ot){for(let jt=0,ln=Fe.length;jt0&&Ot){for(let jt=0,ln=Fe.length;jt=l&&console.warn("THREE.WebGLTextures: Trying to use "+de+" texture units while this GPU supports only "+l),ne+=1,de},this.resetTextureUnits=function Ce(){ne=0},this.setTexture2D=j,this.setTexture2DArray=function me(de,ae){const Rt=i.get(de);de.version>0&&Rt.__version!==de.version?fe(Rt,de,ae):(e.activeTexture(33984+ae),e.bindTexture(35866,Rt.__webglTexture))},this.setTexture3D=function X(de,ae){const Rt=i.get(de);de.version>0&&Rt.__version!==de.version?fe(Rt,de,ae):(e.activeTexture(33984+ae),e.bindTexture(32879,Rt.__webglTexture))},this.setTextureCube=Ae,this.setupRenderTarget=function Pt(de){const ae=de.texture,Rt=i.get(de),Se=i.get(ae);de.addEventListener("dispose",ee),Se.__webglTexture=t.createTexture(),s.memory.textures++;const qe=!0===de.isWebGLCubeRenderTarget,Kt=!0===de.isWebGLMultisampleRenderTarget,Ot=ae.isDataTexture3D||ae.isDataTexture2DArray,en=C(de)||a;if(a&&ae.format===Yf&&(ae.type===fh||ae.type===Z1)&&(ae.format=Fa,console.warn("THREE.WebGLRenderer: Rendering to textures with RGB format is not supported. Using RGBA format instead.")),qe){Rt.__webglFramebuffer=[];for(let wt=0;wt<6;wt++)Rt.__webglFramebuffer[wt]=t.createFramebuffer()}else if(Rt.__webglFramebuffer=t.createFramebuffer(),Kt)if(a){Rt.__webglMultisampledFramebuffer=t.createFramebuffer(),Rt.__webglColorRenderbuffer=t.createRenderbuffer(),t.bindRenderbuffer(36161,Rt.__webglColorRenderbuffer);const wt=o.convert(ae.format),Cn=o.convert(ae.type),Sn=B(ae.internalFormat,wt,Cn),Fe=$t(de);t.renderbufferStorageMultisample(36161,Fe,Sn,de.width,de.height),t.bindFramebuffer(36160,Rt.__webglMultisampledFramebuffer),t.framebufferRenderbuffer(36160,36064,36161,Rt.__webglColorRenderbuffer),t.bindRenderbuffer(36161,null),de.depthBuffer&&(Rt.__webglDepthRenderbuffer=t.createRenderbuffer(),nt(Rt.__webglDepthRenderbuffer,de,!0)),t.bindFramebuffer(36160,null)}else console.warn("THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.");if(qe){e.bindTexture(34067,Se.__webglTexture),ht(34067,ae,en);for(let wt=0;wt<6;wt++)Ne(Rt.__webglFramebuffer[wt],de,36064,34069+wt);S(ae,en)&&M(34067,ae,de.width,de.height),e.bindTexture(34067,null)}else{let wt=3553;Ot&&(a?wt=ae.isDataTexture3D?32879:35866:console.warn("THREE.DataTexture3D and THREE.DataTexture2DArray only supported with WebGL2.")),e.bindTexture(wt,Se.__webglTexture),ht(wt,ae,en),Ne(Rt.__webglFramebuffer,de,36064,wt),S(ae,en)&&M(3553,ae,de.width,de.height),e.bindTexture(3553,null)}de.depthBuffer&&function dt(de){const ae=i.get(de),Rt=!0===de.isWebGLCubeRenderTarget;if(de.depthTexture){if(Rt)throw new Error("target.depthTexture not supported in Cube render targets");!function pe(de,ae){if(ae&&ae.isWebGLCubeRenderTarget)throw new Error("Depth Texture with cube render targets is not supported");if(t.bindFramebuffer(36160,de),!ae.depthTexture||!ae.depthTexture.isDepthTexture)throw new Error("renderTarget.depthTexture must be an instance of THREE.DepthTexture");(!i.get(ae.depthTexture).__webglTexture||ae.depthTexture.image.width!==ae.width||ae.depthTexture.image.height!==ae.height)&&(ae.depthTexture.image.width=ae.width,ae.depthTexture.image.height=ae.height,ae.depthTexture.needsUpdate=!0),j(ae.depthTexture,0);const Se=i.get(ae.depthTexture).__webglTexture;if(ae.depthTexture.format===Zp)t.framebufferTexture2D(36160,36096,3553,Se,0);else{if(ae.depthTexture.format!==J0)throw new Error("Unknown depthTexture format");t.framebufferTexture2D(36160,33306,3553,Se,0)}}(ae.__webglFramebuffer,de)}else if(Rt){ae.__webglDepthbuffer=[];for(let Se=0;Se<6;Se++)t.bindFramebuffer(36160,ae.__webglFramebuffer[Se]),ae.__webglDepthbuffer[Se]=t.createRenderbuffer(),nt(ae.__webglDepthbuffer[Se],de,!1)}else t.bindFramebuffer(36160,ae.__webglFramebuffer),ae.__webglDepthbuffer=t.createRenderbuffer(),nt(ae.__webglDepthbuffer,de,!1);t.bindFramebuffer(36160,null)}(de)},this.updateRenderTargetMipmap=function Vt(de){const ae=de.texture;if(S(ae,C(de)||a)){const Se=de.isWebGLCubeRenderTarget?34067:3553,qe=i.get(ae).__webglTexture;e.bindTexture(Se,qe),M(Se,ae,de.width,de.height),e.bindTexture(Se,null)}},this.updateMultisampleRenderTarget=function Ht(de){if(de.isWebGLMultisampleRenderTarget)if(a){const ae=i.get(de);t.bindFramebuffer(36008,ae.__webglMultisampledFramebuffer),t.bindFramebuffer(36009,ae.__webglFramebuffer);const Rt=de.width,Se=de.height;let qe=16384;de.depthBuffer&&(qe|=256),de.stencilBuffer&&(qe|=1024),t.blitFramebuffer(0,0,Rt,Se,0,0,Rt,Se,qe,9728),t.bindFramebuffer(36160,ae.__webglMultisampledFramebuffer)}else console.warn("THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.")},this.safeSetTexture2D=function Me(de,ae){de&&de.isWebGLRenderTarget&&(!1===It&&(console.warn("THREE.WebGLTextures.safeSetTexture2D: don't use render targets as textures. Use their .texture property instead."),It=!0),de=de.texture),j(de,ae)},this.safeSetTextureCube=function Re(de,ae){de&&de.isWebGLCubeRenderTarget&&(!1===mt&&(console.warn("THREE.WebGLTextures.safeSetTextureCube: don't use cube render targets as textures. Use their .texture property instead."),mt=!0),de=de.texture),Ae(de,ae)}}function MY(t,n,e){const i=e.isWebGL2;return{convert:function r(o){let s;if(o===Y0)return 5121;if(o===WK)return 32819;if(o===$K)return 32820;if(o===jK)return 33635;if(o===zK)return 5120;if(o===GK)return 5122;if(o===X1)return 5123;if(o===qK)return 5124;if(o===Y1)return 5125;if(o===fh)return 5126;if(o===Z1)return i?5131:(s=n.get("OES_texture_half_float"),null!==s?s.HALF_FLOAT_OES:null);if(o===KK)return 6406;if(o===Yf)return 6407;if(o===Fa)return 6408;if(o===XK)return 6409;if(o===YK)return 6410;if(o===Zp)return 6402;if(o===J0)return 34041;if(o===JK)return 6403;if(o===eX)return 36244;if(o===tX)return 33319;if(o===nX)return 33320;if(o===iX)return 36248;if(o===rX)return 36249;if(o===iP||o===rP||o===oP||o===sP){if(s=n.get("WEBGL_compressed_texture_s3tc"),null===s)return null;if(o===iP)return s.COMPRESSED_RGB_S3TC_DXT1_EXT;if(o===rP)return s.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(o===oP)return s.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(o===sP)return s.COMPRESSED_RGBA_S3TC_DXT5_EXT}if(o===aP||o===lP||o===cP||o===dP){if(s=n.get("WEBGL_compressed_texture_pvrtc"),null===s)return null;if(o===aP)return s.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(o===lP)return s.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(o===cP)return s.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(o===dP)return s.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}if(o===oX)return s=n.get("WEBGL_compressed_texture_etc1"),null!==s?s.COMPRESSED_RGB_ETC1_WEBGL:null;if((o===uP||o===hP)&&(s=n.get("WEBGL_compressed_texture_etc"),null!==s)){if(o===uP)return s.COMPRESSED_RGB8_ETC2;if(o===hP)return s.COMPRESSED_RGBA8_ETC2_EAC}return o===sX||o===aX||o===lX||o===cX||o===dX||o===uX||o===hX||o===fX||o===mX||o===pX||o===AX||o===gX||o===bX||o===_X||o===yX||o===wX||o===xX||o===CX||o===EX||o===MX||o===SX||o===TX||o===FX||o===kX||o===IX||o===BX||o===DX||o===RX?(s=n.get("WEBGL_compressed_texture_astc"),null!==s?o:null):o===vX?(s=n.get("EXT_texture_compression_bptc"),null!==s?o:null):o===Z0?i?34042:(s=n.get("WEBGL_depth_texture"),null!==s?s.UNSIGNED_INT_24_8_WEBGL:null):void 0}}}function rT(t=[]){Mo.call(this),this.cameras=t}rT.prototype=Object.assign(Object.create(Mo.prototype),{constructor:rT,isArrayCamera:!0});class Ps extends $n{constructor(){super(),this.type="Group"}}function _w(){this._targetRay=null,this._grip=null,this._hand=null}function SY(t,n){const e=this;let i=null,r=1,o=null,s="local-floor",a=null;const l=[],c=new Map,d=new Mo;d.layers.enable(1),d.viewport=new Cr;const u=new Mo;u.layers.enable(2),u.viewport=new Cr;const h=[d,u],m=new rT;m.layers.enable(1),m.layers.enable(2);let A=null,v=null;function x(re){const ne=c.get(re.inputSource);ne&&ne.dispatchEvent({type:re.type,data:re.inputSource})}function C(){c.forEach(function(re,ne){re.disconnect(ne)}),c.clear(),A=null,v=null,t.setFramebuffer(null),t.setRenderTarget(t.getRenderTarget()),te.stop(),e.isPresenting=!1,e.dispatchEvent({type:"sessionend"})}function w(re){const ne=i.inputSources;for(let Ce=0;Ce0&&Soe(Xi,ge,Dt),ai.length>0&&Soe(ai,ge,Dt),!0===ge.isScene&&ge.onAfterRender(v,ge,Dt),null!==M&&(It.updateRenderTargetMipmap(M),It.updateMultisampleRenderTarget(M)),Ht.buffers.depth.setTest(!0),Ht.buffers.depth.setMask(!0),Ht.buffers.color.setMask(!0),Ht.setPolygonOffset(!1),A.pop(),h=A.length>0?A[A.length-1]:null,m.pop(),u=m.length>0?m[m.length-1]:null},this.setFramebuffer=function(ge){C!==ge&&null===M&&pe.bindFramebuffer(36160,ge),C=ge},this.getActiveCubeFace=function(){return w},this.getActiveMipmapLevel=function(){return S},this.getRenderTarget=function(){return M},this.setRenderTarget=function(ge,Dt=0,vt=0){M=ge,w=Dt,S=vt,ge&&void 0===rt.get(ge).__webglFramebuffer&&It.setupRenderTarget(ge);let Nt=C,_n=!1,Xi=!1;if(ge){const ai=ge.texture;(ai.isDataTexture3D||ai.isDataTexture2DArray)&&(Xi=!0);const Ei=rt.get(ge).__webglFramebuffer;ge.isWebGLCubeRenderTarget?(Nt=Ei[Dt],_n=!0):Nt=ge.isWebGLMultisampleRenderTarget?rt.get(ge).__webglMultisampledFramebuffer:Ei,ee.copy(ge.viewport),te.copy(ge.scissor),re=ge.scissorTest}else ee.copy(X).multiplyScalar(we).floor(),te.copy(Ae).multiplyScalar(we).floor(),re=ke;if(B!==Nt&&(pe.bindFramebuffer(36160,Nt),B=Nt),Ht.viewport(ee),Ht.scissor(te),Ht.setScissorTest(re),_n){const ai=rt.get(ge.texture);pe.framebufferTexture2D(36160,36064,34069+Dt,ai.__webglTexture,vt)}else if(Xi){const ai=rt.get(ge.texture);pe.framebufferTextureLayer(36160,36064,ai.__webglTexture,vt||0,Dt||0)}},this.readRenderTargetPixels=function(ge,Dt,vt,Nt,_n,Xi,ai){if(!ge||!ge.isWebGLRenderTarget)return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let Ei=rt.get(ge).__webglFramebuffer;if(ge.isWebGLCubeRenderTarget&&void 0!==ai&&(Ei=Ei[ai]),Ei){let ki=!1;Ei!==B&&(pe.bindFramebuffer(36160,Ei),ki=!0);try{const No=ge.texture,Zr=No.format,yi=No.type;if(Zr!==Fa&&Sn.convert(Zr)!==pe.getParameter(35739))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");const Er=yi===Z1&&(Pt.has("EXT_color_buffer_half_float")||Vt.isWebGL2&&Pt.has("EXT_color_buffer_float"));if(!(yi===Y0||Sn.convert(yi)===pe.getParameter(35738)||yi===fh&&(Vt.isWebGL2||Pt.has("OES_texture_float")||Pt.has("WEBGL_color_buffer_float"))||Er))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");36053===pe.checkFramebufferStatus(36160)?Dt>=0&&Dt<=ge.width-Nt&&vt>=0&&vt<=ge.height-_n&&pe.readPixels(Dt,vt,Nt,_n,Sn.convert(Zr),Sn.convert(yi),Xi):console.error("THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete.")}finally{ki&&pe.bindFramebuffer(36160,B)}}},this.copyFramebufferToTexture=function(ge,Dt,vt=0){const Nt=Math.pow(2,-vt),_n=Math.floor(Dt.image.width*Nt),Xi=Math.floor(Dt.image.height*Nt),ai=Sn.convert(Dt.format);It.setTexture2D(Dt,0),pe.copyTexImage2D(3553,vt,ai,ge.x,ge.y,_n,Xi,0),Ht.unbindTexture()},this.copyTextureToTexture=function(ge,Dt,vt,Nt=0){const _n=Dt.image.width,Xi=Dt.image.height,ai=Sn.convert(vt.format),Ei=Sn.convert(vt.type);It.setTexture2D(vt,0),pe.pixelStorei(37440,vt.flipY),pe.pixelStorei(37441,vt.premultiplyAlpha),pe.pixelStorei(3317,vt.unpackAlignment),Dt.isDataTexture?pe.texSubImage2D(3553,Nt,ge.x,ge.y,_n,Xi,ai,Ei,Dt.image.data):Dt.isCompressedTexture?pe.compressedTexSubImage2D(3553,Nt,ge.x,ge.y,Dt.mipmaps[0].width,Dt.mipmaps[0].height,ai,Dt.mipmaps[0].data):pe.texSubImage2D(3553,Nt,ge.x,ge.y,ai,Ei,Dt.image),0===Nt&&vt.generateMipmaps&&pe.generateMipmap(3553),Ht.unbindTexture()},this.copyTextureToTexture3D=function(ge,Dt,vt,Nt,_n=0){if(v.isWebGL1Renderer)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");const{width:Xi,height:ai,data:Ei}=vt.image,ki=Sn.convert(Nt.format),No=Sn.convert(Nt.type);let Zr;if(Nt.isDataTexture3D)It.setTexture3D(Nt,0),Zr=32879;else{if(!Nt.isDataTexture2DArray)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");It.setTexture2DArray(Nt,0),Zr=35866}pe.pixelStorei(37440,Nt.flipY),pe.pixelStorei(37441,Nt.premultiplyAlpha),pe.pixelStorei(3317,Nt.unpackAlignment);const yi=pe.getParameter(3314),Er=pe.getParameter(32878),dd=pe.getParameter(3316),Jr=pe.getParameter(3315),Oh=pe.getParameter(32877);pe.pixelStorei(3314,Xi),pe.pixelStorei(32878,ai),pe.pixelStorei(3316,ge.min.x),pe.pixelStorei(3315,ge.min.y),pe.pixelStorei(32877,ge.min.z),pe.texSubImage3D(Zr,_n,Dt.x,Dt.y,Dt.z,ge.max.x-ge.min.x+1,ge.max.y-ge.min.y+1,ge.max.z-ge.min.z+1,ki,No,Ei),pe.pixelStorei(3314,yi),pe.pixelStorei(32878,Er),pe.pixelStorei(3316,dd),pe.pixelStorei(3315,Jr),pe.pixelStorei(32877,Oh),0===_n&&Nt.generateMipmaps&&pe.generateMipmap(Zr),Ht.unbindTexture()},this.initTexture=function(ge){It.setTexture2D(ge,0),Ht.unbindTexture()},this.resetState=function(){Ht.reset(),Fe.reset()},typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}Ps.prototype.isGroup=!0,Object.assign(_w.prototype,{constructor:_w,getHandSpace:function(){return null===this._hand&&(this._hand=new Ps,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand},getTargetRaySpace:function(){return null===this._targetRay&&(this._targetRay=new Ps,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1),this._targetRay},getGripSpace:function(){return null===this._grip&&(this._grip=new Ps,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1),this._grip},dispatchEvent:function(t){return null!==this._targetRay&&this._targetRay.dispatchEvent(t),null!==this._grip&&this._grip.dispatchEvent(t),null!==this._hand&&this._hand.dispatchEvent(t),this},disconnect:function(t){return this.dispatchEvent({type:"disconnected",data:t}),null!==this._targetRay&&(this._targetRay.visible=!1),null!==this._grip&&(this._grip.visible=!1),null!==this._hand&&(this._hand.visible=!1),this},update:function(t,n,e){let i=null,r=null,o=null;const s=this._targetRay,a=this._grip,l=this._hand;if(t&&"visible-blurred"!==n.session.visibilityState)if(l&&t.hand){o=!0;for(const A of t.hand.values()){const v=n.getJointPose(A,e);if(void 0===l.joints[A.jointName]){const C=new Ps;C.matrixAutoUpdate=!1,C.visible=!1,l.joints[A.jointName]=C,l.add(C)}const x=l.joints[A.jointName];null!==v&&(x.matrix.fromArray(v.transform.matrix),x.matrix.decompose(x.position,x.rotation,x.scale),x.jointRadius=v.radius),x.visible=null!==v}const u=l.joints["index-finger-tip"].position.distanceTo(l.joints["thumb-tip"].position),h=.02,m=.005;l.inputState.pinching&&u>h+m?(l.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:t.handedness,target:this})):!l.inputState.pinching&&u<=h-m&&(l.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:t.handedness,target:this}))}else null!==s&&(i=n.getPose(t.targetRaySpace,e),null!==i&&(s.matrix.fromArray(i.transform.matrix),s.matrix.decompose(s.position,s.rotation,s.scale))),null!==a&&t.gripSpace&&(r=n.getPose(t.gripSpace,e),null!==r&&(a.matrix.fromArray(r.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale)));return null!==s&&(s.visible=null!==i),null!==a&&(a.visible=null!==r),null!==l&&(l.visible=null!==o),this}}),Object.assign(SY.prototype,Uc.prototype);class TY extends gr{}TY.prototype.isWebGL1Renderer=!0;class vw{constructor(n,e){this.name="",this.color=new rn(n),this.density=void 0!==e?e:25e-5}clone(){return new vw(this.color,this.density)}toJSON(){return{type:"FogExp2",color:this.color.getHex(),density:this.density}}}vw.prototype.isFogExp2=!0;class yw{constructor(n,e,i){this.name="",this.color=new rn(n),this.near=void 0!==e?e:1,this.far=void 0!==i?i:1e3}clone(){return new yw(this.color,this.near,this.far)}toJSON(){return{type:"Fog",color:this.color.getHex(),near:this.near,far:this.far}}}yw.prototype.isFog=!0;class cA extends $n{constructor(){super(),this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.overrideMaterial=null,this.autoUpdate=!0,typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(n,e){return super.copy(n,e),null!==n.background&&(this.background=n.background.clone()),null!==n.environment&&(this.environment=n.environment.clone()),null!==n.fog&&(this.fog=n.fog.clone()),null!==n.overrideMaterial&&(this.overrideMaterial=n.overrideMaterial.clone()),this.autoUpdate=n.autoUpdate,this.matrixAutoUpdate=n.matrixAutoUpdate,this}toJSON(n){const e=super.toJSON(n);return null!==this.background&&(e.object.background=this.background.toJSON(n)),null!==this.environment&&(e.object.environment=this.environment.toJSON(n)),null!==this.fog&&(e.object.fog=this.fog.toJSON()),e}}function Ia(t,n){this.array=t,this.stride=n,this.count=void 0!==t?t.length/n:0,this.usage=iw,this.updateRange={offset:0,count:-1},this.version=0,this.uuid=Jn.generateUUID()}cA.prototype.isScene=!0,Object.defineProperty(Ia.prototype,"needsUpdate",{set:function(t){!0===t&&this.version++}}),Object.assign(Ia.prototype,{isInterleavedBuffer:!0,onUploadCallback:function(){},setUsage:function(t){return this.usage=t,this},copy:function(t){return this.array=new t.array.constructor(t.array),this.count=t.count,this.stride=t.stride,this.usage=t.usage,this},copyAt:function(t,n,e){t*=this.stride,e*=n.stride;for(let i=0,r=this.stride;in.far||e.push({distance:l,point:xw.clone(),uv:$o.getUV(xw,oT,Ew,sT,kY,WP,IY,new ut),face:null,object:this})}copy(n){return super.copy(n),void 0!==n.center&&this.center.copy(n.center),this.material=n.material,this}}function aT(t,n,e,i,r,o){vb.subVectors(t,e).addScalar(.5).multiply(i),void 0!==r?(Cw.x=o*vb.x-r*vb.y,Cw.y=r*vb.x+o*vb.y):Cw.copy(vb),t.copy(n),t.x+=Cw.x,t.y+=Cw.y,t.applyMatrix4(FY)}yb.prototype.isSprite=!0;const lT=new Y,BY=new Y;class $P extends $n{constructor(){super(),this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]},isLOD:{value:!0}}),this.autoUpdate=!0}copy(n){super.copy(n,!1);const e=n.levels;for(let i=0,r=e.length;i0){let i,r;for(i=1,r=e.length;i0){lT.setFromMatrixPosition(this.matrixWorld);const r=n.ray.origin.distanceTo(lT);this.getObjectForDistance(r).raycast(n,e)}}update(n){const e=this.levels;if(e.length>1){lT.setFromMatrixPosition(n.matrixWorld),BY.setFromMatrixPosition(this.matrixWorld);const i=lT.distanceTo(BY)/n.zoom;let r,o;for(e[0].object.visible=!0,r=1,o=e.length;r=e[r].distance;r++)e[r-1].object.visible=!1,e[r].object.visible=!0;for(this._currentLevel=r-1;rs)continue;d.applyMatrix4(this.matrixWorld);const B=t.ray.origin.distanceTo(d);Bt.far||n.push({distance:B,point:c.clone().applyMatrix4(this.matrixWorld),index:x,face:null,faceIndex:null,object:this})}}else for(let v=0,x=A.count-1;vs)continue;d.applyMatrix4(this.matrixWorld);const w=t.ray.origin.distanceTo(d);wt.far||n.push({distance:w,point:c.clone().applyMatrix4(this.matrixWorld),index:v,face:null,faceIndex:null,object:this})}}else e.isGeometry&&console.error("THREE.Line.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.")},updateMorphTargets:function(){const t=this.geometry;if(t.isBufferGeometry){const n=t.morphAttributes,e=Object.keys(n);if(e.length>0){const i=n[e[0]];if(void 0!==i){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let r=0,o=i.length;r0&&console.error("THREE.Line.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.")}}});const zY=new Y,GY=new Y;function Da(t,n){Ba.call(this,t,n),this.type="LineSegments"}Da.prototype=Object.assign(Object.create(Ba.prototype),{constructor:Da,isLineSegments:!0,computeLineDistances:function(){const t=this.geometry;if(t.isBufferGeometry)if(null===t.index){const n=t.attributes.position,e=[];for(let i=0,r=n.count;ir.far)return;o.push({distance:c,distanceToRay:Math.sqrt(a),point:l,index:n,face:null,object:s})}}wb.prototype=Object.assign(Object.create($n.prototype),{constructor:wb,isPoints:!0,copy:function(t){return $n.prototype.copy.call(this,t),this.material=t.material,this.geometry=t.geometry,this},raycast:function(t,n){const e=this.geometry,i=this.matrixWorld,r=t.params.Points.threshold;if(null===e.boundingSphere&&e.computeBoundingSphere(),hT.copy(e.boundingSphere),hT.applyMatrix4(i),hT.radius+=r,!1===t.ray.intersectsSphere(hT))return;qY.copy(i).invert(),XP.copy(t.ray).applyMatrix4(qY);const o=r/((this.scale.x+this.scale.y+this.scale.z)/3),s=o*o;if(e.isBufferGeometry){const a=e.index,c=e.attributes.position;if(null!==a){const d=a.array;for(let u=0,h=d.length;u0){const i=n[e[0]];if(void 0!==i){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let r=0,o=i.length;r0&&console.error("THREE.Points.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.")}}});class $Y extends ss{constructor(n,e,i,r,o,s,a,l,c){super(n,e,i,r,o,s,a,l,c),this.format=void 0!==a?a:Yf,this.minFilter=void 0!==s?s:Ro,this.magFilter=void 0!==o?o:Ro,this.generateMipmaps=!1;const d=this;"requestVideoFrameCallback"in n&&n.requestVideoFrameCallback(function u(){d.needsUpdate=!0,n.requestVideoFrameCallback(u)})}clone(){return new this.constructor(this.image).copy(this)}update(){const n=this.image;"requestVideoFrameCallback"in n==0&&n.readyState>=n.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}$Y.prototype.isVideoTexture=!0;class YP extends ss{constructor(n,e,i,r,o,s,a,l,c,d,u,h){super(null,s,a,l,c,d,r,o,u,h),this.image={width:e,height:i},this.mipmaps=n,this.flipY=!1,this.generateMipmaps=!1}}YP.prototype.isCompressedTexture=!0;class ZP extends ss{constructor(n,e,i,r,o,s,a,l,c){super(n,e,i,r,o,s,a,l,c),this.needsUpdate=!0}}ZP.prototype.isCanvasTexture=!0;class jY extends ss{constructor(n,e,i,r,o,s,a,l,c,d){if((d=void 0!==d?d:Zp)!==Zp&&d!==J0)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");void 0===i&&d===Zp&&(i=X1),void 0===i&&d===J0&&(i=Z0),super(null,r,o,s,a,l,d,i,c),this.image={width:n,height:e},this.magFilter=void 0!==a?a:vs,this.minFilter=void 0!==l?l:vs,this.flipY=!1,this.generateMipmaps=!1}}jY.prototype.isDepthTexture=!0;class mT extends Bn{constructor(n=1,e=8,i=0,r=2*Math.PI){super(),this.type="CircleGeometry",this.parameters={radius:n,segments:e,thetaStart:i,thetaLength:r},e=Math.max(3,e);const o=[],s=[],a=[],l=[],c=new Y,d=new ut;s.push(0,0,0),a.push(0,0,1),l.push(.5,.5);for(let u=0,h=3;u<=e;u++,h+=3){const m=i+u/e*r;c.x=n*Math.cos(m),c.y=n*Math.sin(m),s.push(c.x,c.y,c.z),a.push(0,0,1),d.x=(s[h]/n+1)/2,d.y=(s[h+1]/n+1)/2,l.push(d.x,d.y)}for(let u=1;u<=e;u++)o.push(u,u+1,0);this.setIndex(o),this.setAttribute("position",new wn(s,3)),this.setAttribute("normal",new wn(a,3)),this.setAttribute("uv",new wn(l,2))}}class xb extends Bn{constructor(n=1,e=1,i=1,r=8,o=1,s=!1,a=0,l=2*Math.PI){super(),this.type="CylinderGeometry",this.parameters={radiusTop:n,radiusBottom:e,height:i,radialSegments:r,heightSegments:o,openEnded:s,thetaStart:a,thetaLength:l};const c=this;r=Math.floor(r),o=Math.floor(o);const d=[],u=[],h=[],m=[];let A=0;const v=[],x=i/2;let C=0;function S(M){const B=A,P=new ut,$=new Y;let ee=0;const te=!0===M?n:e,re=!0===M?1:-1;for(let Ce=1;Ce<=r;Ce++)u.push(0,x*re,0),h.push(0,re,0),m.push(.5,.5),A++;const ne=A;for(let Ce=0;Ce<=r;Ce++){const j=Ce/r*l+a,me=Math.cos(j),X=Math.sin(j);$.x=te*X,$.y=x*re,$.z=te*me,u.push($.x,$.y,$.z),h.push(0,re,0),P.x=.5*me+.5,P.y=.5*X*re+.5,m.push(P.x,P.y),A++}for(let Ce=0;Ce0&&S(!0),e>0&&S(!1)),this.setIndex(d),this.setAttribute("position",new wn(u,3)),this.setAttribute("normal",new wn(h,3)),this.setAttribute("uv",new wn(m,2))}}class pT extends xb{constructor(n=1,e=1,i=8,r=1,o=!1,s=0,a=2*Math.PI){super(0,n,e,i,r,o,s,a),this.type="ConeGeometry",this.parameters={radius:n,height:e,radialSegments:i,heightSegments:r,openEnded:o,thetaStart:s,thetaLength:a}}}class lm extends Bn{constructor(n,e,i=1,r=0){super(),this.type="PolyhedronGeometry",this.parameters={vertices:n,indices:e,radius:i,detail:r};const o=[],s=[];function l(w,S,M,B){const P=B+1,$=[];for(let ee=0;ee<=P;ee++){$[ee]=[];const te=w.clone().lerp(M,ee/P),re=S.clone().lerp(M,ee/P),ne=P-ee;for(let Ce=0;Ce<=ne;Ce++)$[ee][Ce]=0===Ce&&ee===P?te:te.clone().lerp(re,Ce/ne)}for(let ee=0;ee.9&&$<.1&&(S<.2&&(s[w+0]+=1),M<.2&&(s[w+2]+=1),B<.2&&(s[w+4]+=1))}}()}(),this.setAttribute("position",new wn(o,3)),this.setAttribute("normal",new wn(o.slice(),3)),this.setAttribute("uv",new wn(s,2)),0===r?this.computeVertexNormals():this.normalizeNormals()}}class AT extends lm{constructor(n=1,e=0){const i=(1+Math.sqrt(5))/2,r=1/i;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,-i,0,-r,i,0,r,-i,0,r,i,-r,-i,0,-r,i,0,r,-i,0,r,i,0,-i,0,-r,i,0,-r,-i,0,r,i,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],n,e),this.type="DodecahedronGeometry",this.parameters={radius:n,detail:e}}}const gT=new Y,bT=new Y,JP=new Y,_T=new $o;class e5 extends Bn{constructor(n,e){if(super(),this.type="EdgesGeometry",this.parameters={thresholdAngle:e},e=void 0!==e?e:1,!0===n.isGeometry)return void console.error("THREE.EdgesGeometry no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.");const r=Math.pow(10,4),o=Math.cos(Jn.DEG2RAD*e),s=n.getIndex(),a=n.getAttribute("position"),l=s?s.count:a.count,c=[0,0,0],d=["a","b","c"],u=new Array(3),h={},m=[];for(let A=0;A0)for(o=n;o=n;o-=i)s=ZY(o,t[o],t[o+1],s);return s&&vT(s,s.next)&&(Bw(s),s=s.next),s}function cm(t,n){if(!t)return t;n||(n=t);let i,e=t;do{if(i=!1,e.steiner||!vT(e,e.next)&&0!==So(e.prev,e,e.next))e=e.next;else{if(Bw(e),e=n=e.prev,e===e.next)break;i=!0}}while(i||e!==n);return n}function kw(t,n,e,i,r,o,s){if(!t)return;!s&&o&&function DFe(t,n,e,i){let r=t;do{null===r.z&&(r.z=t5(r.x,r.y,n,e,i)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next}while(r!==t);r.prevZ.nextZ=null,r.prevZ=null,function RFe(t){let n,e,i,r,o,s,a,l,c=1;do{for(e=t,t=null,o=null,s=0;e;){for(s++,i=e,a=0,n=0;n0||l>0&&i;)0!==a&&(0===l||!i||e.z<=i.z)?(r=e,e=e.nextZ,a--):(r=i,i=i.nextZ,l--),o?o.nextZ=r:t=r,r.prevZ=o,o=r;e=i}o.nextZ=null,c*=2}while(s>1)}(r)}(t,i,r,o);let l,c,a=t;for(;t.prev!==t.next;)if(l=t.prev,c=t.next,o?EFe(t,i,r,o):CFe(t))n.push(l.i/e),n.push(t.i/e),n.push(c.i/e),Bw(t),t=c.next,a=c.next;else if((t=c)===a){s?1===s?kw(t=MFe(cm(t),n,e),n,e,i,r,o,2):2===s&&SFe(t,n,e,i,r,o):kw(cm(t),n,e,i,r,o,1);break}}function CFe(t){const n=t.prev,e=t,i=t.next;if(So(n,e,i)>=0)return!1;let r=t.next.next;for(;r!==t.prev;){if(Cb(n.x,n.y,e.x,e.y,i.x,i.y,r.x,r.y)&&So(r.prev,r,r.next)>=0)return!1;r=r.next}return!0}function EFe(t,n,e,i){const r=t.prev,o=t,s=t.next;if(So(r,o,s)>=0)return!1;const c=r.x>o.x?r.x>s.x?r.x:s.x:o.x>s.x?o.x:s.x,d=r.y>o.y?r.y>s.y?r.y:s.y:o.y>s.y?o.y:s.y,u=t5(r.x=u&&A&&A.z<=h;){if(m!==t.prev&&m!==t.next&&Cb(r.x,r.y,o.x,o.y,s.x,s.y,m.x,m.y)&&So(m.prev,m,m.next)>=0||(m=m.prevZ,A!==t.prev&&A!==t.next&&Cb(r.x,r.y,o.x,o.y,s.x,s.y,A.x,A.y)&&So(A.prev,A,A.next)>=0))return!1;A=A.nextZ}for(;m&&m.z>=u;){if(m!==t.prev&&m!==t.next&&Cb(r.x,r.y,o.x,o.y,s.x,s.y,m.x,m.y)&&So(m.prev,m,m.next)>=0)return!1;m=m.prevZ}for(;A&&A.z<=h;){if(A!==t.prev&&A!==t.next&&Cb(r.x,r.y,o.x,o.y,s.x,s.y,A.x,A.y)&&So(A.prev,A,A.next)>=0)return!1;A=A.nextZ}return!0}function MFe(t,n,e){let i=t;do{const r=i.prev,o=i.next.next;!vT(r,o)&&XY(r,i,i.next,o)&&Iw(r,o)&&Iw(o,r)&&(n.push(r.i/e),n.push(i.i/e),n.push(o.i/e),Bw(i),Bw(i.next),i=t=o),i=i.next}while(i!==t);return cm(i)}function SFe(t,n,e,i,r,o){let s=t;do{let a=s.next.next;for(;a!==s.prev;){if(s.i!==a.i&&PFe(s,a)){let l=YY(s,a);return s=cm(s,s.next),l=cm(l,l.next),kw(s,n,e,i,r,o),void kw(l,n,e,i,r,o)}a=a.next}s=s.next}while(s!==t)}function FFe(t,n){return t.x-n.x}function kFe(t,n){if(n=function IFe(t,n){let e=n;const i=t.x,r=t.y;let s,o=-1/0;do{if(r<=e.y&&r>=e.next.y&&e.next.y!==e.y){const h=e.x+(r-e.y)*(e.next.x-e.x)/(e.next.y-e.y);if(h<=i&&h>o){if(o=h,h===i){if(r===e.y)return e;if(r===e.next.y)return e.next}s=e.x=e.x&&e.x>=l&&i!==e.x&&Cb(rs.x||e.x===s.x&&BFe(s,e)))&&(s=e,d=u)),e=e.next}while(e!==a);return s}(t,n),n){const e=YY(n,t);cm(n,n.next),cm(e,e.next)}}function BFe(t,n){return So(t.prev,t,n.prev)<0&&So(n.next,t,t.next)<0}function t5(t,n,e,i,r){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-e)*r)|t<<8))|t<<4))|t<<2))|t<<1))|(n=1431655765&((n=858993459&((n=252645135&((n=16711935&((n=32767*(n-i)*r)|n<<8))|n<<4))|n<<2))|n<<1))<<1}function LFe(t){let n=t,e=t;do{(n.x=0&&(t-s)*(i-a)-(e-s)*(n-a)>=0&&(e-s)*(o-a)-(r-s)*(i-a)>=0}function PFe(t,n){return t.next.i!==n.i&&t.prev.i!==n.i&&!function NFe(t,n){let e=t;do{if(e.i!==t.i&&e.next.i!==t.i&&e.i!==n.i&&e.next.i!==n.i&&XY(e,e.next,t,n))return!0;e=e.next}while(e!==t);return!1}(t,n)&&(Iw(t,n)&&Iw(n,t)&&function OFe(t,n){let e=t,i=!1;const r=(t.x+n.x)/2,o=(t.y+n.y)/2;do{e.y>o!=e.next.y>o&&e.next.y!==e.y&&r<(e.next.x-e.x)*(o-e.y)/(e.next.y-e.y)+e.x&&(i=!i),e=e.next}while(e!==t);return i}(t,n)&&(So(t.prev,t,n.prev)||So(t,n.prev,n))||vT(t,n)&&So(t.prev,t,t.next)>0&&So(n.prev,n,n.next)>0)}function So(t,n,e){return(n.y-t.y)*(e.x-n.x)-(n.x-t.x)*(e.y-n.y)}function vT(t,n){return t.x===n.x&&t.y===n.y}function XY(t,n,e,i){const r=wT(So(t,n,e)),o=wT(So(t,n,i)),s=wT(So(e,i,t)),a=wT(So(e,i,n));return!!(r!==o&&s!==a||0===r&&yT(t,e,n)||0===o&&yT(t,i,n)||0===s&&yT(e,t,i)||0===a&&yT(e,n,i))}function yT(t,n,e){return n.x<=Math.max(t.x,e.x)&&n.x>=Math.min(t.x,e.x)&&n.y<=Math.max(t.y,e.y)&&n.y>=Math.min(t.y,e.y)}function wT(t){return t>0?1:t<0?-1:0}function Iw(t,n){return So(t.prev,t,t.next)<0?So(t,n,t.next)>=0&&So(t,t.prev,n)>=0:So(t,n,t.prev)<0||So(t,t.next,n)<0}function YY(t,n){const e=new n5(t.i,t.x,t.y),i=new n5(n.i,n.x,n.y),r=t.next,o=n.prev;return t.next=n,n.prev=t,e.next=r,r.prev=e,i.next=e,e.prev=i,o.next=i,i.prev=o,i}function ZY(t,n,e,i){const r=new n5(t,n,e);return i?(r.next=i.next,r.prev=i,i.next.prev=r,i.next=r):(r.prev=r,r.next=r),r}function Bw(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function n5(t,n,e){this.i=t,this.x=n,this.y=e,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}const yh={area:function(t){const n=t.length;let e=0;for(let i=n-1,r=0;r80*e){a=c=t[0],l=d=t[1];for(let A=e;Ac&&(c=u),h>d&&(d=h);m=Math.max(c-a,d-l),m=0!==m?1/m:0}return kw(o,s,e,a,l,m),s}(e,i);for(let a=0;a2&&t[n-1].equals(t[0])&&t.pop()}function eZ(t,n){for(let e=0;eNumber.EPSILON){const en=Math.sqrt(Kt),wt=Math.sqrt(Se*Se+qe*qe),Cn=It.x-Rt/en,Sn=It.y+ae/en,ln=((mt.x-qe/wt-Cn)*qe-(mt.y+Se/wt-Sn)*Se)/(ae*qe-Rt*Se);Me=Cn+ae*ln-rt.x,Re=Sn+Rt*ln-rt.y;const vi=Me*Me+Re*Re;if(vi<=2)return new ut(Me,Re);de=Math.sqrt(vi/2)}else{let en=!1;ae>Number.EPSILON?Se>Number.EPSILON&&(en=!0):ae<-Number.EPSILON?Se<-Number.EPSILON&&(en=!0):Math.sign(Rt)===Math.sign(qe)&&(en=!0),en?(Me=-Rt,Re=ae,de=Math.sqrt(Kt)):(Me=ae,Re=Rt,de=Math.sqrt(Kt/2))}return new ut(Me/de,Re/de)}const Qe=[];for(let rt=0,It=j.length,mt=It-1,Me=rt+1;rt=0;rt--){const It=rt/x,mt=m*Math.cos(It*Math.PI/2),Me=A*Math.sin(It*Math.PI/2)+v;for(let Re=0,de=j.length;Re=0;){const Me=mt;let Re=mt-1;Re<0&&(Re=rt.length-1);for(let de=0,ae=d+2*x;de=0?(t(C-a,v,d),u.subVectors(c,d)):(t(C+a,v,d),u.subVectors(d,c)),v-a>=0?(t(C,v-a,d),h.subVectors(c,d)):(t(C,v+a,d),h.subVectors(d,c)),l.crossVectors(u,h).normalize(),o.push(l.x,l.y,l.z),s.push(C,v)}}for(let A=0;A0)&&m.push(d[C][w+1],M,P),(C!==i-1||l=i)){u.push(c.times[m]);for(let v=0;vo.tracks[l].times[0]&&(a=o.tracks[l].times[0]);for(let l=0;l=a.times[A]){const C=A*u+d;v=so.arraySlice(a.values,C,C+u-d)}else{const C=a.createInterpolant(),w=d,S=u-d;C.evaluate(o),v=so.arraySlice(C.resultBuffer,w,S)}"quaternion"===l&&(new as).fromArray(v).normalize().conjugate().toArray(v);const x=c.times.length;for(let C=0;C=r)break e;{const s=n[1];t=r)break t}o=e,e=0}}for(;e>>1;te;)--s;if(++s,0!==o||s!==r){o>=s&&(s=Math.max(s,1),o=s-1);const a=this.getValueSize();this.times=so.arraySlice(i,o,s),this.values=so.arraySlice(this.values,o*a,s*a)}return this}validate(){let n=!0;const e=this.getValueSize();e-Math.floor(e)!=0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),n=!1);const i=this.times,r=this.values,o=i.length;0===o&&(console.error("THREE.KeyframeTrack: Track is empty.",this),n=!1);let s=null;for(let a=0;a!==o;a++){const l=i[a];if("number"==typeof l&&isNaN(l)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,a,l),n=!1;break}if(null!==s&&s>l){console.error("THREE.KeyframeTrack: Out of order keys.",this,a,l,s),n=!1;break}s=l}if(void 0!==r&&so.isTypedArray(r))for(let a=0,l=r.length;a!==l;++a){const c=r[a];if(isNaN(c)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,a,c),n=!1;break}}return n}optimize(){const n=so.arraySlice(this.times),e=so.arraySlice(this.values),i=this.getValueSize(),r=this.getInterpolation()===kS,o=n.length-1;let s=1;for(let a=1;a0){n[s]=n[o];for(let a=o*i,l=s*i,c=0;c!==i;++c)e[l+c]=e[a+c];++s}return s!==n.length?(this.times=so.arraySlice(n,0,s),this.values=so.arraySlice(e,0,s*i)):(this.times=n,this.values=e),this}clone(){const n=so.arraySlice(this.times,0),e=so.arraySlice(this.values,0),r=new(0,this.constructor)(this.name,n,e);return r.createInterpolant=this.createInterpolant,r}}jc.prototype.TimeBufferType=Float32Array,jc.prototype.ValueBufferType=Float32Array,jc.prototype.DefaultInterpolation=ew;class fA extends jc{}fA.prototype.ValueTypeName="bool",fA.prototype.ValueBufferType=Array,fA.prototype.DefaultInterpolation=J1,fA.prototype.InterpolantFactoryMethodLinear=void 0,fA.prototype.InterpolantFactoryMethodSmooth=void 0;class l5 extends jc{}l5.prototype.ValueTypeName="color";class Nw extends jc{}function RT(t,n,e,i){Rl.call(this,t,n,e,i)}Nw.prototype.ValueTypeName="number",RT.prototype=Object.assign(Object.create(Rl.prototype),{constructor:RT,interpolate_:function(t,n,e,i){const r=this.resultBuffer,o=this.sampleValues,s=this.valueSize,a=(e-n)/(i-n);let l=t*s;for(let c=l+s;l!==c;l+=4)as.slerpFlat(r,0,o,l-s,o,l,a);return r}});class Tb extends jc{InterpolantFactoryMethodLinear(n){return new RT(this.times,this.values,this.getValueSize(),n)}}Tb.prototype.ValueTypeName="quaternion",Tb.prototype.DefaultInterpolation=ew,Tb.prototype.InterpolantFactoryMethodSmooth=void 0;class mA extends jc{}mA.prototype.ValueTypeName="string",mA.prototype.ValueBufferType=Array,mA.prototype.DefaultInterpolation=J1,mA.prototype.InterpolantFactoryMethodLinear=void 0,mA.prototype.InterpolantFactoryMethodSmooth=void 0;class Ow extends jc{}Ow.prototype.ValueTypeName="vector";class Uw{constructor(n,e=-1,i,r=IS){this.name=n,this.tracks=i,this.duration=e,this.blendMode=r,this.uuid=Jn.generateUUID(),this.duration<0&&this.resetDuration()}static parse(n){const e=[],i=n.tracks,r=1/(n.fps||1);for(let s=0,a=i.length;s!==a;++s)e.push(qFe(i[s]).scale(r));const o=new this(n.name,n.duration,e,n.blendMode);return o.uuid=n.uuid,o}static toJSON(n){const e=[],i=n.tracks,r={name:n.name,duration:n.duration,tracks:e,uuid:n.uuid,blendMode:n.blendMode};for(let o=0,s=i.length;o!==s;++o)e.push(jc.toJSON(i[o]));return r}static CreateFromMorphTargetSequence(n,e,i,r){const o=e.length,s=[];for(let a=0;a1){const u=d[1];let h=r[u];h||(r[u]=h=[]),h.push(c)}}const s=[];for(const a in r)s.push(this.CreateFromMorphTargetSequence(a,r[a],e,i));return s}static parseAnimation(n,e){if(!n)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const i=function(u,h,m,A,v){if(0!==m.length){const x=[],C=[];so.flattenJSON(m,x,C,A),0!==x.length&&v.push(new u(h,x,C))}},r=[],o=n.name||"default",s=n.fps||30,a=n.blendMode;let l=n.length||-1;const c=n.hierarchy||[];for(let u=0;u0||0===t.search(/^data\:image\/jpeg/);r.format=a?Yf:Fa,r.needsUpdate=!0,void 0!==n&&n(r)},e,i),r}}),Object.assign(La.prototype,{getPoint:function(){return console.warn("THREE.Curve: .getPoint() not implemented."),null},getPointAt:function(t,n){const e=this.getUtoTmapping(t);return this.getPoint(e,n)},getPoints:function(t=5){const n=[];for(let e=0;e<=t;e++)n.push(this.getPoint(e/t));return n},getSpacedPoints:function(t=5){const n=[];for(let e=0;e<=t;e++)n.push(this.getPointAt(e/t));return n},getLength:function(){const t=this.getLengths();return t[t.length-1]},getLengths:function(t){if(void 0===t&&(t=this.arcLengthDivisions),this.cacheArcLengths&&this.cacheArcLengths.length===t+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const n=[];let e,i=this.getPoint(0),r=0;n.push(0);for(let o=1;o<=t;o++)e=this.getPoint(o/t),r+=e.distanceTo(i),n.push(r),i=e;return this.cacheArcLengths=n,n},updateArcLengths:function(){this.needsUpdate=!0,this.getLengths()},getUtoTmapping:function(t,n){const e=this.getLengths();let i=0;const r=e.length;let o;o=n||t*e[r-1];let l,s=0,a=r-1;for(;s<=a;)if(i=Math.floor(s+(a-s)/2),l=e[i]-o,l<0)s=i+1;else{if(!(l>0)){a=i;break}a=i-1}if(i=a,e[i]===o)return i/(r-1);const c=e[i];return(i+(o-c)/(e[i+1]-c))/(r-1)},getTangent:function(t,n){let i=t-1e-4,r=t+1e-4;i<0&&(i=0),r>1&&(r=1);const o=this.getPoint(i),s=this.getPoint(r),a=n||(o.isVector2?new ut:new Y);return a.copy(s).sub(o).normalize(),a},getTangentAt:function(t,n){const e=this.getUtoTmapping(t);return this.getTangent(e,n)},computeFrenetFrames:function(t,n){const e=new Y,i=[],r=[],o=[],s=new Y,a=new Hn;for(let h=0;h<=t;h++)i[h]=this.getTangentAt(h/t,new Y),i[h].normalize();r[0]=new Y,o[0]=new Y;let l=Number.MAX_VALUE;const c=Math.abs(i[0].x),d=Math.abs(i[0].y),u=Math.abs(i[0].z);c<=l&&(l=c,e.set(1,0,0)),d<=l&&(l=d,e.set(0,1,0)),u<=l&&e.set(0,0,1),s.crossVectors(i[0],e).normalize(),r[0].crossVectors(i[0],s),o[0].crossVectors(i[0],r[0]);for(let h=1;h<=t;h++){if(r[h]=r[h-1].clone(),o[h]=o[h-1].clone(),s.crossVectors(i[h-1],i[h]),s.length()>Number.EPSILON){s.normalize();const m=Math.acos(Jn.clamp(i[h-1].dot(i[h]),-1,1));r[h].applyMatrix4(a.makeRotationAxis(s,m))}o[h].crossVectors(i[h],r[h])}if(!0===n){let h=Math.acos(Jn.clamp(r[0].dot(r[t]),-1,1));h/=t,i[0].dot(s.crossVectors(r[0],r[t]))>0&&(h=-h);for(let m=1;m<=t;m++)r[m].applyMatrix4(a.makeRotationAxis(i[m],h*m)),o[m].crossVectors(i[m],r[m])}return{tangents:i,normals:r,binormals:o}},clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.arcLengthDivisions=t.arcLengthDivisions,this},toJSON:function(){const t={metadata:{version:4.5,type:"Curve",generator:"Curve.toJSON"}};return t.arcLengthDivisions=this.arcLengthDivisions,t.type=this.type,t},fromJSON:function(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}});class Hw extends La{constructor(n=0,e=0,i=1,r=1,o=0,s=2*Math.PI,a=!1,l=0){super(),this.type="EllipseCurve",this.aX=n,this.aY=e,this.xRadius=i,this.yRadius=r,this.aStartAngle=o,this.aEndAngle=s,this.aClockwise=a,this.aRotation=l}getPoint(n,e){const i=e||new ut,r=2*Math.PI;let o=this.aEndAngle-this.aStartAngle;const s=Math.abs(o)r;)o-=r;o0?0:(Math.floor(Math.abs(a)/o)+1)*o:0===l&&a===o-1&&(a=o-2,l=1),this.closed||a>0?c=r[(a-1)%o]:(OT.subVectors(r[0],r[1]).add(r[0]),c=OT);const u=r[a%o],h=r[(a+1)%o];if(this.closed||a+2r.length-2?r.length-1:s+1],u=r[s>r.length-3?r.length-1:s+2];return i.set(iZ(a,l.x,c.x,d.x,u.x),iZ(a,l.y,c.y,d.y,u.y)),i}copy(n){super.copy(n),this.points=[];for(let e=0,i=n.points.length;e=e){const o=i[r]-e,s=this.curves[r],a=s.getLength();return s.getPointAt(0===a?0:1-o/a)}r++}return null}getLength(){const n=this.getCurveLengths();return n[n.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 n=[];let e=0;for(let i=0,r=this.curves.length;i1&&!e[e.length-1].equals(e[0])&&e.push(e[0]),e}copy(n){super.copy(n),this.curves=[];for(let e=0,i=n.curves.length;e0){const u=c.getPoint(0);u.equals(this.currentPoint)||this.lineTo(u.x,u.y)}this.curves.push(c);const d=c.getPoint(1);return this.currentPoint.copy(d),this}copy(n){return super.copy(n),this.currentPoint.copy(n.currentPoint),this}toJSON(){const n=super.toJSON();return n.currentPoint=this.currentPoint.toArray(),n}fromJSON(n){return super.fromJSON(n),this.currentPoint.fromArray(n.currentPoint),this}}class wh extends AA{constructor(n){super(n),this.uuid=Jn.generateUUID(),this.type="Shape",this.holes=[]}getPointsHoles(n){const e=[];for(let i=0,r=this.holes.length;i0:n.vertexColors),void 0!==n.uniforms)for(const o in n.uniforms){const s=n.uniforms[o];switch(r.uniforms[o]={},s.type){case"t":r.uniforms[o].value=i(s.value);break;case"c":r.uniforms[o].value=(new rn).setHex(s.value);break;case"v2":r.uniforms[o].value=(new ut).fromArray(s.value);break;case"v3":r.uniforms[o].value=(new Y).fromArray(s.value);break;case"v4":r.uniforms[o].value=(new Cr).fromArray(s.value);break;case"m3":r.uniforms[o].value=(new ro).fromArray(s.value);break;case"m4":r.uniforms[o].value=(new Hn).fromArray(s.value);break;default:r.uniforms[o].value=s.value}}if(void 0!==n.defines&&(r.defines=n.defines),void 0!==n.vertexShader&&(r.vertexShader=n.vertexShader),void 0!==n.fragmentShader&&(r.fragmentShader=n.fragmentShader),void 0!==n.extensions)for(const o in n.extensions)r.extensions[o]=n.extensions[o];if(void 0!==n.shading&&(r.flatShading=1===n.shading),void 0!==n.size&&(r.size=n.size),void 0!==n.sizeAttenuation&&(r.sizeAttenuation=n.sizeAttenuation),void 0!==n.map&&(r.map=i(n.map)),void 0!==n.matcap&&(r.matcap=i(n.matcap)),void 0!==n.alphaMap&&(r.alphaMap=i(n.alphaMap)),void 0!==n.bumpMap&&(r.bumpMap=i(n.bumpMap)),void 0!==n.bumpScale&&(r.bumpScale=n.bumpScale),void 0!==n.normalMap&&(r.normalMap=i(n.normalMap)),void 0!==n.normalMapType&&(r.normalMapType=n.normalMapType),void 0!==n.normalScale){let o=n.normalScale;!1===Array.isArray(o)&&(o=[o,o]),r.normalScale=(new ut).fromArray(o)}return void 0!==n.displacementMap&&(r.displacementMap=i(n.displacementMap)),void 0!==n.displacementScale&&(r.displacementScale=n.displacementScale),void 0!==n.displacementBias&&(r.displacementBias=n.displacementBias),void 0!==n.roughnessMap&&(r.roughnessMap=i(n.roughnessMap)),void 0!==n.metalnessMap&&(r.metalnessMap=i(n.metalnessMap)),void 0!==n.emissiveMap&&(r.emissiveMap=i(n.emissiveMap)),void 0!==n.emissiveIntensity&&(r.emissiveIntensity=n.emissiveIntensity),void 0!==n.specularMap&&(r.specularMap=i(n.specularMap)),void 0!==n.envMap&&(r.envMap=i(n.envMap)),void 0!==n.envMapIntensity&&(r.envMapIntensity=n.envMapIntensity),void 0!==n.reflectivity&&(r.reflectivity=n.reflectivity),void 0!==n.refractionRatio&&(r.refractionRatio=n.refractionRatio),void 0!==n.lightMap&&(r.lightMap=i(n.lightMap)),void 0!==n.lightMapIntensity&&(r.lightMapIntensity=n.lightMapIntensity),void 0!==n.aoMap&&(r.aoMap=i(n.aoMap)),void 0!==n.aoMapIntensity&&(r.aoMapIntensity=n.aoMapIntensity),void 0!==n.gradientMap&&(r.gradientMap=i(n.gradientMap)),void 0!==n.clearcoatMap&&(r.clearcoatMap=i(n.clearcoatMap)),void 0!==n.clearcoatRoughnessMap&&(r.clearcoatRoughnessMap=i(n.clearcoatRoughnessMap)),void 0!==n.clearcoatNormalMap&&(r.clearcoatNormalMap=i(n.clearcoatNormalMap)),void 0!==n.clearcoatNormalScale&&(r.clearcoatNormalScale=(new ut).fromArray(n.clearcoatNormalScale)),void 0!==n.transmission&&(r.transmission=n.transmission),void 0!==n.transmissionMap&&(r.transmissionMap=i(n.transmissionMap)),r}setTextures(n){return this.textures=n,this}}const M5={decodeText:function(t){if(typeof TextDecoder<"u")return(new TextDecoder).decode(t);let n="";for(let e=0,i=t.length;e0){const l=new c5(e);o=new LT(l),o.setCrossOrigin(this.crossOrigin);for(let c=0,d=n.length;c"u"&&console.warn("THREE.ImageBitmapLoader: createImageBitmap() not supported."),typeof fetch>"u"&&console.warn("THREE.ImageBitmapLoader: fetch() not supported."),bo.call(this,t),this.options={premultiplyAlpha:"none"}}S5.prototype=Object.assign(Object.create(bo.prototype),{constructor:S5,isImageBitmapLoader:!0,setOptions:function(n){return this.options=n,this},load:function(t,n,e,i){void 0===t&&(t=""),void 0!==this.path&&(t=this.path+t),t=this.manager.resolveURL(t);const r=this,o=pA.get(t);if(void 0!==o)return r.manager.itemStart(t),setTimeout(function(){n&&n(o),r.manager.itemEnd(t)},0),o;const s={};s.credentials="anonymous"===this.crossOrigin?"same-origin":"include",s.headers=this.requestHeader,fetch(t,s).then(function(a){return a.blob()}).then(function(a){return createImageBitmap(a,Object.assign(r.options,{colorSpaceConversion:"none"}))}).then(function(a){pA.add(t,a),n&&n(a),r.manager.itemEnd(t)}).catch(function(a){i&&i(a),r.manager.itemError(t),r.manager.itemEnd(t)}),r.manager.itemStart(t)}});class xh{constructor(){this.type="ShapePath",this.color=new rn,this.subPaths=[],this.currentPath=null}moveTo(n,e){return this.currentPath=new AA,this.subPaths.push(this.currentPath),this.currentPath.moveTo(n,e),this}lineTo(n,e){return this.currentPath.lineTo(n,e),this}quadraticCurveTo(n,e,i,r){return this.currentPath.quadraticCurveTo(n,e,i,r),this}bezierCurveTo(n,e,i,r,o,s){return this.currentPath.bezierCurveTo(n,e,i,r,o,s),this}splineThru(n){return this.currentPath.splineThru(n),this}toShapes(n,e){function i(w){const S=[];for(let M=0,B=w.length;MNumber.EPSILON){if(ne<0&&(ee=S[$],re=-re,te=S[P],ne=-ne),w.yte.y)continue;if(w.y===ee.y){if(w.x===ee.x)return!0}else{const Ce=ne*(w.x-ee.x)-re*(w.y-ee.y);if(0===Ce)return!0;if(Ce<0)continue;B=!B}}else{if(w.y!==ee.y)continue;if(te.x<=w.x&&w.x<=ee.x||ee.x<=w.x&&w.x<=te.x)return!0}}return B}const o=yh.isClockWise,s=this.subPaths;if(0===s.length)return[];if(!0===e)return i(s);let a,l,c;const d=[];if(1===s.length)return l=s[0],c=new wh,c.curves=l.curves,d.push(c),d;let u=!o(s[0].getPoints());u=n?!u:u;const h=[],m=[];let x,C,A=[],v=0;m[v]=void 0,A[v]=[];for(let w=0,S=s.length;w1){let w=!1;const S=[];for(let M=0,B=m.length;M0&&(w||(A=h))}for(let w=0,S=m.length;w"u"?Date:performance).now()}const _A=new Y,xZ=new as,s3e=new Y,vA=new Y;class a3e extends $n{constructor(){super(),this.type="AudioListener",this.context=T5.getContext(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null,this.timeDelta=0,this._clock=new F5}getInput(){return this.gain}removeFilter(){return null!==this.filter&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null),this}getFilter(){return this.filter}setFilter(n){return null!==this.filter?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination),this.filter=n,this.gain.connect(this.filter),this.filter.connect(this.context.destination),this}getMasterVolume(){return this.gain.gain.value}setMasterVolume(n){return this.gain.gain.setTargetAtTime(n,this.context.currentTime,.01),this}updateMatrixWorld(n){super.updateMatrixWorld(n);const e=this.context.listener,i=this.up;if(this.timeDelta=this._clock.getDelta(),this.matrixWorld.decompose(_A,xZ,s3e),vA.set(0,0,-1).applyQuaternion(xZ),e.positionX){const r=this.context.currentTime+this.timeDelta;e.positionX.linearRampToValueAtTime(_A.x,r),e.positionY.linearRampToValueAtTime(_A.y,r),e.positionZ.linearRampToValueAtTime(_A.z,r),e.forwardX.linearRampToValueAtTime(vA.x,r),e.forwardY.linearRampToValueAtTime(vA.y,r),e.forwardZ.linearRampToValueAtTime(vA.z,r),e.upX.linearRampToValueAtTime(i.x,r),e.upY.linearRampToValueAtTime(i.y,r),e.upZ.linearRampToValueAtTime(i.z,r)}else e.setPosition(_A.x,_A.y,_A.z),e.setOrientation(vA.x,vA.y,vA.z,i.x,i.y,i.z)}}class k5 extends $n{constructor(n){super(),this.type="Audio",this.listener=n,this.context=n.context,this.gain=this.context.createGain(),this.gain.connect(n.getInput()),this.autoplay=!1,this.buffer=null,this.detune=0,this.loop=!1,this.loopStart=0,this.loopEnd=0,this.offset=0,this.duration=void 0,this.playbackRate=1,this.isPlaying=!1,this.hasPlaybackControl=!0,this.source=null,this.sourceType="empty",this._startedAt=0,this._progress=0,this._connected=!1,this.filters=[]}getOutput(){return this.gain}setNodeSource(n){return this.hasPlaybackControl=!1,this.sourceType="audioNode",this.source=n,this.connect(),this}setMediaElementSource(n){return this.hasPlaybackControl=!1,this.sourceType="mediaNode",this.source=this.context.createMediaElementSource(n),this.connect(),this}setMediaStreamSource(n){return this.hasPlaybackControl=!1,this.sourceType="mediaStreamNode",this.source=this.context.createMediaStreamSource(n),this.connect(),this}setBuffer(n){return this.buffer=n,this.sourceType="buffer",this.autoplay&&this.play(),this}play(n=0){if(!0===this.isPlaying)return void console.warn("THREE.Audio: Audio is already playing.");if(!1===this.hasPlaybackControl)return void console.warn("THREE.Audio: this Audio has no playback control.");this._startedAt=this.context.currentTime+n;const e=this.context.createBufferSource();return e.buffer=this.buffer,e.loop=this.loop,e.loopStart=this.loopStart,e.loopEnd=this.loopEnd,e.onended=this.onEnded.bind(this),e.start(this._startedAt,this._progress+this.offset,this.duration),this.isPlaying=!0,this.source=e,this.setDetune(this.detune),this.setPlaybackRate(this.playbackRate),this.connect()}pause(){if(!1!==this.hasPlaybackControl)return!0===this.isPlaying&&(this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate,!0===this.loop&&(this._progress=this._progress%(this.duration||this.buffer.duration)),this.source.stop(),this.source.onended=null,this.isPlaying=!1),this;console.warn("THREE.Audio: this Audio has no playback control.")}stop(){if(!1!==this.hasPlaybackControl)return this._progress=0,this.source.stop(),this.source.onended=null,this.isPlaying=!1,this;console.warn("THREE.Audio: this Audio has no playback control.")}connect(){if(this.filters.length>0){this.source.connect(this.filters[0]);for(let n=1,e=this.filters.length;n0){this.source.disconnect(this.filters[0]);for(let n=1,e=this.filters.length;n0&&this._mixBufferRegionAdditive(i,r,this._addIndex*e,1,e);for(let l=e,c=e+e;l!==c;++l)if(i[l]!==i[l+e]){a.setValue(i,r);break}}saveOriginalState(){const e=this.buffer,i=this.valueSize,r=i*this._origIndex;this.binding.getValue(e,r);for(let o=i,s=r;o!==s;++o)e[o]=e[r+o%i];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){this.binding.setValue(this.buffer,3*this.valueSize)}_setAdditiveIdentityNumeric(){const n=this._addIndex*this.valueSize,e=n+this.valueSize;for(let i=n;i=.5)for(let s=0;s!==o;++s)n[e+s]=n[i+s]}_slerp(n,e,i,r){as.slerpFlat(n,e,n,e,n,i,r)}_slerpAdditive(n,e,i,r,o){const s=this._workIndex*o;as.multiplyQuaternionsFlat(n,s,n,e,n,i),as.slerpFlat(n,e,n,e,n,s,r)}_lerp(n,e,i,r,o){const s=1-r;for(let a=0;a!==o;++a){const l=e+a;n[l]=n[l]*s+n[i+a]*r}}_lerpAdditive(n,e,i,r,o){for(let s=0;s!==o;++s){const a=e+s;n[a]=n[a]+n[i+s]*r}}}const I5="\\[\\]\\.:\\/",d3e=new RegExp("["+I5+"]","g"),B5="[^"+I5+"]",u3e="[^"+I5.replace("\\.","")+"]",h3e=/((?:WC+[\/:])*)/.source.replace("WC",B5),f3e=/(WCOD+)?/.source.replace("WCOD",u3e),m3e=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",B5),p3e=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",B5),A3e=new RegExp("^"+h3e+f3e+m3e+p3e+"$"),g3e=["material","materials","bones"];function SZ(t,n,e){const i=e||la.parseTrackName(n);this._targetGroup=t,this._bindings=t.subscribe_(n,i)}function la(t,n,e){this.path=n,this.parsedPath=e||la.parseTrackName(n),this.node=la.findNode(t,this.parsedPath.nodeName)||t,this.rootNode=t}Object.assign(SZ.prototype,{getValue:function(t,n){this.bind();const i=this._bindings[this._targetGroup.nCachedObjects_];void 0!==i&&i.getValue(t,n)},setValue:function(t,n){const e=this._bindings;for(let i=this._targetGroup.nCachedObjects_,r=e.length;i!==r;++i)e[i].setValue(t,n)},bind:function(){const t=this._bindings;for(let n=this._targetGroup.nCachedObjects_,e=t.length;n!==e;++n)t[n].bind()},unbind:function(){const t=this._bindings;for(let n=this._targetGroup.nCachedObjects_,e=t.length;n!==e;++n)t[n].unbind()}}),Object.assign(la,{Composite:SZ,create:function(t,n,e){return t&&t.isAnimationObjectGroup?new la.Composite(t,n,e):new la(t,n,e)},sanitizeNodeName:function(t){return t.replace(/\s/g,"_").replace(d3e,"")},parseTrackName:function(t){const n=A3e.exec(t);if(!n)throw new Error("PropertyBinding: Cannot parse trackName: "+t);const e={nodeName:n[2],objectName:n[3],objectIndex:n[4],propertyName:n[5],propertyIndex:n[6]},i=e.nodeName&&e.nodeName.lastIndexOf(".");if(void 0!==i&&-1!==i){const r=e.nodeName.substring(i+1);-1!==g3e.indexOf(r)&&(e.nodeName=e.nodeName.substring(0,i),e.objectName=r)}if(null===e.propertyName||0===e.propertyName.length)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+t);return e},findNode:function(t,n){if(!n||""===n||"."===n||-1===n||n===t.name||n===t.uuid)return t;if(t.skeleton){const e=t.skeleton.getBoneByName(n);if(void 0!==e)return e}if(t.children){const e=function(r){for(let o=0;o=o){const u=o++,h=n[u];e[h.uuid]=d,n[d]=h,e[c]=u,n[u]=l;for(let m=0,A=r;m!==A;++m){const v=i[m],C=v[d];v[d]=v[u],v[u]=C}}}this.nCachedObjects_=o}uncache(){const n=this._objects,e=this._indicesByUUID,i=this._bindings,r=i.length;let o=this.nCachedObjects_,s=n.length;for(let a=0,l=arguments.length;a!==l;++a){const d=arguments[a].uuid,u=e[d];if(void 0!==u)if(delete e[d],u0&&(e[m.uuid]=u),n[u]=m,n.pop();for(let A=0,v=r;A!==v;++A){const x=i[A];x[u]=x[h],x.pop()}}}this.nCachedObjects_=o}subscribe_(n,e){const i=this._bindingsIndicesByPath;let r=i[n];const o=this._bindings;if(void 0!==r)return o[r];const s=this._paths,a=this._parsedPaths,l=this._objects,d=this.nCachedObjects_,u=new Array(l.length);r=o.length,i[n]=r,s.push(n),a.push(e),o.push(u);for(let h=d,m=l.length;h!==m;++h)u[h]=new la(l[h],n,e);return u}unsubscribe_(n){const e=this._bindingsIndicesByPath,i=e[n];if(void 0!==i){const r=this._paths,o=this._parsedPaths,s=this._bindings,a=s.length-1,l=s[a];e[n[a]]=i,s[i]=l,s.pop(),o[i]=o[a],o.pop(),r[i]=r[a],r.pop()}}}TZ.prototype.isAnimationObjectGroup=!0;class b3e{constructor(n,e,i=null,r=e.blendMode){this._mixer=n,this._clip=e,this._localRoot=i,this.blendMode=r;const o=e.tracks,s=o.length,a=new Array(s),l={endingStart:Jp,endingEnd:Jp};for(let c=0;c!==s;++c){const d=o[c].createInterpolant(null);a[c]=d,d.settings=l}this._interpolantSettings=l,this._interpolants=a,this._propertyBindings=new Array(s),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=PX,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(n){return this._startTime=n,this}setLoop(n,e){return this.loop=n,this.repetitions=e,this}setEffectiveWeight(n){return this.weight=n,this._effectiveWeight=this.enabled?n:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(n){return this._scheduleFading(n,0,1)}fadeOut(n){return this._scheduleFading(n,1,0)}crossFadeFrom(n,e,i){if(n.fadeOut(e),this.fadeIn(e),i){const r=this._clip.duration,o=n._clip.duration,a=r/o;n.warp(1,o/r,e),this.warp(a,1,e)}return this}crossFadeTo(n,e,i){return n.crossFadeFrom(this,e,i)}stopFading(){const n=this._weightInterpolant;return null!==n&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(n)),this}setEffectiveTimeScale(n){return this.timeScale=n,this._effectiveTimeScale=this.paused?0:n,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(n){return this.timeScale=this._clip.duration/n,this.stopWarping()}syncWith(n){return this.time=n.time,this.timeScale=n.timeScale,this.stopWarping()}halt(n){return this.warp(this._effectiveTimeScale,0,n)}warp(n,e,i){const r=this._mixer,o=r.time,s=this.timeScale;let a=this._timeScaleInterpolant;null===a&&(a=r._lendControlInterpolant(),this._timeScaleInterpolant=a);const l=a.parameterPositions,c=a.sampleValues;return l[0]=o,l[1]=o+i,c[0]=n/s,c[1]=e/s,this}stopWarping(){const n=this._timeScaleInterpolant;return null!==n&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(n)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(n,e,i,r){if(!this.enabled)return void this._updateWeight(n);const o=this._startTime;if(null!==o){const l=(n-o)*i;if(l<0||0===i)return;this._startTime=null,e=i*l}e*=this._updateTimeScale(n);const s=this._updateTime(e),a=this._updateWeight(n);if(a>0){const l=this._interpolants,c=this._propertyBindings;if(this.blendMode===fP)for(let d=0,u=l.length;d!==u;++d)l[d].evaluate(s),c[d].accumulateAdditive(a);else for(let d=0,u=l.length;d!==u;++d)l[d].evaluate(s),c[d].accumulate(r,a)}}_updateWeight(n){let e=0;if(this.enabled){e=this.weight;const i=this._weightInterpolant;if(null!==i){const r=i.evaluate(n)[0];e*=r,n>i.parameterPositions[1]&&(this.stopFading(),0===r&&(this.enabled=!1))}}return this._effectiveWeight=e,e}_updateTimeScale(n){let e=0;if(!this.paused){e=this.timeScale;const i=this._timeScaleInterpolant;null!==i&&(e*=i.evaluate(n)[0],n>i.parameterPositions[1]&&(this.stopWarping(),0===e?this.paused=!0:this.timeScale=e))}return this._effectiveTimeScale=e,e}_updateTime(n){const e=this._clip.duration,i=this.loop;let r=this.time+n,o=this._loopCount;const s=i===NX;if(0===n)return-1===o||!s||1&~o?r:e-r;if(i===LX){-1===o&&(this._loopCount=0,this._setEndings(!0,!0,!1));e:{if(r>=e)r=e;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:n<0?-1:1})}}else{if(-1===o&&(n>=0?(o=0,this._setEndings(!0,0===this.repetitions,s)):this._setEndings(0===this.repetitions,!0,s)),r>=e||r<0){const a=Math.floor(r/e);r-=e*a,o+=Math.abs(a);const l=this.repetitions-o;if(l<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,r=n>0?e:0,this.time=r,this._mixer.dispatchEvent({type:"finished",action:this,direction:n>0?1:-1});else{if(1===l){const c=n<0;this._setEndings(c,!c,s)}else this._setEndings(!1,!1,s);this._loopCount=o,this.time=r,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:a})}}else this.time=r;if(s&&!(1&~o))return e-r}return r}_setEndings(n,e,i){const r=this._interpolantSettings;i?(r.endingStart=eA,r.endingEnd=eA):(r.endingStart=n?this.zeroSlopeAtStart?eA:Jp:tw,r.endingEnd=e?this.zeroSlopeAtEnd?eA:Jp:tw)}_scheduleFading(n,e,i){const r=this._mixer,o=r.time;let s=this._weightInterpolant;null===s&&(s=r._lendControlInterpolant(),this._weightInterpolant=s);const a=s.parameterPositions,l=s.sampleValues;return a[0]=o,l[0]=e,a[1]=o+n,l[1]=i,this}}class FZ extends Uc{constructor(n){super(),this._root=n,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(n,e){const i=n._localRoot||this._root,r=n._clip.tracks,o=r.length,s=n._propertyBindings,a=n._interpolants,l=i.uuid,c=this._bindingsByRootAndName;let d=c[l];void 0===d&&(d={},c[l]=d);for(let u=0;u!==o;++u){const h=r[u],m=h.name;let A=d[m];if(void 0!==A)s[u]=A;else{if(A=s[u],void 0!==A){null===A._cacheIndex&&(++A.referenceCount,this._addInactiveBinding(A,l,m));continue}A=new MZ(la.create(i,m,e&&e._propertyBindings[u].binding.parsedPath),h.ValueTypeName,h.getValueSize()),++A.referenceCount,this._addInactiveBinding(A,l,m),s[u]=A}a[u].resultBuffer=A.buffer}}_activateAction(n){if(!this._isActiveAction(n)){if(null===n._cacheIndex){const i=(n._localRoot||this._root).uuid,r=n._clip.uuid,o=this._actionsByClip[r];this._bindAction(n,o&&o.knownActions[0]),this._addInactiveAction(n,r,i)}const e=n._propertyBindings;for(let i=0,r=e.length;i!==r;++i){const o=e[i];0==o.useCount++&&(this._lendBinding(o),o.saveOriginalState())}this._lendAction(n)}}_deactivateAction(n){if(this._isActiveAction(n)){const e=n._propertyBindings;for(let i=0,r=e.length;i!==r;++i){const o=e[i];0==--o.useCount&&(o.restoreOriginalState(),this._takeBackBinding(o))}this._takeBackAction(n)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;const n=this;this.stats={actions:{get total(){return n._actions.length},get inUse(){return n._nActiveActions}},bindings:{get total(){return n._bindings.length},get inUse(){return n._nActiveBindings}},controlInterpolants:{get total(){return n._controlInterpolants.length},get inUse(){return n._nActiveControlInterpolants}}}}_isActiveAction(n){const e=n._cacheIndex;return null!==e&&e=0;--i)n[i].stop();return this}update(n){const e=this._actions,i=this._nActiveActions,r=this.time+=n*=this.timeScale,o=Math.sign(n),s=this._accuIndex^=1;for(let c=0;c!==i;++c)e[c]._update(r,n,o,s);const a=this._bindings,l=this._nActiveBindings;for(let c=0;c!==l;++c)a[c].apply(s);return this}setTime(n){this.time=0;for(let e=0;ethis.max.x||n.ythis.max.y)}containsBox(n){return this.min.x<=n.min.x&&n.max.x<=this.max.x&&this.min.y<=n.min.y&&n.max.y<=this.max.y}getParameter(n,e){return void 0===e&&(console.warn("THREE.Box2: .getParameter() target is now required"),e=new ut),e.set((n.x-this.min.x)/(this.max.x-this.min.x),(n.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(n){return!(n.max.xthis.max.x||n.max.ythis.max.y)}clampPoint(n,e){return void 0===e&&(console.warn("THREE.Box2: .clampPoint() target is now required"),e=new ut),e.copy(n).clamp(this.min,this.max)}distanceToPoint(n){return IZ.copy(n).clamp(this.min,this.max).sub(n).length()}intersect(n){return this.min.max(n.min),this.max.min(n.max),this}union(n){return this.min.min(n.min),this.max.max(n.max),this}translate(n){return this.min.add(n),this.max.add(n),this}equals(n){return n.min.equals(this.min)&&n.max.equals(this.max)}}Fb.prototype.isBox2=!0;const BZ=new Y,WT=new Y;class DZ{constructor(n=new Y,e=new Y){this.start=n,this.end=e}set(n,e){return this.start.copy(n),this.end.copy(e),this}copy(n){return this.start.copy(n.start),this.end.copy(n.end),this}getCenter(n){return void 0===n&&(console.warn("THREE.Line3: .getCenter() target is now required"),n=new Y),n.addVectors(this.start,this.end).multiplyScalar(.5)}delta(n){return void 0===n&&(console.warn("THREE.Line3: .delta() target is now required"),n=new Y),n.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(n,e){return void 0===e&&(console.warn("THREE.Line3: .at() target is now required"),e=new Y),this.delta(e).multiplyScalar(n).add(this.start)}closestPointToPointParameter(n,e){BZ.subVectors(n,this.start),WT.subVectors(this.end,this.start);const i=WT.dot(WT);let o=WT.dot(BZ)/i;return e&&(o=Jn.clamp(o,0,1)),o}closestPointToPoint(n,e,i){const r=this.closestPointToPointParameter(n,e);return void 0===i&&(console.warn("THREE.Line3: .closestPointToPoint() target is now required"),i=new Y),this.delta(i).multiplyScalar(r).add(this.start)}applyMatrix4(n){return this.start.applyMatrix4(n),this.end.applyMatrix4(n),this}equals(n){return n.start.equals(this.start)&&n.end.equals(this.end)}clone(){return(new this.constructor).copy(this)}}function Xw(t){$n.call(this),this.material=t,this.render=function(){},this.hasPositions=!1,this.hasNormals=!1,this.hasColors=!1,this.hasUvs=!1,this.positionArray=null,this.normalArray=null,this.colorArray=null,this.uvArray=null,this.count=0}(Xw.prototype=Object.create($n.prototype)).constructor=Xw,Xw.prototype.isImmediateRenderObject=!0;const RZ=new Y;class v3e extends $n{constructor(n,e){super(),this.light=n,this.light.updateMatrixWorld(),this.matrix=n.matrixWorld,this.matrixAutoUpdate=!1,this.color=e;const i=new Bn,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 s=0,a=1,l=32;s.99999)this.quaternion.set(0,0,0,1);else if(n.y<-.99999)this.quaternion.set(1,0,0,0);else{QZ.set(n.z,0,-n.x).normalize();const e=Math.acos(n.y);this.quaternion.setFromAxisAngle(QZ,e)}}setLength(n,e=.2*n,i=.2*e){this.line.scale.set(1,Math.max(1e-4,n-e),1),this.line.updateMatrix(),this.cone.scale.set(i,e,i),this.cone.position.y=n,this.cone.updateMatrix()}setColor(n){this.line.material.color.set(n),this.cone.material.color.set(n)}copy(n){return super.copy(n,!1),this.line.copy(n.line),this.cone.copy(n.cone),this}}class H5 extends Da{constructor(n=1){const e=[0,0,0,n,0,0,0,0,0,0,n,0,0,0,0,0,0,n],r=new Bn;r.setAttribute("position",new wn(e,3)),r.setAttribute("color",new wn([1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],3)),super(r,new ls({vertexColors:!0,toneMapped:!1})),this.type="AxesHelper"}}const GZ=new Float32Array(1),F3e=new Int32Array(GZ.buffer),k3e={toHalfFloat:function(t){GZ[0]=t;const n=F3e[0];let e=n>>16&32768,i=n>>12&2047;const r=n>>23&255;return r<103?e:r>142?(e|=31744,e|=(255==r?0:1)&&8388607&n,e):r<113?(i|=2048,e|=(i>>114-r)+(i>>113-r&1),e):(e|=r-112<<10|i>>1,e+=1&i,e)}},tu=Math.pow(2,8),qZ=[.125,.215,.35,.446,.526,.582],WZ=5+qZ.length,nu={[ka]:0,[nw]:1,[DS]:2,[AP]:3,[gP]:4,[bP]:5,[BS]:6},xA=new qc({side:Wo,depthWrite:!1,depthTest:!1}),I3e=new Ci(new sc,xA),V5=new gA,{_lodPlanes:Yw,_sizeLods:$Z,_sigmas:ZT}=R3e(),jZ=new rn;let Q5=null;const CA=(1+Math.sqrt(5))/2,Bb=1/CA,KZ=[new Y(1,1,1),new Y(-1,1,1),new Y(1,1,-1),new Y(-1,1,-1),new Y(0,CA,Bb),new Y(0,CA,-Bb),new Y(Bb,0,CA),new Y(-Bb,0,CA),new Y(CA,Bb,0),new Y(-CA,Bb,0)];function XZ(t){const n=Math.max(t.r,t.g,t.b),e=Math.min(Math.max(Math.ceil(Math.log2(n)),-128),127);return t.multiplyScalar(Math.pow(2,-e)),(e+128)/255}class B3e{constructor(n){this._renderer=n,this._pingPongRenderTarget=null,this._blurMaterial=function L3e(t){const n=new Float32Array(t),e=new Y(0,1,0);return new Mb({name:"SphericalGaussianBlur",defines:{n:t},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:n},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:e},inputEncoding:{value:nu[ka]},outputEncoding:{value:nu[ka]}},vertexShader:"\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute vec3 position;\n\t\tattribute vec2 uv;\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t",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\n\n\t\tuniform int inputEncoding;\n\t\tuniform int outputEncoding;\n\n\t\t#include \n\n\t\tvec4 inputTexelToLinear( vec4 value ) {\n\n\t\t\tif ( inputEncoding == 0 ) {\n\n\t\t\t\treturn value;\n\n\t\t\t} else if ( inputEncoding == 1 ) {\n\n\t\t\t\treturn sRGBToLinear( value );\n\n\t\t\t} else if ( inputEncoding == 2 ) {\n\n\t\t\t\treturn RGBEToLinear( value );\n\n\t\t\t} else if ( inputEncoding == 3 ) {\n\n\t\t\t\treturn RGBMToLinear( value, 7.0 );\n\n\t\t\t} else if ( inputEncoding == 4 ) {\n\n\t\t\t\treturn RGBMToLinear( value, 16.0 );\n\n\t\t\t} else if ( inputEncoding == 5 ) {\n\n\t\t\t\treturn RGBDToLinear( value, 256.0 );\n\n\t\t\t} else {\n\n\t\t\t\treturn GammaToLinear( value, 2.2 );\n\n\t\t\t}\n\n\t\t}\n\n\t\tvec4 linearToOutputTexel( vec4 value ) {\n\n\t\t\tif ( outputEncoding == 0 ) {\n\n\t\t\t\treturn value;\n\n\t\t\t} else if ( outputEncoding == 1 ) {\n\n\t\t\t\treturn LinearTosRGB( value );\n\n\t\t\t} else if ( outputEncoding == 2 ) {\n\n\t\t\t\treturn LinearToRGBE( value );\n\n\t\t\t} else if ( outputEncoding == 3 ) {\n\n\t\t\t\treturn LinearToRGBM( value, 7.0 );\n\n\t\t\t} else if ( outputEncoding == 4 ) {\n\n\t\t\t\treturn LinearToRGBM( value, 16.0 );\n\n\t\t\t} else if ( outputEncoding == 5 ) {\n\n\t\t\t\treturn LinearToRGBD( value, 256.0 );\n\n\t\t\t} else {\n\n\t\t\t\treturn LinearToGamma( value, 2.2 );\n\n\t\t\t}\n\n\t\t}\n\n\t\tvec4 envMapTexelToLinear( vec4 color ) {\n\n\t\t\treturn inputTexelToLinear( color );\n\n\t\t}\n\t\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\tgl_FragColor = linearToOutputTexel( gl_FragColor );\n\n\t\t\t}\n\t\t",blending:hh,depthTest:!1,depthWrite:!1})}(20),this._equirectShader=null,this._cubemapShader=null,this._compileMaterial(this._blurMaterial)}fromScene(n,e=0,i=.1,r=100){Q5=this._renderer.getRenderTarget();const o=this._allocateTargets();return this._sceneToCubeUV(n,i,r,o),e>0&&this._blur(o,0,0,e),this._applyPMREM(o),this._cleanup(o),o}fromEquirectangular(n){return this._fromTexture(n)}fromCubemap(n){return this._fromTexture(n)}compileCubemapShader(){null===this._cubemapShader&&(this._cubemapShader=JZ(),this._compileMaterial(this._cubemapShader))}compileEquirectangularShader(){null===this._equirectShader&&(this._equirectShader=ZZ(),this._compileMaterial(this._equirectShader))}dispose(){this._blurMaterial.dispose(),null!==this._cubemapShader&&this._cubemapShader.dispose(),null!==this._equirectShader&&this._equirectShader.dispose();for(let n=0;n2?tu:0,tu,tu),d.setRenderTarget(r),A&&d.render(I3e,a),d.render(n,a)}d.toneMapping=m,d.outputEncoding=h,d.autoClear=u}_textureToCubeUV(n,e){const i=this._renderer;n.isCubeTexture?null==this._cubemapShader&&(this._cubemapShader=JZ()):null==this._equirectShader&&(this._equirectShader=ZZ());const r=n.isCubeTexture?this._cubemapShader:this._equirectShader,o=new Ci(Yw[0],r),s=r.uniforms;s.envMap.value=n,n.isCubeTexture||s.texelSize.value.set(1/n.image.width,1/n.image.height),s.inputEncoding.value=nu[n.encoding],s.outputEncoding.value=nu[e.texture.encoding],JT(e,0,0,3*tu,2*tu),i.setRenderTarget(e),i.render(o,V5)}_applyPMREM(n){const e=this._renderer,i=e.autoClear;e.autoClear=!1;for(let r=1;r20&&console.warn(`sigmaRadians, ${o}, is too large and will clip, as it requested ${x} samples when the maximum is set to 20`);const C=[];let w=0;for(let P=0;P<20;++P){const $=P/v,ee=Math.exp(-$*$/2);C.push(ee),0==P?w+=ee:P4?r-8+4:0),3*S,2*S),l.setRenderTarget(e),l.render(u,V5)}}function R3e(){const t=[],n=[],e=[];let i=8;for(let r=0;r4?s=qZ[r-8+4-1]:0==r&&(s=0),e.push(s);const a=1/(o-1),l=-a/2,c=1+a/2,d=[l,l,c,l,c,c,l,l,c,c,l,c],u=6,h=6,m=3,A=2,v=1,x=new Float32Array(m*h*u),C=new Float32Array(A*h*u),w=new Float32Array(v*h*u);for(let M=0;M2?0:-1;x.set([B,P,0,B+2/3,P,0,B+2/3,P+1,0,B,P,0,B+2/3,P+1,0,B,P+1,0],m*h*M),C.set(d,A*h*M),w.set([M,M,M,M,M,M],v*h*M)}const S=new Bn;S.setAttribute("position",new Nn(x,m)),S.setAttribute("uv",new Nn(C,A)),S.setAttribute("faceIndex",new Nn(w,v)),t.push(S),i>4&&i--}return{_lodPlanes:t,_sizeLods:n,_sigmas:e}}function YZ(t){const n=new Hc(3*tu,3*tu,t);return n.texture.mapping=K0,n.texture.name="PMREM.cubeUv",n.scissorTest=!0,n}function JT(t,n,e,i,r){t.viewport.set(n,e,i,r),t.scissor.set(n,e,i,r)}function ZZ(){const t=new ut(1,1);return new Mb({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null},texelSize:{value:t},inputEncoding:{value:nu[ka]},outputEncoding:{value:nu[ka]}},vertexShader:"\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute vec3 position;\n\t\tattribute vec2 uv;\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t",fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\t\t\tuniform vec2 texelSize;\n\n\t\t\t\n\n\t\tuniform int inputEncoding;\n\t\tuniform int outputEncoding;\n\n\t\t#include \n\n\t\tvec4 inputTexelToLinear( vec4 value ) {\n\n\t\t\tif ( inputEncoding == 0 ) {\n\n\t\t\t\treturn value;\n\n\t\t\t} else if ( inputEncoding == 1 ) {\n\n\t\t\t\treturn sRGBToLinear( value );\n\n\t\t\t} else if ( inputEncoding == 2 ) {\n\n\t\t\t\treturn RGBEToLinear( value );\n\n\t\t\t} else if ( inputEncoding == 3 ) {\n\n\t\t\t\treturn RGBMToLinear( value, 7.0 );\n\n\t\t\t} else if ( inputEncoding == 4 ) {\n\n\t\t\t\treturn RGBMToLinear( value, 16.0 );\n\n\t\t\t} else if ( inputEncoding == 5 ) {\n\n\t\t\t\treturn RGBDToLinear( value, 256.0 );\n\n\t\t\t} else {\n\n\t\t\t\treturn GammaToLinear( value, 2.2 );\n\n\t\t\t}\n\n\t\t}\n\n\t\tvec4 linearToOutputTexel( vec4 value ) {\n\n\t\t\tif ( outputEncoding == 0 ) {\n\n\t\t\t\treturn value;\n\n\t\t\t} else if ( outputEncoding == 1 ) {\n\n\t\t\t\treturn LinearTosRGB( value );\n\n\t\t\t} else if ( outputEncoding == 2 ) {\n\n\t\t\t\treturn LinearToRGBE( value );\n\n\t\t\t} else if ( outputEncoding == 3 ) {\n\n\t\t\t\treturn LinearToRGBM( value, 7.0 );\n\n\t\t\t} else if ( outputEncoding == 4 ) {\n\n\t\t\t\treturn LinearToRGBM( value, 16.0 );\n\n\t\t\t} else if ( outputEncoding == 5 ) {\n\n\t\t\t\treturn LinearToRGBD( value, 256.0 );\n\n\t\t\t} else {\n\n\t\t\t\treturn LinearToGamma( value, 2.2 );\n\n\t\t\t}\n\n\t\t}\n\n\t\tvec4 envMapTexelToLinear( vec4 color ) {\n\n\t\t\treturn inputTexelToLinear( color );\n\n\t\t}\n\t\n\n\t\t\t#include \n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\n\t\t\t\tvec3 outputDirection = normalize( vOutputDirection );\n\t\t\t\tvec2 uv = equirectUv( outputDirection );\n\n\t\t\t\tvec2 f = fract( uv / texelSize - 0.5 );\n\t\t\t\tuv -= f * texelSize;\n\t\t\t\tvec3 tl = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;\n\t\t\t\tuv.x += texelSize.x;\n\t\t\t\tvec3 tr = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;\n\t\t\t\tuv.y += texelSize.y;\n\t\t\t\tvec3 br = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;\n\t\t\t\tuv.x -= texelSize.x;\n\t\t\t\tvec3 bl = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;\n\n\t\t\t\tvec3 tm = mix( tl, tr, f.x );\n\t\t\t\tvec3 bm = mix( bl, br, f.x );\n\t\t\t\tgl_FragColor.rgb = mix( tm, bm, f.y );\n\n\t\t\t\tgl_FragColor = linearToOutputTexel( gl_FragColor );\n\n\t\t\t}\n\t\t",blending:hh,depthTest:!1,depthWrite:!1})}function JZ(){return new Mb({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},inputEncoding:{value:nu[ka]},outputEncoding:{value:nu[ka]}},vertexShader:"\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute vec3 position;\n\t\tattribute vec2 uv;\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t",fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform samplerCube envMap;\n\n\t\t\t\n\n\t\tuniform int inputEncoding;\n\t\tuniform int outputEncoding;\n\n\t\t#include \n\n\t\tvec4 inputTexelToLinear( vec4 value ) {\n\n\t\t\tif ( inputEncoding == 0 ) {\n\n\t\t\t\treturn value;\n\n\t\t\t} else if ( inputEncoding == 1 ) {\n\n\t\t\t\treturn sRGBToLinear( value );\n\n\t\t\t} else if ( inputEncoding == 2 ) {\n\n\t\t\t\treturn RGBEToLinear( value );\n\n\t\t\t} else if ( inputEncoding == 3 ) {\n\n\t\t\t\treturn RGBMToLinear( value, 7.0 );\n\n\t\t\t} else if ( inputEncoding == 4 ) {\n\n\t\t\t\treturn RGBMToLinear( value, 16.0 );\n\n\t\t\t} else if ( inputEncoding == 5 ) {\n\n\t\t\t\treturn RGBDToLinear( value, 256.0 );\n\n\t\t\t} else {\n\n\t\t\t\treturn GammaToLinear( value, 2.2 );\n\n\t\t\t}\n\n\t\t}\n\n\t\tvec4 linearToOutputTexel( vec4 value ) {\n\n\t\t\tif ( outputEncoding == 0 ) {\n\n\t\t\t\treturn value;\n\n\t\t\t} else if ( outputEncoding == 1 ) {\n\n\t\t\t\treturn LinearTosRGB( value );\n\n\t\t\t} else if ( outputEncoding == 2 ) {\n\n\t\t\t\treturn LinearToRGBE( value );\n\n\t\t\t} else if ( outputEncoding == 3 ) {\n\n\t\t\t\treturn LinearToRGBM( value, 7.0 );\n\n\t\t\t} else if ( outputEncoding == 4 ) {\n\n\t\t\t\treturn LinearToRGBM( value, 16.0 );\n\n\t\t\t} else if ( outputEncoding == 5 ) {\n\n\t\t\t\treturn LinearToRGBD( value, 256.0 );\n\n\t\t\t} else {\n\n\t\t\t\treturn LinearToGamma( value, 2.2 );\n\n\t\t\t}\n\n\t\t}\n\n\t\tvec4 envMapTexelToLinear( vec4 color ) {\n\n\t\t\treturn inputTexelToLinear( color );\n\n\t\t}\n\t\n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t\t\t\tgl_FragColor.rgb = envMapTexelToLinear( textureCube( envMap, vec3( - vOutputDirection.x, vOutputDirection.yz ) ) ).rgb;\n\t\t\t\tgl_FragColor = linearToOutputTexel( gl_FragColor );\n\n\t\t\t}\n\t\t",blending:hh,depthTest:!1,depthWrite:!1})}const P3e=0,N3e=1,O3e=0,U3e=1,H3e=2;function V3e(t){return console.warn("THREE.MeshFaceMaterial has been removed. Use an Array instead."),t}function Q3e(t=[]){return console.warn("THREE.MultiMaterial has been removed. Use an Array instead."),t.isMultiMaterial=!0,t.materials=t,t.clone=function(){return t.slice()},t}function z3e(t,n){return console.warn("THREE.PointCloud has been renamed to THREE.Points."),new wb(t,n)}function G3e(t){return console.warn("THREE.Particle has been renamed to THREE.Sprite."),new yb(t)}function q3e(t,n){return console.warn("THREE.ParticleSystem has been renamed to THREE.Points."),new wb(t,n)}function W3e(t){return console.warn("THREE.PointCloudMaterial has been renamed to THREE.PointsMaterial."),new uA(t)}function $3e(t){return console.warn("THREE.ParticleBasicMaterial has been renamed to THREE.PointsMaterial."),new uA(t)}function j3e(t){return console.warn("THREE.ParticleSystemMaterial has been renamed to THREE.PointsMaterial."),new uA(t)}function K3e(t,n,e){return console.warn("THREE.Vertex has been removed. Use THREE.Vector3 instead."),new Y(t,n,e)}function X3e(t,n){return console.warn("THREE.DynamicBufferAttribute has been removed. Use new THREE.BufferAttribute().setUsage( THREE.DynamicDrawUsage ) instead."),new Nn(t,n).setUsage(nA)}function Y3e(t,n){return console.warn("THREE.Int8Attribute has been removed. Use new THREE.Int8BufferAttribute() instead."),new aw(t,n)}function Z3e(t,n){return console.warn("THREE.Uint8Attribute has been removed. Use new THREE.Uint8BufferAttribute() instead."),new lw(t,n)}function J3e(t,n){return console.warn("THREE.Uint8ClampedAttribute has been removed. Use new THREE.Uint8ClampedBufferAttribute() instead."),new cw(t,n)}function eke(t,n){return console.warn("THREE.Int16Attribute has been removed. Use new THREE.Int16BufferAttribute() instead."),new dw(t,n)}function tke(t,n){return console.warn("THREE.Uint16Attribute has been removed. Use new THREE.Uint16BufferAttribute() instead."),new aA(t,n)}function nke(t,n){return console.warn("THREE.Int32Attribute has been removed. Use new THREE.Int32BufferAttribute() instead."),new uw(t,n)}function ike(t,n){return console.warn("THREE.Uint32Attribute has been removed. Use new THREE.Uint32BufferAttribute() instead."),new lA(t,n)}function rke(t,n){return console.warn("THREE.Float32Attribute has been removed. Use new THREE.Float32BufferAttribute() instead."),new wn(t,n)}function oke(t,n){return console.warn("THREE.Float64Attribute has been removed. Use new THREE.Float64BufferAttribute() instead."),new fw(t,n)}function ske(t){return console.warn("THREE.AxisHelper has been renamed to THREE.AxesHelper."),new H5(t)}function ake(t,n){return console.warn("THREE.BoundingBoxHelper has been deprecated. Creating a THREE.BoxHelper instead."),new O5(t,n)}function lke(t,n){return console.warn("THREE.EdgesHelper has been removed. Use THREE.EdgesGeometry instead."),new Da(new e5(t.geometry),new ls({color:void 0!==n?n:16777215}))}function cke(t,n){return console.warn("THREE.WireframeHelper has been removed. Use THREE.WireframeGeometry instead."),new Da(new i5(t.geometry),new ls({color:void 0!==n?n:16777215}))}function dke(t){return console.warn("THREE.XHRLoader has been renamed to THREE.FileLoader."),new Ll(t)}function uke(t){return console.warn("THREE.BinaryTextureLoader has been renamed to THREE.DataTextureLoader."),new PT(t)}function hke(t,n,e){return console.warn("THREE.WebGLRenderTargetCube( width, height, options ) is now WebGLCubeRenderTarget( size, options )."),new eT(t,e)}function fke(){console.error("THREE.CanvasRenderer has been removed")}function mke(){console.error("THREE.JSONLoader has been removed.")}La.create=function(t,n){return console.log("THREE.Curve.create() has been deprecated"),t.prototype=Object.create(La.prototype),t.prototype.constructor=t,t.prototype.getPoint=n,t},AA.prototype.fromPoints=function(t){return console.warn("THREE.Path: .fromPoints() has been renamed to .setFromPoints()."),this.setFromPoints(t)},UZ.prototype.setColors=function(){console.error("THREE.GridHelper: setColors() has been deprecated, pass them in the constructor instead.")},LZ.prototype.update=function(){console.error("THREE.SkeletonHelper: update() no longer needs to be called.")},bo.prototype.extractUrlBase=function(t){return console.warn("THREE.Loader: .extractUrlBase() has been deprecated. Use THREE.LoaderUtils.extractUrlBase() instead."),M5.extractUrlBase(t)},bo.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.")}},Fb.prototype.center=function(t){return console.warn("THREE.Box2: .center() has been renamed to .getCenter()."),this.getCenter(t)},Fb.prototype.empty=function(){return console.warn("THREE.Box2: .empty() has been renamed to .isEmpty()."),this.isEmpty()},Fb.prototype.isIntersectionBox=function(t){return console.warn("THREE.Box2: .isIntersectionBox() has been renamed to .intersectsBox()."),this.intersectsBox(t)},Fb.prototype.size=function(t){return console.warn("THREE.Box2: .size() has been renamed to .getSize()."),this.getSize(t)},ys.prototype.center=function(t){return console.warn("THREE.Box3: .center() has been renamed to .getCenter()."),this.getCenter(t)},ys.prototype.empty=function(){return console.warn("THREE.Box3: .empty() has been renamed to .isEmpty()."),this.isEmpty()},ys.prototype.isIntersectionBox=function(t){return console.warn("THREE.Box3: .isIntersectionBox() has been renamed to .intersectsBox()."),this.intersectsBox(t)},ys.prototype.isIntersectionSphere=function(t){return console.warn("THREE.Box3: .isIntersectionSphere() has been renamed to .intersectsSphere()."),this.intersectsSphere(t)},ys.prototype.size=function(t){return console.warn("THREE.Box3: .size() has been renamed to .getSize()."),this.getSize(t)},Zd.prototype.empty=function(){return console.warn("THREE.Sphere: .empty() has been renamed to .isEmpty()."),this.isEmpty()},Aw.prototype.setFromMatrix=function(t){return console.warn("THREE.Frustum: .setFromMatrix() has been renamed to .setFromProjectionMatrix()."),this.setFromProjectionMatrix(t)},DZ.prototype.center=function(t){return console.warn("THREE.Line3: .center() has been renamed to .getCenter()."),this.getCenter(t)},Jn.random16=function(){return console.warn("THREE.Math: .random16() has been deprecated. Use Math.random() instead."),Math.random()},Jn.nearestPowerOfTwo=function(t){return console.warn("THREE.Math: .nearestPowerOfTwo() has been renamed to .floorPowerOfTwo()."),Jn.floorPowerOfTwo(t)},Jn.nextPowerOfTwo=function(t){return console.warn("THREE.Math: .nextPowerOfTwo() has been renamed to .ceilPowerOfTwo()."),Jn.ceilPowerOfTwo(t)},ro.prototype.flattenToArrayOffset=function(t,n){return console.warn("THREE.Matrix3: .flattenToArrayOffset() has been deprecated. Use .toArray() instead."),this.toArray(t,n)},ro.prototype.multiplyVector3=function(t){return console.warn("THREE.Matrix3: .multiplyVector3() has been removed. Use vector.applyMatrix3( matrix ) instead."),t.applyMatrix3(this)},ro.prototype.multiplyVector3Array=function(){console.error("THREE.Matrix3: .multiplyVector3Array() has been removed.")},ro.prototype.applyToBufferAttribute=function(t){return console.warn("THREE.Matrix3: .applyToBufferAttribute() has been removed. Use attribute.applyMatrix3( matrix ) instead."),t.applyMatrix3(this)},ro.prototype.applyToVector3Array=function(){console.error("THREE.Matrix3: .applyToVector3Array() has been removed.")},ro.prototype.getInverse=function(t){return console.warn("THREE.Matrix3: .getInverse() has been removed. Use matrixInv.copy( matrix ).invert(); instead."),this.copy(t).invert()},Hn.prototype.extractPosition=function(t){return console.warn("THREE.Matrix4: .extractPosition() has been renamed to .copyPosition()."),this.copyPosition(t)},Hn.prototype.flattenToArrayOffset=function(t,n){return console.warn("THREE.Matrix4: .flattenToArrayOffset() has been deprecated. Use .toArray() instead."),this.toArray(t,n)},Hn.prototype.getPosition=function(){return console.warn("THREE.Matrix4: .getPosition() has been removed. Use Vector3.setFromMatrixPosition( matrix ) instead."),(new Y).setFromMatrixColumn(this,3)},Hn.prototype.setRotationFromQuaternion=function(t){return console.warn("THREE.Matrix4: .setRotationFromQuaternion() has been renamed to .makeRotationFromQuaternion()."),this.makeRotationFromQuaternion(t)},Hn.prototype.multiplyToArray=function(){console.warn("THREE.Matrix4: .multiplyToArray() has been removed.")},Hn.prototype.multiplyVector3=function(t){return console.warn("THREE.Matrix4: .multiplyVector3() has been removed. Use vector.applyMatrix4( matrix ) instead."),t.applyMatrix4(this)},Hn.prototype.multiplyVector4=function(t){return console.warn("THREE.Matrix4: .multiplyVector4() has been removed. Use vector.applyMatrix4( matrix ) instead."),t.applyMatrix4(this)},Hn.prototype.multiplyVector3Array=function(){console.error("THREE.Matrix4: .multiplyVector3Array() has been removed.")},Hn.prototype.rotateAxis=function(t){console.warn("THREE.Matrix4: .rotateAxis() has been removed. Use Vector3.transformDirection( matrix ) instead."),t.transformDirection(this)},Hn.prototype.crossVector=function(t){return console.warn("THREE.Matrix4: .crossVector() has been removed. Use vector.applyMatrix4( matrix ) instead."),t.applyMatrix4(this)},Hn.prototype.translate=function(){console.error("THREE.Matrix4: .translate() has been removed.")},Hn.prototype.rotateX=function(){console.error("THREE.Matrix4: .rotateX() has been removed.")},Hn.prototype.rotateY=function(){console.error("THREE.Matrix4: .rotateY() has been removed.")},Hn.prototype.rotateZ=function(){console.error("THREE.Matrix4: .rotateZ() has been removed.")},Hn.prototype.rotateByAxis=function(){console.error("THREE.Matrix4: .rotateByAxis() has been removed.")},Hn.prototype.applyToBufferAttribute=function(t){return console.warn("THREE.Matrix4: .applyToBufferAttribute() has been removed. Use attribute.applyMatrix4( matrix ) instead."),t.applyMatrix4(this)},Hn.prototype.applyToVector3Array=function(){console.error("THREE.Matrix4: .applyToVector3Array() has been removed.")},Hn.prototype.makeFrustum=function(t,n,e,i,r,o){return console.warn("THREE.Matrix4: .makeFrustum() has been removed. Use .makePerspective( left, right, top, bottom, near, far ) instead."),this.makePerspective(t,n,i,e,r,o)},Hn.prototype.getInverse=function(t){return console.warn("THREE.Matrix4: .getInverse() has been removed. Use matrixInv.copy( matrix ).invert(); instead."),this.copy(t).invert()},Qc.prototype.isIntersectionLine=function(t){return console.warn("THREE.Plane: .isIntersectionLine() has been renamed to .intersectsLine()."),this.intersectsLine(t)},as.prototype.multiplyVector3=function(t){return console.warn("THREE.Quaternion: .multiplyVector3() has been removed. Use is now vector.applyQuaternion( quaternion ) instead."),t.applyQuaternion(this)},as.prototype.inverse=function(){return console.warn("THREE.Quaternion: .inverse() has been renamed to invert()."),this.invert()},Ah.prototype.isIntersectionBox=function(t){return console.warn("THREE.Ray: .isIntersectionBox() has been renamed to .intersectsBox()."),this.intersectsBox(t)},Ah.prototype.isIntersectionPlane=function(t){return console.warn("THREE.Ray: .isIntersectionPlane() has been renamed to .intersectsPlane()."),this.intersectsPlane(t)},Ah.prototype.isIntersectionSphere=function(t){return console.warn("THREE.Ray: .isIntersectionSphere() has been renamed to .intersectsSphere()."),this.intersectsSphere(t)},$o.prototype.area=function(){return console.warn("THREE.Triangle: .area() has been renamed to .getArea()."),this.getArea()},$o.prototype.barycoordFromPoint=function(t,n){return console.warn("THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord()."),this.getBarycoord(t,n)},$o.prototype.midpoint=function(t){return console.warn("THREE.Triangle: .midpoint() has been renamed to .getMidpoint()."),this.getMidpoint(t)},$o.prototypenormal=function(t){return console.warn("THREE.Triangle: .normal() has been renamed to .getNormal()."),this.getNormal(t)},$o.prototype.plane=function(t){return console.warn("THREE.Triangle: .plane() has been renamed to .getPlane()."),this.getPlane(t)},$o.barycoordFromPoint=function(t,n,e,i,r){return console.warn("THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord()."),$o.getBarycoord(t,n,e,i,r)},$o.normal=function(t,n,e,i){return console.warn("THREE.Triangle: .normal() has been renamed to .getNormal()."),$o.getNormal(t,n,e,i)},wh.prototype.extractAllPoints=function(t){return console.warn("THREE.Shape: .extractAllPoints() has been removed. Use .extractPoints() instead."),this.extractPoints(t)},wh.prototype.extrude=function(t){return console.warn("THREE.Shape: .extrude() has been removed. Use ExtrudeGeometry() instead."),new $c(this,t)},wh.prototype.makeGeometry=function(t){return console.warn("THREE.Shape: .makeGeometry() has been removed. Use ShapeGeometry() instead."),new Rw(this,t)},ut.prototype.fromAttribute=function(t,n,e){return console.warn("THREE.Vector2: .fromAttribute() has been renamed to .fromBufferAttribute()."),this.fromBufferAttribute(t,n,e)},ut.prototype.distanceToManhattan=function(t){return console.warn("THREE.Vector2: .distanceToManhattan() has been renamed to .manhattanDistanceTo()."),this.manhattanDistanceTo(t)},ut.prototype.lengthManhattan=function(){return console.warn("THREE.Vector2: .lengthManhattan() has been renamed to .manhattanLength()."),this.manhattanLength()},Y.prototype.setEulerFromRotationMatrix=function(){console.error("THREE.Vector3: .setEulerFromRotationMatrix() has been removed. Use Euler.setFromRotationMatrix() instead.")},Y.prototype.setEulerFromQuaternion=function(){console.error("THREE.Vector3: .setEulerFromQuaternion() has been removed. Use Euler.setFromQuaternion() instead.")},Y.prototype.getPositionFromMatrix=function(t){return console.warn("THREE.Vector3: .getPositionFromMatrix() has been renamed to .setFromMatrixPosition()."),this.setFromMatrixPosition(t)},Y.prototype.getScaleFromMatrix=function(t){return console.warn("THREE.Vector3: .getScaleFromMatrix() has been renamed to .setFromMatrixScale()."),this.setFromMatrixScale(t)},Y.prototype.getColumnFromMatrix=function(t,n){return console.warn("THREE.Vector3: .getColumnFromMatrix() has been renamed to .setFromMatrixColumn()."),this.setFromMatrixColumn(n,t)},Y.prototype.applyProjection=function(t){return console.warn("THREE.Vector3: .applyProjection() has been removed. Use .applyMatrix4( m ) instead."),this.applyMatrix4(t)},Y.prototype.fromAttribute=function(t,n,e){return console.warn("THREE.Vector3: .fromAttribute() has been renamed to .fromBufferAttribute()."),this.fromBufferAttribute(t,n,e)},Y.prototype.distanceToManhattan=function(t){return console.warn("THREE.Vector3: .distanceToManhattan() has been renamed to .manhattanDistanceTo()."),this.manhattanDistanceTo(t)},Y.prototype.lengthManhattan=function(){return console.warn("THREE.Vector3: .lengthManhattan() has been renamed to .manhattanLength()."),this.manhattanLength()},Cr.prototype.fromAttribute=function(t,n,e){return console.warn("THREE.Vector4: .fromAttribute() has been renamed to .fromBufferAttribute()."),this.fromBufferAttribute(t,n,e)},Cr.prototype.lengthManhattan=function(){return console.warn("THREE.Vector4: .lengthManhattan() has been renamed to .manhattanLength()."),this.manhattanLength()},$n.prototype.getChildByName=function(t){return console.warn("THREE.Object3D: .getChildByName() has been renamed to .getObjectByName()."),this.getObjectByName(t)},$n.prototype.renderDepth=function(){console.warn("THREE.Object3D: .renderDepth has been removed. Use .renderOrder, instead.")},$n.prototype.translate=function(t,n){return console.warn("THREE.Object3D: .translate() has been removed. Use .translateOnAxis( axis, distance ) instead."),this.translateOnAxis(n,t)},$n.prototype.getWorldRotation=function(){console.error("THREE.Object3D: .getWorldRotation() has been removed. Use THREE.Object3D.getWorldQuaternion( target ) instead.")},$n.prototype.applyMatrix=function(t){return console.warn("THREE.Object3D: .applyMatrix() has been renamed to .applyMatrix4()."),this.applyMatrix4(t)},Object.defineProperties($n.prototype,{eulerOrder:{get:function(){return console.warn("THREE.Object3D: .eulerOrder is now .rotation.order."),this.rotation.order},set:function(t){console.warn("THREE.Object3D: .eulerOrder is now .rotation.order."),this.rotation.order=t}},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.")}}}),Ci.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(Ci.prototype,{drawMode:{get:function(){return console.error("THREE.Mesh: .drawMode has been removed. The renderer now always assumes THREE.TrianglesDrawMode."),mP},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.")}}}),Object.defineProperties($P.prototype,{objects:{get:function(){return console.warn("THREE.LOD: .objects has been renamed to .levels."),this.levels}}}),Object.defineProperty(Tw.prototype,"useVertexTexture",{get:function(){console.warn("THREE.Skeleton: useVertexTexture has been removed.")},set:function(){console.warn("THREE.Skeleton: useVertexTexture has been removed.")}}),Mw.prototype.initBones=function(){console.error("THREE.SkinnedMesh: initBones() has been removed.")},Object.defineProperty(La.prototype,"__arcLengthDivisions",{get:function(){return console.warn("THREE.Curve: .__arcLengthDivisions is now .arcLengthDivisions."),this.arcLengthDivisions},set:function(t){console.warn("THREE.Curve: .__arcLengthDivisions is now .arcLengthDivisions."),this.arcLengthDivisions=t}}),Mo.prototype.setLens=function(t,n){console.warn("THREE.PerspectiveCamera.setLens is deprecated. Use .setFocalLength and .filmGauge for a photographic setup."),void 0!==n&&(this.filmGauge=n),this.setFocalLength(t)},Object.defineProperties(Xc.prototype,{onlyShadow:{set:function(){console.warn("THREE.Light: .onlyShadow has been removed.")}},shadowCameraFov:{set:function(t){console.warn("THREE.Light: .shadowCameraFov is now .shadow.camera.fov."),this.shadow.camera.fov=t}},shadowCameraLeft:{set:function(t){console.warn("THREE.Light: .shadowCameraLeft is now .shadow.camera.left."),this.shadow.camera.left=t}},shadowCameraRight:{set:function(t){console.warn("THREE.Light: .shadowCameraRight is now .shadow.camera.right."),this.shadow.camera.right=t}},shadowCameraTop:{set:function(t){console.warn("THREE.Light: .shadowCameraTop is now .shadow.camera.top."),this.shadow.camera.top=t}},shadowCameraBottom:{set:function(t){console.warn("THREE.Light: .shadowCameraBottom is now .shadow.camera.bottom."),this.shadow.camera.bottom=t}},shadowCameraNear:{set:function(t){console.warn("THREE.Light: .shadowCameraNear is now .shadow.camera.near."),this.shadow.camera.near=t}},shadowCameraFar:{set:function(t){console.warn("THREE.Light: .shadowCameraFar is now .shadow.camera.far."),this.shadow.camera.far=t}},shadowCameraVisible:{set:function(){console.warn("THREE.Light: .shadowCameraVisible has been removed. Use new THREE.CameraHelper( light.shadow.camera ) instead.")}},shadowBias:{set:function(t){console.warn("THREE.Light: .shadowBias is now .shadow.bias."),this.shadow.bias=t}},shadowDarkness:{set:function(){console.warn("THREE.Light: .shadowDarkness has been removed.")}},shadowMapWidth:{set:function(t){console.warn("THREE.Light: .shadowMapWidth is now .shadow.mapSize.width."),this.shadow.mapSize.width=t}},shadowMapHeight:{set:function(t){console.warn("THREE.Light: .shadowMapHeight is now .shadow.mapSize.height."),this.shadow.mapSize.height=t}}}),Object.defineProperties(Nn.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===nA},set:function(){console.warn("THREE.BufferAttribute: .dynamic has been deprecated. Use .usage instead."),this.setUsage(nA)}}}),Nn.prototype.setDynamic=function(t){return console.warn("THREE.BufferAttribute: .setDynamic() has been deprecated. Use .setUsage() instead."),this.setUsage(!0===t?nA:iw),this},Nn.prototype.copyIndicesArray=function(){console.error("THREE.BufferAttribute: .copyIndicesArray() has been removed.")},Nn.prototype.setArray=function(){console.error("THREE.BufferAttribute: .setArray has been removed. Use BufferGeometry .setAttribute to replace/resize attribute buffers")},Bn.prototype.addIndex=function(t){console.warn("THREE.BufferGeometry: .addIndex() has been renamed to .setIndex()."),this.setIndex(t)},Bn.prototype.addAttribute=function(t,n){return console.warn("THREE.BufferGeometry: .addAttribute() has been renamed to .setAttribute()."),n&&n.isBufferAttribute||n&&n.isInterleavedBufferAttribute?"index"===t?(console.warn("THREE.BufferGeometry.addAttribute: Use .setIndex() for index attribute."),this.setIndex(n),this):this.setAttribute(t,n):(console.warn("THREE.BufferGeometry: .addAttribute() now expects ( name, attribute )."),this.setAttribute(t,new Nn(arguments[1],arguments[2])))},Bn.prototype.addDrawCall=function(t,n,e){void 0!==e&&console.warn("THREE.BufferGeometry: .addDrawCall() no longer supports indexOffset."),console.warn("THREE.BufferGeometry: .addDrawCall() is now .addGroup()."),this.addGroup(t,n)},Bn.prototype.clearDrawCalls=function(){console.warn("THREE.BufferGeometry: .clearDrawCalls() is now .clearGroups()."),this.clearGroups()},Bn.prototype.computeOffsets=function(){console.warn("THREE.BufferGeometry: .computeOffsets() has been removed.")},Bn.prototype.removeAttribute=function(t){return console.warn("THREE.BufferGeometry: .removeAttribute() has been renamed to .deleteAttribute()."),this.deleteAttribute(t)},Bn.prototype.applyMatrix=function(t){return console.warn("THREE.BufferGeometry: .applyMatrix() has been renamed to .applyMatrix4()."),this.applyMatrix4(t)},Object.defineProperties(Bn.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}}}),Object.defineProperties($w.prototype,{maxInstancedCount:{get:function(){return console.warn("THREE.InstancedBufferGeometry: .maxInstancedCount has been renamed to .instanceCount."),this.instanceCount},set:function(t){console.warn("THREE.InstancedBufferGeometry: .maxInstancedCount has been renamed to .instanceCount."),this.instanceCount=t}}}),Object.defineProperties(Kw.prototype,{linePrecision:{get:function(){return console.warn("THREE.Raycaster: .linePrecision has been deprecated. Use .params.Line.threshold instead."),this.params.Line.threshold},set:function(t){console.warn("THREE.Raycaster: .linePrecision has been deprecated. Use .params.Line.threshold instead."),this.params.Line.threshold=t}}}),Object.defineProperties(Ia.prototype,{dynamic:{get:function(){return console.warn("THREE.InterleavedBuffer: .length has been deprecated. Use .usage instead."),this.usage===nA},set:function(t){console.warn("THREE.InterleavedBuffer: .length has been deprecated. Use .usage instead."),this.setUsage(t)}}}),Ia.prototype.setDynamic=function(t){return console.warn("THREE.InterleavedBuffer: .setDynamic() has been deprecated. Use .setUsage() instead."),this.setUsage(!0===t?nA:iw),this},Ia.prototype.setArray=function(){console.error("THREE.InterleavedBuffer: .setArray has been removed. Use BufferGeometry .setAttribute to replace/resize attribute buffers")},$c.prototype.getArrays=function(){console.error("THREE.ExtrudeGeometry: .getArrays() has been removed.")},$c.prototype.addShapeList=function(){console.error("THREE.ExtrudeGeometry: .addShapeList() has been removed.")},$c.prototype.addShape=function(){console.error("THREE.ExtrudeGeometry: .addShape() has been removed.")},cA.prototype.dispose=function(){console.error("THREE.Scene: .dispose() has been removed.")},Object.defineProperties(qT.prototype,{dynamic:{set:function(){console.warn("THREE.Uniform: .dynamic has been removed. Use object.onBeforeRender() instead.")}},onUpdate:{value:function(){return console.warn("THREE.Uniform: .onUpdate() has been removed. Use object.onBeforeRender() instead."),this}}}),Object.defineProperties(oo.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 rn}},shading:{get:function(){console.error("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead.")},set:function(t){console.warn("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead."),this.flatShading=t===jL}},stencilMask:{get:function(){return console.warn("THREE."+this.type+": .stencilMask has been removed. Use .stencilFuncMask instead."),this.stencilFuncMask},set:function(t){console.warn("THREE."+this.type+": .stencilMask has been removed. Use .stencilFuncMask instead."),this.stencilFuncMask=t}}}),Object.defineProperties(kT.prototype,{metal:{get:function(){return console.warn("THREE.MeshPhongMaterial: .metal has been removed. Use THREE.MeshStandardMaterial instead."),!1},set:function(){console.warn("THREE.MeshPhongMaterial: .metal has been removed. Use THREE.MeshStandardMaterial instead")}}}),Object.defineProperties(dm.prototype,{transparency:{get:function(){return console.warn("THREE.MeshPhysicalMaterial: .transparency has been renamed to .transmission."),this.transmission},set:function(t){console.warn("THREE.MeshPhysicalMaterial: .transparency has been renamed to .transmission."),this.transmission=t}}}),Object.defineProperties(Ls.prototype,{derivatives:{get:function(){return console.warn("THREE.ShaderMaterial: .derivatives has been moved to .extensions.derivatives."),this.extensions.derivatives},set:function(t){console.warn("THREE. ShaderMaterial: .derivatives has been moved to .extensions.derivatives."),this.extensions.derivatives=t}}}),gr.prototype.clearTarget=function(t,n,e,i){console.warn("THREE.WebGLRenderer: .clearTarget() has been deprecated. Use .setRenderTarget() and .clear() instead."),this.setRenderTarget(t),this.clear(n,e,i)},gr.prototype.animate=function(t){console.warn("THREE.WebGLRenderer: .animate() is now .setAnimationLoop()."),this.setAnimationLoop(t)},gr.prototype.getCurrentRenderTarget=function(){return console.warn("THREE.WebGLRenderer: .getCurrentRenderTarget() is now .getRenderTarget()."),this.getRenderTarget()},gr.prototype.getMaxAnisotropy=function(){return console.warn("THREE.WebGLRenderer: .getMaxAnisotropy() is now .capabilities.getMaxAnisotropy()."),this.capabilities.getMaxAnisotropy()},gr.prototype.getPrecision=function(){return console.warn("THREE.WebGLRenderer: .getPrecision() is now .capabilities.precision."),this.capabilities.precision},gr.prototype.resetGLState=function(){return console.warn("THREE.WebGLRenderer: .resetGLState() is now .state.reset()."),this.state.reset()},gr.prototype.supportsFloatTextures=function(){return console.warn("THREE.WebGLRenderer: .supportsFloatTextures() is now .extensions.get( 'OES_texture_float' )."),this.extensions.get("OES_texture_float")},gr.prototype.supportsHalfFloatTextures=function(){return console.warn("THREE.WebGLRenderer: .supportsHalfFloatTextures() is now .extensions.get( 'OES_texture_half_float' )."),this.extensions.get("OES_texture_half_float")},gr.prototype.supportsStandardDerivatives=function(){return console.warn("THREE.WebGLRenderer: .supportsStandardDerivatives() is now .extensions.get( 'OES_standard_derivatives' )."),this.extensions.get("OES_standard_derivatives")},gr.prototype.supportsCompressedTextureS3TC=function(){return console.warn("THREE.WebGLRenderer: .supportsCompressedTextureS3TC() is now .extensions.get( 'WEBGL_compressed_texture_s3tc' )."),this.extensions.get("WEBGL_compressed_texture_s3tc")},gr.prototype.supportsCompressedTexturePVRTC=function(){return console.warn("THREE.WebGLRenderer: .supportsCompressedTexturePVRTC() is now .extensions.get( 'WEBGL_compressed_texture_pvrtc' )."),this.extensions.get("WEBGL_compressed_texture_pvrtc")},gr.prototype.supportsBlendMinMax=function(){return console.warn("THREE.WebGLRenderer: .supportsBlendMinMax() is now .extensions.get( 'EXT_blend_minmax' )."),this.extensions.get("EXT_blend_minmax")},gr.prototype.supportsVertexTextures=function(){return console.warn("THREE.WebGLRenderer: .supportsVertexTextures() is now .capabilities.vertexTextures."),this.capabilities.vertexTextures},gr.prototype.supportsInstancedArrays=function(){return console.warn("THREE.WebGLRenderer: .supportsInstancedArrays() is now .extensions.get( 'ANGLE_instanced_arrays' )."),this.extensions.get("ANGLE_instanced_arrays")},gr.prototype.enableScissorTest=function(t){console.warn("THREE.WebGLRenderer: .enableScissorTest() is now .setScissorTest()."),this.setScissorTest(t)},gr.prototype.initMaterial=function(){console.warn("THREE.WebGLRenderer: .initMaterial() has been removed.")},gr.prototype.addPrePlugin=function(){console.warn("THREE.WebGLRenderer: .addPrePlugin() has been removed.")},gr.prototype.addPostPlugin=function(){console.warn("THREE.WebGLRenderer: .addPostPlugin() has been removed.")},gr.prototype.updateShadowMap=function(){console.warn("THREE.WebGLRenderer: .updateShadowMap() has been removed.")},gr.prototype.setFaceCulling=function(){console.warn("THREE.WebGLRenderer: .setFaceCulling() has been removed.")},gr.prototype.allocTextureUnit=function(){console.warn("THREE.WebGLRenderer: .allocTextureUnit() has been removed.")},gr.prototype.setTexture=function(){console.warn("THREE.WebGLRenderer: .setTexture() has been removed.")},gr.prototype.setTexture2D=function(){console.warn("THREE.WebGLRenderer: .setTexture2D() has been removed.")},gr.prototype.setTextureCube=function(){console.warn("THREE.WebGLRenderer: .setTextureCube() has been removed.")},gr.prototype.getActiveMipMapLevel=function(){return console.warn("THREE.WebGLRenderer: .getActiveMipMapLevel() is now .getActiveMipmapLevel()."),this.getActiveMipmapLevel()},Object.defineProperties(gr.prototype,{shadowMapEnabled:{get:function(){return this.shadowMap.enabled},set:function(t){console.warn("THREE.WebGLRenderer: .shadowMapEnabled is now .shadowMap.enabled."),this.shadowMap.enabled=t}},shadowMapType:{get:function(){return this.shadowMap.type},set:function(t){console.warn("THREE.WebGLRenderer: .shadowMapType is now .shadowMap.type."),this.shadowMap.type=t}},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(t){console.warn("THREE.WebGLRenderer: .gammaOutput has been removed. Set WebGLRenderer.outputEncoding instead."),this.outputEncoding=!0===t?nw:ka}},toneMappingWhitePoint:{get:function(){return console.warn("THREE.WebGLRenderer: .toneMappingWhitePoint has been removed."),1},set:function(){console.warn("THREE.WebGLRenderer: .toneMappingWhitePoint has been removed.")}}}),Object.defineProperties(EY.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.")}}}),Object.defineProperties(Hc.prototype,{wrapS:{get:function(){return console.warn("THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS."),this.texture.wrapS},set:function(t){console.warn("THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS."),this.texture.wrapS=t}},wrapT:{get:function(){return console.warn("THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT."),this.texture.wrapT},set:function(t){console.warn("THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT."),this.texture.wrapT=t}},magFilter:{get:function(){return console.warn("THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter."),this.texture.magFilter},set:function(t){console.warn("THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter."),this.texture.magFilter=t}},minFilter:{get:function(){return console.warn("THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter."),this.texture.minFilter},set:function(t){console.warn("THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter."),this.texture.minFilter=t}},anisotropy:{get:function(){return console.warn("THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy."),this.texture.anisotropy},set:function(t){console.warn("THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy."),this.texture.anisotropy=t}},offset:{get:function(){return console.warn("THREE.WebGLRenderTarget: .offset is now .texture.offset."),this.texture.offset},set:function(t){console.warn("THREE.WebGLRenderTarget: .offset is now .texture.offset."),this.texture.offset=t}},repeat:{get:function(){return console.warn("THREE.WebGLRenderTarget: .repeat is now .texture.repeat."),this.texture.repeat},set:function(t){console.warn("THREE.WebGLRenderTarget: .repeat is now .texture.repeat."),this.texture.repeat=t}},format:{get:function(){return console.warn("THREE.WebGLRenderTarget: .format is now .texture.format."),this.texture.format},set:function(t){console.warn("THREE.WebGLRenderTarget: .format is now .texture.format."),this.texture.format=t}},type:{get:function(){return console.warn("THREE.WebGLRenderTarget: .type is now .texture.type."),this.texture.type},set:function(t){console.warn("THREE.WebGLRenderTarget: .type is now .texture.type."),this.texture.type=t}},generateMipmaps:{get:function(){return console.warn("THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps."),this.texture.generateMipmaps},set:function(t){console.warn("THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps."),this.texture.generateMipmaps=t}}}),Object.defineProperties(k5.prototype,{load:{value:function(t){console.warn("THREE.Audio: .load has been deprecated. Use THREE.AudioLoader instead.");const n=this;return(new gZ).load(t,function(i){n.setBuffer(i)}),this}},startTime:{set:function(){console.warn("THREE.Audio: .startTime is now .play( delay ).")}}}),EZ.prototype.getData=function(){return console.warn("THREE.AudioAnalyser: .getData() is now .getFrequencyData()."),this.getFrequencyData()},JS.prototype.updateCubeMap=function(t,n){return console.warn("THREE.CubeCamera: .updateCubeMap() is now .update()."),this.update(t,n)},JS.prototype.clear=function(t,n,e,i){return console.warn("THREE.CubeCamera: .clear() is now .renderTarget.clear()."),this.renderTarget.clear(t,n,e,i)},iA.crossOrigin=void 0,iA.loadTexture=function(t,n,e,i){console.warn("THREE.ImageUtils.loadTexture has been deprecated. Use THREE.TextureLoader() instead.");const r=new NT;r.setCrossOrigin(this.crossOrigin);const o=r.load(t,e,void 0,i);return n&&(o.mapping=n),o},iA.loadTextureCube=function(t,n,e,i){console.warn("THREE.ImageUtils.loadTextureCube has been deprecated. Use THREE.CubeTextureLoader() instead.");const r=new nZ;r.setCrossOrigin(this.crossOrigin);const o=r.load(t,e,void 0,i);return n&&(o.mapping=n),o},iA.loadCompressedTexture=function(){console.error("THREE.ImageUtils.loadCompressedTexture has been removed. Use THREE.DDSLoader instead.")},iA.loadCompressedTextureCube=function(){console.error("THREE.ImageUtils.loadCompressedTextureCube has been removed. Use THREE.DDSLoader instead.")};const pke={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 Ake(){console.error("THREE.LensFlare has been moved to /examples/jsm/objects/Lensflare.js")}typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:qL}})),typeof window<"u"&&(window.__THREE__?console.warn("WARNING: Multiple instances of Three.js being imported."):window.__THREE__=qL);var gke=p(3205),eJ=p.n(gke);class tJ{constructor(n,e,i){this.h=n,this.s=e,this.l=i}toHex(){return`#${eJ().hsl.hex([this.h,this.s,this.l])}`}decreaseLightness(n){this.l-=n}getLightness(){return this.l}setLightness(n){this.l=n}toString(){return`hsl(${this.h}, ${this.s}%, ${this.l}%)`}}class Gi{static{this.colorToVector3Map=new Map}static{this.colorToVector3ArrayMap=new Map}static{this.hexToNumberMap=new Map}static getVector3(n){let e=this.colorToVector3Map.get(n);return void 0===e&&(e=Gi.colorToVector3(n),this.colorToVector3Map.set(n,e)),e}static getVector3Array(n){let e=this.colorToVector3ArrayMap.get(n);return void 0===e&&(e=Gi.colorToVector3Array(n),this.colorToVector3ArrayMap.set(n,e)),e}static getNumber(n){let e=this.hexToNumberMap.get(n);return void 0===e&&(e=Gi.convertHexToNumber(n),this.hexToNumberMap.set(n,e)),e}static convertHexToNumber(n){return+`0x${n.slice(1)}`}static convertNumberToHex(n){const e=n.toString(16);return`#${"0".repeat(6-e.length)}${e}`}static convertHexToRgba(n,e=1){return`rgba(${this.encodeHex(n).join(",")},${e})`}static convertHexToColorObject(n){const e=this.encodeHex(n);return new rn(...e)}static convertColorToHex(n){return[n.r,n.g,n.b].reduce((e,i)=>e+Math.round(i).toString(16).padStart(2,"0"),"#")}static hexToHSL(n){const e=eJ().hex.hsl(n);return new tJ(...e)}static colorToVector3(n){const e=Gi.convertHexToNumber(n);return new Y((e>>16&255)/255,(e>>8&255)/255,(255&e)/255)}static colorToVector3Array(n){const e=Gi.convertHexToNumber(n);return[(e>>16&255)/255,(e>>8&255)/255,(255&e)/255]}static vector3ToRGB(n){const e=Math.floor(255*n.x),i=Math.floor(255*n.y),r=Math.floor(255*n.z);return new rn(e,i,r)}static gradient(n,e,i){const r=this.convertHexToColorObject(n),s=this.convertHexToColorObject(e).sub(r),a=[];for(let l=0;l<=i;l++){const c=s.clone().multiplyScalar(1/i*l),d=r.clone().add(c);a[l]=this.convertColorToHex(d)}return a}static getImageDataUri(n){const e=this.encodeHex(n),i=this.encodeRGB(e[0],e[1],e[2]);return this.generatePixel(i)}static encodeHex(n){let e=n.slice(1);return 3===e.length&&(e=`${e[0]}${e[0]}${e[1]}${e[1]}${e[2]}${e[2]}`),[Number.parseInt(`${e[0]}${e[1]}`,16),Number.parseInt(`${e[2]}${e[3]}`,16),Number.parseInt(`${e[4]}${e[5]}`,16)]}static encodeRGB(n,e,i){return this.encodeTriplet(0,n,e)+this.encodeTriplet(i,255,255)}static encodeTriplet(n,e,i){const r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",s=(3&n)<<4|e>>4,a=(15&e)<<2|i>>6,l=63&i;return r.charAt(n>>2)+r.charAt(s)+r.charAt(a)+r.charAt(l)}static generatePixel(n){return`data:image/gif;base64,R0lGODlhAQABAPAA${n}/yH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==`}}class eF{static getMapResolutionScaling(n){const{width:e}=document.getElementById("codeMapScene"),i=eF.getScalingThreshold(e);return n>i?i/n:1}static getScalingThreshold(n){return Math.min(4*n,10240)}static isLabelNode(n){return!n.isLeaf&&n.mapNodeDepth<3}}class Db{constructor(n,e,i,r){this.floorLabelPlanes=[],this.folderGeometryHeight=2.01,this.lastScaling=new Y(1,1,1),this.floorLabelPlaneLevel=new Map,this.floorLabelsPerLevel=new Map,this.collectLabelsPerLevel(n),this.rootNode=e,this.mapSize=i,this.scaling=r}collectLabelsPerLevel(n){for(const e of n)eF.isLabelNode(e)&&(this.floorLabelsPerLevel.has(e.mapNodeDepth)||this.floorLabelsPerLevel.set(e.mapNodeDepth,[]),this.floorLabelsPerLevel.get(e.mapNodeDepth).push(e))}draw(){const{width:n,length:e}=this.rootNode,i=eF.getMapResolutionScaling(n),r=n*i,o=e*i;for(const[s,a]of this.floorLabelsPerLevel){const{textCanvas:l,context:c}=Db.createLabelPlaneCanvas(r,o);this.writeLabelsOnCanvas(c,a,i),this.drawLevelPlaneGeometry(l,r,o,s,i)}return this.floorLabelPlanes}translatePlaneCanvases(n){for(const e of this.floorLabelPlanes){const i=this.floorLabelPlaneLevel.get(e)+1;e.geometry.translate(0,0,this.folderGeometryHeight*(i*this.lastScaling.y-i*n.y))}this.lastScaling=n}static createLabelPlaneCanvas(n,e){const i=document.createElement("canvas");let r=n,o=e;n>e&&(r=e,o=n),i.width=r,i.height=o;const s=i.getContext("2d");return s.fillStyle="white",s.textAlign="center",s.textBaseline="middle",{textCanvas:i,context:s}}writeLabelsOnCanvas(n,e,i){const{width:r,length:o}=this.rootNode;for(const s of e){let a=0===s.depth?Math.max(Math.floor(.03*r),120):Math.max(Math.floor(.023*r),95);a*=i,n.font=`${a}px Arial`;const l=Db.getLabelAndSetContextFont(s,n,i,a);n.fillText(l.labelText,(o-s.y0-s.length/2)*i,(s.x0+s.width)*i-l.fontSize/2)}}drawLevelPlaneGeometry(n,e,i,r,o){const s=new ZP(n);s.wrapS=Yp,s.wrapT=Yp,s.repeat.x=-1,s.needsUpdate=!0,s.rotation=90*Math.PI/180;const a=new sm(e,i),c=new Ci(a,new qc({side:Wo,map:s,transparent:!0}));c.rotateX(90*Math.PI/180),a.translate(e/2,i/2,-this.folderGeometryHeight*this.scaling.y*(r+1)-2),c.scale.set(this.scaling.x/o,this.scaling.z/o,1),c.position.set(-this.mapSize*this.scaling.x,0,-this.mapSize*this.scaling.z),this.floorLabelPlanes.push(c),this.floorLabelPlaneLevel.set(c,r)}static getLabelAndSetContextFont(n,e,i,r){const o=n.name,s=n.length*i;e.font=`${r}px Arial`;const a=e.measureText(o),l=Db.getFontScaleFactor(s,a.width);return l<=.5?(r*=.5,r=Math.floor(Math.min(r,n.width*i)),e.font=`${r}px Arial`,{labelText:Db.getFittingLabelText(e,s,o),fontSize:r}):(r=Math.floor(Math.min(r*l,n.width*i)),e.font=`${r}px Arial`,{labelText:o,fontSize:r})}static getFontScaleFactor(n,e){return e=e&&o>1;)o-=1,s=`${i.slice(0,o)}\u2026`;return s}}const q5=un("SET_SELECTED_BUILDING_ID",{_as:"props",_p:void 0}),bke=/_\d{4}(?:-\d{1,2}){2}_\d{1,2}-\d{1,2}\./;let fm=(()=>{class t{static{this.JSON_EXTENSION=".json"}static getNewFileName(e,i){return`${this.getFileNameWithoutTimestamp(e,i)}_${this.getNewTimestamp()}`}static getNewTimestamp(){return t.getFormattedTimestamp(new Date)}static getFormattedTimestamp(e){return e.toISOString().slice(0,16).replace("T","_").replace(":","-")}static getFileNameWithoutTimestamp(e,i){if(!i){const r=bke.exec(e);if(r)return e.slice(0,r.index);if(e.endsWith(N0.CC_FILE_EXTENSION))return e.slice(0,-N0.CC_FILE_EXTENSION.length);if(e.endsWith(t.JSON_EXTENSION))return e.slice(0,-t.JSON_EXTENSION.length)}return e}static withoutCCExtension(e){return e.replace(/(\.cc)?(\.json)?(\.gz)?$/,"")}}return t})();function nJ(t,n){return function _ke(t){return t.startsWith(`${$d.rootPath}/`)}(n)?Zw(t,n):n}function Zw(t,n){const e=$d.rootPath.length+1,i=n.length<=e?"":`/${n.slice(e)}`;return`${$d.rootPath}/${t}${i}`}function W5(t,n){do{n=n.slice(0,n.lastIndexOf("/"));const e=t.get(n);if(e)return e}while(n!==$d.rootPath&&n.length>0)}let iJ=(()=>{class t{static{this.projectNameArray=[]}static{this.fileNameArray=[]}static{this.fileChecksumArray=[]}static{this.fileSizesSum=0}static calculateAggregationFile(e){const i=Hd(e.map(r=>r.file));if(1===i.length)return i[0];this.resetVariables();for(const r of i)this.projectNameArray.push(r.fileMeta.projectName.replace(" ","_")),this.fileNameArray.push(fm.withoutCCExtension(r.fileMeta.fileName).replace(" ","_")),this.fileChecksumArray.push(r.fileMeta.fileChecksum),this.fileSizesSum+=r.fileMeta.exportedFileSize;return this.getNewAggregatedMap(i)}static getNewAggregatedMap(e){const i={fileMeta:{projectName:`project_aggregation_of_${this.projectNameArray.join("_and_")}`,fileName:`file_aggregation_of_${this.fileNameArray.join("_and_")}`,fileChecksum:this.fileChecksumArray.join(";"),apiVersion:x1.f4.X,exportedFileSize:this.fileSizesSum},map:{name:$d.rootName,type:Ma.FOLDER,children:[],attributes:{},path:$d.rootPath},settings:{fileSettings:{edges:[],blacklist:[],attributeTypes:{nodes:{},edges:{}},attributeDescriptors:{},markedPackages:[]}}};for(const r of e)i.map.children.push(this.extractNodeFromMap(r));return this.aggregateRootAttributes(i),i}static aggregateRootAttributes(e){for(const{attributes:i}of e.map.children)for(const r of Object.keys(i))void 0===e.map.attributes[r]&&(e.map.attributes[r]=0),e.map.attributes[r]+=i[r]}static extractNodeFromMap(e){const i={name:e.fileMeta.fileName,children:e.map.children,type:e.map.type};e.map.path&&(i.path=Zw(e.fileMeta.fileName,e.map.path));for(const r of Object.keys(e.map))"name"!==r&&"path"!==r&&"children"!==r&&(i[r]=e.map[r]);return this.updatePathOfAllChildren(e.fileMeta.fileName,i.children),i}static updatePathOfAllChildren(e,i){for(const r of i)r.path&&(r.path=Zw(e,r.path)),r.children&&this.updatePathOfAllChildren(e,r.children)}static resetVariables(){this.projectNameArray=[],this.fileNameArray=[],this.fileChecksumArray=[],this.fileSizesSum=0}}return t})();const vke=Xt(ks,t=>t.edgeMetricData.map(n=>n.name));class yke{static createCodeMapFromHashMap(n){let e;for(const[i,r]of n)i===$d.rootPath?e=r:W5(n,i).children.push(r);return e}static getDeltaFile(n,e){const i=this.getDeltaNodesByPath(n.map,e.map),r=this.createCodeMapFromHashMap(i),o=this.getFileMetaData(n,e);return this.getNewCCFileWithDeltas(r,o)}static getDeltaNodesByPath(n,e){const i=new Map,r=this.getReferenceNodesByPath(n);return this.addExistingAndNewNodesToDeltaMap(r,e,i),this.addDeletedNodesToDeltaMap(r,i),i}static getReferenceNodesByPath(n){const e=new Map;for(const{data:i}of io(n))e.set(i.path,i);return e}static addExistingAndNewNodesToDeltaMap(n,e,i){for(const{data:r}of io(e)){const o=n.get(r.path);if(o){(o.children||r.children)&&(o.children=[]);const{deltaList:a,differenceExists:l}=this.compareAttributeValues(o.attributes,r.attributes);o.deltas=a;const c=l?1:0;o.attributes=r.attributes,o.fileCount={added:0,removed:0,changed:c}}else r.children&&(r.children=[]),r.deltas={...r.attributes},r.fileCount={added:r.type===Ma.FILE?1:0,removed:0,changed:0};const s=o??r;i.set(s.path,s),n.delete(s.path)}}static addDeletedNodesToDeltaMap(n,e){for(const i of n.values()){i.children&&(i.children=[]),i.deltas={},i.fileCount={added:0,removed:i.type===Ma.FILE?1:0,changed:0};for(const[r,o]of Object.entries(i.attributes))i.deltas[r]=-o,i.attributes[r]=0;e.set(i.path,i)}}static compareAttributeValues(n,e){const i={};let r=!1;const o=new Set(Object.keys(n));for(const s of Object.keys(e))o.add(s);for(const s of o){const a=n[s]??0,l=e[s]??0;a!==l&&(r=!0),i[s]=l-a}return{deltaList:i,differenceExists:r}}static getFileMetaData(n,e){return{fileName:`delta_between_${fm.withoutCCExtension(n.fileMeta.fileName)}_and_${fm.withoutCCExtension(e.fileMeta.fileName)}`,fileChecksum:`${n.fileMeta.fileChecksum};${e.fileMeta.fileChecksum}`,apiVersion:x1.f4.X,projectName:`delta_between_${n.fileMeta.projectName}_and_${e.fileMeta.projectName}`,exportedFileSize:n.fileMeta.exportedFileSize+e.fileMeta.exportedFileSize}}static getNewCCFileWithDeltas(n,e){return{map:n,fileMeta:e,settings:{fileSettings:{edges:[],blacklist:[],attributeTypes:{nodes:{},edges:{}},attributeDescriptors:{},markedPackages:[]}}}}}const xke=(t,n,e)=>{const i=new Map;for(const r of e){const o=t.get(r);o&&i.set(r,o.get(n.data.path))}return i},$5=Xt(o1,t=>t.attributeTypes),rJ=Object.freeze({unifiedMapNode:void 0,unifiedFileMeta:void 0}),lc=Xt(ks,Ud,$5,Od,vke,(t,n,e,i,r)=>{if(!mW(n)||!t.nodeMetricData)return rJ;const o=Eke(Hd(n));return o?.map?(aL.decorateMap(o.map,t,i),((t,n,e)=>{if(0!==e.length)for(const i of io(n))if(Eo(i)){const r=xke(t,i,e);for(const[o,s]of r)i.data.edgeAttributes[o]=s}})(t.nodeEdgeMetricsMap,o.map,r),aL.decorateParentNodesWithAggregatedAttributes(o.map,Nd(n),e),{unifiedMapNode:o.map,unifiedFileMeta:o.fileMeta}):rJ}),Eke=t=>{if(pW(t))return iJ.calculateAggregationFile(t);if(Nd(t)){const[n,e]=t;return e&&n.file.map.name!==e.file.map.name?iJ.calculateAggregationFile(t):(t=>{if(2===t.length){let[n,e]=t;if(n.selectedAs!==Pi.Reference){const i=e;e=n,n=i}return yke.getDeltaFile(n.file,e.file)}return t[0].file})(t)}},Rb=Xt(lc,t=>{if(!t.unifiedMapNode)return new Map;const n=new Map([[t.unifiedMapNode.id,t.unifiedMapNode]]);for(const{data:e}of io(t.unifiedMapNode))n.set(e.id,e);return n}),Lb=Xt(Hr,t=>t.mapColors),Di=t=>(n,e)=>void 0===e.value?t:e.value,tF=t=>(n,e)=>void 0===e.value?t:{...n,...e.value},iu={positive:"#69AE40",neutral:"#ddcc00",negative:"#820E0E",selected:"#EB8319",positiveDelta:"#64d051",negativeDelta:"#ff0E0E",base:"#666666",flat:"#AAAAAA",markingColors:["#FF1D8E","#1d8eff","#1DFFFF","#8eff1d","#8e1dff"],incomingEdge:"#00ffff",outgoingEdge:"#ff00ff",labelColorAndAlpha:{rgb:"#e0e0e0",alpha:.7}},Mke=ui(iu,bn(ju,tF(iu)),bn(pM,t=>({...t,positive:t.negative,negative:t.positive})),bn(AM,t=>({...t,positiveDelta:t.negativeDelta,negativeDelta:t.positiveDelta}))),Pl=t=>t.dynamicSettings,Pb=Xt(Pl,t=>t.searchPattern),oJ=Xt(lc,Pb,(t,n)=>function Ske(t,n){if(0===(n=n.trimStart()).length||!t)return[];const e=_W(n),i=[];for(const{data:r}of io(t))e.ignoredNodePaths.ignores(T0(r.path))===e.condition&&i.push(r);return i}(t.unifiedMapNode,n)),j5=Xt(oJ,t=>new Set(t.map(n=>n.path))),K5={getColorByTrueGradient(t,n,e,i){const r=(n.from+n.to)/2,o=Gi.convertHexToColorObject(t.neutral);if(i<=r){const l=i/r,c=Gi.convertHexToColorObject(t.positive);return Gi.convertColorToHex((new rn).lerpColors(c,o,l))}const s=(i-r)/(e.maxValue-r),a=Gi.convertHexToColorObject(t.negative);return Gi.convertColorToHex((new rn).lerpColors(o,a,s))},getColorByFocusedGradient(t,n,e,i){const r=(n.from+n.to)/2,o=Gi.convertHexToColorObject(t.neutral);if(i=n.to&&n.to!==e.maxValue)return t.negative;if(i===r)return t.neutral;if(it.colorMetric),Ch=Xt(ks,mm,(t,n)=>{const e=t.nodeMetricData.find(i=>i.name===n);return{values:e?.values??[],minValue:e?.minValue??0,maxValue:e?.maxValue??0}}),Ko=250;function cJ(t,n,e,i){const r=LM(t.files);if(i)return 2;let o=n.attributes[t.dynamicSettings.heightMetric]||0;o*=r;const s=t.dynamicSettings.heightMetric;return 1===t.fileSettings.attributeDescriptors[s]?.direction?t.appSettings.invertHeight?o:e-o:t.appSettings.invertHeight?e-o:o}function dJ(t,n,e,i){const r=e.deltas?.[i.dynamicSettings.heightMetric]?0:2;return Math.max(Math.abs(n*t),r)}function Y5(t,n,e,i){return!(t.isExcluded||n&&e.appSettings.hideFlatBuildings&&i)&&(!(e.dynamicSettings.focusedNodePath.length>0)||t.path.startsWith(e.dynamicSettings.focusedNodePath[0]))}function iF(t,n,e,i,r){return t>e?new Y(i.x-r+t/4,i.y+n,i.z-r+e/2):new Y(i.x-r+t/2,i.y+n,i.z-r+e/4)}function uJ(t,n,e,i,r){return t>e?new Y(i.x-r+.75*t,i.y+n,i.z-r+e/2):new Y(i.x-r+t/2,i.y+n,i.z-r+.75*e)}function rF(t,n){if(t.isFlattened)return!0;const e=j5(n);return e&&n.dynamicSettings.searchPattern?.length>0?0===e.size||function Bke(t,n){return!j5(n).has(t.path)}(t,n):!(!n.appSettings.showOnlyBuildingsWithEdges||!n.fileSettings.edges.some(i=>i.visible))&&function Ike(t,n){return void 0===t.edgeAttributes[n.dynamicSettings.edgeMetric]||!n.fileSettings.edges.some(e=>t.path===e.fromNodeName||t.path===e.toNodeName)}(t,n)}function Z5(t,{appSettings:n,dynamicSettings:e},i,r,o){const{mapColors:s}=n;if(r)return s.base;const a=t.attributes[e.colorMetric];if(void 0===a)return s.base;if(o)return s.flat;const{colorRange:l,colorMode:c}=e;return"unary"===e.colorMetric?s.positive:c===qf.absolute?a0)for(const i of t.children)e+=lJ(i,n);return e},buildNodeFrom:function kke(t,n,e,i,r){const o=LM(i.files),{x0:s,x1:a,y0:l,y1:c,data:d}=t,u=Eo(t),h=rF(d,i),m=cJ(i,d,e,h),A=d.path.split("/").length-2,v=u?dJ(m,n,d,i)*o:2,x=a-s,C=c-l,w=2*t.depth,S=(d.deltas?.[i.dynamicSettings.heightMetric]??0)*n*o,M=v+(S<0?Math.abs(S):0);return{name:d.name,id:d.id,width:x,height:v,length:C,depth:A,mapNodeDepth:t.depth,x0:s,z0:w,y0:l,isLeaf:u,attributes:d.attributes,edgeAttributes:d.edgeAttributes,deltas:d.deltas,heightDelta:S,visible:Y5(d,u,i,h),path:d.path,link:d.link,markingColor:DM(d,i.fileSettings.markedPackages),flat:h,color:Z5(d,i,Ch(i),r,h),incomingEdgePoint:iF(x,M,C,new Y(s,w,l),Ko),outgoingEdgePoint:uJ(x,M,C,new Y(s,w,l),Ko)}},isNodeFlat:rF,resolveHeightValue:dJ,getHeightValue:cJ,FOLDER_HEIGHT:2,MIN_BUILDING_HEIGHT:2,HEIGHT_VALUE_WHEN_METRIC_NOT_FOUND:0};class J5{constructor(){this.listeners={}}on(n,e){this.listeners[n]??=[],this.listeners[n].push(e)}emit(n,e){if(!this.listeners[n]?.length)return!1;for(const i of this.listeners[n])i(e);return!0}}let Jw=(()=>{class t{constructor(){this.idToBuilding=new Map}setIdToBuilding(e){this.idToBuilding=new Map;for(const i of e)this.idToBuilding.set(i.node.id,i)}get(e){return this.idToBuilding.get(e)}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();function Yc(){this.enabled=!0,this.needsSwap=!0,this.clear=!1,this.renderToScreen=!1}var t,n,e;Object.assign(Yc.prototype,{setSize:function(){},render:function(){console.error("THREE.Pass: .render() must be implemented in derived pass.")}}),Yc.FullScreenQuad=(t=new gA(-1,1,1,-1,0,1),n=new sm(2,2),e=function(i){this._mesh=new Ci(n,i)},Object.defineProperty(e.prototype,"material",{get:function(){return this._mesh.material},set:function(i){this._mesh.material=i}}),Object.assign(e.prototype,{dispose:function(){this._mesh.geometry.dispose()},render:function(i){i.render(this._mesh,t)}}),e);var eN=function(t,n,e,i,r){Yc.call(this),this.scene=t,this.camera=n,this.overrideMaterial=e,this.clearColor=i,this.clearAlpha=void 0!==r?r:0,this.clear=!0,this.clearDepth=!1,this.needsSwap=!1,this._oldClearColor=new rn};eN.prototype=Object.assign(Object.create(Yc.prototype),{constructor:eN,render:function(t,n,e){var r,o,i=t.autoClear;t.autoClear=!1,void 0!==this.overrideMaterial&&(o=this.scene.overrideMaterial,this.scene.overrideMaterial=this.overrideMaterial),this.clearColor&&(t.getClearColor(this._oldClearColor),r=t.getClearAlpha(),t.setClearColor(this.clearColor,this.clearAlpha)),this.clearDepth&&t.clearDepth(),t.setRenderTarget(this.renderToScreen?null:e),this.clear&&t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil),t.render(this.scene,this.camera),this.clearColor&&t.setClearColor(this._oldClearColor,r),void 0!==this.overrideMaterial&&(this.scene.overrideMaterial=o),t.autoClear=i}});var Dke_isWebGL2Available=function(){try{var t=document.createElement("canvas");return!(!window.WebGL2RenderingContext||!t.getContext("webgl2"))}catch{return!1}},ex=function(t,n){Yc.call(this),this.textureID=void 0!==n?n:"tDiffuse",t instanceof Ls?(this.uniforms=t.uniforms,this.material=t):t&&(this.uniforms=ZS.clone(t.uniforms),this.material=new Ls({defines:Object.assign({},t.defines),uniforms:this.uniforms,vertexShader:t.vertexShader,fragmentShader:t.fragmentShader})),this.fsQuad=new Yc.FullScreenQuad(this.material)};ex.prototype=Object.assign(Object.create(Yc.prototype),{constructor:ex,render:function(t,n,e){this.uniforms[this.textureID]&&(this.uniforms[this.textureID].value=e.texture),this.fsQuad.material=this.material,this.renderToScreen?(t.setRenderTarget(null),this.fsQuad.render(t)):(t.setRenderTarget(n),this.clear&&t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil),this.fsQuad.render(t))}});var tx=function(t,n){Yc.call(this),this.scene=t,this.camera=n,this.clear=!0,this.needsSwap=!1,this.inverse=!1};tx.prototype=Object.assign(Object.create(Yc.prototype),{constructor:tx,render:function(t,n,e){var o,s,i=t.getContext(),r=t.state;r.buffers.color.setMask(!1),r.buffers.depth.setMask(!1),r.buffers.color.setLocked(!0),r.buffers.depth.setLocked(!0),this.inverse?(o=0,s=1):(o=1,s=0),r.buffers.stencil.setTest(!0),r.buffers.stencil.setOp(i.REPLACE,i.REPLACE,i.REPLACE),r.buffers.stencil.setFunc(i.ALWAYS,o,4294967295),r.buffers.stencil.setClear(s),r.buffers.stencil.setLocked(!0),t.setRenderTarget(e),this.clear&&t.clear(),t.render(this.scene,this.camera),t.setRenderTarget(n),this.clear&&t.clear(),t.render(this.scene,this.camera),r.buffers.color.setLocked(!1),r.buffers.depth.setLocked(!1),r.buffers.stencil.setLocked(!1),r.buffers.stencil.setFunc(i.EQUAL,1,4294967295),r.buffers.stencil.setOp(i.KEEP,i.KEEP,i.KEEP),r.buffers.stencil.setLocked(!0)}});var oF=function(){Yc.call(this),this.needsSwap=!1};oF.prototype=Object.create(Yc.prototype),Object.assign(oF.prototype,{render:function(t){t.state.buffers.stencil.setLocked(!1),t.state.buffers.stencil.setTest(!1)}});var hJ={uniforms:{tDiffuse:{value:null},opacity:{value:1}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform float opacity;","uniform sampler2D tDiffuse;","varying vec2 vUv;","void main() {","\tvec4 texel = texture2D( tDiffuse, vUv );","\tgl_FragColor = opacity * texel;","}"].join("\n")},fJ=function(t,n){if(this.renderer=t,void 0===n){var e={minFilter:Ro,magFilter:Ro,format:Fa},i=t.getSize(new ut);this._pixelRatio=t.getPixelRatio(),this._width=i.width,this._height=i.height,(n=new Hc(this._width*this._pixelRatio,this._height*this._pixelRatio,e)).texture.name="EffectComposer.rt1"}else this._pixelRatio=1,this._width=n.width,this._height=n.height;this.renderTarget1=n,this.renderTarget2=n.clone(),this.renderTarget2.texture.name="EffectComposer.rt2",this.writeBuffer=this.renderTarget1,this.readBuffer=this.renderTarget2,this.renderToScreen=!0,this.passes=[],void 0===hJ&&console.error("THREE.EffectComposer relies on CopyShader"),void 0===ex&&console.error("THREE.EffectComposer relies on ShaderPass"),this.copyPass=new ex(hJ),this.clock=new F5};Object.assign(fJ.prototype,{swapBuffers:function(){var t=this.readBuffer;this.readBuffer=this.writeBuffer,this.writeBuffer=t},addPass:function(t){this.passes.push(t),t.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)},insertPass:function(t,n){this.passes.splice(n,0,t),t.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)},removePass:function(t){const n=this.passes.indexOf(t);-1!==n&&this.passes.splice(n,1)},isLastEnabledPass:function(t){for(var n=t+1;nt.isWhiteBackground);class Rke{constructor(){this.vertexShader=p(889),this.fragmentShader=p(6655),this.uniforms={tDiffuse:{value:null},resolution:{value:new ut(1/1024,1/512)}}}}class qi{static{this.BACKGROUND_COLOR={white:16777215,normal:16053483}}static{this.CLEAR_COLOR=qi.BACKGROUND_COLOR.normal}static{this.CLEAR_ALPHA=1}static{this.RENDER_OPTIONS={antialias:!0,preserveDrawingBuffer:!0,alpha:!0}}static{this.enableFXAA=!1}static{this.setPixelRatio=!1}constructor(n,e){this.store=n,this.state=e,this.setBackgroundColorToState=i=>{qi.CLEAR_COLOR=i?qi.BACKGROUND_COLOR.white:qi.BACKGROUND_COLOR.normal,this.renderer?.setClearColor(qi.CLEAR_COLOR,qi.CLEAR_ALPHA)},this.initGL=(i,r)=>{if(this.setGLOptions(),this.renderer=new gr(qi.RENDER_OPTIONS),qi.setPixelRatio&&this.renderer.setPixelRatio(window.devicePixelRatio),qi.enableFXAA)if(Dke_isWebGL2Available){const o=this.renderer.getDrawingBufferSize(new ut),s=new Hc(o.width,o.height,{format:Fa});this.composer=new pJ(this.renderer,s)}else this.composer=new pJ(this.renderer);this.renderer.setSize(i,r),this.renderer.domElement.id="codeMapScene",qi.enableFXAA&&this.initComposer()},this.setGLOptions=()=>{switch(this.state.getValue().appSettings.sharpnessMode){case Up.Standard:qi.RENDER_OPTIONS.antialias=!0,qi.enableFXAA=!1,qi.setPixelRatio=!1;break;case Up.PixelRatioNoAA:qi.RENDER_OPTIONS.antialias=!1,qi.enableFXAA=!1,qi.setPixelRatio=!0;break;case Up.PixelRatioFXAA:qi.RENDER_OPTIONS.antialias=!1,qi.enableFXAA=!0,qi.setPixelRatio=!0;break;case Up.PixelRatioAA:qi.RENDER_OPTIONS.antialias=!0,qi.enableFXAA=!1,qi.setPixelRatio=!0}},this.initComposer=()=>{const i=this.renderer.getPixelRatio();this.composer.setSize(window.innerWidth*i,window.innerHeight*i);const r=new eN(this.scene,this.camera);this.composer.addPass(r);const o=new ex(new Rke);o.renderToScreen=!1,o.uniforms.resolution.value.x=1/(window.innerWidth*i),o.uniforms.resolution.value.y=1/(window.innerHeight*i),this.composer.addPass(o)},this.getInfo=()=>qi.enableFXAA?this.composer.getInfo():this.renderer.info.render,this.getMemoryInfo=()=>qi.enableFXAA?this.composer.getMemoryInfo():this.renderer.info.memory}init(n,e,i,r){this.scene=i,this.camera=r,this.initGL(n,e),this.store.select(AJ).subscribe(this.setBackgroundColorToState)}render(){const{scene:n,camera:e,composer:i,renderer:r}=this;qi.enableFXAA?i?.render():r?.render(n,e)}static{this.\u0275fac=function(e){return new(e||qi)(oe(Wt),oe(Br))}}static{this.\u0275prov=Mt({token:qi,factory:qi.\u0275fac,providedIn:"root"})}}let cc=(()=>{class t{constructor(e,i,r,o){this.store=e,this.state=i,this.idToBuilding=r,this.threeRendererService=o,this.eventEmitter=new J5,this.selected=null,this.highlighted=[],this.constantHighlight=new Map,this.folderLabelColorHighlighted=Gi.convertHexToNumber("#FFFFFF"),this.folderLabelColorNotHighlighted=Gi.convertHexToNumber("#7A7777"),this.rayPoint=new Y(0,0,0),this.normedTransformVector=new Y(0,0,0),this.highlightedLabel=null,this.highlightedLineIndex=-1,this.highlightedLine=null,this.subscription=this.store.select(Lb).subscribe(s=>{this.folderLabelColorSelected=s.selected,this.numberSelectionColor=Gi.convertHexToNumber(this.folderLabelColorSelected)}),this.scene=new cA,this.mapGeometry=new Ps,this.lights=new Ps,this.labels=new Ps,this.floorLabelPlanes=new Ps,this.edgeArrows=new Ps,this.initLights(),this.scene.add(this.mapGeometry),this.scene.add(this.edgeArrows),this.scene.add(this.labels),this.scene.add(this.lights),this.scene.add(this.floorLabelPlanes)}ngOnDestroy(){this.subscription.unsubscribe()}initFloorLabels(e){this.floorLabelPlanes.clear();const{layoutAlgorithm:i,enableFloorLabels:r}=this.state.getValue().appSettings;if(i!==qd.SquarifiedTreeMap||!r)return;const o=this.getRootNode(e);if(!o)return;const s=this.state.getValue().appSettings.scaling,a=new Y(s.x,s.y,s.z);this.floorLabelDrawer=new Db(this.mapMesh.getNodes(),o,Ko,a);const l=this.floorLabelDrawer.draw(this.state.getValue());l.length>0&&(this.floorLabelPlanes.add(...l),this.scene.add(this.floorLabelPlanes))}getRootNode(e){return e.find(i=>0===i.id)}getConstantHighlight(){return this.constantHighlight}highlightBuildings(){const e=this.state.getValue();this.getMapMesh().highlightBuilding(this.highlighted,this.selected,e,this.constantHighlight),this.mapGeometry.children[0]&&this.highlightMaterial(this.mapGeometry.children[0].material),this.threeRendererService.render()}selectMaterial(e){e.find(({userData:r})=>r.id===this.selected.node.id)?.color.setHex(this.numberSelectionColor)}resetMaterial(e){const i=this.selected?this.selected.node.id:-1;for(const r of e)r.userData.id!==i&&r.color?.setHex(this.folderLabelColorHighlighted)}scaleHeight(){const e=this.state.getValue().appSettings.scaling;this.floorLabelDrawer?.translatePlaneCanvases(e),this.mapGeometry.scale.set(e.x,e.y,e.z),this.mapGeometry.position.set(-Ko*e.x,0,-Ko*e.z),this.mapMesh.setScale(e)}highlightMaterial(e){const i=new Set(this.highlighted.map(({node:o})=>o.id)),r=new Set;for(const{node:o}of this.constantHighlight.values())r.add(o.id);for(const o of e){const s=o.userData.id;this.selected&&s===this.selected.node.id?o.color.setHex(this.numberSelectionColor):i.has(s)||r.has(s)?o.color.setHex(this.folderLabelColorHighlighted):o.color?.setHex(this.folderLabelColorNotHighlighted)}}highlightSingleBuilding(e){this.highlighted=[],this.addBuildingToHighlightingList(e),this.highlightBuildings()}addBuildingToHighlightingList(e){this.highlighted.push(e)}clearHoverHighlight(){this.highlighted=[],this.highlightBuildings()}clearHighlight(){this.getMapMesh()&&(this.getMapMesh().clearHighlight(this.selected),this.highlighted=[],this.constantHighlight.clear(),this.mapGeometry.children[0]&&this.resetMaterial(this.mapGeometry.children[0].material))}selectBuilding(e){e.id!==this.selected?.id&&this.store.dispatch(q5({value:e.node.id})),this.getMapMesh().selectBuilding(e,this.folderLabelColorSelected),this.selected=e,this.highlightBuildings(),this.eventEmitter.emit("onBuildingSelected",{building:this.selected}),this.mapGeometry.children[0]&&this.selectMaterial(this.mapGeometry.children[0].material)}animateLabel(e,i,r){if(null!==e&&null!==i){this.resetLabel(),e.material&&(e.material.opacity=1),this.highlightedLineIndex=this.getHoveredLabelLineIndex(r,e),this.highlightedLine=r[this.highlightedLineIndex],this.rayPoint=new Y,this.rayPoint.subVectors(i.ray.origin,e.position);const o=Math.sqrt(this.rayPoint.x**2+this.rayPoint.y**2+this.rayPoint.z**2);this.normedTransformVector=new Y(this.rayPoint.x/o,this.rayPoint.y/o,this.rayPoint.z/o);const a=this.calculateMaxDistance(e,r,i.ray.origin);this.normedTransformVector.multiplyScalar(a),e.position.add(this.normedTransformVector),this.toggleLineAnimation(e),this.highlightedLabel=e}}resetLineHighlight(){this.highlightedLineIndex=-1,this.highlightedLine=null}resetLabel(){null!==this.highlightedLabel&&(this.highlightedLabel.position.sub(this.normedTransformVector),this.highlightedLabel.material.opacity=iu.labelColorAndAlpha.alpha,this.highlightedLine&&this.toggleLineAnimation(this.highlightedLabel),this.highlightedLabel=null)}getHoveredLabelLineIndex(e,i){const r=e.findIndex(({uuid:o})=>o===i.uuid);if(r>=0)return r+1}toggleLineAnimation(e){const i=new Y(e.position.x,e.position.y,e.position.z),o=this.highlightedLine.geometry.attributes.position.array,a=new Ba((new Bn).setFromPoints([new Y(o[0],o[1],o[2]),i]),this.highlightedLine.material);this.labels.children.splice(this.highlightedLineIndex,1,a)}getLabelForHoveredNode(e,i){for(let r=0;r=i.min[r]&&i.max[r]>=e.min[r])}getIntersectionDistanceFunction(e,i){return r=>{const o=this.normedTransformVector.clone();o.multiplyScalar(r),e.translate(o);const s=this.isOverlapping(i,e,"x")+this.isOverlapping(i,e,"y");return 2===s||1===s&&this.isOverlapping(i,e,"z")?r:0}}calculateMaxDistance(e,i,r){const o=(new ys).setFromObject(e),s=new Y;o.getCenter(s);const a=r.distanceTo(s);let l=a/20;for(let c=0;c0&&this.clearHighlight()}clearSelection(){this.selected&&(this.getMapMesh().clearSelection(this.selected),this.store.dispatch(q5({value:null})),this.eventEmitter.emit("onBuildingDeselected")),this.highlighted.length>0&&this.highlightBuildings(),this.selected=null,this.mapGeometry.children[0]&&this.resetMaterial(this.mapGeometry.children[0].material)}initLights(){const e=new qw(7368816),i=new bA(14737632,1);i.position.set(50,10,8).normalize();const r=new bA(14737632,1);r.position.set(-50,10,-8).normalize(),this.lights.add(e),this.lights.add(i),this.lights.add(r)}setMapMesh(e,i){this.mapMesh=i,this.initFloorLabels(e),this.mapGeometry.children.length=0,this.mapGeometry.position.x=-Ko,this.mapGeometry.position.y=0,this.mapGeometry.position.z=-Ko,this.mapGeometry.add(this.mapMesh.getThreeMesh()),this.idToBuilding.setIdToBuilding(this.mapMesh.getMeshDescription().buildings)}getMapMesh(){return this.mapMesh}getSelectedBuilding(){return this.selected}getHighlightedBuilding(){return this.highlighted[0]}dispose(){this.mapMesh?.dispose()}subscribe(e,i){this.eventEmitter.on(e,r=>{i(r)})}static{this.\u0275fac=function(i){return new(i||t)(oe(Wt),oe(Br),oe(Jw),oe(qi))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})(),sF=(()=>{class t{constructor(e){this.threeSceneService=e,this.isOpen=!1,this.threeSceneService.subscribe("onBuildingSelected",()=>{this.isOpen=!0}),this.threeSceneService.subscribe("onBuildingDeselected",()=>{this.isOpen=!1})}static{this.\u0275fac=function(i){return new(i||t)(oe(cc))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})(),ru=(()=>{class t{static{this.VIEW_ANGLE=45}static{this.NEAR=50}static{this.FAR=2e5}init(e,i){this.camera=new Mo(t.VIEW_ANGLE,e/i,t.NEAR,t.FAR),this.setPosition(new Y(0,300,1e3))}setPosition(e){this.camera.position.set(e.x,e.y,e.z),this.camera.lookAt(0,0,0)}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();var Lke=p(9146),gJ=p.n(Lke);let Zc=(()=>{class t{static{this.CAMERA_CHANGED_EVENT_NAME="camera-changed"}constructor(e,i,r){this.threeCameraService=e,this.threeSceneService=i,this.threeRendererService=r,this.eventEmitter=new J5}setControlTarget(e){this.controls.target.set(e.x,e.y,e.z)}rotateCameraInVectorDirection(e,i,r){const o=this.getZoom();this.lookAtDirectionFromTarget(e,i,r),this.applyOldZoom(o),this.threeRendererService.render(),this.onInput(this.threeCameraService.camera)}autoFitTo(){setTimeout(()=>{const e=this.getBoundingSphere(),i=this.cameraPerspectiveLengthCalculation(e);this.threeCameraService.camera.position.set(i,i,e.center.z),this.controls.update(),this.focusCameraViewToCenter(e),this.threeRendererService.render(),this.onInput(this.threeCameraService.camera)})}cameraPerspectiveLengthCalculation(e){const o=this.threeCameraService.camera.fov*Math.PI/180*1.3,s=e.radius/Math.tan(o/2);return Math.sqrt(Math.pow(s,2)+Math.pow(s,2))}focusCameraViewToCenter(e){const i=e.center.clone();i.setY(0),this.controls.target.set(i.x,i.y,i.z),this.threeCameraService.camera.lookAt(i),this.threeCameraService.camera.updateProjectionMatrix()}getBoundingSphere(){return(new ys).setFromObject(this.threeSceneService.mapGeometry).getBoundingSphere(new Zd)}lookAtDirectionFromTarget(e,i,r){this.threeCameraService.camera.position.set(this.controls.target.x,this.controls.target.y,this.controls.target.z);const o=new Ci(new sc(20,20,20),new IT);this.threeSceneService.scene.add(o),o.position.set(this.controls.target.x,this.controls.target.y,this.controls.target.z),o.translateX(e),o.translateY(i),o.translateZ(r),this.threeCameraService.camera.lookAt(o.getWorldPosition(o.position)),this.threeSceneService.scene.remove(o)}getZoom(){return this.threeCameraService.camera.position.distanceTo(this.controls.target)}applyOldZoom(e){this.threeCameraService.camera.translateZ(e)}init(e){const i=gJ()(U);this.controls=new i(this.threeCameraService.camera,e),this.controls.addEventListener("change",()=>{this.onInput(this.threeCameraService.camera)})}onInput(e){this.setControlTarget(this.controls.target),this.eventEmitter.emit("onCameraChanged",{camera:e})}subscribe(e,i){this.eventEmitter.on(e,r=>{i(r)})}static{this.\u0275fac=function(i){return new(i||t)(oe(ru),oe(cc),oe(qi))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();var nx=function(){var t=0,n=document.createElement("div");function e(d){return n.appendChild(d.dom),d}function i(d){for(var u=0;u=o+1e3&&(a.update(1e3*s/(d-o),100),o=d,s=0,c)){var u=performance.memory;c.update(u.usedJSHeapSize/1048576,u.jsHeapSizeLimit/1048576)}return d},update:function(){r=this.end()},domElement:n,setMode:i}};nx.Panel=function(t,n,e){var i=1/0,r=0,o=Math.round,s=o(window.devicePixelRatio||1),a=80*s,l=48*s,c=3*s,d=2*s,u=3*s,h=15*s,m=74*s,A=30*s,v=document.createElement("canvas");v.width=a,v.height=l,v.style.cssText="width:80px;height:48px";var x=v.getContext("2d");return x.font="bold "+9*s+"px Helvetica,Arial,sans-serif",x.textBaseline="top",x.fillStyle=e,x.fillRect(0,0,a,l),x.fillStyle=n,x.fillText(t,c,d),x.fillRect(u,h,m,A),x.fillStyle=e,x.globalAlpha=.9,x.fillRect(u,h,m,A),{dom:v,update:function(C,w){i=Math.min(i,C),r=Math.max(r,C),x.fillStyle=e,x.globalAlpha=1,x.fillRect(0,0,a,h),x.fillStyle=n,x.fillText(o(C)+" "+t+" ("+o(i)+"-"+o(r)+")",c,d),x.drawImage(v,u+s,h,m-s,A,u,h,m-s,A),x.fillRect(u+m-s,h,s,A),x.fillStyle=e,x.globalAlpha=.9,x.fillRect(u+m-s,h,s,o((1-C/w)*A))}}};const ix=nx;let bJ=(()=>{class t{constructor(e){this.threeRendererService=e,this.isDevelopmentMode=!1,this.init=i=>{this.isDevelopmentMode&&(this.stats=ix(),this.stats.domElement.style.position="absolute",this.stats.domElement.style.left="0",this.stats.domElement.style.top="0",i.append(this.stats.dom),this.generateStatPanels(),this.prevTime=this.getTimeFunctor().now())},this.getTimeFunctor=()=>typeof performance>"u"?Date:performance,this.generateStatPanels=()=>{this.trianglesPanel={panel:this.stats.addPanel(ix.Panel("triangles","#ff8","#221")),maxHeight:0},this.glCallsPanel={panel:this.stats.addPanel(ix.Panel("calls","#f8f","#212")),maxHeight:0},this.geometryMemoryPanel={panel:this.stats.addPanel(ix.Panel("geo. mem","#f08","#221")),maxHeight:0},this.textureMemoryPanel={panel:this.stats.addPanel(ix.Panel("tex. mem","#0f8","#221")),maxHeight:0},this.stats.showPanel(3)},this.updateStats=()=>{if(this.isDevelopmentMode){const i=this.getTimeFunctor().now();if(i>=this.prevTime+1e3){this.prevTime=i;const r=this.threeRendererService.getInfo(),o=this.threeRendererService.getMemoryInfo();this.processPanel(this.trianglesPanel,r.triangles),this.processPanel(this.glCallsPanel,r.calls),this.processPanel(this.geometryMemoryPanel,o.geometries),this.processPanel(this.textureMemoryPanel,o.textures)}this.stats.update()}},this.resetPanels=()=>{if(this.isDevelopmentMode)for(const i of[this.trianglesPanel,this.glCallsPanel,this.geometryMemoryPanel,this.textureMemoryPanel])void 0!==i&&(i.maxHeight=0)},this.processPanel=(i,r)=>{i.maxHeight=Math.max(i.maxHeight,r),i.panel.update(r,1.3*i.maxHeight)},this.destroy=()=>{this.isDevelopmentMode&&this.stats.domElement.remove()}}static{this.\u0275fac=function(i){return new(i||t)(oe(qi))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})(),_J=(()=>{class t{constructor(e,i,r,o,s){this.threeSceneService=e,this.threeCameraService=i,this.threeOrbitControlsService=r,this.threeRendererService=o,this.threeStatsService=s,this.onWindowResize=()=>{this.threeSceneService.scene.updateMatrixWorld(!1),this.threeRendererService.renderer.setSize(window.innerWidth,window.innerHeight),this.threeCameraService.camera.aspect=window.innerWidth/window.innerHeight,this.threeCameraService.camera.updateProjectionMatrix(),this.animate()},this.onFocusIn=a=>{"INPUT"===a.target.nodeName&&(this.threeOrbitControlsService.controls.enableKeys=!1)},this.onFocusOut=a=>{"INPUT"===a.target.nodeName&&(this.threeOrbitControlsService.controls.enableKeys=!0)}}init(e){this.threeCameraService.init(window.innerWidth,window.innerHeight);const i=this.threeCameraService.camera,r=this.threeSceneService.scene;i.lookAt(r.position),r.add(i),this.threeRendererService.init(window.innerWidth,window.innerHeight,r,i),this.threeStatsService.init(e),this.threeOrbitControlsService.init(this.threeRendererService.renderer.domElement),e.append(this.threeRendererService.renderer.domElement),window.addEventListener("resize",this.onWindowResize),window.addEventListener("focusin",this.onFocusIn),window.addEventListener("focusout",this.onFocusOut),this.animate(),this.animateStats()}restart(e){this.stopAnimate(),this.destroy(),this.init(e),this.autoFitTo(),this.animate(),this.animateStats()}enableRotation(e){this.threeOrbitControlsService.controls.enableRotate=e}animate(){this.threeOrbitControlsService.controls.update(),this.threeRendererService.render()}animateStats(){this.animationFrameId=requestAnimationFrame(()=>this.animateStats()),this.threeStatsService.updateStats()}getRenderCanvas(){return this.threeRendererService.renderer.domElement}getRenderLoseExtention(){return this.threeRendererService.renderer.getContext().getExtension("WEBGL_lose_context")}autoFitTo(){this.threeOrbitControlsService.autoFitTo()}stopAnimate(){cancelAnimationFrame(this.animationFrameId)}dispose(){this.threeRendererService?.composer?.dispose(),this.threeRendererService?.renderer?.dispose()}destroy(){window.removeEventListener("resize",this.onWindowResize),window.removeEventListener("focusin",this.onFocusIn),window.removeEventListener("focusout",this.onFocusOut),this.dispose(),this.threeStatsService.destroy(),this.getRenderCanvas().remove(),this.dispose()}static{this.\u0275fac=function(i){return new(i||t)(oe(cc),oe(ru),oe(Zc),oe(qi),oe(bJ))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();const Nb=un("SET_HOVERED_NODE_ID",{_as:"props",_p:void 0}),Ob=un("SET_RIGHT_CLICKED_NODE_DATA",{_as:"props",_p:void 0}),tN=t=>t.appStatus,rx=Xt(tN,t=>t.hoveredNodeId);function ou(t,n=0){let e;return(...i)=>{clearTimeout(e),e=setTimeout(()=>{t.apply(this,i),e=null},n)}}let vJ=(()=>{class t{constructor(e,i,r,o){this.state=e,this.threeCameraService=i,this.threeSceneService=r,this.threeOrbitControlsService=o,this.mapLabelColors=iu.labelColorAndAlpha,this.LABEL_COLOR_RGB=Gi.convertHexToRgba(this.mapLabelColors.rgb),this.LABEL_WIDTH_DIVISOR=2100,this.LABEL_HEIGHT_DIVISOR=35,this.LABEL_CORNER_RADIUS=40,this.LABEL_SCALE_FACTOR=.7,this.LABEL_HEIGHT_COEFFICIENT=3.75,this.LABEL_HEIGHT_POSITION=60,this.previousScaling=new Y(1,1,1),this.lineCount=1,this.nodeHeight=0,this.labels=new Array,this.threeOrbitControlsService.subscribe("onCameraChanged",()=>this.onCameraChanged())}addLeafLabel(e,i,r=!1){const{appSettings:o,dynamicSettings:s}=this.state.getValue(),{scaling:a,layoutAlgorithm:l,showMetricLabelNodeName:c,showMetricLabelNameValue:d}=o,{margin:u,heightMetric:h}=s,m=new Y(a.x,a.y,a.z);let A="";if(c||r&&!d)A=`${e.name}`;else if(!d)return;d&&(""!==A&&(A+="\n"),A+=`${e.attributes[h]} ${h}`);const v=this.makeText(A,30,e);let x=e.height+Math.abs(e.heightDelta??0);x=x*m.y>i*m.y?x:i,this.nodeHeight=this.nodeHeight>x?this.nodeHeight:x;const w=e.z0,M=(e.x0-Ko+e.width/2)*m.x,B=(w+this.nodeHeight)*m.y,P=(w+e.height)*m.y,$=(e.y0-Ko+e.length/2)*m.z,ee=this.LABEL_HEIGHT_COEFFICIENT*u*this.LABEL_SCALE_FACTOR;let te=ee+v.heightValue/2;switch(l){case qd.StreetMap:case qd.TreeMapStreet:te/=10,this.LABEL_HEIGHT_POSITION=0,v.line=this.makeLine(M,B+te,P,$);break;default:v.line=this.makeLine(M,B+ee/2,P,$)}v.sprite.position.set(M,B+te,$),v.sprite.material.color=new rn(this.mapLabelColors.rgb),v.sprite.material.opacity=this.mapLabelColors.alpha,v.sprite.userData={node:e},this.threeSceneService.labels.add(v.sprite),this.threeSceneService.labels.add(v.line),this.labels.push(v)}clearLabels(){this.threeSceneService.resetLabel(),this.threeSceneService.resetLineHighlight(),this.dispose(this.labels),this.labels=[],this.nodeHeight=0,this.LABEL_HEIGHT_POSITION=60,this.dispose(this.threeSceneService.labels.children),this.threeSceneService.labels.children=[]}disposeSprite(e){e.material.dispose(),e.material.map.dispose(),e.geometry.dispose()}disposeLine(e){e.material.dispose(),e.geometry.dispose()}dispose(e){for(const i of e)i instanceof yb&&this.disposeSprite(i),i instanceof Ba&&this.disposeLine(i),void 0!==i.sprite&&this.disposeSprite(i.sprite),void 0!==i.line&&this.disposeLine(i.line)}clearTemporaryLabel(e){const i=this.labels.findIndex(({node:r})=>r===e);i>-1&&(this.labels.splice(i,1),this.dispose(this.threeSceneService.labels.children),this.threeSceneService.labels.children.length-=2,this.threeSceneService.resetLineHighlight())}scale(){const{scaling:e}=this.state.getValue().appSettings,i=new Y(e.x,e.y,e.z),{margin:r}=this.state.getValue().dynamicSettings,o=new Y(0,this.LABEL_HEIGHT_COEFFICIENT*r*this.LABEL_SCALE_FACTOR,0);for(const s of this.labels){const a=i.clone();s.sprite.position.sub(o).divide(this.previousScaling).multiply(a).add(o),a.y>1&&(a.y=1);const c=s.line.geometry.attributes.position;c.setX(0,c.getX(0)*a.x),c.setY(0,c.getY(0)*a.y),c.setZ(0,c.getZ(0)*a.z),c.setX(1,s.sprite.position.x),c.setY(1,s.sprite.position.y),c.setZ(1,s.sprite.position.z),c.needsUpdate=!0}this.previousScaling.copy(i)}onCameraChanged(){for(const e of this.labels)this.setLabelSize(e.sprite,e,e.sprite.material.map.image.width)}makeText(e,i,r){const o=document.createElement("canvas"),s=o.getContext("2d");s.font=`${i}px Roboto`;const l=e.split("\n"),c=s.measureText(l[0]).width,d=s.measureText(l[1]).width;o.width=c>d?c+25:d+25,o.height=25+i*l.length,s.font=`${i}px Roboto`,s.fillStyle="rgba(255,255,255,1)",s.lineJoin="round",s.lineCap="round",s.lineWidth=5,t.drawRectangleWithRoundedCorners(s,0,0,o.width,o.height,this.LABEL_CORNER_RADIUS),s.fillStyle="rgba(0,0,0,1)",s.textAlign="center",s.textBaseline="middle";for(const[A,v]of l.entries())s.fillText(v,o.width/2,o.height*(A+1)/(l.length+1));const u=new ss(o);u.minFilter=Ro,u.needsUpdate=!0;const h=new ww({map:u}),m=new yb(h);return this.lineCount=l.length,this.setLabelSize(m,null,o.width),{sprite:m,heightValue:o.height,line:null,lineCount:l.length,node:r}}static drawRectangleWithRoundedCorners(e,i,r,o,s,a){o<2*a&&(a=o/2),s<2*a&&(a=s/2),e.beginPath(),e.moveTo(i+a,r),e.arcTo(i+o,r,i+o,r+s,a),e.arcTo(i+o,r+s,i,r+s,a),e.arcTo(i,r+s,i,r,a),e.arcTo(i,r,i+o,r,a),e.closePath(),e.fill()}setLabelSize(e,i,r=e.material.map.image.width){const o=(new ys).setFromObject(this.threeSceneService.mapGeometry).getBoundingSphere(new Zd).center;if(this.threeCameraService.camera){const s=this.threeCameraService.camera.position.distanceTo(o);null!==i&&(this.lineCount=i.lineCount),e.scale.set(s/this.LABEL_WIDTH_DIVISOR*r,this.lineCount>1?s/25:s/this.LABEL_HEIGHT_DIVISOR,1)}}makeLine(e,i,r,o){const s=new ls({color:this.LABEL_COLOR_RGB,linewidth:2});return new Ba((new Bn).setFromPoints([new Y(e,r,o),new Y(e,i+this.LABEL_HEIGHT_POSITION,o)]),s)}static{this.\u0275fac=function(i){return new(i||t)(oe(Br),oe(ru),oe(cc),oe(Zc))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})(),yJ=(()=>{class t{constructor(e){this.threeOrbitControlsService=e,this.eventEmitter=new J5,this.currentlyHovered=null,this.isDragging=!1}init(e,i,r){this.cubeGroup=e,this.camera=i,this.renderer=r,this.initOrbitalControl(i,r),this.initRendererEventListeners(r)}resetIsDragging(){this.isDragging=!1}initOrbitalControl(e,i){const r=gJ()(U);this.controls=new r(e,i.domElement),this.controls.enableZoom=!1,this.controls.enableKeys=!1,this.controls.enablePan=!1,this.controls.rotateSpeed=1}initRendererEventListeners(e){e.domElement.addEventListener("mousemove",i=>this.onDocumentMouseMove(i)),e.domElement.addEventListener("mouseup",i=>this.onDocumentMouseUp(i)),e.domElement.addEventListener("mousedown",i=>this.onDocumentMouseClick(i,"mousedown")),e.domElement.addEventListener("dblclick",i=>this.onDocumentMouseClick(i,"dblclick")),e.domElement.addEventListener("mouseleave",i=>this.onWindowMouseLeave(i)),e.domElement.addEventListener("mouseenter",()=>this.onDocumentMouseEnter())}onDocumentMouseClick(e,i){this.isDragging=!0,this.checkMouseIntersection(e,i)}onWindowMouseLeave(e){(null==e.relatedTarget||!(e.relatedTarget instanceof HTMLCanvasElement))&&this.enableRotation(!1)}onDocumentMouseEnter(){this.enableRotation(!0)}enableRotation(e){this.controls.enableRotate=e}checkMouseIntersection(e,i){this.getCubeIntersectedByMouse(e)||this.eventEmitter.emit("viewCubeEventPropagation",{type:i,event:e})}getCubeIntersectedByMouse(e){const i=this.transformIntoCanvasVector(e),r=new Kw;r.setFromCamera(i,this.camera);const o=[];for(const a of io(this.cubeGroup))Eo(a)&&o.push(a.data);const[s]=r.intersectObjects(o);return s?s.object:null}transformIntoCanvasVector(e){const{domElement:i}=this.renderer,r=this.renderer.getPixelRatio(),o=i.getBoundingClientRect();return new ut((e.clientX-o.left)/i.width*r*2-1,-(e.clientY-o.top)/i.height*r*2+1)}propagateMovement(){if(this.isDragging){const e=this.camera.position;this.threeOrbitControlsService.rotateCameraInVectorDirection(-e.x,-e.y,-e.z)}return this.isDragging}onDocumentMouseMove(e){if(this.propagateMovement())return;const i=this.getCubeIntersectedByMouse(e);i?this.currentlyHovered&&i.uuid!==this.currentlyHovered.uuid?this.triggerViewCubeUnhoverEvent():this.currentlyHovered||this.triggerViewCubeHoverEvent(i):(this.currentlyHovered&&this.triggerViewCubeUnhoverEvent(),this.eventEmitter.emit("viewCubeEventPropagation",{type:"mousemove",event:e}))}onDocumentMouseUp(e){this.isDragging=!1;const i=this.getCubeIntersectedByMouse(e);i?this.eventEmitter.emit("viewCubeClicked",{cube:i}):this.eventEmitter.emit("viewCubeEventPropagation",{type:"mouseup",event:e})}triggerViewCubeHoverEvent(e){this.currentlyHovered=e,ox.changeCursorIndicator(Eh.Pointer),this.eventEmitter.emit("viewCubeHoveredEvent",{cube:e})}triggerViewCubeUnhoverEvent(){this.currentlyHovered=null,ox.changeCursorIndicator(Eh.Default),this.eventEmitter.emit("viewCubeUnHoveredEvent")}subscribe(e,i){this.eventEmitter.on(e,r=>{i(r)})}static{this.\u0275fac=function(i){return new(i||t)(oe(Zc))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();var aF=function(t){return t[t.LeftClick=0]="LeftClick",t[t.RightClick=2]="RightClick",t}(aF||{}),Eh=function(t){return t.Default="default",t.Grabbing="grabbing",t.Pointer="pointer",t.Moving="move",t}(Eh||{});let ox=(()=>{class t{constructor(e,i,r,o,s,a,l,c,d){this.threeCameraService=e,this.threeRendererService=i,this.threeSceneService=r,this.store=o,this.state=s,this.codeMapLabelService=a,this.viewCubeMouseEvents=l,this.threeViewerService=c,this.idToBuilding=d,this.THRESHOLD_FOR_MOUSE_MOVEMENT_TRACKING=3,this.mouse={x:0,y:0},this.oldMouse={x:0,y:0},this.mouseOnLastClick={x:0,y:0},this.isGrabbing=!1,this.isMoving=!1,this.raycaster=new Kw,this.labelHoveredBuilding=null,this.labelSelectedBuilding=null,this.subscriptions=[this.store.select(Ud).pipe(Nr(()=>this.onFilesSelectionChanged())).subscribe(),this.store.select(Od).pipe(Nr(u=>this.onBlacklistChanged(u))).subscribe(),this.store.select(rx).pipe(Nr(u=>{null!==u?this.hoverNode(u):this.unhoverNode(!1)})).subscribe()],this.onViewCubeEventPropagation=u=>{switch(u.type){case"mousemove":this.onDocumentMouseMove(u.event);break;case"mouseup":this.onDocumentMouseUp(u.event);break;case"mousedown":this.onDocumentMouseDown(u.event);break;case"dblclick":this.onDocumentDoubleClick()}},this.onDocumentMouseMove=u=>{this.mouse.x=u.clientX,this.mouse.y=u.clientY,this.updateHovering(),this.viewCubeMouseEvents.propagateMovement()}}ngOnDestroy(){for(const e of this.subscriptions)e.unsubscribe()}static changeCursorIndicator(e){document.body.style.cursor=e}start(){this.threeRendererService.renderer.domElement.addEventListener("mousemove",ou(this.onDocumentMouseMove,1)),this.threeRendererService.renderer.domElement.addEventListener("mouseup",e=>this.onDocumentMouseUp(e)),this.threeRendererService.renderer.domElement.addEventListener("mousedown",e=>this.onDocumentMouseDown(e)),this.threeRendererService.renderer.domElement.addEventListener("dblclick",()=>this.onDocumentDoubleClick()),this.threeRendererService.renderer.domElement.addEventListener("mouseleave",e=>this.onDocumentMouseLeave(e)),this.threeRendererService.renderer.domElement.addEventListener("mouseenter",()=>this.onDocumentMouseEnter()),this.threeRendererService.renderer.domElement.addEventListener("wheel",ou(()=>this.threeRendererService.render(),1)),this.viewCubeMouseEvents.subscribe("viewCubeEventPropagation",this.onViewCubeEventPropagation)}hoverNode(e){if(this.isGrabbingOrMoving())return;const{buildings:i}=this.threeSceneService.getMapMesh().getMeshDescription();for(const r of i)if(r.node.id===e){this.hoverBuilding(r,!1);break}this.threeRendererService.render()}unhoverNode(e=!0){this.unhoverBuilding(e),this.threeRendererService.render()}onFilesSelectionChanged(){this.threeSceneService.clearSelection(),this.threeSceneService.clearConstantHighlight(),this.clearLabelHoveredBuilding()}onBlacklistChanged(e){const i=this.threeSceneService.getSelectedBuilding();this.clearLabelHoveredBuilding(),i&&function Bve(t,n){return Ju(t,n,"exclude")||Ju(t,n,"flatten")}(i.node.path,e)&&this.threeSceneService.clearSelection(),this.unhoverBuilding()}updateHovering(){if(this.hasMouseMoved(this.oldMouse)){const e=this.threeSceneService.labels?.children;if(this.isGrabbingOrMoving())return this.threeSceneService.resetLabel(),this.clearLabelHoveredBuilding(),void this.threeRendererService.render();this.oldMouse.x=this.mouse.x,this.oldMouse.y=this.mouse.y;const i=this.threeSceneService.getMapMesh();if(i){this.threeCameraService.camera.updateMatrixWorld(!1);let r="";const o=this.transformHTMLToSceneCoordinates(),s=this.threeCameraService.camera;s.isPerspectiveCamera&&this.raycaster.setFromCamera(o,s);const a=this.calculateHoveredLabel(e);a&&(this.threeSceneService.animateLabel(a.object,this.raycaster,e),r=a.object.userData.node.path),this.intersectedBuilding=""!==r?i.getBuildingByPath(r):i.checkMouseRayMeshIntersection(o,s);const l=this.threeSceneService.getHighlightedBuilding(),c=this.intersectedBuilding;l?.id!==c?.id&&(this.clearLabelHoveredBuilding(),this.threeSceneService.resetLabel(),this.unhoverBuilding(),c&&!this.isGrabbingOrMoving()&&(this.setLabelHoveredLeaf(c,e),this.hoverBuilding(c)))}}}setLabelHoveredLeaf(e,i){if(e?.node?.isLeaf){const r=this.threeSceneService.getLabelForHoveredNode(e,i)??this.drawLabelHoveredBuilding(e);this.threeSceneService.animateLabel(r,this.raycaster,i)}}drawLabelHoveredBuilding(e){this.codeMapLabelService.addLeafLabel(e.node,0,!0);const r=this.threeSceneService.labels?.children,o=this.threeSceneService.getLabelForHoveredNode(e,r);return this.labelHoveredBuilding=e.node,o}drawLabelSelectedBuilding(e){if(this.clearLabelHoveredBuilding(),null!==this.labelSelectedBuilding&&this.codeMapLabelService.clearTemporaryLabel(this.labelSelectedBuilding),!e.node.isLeaf)return;this.codeMapLabelService.addLeafLabel(e.node,0,!0);const i=this.threeSceneService.labels?.children,r=this.threeSceneService.getLabelForHoveredNode(e,i);return this.threeSceneService.animateLabel(r,this.raycaster,i),this.labelSelectedBuilding=e.node,r}clearLabelHoveredBuilding(){null!==this.labelHoveredBuilding&&(this.codeMapLabelService.clearTemporaryLabel(this.labelHoveredBuilding),this.labelHoveredBuilding=null)}clearLabelSelectedBuilding(){null!==this.labelSelectedBuilding&&(this.codeMapLabelService.clearTemporaryLabel(this.labelSelectedBuilding),this.labelSelectedBuilding=null)}EnableOrbitalsRotation(e){this.threeViewerService.enableRotation(e),this.viewCubeMouseEvents.enableRotation(e)}onDocumentMouseEnter(){this.EnableOrbitalsRotation(!0)}onDocumentMouseLeave(e){e.relatedTarget instanceof HTMLCanvasElement||this.EnableOrbitalsRotation(!1)}onDocumentDoubleClick(){const e=this.threeSceneService.getHighlightedBuilding(),i=this.threeSceneService.getSelectedBuilding(),r=e?.node.link;if(r&&!this.hasMouseMoved(this.mouseOnLastClick)&&window.open(r,"_blank"),i?.node.isLeaf){const o=i.node.link;if(o)return void window.open(o,"_blank")}}onDocumentMouseDown(e){e.button===aF.RightClick&&(this.isMoving=!0,t.changeCursorIndicator(Eh.Moving)),e.button===aF.LeftClick&&(this.isGrabbing=!0,t.changeCursorIndicator(Eh.Grabbing)),this.mouseOnLastClick={x:e.clientX,y:e.clientY},document.activeElement.blur()}onDocumentMouseUp(e){this.viewCubeMouseEvents.resetIsDragging(),e.button===aF.LeftClick?this.onLeftClick():this.onRightClick(),t.changeCursorIndicator(void 0!==this.intersectedBuilding?Eh.Pointer:Eh.Default)}calculateHoveredLabel(e){let i=null;for(let r=0;r0&&(i=null===i?o[0]:i.distancethis.THRESHOLD_FOR_MOUSE_MOVEMENT_TRACKING||Math.abs(this.mouse.y-i)>this.THRESHOLD_FOR_MOUSE_MOVEMENT_TRACKING}hasMouseMoved({x:e,y:i}){return this.mouse.x!==e||this.mouse.y!==i}isGrabbingOrMoving(){return this.isGrabbing||this.isMoving}hoverBuilding(e,i=!0){t.changeCursorIndicator(Eh.Pointer);const o=Rb(this.state.getValue()).get(e.node.id);for(const{data:s}of io(o)){const a=this.idToBuilding.get(s.id);a&&this.threeSceneService.addBuildingToHighlightingList(a)}this.threeSceneService.highlightBuildings(),i&&this.store.dispatch(Nb({value:e.node.id}))}transformHTMLToSceneCoordinates(){const{renderer:e,renderer:{domElement:i}}=this.threeRendererService,r=e.getPixelRatio(),o=i.getBoundingClientRect();return{x:this.mouse.x/i.width*r*2-1,y:-(this.mouse.y-o.top)/i.height*r*2+1}}unhoverBuilding(e=!0){this.isGrabbingOrMoving()||t.changeCursorIndicator(Eh.Default),this.threeSceneService.getConstantHighlight().size>0?this.threeSceneService.clearHoverHighlight():this.threeSceneService.clearHighlight(),e&&this.store.dispatch(Nb({value:null}))}static{this.\u0275fac=function(i){return new(i||t)(oe(ru),oe(qi),oe(cc),oe(Wt),oe(Br),oe(vJ),oe(yJ),oe(_J),oe(Jw))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();const nN=()=>new Sb({color:16580095}),iN=()=>new Sb({color:16580095}),wJ=()=>new Sb({color:16580095});class Jc{static buildCube(n){const e=1/n,i=(1-e)/2,r=new sc(e,i,i),o=new sc(i,i,i),s=new sc(e,e,i);return Jc.buildCubeGroup(r,o,s)}static buildCubeGroup(n,e,i){const r=new Ps,{group:o,topLeft:s,topCenter:a,topRight:l,bottomLeft:c,bottomCenter:d,bottomRight:u,middleLeft:h,middleCenter:m,middleRight:A}=Jc.buildFullFace(n,e,i),{group:v,topLeft:x,topCenter:C,topRight:w,bottomLeft:S,bottomCenter:M,bottomRight:B,middleLeft:P,middleCenter:$,middleRight:ee}=Jc.buildFullFace(n,e,i),te=n.parameters.width/2+e.parameters.width/2;v.position.z-=te,o.position.z+=te;const{group:re,topLeftMiddle:ne,topMiddleMiddle:Ce,topRightMiddle:we,middleLeftMiddle:j,middleRightMiddle:me,bottomLeftMiddle:X,bottomMiddleMiddle:Ae,bottomRightMiddle:ke}=Jc.buildMiddleRing(i,n,e);return r.add(o),r.add(v),r.add(re),{group:r,front:{top:{left:s,middle:a,right:l},middle:{left:A,middle:m,right:h},bottom:{left:c,middle:d,right:u}},back:{top:{left:x,middle:C,right:w},middle:{left:P,middle:$,right:ee},bottom:{left:S,middle:M,right:B}},middle:{top:{left:ne,middle:Ce,right:we},middle:{left:j,right:me},bottom:{left:X,middle:Ae,right:ke}}}}static buildMiddleRing(n,e,i){const{group:r,left:o,right:s,center:a}=Jc.buildMiddleFace(n,e),{group:l,left:c,right:d,center:u}=Jc.buildMiddleFace(n,e),h=new Ci(n,iN()),m=new Ci(n,iN()),A=e.parameters.width/2+i.parameters.width/2;r.position.x-=A,r.rotation.x=Math.PI/2,r.rotation.y=Math.PI/2,l.position.x+=A,l.rotation.x=Math.PI/2,l.rotation.y=Math.PI/2,m.position.y-=A,m.rotation.x=Math.PI/2,h.position.y+=A,h.rotation.x=Math.PI/2;const v=new Ps;return v.add(r),v.add(l),v.add(m),v.add(h),{group:v,topLeftMiddle:o,topMiddleMiddle:h,topRightMiddle:c,middleLeftMiddle:a,middleRightMiddle:u,bottomLeftMiddle:s,bottomMiddleMiddle:m,bottomRightMiddle:d}}static buildFullFace(n,e,i){const{group:r,left:o,right:s,center:a}=Jc.buildFullEdge(n,e),{group:l,left:c,right:d,center:u}=Jc.buildFullEdge(n,e),h=n.parameters.height/2+i.parameters.height/2;r.position.y+=h,l.position.y-=h;const{group:m,left:A,right:v,center:x}=Jc.buildMiddleFace(i,n),C=new Ps;return C.add(r),C.add(l),C.add(m),{group:C,topLeft:o,topCenter:a,topRight:s,bottomLeft:c,bottomCenter:u,bottomRight:d,middleLeft:A,middleCenter:x,middleRight:v}}static buildMiddleFace(n,e){const i=new Ci(n,iN()),r=new Ci(e,nN()),o=new Ci(e,nN()),s=n.parameters.height/2+e.parameters.height/2;r.position.y-=s,o.position.y+=s;const a=new Ps;return a.rotation.z=Math.PI/2,a.add(i),a.add(r),a.add(o),{group:a,left:r,right:o,center:i}}static buildFullEdge(n,e){const i=new Ci(n,nN()),r=new Ci(e,wJ()),o=new Ci(e,wJ()),s=n.parameters.width/2+e.parameters.width/2;r.position.x-=s,o.position.x+=s;const a=new Ps;return a.add(i),a.add(r),a.add(o),{group:a,left:r,right:o,center:i}}}let Nke=(()=>{class t{constructor(e){this.threeOrbitControlsService=e}centerMap(){this.threeOrbitControlsService.autoFitTo()}static{this.\u0275fac=function(i){return new(i||t)(W(Zc))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-center-map-button"]],decls:2,vars:0,consts:[["aria-label","Center map in View","title","Center map",1,"cc-shadow",3,"click"],[1,"fa","fa-compass"]],template:function(i,r){1&i&&(I(0,"button",0),We("click",function(){return r.centerMap()}),_e(1,"i",1),O())},styles:["cc-center-map-button button{position:absolute;right:15px;width:36px;height:36px;font-size:28px;border-radius:100%;color:#fff;background-color:#1b9cfc}cc-center-map-button button i{margin-top:2px}cc-center-map-button button:hover{cursor:pointer;color:#eee}\n"],encapsulation:2})}}return t})(),Oke=(()=>{class t{constructor(e,i,r){this.elementReference=e,this.threeOrbitControlsService=i,this.viewCubeMouseEvents=r,this.WIDTH=200,this.HEIGHT=200,this.LENGTH_VIEWCUBE=1,this.hoverInfo={cube:null,originalMaterial:null},this.cubeDefinition={front:null,middle:null,back:null},this.onCameraChanged=o=>{const s=this.calculateCameraPosition(o.camera);this.setCameraPosition(s),this.renderer.render(this.scene,this.camera)},this.onCubeHovered=o=>{this.hoverInfo={cube:o.cube,originalMaterial:o.cube.material},this.hoverInfo.cube.material.emissive=new rn(16777215),this.renderer.render(this.scene,this.camera)},this.onCubeUnhovered=()=>{this.hoverInfo.cube.material.emissive=new rn(0),this.hoverInfo.cube=null,this.renderer.render(this.scene,this.camera)},this.onCubeClicked=o=>{switch(o.cube){case this.cubeDefinition.front.top.middle:this.threeOrbitControlsService.rotateCameraInVectorDirection(0,-1,-1);break;case this.cubeDefinition.front.top.left:this.threeOrbitControlsService.rotateCameraInVectorDirection(1,-1,-1);break;case this.cubeDefinition.front.top.right:this.threeOrbitControlsService.rotateCameraInVectorDirection(-1,-1,-1);break;case this.cubeDefinition.front.middle.middle:this.threeOrbitControlsService.rotateCameraInVectorDirection(0,0,0);break;case this.cubeDefinition.front.middle.left:this.threeOrbitControlsService.rotateCameraInVectorDirection(1,0,-1);break;case this.cubeDefinition.front.middle.right:this.threeOrbitControlsService.rotateCameraInVectorDirection(-1,0,-1);break;case this.cubeDefinition.front.bottom.middle:this.threeOrbitControlsService.rotateCameraInVectorDirection(0,1,-1);break;case this.cubeDefinition.front.bottom.left:this.threeOrbitControlsService.rotateCameraInVectorDirection(1,1,-1);break;case this.cubeDefinition.front.bottom.right:this.threeOrbitControlsService.rotateCameraInVectorDirection(-1,1,-1);break;case this.cubeDefinition.middle.middle.right:this.threeOrbitControlsService.rotateCameraInVectorDirection(-1,0,0);break;case this.cubeDefinition.middle.top.right:this.threeOrbitControlsService.rotateCameraInVectorDirection(-1,-1,0);break;case this.cubeDefinition.middle.bottom.right:this.threeOrbitControlsService.rotateCameraInVectorDirection(-1,1,0);break;case this.cubeDefinition.middle.middle.left:this.threeOrbitControlsService.rotateCameraInVectorDirection(1,0,0);break;case this.cubeDefinition.middle.top.left:this.threeOrbitControlsService.rotateCameraInVectorDirection(1,-1,0);break;case this.cubeDefinition.middle.bottom.left:this.threeOrbitControlsService.rotateCameraInVectorDirection(1,1,0);break;case this.cubeDefinition.middle.top.middle:this.threeOrbitControlsService.rotateCameraInVectorDirection(0,-1,0);break;case this.cubeDefinition.middle.bottom.middle:this.threeOrbitControlsService.rotateCameraInVectorDirection(0,1,0);break;case this.cubeDefinition.back.top.middle:this.threeOrbitControlsService.rotateCameraInVectorDirection(0,-1,1);break;case this.cubeDefinition.back.top.left:this.threeOrbitControlsService.rotateCameraInVectorDirection(1,-1,1);break;case this.cubeDefinition.back.top.right:this.threeOrbitControlsService.rotateCameraInVectorDirection(-1,-1,1);break;case this.cubeDefinition.back.middle.middle:this.threeOrbitControlsService.rotateCameraInVectorDirection(0,0,1);break;case this.cubeDefinition.back.middle.left:this.threeOrbitControlsService.rotateCameraInVectorDirection(-1,0,1);break;case this.cubeDefinition.back.middle.right:this.threeOrbitControlsService.rotateCameraInVectorDirection(1,0,1);break;case this.cubeDefinition.back.bottom.middle:this.threeOrbitControlsService.rotateCameraInVectorDirection(0,1,1);break;case this.cubeDefinition.back.bottom.left:this.threeOrbitControlsService.rotateCameraInVectorDirection(-1,1,1);break;case this.cubeDefinition.back.bottom.right:this.threeOrbitControlsService.rotateCameraInVectorDirection(1,1,1)}}}ngOnInit(){this.initScene(),this.initLights(),this.initRenderer(this.elementReference.nativeElement),this.initCube(),this.initAxesHelper(),this.initCamera(),this.viewCubeMouseEvents.init(this.cubeGroup,this.camera,this.renderer),this.threeOrbitControlsService.subscribe("onCameraChanged",this.onCameraChanged),this.viewCubeMouseEvents.subscribe("viewCubeHoveredEvent",this.onCubeHovered),this.viewCubeMouseEvents.subscribe("viewCubeUnHoveredEvent",this.onCubeUnhovered),this.viewCubeMouseEvents.subscribe("viewCubeClicked",this.onCubeClicked)}initAxesHelper(){const e=new H5(1.3),i=-this.LENGTH_VIEWCUBE/2+.01;e.position.x+=i,e.position.y+=i,e.position.z+=i,this.scene.add(e)}initCube(){const{group:e,front:i,middle:r,back:o}=Jc.buildCube(1.6);this.cubeGroup=e,this.cubeDefinition.front=i,this.cubeDefinition.middle=r,this.cubeDefinition.back=o;const s=new O5(this.cubeGroup,new rn(0));this.scene.add(this.cubeGroup),this.scene.add(s)}setCameraPosition(e){this.camera.position.set(e.x,e.y,e.z),this.camera.lookAt(0,0,0),this.camera.updateProjectionMatrix()}calculateCameraPosition(e){const i=this.threeOrbitControlsService.controls.target.clone();return e.position.clone().sub(i).normalize().multiplyScalar(3)}initScene(){this.scene=new cA}initRenderer(e){this.renderer=new gr({alpha:!0,antialias:!0}),this.renderer.setSize(this.WIDTH,this.HEIGHT),this.renderer.setPixelRatio(window.devicePixelRatio),e.appendChild(this.renderer.domElement)}initCamera(){this.camera=new Mo(45,this.WIDTH/this.HEIGHT,.1,1e3),this.camera.position.z=4}initLights(){this.lights=new Ps;const e=new qw(7368816,1.2),i=new bA(14737632,.4);i.position.set(50,10,8).normalize();const r=new bA(14737632,.4);r.position.set(-50,10,-8).normalize(),this.lights.add(e),this.lights.add(i),this.lights.add(r),this.scene.add(this.lights)}static{this.\u0275fac=function(i){return new(i||t)(W(Un),W(Zc),W(yJ))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-view-cube"]],decls:1,vars:0,template:function(i,r){1&i&&_e(0,"cc-center-map-button")},dependencies:[Nke],encapsulation:2})}}return t})();const Uke=Xt(tN,t=>t.selectedBuildingId),pm=Xt(Uke,Rb,(t,n)=>n?.get(t)),Hke=["tooltip"],CJ=new ot("mat-tooltip-scroll-strategy",{providedIn:"root",factory:()=>{const t=Ut(_s);return()=>t.scrollStrategies.reposition({scrollThrottle:20})}}),Qke={provide:CJ,deps:[_s],useFactory:function Vke(t){return()=>t.scrollStrategies.reposition({scrollThrottle:20})}},Gke=new ot("mat-tooltip-default-options",{providedIn:"root",factory:function zke(){return{showDelay:0,hideDelay:0,touchendHideDelay:1500}}}),EJ="tooltip-panel",MJ=Bp({passive:!0});let SJ=(()=>{class t{get position(){return this._position}set position(e){e!==this._position&&(this._position=e,this._overlayRef&&(this._updatePosition(this._overlayRef),this._tooltipInstance?.show(0),this._overlayRef.updatePosition()))}get positionAtOrigin(){return this._positionAtOrigin}set positionAtOrigin(e){this._positionAtOrigin=$s(e),this._detach(),this._overlayRef=null}get disabled(){return this._disabled}set disabled(e){this._disabled=$s(e),this._disabled?this.hide(0):this._setupPointerEnterEventsIfNeeded()}get showDelay(){return this._showDelay}set showDelay(e){this._showDelay=Qf(e)}get hideDelay(){return this._hideDelay}set hideDelay(e){this._hideDelay=Qf(e),this._tooltipInstance&&(this._tooltipInstance._mouseLeaveHideDelay=this._hideDelay)}get message(){return this._message}set message(e){this._ariaDescriber.removeDescription(this._elementRef.nativeElement,this._message,"tooltip"),this._message=null!=e?String(e).trim():"",!this._message&&this._isTooltipVisible()?this.hide(0):(this._setupPointerEnterEventsIfNeeded(),this._updateTooltipMessage(),this._ngZone.runOutsideAngular(()=>{Promise.resolve().then(()=>{this._ariaDescriber.describe(this._elementRef.nativeElement,this.message,"tooltip")})}))}get tooltipClass(){return this._tooltipClass}set tooltipClass(e){this._tooltipClass=e,this._tooltipInstance&&this._setTooltipClass(this._tooltipClass)}constructor(e,i,r,o,s,a,l,c,d,u,h,m){this._overlay=e,this._elementRef=i,this._scrollDispatcher=r,this._viewContainerRef=o,this._ngZone=s,this._platform=a,this._ariaDescriber=l,this._focusMonitor=c,this._dir=u,this._defaultOptions=h,this._position="below",this._positionAtOrigin=!1,this._disabled=!1,this._viewInitialized=!1,this._pointerExitEventsInitialized=!1,this._tooltipComponent=Kke,this._viewportMargin=8,this._cssClassPrefix="mat-mdc",this.touchGestures="auto",this._message="",this._passiveListeners=[],this._destroyed=new Yt,this._scrollStrategy=d,this._document=m,h&&(this._showDelay=h.showDelay,this._hideDelay=h.hideDelay,h.position&&(this.position=h.position),h.positionAtOrigin&&(this.positionAtOrigin=h.positionAtOrigin),h.touchGestures&&(this.touchGestures=h.touchGestures)),u.change.pipe(Ur(this._destroyed)).subscribe(()=>{this._overlayRef&&this._updatePosition(this._overlayRef)}),this._viewportMargin=8}ngAfterViewInit(){this._viewInitialized=!0,this._setupPointerEnterEventsIfNeeded(),this._focusMonitor.monitor(this._elementRef).pipe(Ur(this._destroyed)).subscribe(e=>{e?"keyboard"===e&&this._ngZone.run(()=>this.show()):this._ngZone.run(()=>this.hide(0))})}ngOnDestroy(){const e=this._elementRef.nativeElement;clearTimeout(this._touchstartTimeout),this._overlayRef&&(this._overlayRef.dispose(),this._tooltipInstance=null),this._passiveListeners.forEach(([i,r])=>{e.removeEventListener(i,r,MJ)}),this._passiveListeners.length=0,this._destroyed.next(),this._destroyed.complete(),this._ariaDescriber.removeDescription(e,this.message,"tooltip"),this._focusMonitor.stopMonitoring(e)}show(e=this.showDelay,i){if(this.disabled||!this.message||this._isTooltipVisible())return void this._tooltipInstance?._cancelPendingAnimations();const r=this._createOverlay(i);this._detach(),this._portal=this._portal||new f1(this._tooltipComponent,this._viewContainerRef);const o=this._tooltipInstance=r.attach(this._portal).instance;o._triggerElement=this._elementRef.nativeElement,o._mouseLeaveHideDelay=this._hideDelay,o.afterHidden().pipe(Ur(this._destroyed)).subscribe(()=>this._detach()),this._setTooltipClass(this._tooltipClass),this._updateTooltipMessage(),o.show(e)}hide(e=this.hideDelay){const i=this._tooltipInstance;i&&(i.isVisible()?i.hide(e):(i._cancelPendingAnimations(),this._detach()))}toggle(e){this._isTooltipVisible()?this.hide():this.show(void 0,e)}_isTooltipVisible(){return!!this._tooltipInstance&&this._tooltipInstance.isVisible()}_createOverlay(e){if(this._overlayRef){const o=this._overlayRef.getConfig().positionStrategy;if((!this.positionAtOrigin||!e)&&o._origin instanceof Un)return this._overlayRef;this._detach()}const i=this._scrollDispatcher.getAncestorScrollContainers(this._elementRef),r=this._overlay.position().flexibleConnectedTo(this.positionAtOrigin&&e||this._elementRef).withTransformOriginOn(`.${this._cssClassPrefix}-tooltip`).withFlexibleDimensions(!1).withViewportMargin(this._viewportMargin).withScrollableContainers(i);return r.positionChanges.pipe(Ur(this._destroyed)).subscribe(o=>{this._updateCurrentPositionClass(o.connectionPair),this._tooltipInstance&&o.scrollableViewProperties.isOverlayClipped&&this._tooltipInstance.isVisible()&&this._ngZone.run(()=>this.hide(0))}),this._overlayRef=this._overlay.create({direction:this._dir,positionStrategy:r,panelClass:`${this._cssClassPrefix}-${EJ}`,scrollStrategy:this._scrollStrategy()}),this._updatePosition(this._overlayRef),this._overlayRef.detachments().pipe(Ur(this._destroyed)).subscribe(()=>this._detach()),this._overlayRef.outsidePointerEvents().pipe(Ur(this._destroyed)).subscribe(()=>this._tooltipInstance?._handleBodyInteraction()),this._overlayRef.keydownEvents().pipe(Ur(this._destroyed)).subscribe(o=>{this._isTooltipVisible()&&27===o.keyCode&&!Pc(o)&&(o.preventDefault(),o.stopPropagation(),this._ngZone.run(()=>this.hide(0)))}),this._defaultOptions?.disableTooltipInteractivity&&this._overlayRef.addPanelClass(`${this._cssClassPrefix}-tooltip-panel-non-interactive`),this._overlayRef}_detach(){this._overlayRef&&this._overlayRef.hasAttached()&&this._overlayRef.detach(),this._tooltipInstance=null}_updatePosition(e){const i=e.getConfig().positionStrategy,r=this._getOrigin(),o=this._getOverlayPosition();i.withPositions([this._addOffset({...r.main,...o.main}),this._addOffset({...r.fallback,...o.fallback})])}_addOffset(e){const r=!this._dir||"ltr"==this._dir.value;return"top"===e.originY?e.offsetY=-8:"bottom"===e.originY?e.offsetY=8:"start"===e.originX?e.offsetX=r?-8:8:"end"===e.originX&&(e.offsetX=r?8:-8),e}_getOrigin(){const e=!this._dir||"ltr"==this._dir.value,i=this.position;let r;"above"==i||"below"==i?r={originX:"center",originY:"above"==i?"top":"bottom"}:"before"==i||"left"==i&&e||"right"==i&&!e?r={originX:"start",originY:"center"}:("after"==i||"right"==i&&e||"left"==i&&!e)&&(r={originX:"end",originY:"center"});const{x:o,y:s}=this._invertPosition(r.originX,r.originY);return{main:r,fallback:{originX:o,originY:s}}}_getOverlayPosition(){const e=!this._dir||"ltr"==this._dir.value,i=this.position;let r;"above"==i?r={overlayX:"center",overlayY:"bottom"}:"below"==i?r={overlayX:"center",overlayY:"top"}:"before"==i||"left"==i&&e||"right"==i&&!e?r={overlayX:"end",overlayY:"center"}:("after"==i||"right"==i&&e||"left"==i&&!e)&&(r={overlayX:"start",overlayY:"center"});const{x:o,y:s}=this._invertPosition(r.overlayX,r.overlayY);return{main:r,fallback:{overlayX:o,overlayY:s}}}_updateTooltipMessage(){this._tooltipInstance&&(this._tooltipInstance.message=this.message,this._tooltipInstance._markForCheck(),this._ngZone.onMicrotaskEmpty.pipe(qo(1),Ur(this._destroyed)).subscribe(()=>{this._tooltipInstance&&this._overlayRef.updatePosition()}))}_setTooltipClass(e){this._tooltipInstance&&(this._tooltipInstance.tooltipClass=e,this._tooltipInstance._markForCheck())}_invertPosition(e,i){return"above"===this.position||"below"===this.position?"top"===i?i="bottom":"bottom"===i&&(i="top"):"end"===e?e="start":"start"===e&&(e="end"),{x:e,y:i}}_updateCurrentPositionClass(e){const{overlayY:i,originX:r,originY:o}=e;let s;if(s="center"===i?this._dir&&"rtl"===this._dir.value?"end"===r?"left":"right":"start"===r?"left":"right":"bottom"===i&&"top"===o?"above":"below",s!==this._currentPosition){const a=this._overlayRef;if(a){const l=`${this._cssClassPrefix}-${EJ}-`;a.removePanelClass(l+this._currentPosition),a.addPanelClass(l+s)}this._currentPosition=s}}_setupPointerEnterEventsIfNeeded(){this._disabled||!this.message||!this._viewInitialized||this._passiveListeners.length||(this._platformSupportsMouseEvents()?this._passiveListeners.push(["mouseenter",e=>{let i;this._setupPointerExitEventsIfNeeded(),void 0!==e.x&&void 0!==e.y&&(i=e),this.show(void 0,i)}]):"off"!==this.touchGestures&&(this._disableNativeGesturesIfNecessary(),this._passiveListeners.push(["touchstart",e=>{const i=e.targetTouches?.[0],r=i?{x:i.clientX,y:i.clientY}:void 0;this._setupPointerExitEventsIfNeeded(),clearTimeout(this._touchstartTimeout),this._touchstartTimeout=setTimeout(()=>this.show(void 0,r),this._defaultOptions.touchLongPressShowDelay??500)}])),this._addListeners(this._passiveListeners))}_setupPointerExitEventsIfNeeded(){if(this._pointerExitEventsInitialized)return;this._pointerExitEventsInitialized=!0;const e=[];if(this._platformSupportsMouseEvents())e.push(["mouseleave",i=>{const r=i.relatedTarget;(!r||!this._overlayRef?.overlayElement.contains(r))&&this.hide()}],["wheel",i=>this._wheelListener(i)]);else if("off"!==this.touchGestures){this._disableNativeGesturesIfNecessary();const i=()=>{clearTimeout(this._touchstartTimeout),this.hide(this._defaultOptions.touchendHideDelay)};e.push(["touchend",i],["touchcancel",i])}this._addListeners(e),this._passiveListeners.push(...e)}_addListeners(e){e.forEach(([i,r])=>{this._elementRef.nativeElement.addEventListener(i,r,MJ)})}_platformSupportsMouseEvents(){return!this._platform.IOS&&!this._platform.ANDROID}_wheelListener(e){if(this._isTooltipVisible()){const i=this._document.elementFromPoint(e.clientX,e.clientY),r=this._elementRef.nativeElement;i!==r&&!r.contains(i)&&this.hide()}}_disableNativeGesturesIfNecessary(){const e=this.touchGestures;if("off"!==e){const i=this._elementRef.nativeElement,r=i.style;("on"===e||"INPUT"!==i.nodeName&&"TEXTAREA"!==i.nodeName)&&(r.userSelect=r.msUserSelect=r.webkitUserSelect=r.MozUserSelect="none"),("on"===e||!i.draggable)&&(r.webkitUserDrag="none"),r.touchAction="none",r.webkitTapHighlightColor="transparent"}}static{this.\u0275fac=function(i){return new(i||t)(W(_s),W(Un),W(SW),W(va),W(Fn),W(Or),W(Jye),W(ih),W(CJ),W(th),W(Gke,8),W(xi))}}static{this.\u0275dir=zt({type:t,selectors:[["","matTooltip",""]],hostAttrs:[1,"mat-mdc-tooltip-trigger"],hostVars:2,hostBindings:function(i,r){2&i&&xn("mat-mdc-tooltip-disabled",r.disabled)},inputs:{position:[bt.None,"matTooltipPosition","position"],positionAtOrigin:[bt.None,"matTooltipPositionAtOrigin","positionAtOrigin"],disabled:[bt.None,"matTooltipDisabled","disabled"],showDelay:[bt.None,"matTooltipShowDelay","showDelay"],hideDelay:[bt.None,"matTooltipHideDelay","hideDelay"],touchGestures:[bt.None,"matTooltipTouchGestures","touchGestures"],message:[bt.None,"matTooltip","message"],tooltipClass:[bt.None,"matTooltipClass","tooltipClass"]},exportAs:["matTooltip"],standalone:!0})}}return t})(),Kke=(()=>{class t{constructor(e,i,r){this._changeDetectorRef=e,this._elementRef=i,this._isMultiline=!1,this._closeOnInteraction=!1,this._isVisible=!1,this._onHide=new Yt,this._showAnimation="mat-mdc-tooltip-show",this._hideAnimation="mat-mdc-tooltip-hide",this._animationsDisabled="NoopAnimations"===r}show(e){null!=this._hideTimeoutId&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=setTimeout(()=>{this._toggleVisibility(!0),this._showTimeoutId=void 0},e)}hide(e){null!=this._showTimeoutId&&clearTimeout(this._showTimeoutId),this._hideTimeoutId=setTimeout(()=>{this._toggleVisibility(!1),this._hideTimeoutId=void 0},e)}afterHidden(){return this._onHide}isVisible(){return this._isVisible}ngOnDestroy(){this._cancelPendingAnimations(),this._onHide.complete(),this._triggerElement=null}_handleBodyInteraction(){this._closeOnInteraction&&this.hide(0)}_markForCheck(){this._changeDetectorRef.markForCheck()}_handleMouseLeave({relatedTarget:e}){(!e||!this._triggerElement.contains(e))&&(this.isVisible()?this.hide(this._mouseLeaveHideDelay):this._finalizeAnimation(!1))}_onShow(){this._isMultiline=this._isTooltipMultiline(),this._markForCheck()}_isTooltipMultiline(){const e=this._elementRef.nativeElement.getBoundingClientRect();return e.height>24&&e.width>=200}_handleAnimationEnd({animationName:e}){(e===this._showAnimation||e===this._hideAnimation)&&this._finalizeAnimation(e===this._showAnimation)}_cancelPendingAnimations(){null!=this._showTimeoutId&&clearTimeout(this._showTimeoutId),null!=this._hideTimeoutId&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=this._hideTimeoutId=void 0}_finalizeAnimation(e){e?this._closeOnInteraction=!0:this.isVisible()||this._onHide.next()}_toggleVisibility(e){const i=this._tooltip.nativeElement,r=this._showAnimation,o=this._hideAnimation;if(i.classList.remove(e?o:r),i.classList.add(e?r:o),this._isVisible=e,e&&!this._animationsDisabled&&"function"==typeof getComputedStyle){const s=getComputedStyle(i);("0s"===s.getPropertyValue("animation-duration")||"none"===s.getPropertyValue("animation-name"))&&(this._animationsDisabled=!0)}e&&this._onShow(),this._animationsDisabled&&(i.classList.add("_mat-animation-noopable"),this._finalizeAnimation(e))}static{this.\u0275fac=function(i){return new(i||t)(W(Ao),W(Un),W(ts,8))}}static{this.\u0275cmp=At({type:t,selectors:[["mat-tooltip-component"]],viewQuery:function(i,r){if(1&i&&ti(Hke,7),2&i){let o;mn(o=pn())&&(r._tooltip=o.first)}},hostAttrs:["aria-hidden","true"],hostVars:2,hostBindings:function(i,r){1&i&&We("mouseleave",function(s){return r._handleMouseLeave(s)}),2&i&&Fi("zoom",r.isVisible()?1:null)},standalone:!0,features:[xr],decls:4,vars:4,consts:[["tooltip",""],[1,"mdc-tooltip","mdc-tooltip--shown","mat-mdc-tooltip",3,"animationend","ngClass"],[1,"mdc-tooltip__surface","mdc-tooltip__surface-animation"]],template:function(i,r){if(1&i){const o=kn();I(0,"div",1,0),We("animationend",function(a){return Ft(o),kt(r._handleAnimationEnd(a))}),I(2,"div",2),ve(3),O()()}2&i&&(xn("mdc-tooltip--multiline",r._isMultiline),ue("ngClass",r.tooltipClass),H(3),ur(r.message))},dependencies:[Rd],styles:['.mdc-tooltip__surface{word-break:break-all;word-break:var(--mdc-tooltip-word-break, normal);overflow-wrap:anywhere}.mdc-tooltip--showing-transition .mdc-tooltip__surface-animation{transition:opacity 150ms 0ms cubic-bezier(0, 0, 0.2, 1),transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-tooltip--hide-transition .mdc-tooltip__surface-animation{transition:opacity 75ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mdc-tooltip{position:fixed;display:none;z-index:9}.mdc-tooltip-wrapper--rich{position:relative}.mdc-tooltip--shown,.mdc-tooltip--showing,.mdc-tooltip--hide{display:inline-flex}.mdc-tooltip--shown.mdc-tooltip--rich,.mdc-tooltip--showing.mdc-tooltip--rich,.mdc-tooltip--hide.mdc-tooltip--rich{display:inline-block;left:-320px;position:absolute}.mdc-tooltip__surface{line-height:16px;padding:4px 8px;min-width:40px;max-width:200px;min-height:24px;max-height:40vh;box-sizing:border-box;overflow:hidden;text-align:center}.mdc-tooltip__surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}@media screen and (forced-colors: active){.mdc-tooltip__surface::before{border-color:CanvasText}}.mdc-tooltip--rich .mdc-tooltip__surface{align-items:flex-start;display:flex;flex-direction:column;min-height:24px;min-width:40px;max-width:320px;position:relative}.mdc-tooltip--multiline .mdc-tooltip__surface{text-align:left}[dir=rtl] .mdc-tooltip--multiline .mdc-tooltip__surface,.mdc-tooltip--multiline .mdc-tooltip__surface[dir=rtl]{text-align:right}.mdc-tooltip__surface .mdc-tooltip__title{margin:0 8px}.mdc-tooltip__surface .mdc-tooltip__content{max-width:calc(200px - 2*8px);margin:8px;text-align:left}[dir=rtl] .mdc-tooltip__surface .mdc-tooltip__content,.mdc-tooltip__surface .mdc-tooltip__content[dir=rtl]{text-align:right}.mdc-tooltip--rich .mdc-tooltip__surface .mdc-tooltip__content{max-width:calc(320px - 2*8px);align-self:stretch}.mdc-tooltip__surface .mdc-tooltip__content-link{text-decoration:none}.mdc-tooltip--rich-actions,.mdc-tooltip__content,.mdc-tooltip__title{z-index:1}.mdc-tooltip__surface-animation{opacity:0;transform:scale(0.8);will-change:transform,opacity}.mdc-tooltip--shown .mdc-tooltip__surface-animation{transform:scale(1);opacity:1}.mdc-tooltip--hide .mdc-tooltip__surface-animation{transform:scale(1)}.mdc-tooltip__caret-surface-top,.mdc-tooltip__caret-surface-bottom{position:absolute;height:24px;width:24px;transform:rotate(35deg) skewY(20deg) scaleX(0.9396926208)}.mdc-tooltip__caret-surface-top .mdc-elevation-overlay,.mdc-tooltip__caret-surface-bottom .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-tooltip__caret-surface-bottom{box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);outline:1px solid rgba(0,0,0,0);z-index:-1}@media screen and (forced-colors: active){.mdc-tooltip__caret-surface-bottom{outline-color:CanvasText}}.mat-mdc-tooltip .mdc-tooltip__surface{background-color:var(--mdc-plain-tooltip-container-color)}.mat-mdc-tooltip .mdc-tooltip__surface{border-radius:var(--mdc-plain-tooltip-container-shape)}.mat-mdc-tooltip .mdc-tooltip__caret-surface-top,.mat-mdc-tooltip .mdc-tooltip__caret-surface-bottom{border-radius:var(--mdc-plain-tooltip-container-shape)}.mat-mdc-tooltip .mdc-tooltip__surface{color:var(--mdc-plain-tooltip-supporting-text-color)}.mat-mdc-tooltip .mdc-tooltip__surface{font-family:var(--mdc-plain-tooltip-supporting-text-font);line-height:var(--mdc-plain-tooltip-supporting-text-line-height);font-size:var(--mdc-plain-tooltip-supporting-text-size);font-weight:var(--mdc-plain-tooltip-supporting-text-weight);letter-spacing:var(--mdc-plain-tooltip-supporting-text-tracking)}.mat-mdc-tooltip{position:relative;transform:scale(0)}.mat-mdc-tooltip::before{content:"";top:0;right:0;bottom:0;left:0;z-index:-1;position:absolute}.mat-mdc-tooltip-panel-below .mat-mdc-tooltip::before{top:-8px}.mat-mdc-tooltip-panel-above .mat-mdc-tooltip::before{bottom:-8px}.mat-mdc-tooltip-panel-right .mat-mdc-tooltip::before{left:-8px}.mat-mdc-tooltip-panel-left .mat-mdc-tooltip::before{right:-8px}.mat-mdc-tooltip._mat-animation-noopable{animation:none;transform:scale(1)}.mat-mdc-tooltip-panel.mat-mdc-tooltip-panel-non-interactive{pointer-events:none}@keyframes mat-mdc-tooltip-show{0%{opacity:0;transform:scale(0.8)}100%{opacity:1;transform:scale(1)}}@keyframes mat-mdc-tooltip-hide{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(0.8)}}.mat-mdc-tooltip-show{animation:mat-mdc-tooltip-show 150ms cubic-bezier(0, 0, 0.2, 1) forwards}.mat-mdc-tooltip-hide{animation:mat-mdc-tooltip-hide 75ms cubic-bezier(0.4, 0, 1, 1) forwards}'],encapsulation:2,changeDetection:0})}}return t})(),TJ=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({providers:[Qke],imports:[WR,An,g1,Ki,Ki,h1]})}}return t})();const Am=Xt(Zu,t=>Nd(t)),Xke=Xt(pm,t=>{if(t)return{all:t.attributes?.unary??0,added:t.fileCount?.added??0,removed:t.fileCount?.removed??0,changed:t.fileCount?.changed??0}});function Yke(t,n){if(1&t&&(I(0,"span",2),ve(1," | "),I(2,"span",3),ve(3),O(),ve(4," | "),I(5,"span",4),ve(6),O(),ve(7," | "),I(8,"span",5),ve(9),O()()),2&t){const e=He();H(3),an(" \u0394",e.added,""),H(3),an(" \u0394",e.removed>0?-e.removed:0,""),H(3),an(" \u0394",e.changed,"")}}function Zke(t,n){if(1&t&&(I(0,"span",2),ve(1),ft(2,Yke,10,3,"span",2),ze(3,"async"),ve(4," ) "),O()),2&t){const e=n,i=He(2);H(),Hu(" ( ",e.all," ",1===e.all?"file":"files"," "),H(),yt(2,null!=i.node.children&&i.node.children.length&&tt(3,3,i.isDeltaMode$)?2:-1)}}function Jke(t,n){if(1&t&&(I(0,"span",1),ve(1),ft(2,Zke,5,5,"span",2),ze(3,"async"),O()),2&t){let e;const i=He();H(),an(" ",i.node.path," "),H(),yt(2,(e=tt(3,2,(null==i.node.children?null:i.node.children.length)&&i.fileCount$))?2:-1,e)}}let eIe=(()=>{class t{constructor(e){this.fileCount$=e.select(Xke),this.isDeltaMode$=e.select(Am)}static{this.\u0275fac=function(i){return new(i||t)(W(Wt))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-node-path"]],inputs:{node:"node"},decls:2,vars:1,consts:[[1,"cc-node-path"],[1,"file-path"],[1,"cc-node-file-count"],["title","Number of added files",1,"added-files"],["title","Number of removed files",1,"removed-files"],["title","Number of files with metric changes",1,"files-with-metric-changes"]],template:function(i,r){1&i&&(I(0,"p",0),ft(1,Jke,4,4,"span",1),O()),2&i&&(H(),yt(1,r.node?1:-1))},dependencies:[Gn],encapsulation:2})}}return t})(),rN=(()=>{class t{transform(e){return fm.withoutCCExtension(e)}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275pipe=lr({name:"removeExtension",type:t,pure:!0})}}return t})();function tIe(t,n){if(1&t&&(I(0,"div",1)(1,"a",4)(2,"h2"),ve(3),O(),_e(4,"i",5),O()()),2&t){const e=He(2);wa("matTooltip",e.node.link),ue("matTooltipShowDelay",200),H(),wa("href",e.node.link,dp),H(2),an("",e.node.name,"\xa0")}}function nIe(t,n){if(1&t){const e=kn();I(0,"i",0),We("click",function(){return Ft(e),kt(He().closeSideBar())}),O(),ft(1,tIe,5,4,"div",1),I(2,"p",2),ve(3),ze(4,"removeExtension"),O(),_e(5,"cc-node-path",3)}if(2&t){const e=He();H(),yt(1,e.node.link?1:-1),H(2),ur(tt(4,3,e.fileName)),H(2),ue("node",e.node)}}let iIe=(()=>{class t{constructor(e){this.isAttributeSideBarVisibleService=e}closeSideBar(){this.isAttributeSideBarVisibleService.isOpen=!1}static{this.\u0275fac=function(i){return new(i||t)(W(sF))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-attribute-side-bar-header-section"]],inputs:{node:"node",fileName:"fileName"},decls:1,vars:1,consts:[[1,"close-icon","fa","fa-times",3,"click"],["data-testid","file-link",1,"node-name",3,"matTooltip","matTooltipShowDelay"],[1,"node-origin"],[3,"node"],["target","_blank","rel","noopener noreferrer",1,"node-link",3,"href"],[1,"fa","fa-external-link"]],template:function(i,r){1&i&&ft(0,nIe,6,5),2&i&&yt(0,r.node?0:-1)},dependencies:[SJ,eIe,rN],styles:["cc-attribute-side-bar-header-section{display:flex;flex-direction:column}cc-attribute-side-bar-header-section .close-icon,cc-attribute-side-bar-header-section .node-link{color:gray;padding:0;cursor:pointer;outline:none;transition:.2s}cc-attribute-side-bar-header-section .close-icon:hover,cc-attribute-side-bar-header-section .node-link:hover{color:#444}cc-attribute-side-bar-header-section .close-icon{align-self:flex-end;font-size:20px}cc-attribute-side-bar-header-section .node-name{width:90%;cursor:pointer}cc-attribute-side-bar-header-section .node-name .node-link{font-size:11pt}cc-attribute-side-bar-header-section .node-name .node-link h2{color:#000;display:inline}cc-attribute-side-bar-header-section .node-origin,cc-attribute-side-bar-header-section .cc-node-path{color:gray;margin:5px 0}cc-attribute-side-bar-header-section .node-origin .file-path,cc-attribute-side-bar-header-section .cc-node-path .file-path{word-wrap:break-word}cc-attribute-side-bar-header-section .node-origin .cc-node-file-count,cc-attribute-side-bar-header-section .cc-node-path .cc-node-file-count{background:#f0f0f0;border-radius:3px;padding:1px 3px;color:#000}cc-attribute-side-bar-header-section .node-origin .cc-node-file-count .added-files,cc-attribute-side-bar-header-section .cc-node-path .cc-node-file-count .added-files{color:#64d051}cc-attribute-side-bar-header-section .node-origin .cc-node-file-count .removed-files,cc-attribute-side-bar-header-section .cc-node-path .cc-node-file-count .removed-files{color:#ff0e0e}cc-attribute-side-bar-header-section .node-origin .cc-node-file-count .changed-files,cc-attribute-side-bar-header-section .cc-node-path .cc-node-file-count .changed-files{color:#0e2eff}cc-attribute-side-bar-header-section .node-name,cc-attribute-side-bar-header-section .node-origin,cc-attribute-side-bar-header-section .node-path{word-break:break-all;-webkit-user-select:text;user-select:text}\n"],encapsulation:2})}}return t})();const oN=Xt(pm,t=>t&&!Eo(t)),Ub=Xt(Pl,t=>t.areaMetric),Mh=Xt(Pl,t=>t.edgeMetric),sx=Xt(Pl,t=>t.heightMetric),lF=Xt(Ub,sx,mm,Mh,(t,n,e,i)=>({areaMetric:t,heightMetric:n,colorMetric:e,edgeMetric:i})),rIe=Xt(pm,lF,(t,n)=>{if(t)return{area:{name:n.areaMetric,value:t.attributes[n.areaMetric]},height:{name:n.heightMetric,value:t.attributes[n.heightMetric]},color:{name:n.colorMetric,value:t.attributes[n.colorMetric]},edge:oIe(n.edgeMetric,t)}});function oIe(t,n){return null==t?null:{name:t,incoming:n.edgeAttributes[t]?.incoming,outgoing:n.edgeAttributes[t]?.outgoing}}const cF=Xt(o1,t=>t.attributeDescriptors);class dF{get selected(){return this._selected||(this._selected=Array.from(this._selection.values())),this._selected}constructor(n=!1,e,i=!0,r){this._multiple=n,this._emitChanges=i,this.compareWith=r,this._selection=new Set,this._deselectedToEmit=[],this._selectedToEmit=[],this.changed=new Yt,e&&e.length&&(n?e.forEach(o=>this._markSelected(o)):this._markSelected(e[0]),this._selectedToEmit.length=0)}select(...n){this._verifyValueAssignment(n),n.forEach(i=>this._markSelected(i));const e=this._hasQueuedChanges();return this._emitChangeEvent(),e}deselect(...n){this._verifyValueAssignment(n),n.forEach(i=>this._unmarkSelected(i));const e=this._hasQueuedChanges();return this._emitChangeEvent(),e}setSelection(...n){this._verifyValueAssignment(n);const e=this.selected,i=new Set(n);n.forEach(o=>this._markSelected(o)),e.filter(o=>!i.has(this._getConcreteValue(o,i))).forEach(o=>this._unmarkSelected(o));const r=this._hasQueuedChanges();return this._emitChangeEvent(),r}toggle(n){return this.isSelected(n)?this.deselect(n):this.select(n)}clear(n=!0){this._unmarkAll();const e=this._hasQueuedChanges();return n&&this._emitChangeEvent(),e}isSelected(n){return this._selection.has(this._getConcreteValue(n))}isEmpty(){return 0===this._selection.size}hasValue(){return!this.isEmpty()}sort(n){this._multiple&&this.selected&&this._selected.sort(n)}isMultipleSelection(){return this._multiple}_emitChangeEvent(){this._selected=null,(this._selectedToEmit.length||this._deselectedToEmit.length)&&(this.changed.next({source:this,added:this._selectedToEmit,removed:this._deselectedToEmit}),this._deselectedToEmit=[],this._selectedToEmit=[])}_markSelected(n){n=this._getConcreteValue(n),this.isSelected(n)||(this._multiple||this._unmarkAll(),this.isSelected(n)||this._selection.add(n),this._emitChanges&&this._selectedToEmit.push(n))}_unmarkSelected(n){n=this._getConcreteValue(n),this.isSelected(n)&&(this._selection.delete(n),this._emitChanges&&this._deselectedToEmit.push(n))}_unmarkAll(){this.isEmpty()||this._selection.forEach(n=>this._unmarkSelected(n))}_verifyValueAssignment(n){}_hasQueuedChanges(){return!(!this._deselectedToEmit.length&&!this._selectedToEmit.length)}_getConcreteValue(n,e){if(this.compareWith){e=e??this._selection;for(let i of e)if(this.compareWith(n,i))return i;return n}return n}}let FJ=(()=>{class t{constructor(){this._listeners=[]}notify(e,i){for(let r of this._listeners)r(e,i)}listen(e){return this._listeners.push(e),()=>{this._listeners=this._listeners.filter(i=>e!==i)}}ngOnDestroy(){this._listeners=[]}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();const lIe=["button"],cIe=["*"];function dIe(t,n){1&t&&_e(0,"mat-pseudo-checkbox",3),2&t&&ue("disabled",He().disabled)}function uIe(t,n){1&t&&_e(0,"mat-pseudo-checkbox",3),2&t&&ue("disabled",He().disabled)}const kJ=new ot("MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS",{providedIn:"root",factory:function hIe(){return{hideSingleSelectionIndicator:!1,hideMultipleSelectionIndicator:!1}}}),IJ=new ot("MatButtonToggleGroup"),fIe={provide:Fs,useExisting:hi(()=>uF),multi:!0};let BJ=0;class DJ{constructor(n,e){this.source=n,this.value=e}}let uF=(()=>{class t{get name(){return this._name}set name(e){this._name=e,this._markButtonsForCheck()}get value(){const e=this._selectionModel?this._selectionModel.selected:[];return this.multiple?e.map(i=>i.value):e[0]?e[0].value:void 0}set value(e){this._setSelectionByValue(e),this.valueChange.emit(this.value)}get selected(){const e=this._selectionModel?this._selectionModel.selected:[];return this.multiple?e:e[0]||null}get multiple(){return this._multiple}set multiple(e){this._multiple=e,this._markButtonsForCheck()}get disabled(){return this._disabled}set disabled(e){this._disabled=e,this._markButtonsForCheck()}get hideSingleSelectionIndicator(){return this._hideSingleSelectionIndicator}set hideSingleSelectionIndicator(e){this._hideSingleSelectionIndicator=e,this._markButtonsForCheck()}get hideMultipleSelectionIndicator(){return this._hideMultipleSelectionIndicator}set hideMultipleSelectionIndicator(e){this._hideMultipleSelectionIndicator=e,this._markButtonsForCheck()}constructor(e,i){this._changeDetector=e,this._multiple=!1,this._disabled=!1,this._controlValueAccessorChangeFn=()=>{},this._onTouched=()=>{},this._name="mat-button-toggle-group-"+BJ++,this.valueChange=new Ln,this.change=new Ln,this.appearance=i&&i.appearance?i.appearance:"standard",this.hideSingleSelectionIndicator=i?.hideSingleSelectionIndicator??!1,this.hideMultipleSelectionIndicator=i?.hideMultipleSelectionIndicator??!1}ngOnInit(){this._selectionModel=new dF(this.multiple,void 0,!1)}ngAfterContentInit(){this._selectionModel.select(...this._buttonToggles.filter(e=>e.checked))}writeValue(e){this.value=e,this._changeDetector.markForCheck()}registerOnChange(e){this._controlValueAccessorChangeFn=e}registerOnTouched(e){this._onTouched=e}setDisabledState(e){this.disabled=e}_emitChangeEvent(e){const i=new DJ(e,this.value);this._rawValue=i.value,this._controlValueAccessorChangeFn(i.value),this.change.emit(i)}_syncButtonToggle(e,i,r=!1,o=!1){!this.multiple&&this.selected&&!e.checked&&(this.selected.checked=!1),this._selectionModel?i?this._selectionModel.select(e):this._selectionModel.deselect(e):o=!0,o?Promise.resolve().then(()=>this._updateModelValue(e,r)):this._updateModelValue(e,r)}_isSelected(e){return this._selectionModel&&this._selectionModel.isSelected(e)}_isPrechecked(e){return!(typeof this._rawValue>"u")&&(this.multiple&&Array.isArray(this._rawValue)?this._rawValue.some(i=>null!=e.value&&i===e.value):e.value===this._rawValue)}_setSelectionByValue(e){this._rawValue=e,this._buttonToggles&&(this.multiple&&e?(Array.isArray(e),this._clearSelection(),e.forEach(i=>this._selectValue(i))):(this._clearSelection(),this._selectValue(e)))}_clearSelection(){this._selectionModel.clear(),this._buttonToggles.forEach(e=>e.checked=!1)}_selectValue(e){const i=this._buttonToggles.find(r=>null!=r.value&&r.value===e);i&&(i.checked=!0,this._selectionModel.select(i))}_updateModelValue(e,i){i&&this._emitChangeEvent(e),this.valueChange.emit(this.value)}_markButtonsForCheck(){this._buttonToggles?.forEach(e=>e._markForCheck())}static{this.\u0275fac=function(i){return new(i||t)(W(Ao),W(kJ,8))}}static{this.\u0275dir=zt({type:t,selectors:[["mat-button-toggle-group"]],contentQueries:function(i,r,o){if(1&i&&Ir(o,ax,5),2&i){let s;mn(s=pn())&&(r._buttonToggles=s)}},hostAttrs:["role","group",1,"mat-button-toggle-group"],hostVars:5,hostBindings:function(i,r){2&i&&(oi("aria-disabled",r.disabled),xn("mat-button-toggle-vertical",r.vertical)("mat-button-toggle-group-appearance-standard","standard"===r.appearance))},inputs:{appearance:"appearance",name:"name",vertical:[bt.HasDecoratorInputTransform,"vertical","vertical",qn],value:"value",multiple:[bt.HasDecoratorInputTransform,"multiple","multiple",qn],disabled:[bt.HasDecoratorInputTransform,"disabled","disabled",qn],hideSingleSelectionIndicator:[bt.HasDecoratorInputTransform,"hideSingleSelectionIndicator","hideSingleSelectionIndicator",qn],hideMultipleSelectionIndicator:[bt.HasDecoratorInputTransform,"hideMultipleSelectionIndicator","hideMultipleSelectionIndicator",qn]},outputs:{valueChange:"valueChange",change:"change"},exportAs:["matButtonToggleGroup"],standalone:!0,features:[ni([fIe,{provide:IJ,useExisting:t}]),Ho]})}}return t})(),ax=(()=>{class t{get buttonId(){return`${this.id}-button`}get appearance(){return this.buttonToggleGroup?this.buttonToggleGroup.appearance:this._appearance}set appearance(e){this._appearance=e}get checked(){return this.buttonToggleGroup?this.buttonToggleGroup._isSelected(this):this._checked}set checked(e){e!==this._checked&&(this._checked=e,this.buttonToggleGroup&&this.buttonToggleGroup._syncButtonToggle(this,this._checked),this._changeDetectorRef.markForCheck())}get disabled(){return this._disabled||this.buttonToggleGroup&&this.buttonToggleGroup.disabled}set disabled(e){this._disabled=e}constructor(e,i,r,o,s,a){this._changeDetectorRef=i,this._elementRef=r,this._focusMonitor=o,this._checked=!1,this.ariaLabelledby=null,this._disabled=!1,this.change=new Ln;const l=Number(s);this.tabIndex=l||0===l?l:null,this.buttonToggleGroup=e,this.appearance=a&&a.appearance?a.appearance:"standard"}ngOnInit(){const e=this.buttonToggleGroup;this.id=this.id||"mat-button-toggle-"+BJ++,e&&(e._isPrechecked(this)?this.checked=!0:e._isSelected(this)!==this._checked&&e._syncButtonToggle(this,this._checked))}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0)}ngOnDestroy(){const e=this.buttonToggleGroup;this._focusMonitor.stopMonitoring(this._elementRef),e&&e._isSelected(this)&&e._syncButtonToggle(this,!1,!1,!0)}focus(e){this._buttonElement.nativeElement.focus(e)}_onButtonClick(){const e=!!this._isSingleSelector()||!this._checked;e!==this._checked&&(this._checked=e,this.buttonToggleGroup&&(this.buttonToggleGroup._syncButtonToggle(this,this._checked,!0),this.buttonToggleGroup._onTouched())),this.change.emit(new DJ(this,this.value))}_markForCheck(){this._changeDetectorRef.markForCheck()}_getButtonName(){return this._isSingleSelector()?this.buttonToggleGroup.name:this.name||null}_isSingleSelector(){return this.buttonToggleGroup&&!this.buttonToggleGroup.multiple}static{this.\u0275fac=function(i){return new(i||t)(W(IJ,8),W(Ao),W(Un),W(ih),Kl("tabindex"),W(kJ,8))}}static{this.\u0275cmp=At({type:t,selectors:[["mat-button-toggle"]],viewQuery:function(i,r){if(1&i&&ti(lIe,5),2&i){let o;mn(o=pn())&&(r._buttonElement=o.first)}},hostAttrs:["role","presentation",1,"mat-button-toggle"],hostVars:12,hostBindings:function(i,r){1&i&&We("focus",function(){return r.focus()}),2&i&&(oi("aria-label",null)("aria-labelledby",null)("id",r.id)("name",null),xn("mat-button-toggle-standalone",!r.buttonToggleGroup)("mat-button-toggle-checked",r.checked)("mat-button-toggle-disabled",r.disabled)("mat-button-toggle-appearance-standard","standard"===r.appearance))},inputs:{ariaLabel:[bt.None,"aria-label","ariaLabel"],ariaLabelledby:[bt.None,"aria-labelledby","ariaLabelledby"],id:"id",name:"name",value:"value",tabIndex:"tabIndex",disableRipple:[bt.HasDecoratorInputTransform,"disableRipple","disableRipple",qn],appearance:"appearance",checked:[bt.HasDecoratorInputTransform,"checked","checked",qn],disabled:[bt.HasDecoratorInputTransform,"disabled","disabled",qn]},outputs:{change:"change"},exportAs:["matButtonToggle"],standalone:!0,features:[Ho,xr],ngContentSelectors:cIe,decls:8,vars:11,consts:[["button",""],["type","button",1,"mat-button-toggle-button","mat-focus-indicator",3,"click","id","disabled"],[1,"mat-button-toggle-label-content"],["state","checked","aria-hidden","true","appearance","minimal",1,"mat-mdc-option-pseudo-checkbox",3,"disabled"],[1,"mat-button-toggle-focus-overlay"],["matRipple","",1,"mat-button-toggle-ripple",3,"matRippleTrigger","matRippleDisabled"]],template:function(i,r){if(1&i){const o=kn();mo(),I(0,"button",1,0),We("click",function(){return Ft(o),kt(r._onButtonClick())}),I(2,"span",2),ft(3,dIe,1,1,"mat-pseudo-checkbox",3)(4,uIe,1,1,"mat-pseudo-checkbox",3),zn(5),O()(),_e(6,"span",4)(7,"span",5)}if(2&i){const o=Co(1);ue("id",r.buttonId)("disabled",r.disabled||null),oi("tabindex",r.disabled?-1:r.tabIndex)("aria-pressed",r.checked)("name",r._getButtonName())("aria-label",r.ariaLabel)("aria-labelledby",r.ariaLabelledby),H(3),yt(3,r.buttonToggleGroup&&r.checked&&!r.buttonToggleGroup.multiple&&!r.buttonToggleGroup.hideSingleSelectionIndicator?3:-1),H(),yt(4,r.buttonToggleGroup&&r.checked&&r.buttonToggleGroup.multiple&&!r.buttonToggleGroup.hideMultipleSelectionIndicator?4:-1),H(3),ue("matRippleTrigger",o)("matRippleDisabled",r.disableRipple||r.disabled)}},dependencies:[rh,m$],styles:[".mat-button-toggle-standalone,.mat-button-toggle-group{position:relative;display:inline-flex;flex-direction:row;white-space:nowrap;overflow:hidden;-webkit-tap-highlight-color:rgba(0,0,0,0);transform:translateZ(0);border-radius:var(--mat-legacy-button-toggle-shape)}.mat-button-toggle-standalone:not([class*=mat-elevation-z]),.mat-button-toggle-group:not([class*=mat-elevation-z]){box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)}.cdk-high-contrast-active .mat-button-toggle-standalone,.cdk-high-contrast-active .mat-button-toggle-group{outline:solid 1px}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{border-radius:var(--mat-standard-button-toggle-shape);border:solid 1px var(--mat-standard-button-toggle-divider-color)}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard .mat-pseudo-checkbox,.mat-button-toggle-group-appearance-standard .mat-pseudo-checkbox{--mat-minimal-pseudo-checkbox-selected-checkmark-color: var( --mat-standard-button-toggle-selected-state-text-color )}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard:not([class*=mat-elevation-z]),.mat-button-toggle-group-appearance-standard:not([class*=mat-elevation-z]){box-shadow:none}.cdk-high-contrast-active .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.cdk-high-contrast-active .mat-button-toggle-group-appearance-standard{outline:0}.mat-button-toggle-vertical{flex-direction:column}.mat-button-toggle-vertical .mat-button-toggle-label-content{display:block}.mat-button-toggle{white-space:nowrap;position:relative;color:var(--mat-legacy-button-toggle-text-color);font-family:var(--mat-legacy-button-toggle-label-text-font);font-size:var(--mat-legacy-button-toggle-label-text-size);line-height:var(--mat-legacy-button-toggle-label-text-line-height);font-weight:var(--mat-legacy-button-toggle-label-text-weight);letter-spacing:var(--mat-legacy-button-toggle-label-text-tracking);--mat-minimal-pseudo-checkbox-selected-checkmark-color: var( --mat-legacy-button-toggle-selected-state-text-color )}.mat-button-toggle.cdk-keyboard-focused .mat-button-toggle-focus-overlay{opacity:var(--mat-legacy-button-toggle-focus-state-layer-opacity)}.mat-button-toggle .mat-icon svg{vertical-align:top}.mat-button-toggle .mat-pseudo-checkbox{margin-right:12px}[dir=rtl] .mat-button-toggle .mat-pseudo-checkbox{margin-right:0;margin-left:12px}.mat-button-toggle-checked{color:var(--mat-legacy-button-toggle-selected-state-text-color);background-color:var(--mat-legacy-button-toggle-selected-state-background-color)}.mat-button-toggle-disabled{color:var(--mat-legacy-button-toggle-disabled-state-text-color);background-color:var(--mat-legacy-button-toggle-disabled-state-background-color);--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: var( --mat-legacy-button-toggle-disabled-state-text-color )}.mat-button-toggle-disabled.mat-button-toggle-checked{background-color:var(--mat-legacy-button-toggle-disabled-selected-state-background-color)}.mat-button-toggle-appearance-standard{color:var(--mat-standard-button-toggle-text-color);background-color:var(--mat-standard-button-toggle-background-color);font-family:var(--mat-standard-button-toggle-label-text-font);font-size:var(--mat-standard-button-toggle-label-text-size);line-height:var(--mat-standard-button-toggle-label-text-line-height);font-weight:var(--mat-standard-button-toggle-label-text-weight);letter-spacing:var(--mat-standard-button-toggle-label-text-tracking)}.mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-left:solid 1px var(--mat-standard-button-toggle-divider-color)}[dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-left:none;border-right:solid 1px var(--mat-standard-button-toggle-divider-color)}.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-left:none;border-right:none;border-top:solid 1px var(--mat-standard-button-toggle-divider-color)}.mat-button-toggle-appearance-standard.mat-button-toggle-checked{color:var(--mat-standard-button-toggle-selected-state-text-color);background-color:var(--mat-standard-button-toggle-selected-state-background-color)}.mat-button-toggle-appearance-standard.mat-button-toggle-disabled{color:var(--mat-standard-button-toggle-disabled-state-text-color);background-color:var(--mat-standard-button-toggle-disabled-state-background-color)}.mat-button-toggle-appearance-standard.mat-button-toggle-disabled .mat-pseudo-checkbox{--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: var( --mat-standard-button-toggle-disabled-selected-state-text-color )}.mat-button-toggle-appearance-standard.mat-button-toggle-disabled.mat-button-toggle-checked{color:var(--mat-standard-button-toggle-disabled-selected-state-text-color);background-color:var(--mat-standard-button-toggle-disabled-selected-state-background-color)}.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{background-color:var(--mat-standard-button-toggle-state-layer-color)}.mat-button-toggle-appearance-standard:not(.mat-button-toggle-disabled):hover .mat-button-toggle-focus-overlay{opacity:var(--mat-standard-button-toggle-hover-state-layer-opacity)}.mat-button-toggle-appearance-standard.cdk-keyboard-focused:not(.mat-button-toggle-disabled) .mat-button-toggle-focus-overlay{opacity:var(--mat-standard-button-toggle-focus-state-layer-opacity)}@media(hover: none){.mat-button-toggle-appearance-standard:not(.mat-button-toggle-disabled):hover .mat-button-toggle-focus-overlay{display:none}}.mat-button-toggle-label-content{-webkit-user-select:none;user-select:none;display:inline-block;padding:0 16px;line-height:var(--mat-legacy-button-toggle-height);position:relative}.mat-button-toggle-appearance-standard .mat-button-toggle-label-content{padding:0 12px;line-height:var(--mat-standard-button-toggle-height)}.mat-button-toggle-label-content>*{vertical-align:middle}.mat-button-toggle-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:inherit;pointer-events:none;opacity:0;background-color:var(--mat-legacy-button-toggle-state-layer-color)}.cdk-high-contrast-active .mat-button-toggle-checked .mat-button-toggle-focus-overlay{border-bottom:solid 500px;opacity:.5;height:0}.cdk-high-contrast-active .mat-button-toggle-checked:hover .mat-button-toggle-focus-overlay{opacity:.6}.cdk-high-contrast-active .mat-button-toggle-checked.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{border-bottom:solid 500px}.mat-button-toggle .mat-button-toggle-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-button-toggle-button{border:0;background:none;color:inherit;padding:0;margin:0;font:inherit;outline:none;width:100%;cursor:pointer}.mat-button-toggle-disabled .mat-button-toggle-button{cursor:default}.mat-button-toggle-button::-moz-focus-inner{border:0}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard{--mat-focus-indicator-border-radius:var(--mat-standard-button-toggle-shape)}.mat-button-toggle-group-appearance-standard .mat-button-toggle:last-of-type .mat-button-toggle-button::before{border-top-right-radius:var(--mat-standard-button-toggle-shape);border-bottom-right-radius:var(--mat-standard-button-toggle-shape)}.mat-button-toggle-group-appearance-standard .mat-button-toggle:first-of-type .mat-button-toggle-button::before{border-top-left-radius:var(--mat-standard-button-toggle-shape);border-bottom-left-radius:var(--mat-standard-button-toggle-shape)}"],encapsulation:2,changeDetection:0})}}return t})(),RJ=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[Ki,P0,ax,Ki]})}}return t})(),sN=(()=>{class t{constructor(e){this.store=e,this.attributeTypes$=this.store.select($5)}setToAbsolute(){this.setAttributeType(Gf.absolute)}setToRelative(){this.setAttributeType(Gf.relative)}setAttributeType(e){this.store.dispatch(K4({category:this.metricType,name:this.metricName,attributeType:e}))}static{this.\u0275fac=function(i){return new(i||t)(W(Wt))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-attribute-type-selector"]],inputs:{metricName:"metricName",metricType:"metricType"},decls:6,vars:3,consts:[[3,"value"],["title","Select Sum","value","absolute",3,"click"],["title","Select Median","value","relative",3,"click"]],template:function(i,r){if(1&i&&(I(0,"mat-button-toggle-group",0),ze(1,"async"),I(2,"mat-button-toggle",1),We("click",function(){return r.setToAbsolute()}),ve(3,"\u03a3"),O(),I(4,"mat-button-toggle",2),We("click",function(){return r.setToRelative()}),ve(5,"x\u0342"),O()()),2&i){let o;ue("value",null!==(o=tt(1,1,r.attributeTypes$)[r.metricType][r.metricName])&&void 0!==o?o:"absolute")}},dependencies:[uF,ax,Gn],styles:["cc-attribute-type-selector .mat-button-toggle-appearance-standard .mat-button-toggle-label-content{display:flex;align-items:center;height:100%}cc-attribute-type-selector button{align-items:center;height:100%}cc-attribute-type-selector button:hover{background-color:#0000000d;color:#1b9cfc}cc-attribute-type-selector .mat-button-toggle-standalone.mat-button-toggle-appearance-standard:not([class*=mat-elevation-z]),cc-attribute-type-selector .mat-button-toggle-group-appearance-standard:not([class*=mat-elevation-z]){height:22px;border:.5px solid darkgrey}\n"],encapsulation:2})}}return t})();function mIe(t,n){if(1&t&&(I(0,"span"),ze(1,"async"),ve(2),ze(3,"number"),O()),2&t){const e=n;Fi("color",tt(1,3,He().mapColors$)[e>0?"positiveDelta":"negativeDelta"]),H(2),an(" \u0394",po(3,5,e,"1.1-2")," ")}}let LJ=(()=>{class t{constructor(e){this.store=e}ngOnInit(){this.selectedNode$=this.store.select(pm),this.mapColors$=this.store.select(Lb)}static{this.\u0275fac=function(i){return new(i||t)(W(Wt))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-metric-delta-selected"]],inputs:{metricName:"metricName"},decls:2,vars:3,consts:[[3,"color"]],template:function(i,r){if(1&i&&(ft(0,mIe,4,8,"span",0),ze(1,"async")),2&i){let o;yt(0,(o=null==(o=tt(1,1,r.selectedNode$))||null==o.deltas?null:o.deltas[r.metricName])?0:-1,o)}},dependencies:[Gn,Ay],encapsulation:2})}}return t})();function pIe(t,n){1&t&&_e(0,"cc-attribute-type-selector",2),2&t&&ue("metricName",He().metric.name)("metricType","nodes")}function AIe(t,n){if(1&t&&(I(0,"a",5),ve(1),_e(2,"i",6),O()),2&t){const e=He();ue("href",n,dp),H(),an(" ",e.metric.name," ")}}function gIe(t,n){if(1&t&&(I(0,"span",7),ve(1),O()),2&t){const e=He();H(),ur(e.metric.name)}}let bIe=(()=>{class t{constructor(e){this.showAttributeTypeSelector$=e.select(oN)}static{this.\u0275fac=function(i){return new(i||t)(W(Wt))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-attribute-side-bar-primary-metric"]],inputs:{iconName:"iconName",metric:"metric",metricLink:"metricLink"},decls:11,vars:11,consts:[[1,"primary-metric-box"],[1,"primary-metric-row"],[1,"attribute-type-select",3,"metricName","metricType"],[1,"primary-metric-value"],[3,"metricName"],["target","_blank",1,"metric-name",3,"href"],[1,"fa","fa-external-link"],[1,"metric-name"]],template:function(i,r){if(1&i&&(I(0,"div",0)(1,"div",1),_e(2,"i"),ft(3,pIe,1,2,"cc-attribute-type-selector",2),ze(4,"async"),I(5,"span",3),ve(6),ze(7,"number"),O()(),_e(8,"cc-metric-delta-selected",4),ft(9,AIe,3,2,"a",5)(10,gIe,2,1),O()),2&i){let o;H(2),Cc(r.iconName),H(),yt(3,tt(4,6,r.showAttributeTypeSelector$)?3:-1),H(3),ur(po(7,8,r.metric.value,"1.0-0")),H(2),ue("metricName",r.metric.name),H(),yt(9,(o=r.metricLink)?9:10,o)}},dependencies:[sN,LJ,Gn,Ay],encapsulation:2})}}return t})();const Hb=new Map([["loc","Lines of Code"],["rloc","Real Lines of Code"],["comment_lines","Number of Code Lines with Comments"],["complexity","Cyclomatic Complexity"],["mcc","McCabe Complexity"],["avgCommits","Average Number of Commits from this file"],["functions","Number of Functions"],["pairingRate","Pairing Rate of selected building"],["unary","-"],["line_coverage","Number of Code Lines covered by tests"],["sonar_code_smells","Number of Smells Sonar has identified"],["avg_code_churn","Average Number of Lines added or removed from this file"],["number_of_authors","Number of Authors that have edited this file"],["statements","Number of Statements"]]);let hF=(()=>{class t{transform(e,i){if(null==e)return Hb.get(i)??"";const r=e.title?`${e.title} (${i})`:`${i}`;let o=e.description?`\n${e.description}`:"";return o+=e.hintHighValue?`\nHigh Values: ${e.hintHighValue}`:"",o+=e.hintLowValue?`\nLow Values: ${e.hintLowValue}`:"",o.length>0?`${r}:${o}`:r}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275pipe=lr({name:"attributeDescriptorTooltip",type:t,pure:!0})}}return t})();function _Ie(t,n){1&t&&_e(0,"cc-attribute-type-selector",8),2&t&&ue("metricName",He().name)("metricType","edges")}function vIe(t,n){if(1&t&&(I(0,"a",9),ve(1),_e(2,"i",10),O()),2&t){const e=He();ue("href",n,dp),H(),an(" ",e.name," (in/out) ")}}function yIe(t,n){if(1&t&&(I(0,"span",11),ve(1),O()),2&t){const e=He();H(),an("",e.name," (in/out)")}}function wIe(t,n){if(1&t&&(I(0,"td",3),ze(1,"attributeDescriptorTooltip"),I(2,"div",5)(3,"div",6),_e(4,"i",7),ft(5,_Ie,1,2,"cc-attribute-type-selector",8),ze(6,"async"),I(7,"span"),ve(8),ze(9,"number"),I(10,"span"),ve(11,"/"),O(),ve(12),ze(13,"number"),O()(),ft(14,vIe,3,2,"a",9)(15,yIe,2,1),O()()),2&t){let e;const i=n,r=He(2),o=He();ue("title",po(1,5,r[i.name],i.name)),H(5),yt(5,tt(6,8,o.showAttributeTypeSelector$)?5:-1),H(3),an(" ",po(9,10,i.incoming,"1.0-0")," "),H(4),an(" ",po(13,13,i.outgoing,"1.0-0")," "),H(2),yt(14,(e=null==r[i.name]?null:r[i.name].link)?14:15,e)}}function xIe(t,n){1&t&&(I(0,"td")(1,"span",11),ve(2,"No edge metric available"),O()())}function CIe(t,n){if(1&t&&(I(0,"table",1)(1,"th",2),ve(2,"Primary Metrics"),O(),I(3,"tr")(4,"td",3),ze(5,"attributeDescriptorTooltip"),_e(6,"cc-attribute-side-bar-primary-metric",4),O(),I(7,"td",3),ze(8,"attributeDescriptorTooltip"),_e(9,"cc-attribute-side-bar-primary-metric",4),O()(),I(10,"tr")(11,"td",3),ze(12,"attributeDescriptorTooltip"),_e(13,"cc-attribute-side-bar-primary-metric",4),O(),ft(14,wIe,16,16,"td",3)(15,xIe,3,0),O()()),2&t){let e;const i=n,r=He();H(4),ue("title",po(5,13,r[i.area.name],i.area.name)),H(2),ue("iconName","fa fa-arrows-alt")("metric",i.area)("metricLink",null==r[i.area.name]?null:r[i.area.name].link),H(),ue("title",po(8,16,r[i.height.name],i.height.name)),H(2),ue("iconName","fa fa-arrows-v")("metric",i.height)("metricLink",null==r[i.height.name]?null:r[i.height.name].link),H(2),ue("title",po(12,19,r[i.color.name],i.color.name)),H(2),ue("iconName","fa fa-paint-brush")("metric",i.color)("metricLink",null==r[i.color.name]?null:r[i.color.name].link),H(),yt(14,(e=i.edge)?14:15,e)}}function EIe(t,n){if(1&t&&(I(0,"div",0),ft(1,CIe,16,22,"table",1),ze(2,"async"),O()),2&t){let e;const i=He();H(),yt(1,(e=tt(2,1,i.primaryMetrics$))?1:-1,e)}}let MIe=(()=>{class t{constructor(e){this.store=e,this.primaryMetrics$=this.store.select(rIe),this.showAttributeTypeSelector$=this.store.select(oN),this.attributeDescriptors$=this.store.select(cF)}static{this.\u0275fac=function(i){return new(i||t)(W(Wt))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-attribute-side-bar-primary-metrics"]],decls:2,vars:3,consts:[[1,"metric-box"],["aria-hidden","true",1,"primary-metrics"],["scope","col"],[3,"title"],[3,"iconName","metric","metricLink"],[1,"primary-metric-box"],[1,"primary-metric-row"],[1,"fa","fa-exchange"],[1,"attribute-type-select",3,"metricName","metricType"],["target","_blank",1,"metric-name",3,"href"],[1,"fa","fa-external-link"],[1,"metric-name"]],template:function(i,r){if(1&i&&(ft(0,EIe,3,3,"div",0),ze(1,"async")),2&i){let o;yt(0,(o=tt(1,1,r.attributeDescriptors$))?0:-1,o)}},dependencies:[sN,bIe,Gn,Ay,hF],encapsulation:2})}}return t})();const SIe=Xt(pm,t=>!!t?.deltas),TIe=Xt(lF,pm,(t,n)=>{if(!n)return[];const e=Object.values(t);return Object.keys(n.attributes).filter(r=>"unary"!==r&&!e.includes(r)).sort((r,o)=>r.localeCompare(o)).map(r=>({name:r,value:n.attributes[r]}))});function FIe(t,n){1&t&&_e(0,"cc-attribute-type-selector",8),2&t&&ue("metricName",He().$implicit.name)("metricType","nodes")}function kIe(t,n){if(1&t&&(I(0,"a",12),ve(1),_e(2,"i",13),O()),2&t){const e=He().$implicit;ue("href",n,dp),H(),an(" ",e.name," ")}}function IIe(t,n){if(1&t&&(I(0,"span",14),ve(1),O()),2&t){const e=He().$implicit;H(),ur(e.name)}}function BIe(t,n){if(1&t&&(I(0,"tr",5),ze(1,"attributeDescriptorTooltip"),I(2,"td",6)(3,"div",7),ft(4,FIe,1,2,"cc-attribute-type-selector",8),ze(5,"async"),I(6,"span",9),ve(7),ze(8,"number"),O()()(),I(9,"td",10),ze(10,"async"),_e(11,"cc-metric-delta-selected",11),O(),I(12,"td"),ft(13,kIe,3,2,"a",12)(14,IIe,2,1),O()()),2&t){let e;const i=n.$implicit,r=He(),o=He();ue("title",po(1,6,r[i.name],i.name)),H(4),yt(4,tt(5,9,o.showAttributeTypeSelector$)?4:-1),H(3),ur(po(8,11,i.value,"1.0-0")),H(2),ue("hidden",!tt(10,14,o.showDeltaValue$)),H(2),ue("metricName",i.name),H(2),yt(13,(e=null==r[i.name]?null:r[i.name].link)?13:14,e)}}function DIe(t,n){if(1&t&&(I(0,"div",2)(1,"table",3)(2,"tr")(3,"th",4),ve(4,"Secondary Metrics"),O()(),yr(5,BIe,15,16,"tr",5,Sr),ze(7,"async"),O()()),2&t){const e=He();H(5),wr(tt(7,0,e.secondaryMetrics$))}}let RIe=(()=>{class t{constructor(e){this.store=e,this.secondaryMetrics$=this.store.select(TIe),this.showAttributeTypeSelector$=this.store.select(oN),this.showDeltaValue$=this.store.select(SIe),this.attributeDescriptors$=this.store.select(cF)}static{this.\u0275fac=function(i){return new(i||t)(W(Wt))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-attribute-side-bar-secondary-metrics"]],decls:4,vars:3,consts:[[1,"secondary-metrics-wrapper"],[1,"metrics-wrapper"],[1,"metric-box","scrollable-content"],["aria-hidden","true",1,"secondary-metrics"],["scope","col","colspan","2"],[3,"title"],[1,"secondary-metric-box"],[1,"secondary-metric-row"],[1,"attribute-type-select",3,"metricName","metricType"],[1,"metric-value"],[1,"delta-value-box",3,"hidden"],[3,"metricName"],["target","_blank",1,"metric-name",3,"href"],[1,"fa","fa-external-link"],[1,"metric-name"]],template:function(i,r){if(1&i&&(I(0,"div",0)(1,"div",1),ft(2,DIe,8,2,"div",2),ze(3,"async"),O()()),2&i){let o;H(2),yt(2,(o=tt(3,1,r.attributeDescriptors$))?2:-1,o)}},dependencies:[sN,LJ,Gn,Ay,hF],encapsulation:2})}}return t})(),LIe=(()=>{class t{constructor(e,i){this.isAttributeSideBarVisibleService=e,this.store=i,this.selectedNode$=this.store.select(pm),this.fileName$=this.store.select(lc).pipe(Et(r=>r.unifiedFileMeta?.fileName??""))}static{this.\u0275fac=function(i){return new(i||t)(W(sF),W(Wt))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-attribute-side-bar"]],decls:6,vars:8,consts:[[1,"side-bar-container","cc-shadow"],[3,"node","fileName"]],template:function(i,r){1&i&&(I(0,"div",0),_e(1,"cc-attribute-side-bar-header-section",1),ze(2,"async"),ze(3,"async"),_e(4,"cc-attribute-side-bar-primary-metrics")(5,"cc-attribute-side-bar-secondary-metrics"),O()),2&i&&(xn("expanded",r.isAttributeSideBarVisibleService.isOpen),H(),ue("node",tt(2,4,r.selectedNode$))("fileName",tt(3,6,r.fileName$)))},dependencies:[iIe,MIe,RIe,Gn],styles:['cc-attribute-side-bar .side-bar-container{width:350px;height:calc(100% - 98px);padding:8px;font-size:11pt;position:absolute;right:-355px;background:#fff}cc-attribute-side-bar .side-bar-container.expanded{display:block;right:0}cc-attribute-side-bar .side-bar-container:before{content:"";height:100%;float:left}cc-attribute-side-bar .side-bar-container .secondary-metrics-wrapper{position:relative}cc-attribute-side-bar .side-bar-container .secondary-metrics-wrapper:after{content:"";clear:both;display:block}cc-attribute-side-bar .side-bar-container .secondary-metrics-wrapper .metrics-wrapper{position:absolute;width:100%;height:100%;padding-top:12px}cc-attribute-side-bar .side-bar-container .metric-box{border-radius:5px;background-color:#f0f0f0;padding:5px}cc-attribute-side-bar .side-bar-container .metric-box.scrollable-content{max-height:100%;overflow:auto}cc-attribute-side-bar .side-bar-container .metric-box table th{text-align:left}cc-attribute-side-bar .side-bar-container .metric-box table.primary-metrics{table-layout:fixed;width:100%;border-collapse:collapse}cc-attribute-side-bar .side-bar-container .metric-box table.primary-metrics tr:not(:last-child) td{border-bottom:3px solid white}cc-attribute-side-bar .side-bar-container .metric-box table.primary-metrics td{padding:5px}cc-attribute-side-bar .side-bar-container .metric-box table.primary-metrics td:first-child{border-right:3px solid white}cc-attribute-side-bar .side-bar-container .metric-box table.primary-metrics .primary-metric-box{display:flex;flex-direction:column;height:100%;width:100%}cc-attribute-side-bar .side-bar-container .metric-box table.primary-metrics .metric-name{margin-top:5px}cc-attribute-side-bar .side-bar-container .metric-box table.primary-metrics .primary-metric-value{margin-right:-5px}cc-attribute-side-bar .side-bar-container .metric-box table.primary-metrics i.fa{font-size:12pt;min-width:17px;text-align:center}cc-attribute-side-bar .side-bar-container .metric-box table.secondary-metrics td{padding-left:5px}cc-attribute-side-bar .side-bar-container .metric-box table.secondary-metrics td:first-child{padding-left:4px}cc-attribute-side-bar .side-bar-container .metric-box table.secondary-metrics .secondary-metric-box{border-radius:3px;padding:4px;vertical-align:middle;background:#d5d5d5}cc-attribute-side-bar .side-bar-container .metric-box table.secondary-metrics .secondary-metric-row{flex-wrap:nowrap}cc-attribute-side-bar .side-bar-container .metric-box table .primary-metric-row,cc-attribute-side-bar .side-bar-container .metric-box table .secondary-metric-row{display:flex;align-items:center;flex-wrap:wrap;gap:5px}cc-attribute-side-bar .side-bar-container .metric-box table .metric-name{color:gray;word-break:break-word;vertical-align:middle}cc-attribute-side-bar .side-bar-container .metric-box table .delta-value-box{vertical-align:middle}cc-attribute-side-bar .side-bar-container .metric-box cc-metric-delta-selected:has(span){margin-top:5px}cc-attribute-side-bar .side-bar-container cc-attribute-side-bar-primary-metrics .metric-box i.fa.fa-external-link,cc-attribute-side-bar .side-bar-container cc-attribute-side-bar-primary-metrics .metrics-wrapper i.fa.fa-external-link,cc-attribute-side-bar .side-bar-container cc-attribute-side-bar-secondary-metrics .metric-box i.fa.fa-external-link,cc-attribute-side-bar .side-bar-container cc-attribute-side-bar-secondary-metrics .metrics-wrapper i.fa.fa-external-link{font-size:10px;min-width:10px;text-align:center}cc-attribute-side-bar .side-bar-container cc-attribute-side-bar-primary-metrics .metric-box a:link,cc-attribute-side-bar .side-bar-container cc-attribute-side-bar-primary-metrics .metric-box a:visited,cc-attribute-side-bar .side-bar-container cc-attribute-side-bar-primary-metrics .metrics-wrapper a:link,cc-attribute-side-bar .side-bar-container cc-attribute-side-bar-primary-metrics .metrics-wrapper a:visited,cc-attribute-side-bar .side-bar-container cc-attribute-side-bar-secondary-metrics .metric-box a:link,cc-attribute-side-bar .side-bar-container cc-attribute-side-bar-secondary-metrics .metric-box a:visited,cc-attribute-side-bar .side-bar-container cc-attribute-side-bar-secondary-metrics .metrics-wrapper a:link,cc-attribute-side-bar .side-bar-container cc-attribute-side-bar-secondary-metrics .metrics-wrapper a:visited{text-decoration:none}cc-attribute-side-bar .side-bar-container cc-attribute-side-bar-primary-metrics .metric-box a:hover,cc-attribute-side-bar .side-bar-container cc-attribute-side-bar-primary-metrics .metrics-wrapper a:hover,cc-attribute-side-bar .side-bar-container cc-attribute-side-bar-secondary-metrics .metric-box a:hover,cc-attribute-side-bar .side-bar-container cc-attribute-side-bar-secondary-metrics .metrics-wrapper a:hover{color:#00f;-webkit-text-decoration:solid;text-decoration:solid;text-decoration-line:underline}cc-attribute-side-bar .side-bar-container cc-attribute-side-bar-primary-metrics .metric-box a:active,cc-attribute-side-bar .side-bar-container cc-attribute-side-bar-primary-metrics .metrics-wrapper a:active,cc-attribute-side-bar .side-bar-container cc-attribute-side-bar-secondary-metrics .metric-box a:active,cc-attribute-side-bar .side-bar-container cc-attribute-side-bar-secondary-metrics .metrics-wrapper a:active{color:red}\n'],encapsulation:2})}}return t})(),PIe=(()=>{class t{constructor(e,i,r,o,s){this.isAttributeSideBarVisibleService=e,this.store=i,this.threeViewerService=r,this.codeMapMouseEventService=o,this.elementReference=s,this.isLoadingFile$=this.store.select(GL),this.restartOnSharpnessModeChangesSubscription=this.store.select(fK).pipe(b1(1),Nr(()=>{this.threeViewerService.restart(this.elementReference.nativeElement.querySelector("#codeMap")),this.codeMapMouseEventService.start()})).subscribe()}ngAfterViewInit(){this.threeViewerService.init(this.elementReference.nativeElement.querySelector("#codeMap")),this.codeMapMouseEventService.start()}ngOnDestroy(){this.restartOnSharpnessModeChangesSubscription.unsubscribe()}static{this.\u0275fac=function(i){return new(i||t)(W(sF),W(Wt),W(_J),W(ox),W(Un))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-code-map"]],decls:4,vars:6,consts:[["id","codeMap"]],template:function(i,r){1&i&&(I(0,"div",0),ze(1,"async"),_e(2,"cc-view-cube")(3,"cc-attribute-side-bar"),O()),2&i&&(xn("hidden",tt(1,4,r.isLoadingFile$)),H(2),xn("sideBarVisible",r.isAttributeSideBarVisibleService.isOpen))},dependencies:[Oke,LIe,Gn],styles:["cc-code-map .hidden{display:none}cc-code-map cc-view-cube{position:absolute;z-index:11;right:0;top:10px}cc-code-map cc-view-cube.sideBarVisible{right:350px}cc-code-map unfocus-button-component.sideBarVisible{right:390px}\n"],encapsulation:2})}}return t})();const PJ=Xt(o1,t=>t.markedPackages),NIe=Xt(PJ,t=>t.reduce((n,{color:e,path:i})=>(Object.prototype.hasOwnProperty.call(n,e)||(n[e]=[]),n[e].push(i),n),{}));function Xs(t,n){(function OIe(t){return"string"==typeof t&&-1!==t.indexOf(".")&&1===parseFloat(t)})(t)&&(t="100%");var e=function UIe(t){return"string"==typeof t&&-1!==t.indexOf("%")}(t);return t=360===n?t:Math.min(n,Math.max(0,parseFloat(t))),e&&(t=parseInt(String(t*n),10)/100),Math.abs(t-n)<1e-6?1:t=360===n?(t<0?t%n+n:t%n)/parseFloat(String(n)):t%n/parseFloat(String(n))}function fF(t){return Math.min(1,Math.max(0,t))}function NJ(t){return t=parseFloat(t),(isNaN(t)||t<0||t>1)&&(t=1),t}function mF(t){return t<=1?"".concat(100*Number(t),"%"):t}function EA(t){return 1===t.length?"0"+t:String(t)}function OJ(t,n,e){t=Xs(t,255),n=Xs(n,255),e=Xs(e,255);var i=Math.max(t,n,e),r=Math.min(t,n,e),o=0,s=0,a=(i+r)/2;if(i===r)s=0,o=0;else{var l=i-r;switch(s=a>.5?l/(2-i-r):l/(i+r),i){case t:o=(n-e)/l+(n1&&(e-=1),e<1/6?t+6*e*(n-t):e<.5?n:e<2/3?t+(n-t)*(2/3-e)*6:t}function UJ(t,n,e){t=Xs(t,255),n=Xs(n,255),e=Xs(e,255);var i=Math.max(t,n,e),r=Math.min(t,n,e),o=0,s=i,a=i-r,l=0===i?0:a/i;if(i===r)o=0;else{switch(i){case t:o=(n-e)/a+(n>16,g:(65280&t)>>8,b:255&t}}(n)),this.originalInput=n;var r=function qIe(t){var n={r:0,g:0,b:0},e=1,i=null,r=null,o=null,s=!1,a=!1;return"string"==typeof t&&(t=function jIe(t){if(0===(t=t.trim().toLowerCase()).length)return!1;var n=!1;if(lN[t])t=lN[t],n=!0;else if("transparent"===t)return{r:0,g:0,b:0,a:0,format:"name"};var e=ed.rgb.exec(t);return e?{r:e[1],g:e[2],b:e[3]}:(e=ed.rgba.exec(t))?{r:e[1],g:e[2],b:e[3],a:e[4]}:(e=ed.hsl.exec(t))?{h:e[1],s:e[2],l:e[3]}:(e=ed.hsla.exec(t))?{h:e[1],s:e[2],l:e[3],a:e[4]}:(e=ed.hsv.exec(t))?{h:e[1],s:e[2],v:e[3]}:(e=ed.hsva.exec(t))?{h:e[1],s:e[2],v:e[3],a:e[4]}:(e=ed.hex8.exec(t))?{r:Nl(e[1]),g:Nl(e[2]),b:Nl(e[3]),a:QJ(e[4]),format:n?"name":"hex8"}:(e=ed.hex6.exec(t))?{r:Nl(e[1]),g:Nl(e[2]),b:Nl(e[3]),format:n?"name":"hex"}:(e=ed.hex4.exec(t))?{r:Nl(e[1]+e[1]),g:Nl(e[2]+e[2]),b:Nl(e[3]+e[3]),a:QJ(e[4]+e[4]),format:n?"name":"hex8"}:!!(e=ed.hex3.exec(t))&&{r:Nl(e[1]+e[1]),g:Nl(e[2]+e[2]),b:Nl(e[3]+e[3]),format:n?"name":"hex"}}(t)),"object"==typeof t&&(Sh(t.r)&&Sh(t.g)&&Sh(t.b)?(n=function HIe(t,n,e){return{r:255*Xs(t,255),g:255*Xs(n,255),b:255*Xs(e,255)}}(t.r,t.g,t.b),s=!0,a="%"===String(t.r).substr(-1)?"prgb":"rgb"):Sh(t.h)&&Sh(t.s)&&Sh(t.v)?(i=mF(t.s),r=mF(t.v),n=function QIe(t,n,e){t=6*Xs(t,360),n=Xs(n,100),e=Xs(e,100);var i=Math.floor(t),r=t-i,o=e*(1-n),s=e*(1-r*n),a=e*(1-(1-r)*n),l=i%6;return{r:255*[e,s,o,o,a,e][l],g:255*[a,e,e,s,o,o][l],b:255*[o,o,a,e,e,s][l]}}(t.h,i,r),s=!0,a="hsv"):Sh(t.h)&&Sh(t.s)&&Sh(t.l)&&(i=mF(t.s),o=mF(t.l),n=function VIe(t,n,e){var i,r,o;if(t=Xs(t,360),n=Xs(n,100),e=Xs(e,100),0===n)r=e,o=e,i=e;else{var s=e<.5?e*(1+n):e+n-e*n,a=2*e-s;i=aN(a,s,t+1/3),r=aN(a,s,t),o=aN(a,s,t-1/3)}return{r:255*i,g:255*r,b:255*o}}(t.h,i,o),s=!0,a="hsl"),Object.prototype.hasOwnProperty.call(t,"a")&&(e=t.a)),e=NJ(e),{ok:s,format:t.format||a,r:Math.min(255,Math.max(n.r,0)),g:Math.min(255,Math.max(n.g,0)),b:Math.min(255,Math.max(n.b,0)),a:e}}(n);this.originalInput=n,this.r=r.r,this.g=r.g,this.b=r.b,this.a=r.a,this.roundA=Math.round(100*this.a)/100,this.format=null!==(i=e.format)&&void 0!==i?i:r.format,this.gradientType=e.gradientType,this.r<1&&(this.r=Math.round(this.r)),this.g<1&&(this.g=Math.round(this.g)),this.b<1&&(this.b=Math.round(this.b)),this.isValid=r.ok}return t.prototype.isDark=function(){return this.getBrightness()<128},t.prototype.isLight=function(){return!this.isDark()},t.prototype.getBrightness=function(){var n=this.toRgb();return(299*n.r+587*n.g+114*n.b)/1e3},t.prototype.getLuminance=function(){var n=this.toRgb(),o=n.r/255,s=n.g/255,a=n.b/255;return.2126*(o<=.03928?o/12.92:Math.pow((o+.055)/1.055,2.4))+.7152*(s<=.03928?s/12.92:Math.pow((s+.055)/1.055,2.4))+.0722*(a<=.03928?a/12.92:Math.pow((a+.055)/1.055,2.4))},t.prototype.getAlpha=function(){return this.a},t.prototype.setAlpha=function(n){return this.a=NJ(n),this.roundA=Math.round(100*this.a)/100,this},t.prototype.isMonochrome=function(){return 0===this.toHsl().s},t.prototype.toHsv=function(){var n=UJ(this.r,this.g,this.b);return{h:360*n.h,s:n.s,v:n.v,a:this.a}},t.prototype.toHsvString=function(){var n=UJ(this.r,this.g,this.b),e=Math.round(360*n.h),i=Math.round(100*n.s),r=Math.round(100*n.v);return 1===this.a?"hsv(".concat(e,", ").concat(i,"%, ").concat(r,"%)"):"hsva(".concat(e,", ").concat(i,"%, ").concat(r,"%, ").concat(this.roundA,")")},t.prototype.toHsl=function(){var n=OJ(this.r,this.g,this.b);return{h:360*n.h,s:n.s,l:n.l,a:this.a}},t.prototype.toHslString=function(){var n=OJ(this.r,this.g,this.b),e=Math.round(360*n.h),i=Math.round(100*n.s),r=Math.round(100*n.l);return 1===this.a?"hsl(".concat(e,", ").concat(i,"%, ").concat(r,"%)"):"hsla(".concat(e,", ").concat(i,"%, ").concat(r,"%, ").concat(this.roundA,")")},t.prototype.toHex=function(n){return void 0===n&&(n=!1),HJ(this.r,this.g,this.b,n)},t.prototype.toHexString=function(n){return void 0===n&&(n=!1),"#"+this.toHex(n)},t.prototype.toHex8=function(n){return void 0===n&&(n=!1),function zIe(t,n,e,i,r){var o=[EA(Math.round(t).toString(16)),EA(Math.round(n).toString(16)),EA(Math.round(e).toString(16)),EA(VJ(i))];return r&&o[0].startsWith(o[0].charAt(1))&&o[1].startsWith(o[1].charAt(1))&&o[2].startsWith(o[2].charAt(1))&&o[3].startsWith(o[3].charAt(1))?o[0].charAt(0)+o[1].charAt(0)+o[2].charAt(0)+o[3].charAt(0):o.join("")}(this.r,this.g,this.b,this.a,n)},t.prototype.toHex8String=function(n){return void 0===n&&(n=!1),"#"+this.toHex8(n)},t.prototype.toHexShortString=function(n){return void 0===n&&(n=!1),1===this.a?this.toHexString(n):this.toHex8String(n)},t.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},t.prototype.toRgbString=function(){var n=Math.round(this.r),e=Math.round(this.g),i=Math.round(this.b);return 1===this.a?"rgb(".concat(n,", ").concat(e,", ").concat(i,")"):"rgba(".concat(n,", ").concat(e,", ").concat(i,", ").concat(this.roundA,")")},t.prototype.toPercentageRgb=function(){var n=function(e){return"".concat(Math.round(100*Xs(e,255)),"%")};return{r:n(this.r),g:n(this.g),b:n(this.b),a:this.a}},t.prototype.toPercentageRgbString=function(){var n=function(e){return Math.round(100*Xs(e,255))};return 1===this.a?"rgb(".concat(n(this.r),"%, ").concat(n(this.g),"%, ").concat(n(this.b),"%)"):"rgba(".concat(n(this.r),"%, ").concat(n(this.g),"%, ").concat(n(this.b),"%, ").concat(this.roundA,")")},t.prototype.toName=function(){if(0===this.a)return"transparent";if(this.a<1)return!1;for(var n="#"+HJ(this.r,this.g,this.b,!1),e=0,i=Object.entries(lN);e=0&&(n.startsWith("hex")||"name"===n)?"name"===n&&0===this.a?this.toName():this.toRgbString():("rgb"===n&&(i=this.toRgbString()),"prgb"===n&&(i=this.toPercentageRgbString()),("hex"===n||"hex6"===n)&&(i=this.toHexString()),"hex3"===n&&(i=this.toHexString(!0)),"hex4"===n&&(i=this.toHex8String(!0)),"hex8"===n&&(i=this.toHex8String()),"name"===n&&(i=this.toName()),"hsl"===n&&(i=this.toHslString()),"hsv"===n&&(i=this.toHsvString()),i||this.toHexString())},t.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},t.prototype.clone=function(){return new t(this.toString())},t.prototype.lighten=function(n){void 0===n&&(n=10);var e=this.toHsl();return e.l+=n/100,e.l=fF(e.l),new t(e)},t.prototype.brighten=function(n){void 0===n&&(n=10);var e=this.toRgb();return e.r=Math.max(0,Math.min(255,e.r-Math.round(-n/100*255))),e.g=Math.max(0,Math.min(255,e.g-Math.round(-n/100*255))),e.b=Math.max(0,Math.min(255,e.b-Math.round(-n/100*255))),new t(e)},t.prototype.darken=function(n){void 0===n&&(n=10);var e=this.toHsl();return e.l-=n/100,e.l=fF(e.l),new t(e)},t.prototype.tint=function(n){return void 0===n&&(n=10),this.mix("white",n)},t.prototype.shade=function(n){return void 0===n&&(n=10),this.mix("black",n)},t.prototype.desaturate=function(n){void 0===n&&(n=10);var e=this.toHsl();return e.s-=n/100,e.s=fF(e.s),new t(e)},t.prototype.saturate=function(n){void 0===n&&(n=10);var e=this.toHsl();return e.s+=n/100,e.s=fF(e.s),new t(e)},t.prototype.greyscale=function(){return this.desaturate(100)},t.prototype.spin=function(n){var e=this.toHsl(),i=(e.h+n)%360;return e.h=i<0?360+i:i,new t(e)},t.prototype.mix=function(n,e){void 0===e&&(e=50);var i=this.toRgb(),r=new t(n).toRgb(),o=e/100;return new t({r:(r.r-i.r)*o+i.r,g:(r.g-i.g)*o+i.g,b:(r.b-i.b)*o+i.b,a:(r.a-i.a)*o+i.a})},t.prototype.analogous=function(n,e){void 0===n&&(n=6),void 0===e&&(e=30);var i=this.toHsl(),r=360/e,o=[this];for(i.h=(i.h-(r*n>>1)+720)%360;--n;)i.h=(i.h+r)%360,o.push(new t(i));return o},t.prototype.complement=function(){var n=this.toHsl();return n.h=(n.h+180)%360,new t(n)},t.prototype.monochromatic=function(n){void 0===n&&(n=6);for(var e=this.toHsv(),i=e.h,r=e.s,o=e.v,s=[],a=1/n;n--;)s.push(new t({h:i,s:r,v:o})),o=(o+a)%1;return s},t.prototype.splitcomplement=function(){var n=this.toHsl(),e=n.h;return[this,new t({h:(e+72)%360,s:n.s,l:n.l}),new t({h:(e+216)%360,s:n.s,l:n.l})]},t.prototype.onBackground=function(n){var e=this.toRgb(),i=new t(n).toRgb(),r=e.a+i.a*(1-e.a);return new t({r:(e.r*e.a+i.r*i.a*(1-e.a))/r,g:(e.g*e.a+i.g*i.a*(1-e.a))/r,b:(e.b*e.a+i.b*i.a*(1-e.a))/r,a:r})},t.prototype.triad=function(){return this.polyad(3)},t.prototype.tetrad=function(){return this.polyad(4)},t.prototype.polyad=function(n){for(var e=this.toHsl(),i=e.h,r=[this],o=360/n,s=1;s{class t{constructor(){this.white="transparent",this.size=8,this.grey="rgba(0,0,0,.08)"}ngOnInit(){const e=function ZIe(t,n,e){const i=`${t}-${n}-${e}`;if(uN[i])return uN[i];const r=function YIe(t,n,e){if(typeof document>"u")return null;const i=document.createElement("canvas");i.width=2*e,i.height=2*e;const r=i.getContext("2d");return r?(r.fillStyle=t,r.fillRect(0,0,i.width,i.height),r.fillStyle=n,r.fillRect(0,0,e,e),r.translate(e,e),r.fillRect(0,0,e,e),i.toDataURL()):null}(t,n,e);return r?(uN[i]=r,r):null}(this.white,this.grey,this.size);this.gridStyles={borderRadius:this.borderRadius,boxShadow:this.boxShadow,background:`url(${e}) center left`}}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275cmp=At({type:t,selectors:[["color-checkboard"]],inputs:{white:"white",size:"size",grey:"grey",boxShadow:"boxShadow",borderRadius:"borderRadius"},decls:1,vars:1,consts:[[1,"grid",3,"ngStyle"]],template:function(e,i){1&e&&_e(0,"div",0),2&e&&ue("ngStyle",i.gridStyles)},dependencies:[A0],styles:[".grid[_ngcontent-%COMP%]{top:0px;right:0px;bottom:0px;left:0px;position:absolute}"],changeDetection:0}),t})(),GJ=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Bt({type:t}),t.\u0275inj=Tt({imports:[[An]]}),t})(),hN=(()=>{class t{constructor(e){this.el=e,this.coordinatesChange=new Yt,this.mousechange=new Yt,this.mouseListening=!1}mousemove(e,i,r,o=!1){this.mouseListening&&(e.preventDefault(),this.mousechange.next({$event:e,x:i,y:r,isTouch:o}))}mouseup(){this.mouseListening=!1}mousedown(e,i,r,o=!1){e.preventDefault(),this.mouseListening=!0,this.mousechange.next({$event:e,x:i,y:r,isTouch:o})}ngOnInit(){this.sub=this.mousechange.pipe(Ly((e,i)=>e.x===i.x&&e.y===i.y)).subscribe(e=>this.handleChange(e.x,e.y,e.$event,e.isTouch))}ngOnDestroy(){this.sub.unsubscribe()}handleChange(e,i,r,o){const s=this.el.nativeElement.clientWidth,a=this.el.nativeElement.clientHeight,l=e-(this.el.nativeElement.getBoundingClientRect().left+window.pageXOffset);let c=i-this.el.nativeElement.getBoundingClientRect().top;o||(c-=window.pageYOffset),this.coordinatesChange.next({x:e,y:i,top:c,left:l,containerWidth:s,containerHeight:a,$event:r})}}return t.\u0275fac=function(e){return new(e||t)(W(Un))},t.\u0275dir=zt({type:t,selectors:[["","ngx-color-coordinates",""]],hostBindings:function(e,i){1&e&&We("mousemove",function(o){return i.mousemove(o,o.pageX,o.pageY)},0,Iv)("touchmove",function(o){return i.mousemove(o,o.touches[0].clientX,o.touches[0].clientY,!0)},!1,Iv)("mouseup",function(){return i.mouseup()},!1,Iv)("touchend",function(){return i.mouseup()},!1,Iv)("mousedown",function(o){return i.mousedown(o,o.pageX,o.pageY)})("touchstart",function(o){return i.mousedown(o,o.touches[0].clientX,o.touches[0].clientY,!0)})},outputs:{coordinatesChange:"coordinatesChange"}}),t})(),fN=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Bt({type:t}),t.\u0275inj=Tt({}),t})(),JIe=(()=>{class t{constructor(){this.direction="horizontal",this.onChange=new Ln}ngOnChanges(){"vertical"===this.direction?(this.pointerLeft=0,this.pointerTop=100*this.rgb.a,this.gradient={background:`linear-gradient(to bottom, rgba(${this.rgb.r},${this.rgb.g},${this.rgb.b}, 0) 0%,\n rgba(${this.rgb.r},${this.rgb.g},${this.rgb.b}, 1) 100%)`}):(this.gradient={background:`linear-gradient(to right, rgba(${this.rgb.r},${this.rgb.g},${this.rgb.b}, 0) 0%,\n rgba(${this.rgb.r},${this.rgb.g},${this.rgb.b}, 1) 100%)`},this.pointerLeft=100*this.rgb.a)}handleChange({top:e,left:i,containerHeight:r,containerWidth:o,$event:s}){let a;if("vertical"===this.direction){let l;l=e<0?0:e>r?1:Math.round(100*e/r)/100,this.hsl.a!==l&&(a={h:this.hsl.h,s:this.hsl.s,l:this.hsl.l,a:l,source:"rgb"})}else{let l;l=i<0?0:i>o?1:Math.round(100*i/o)/100,this.hsl.a!==l&&(a={h:this.hsl.h,s:this.hsl.s,l:this.hsl.l,a:l,source:"rgb"})}a&&this.onChange.emit({data:a,$event:s})}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275cmp=At({type:t,selectors:[["color-alpha"]],inputs:{hsl:"hsl",rgb:"rgb",pointer:"pointer",shadow:"shadow",radius:"radius",direction:"direction"},outputs:{onChange:"onChange"},features:[cr],decls:7,vars:15,consts:[[1,"alpha"],[1,"alpha-checkboard"],[1,"alpha-gradient",3,"ngStyle"],["ngx-color-coordinates","",3,"coordinatesChange"],[1,"alpha-pointer"],[1,"alpha-slider",3,"ngStyle"]],template:function(e,i){1&e&&(I(0,"div",0)(1,"div",1),_e(2,"color-checkboard"),O(),_e(3,"div",2),I(4,"div",3),We("coordinatesChange",function(o){return i.handleChange(o)}),I(5,"div",4),_e(6,"div",5),O()()()),2&e&&(Fi("border-radius",i.radius),H(3),Fi("box-shadow",i.shadow)("border-radius",i.radius),ue("ngStyle",i.gradient),H(),Uu("alpha-container color-alpha-",i.direction,""),H(),Fi("left",i.pointerLeft,"%")("top",i.pointerTop,"%"),H(),ue("ngStyle",i.pointer))},dependencies:[zJ,A0,hN],styles:[".alpha[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0}.alpha-checkboard[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.alpha-gradient[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0}.alpha-container[_ngcontent-%COMP%]{position:relative;height:100%;margin:0 3px}.alpha-pointer[_ngcontent-%COMP%]{position:absolute}.alpha-slider[_ngcontent-%COMP%]{width:4px;border-radius:1px;height:8px;box-shadow:0 0 2px #0009;background:#fff;margin-top:1px;transform:translate(-2px)}"],changeDetection:0}),t})(),eBe=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Bt({type:t}),t.\u0275inj=Tt({imports:[[An,GJ,fN]]}),t})();function qJ(t){let e=0,i=0;return["r","g","b","a","h","s","l","v"].forEach(r=>{t[r]&&(e+=1,isNaN(t[r])||(i+=1),("s"===r||"l"===r)&&/^\d+%$/.test(t[r])&&(i+=1))}),e===i&&t}function cx(t,n,e){const i=new lx(t.hex?t.hex:t);e&&i.setAlpha(1);const r=i.toHsl(),o=i.toHsv(),s=i.toRgb(),a=i.toHex();return 0===r.s&&(r.h=n||0,o.h=n||0),{hsl:r,hex:"000000"===a&&0===s.a?"transparent":i.toHexString(),rgb:s,hsv:o,oldHue:t.h||n||r.h,source:t.source}}var Vb=function(t){return t.HEX="hex",t.HSL="hsl",t.HSV="hsv",t.RGB="rgb",t}(Vb||{});let WJ=(()=>{class t{constructor(){this.mode=Vb.HEX,this.color={h:250,s:.5,l:.2,a:1},this.colorChange=new Ln,this.onChange=new Ln,this.onChangeComplete=new Ln,this.onSwatchHover=new Ln,this._onChangeCompleteSubscription=new on,this._onSwatchHoverSubscription=new on}ngOnInit(){this.changes=this.onChange.pipe(S0(100),Nr(e=>{switch(this.onChangeComplete.emit(e),this.mode){case Vb.HEX:this.colorChange.emit(e.color.hex);break;case Vb.HSL:this.colorChange.emit(e.color.hsl);break;case Vb.HSV:this.colorChange.emit(e.color.hsv);break;case Vb.RGB:this.colorChange.emit(e.color.rgb);break;default:console.warn(`The mode '${this.mode}' is not supported`)}})).subscribe(),this.setState(cx(this.color,0)),this.currentColor=this.hex}ngOnChanges(){this.setState(cx(this.color,this.oldHue))}ngOnDestroy(){this.changes?.unsubscribe(),this._onChangeCompleteSubscription.unsubscribe(),this._onSwatchHoverSubscription.unsubscribe()}setState(e){this.oldHue=e.oldHue,this.hsl=e.hsl,this.hsv=e.hsv,this.rgb=e.rgb,this.hex=e.hex,this.source=e.source,this.afterValidChange()}handleChange(e,i){if(qJ(e)){const o=cx(e,e.h||this.oldHue,this.disableAlpha);this.setState(o),this.onChange.emit({color:o,$event:i}),this.afterValidChange()}}afterValidChange(){}handleSwatchHover(e,i){if(qJ(e)){const o=cx(e,e.h||this.oldHue);this.setState(o),this.onSwatchHover.emit({color:o,$event:i})}}registerOnChange(e){this._onChangeCompleteSubscription.add(this.onChangeComplete.pipe(Nr(i=>e(i.color.hex))).subscribe())}registerOnTouched(e){this._onSwatchHoverSubscription.add(this.onSwatchHover.pipe(Nr(()=>e())).subscribe())}setDisabledState(e){}writeValue(e){this.color=e}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275cmp=At({type:t,selectors:[["color-wrap"]],inputs:{className:"className",mode:"mode",color:"color"},outputs:{colorChange:"colorChange",onChange:"onChange",onChangeComplete:"onChangeComplete",onSwatchHover:"onSwatchHover"},features:[ni([{provide:Fs,useExisting:hi(()=>t),multi:!0}]),cr],decls:0,vars:0,template:function(e,i){},encapsulation:2}),t})(),nBe=0,iBe=(()=>{class t{constructor(){this.placeholder="",this.onChange=new Ln,this.focus=!1,this.uniqueId="editableInput-"+ ++nBe}ngOnInit(){this.wrapStyle=this.style&&this.style.wrap?this.style.wrap:{},this.inputStyle=this.style&&this.style.input?this.style.input:{},this.labelStyle=this.style&&this.style.label?this.style.label:{},this.dragLabel&&(this.labelStyle.cursor="ew-resize")}handleFocus(e){this.focus=!0}handleFocusOut(e){this.focus=!1,this.currentValue=this.blurValue}handleKeydown(e){const i=String(e.target.value),r=i.indexOf("%")>-1,o=Number(i.replace(/%/g,""));if(isNaN(o))return;const s=this.arrowOffset||1;38===e.keyCode&&(this.onChange.emit(this.label?{data:{[this.label]:o+s},$event:e}:{data:o+s,$event:e}),this.currentValue=r?`${o+s}%`:o+s),40===e.keyCode&&(this.onChange.emit(this.label?{data:{[this.label]:o-s},$event:e}:{data:o-s,$event:e}),this.currentValue=r?o-s+"%":o-s)}handleKeyup(e){40===e.keyCode||38===e.keyCode||`${this.currentValue}`!==e.target.value&&this.onChange.emit(this.label?{data:{[this.label]:e.target.value},$event:e}:{data:e.target.value,$event:e})}ngOnChanges(){this.focus||(this.currentValue=String(this.value).toUpperCase()),this.blurValue=String(this.value).toUpperCase()}ngOnDestroy(){this.unsubscribe()}subscribe(){this.mousemove=k0(document,"mousemove").subscribe(e=>this.handleDrag(e)),this.mouseup=k0(document,"mouseup").subscribe(()=>this.unsubscribe())}unsubscribe(){this.mousemove&&this.mousemove.unsubscribe(),this.mouseup&&this.mouseup.unsubscribe()}handleMousedown(e){this.dragLabel&&(e.preventDefault(),this.handleDrag(e),this.subscribe())}handleDrag(e){if(this.dragLabel){const i=Math.round(this.value+e.movementX);i>=0&&i<=this.dragMax&&this.onChange.emit({data:{[this.label]:i},$event:e})}}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275cmp=At({type:t,selectors:[["color-editable-input"]],inputs:{style:"style",label:"label",value:"value",arrowOffset:"arrowOffset",dragLabel:"dragLabel",dragMax:"dragMax",placeholder:"placeholder"},outputs:{onChange:"onChange"},features:[cr],decls:3,vars:6,consts:[[1,"wrap",3,"ngStyle"],["spellCheck","false",3,"keydown","keyup","focus","focusout","ngStyle","value","placeholder"],[3,"id","ngStyle","mousedown",4,"ngIf"],[3,"mousedown","id","ngStyle"]],template:function(e,i){1&e&&(I(0,"div",0)(1,"input",1),We("keydown",function(o){return i.handleKeydown(o)})("keyup",function(o){return i.handleKeyup(o)})("focus",function(o){return i.handleFocus(o)})("focusout",function(o){return i.handleFocusOut(o)}),O(),ft(2,KIe,2,3,"span",2),O()),2&e&&(ue("ngStyle",i.wrapStyle),H(),ue("ngStyle",i.inputStyle)("value",i.currentValue)("placeholder",i.placeholder),oi("aria-labelledby",i.uniqueId),H(),ue("ngIf",i.label))},dependencies:[A0,p0],styles:["[_nghost-%COMP%]{display:flex}.wrap[_ngcontent-%COMP%]{position:relative}"],changeDetection:0}),t})(),rBe=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Bt({type:t}),t.\u0275inj=Tt({imports:[[An]]}),t})(),oBe=(()=>{class t{constructor(){this.hidePointer=!1,this.direction="horizontal",this.onChange=new Ln,this.left="0px",this.top=""}ngOnChanges(){"horizontal"===this.direction?this.left=100*this.hsl.h/360+"%":this.top=-100*this.hsl.h/360+100+"%"}handleChange({top:e,left:i,containerHeight:r,containerWidth:o,$event:s}){let a;if("vertical"===this.direction){let l;l=e<0?359:e>r?0:360*(-100*e/r+100)/100,this.hsl.h!==l&&(a={h:l,s:this.hsl.s,l:this.hsl.l,a:this.hsl.a,source:"rgb"})}else{let l;l=i<0?0:i>o?359:100*i/o*360/100,this.hsl.h!==l&&(a={h:l,s:this.hsl.s,l:this.hsl.l,a:this.hsl.a,source:"rgb"})}a&&this.onChange.emit({data:a,$event:s})}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275cmp=At({type:t,selectors:[["color-hue"]],inputs:{hsl:"hsl",pointer:"pointer",radius:"radius",shadow:"shadow",hidePointer:"hidePointer",direction:"direction"},outputs:{onChange:"onChange"},features:[cr],decls:3,vars:8,consts:[["ngx-color-coordinates","",1,"color-hue-container",3,"coordinatesChange"],["class","color-hue-pointer",3,"left","top",4,"ngIf"],[1,"color-hue-pointer"],[1,"color-hue-slider",3,"ngStyle"]],template:function(e,i){1&e&&(I(0,"div")(1,"div",0),We("coordinatesChange",function(o){return i.handleChange(o)}),ft(2,XIe,2,5,"div",1),O()()),2&e&&(Uu("color-hue color-hue-",i.direction,""),Fi("border-radius",i.radius,"px")("box-shadow",i.shadow),H(2),ue("ngIf",!i.hidePointer))},dependencies:[hN,p0,A0],styles:[".color-hue[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0}.color-hue-container[_ngcontent-%COMP%]{margin:0 2px;position:relative;height:100%}.color-hue-pointer[_ngcontent-%COMP%]{position:absolute}.color-hue-slider[_ngcontent-%COMP%]{margin-top:1px;width:4px;border-radius:1px;height:8px;box-shadow:0 0 2px #0009;background:#fff;transform:translate(-2px)}.color-hue-horizontal[_ngcontent-%COMP%]{background:linear-gradient(to right,#f00 0%,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,#f00 100%)}.color-hue-vertical[_ngcontent-%COMP%]{background:linear-gradient(to top,#f00 0%,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,#f00 100%)}"],changeDetection:0}),t})(),sBe=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Bt({type:t}),t.\u0275inj=Tt({imports:[[An,fN]]}),t})(),aBe=(()=>{class t{constructor(){this.onChange=new Ln}ngOnChanges(){this.background=`hsl(${this.hsl.h}, 100%, 50%)`,this.pointerTop=-100*this.hsv.v+1+100+"%",this.pointerLeft=100*this.hsv.s+"%"}handleChange({top:e,left:i,containerHeight:r,containerWidth:o,$event:s}){i<0?i=0:i>o?i=o:e<0?e=0:e>r&&(e=r);let l=-e/r+1;l=l>0?l:0,l=l>1?1:l,this.onChange.emit({data:{h:this.hsl.h,s:i/o,v:l,a:this.hsl.a,source:"hsva"},$event:s})}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275cmp=At({type:t,selectors:[["color-saturation"]],inputs:{hsl:"hsl",hsv:"hsv",radius:"radius",pointer:"pointer",circle:"circle"},outputs:{onChange:"onChange"},features:[cr],decls:5,vars:8,consts:[["ngx-color-coordinates","",1,"color-saturation",3,"coordinatesChange"],[1,"saturation-white"],[1,"saturation-black"],[1,"saturation-pointer",3,"ngStyle"],[1,"saturation-circle",3,"ngStyle"]],template:function(e,i){1&e&&(I(0,"div",0),We("coordinatesChange",function(o){return i.handleChange(o)}),I(1,"div",1),_e(2,"div",2),I(3,"div",3),_e(4,"div",4),O()()()),2&e&&(Fi("background",i.background),H(3),Fi("top",i.pointerTop)("left",i.pointerLeft),ue("ngStyle",i.pointer),H(),ue("ngStyle",i.circle))},dependencies:[hN,A0],styles:[".saturation-white[_ngcontent-%COMP%]{background:linear-gradient(to right,#fff,rgba(255,255,255,0));position:absolute;top:0;bottom:0;left:0;right:0}.saturation-black[_ngcontent-%COMP%]{background:linear-gradient(to top,#000,rgba(0,0,0,0));position:absolute;top:0;bottom:0;left:0;right:0}.color-saturation[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0}.saturation-pointer[_ngcontent-%COMP%]{position:absolute;cursor:default}.saturation-circle[_ngcontent-%COMP%]{width:4px;height:4px;box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px #0000004d,0 0 1px 2px #0006;border-radius:50%;cursor:hand;transform:translate(-2px,-4px)}"],changeDetection:0}),t})(),lBe=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Bt({type:t}),t.\u0275inj=Tt({imports:[[An,fN]]}),t})();const Th=(t,n)=>({input:t,label:n});function cBe(t,n){if(1&t){const e=kn();I(0,"div",11)(1,"color-editable-input",12),We("onChange",function(r){return Ft(e),kt(He().handleChange(r))}),O()()}if(2&t){const e=He();H(),gs(tl(3,Th,e.input,e.label)),ue("value",e.hex)}}function dBe(t,n){if(1&t){const e=kn();I(0,"color-editable-input",17),We("onChange",function(r){return Ft(e),kt(He(2).handleChange(r))}),O()}if(2&t){const e=He(2);gs(tl(4,Th,e.input,e.label)),ue("value",e.rgb.a)("arrowOffset",.01)}}function uBe(t,n){if(1&t){const e=kn();I(0,"div",11)(1,"color-editable-input",13),We("onChange",function(r){return Ft(e),kt(He().handleChange(r))}),O()(),I(2,"div",11)(3,"color-editable-input",14),We("onChange",function(r){return Ft(e),kt(He().handleChange(r))}),O()(),I(4,"div",11)(5,"color-editable-input",15),We("onChange",function(r){return Ft(e),kt(He().handleChange(r))}),O()(),I(6,"div",11),ft(7,dBe,1,7,"color-editable-input",16),O()}if(2&t){const e=He();H(),gs(tl(10,Th,e.input,e.label)),ue("value",e.rgb.r),H(2),gs(tl(13,Th,e.input,e.label)),ue("value",e.rgb.g),H(2),gs(tl(16,Th,e.input,e.label)),ue("value",e.rgb.b),H(2),ue("ngIf",!e.disableAlpha)}}function hBe(t,n){if(1&t){const e=kn();I(0,"color-editable-input",17),We("onChange",function(r){return Ft(e),kt(He(2).handleChange(r))}),O()}if(2&t){const e=He(2);gs(tl(4,Th,e.input,e.label)),ue("value",e.hsl.a)("arrowOffset",.01)}}function fBe(t,n){if(1&t){const e=kn();I(0,"div",11)(1,"color-editable-input",18),We("onChange",function(r){return Ft(e),kt(He().handleChange(r))}),O()(),I(2,"div",11)(3,"color-editable-input",19),We("onChange",function(r){return Ft(e),kt(He().handleChange(r))}),O()(),I(4,"div",11)(5,"color-editable-input",20),We("onChange",function(r){return Ft(e),kt(He().handleChange(r))}),O()(),I(6,"div",11),ft(7,hBe,1,7,"color-editable-input",16),O()}if(2&t){const e=He();H(),gs(tl(10,Th,e.input,e.label)),ue("value",e.round(e.hsl.h)),H(2),gs(tl(13,Th,e.input,e.label)),ue("value",e.round(100*e.hsl.s)+"%"),H(2),gs(tl(16,Th,e.input,e.label)),ue("value",e.round(100*e.hsl.l)+"%"),H(2),ue("ngIf",!e.disableAlpha)}}function mBe(t,n){if(1&t){const e=kn();I(0,"div",12)(1,"color-alpha",13),We("onChange",function(r){return Ft(e),kt(He().handleValueChange(r))}),O()()}if(2&t){const e=He();H(),ue("radius",2)("rgb",e.rgb)("hsl",e.hsl)("pointer",e.pointer)}}let pBe=(()=>{class t{constructor(){this.onChange=new Ln,this.view="",this.input={fontSize:"11px",color:"#333",width:"100%",borderRadius:"2px",border:"none",boxShadow:"inset 0 0 0 1px #dadada",height:"21px","text-align":"center"},this.label={"text-transform":"uppercase",fontSize:"11px","line-height":"11px",color:"#969696","text-align":"center",display:"block",marginTop:"12px"}}ngOnInit(){1===this.hsl.a&&"hex"!==this.view?this.view="hex":"rgb"!==this.view&&"hsl"!==this.view&&(this.view="rgb")}toggleViews(){"hex"===this.view?this.view="rgb":"rgb"===this.view?this.view="hsl":"hsl"===this.view&&(this.view=1===this.hsl.a?"hex":"rgb")}round(e){return Math.round(e)}handleChange({data:e,$event:i}){if(e.hex){if(function tBe(t){return new lx(t).isValid}(e.hex)){const r=new lx(e.hex);this.onChange.emit({data:{hex:this.disableAlpha?r.toHex():r.toHex8(),source:"hex"},$event:i})}}else if(e.r||e.g||e.b)this.onChange.emit({data:{r:e.r||this.rgb.r,g:e.g||this.rgb.g,b:e.b||this.rgb.b,source:"rgb"},$event:i});else if(e.a)e.a<0?e.a=0:e.a>1&&(e.a=1),this.disableAlpha&&(e.a=1),this.onChange.emit({data:{h:this.hsl.h,s:this.hsl.s,l:this.hsl.l,a:Math.round(100*e.a)/100,source:"rgb"},$event:i});else if(e.h||e.s||e.l){const r=e.s&&e.s.replace("%",""),o=e.l&&e.l.replace("%","");this.onChange.emit({data:{h:e.h||this.hsl.h,s:Number(r||this.hsl.s),l:Number(o||this.hsl.l),source:"hsl"},$event:i})}}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275cmp=At({type:t,selectors:[["color-chrome-fields"]],inputs:{disableAlpha:"disableAlpha",hsl:"hsl",rgb:"rgb",hex:"hex"},outputs:{onChange:"onChange"},decls:13,vars:3,consts:[["icon",""],["iconUp",""],["iconDown",""],[1,"chrome-wrap"],[1,"chrome-fields"],[3,"ngIf"],[1,"chrome-toggle"],[1,"chrome-icon",3,"click"],["viewBox","0 0 24 24",1,"chrome-toggle-svg"],["fill","#333","d","M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z"],["fill","#333","d","M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15Z"],[1,"chrome-field"],["label","hex",3,"onChange","value"],["label","r",3,"onChange","value"],["label","g",3,"onChange","value"],["label","b",3,"onChange","value"],["label","a",3,"style","value","arrowOffset","onChange",4,"ngIf"],["label","a",3,"onChange","value","arrowOffset"],["label","h",3,"onChange","value"],["label","s",3,"onChange","value"],["label","l",3,"onChange","value"]],template:function(e,i){if(1&e){const r=kn();I(0,"div",3)(1,"div",4),ft(2,cBe,2,6,"ng-template",5)(3,uBe,8,19,"ng-template",5)(4,fBe,8,19,"ng-template",5),O(),I(5,"div",6)(6,"div",7,0),We("click",function(){return Ft(r),kt(i.toggleViews())}),bl(),I(8,"svg",8),_e(9,"path",9,1)(11,"path",10,2),O()()()()}2&e&&(H(2),ue("ngIf","hex"===i.view),H(),ue("ngIf","rgb"===i.view),H(),ue("ngIf","hsl"===i.view))},dependencies:[iBe,p0],styles:[".chrome-wrap[_ngcontent-%COMP%]{padding-top:16px;display:flex}.chrome-fields[_ngcontent-%COMP%]{flex:1;display:flex;margin-left:-6px}.chrome-field[_ngcontent-%COMP%]{padding-left:6px;width:100%}.chrome-toggle[_ngcontent-%COMP%]{width:32px;text-align:right;position:relative}.chrome-icon[_ngcontent-%COMP%]{margin-right:-4px;margin-top:12px;cursor:pointer;position:relative}.chrome-toggle-svg[_ngcontent-%COMP%]{width:24px;height:24px;border:1px transparent solid;border-radius:5px}.chrome-toggle-svg[_ngcontent-%COMP%]:hover{background:#eee}"],changeDetection:0}),t})(),ABe=(()=>{class t extends WJ{constructor(){super(),this.disableAlpha=!1,this.circle={width:"12px",height:"12px",borderRadius:"6px",boxShadow:"rgb(255, 255, 255) 0px 0px 0px 1px inset",transform:"translate(-6px, -8px)"},this.pointer={width:"12px",height:"12px",borderRadius:"6px",transform:"translate(-6px, -2px)",backgroundColor:"rgb(248, 248, 248)",boxShadow:"0 1px 4px 0 rgba(0, 0, 0, 0.37)"}}afterValidChange(){this.activeBackground=`rgba(${this.rgb.r}, ${this.rgb.g}, ${this.rgb.b}, ${this.disableAlpha?1:this.rgb.a})`}handleValueChange({data:e,$event:i}){this.handleChange(e,i)}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275cmp=At({type:t,selectors:[["color-chrome"]],inputs:{disableAlpha:"disableAlpha"},features:[ni([{provide:Fs,useExisting:hi(()=>t),multi:!0},{provide:WJ,useExisting:hi(()=>t)}]),di],decls:14,vars:16,consts:[[1,"saturation"],[3,"onChange","hsl","hsv","circle"],[1,"chrome-body"],[1,"chrome-controls"],[1,"chrome-color"],[1,"chrome-swatch"],[1,"chrome-active"],[1,"chrome-toggles"],[1,"chrome-hue"],[3,"onChange","radius","hsl","pointer"],["class","chrome-alpha",4,"ngIf"],[3,"onChange","rgb","hsl","hex","disableAlpha"],[1,"chrome-alpha"],[3,"onChange","radius","rgb","hsl","pointer"]],template:function(e,i){1&e&&(I(0,"div")(1,"div",0)(2,"color-saturation",1),We("onChange",function(o){return i.handleValueChange(o)}),O()(),I(3,"div",2)(4,"div",3)(5,"div",4)(6,"div",5),_e(7,"div",6)(8,"color-checkboard"),O()(),I(9,"div",7)(10,"div",8)(11,"color-hue",9),We("onChange",function(o){return i.handleValueChange(o)}),O()(),ft(12,mBe,2,4,"div",10),O()(),I(13,"color-chrome-fields",11),We("onChange",function(o){return i.handleValueChange(o)}),O()()()),2&e&&(Uu("chrome-picker ",i.className,""),H(2),ue("hsl",i.hsl)("hsv",i.hsv)("circle",i.circle),H(5),Fi("background",i.activeBackground),H(4),ue("radius",2)("hsl",i.hsl)("pointer",i.pointer),H(),ue("ngIf",!i.disableAlpha),H(),ue("rgb",i.rgb)("hsl",i.hsl)("hex",i.hex)("disableAlpha",i.disableAlpha))},dependencies:()=>[aBe,zJ,oBe,JIe,pBe,p0],styles:['.chrome-picker[_ngcontent-%COMP%]{background:#fff;border-radius:2px;box-shadow:0 0 2px #0000004d,0 4px 8px #0000004d;box-sizing:initial;width:225px;font-family:"Menlo"}.chrome-controls[_ngcontent-%COMP%]{display:flex}.chrome-color[_ngcontent-%COMP%]{width:42px}.chrome-body[_ngcontent-%COMP%]{padding:14px 14px 12px}.chrome-active[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;border-radius:20px;box-shadow:inset 0 0 0 1px #0000001a;z-index:2}.chrome-swatch[_ngcontent-%COMP%]{width:28px;height:28px;border-radius:15px;position:relative;overflow:hidden}.saturation[_ngcontent-%COMP%]{width:100%;padding-bottom:55%;position:relative;border-radius:2px 2px 0 0;overflow:hidden}.chrome-toggles[_ngcontent-%COMP%]{flex:1}.chrome-hue[_ngcontent-%COMP%]{height:10px;position:relative;margin-bottom:8px}.chrome-alpha[_ngcontent-%COMP%]{height:10px;position:relative}'],changeDetection:0}),t})(),gBe=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Bt({type:t}),t.\u0275inj=Tt({imports:[[An,eBe,GJ,rBe,sBe,lBe]]}),t})();function $J(t,n){return n?e=>ZM(n.pipe(qo(1),cq()),e.pipe($J(t))):If((e,i)=>Go(t(e,i)).pipe(qo(1),function bBe(t){return Et(()=>t)}(e)))}function jJ(t,n=M0){const e=MR(t,n);return $J(()=>e)}const _Be=["mat-menu-item",""],vBe=[[["mat-icon"],["","matMenuItemIcon",""]],"*"],yBe=["mat-icon, [matMenuItemIcon]","*"];function wBe(t,n){1&t&&(bl(),I(0,"svg",2),_e(1,"polygon",3),O())}const xBe=["*"];function CBe(t,n){if(1&t){const e=kn();I(0,"div",0),We("keydown",function(r){return Ft(e),kt(He()._handleKeydown(r))})("click",function(){return Ft(e),kt(He().closed.emit("click"))})("@transformMenu.start",function(r){return Ft(e),kt(He()._onAnimationStart(r))})("@transformMenu.done",function(r){return Ft(e),kt(He()._onAnimationDone(r))}),I(1,"div",1),zn(2),O()()}if(2&t){const e=He();ue("id",e.panelId)("ngClass",e._classList)("@transformMenu",e._panelAnimationState),oi("aria-label",e.ariaLabel||null)("aria-labelledby",e.ariaLabelledby||null)("aria-describedby",e.ariaDescribedby||null)}}const mN=new ot("MAT_MENU_PANEL");let pF=(()=>{class t{constructor(e,i,r,o,s){this._elementRef=e,this._document=i,this._focusMonitor=r,this._parentMenu=o,this._changeDetectorRef=s,this.role="menuitem",this.disabled=!1,this.disableRipple=!1,this._hovered=new Yt,this._focused=new Yt,this._highlighted=!1,this._triggersSubmenu=!1,o?.addItem?.(this)}focus(e,i){this._focusMonitor&&e?this._focusMonitor.focusVia(this._getHostElement(),e,i):this._getHostElement().focus(i),this._focused.next(this)}ngAfterViewInit(){this._focusMonitor&&this._focusMonitor.monitor(this._elementRef,!1)}ngOnDestroy(){this._focusMonitor&&this._focusMonitor.stopMonitoring(this._elementRef),this._parentMenu&&this._parentMenu.removeItem&&this._parentMenu.removeItem(this),this._hovered.complete(),this._focused.complete()}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._elementRef.nativeElement}_checkDisabled(e){this.disabled&&(e.preventDefault(),e.stopPropagation())}_handleMouseEnter(){this._hovered.next(this)}getLabel(){const e=this._elementRef.nativeElement.cloneNode(!0),i=e.querySelectorAll("mat-icon, .material-icons");for(let r=0;r enter",tc("120ms cubic-bezier(0, 0, 0.2, 1)",Do({opacity:1,transform:"scale(1)"}))),Tl("* => void",tc("100ms 25ms linear",Do({opacity:0})))]),fadeInItems:sh("fadeInItems",[nc("showing",Do({opacity:1})),Tl("void => *",[Do({opacity:0}),tc("400ms 100ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])};let MBe=0;const SBe=new ot("mat-menu-default-options",{providedIn:"root",factory:function TBe(){return{overlapTrigger:!1,xPosition:"after",yPosition:"below",backdropClass:"cdk-overlay-transparent-backdrop"}}});let su=(()=>{class t{get xPosition(){return this._xPosition}set xPosition(e){this._xPosition=e,this.setPositionClasses()}get yPosition(){return this._yPosition}set yPosition(e){this._yPosition=e,this.setPositionClasses()}set panelClass(e){const i=this._previousPanelClass;i&&i.length&&i.split(" ").forEach(r=>{this._classList[r]=!1}),this._previousPanelClass=e,e&&e.length&&(e.split(" ").forEach(r=>{this._classList[r]=!0}),this._elementRef.nativeElement.className="")}get classList(){return this.panelClass}set classList(e){this.panelClass=e}constructor(e,i,r,o){this._elementRef=e,this._ngZone=i,this._changeDetectorRef=o,this._elevationPrefix="mat-elevation-z",this._baseElevation=8,this._directDescendantItems=new Lu,this._classList={},this._panelAnimationState="void",this._animationDone=new Yt,this.closed=new Ln,this.close=this.closed,this.panelId="mat-menu-panel-"+MBe++,this.overlayPanelClass=r.overlayPanelClass||"",this._xPosition=r.xPosition,this._yPosition=r.yPosition,this.backdropClass=r.backdropClass,this.overlapTrigger=r.overlapTrigger,this.hasBackdrop=r.hasBackdrop}ngOnInit(){this.setPositionClasses()}ngAfterContentInit(){this._updateDirectDescendants(),this._keyManager=new VR(this._directDescendantItems).withWrap().withTypeAhead().withHomeAndEnd(),this._keyManager.tabOut.subscribe(()=>this.closed.emit("tab")),this._directDescendantItems.changes.pipe(Qd(this._directDescendantItems),Bf(e=>Sl(...e.map(i=>i._focused)))).subscribe(e=>this._keyManager.updateActiveItem(e)),this._directDescendantItems.changes.subscribe(e=>{const i=this._keyManager;if("enter"===this._panelAnimationState&&i.activeItem?._hasFocus()){const r=e.toArray(),o=Math.max(0,Math.min(r.length-1,i.activeItemIndex||0));r[o]&&!r[o].disabled?i.setActiveItem(o):i.setNextItemActive()}})}ngOnDestroy(){this._keyManager?.destroy(),this._directDescendantItems.destroy(),this.closed.complete(),this._firstItemFocusSubscription?.unsubscribe()}_hovered(){return this._directDescendantItems.changes.pipe(Qd(this._directDescendantItems),Bf(i=>Sl(...i.map(r=>r._hovered))))}addItem(e){}removeItem(e){}_handleKeydown(e){const i=e.keyCode,r=this._keyManager;switch(i){case 27:Pc(e)||(e.preventDefault(),this.closed.emit("keydown"));break;case 37:this.parentMenu&&"ltr"===this.direction&&this.closed.emit("keydown");break;case 39:this.parentMenu&&"rtl"===this.direction&&this.closed.emit("keydown");break;default:return(38===i||40===i)&&r.setFocusOrigin("keyboard"),void r.onKeydown(e)}e.stopPropagation()}focusFirstItem(e="program"){this._firstItemFocusSubscription?.unsubscribe(),this._firstItemFocusSubscription=this._ngZone.onStable.pipe(qo(1)).subscribe(()=>{let i=null;if(this._directDescendantItems.length&&(i=this._directDescendantItems.first._getHostElement().closest('[role="menu"]')),!i||!i.contains(document.activeElement)){const r=this._keyManager;r.setFocusOrigin(e).setFirstItemActive(),!r.activeItem&&i&&i.focus()}})}resetActiveItem(){this._keyManager.setActiveItem(-1)}setElevation(e){const i=Math.min(this._baseElevation+e,24),r=`${this._elevationPrefix}${i}`,o=Object.keys(this._classList).find(s=>s.startsWith(this._elevationPrefix));(!o||o===this._previousElevation)&&(this._previousElevation&&(this._classList[this._previousElevation]=!1),this._classList[r]=!0,this._previousElevation=r)}setPositionClasses(e=this.xPosition,i=this.yPosition){const r=this._classList;r["mat-menu-before"]="before"===e,r["mat-menu-after"]="after"===e,r["mat-menu-above"]="above"===i,r["mat-menu-below"]="below"===i,this._changeDetectorRef?.markForCheck()}_startAnimation(){this._panelAnimationState="enter"}_resetAnimation(){this._panelAnimationState="void"}_onAnimationDone(e){this._animationDone.next(e),this._isAnimating=!1}_onAnimationStart(e){this._isAnimating=!0,"enter"===e.toState&&0===this._keyManager.activeItemIndex&&(e.element.scrollTop=0)}_updateDirectDescendants(){this._allItems.changes.pipe(Qd(this._allItems)).subscribe(e=>{this._directDescendantItems.reset(e.filter(i=>i._parentMenu===this)),this._directDescendantItems.notifyOnChanges()})}static{this.\u0275fac=function(i){return new(i||t)(W(Un),W(Fn),W(SBe),W(Ao))}}static{this.\u0275cmp=At({type:t,selectors:[["mat-menu"]],contentQueries:function(i,r,o){if(1&i&&(Ir(o,EBe,5),Ir(o,pF,5),Ir(o,pF,4)),2&i){let s;mn(s=pn())&&(r.lazyContent=s.first),mn(s=pn())&&(r._allItems=s),mn(s=pn())&&(r.items=s)}},viewQuery:function(i,r){if(1&i&&ti(Cl,5),2&i){let o;mn(o=pn())&&(r.templateRef=o.first)}},hostVars:3,hostBindings:function(i,r){2&i&&oi("aria-label",null)("aria-labelledby",null)("aria-describedby",null)},inputs:{backdropClass:"backdropClass",ariaLabel:[bt.None,"aria-label","ariaLabel"],ariaLabelledby:[bt.None,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[bt.None,"aria-describedby","ariaDescribedby"],xPosition:"xPosition",yPosition:"yPosition",overlapTrigger:[bt.HasDecoratorInputTransform,"overlapTrigger","overlapTrigger",qn],hasBackdrop:[bt.HasDecoratorInputTransform,"hasBackdrop","hasBackdrop",e=>null==e?null:qn(e)],panelClass:[bt.None,"class","panelClass"],classList:"classList"},outputs:{closed:"closed",close:"close"},exportAs:["matMenu"],standalone:!0,features:[ni([{provide:mN,useExisting:t}]),Ho,xr],ngContentSelectors:xBe,decls:1,vars:0,consts:[["tabindex","-1","role","menu",1,"mat-mdc-menu-panel","mat-mdc-elevation-specific",3,"keydown","click","id","ngClass"],[1,"mat-mdc-menu-content"]],template:function(i,r){1&i&&(mo(),ft(0,CBe,3,6,"ng-template"))},dependencies:[Rd],styles:['mat-menu{display:none}.mat-mdc-menu-content{margin:0;padding:8px 0;list-style-type:none}.mat-mdc-menu-content:focus{outline:none}.mat-mdc-menu-content,.mat-mdc-menu-content .mat-mdc-menu-item .mat-mdc-menu-item-text{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;flex:1;white-space:normal;font-family:var(--mat-menu-item-label-text-font);line-height:var(--mat-menu-item-label-text-line-height);font-size:var(--mat-menu-item-label-text-size);letter-spacing:var(--mat-menu-item-label-text-tracking);font-weight:var(--mat-menu-item-label-text-weight)}.mat-mdc-menu-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;box-sizing:border-box;outline:0;border-radius:var(--mat-menu-container-shape);background-color:var(--mat-menu-container-color);will-change:transform,opacity}.mat-mdc-menu-panel.ng-animating{pointer-events:none}.cdk-high-contrast-active .mat-mdc-menu-panel{outline:solid 1px}.mat-divider{color:var(--mat-menu-divider-color);margin-bottom:var(--mat-menu-divider-bottom-spacing);margin-top:var(--mat-menu-divider-top-spacing)}.mat-mdc-menu-item{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;padding-left:var(--mat-menu-item-leading-spacing);padding-right:var(--mat-menu-item-trailing-spacing);-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);cursor:pointer;width:100%;text-align:left;box-sizing:border-box;color:inherit;font-size:inherit;background:none;text-decoration:none;margin:0;align-items:center;min-height:48px}.mat-mdc-menu-item:focus{outline:none}[dir=rtl] .mat-mdc-menu-item,.mat-mdc-menu-item[dir=rtl]{padding-left:var(--mat-menu-item-trailing-spacing);padding-right:var(--mat-menu-item-leading-spacing)}.mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon]){padding-left:var(--mat-menu-item-with-icon-leading-spacing);padding-right:var(--mat-menu-item-with-icon-trailing-spacing)}[dir=rtl] .mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon]),.mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon])[dir=rtl]{padding-left:var(--mat-menu-item-with-icon-trailing-spacing);padding-right:var(--mat-menu-item-with-icon-leading-spacing)}.mat-mdc-menu-item::-moz-focus-inner{border:0}.mat-mdc-menu-item,.mat-mdc-menu-item:visited,.mat-mdc-menu-item:link{color:var(--mat-menu-item-label-text-color)}.mat-mdc-menu-item .mat-icon-no-color,.mat-mdc-menu-item .mat-mdc-menu-submenu-icon{color:var(--mat-menu-item-icon-color)}.mat-mdc-menu-item[disabled]{cursor:default;opacity:.38}.mat-mdc-menu-item[disabled]::after{display:block;position:absolute;content:"";top:0;left:0;bottom:0;right:0}.mat-mdc-menu-item .mat-icon{flex-shrink:0;margin-right:var(--mat-menu-item-spacing);height:var(--mat-menu-item-icon-size);width:var(--mat-menu-item-icon-size)}[dir=rtl] .mat-mdc-menu-item{text-align:right}[dir=rtl] .mat-mdc-menu-item .mat-icon{margin-right:0;margin-left:var(--mat-menu-item-spacing)}.mat-mdc-menu-item:not([disabled]):hover{background-color:var(--mat-menu-item-hover-state-layer-color)}.mat-mdc-menu-item:not([disabled]).cdk-program-focused,.mat-mdc-menu-item:not([disabled]).cdk-keyboard-focused,.mat-mdc-menu-item:not([disabled]).mat-mdc-menu-item-highlighted{background-color:var(--mat-menu-item-focus-state-layer-color)}.cdk-high-contrast-active .mat-mdc-menu-item{margin-top:1px}.mat-mdc-menu-submenu-icon{width:var(--mat-menu-item-icon-size);height:10px;fill:currentColor;padding-left:var(--mat-menu-item-spacing)}[dir=rtl] .mat-mdc-menu-submenu-icon{right:auto;padding-right:var(--mat-menu-item-spacing);padding-left:0}.cdk-high-contrast-active .mat-mdc-menu-submenu-icon{fill:CanvasText}.mat-mdc-menu-item .mat-mdc-menu-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}'],encapsulation:2,data:{animation:[AF.transformMenu,AF.fadeInItems]},changeDetection:0})}}return t})();const KJ=new ot("mat-menu-scroll-strategy",{providedIn:"root",factory:()=>{const t=Ut(_s);return()=>t.scrollStrategies.reposition()}}),kBe={provide:KJ,deps:[_s],useFactory:function FBe(t){return()=>t.scrollStrategies.reposition()}},XJ=Bp({passive:!0});let Qb=(()=>{class t{get _deprecatedMatMenuTriggerFor(){return this.menu}set _deprecatedMatMenuTriggerFor(e){this.menu=e}get menu(){return this._menu}set menu(e){e!==this._menu&&(this._menu=e,this._menuCloseSubscription.unsubscribe(),e&&(this._menuCloseSubscription=e.close.subscribe(i=>{this._destroyMenu(i),("click"===i||"tab"===i)&&this._parentMaterialMenu&&this._parentMaterialMenu.closed.emit(i)})),this._menuItemInstance?._setTriggersSubmenu(this.triggersSubmenu()))}constructor(e,i,r,o,s,a,l,c,d){this._overlay=e,this._element=i,this._viewContainerRef=r,this._menuItemInstance=a,this._dir=l,this._focusMonitor=c,this._ngZone=d,this._overlayRef=null,this._menuOpen=!1,this._closingActionsSubscription=on.EMPTY,this._hoverSubscription=on.EMPTY,this._menuCloseSubscription=on.EMPTY,this._changeDetectorRef=Ut(Ao),this._handleTouchStart=u=>{GR(u)||(this._openedBy="touch")},this._openedBy=void 0,this.restoreFocus=!0,this.menuOpened=new Ln,this.onMenuOpen=this.menuOpened,this.menuClosed=new Ln,this.onMenuClose=this.menuClosed,this._scrollStrategy=o,this._parentMaterialMenu=s instanceof su?s:void 0,i.nativeElement.addEventListener("touchstart",this._handleTouchStart,XJ)}ngAfterContentInit(){this._handleHover()}ngOnDestroy(){this._overlayRef&&(this._overlayRef.dispose(),this._overlayRef=null),this._element.nativeElement.removeEventListener("touchstart",this._handleTouchStart,XJ),this._menuCloseSubscription.unsubscribe(),this._closingActionsSubscription.unsubscribe(),this._hoverSubscription.unsubscribe()}get menuOpen(){return this._menuOpen}get dir(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}triggersSubmenu(){return!!(this._menuItemInstance&&this._parentMaterialMenu&&this.menu)}toggleMenu(){return this._menuOpen?this.closeMenu():this.openMenu()}openMenu(){const e=this.menu;if(this._menuOpen||!e)return;const i=this._createOverlay(e),r=i.getConfig(),o=r.positionStrategy;this._setPosition(e,o),r.hasBackdrop=null==e.hasBackdrop?!this.triggersSubmenu():e.hasBackdrop,i.attach(this._getPortal(e)),e.lazyContent&&e.lazyContent.attach(this.menuData),this._closingActionsSubscription=this._menuClosingActions().subscribe(()=>this.closeMenu()),this._initMenu(e),e instanceof su&&(e._startAnimation(),e._directDescendantItems.changes.pipe(Ur(e.close)).subscribe(()=>{o.withLockedPosition(!1).reapplyLastPosition(),o.withLockedPosition(!0)}))}closeMenu(){this.menu?.close.emit()}focus(e,i){this._focusMonitor&&e?this._focusMonitor.focusVia(this._element,e,i):this._element.nativeElement.focus(i)}updatePosition(){this._overlayRef?.updatePosition()}_destroyMenu(e){if(!this._overlayRef||!this.menuOpen)return;const i=this.menu;this._closingActionsSubscription.unsubscribe(),this._overlayRef.detach(),this.restoreFocus&&("keydown"===e||!this._openedBy||!this.triggersSubmenu())&&this.focus(this._openedBy),this._openedBy=void 0,i instanceof su?(i._resetAnimation(),i.lazyContent?i._animationDone.pipe(Ii(r=>"void"===r.toState),qo(1),Ur(i.lazyContent._attached)).subscribe({next:()=>i.lazyContent.detach(),complete:()=>this._setIsMenuOpen(!1)}):this._setIsMenuOpen(!1)):(this._setIsMenuOpen(!1),i?.lazyContent?.detach())}_initMenu(e){e.parentMenu=this.triggersSubmenu()?this._parentMaterialMenu:void 0,e.direction=this.dir,this._setMenuElevation(e),e.focusFirstItem(this._openedBy||"program"),this._setIsMenuOpen(!0)}_setMenuElevation(e){if(e.setElevation){let i=0,r=e.parentMenu;for(;r;)i++,r=r.parentMenu;e.setElevation(i)}}_setIsMenuOpen(e){e!==this._menuOpen&&(this._menuOpen=e,this._menuOpen?this.menuOpened.emit():this.menuClosed.emit(),this.triggersSubmenu()&&this._menuItemInstance._setHighlighted(e),this._changeDetectorRef.markForCheck())}_createOverlay(e){if(!this._overlayRef){const i=this._getOverlayConfig(e);this._subscribeToPositions(e,i.positionStrategy),this._overlayRef=this._overlay.create(i),this._overlayRef.keydownEvents().subscribe()}return this._overlayRef}_getOverlayConfig(e){return new KM({positionStrategy:this._overlay.position().flexibleConnectedTo(this._element).withLockedPosition().withGrowAfterOpen().withTransformOriginOn(".mat-menu-panel, .mat-mdc-menu-panel"),backdropClass:e.backdropClass||"cdk-overlay-transparent-backdrop",panelClass:e.overlayPanelClass,scrollStrategy:this._scrollStrategy(),direction:this._dir})}_subscribeToPositions(e,i){e.setPositionClasses&&i.positionChanges.subscribe(r=>{const o="start"===r.connectionPair.overlayX?"after":"before",s="top"===r.connectionPair.overlayY?"below":"above";this._ngZone?this._ngZone.run(()=>e.setPositionClasses(o,s)):e.setPositionClasses(o,s)})}_setPosition(e,i){let[r,o]="before"===e.xPosition?["end","start"]:["start","end"],[s,a]="above"===e.yPosition?["bottom","top"]:["top","bottom"],[l,c]=[s,a],[d,u]=[r,o],h=0;if(this.triggersSubmenu()){if(u=r="before"===e.xPosition?"start":"end",o=d="end"===r?"start":"end",this._parentMaterialMenu){if(null==this._parentInnerPadding){const m=this._parentMaterialMenu.items.first;this._parentInnerPadding=m?m._getHostElement().offsetTop:0}h="bottom"===s?this._parentInnerPadding:-this._parentInnerPadding}}else e.overlapTrigger||(l="top"===s?"bottom":"top",c="top"===a?"bottom":"top");i.withPositions([{originX:r,originY:l,overlayX:d,overlayY:s,offsetY:h},{originX:o,originY:l,overlayX:u,overlayY:s,offsetY:h},{originX:r,originY:c,overlayX:d,overlayY:a,offsetY:-h},{originX:o,originY:c,overlayX:u,overlayY:a,offsetY:-h}])}_menuClosingActions(){const e=this._overlayRef.backdropClick(),i=this._overlayRef.detachments();return Sl(e,this._parentMaterialMenu?this._parentMaterialMenu.closed:nl(),this._parentMaterialMenu?this._parentMaterialMenu._hovered().pipe(Ii(s=>s!==this._menuItemInstance),Ii(()=>this._menuOpen)):nl(),i)}_handleMousedown(e){zR(e)||(this._openedBy=0===e.button?"mouse":void 0,this.triggersSubmenu()&&e.preventDefault())}_handleKeydown(e){const i=e.keyCode;(13===i||32===i)&&(this._openedBy="keyboard"),this.triggersSubmenu()&&(39===i&&"ltr"===this.dir||37===i&&"rtl"===this.dir)&&(this._openedBy="keyboard",this.openMenu())}_handleClick(e){this.triggersSubmenu()?(e.stopPropagation(),this.openMenu()):this.toggleMenu()}_handleHover(){!this.triggersSubmenu()||!this._parentMaterialMenu||(this._hoverSubscription=this._parentMaterialMenu._hovered().pipe(Ii(e=>e===this._menuItemInstance&&!e.disabled),jJ(0,ER)).subscribe(()=>{this._openedBy="mouse",this.menu instanceof su&&this.menu._isAnimating?this.menu._animationDone.pipe(qo(1),jJ(0,ER),Ur(this._parentMaterialMenu._hovered())).subscribe(()=>this.openMenu()):this.openMenu()}))}_getPortal(e){return(!this._portal||this._portal.templateRef!==e.templateRef)&&(this._portal=new m1(e.templateRef,this._viewContainerRef)),this._portal}static{this.\u0275fac=function(i){return new(i||t)(W(_s),W(Un),W(va),W(KJ),W(mN,8),W(pF,10),W(th,8),W(ih),W(Fn))}}static{this.\u0275dir=zt({type:t,selectors:[["","mat-menu-trigger-for",""],["","matMenuTriggerFor",""]],hostAttrs:[1,"mat-mdc-menu-trigger"],hostVars:3,hostBindings:function(i,r){1&i&&We("click",function(s){return r._handleClick(s)})("mousedown",function(s){return r._handleMousedown(s)})("keydown",function(s){return r._handleKeydown(s)}),2&i&&oi("aria-haspopup",r.menu?"menu":null)("aria-expanded",r.menuOpen)("aria-controls",r.menuOpen?r.menu.panelId:null)},inputs:{_deprecatedMatMenuTriggerFor:[bt.None,"mat-menu-trigger-for","_deprecatedMatMenuTriggerFor"],menu:[bt.None,"matMenuTriggerFor","menu"],menuData:[bt.None,"matMenuTriggerData","menuData"],restoreFocus:[bt.None,"matMenuTriggerRestoreFocus","restoreFocus"]},outputs:{menuOpened:"menuOpened",onMenuOpen:"onMenuOpen",menuClosed:"menuClosed",onMenuClose:"onMenuClose"},exportAs:["matMenuTrigger"],standalone:!0})}}return t})(),pN=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({providers:[kBe],imports:[An,P0,Ki,g1,h1,Ki]})}}return t})();const IBe=["colorPickerMenuTrigger"],BBe=(t,n)=>({isOpen:t,isHovered:n});let YJ=(()=>{class t{constructor(){this.openXPosition="after",this.onColorChange=new Ln,this.isHovered=!1,this.isClickInside=!1}handleChangeComplete(e){this.onColorChange.emit(e)}onMouseEnter(){this.isHovered=!0}onMouseLeave(){this.isHovered=!1}onClick(){this.isClickInside=!0,this.colorPickerMenuTrigger.openMenu()}handleDocumentClick(){!this.isClickInside&&this.colorPickerMenuTrigger.menuOpen&&this.colorPickerMenuTrigger.closeMenu(),this.isClickInside=!1}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=At({type:t,selectors:[["cc-color-picker"]],viewQuery:function(i,r){if(1&i&&ti(IBe,5),2&i){let o;mn(o=pn())&&(r.colorPickerMenuTrigger=o.first)}},hostBindings:function(i,r){1&i&&We("mouseenter",function(){return r.onMouseEnter()})("mouseleave",function(){return r.onMouseLeave()})("click",function(){return r.onClick()})("click",function(){return r.handleDocumentClick()},!1,_U)},inputs:{hexColor:"hexColor",openXPosition:"openXPosition",triggerTemplate:"triggerTemplate"},outputs:{onColorChange:"onColorChange"},decls:6,vars:10,consts:[["colorPickerMenuTrigger","matMenuTrigger"],["menu","matMenu"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],[3,"matMenuTriggerFor"],[1,"cc-color-picker-menu",3,"xPosition","hasBackdrop"],["role","colorpicker",3,"click","onChangeComplete","disableAlpha","color"]],template:function(i,r){if(1&i){const o=kn();a0(0,2),_e(1,"span",3,0),I(3,"mat-menu",4,1)(5,"color-chrome",5),We("click",function(a){return Ft(o),kt(a.stopPropagation())})("onChangeComplete",function(a){return Ft(o),kt(r.handleChangeComplete(a.color.hex))}),O()()}if(2&i){const o=Co(2),s=Co(4);ue("ngTemplateOutlet",r.triggerTemplate)("ngTemplateOutletContext",tl(7,BBe,o.menuOpen,r.isHovered)),H(),ue("matMenuTriggerFor",s),H(2),ue("xPosition",r.openXPosition)("hasBackdrop",!1),H(2),ue("disableAlpha",!0)("color",r.hexColor)}},dependencies:[py,ABe,su,Qb],encapsulation:2})}}return t})(),RBe=(()=>{class t{transform(e){return(t=>(299*Number.parseInt(t.slice(1,3),16)+587*Number.parseInt(t.slice(3,5),16)+114*Number.parseInt(t.slice(5,7),16))/1e3>=128?"black":"white")(e)}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275pipe=lr({name:"readableColorForBackground",type:t,pure:!0})}}return t})();function LBe(t,n){1&t&&_e(0,"br")}function PBe(t,n){if(1&t&&(I(0,"span"),ve(1),ft(2,LBe,1,0,"br"),O()),2&t){const e=n.$implicit,i=n.$index,r=n.$count;H(),an(" ",e," "),H(),yt(2,i!==r-1?2:-1)}}function NBe(t,n){if(1&t&&(I(0,"div",2)(1,"div",3),_e(2,"span",4)(3,"span",5),ze(4,"readableColorForBackground"),O(),I(5,"div",6),yr(6,PBe,3,2,"span",null,Sr),O()()),2&t){const e=n.isOpen,i=n.isHovered,r=He();H(2),Fi("background-color",r.hexColor),H(),Fi("color",tt(4,6,r.hexColor))("opacity",i||e?"1":"0"),H(3),wr(r.labels)}}let AN=(()=>{class t{constructor(){this.onColorChange=new Ln}handleColorChange(e){this.onColorChange.emit(e)}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=At({type:t,selectors:[["cc-labelled-color-picker"]],inputs:{hexColor:"hexColor",labels:"labels"},outputs:{onColorChange:"onColorChange"},decls:3,vars:3,consts:[["colorPickerTriggerTemplate",""],[3,"onColorChange","hexColor","openXPosition","triggerTemplate"],[1,"cc-labelled-color-picker-container"],[1,"cc-color-swatch-container"],[1,"cc-color-swatch"],[1,"cc-color-brush","fa","fa-paint-brush"],[1,"cc-labelled-color-picker-label"]],template:function(i,r){if(1&i){const o=kn();I(0,"cc-color-picker",1),We("onColorChange",function(a){return Ft(o),kt(r.handleColorChange(a))}),O(),ft(1,NBe,8,8,"ng-template",null,0,Mf)}if(2&i){const o=Co(2);ue("hexColor",r.hexColor)("openXPosition","before")("triggerTemplate",o)}},dependencies:[YJ,RBe],styles:["cc-labelled-color-picker .cc-labelled-color-picker-container{display:flex;height:40px;align-items:center}cc-labelled-color-picker .cc-labelled-color-picker-container:hover{cursor:pointer}cc-labelled-color-picker .cc-labelled-color-picker-container .cc-color-swatch-container{position:relative;margin:0 11px;width:18px;height:18px}cc-labelled-color-picker .cc-labelled-color-picker-container .cc-color-swatch-container .cc-color-swatch{display:inline-block;width:inherit;height:inherit;border-radius:2px;border:1px solid black}cc-labelled-color-picker .cc-labelled-color-picker-container .cc-color-swatch-container .cc-color-brush{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);opacity:0}.mat-mdc-menu-panel.cc-color-picker-menu .mat-mdc-menu-content{padding:0}color-chrome .chrome-hue{margin-top:10px}\n"],encapsulation:2})}}return t})();function OBe(t,n){if(1&t){const e=kn();I(0,"cc-labelled-color-picker",1),We("onColorChange",function(r){const o=Ft(e).$implicit;return kt(He(2).handleColorChange(r,o.value))}),O()}if(2&t){const e=n.$implicit;ue("hexColor",e.key)("labels",e.value)}}function UBe(t,n){if(1&t&&(_e(0,"hr"),yr(1,OBe,1,2,"cc-labelled-color-picker",0,function XH(){return xt()[to][kr]}().trackMarkedPackage,!0),ze(3,"async"),ze(4,"keyvalue")),2&t){const e=He();H(),wr(po(4,2,tt(3,0,e.markedPackagesMap$),e.sortMarkedPackagesMap))}}let HBe=(()=>{class t{constructor(e){this.store=e,this.markedPackagesMap$=e.select(NIe),this.hasMarkedPackages$=this.markedPackagesMap$.pipe(Et(i=>Object.keys(i).length>0))}handleColorChange(e,i){this.store.dispatch(t1({packages:i.map(r=>({color:e,path:r}))}))}trackMarkedPackage(e,{value:i}){return i.join(",")}sortMarkedPackagesMap(e,i){return e.value[0].localeCompare(i.value[0])}static{this.\u0275fac=function(i){return new(i||t)(W(Wt))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-legend-marked-packages"]],decls:2,vars:3,consts:[[3,"hexColor","labels"],[3,"onColorChange","hexColor","labels"]],template:function(i,r){1&i&&(ft(0,UBe,5,5),ze(1,"async")),2&i&&yt(0,tt(1,1,r.hasMarkedPackages$)?0:-1)},dependencies:[AN,Gn,PE],styles:["cc-legend-marked-packages cc-labelled-color-picker{display:block}\n"],encapsulation:2})}}return t})();const ZJ=Xt(Pl,t=>t.colorRange);let VBe=(()=>{class t{transform(e,i,r,o){switch(e){case"positive":return"unary"===o?`${r.minValue} - ${r.maxValue}`:r.minValue===i.from?"-":r.maxValue===i.from?`${r.minValue} to ${this.formatNumber(i.from)}`:`${r.minValue} to ${this.formatNumber(i.from-1)}`;case"neutral":return i.from===i.to?"-":i.to===r.maxValue?`${this.formatNumber(i.from)} to ${this.formatNumber(i.to)}`:`${this.formatNumber(i.from)} to ${this.formatNumber(i.to-1)}`;case"negative":return r.maxValue===i.to?"-":`${this.formatNumber(i.to)} to ${this.formatNumber(r.maxValue)}`;case"positiveDelta":return"+\u0394 positive delta";case"negativeDelta":return"\u2013\u0394 negative delta";case"selected":return"selected";case"outgoingEdge":return"Outgoing Edge";case"incomingEdge":return"Incoming Edge"}}formatNumber(e){return(e||0).toLocaleString()}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275pipe=lr({name:"mapColorLabel",type:t,pure:!0})}}return t})();const QBe=t=>[t];let gN=(()=>{class t{constructor(e){this.store=e,this.colorMetric$=this.store.select(mm),this.mapColors$=this.store.select(Lb),this.colorRange$=this.store.select(ZJ),this.nodeMetricRange$=this.store.select(Ch)}handleColorChange(e){this.store.dispatch(ju({value:{[this.mapColorFor]:e}}))}static{this.\u0275fac=function(i){return new(i||t)(W(Wt))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-color-picker-for-map-color"]],inputs:{mapColorFor:"mapColorFor"},decls:6,vars:17,consts:[[3,"onColorChange","hexColor","labels"]],template:function(i,r){1&i&&(I(0,"cc-labelled-color-picker",0),ze(1,"async"),ze(2,"async"),ze(3,"async"),ze(4,"async"),ze(5,"mapColorLabel"),We("onColorChange",function(s){return r.handleColorChange(s)}),O()),2&i&&ue("hexColor",tt(1,2,r.mapColors$)[r.mapColorFor])("labels",function sV(t,n,e,i){return aV(xt(),Ts(),t,n,e,i)}(15,QBe,hV(5,10,r.mapColorFor,tt(2,4,r.colorRange$),tt(3,6,r.nodeMetricRange$),tt(4,8,r.colorMetric$))))},dependencies:[AN,Gn,VBe],encapsulation:2})}}return t})();function zBe(t,n){if(1&t&&(I(0,"a",2)(1,"span",3),ve(2),O(),ve(3),_e(4,"i",4),O()),2&t){const e=He(),i=He(2);ue("href",n,dp),H(2),ur(e),H(),an(" (",i.metricName,") ")}}function GBe(t,n){if(1&t&&(I(0,"span",3),ve(1),O(),ve(2)),2&t){const e=He(),i=He(2);H(),ur(e),H(),an(" (",i.metricName,") ")}}function qBe(t,n){if(1&t&&(iE(0,0),I(1,"div",1),ze(2,"attributeDescriptorTooltip"),ve(3),ft(4,zBe,5,3,"a",2)(5,GBe,3,2),O(),rE()),2&t){let e;const i=He(),r=He();H(),ue("title",po(2,3,i[r.metricName],r.metricName)),H(2),an(" ",r.metricSpecification," metric: "),H(),yt(4,(e=i[r.metricName].link)?4:5,e)}}function WBe(t,n){if(1&t&&(I(0,"span",3),ve(1),O(),ve(2)),2&t){const e=He(3);H(),ur(n),H(),an(" (",e.metricName,") ")}}function $Be(t,n){if(1&t&&(I(0,"span",3),ve(1),O()),2&t){const e=He(3);H(),an(" ",e.metricName," ")}}function jBe(t,n){if(1&t&&(I(0,"div"),ve(1),ft(2,WBe,3,2)(3,$Be,2,1),O()),2&t){let e;const i=He(2);H(),an(" ",i.metricSpecification," metric: "),H(),yt(2,(e=i.fallbackTitles.get(i.metricName))?2:3,e)}}function KBe(t,n){if(1&t&&ft(0,qBe,6,6,"ng-container",0)(1,jBe,4,2),2&t){let e;const i=n,r=He();yt(0,(e=null==i[r.metricName]?null:i[r.metricName].title)?0:1,e)}}let XBe=(()=>{class t{constructor(e){this.store=e,this.attributeDescriptors$=this.store.select(cF),this.fallbackTitles=Hb}static{this.\u0275fac=function(i){return new(i||t)(W(Wt))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-legend-block"]],inputs:{metricName:"metricName",metricSpecification:"metricSpecification"},decls:2,vars:3,consts:[[1,"legend-block"],[3,"title"],["target","_blank",3,"href"],[1,"bold"],[1,"fa","fa-external-link"]],template:function(i,r){if(1&i&&(ft(0,KBe,2,1),ze(1,"async")),2&i){let o;yt(0,(o=tt(1,1,r.attributeDescriptors$))?0:-1,o)}},dependencies:[Gn,hF],encapsulation:2})}}return t})();function YBe(t,n){1&t&&_e(0,"cc-legend-block",5),2&t&&ue("metricName",n)}function ZBe(t,n){if(1&t&&(I(0,"div"),_e(1,"cc-legend-block",3),ze(2,"async"),_e(3,"cc-legend-block",4),ze(4,"async"),ft(5,YBe,1,1,"cc-legend-block",5),ze(6,"async"),_e(7,"hr")(8,"cc-legend-block",6),ze(9,"async"),_e(10,"cc-color-picker-for-map-color",1)(11,"cc-color-picker-for-map-color",1)(12,"cc-color-picker-for-map-color",1),O()),2&t){let e;const i=He();H(),ue("metricName",tt(2,7,i.areaMetric$)),H(2),ue("metricName",tt(4,9,i.heightMetric$)),H(2),yt(5,(e=tt(6,11,i.edgeMetric$))?5:-1,e),H(3),ue("metricName",tt(9,13,i.colorMetric$)),H(2),ue("mapColorFor","positive"),H(),ue("mapColorFor","neutral"),H(),ue("mapColorFor","negative")}}function JBe(t,n){1&t&&(I(0,"div"),_e(1,"cc-color-picker-for-map-color",1)(2,"cc-color-picker-for-map-color",1),O()),2&t&&(H(),ue("mapColorFor","positiveDelta"),H(),ue("mapColorFor","negativeDelta"))}function eDe(t,n){1&t&&_e(0,"hr")(1,"cc-color-picker-for-map-color",1)(2,"cc-color-picker-for-map-color",1),2&t&&(H(),ue("mapColorFor","outgoingEdge"),H(),ue("mapColorFor","incomingEdge"))}let tDe=(()=>{class t{constructor(e,i){this.store=e,this.isAttributeSideBarVisibleService=i,this.isLegendVisible=!1,this.isDeltaState$=this.store.select(Am),this.heightMetric$=this.store.select(sx),this.areaMetric$=this.store.select(Ub),this.colorMetric$=this.store.select(mm),this.edgeMetric$=this.store.select(Mh)}toggleIsLegendVisible(){this.isLegendVisible=!this.isLegendVisible}static{this.\u0275fac=function(i){return new(i||t)(W(Wt),W(sF))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-legend-panel"]],decls:11,vars:14,consts:[["id","legend-panel",1,"block-wrapper"],[3,"mapColorFor"],["id","legend-panel-button","color","primary",1,"panel-button",3,"click","title"],["metricSpecification","Area",3,"metricName"],["metricSpecification","Height",3,"metricName"],["metricSpecification","Edge",3,"metricName"],["metricSpecification","Color",3,"metricName"]],template:function(i,r){1&i&&(I(0,"div",0),ft(1,ZBe,13,15,"div"),ze(2,"async"),ft(3,JBe,3,2),_e(4,"hr")(5,"cc-color-picker-for-map-color",1),ft(6,eDe,3,2),ze(7,"async"),_e(8,"cc-legend-marked-packages"),O(),I(9,"button",2),We("click",function(){return r.toggleIsLegendVisible()}),ve(10," LEGEND\n"),O()),2&i&&(xn("visible",r.isLegendVisible)("isAttributeSideBarVisible",r.isAttributeSideBarVisibleService.isOpen),H(),yt(1,tt(2,10,r.isDeltaState$)?3:1),H(4),ue("mapColorFor","selected"),H(),yt(6,tt(7,12,r.edgeMetric$)?6:-1),H(3),xn("isAttributeSideBarVisible",r.isAttributeSideBarVisibleService.isOpen),wa("title",r.isLegendVisible?"Hide panel":"Show panel"))},dependencies:[HBe,gN,XBe,Gn],styles:["cc-legend-panel .rotated-button,cc-legend-panel .panel-button{position:fixed;transform:rotate(90deg);border-radius:0 0 5px 5px;height:36px;right:-35px;color:#fff;-webkit-user-select:none;user-select:none;background-color:#1b9cfc}cc-legend-panel .rotated-button:hover,cc-legend-panel .panel-button:hover{background-color:#0374c9}cc-legend-panel .rotated-button.isAttributeSideBarVisible,cc-legend-panel .isAttributeSideBarVisible.panel-button{right:316px}cc-legend-panel .panel-button{margin:6px 8px;bottom:55px;width:88px}cc-legend-panel .block-wrapper{background-color:#fff;border:1px solid #cdcdcd;position:fixed;bottom:35px;padding:10px;right:40px;visibility:hidden;border-radius:5px;min-width:200px;max-width:30%}cc-legend-panel .block-wrapper.isAttributeSideBarVisible{right:390px}cc-legend-panel .block-wrapper.visible{visibility:visible}cc-legend-panel .block-wrapper hr{border-right-style:none;border-left-style:none;border-bottom-style:none;color:#000}cc-legend-panel .block-wrapper cc-legend-block a:link,cc-legend-panel .block-wrapper cc-legend-block a:visited{text-decoration:none;color:#000}cc-legend-panel .block-wrapper cc-legend-block a:hover{color:#00f;-webkit-text-decoration:solid;text-decoration:solid;text-decoration-line:underline}cc-legend-panel .block-wrapper cc-legend-block a:active{color:red}cc-legend-panel .block-wrapper cc-legend-block i.fa.fa-external-link{font-size:10px;min-width:10px;text-align:center}cc-legend-panel .block-wrapper cc-legend-block span{display:inline-block}cc-legend-panel .block-wrapper .bold{font-weight:600}cc-legend-panel .block-wrapper .cc-labelled-color-picker-container>.cc-labelled-color-picker-label{white-space:nowrap;text-overflow:ellipsis;direction:rtl}cc-legend-panel .block-wrapper .cc-labelled-color-picker-container>.cc-labelled-color-picker-label span{unicode-bidi:plaintext}\n"],encapsulation:2})}}return t})();const bN=Xt(Hr,t=>t.experimentalFeaturesEnabled),nDe=["*"],oDe=[[["","mat-card-avatar",""],["","matCardAvatar",""]],[["mat-card-title"],["mat-card-subtitle"],["","mat-card-title",""],["","mat-card-subtitle",""],["","matCardTitle",""],["","matCardSubtitle",""]],"*"],sDe=["[mat-card-avatar], [matCardAvatar]","mat-card-title, mat-card-subtitle,\n [mat-card-title], [mat-card-subtitle],\n [matCardTitle], [matCardSubtitle]","*"],aDe=new ot("MAT_CARD_CONFIG");let dx=(()=>{class t{constructor(e){this.appearance=e?.appearance||"raised"}static{this.\u0275fac=function(i){return new(i||t)(W(aDe,8))}}static{this.\u0275cmp=At({type:t,selectors:[["mat-card"]],hostAttrs:[1,"mat-mdc-card","mdc-card"],hostVars:4,hostBindings:function(i,r){2&i&&xn("mat-mdc-card-outlined","outlined"===r.appearance)("mdc-card--outlined","outlined"===r.appearance)},inputs:{appearance:"appearance"},exportAs:["matCard"],standalone:!0,features:[xr],ngContentSelectors:nDe,decls:1,vars:0,template:function(i,r){1&i&&(mo(),zn(0))},styles:['.mdc-card{display:flex;flex-direction:column;box-sizing:border-box}.mdc-card::after{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none;pointer-events:none}@media screen and (forced-colors: active){.mdc-card::after{border-color:CanvasText}}.mdc-card--outlined::after{border:none}.mdc-card__content{border-radius:inherit;height:100%}.mdc-card__media{position:relative;box-sizing:border-box;background-repeat:no-repeat;background-position:center;background-size:cover}.mdc-card__media::before{display:block;content:""}.mdc-card__media:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.mdc-card__media:last-child{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.mdc-card__media--square::before{margin-top:100%}.mdc-card__media--16-9::before{margin-top:56.25%}.mdc-card__media-content{position:absolute;top:0;right:0;bottom:0;left:0;box-sizing:border-box}.mdc-card__primary-action{display:flex;flex-direction:column;box-sizing:border-box;position:relative;outline:none;color:inherit;text-decoration:none;cursor:pointer;overflow:hidden}.mdc-card__primary-action:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.mdc-card__primary-action:last-child{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.mdc-card__actions{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;min-height:52px;padding:8px}.mdc-card__actions--full-bleed{padding:0}.mdc-card__action-buttons,.mdc-card__action-icons{display:flex;flex-direction:row;align-items:center;box-sizing:border-box}.mdc-card__action-icons{color:rgba(0, 0, 0, 0.6);flex-grow:1;justify-content:flex-end}.mdc-card__action-buttons+.mdc-card__action-icons{margin-left:16px;margin-right:0}[dir=rtl] .mdc-card__action-buttons+.mdc-card__action-icons,.mdc-card__action-buttons+.mdc-card__action-icons[dir=rtl]{margin-left:0;margin-right:16px}.mdc-card__action{display:inline-flex;flex-direction:row;align-items:center;box-sizing:border-box;justify-content:center;cursor:pointer;user-select:none}.mdc-card__action:focus{outline:none}.mdc-card__action--button{margin-left:0;margin-right:8px;padding:0 8px}[dir=rtl] .mdc-card__action--button,.mdc-card__action--button[dir=rtl]{margin-left:8px;margin-right:0}.mdc-card__action--button:last-child{margin-left:0;margin-right:0}[dir=rtl] .mdc-card__action--button:last-child,.mdc-card__action--button:last-child[dir=rtl]{margin-left:0;margin-right:0}.mdc-card__actions--full-bleed .mdc-card__action--button{justify-content:space-between;width:100%;height:auto;max-height:none;margin:0;padding:8px 16px;text-align:left}[dir=rtl] .mdc-card__actions--full-bleed .mdc-card__action--button,.mdc-card__actions--full-bleed .mdc-card__action--button[dir=rtl]{text-align:right}.mdc-card__action--icon{margin:-6px 0;padding:12px}.mdc-card__action--icon:not(:disabled){color:rgba(0, 0, 0, 0.6)}.mat-mdc-card{border-radius:var(--mdc-elevated-card-container-shape);background-color:var(--mdc-elevated-card-container-color);border-width:0;border-style:solid;border-color:var(--mdc-elevated-card-container-color);box-shadow:var(--mdc-elevated-card-container-elevation)}.mat-mdc-card .mdc-card::after{border-radius:var(--mdc-elevated-card-container-shape)}.mat-mdc-card-outlined{border-width:var(--mdc-outlined-card-outline-width);border-style:solid;border-color:var(--mdc-outlined-card-outline-color);border-radius:var(--mdc-outlined-card-container-shape);background-color:var(--mdc-outlined-card-container-color);box-shadow:var(--mdc-outlined-card-container-elevation)}.mat-mdc-card-outlined .mdc-card::after{border-radius:var(--mdc-outlined-card-container-shape)}.mat-mdc-card-title{font-family:var(--mat-card-title-text-font);line-height:var(--mat-card-title-text-line-height);font-size:var(--mat-card-title-text-size);letter-spacing:var(--mat-card-title-text-tracking);font-weight:var(--mat-card-title-text-weight)}.mat-mdc-card-subtitle{color:var(--mat-card-subtitle-text-color);font-family:var(--mat-card-subtitle-text-font);line-height:var(--mat-card-subtitle-text-line-height);font-size:var(--mat-card-subtitle-text-size);letter-spacing:var(--mat-card-subtitle-text-tracking);font-weight:var(--mat-card-subtitle-text-weight)}.mat-mdc-card{position:relative}.mat-mdc-card-title,.mat-mdc-card-subtitle{display:block;margin:0}.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-title,.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-subtitle{padding:16px 16px 0}.mat-mdc-card-header{display:flex;padding:16px 16px 0}.mat-mdc-card-content{display:block;padding:0 16px}.mat-mdc-card-content:first-child{padding-top:16px}.mat-mdc-card-content:last-child{padding-bottom:16px}.mat-mdc-card-title-group{display:flex;justify-content:space-between;width:100%}.mat-mdc-card-avatar{height:40px;width:40px;border-radius:50%;flex-shrink:0;margin-bottom:16px;object-fit:cover}.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-subtitle,.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-title{line-height:normal}.mat-mdc-card-sm-image{width:80px;height:80px}.mat-mdc-card-md-image{width:112px;height:112px}.mat-mdc-card-lg-image{width:152px;height:152px}.mat-mdc-card-xl-image{width:240px;height:240px}.mat-mdc-card-subtitle~.mat-mdc-card-title,.mat-mdc-card-title~.mat-mdc-card-subtitle,.mat-mdc-card-header .mat-mdc-card-header-text .mat-mdc-card-title,.mat-mdc-card-header .mat-mdc-card-header-text .mat-mdc-card-subtitle,.mat-mdc-card-title-group .mat-mdc-card-title,.mat-mdc-card-title-group .mat-mdc-card-subtitle{padding-top:0}.mat-mdc-card-content>:last-child:not(.mat-mdc-card-footer){margin-bottom:0}.mat-mdc-card-actions-align-end{justify-content:flex-end}'],encapsulation:2,changeDetection:0})}}return t})(),JJ=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275dir=zt({type:t,selectors:[["mat-card-content"]],hostAttrs:[1,"mat-mdc-card-content"],standalone:!0})}}return t})(),eee=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=At({type:t,selectors:[["mat-card-header"]],hostAttrs:[1,"mat-mdc-card-header"],standalone:!0,features:[xr],ngContentSelectors:sDe,decls:4,vars:0,consts:[[1,"mat-mdc-card-header-text"]],template:function(i,r){1&i&&(mo(oDe),zn(0),I(1,"div",0),zn(2,1),O(),zn(3,2))},encapsulation:2,changeDetection:0})}}return t})(),tee=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[Ki,An,Ki]})}}return t})();const nee=Xt(Hr,t=>t.isSearchPanelPinned);let iee=(()=>{class t{constructor(e){this.store=e,this.searchPanelMode="minimized",this.updateSearchPanelMode=i=>{this.setSearchPanelMode(this.searchPanelMode===i?"minimized":i)},this.closeSearchPanelOnOutsideClick=i=>{this.isOutside(i)&&!this.isSearchPanelPinned&&this.setSearchPanelMode("minimized")}}ngOnInit(){this.isSearchPanelPinnedSubscription=this.store.select(nee).subscribe(e=>{this.isSearchPanelPinned=e})}ngOnDestroy(){this.isSearchPanelPinnedSubscription.unsubscribe()}openSearchPanel(){this.setSearchPanelMode("treeView")}setSearchPanelMode(e){"minimized"===this.searchPanelMode&&"minimized"!==e&&document.addEventListener("mousedown",this.closeSearchPanelOnOutsideClick),"minimized"!==this.searchPanelMode&&"minimized"===e&&document.removeEventListener("mousedown",this.closeSearchPanelOnOutsideClick),this.searchPanelMode=e}isOutside(e){return e.composedPath().every(i=>"CC-SEARCH-PANEL"!==i.nodeName&&"COLOR-CHROME"!==i.nodeName&&"MAT-OPTION"!==i.nodeName&&"codemap-context-menu"!==i.id)}static{this.\u0275fac=function(i){return new(i||t)(W(Wt))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-search-panel"]],decls:12,vars:9,consts:[["appearance","outlined",1,"search-panel-card"],[1,"section"],[1,"section-header"],[3,"click"],[3,"searchPanelMode","updateSearchPanelMode"],[1,"section-title",3,"click"],["title","Show folder structure",1,"fa","fa-angle-down"],[1,"section-body"],[3,"hidden"]],template:function(i,r){1&i&&(I(0,"mat-card",0)(1,"div",1)(2,"div",2)(3,"cc-search-bar",3),We("click",function(){return r.openSearchPanel()}),O(),_e(4,"cc-search-panel-mode-selector",4),O(),I(5,"span",5),We("click",function(){return r.updateSearchPanelMode("treeView")}),ve(6," File/Node Explorer "),_e(7,"i",6),O(),I(8,"div",7),_e(9,"cc-blacklist-panel",8)(10,"cc-matching-files-counter",8)(11,"cc-map-tree-view",8),O()()()),2&i&&(xn("expanded","minimized"!==r.searchPanelMode),H(4),ue("searchPanelMode",r.searchPanelMode)("updateSearchPanelMode",r.updateSearchPanelMode),H(4),xn("hidden","minimized"===r.searchPanelMode),H(),ue("hidden","blacklist"!==r.searchPanelMode),H(),ue("hidden","treeView"!==r.searchPanelMode),H(),ue("hidden","treeView"!==r.searchPanelMode))},styles:["cc-search-panel .search-panel-card{border-left:none;width:100%}cc-search-panel .search-panel-card .section-body{display:flex;flex-direction:column;padding:6px;position:absolute;top:45px;background:#fff;border:1px solid #b5b5b5;box-shadow:0 1px 3px #0003,0 1px 1px #00000024,0 2px 1px -1px #0000001f}cc-search-panel .search-panel-card .section-body.hidden{display:none;pointer-events:none}cc-search-panel .submenu-button{border:2px solid #1b9cfc}cc-search-panel .submenu-button:hover{border:2px solid #0374c9}\n"],encapsulation:2})}}return t})();function fDe(t=mDe){return Be((n,e)=>{let i=!1;n.subscribe(Je(e,r=>{i=!0,e.next(r)},()=>i?e.complete():e.error(t())))})}function mDe(){return new uL}function gF(t,n){const e=arguments.length>=2;return i=>i.pipe(t?Ii((r,o)=>t(r,o,i)):cs,qo(1),e?function hDe(t){return Be((n,e)=>{let i=!1;n.subscribe(Je(e,r=>{i=!0,e.next(r)},()=>{i||e.next(t),e.complete()}))})}(n):fDe(()=>new uL))}const pDe=ui(1,bn(Uf,Di(1))),_N=t=>{const n=Math.floor(t.length/100);return n<=1?1:Math.min(n,10)},bF=Xt(lc,t=>function Ive(t){const n=[];if(void 0!==t)for(const{data:e}of io(t))"Folder"!==e.type&&n.push(e);return n}(t.unifiedMapNode)),hx=un("SET_AMOUNT_OF_EDGE_PREVIEWS",{_as:"props",_p:void 0}),bDe=ui(1,bn(hx,Di(1))),_De=ui(4,bn(w0,Di(4))),yF={x:1,y:1,z:1},vDe=ui(yF,bn(x0,tF(yF))),wF=t=>{const e=Math.round((t.maxValue-t.minValue)/3);return{from:e+t.minValue,to:2*e+t.minValue}},yDe=ui(50,bn(E0,Di(50))),MA=un("SET_STATE",{_as:"props",_p:void 0});function vN(t){for(const e of Object.keys(t))if("object"==typeof t[e]&&null!==t[e]){const{x:i,y:r,z:o}=t[e];void 0!==i||void 0!==r||void 0!==o?t[e]=new Y(i??1,r??1,o??1):vN(t[e])}}const xDe=JSON.parse('[{"name":"Complexity","settings":{"appSettings":{},"dynamicSettings":{"areaMetric":"rloc","heightMetric":"complexity","colorMetric":"complexity","distributionMetric":"rloc"}}},{"name":"Average Complexity*","settings":{"appSettings":{},"dynamicSettings":{"areaMetric":"unary","heightMetric":"Average Complexity*","colorMetric":"Average Complexity*","distributionMetric":"unary"}}},{"name":"Coverage","settings":{"appSettings":{},"dynamicSettings":{"areaMetric":"rloc","heightMetric":"complexity","colorMetric":"line_coverage","distributionMetric":"rloc"}}},{"name":"Code Churn","settings":{"appSettings":{},"dynamicSettings":{"areaMetric":"rloc","heightMetric":"abs_code_churn","colorMetric":"weeks_with_commits","distributionMetric":"rloc"}}}]');class Fh{static{this.SCENARIOS_LOCAL_STORAGE_VERSION="1.0.0"}static{this.SCENARIOS_LOCAL_STORAGE_ELEMENT="scenarios"}static{this.scenarios=Fh.loadScenarios()}static getScenarioItems(n){const e=[];for(const i of this.scenarios.values())e.push({scenarioName:i.name,isScenarioApplicable:this.isScenarioApplicable(i,n),icons:[{faIconClass:"fa-video-camera",isSaved:!!i.camera,tooltip:"Camera angle"},{faIconClass:"fa-arrows-alt",isSaved:!!i.area,tooltip:"Area metric"},{faIconClass:"fa-arrows-v",isSaved:!!i.height,tooltip:"Height metric"},{faIconClass:"fa-paint-brush",isSaved:!!i.color,tooltip:"Color metric"},{faIconClass:"fa-exchange",isSaved:!!i.edge,tooltip:"Edge metric"}]});return e}static isScenarioApplicable(n,e){const{area:i,color:r,height:o,edge:s}=n;if(i||r||o){const a=new Set(e.nodeMetricData.map(l=>l.name));if(i&&!a.has(i.areaMetric)||r&&!a.has(r.colorMetric)||o&&!a.has(o.heightMetric))return!1}return!(s&&!e.edgeMetricData.some(a=>a.name===s.edgeMetric))}static getPreLoadScenarios(){const n=this.importScenarios(xDe),e=new Map;for(const i of n)e.set(i.name,this.transformScenarioAsSettingsToScenario(i));return e}static transformScenarioAsSettingsToScenario(n){const e={name:n.name},{dynamicSettings:i,appSettings:r}=n.settings;return void 0!==i.areaMetric&&(e.area={areaMetric:i.areaMetric,margin:i.margin}),void 0!==i.heightMetric&&(e.height={heightMetric:i.heightMetric,labelSlider:r.amountOfTopLabels,heightSlider:r.scaling}),void 0!==i.colorMetric&&(e.color={colorMetric:i.colorMetric,colorRange:i.colorRange,mapColors:r.mapColors}),void 0!==i.edgeMetric&&(e.edge={edgeMetric:i.edgeMetric,edgeHeight:r.edgeHeight,edgePreview:r.amountOfEdgePreviews}),e}static setScenariosToLocalStorage(n){const e={version:this.SCENARIOS_LOCAL_STORAGE_VERSION,scenarios:[...n]};localStorage.setItem(this.SCENARIOS_LOCAL_STORAGE_ELEMENT,JSON.stringify(e))}static loadScenarios(){const n=JSON.parse(localStorage.getItem(this.SCENARIOS_LOCAL_STORAGE_ELEMENT));if(n)return new Map(n.scenarios);const e=this.getPreLoadScenarios();return this.setScenariosToLocalStorage(e),e}static addScenario(n,e){const i=Fh.createNewScenario(n,e);this.scenarios.set(i.name,i),this.setScenariosToLocalStorage(this.scenarios)}static createNewScenario(n,e){const i={name:n};for(const r of e.filter(o=>o.isSelected))switch(r.metricType){case"Camera-Position":i.camera={camera:r.savedValues.camera,cameraTarget:r.savedValues.cameraTarget};break;case"Area-Metric":i.area={areaMetric:r.metricName,margin:r.savedValues};break;case"Height-Metric":i.height={heightMetric:r.metricName,heightSlider:r.savedValues.heightSlider,labelSlider:r.savedValues.labelSlider};break;case"Color-Metric":i.color={colorMetric:r.metricName,colorRange:r.savedValues.colorRange,mapColors:r.savedValues.mapColors};break;case"Edge-Metric":i.edge={edgeMetric:r.metricName,edgePreview:r.savedValues.edgePreview,edgeHeight:r.savedValues.edgeHeight};break;default:throw new Error(`Unknown metric type "${r.metricType}" detected`)}return i}static deleteScenario(n){this.scenarios.delete(n),this.setScenariosToLocalStorage(this.scenarios)}static getScenarioSettings(n){const e={},i={};return n&&(n.area&&(e.areaMetric=n.area.areaMetric,e.margin=n.area.margin),n.height&&(e.heightMetric=n.height.heightMetric,i.amountOfTopLabels=n.height.labelSlider,i.scaling=n.height.heightSlider),n.color&&(e.colorMetric=n.color.colorMetric,e.colorRange=n.color.colorRange,i.mapColors=n.color.mapColors),n.edge&&(e.edgeMetric=n.edge.edgeMetric,i.edgeHeight=n.edge.edgeHeight,i.amountOfEdgePreviews=n.edge.edgePreview)),{appSettings:i,dynamicSettings:e}}static importScenarios(n){for(const e of n)vN(e.settings),e.camera&&(e.camera.camera=new Y(e.camera.camera.x,e.camera.camera.y,e.camera.camera.z),e.camera.cameraTarget=new Y(e.camera.camera.x,e.camera.camera.y,e.camera.camera.z));return n}static isScenarioExisting(n){return this.scenarios.has(n)}}let yN=(()=>{class t{constructor(e,i,r,o,s){this.state=e,this.store=i,this.dialog=r,this.threeCameraService=o,this.threeOrbitControlsService=s}getScenarios(){return Fh.getScenarioItems(ks(this.state.getValue()))}applyScenario(e){const i=Fh.scenarios.get(e),r=Fh.getScenarioSettings(i);this.store.dispatch(MA({value:r})),r.appSettings.amountOfTopLabels||this.store.select(bF).pipe(gF()).subscribe(o=>{const s=_N(o);this.store.dispatch(Uf({value:s}))}),r.appSettings.mapColors||this.store.dispatch(ju({value:iu})),r.appSettings.edgeHeight||this.store.dispatch(w0({value:4})),r.appSettings.amountOfEdgePreviews||this.store.dispatch(hx({value:1})),r.appSettings.scaling||this.store.dispatch(x0({value:yF})),r.dynamicSettings.colorRange||this.store.select(Ch).pipe(gF()).subscribe(o=>{this.store.dispatch(Pd({value:wF(o)}))}),r.dynamicSettings.margin||this.store.dispatch(E0({value:50})),r.dynamicSettings.edgeMetric||this.store.select(ks).pipe(gF()).subscribe(o=>{this.store.dispatch(Xu({value:o.edgeMetricData[0]?.name}))}),i.camera&&(this.threeCameraService.setPosition(i.camera.camera),this.threeOrbitControlsService.setControlTarget(i.camera.cameraTarget))}removeScenario(e){"Complexity"!==e?(Fh.deleteScenario(e),this.dialog.open(Op,{data:{title:"Info",message:`${e} deleted.`}})):this.dialog.open(Op,{data:{title:"Error",message:`${e} cannot be deleted as it is the default Scenario.`}})}static{this.\u0275fac=function(i){return new(i||t)(oe(Br),oe(Wt),oe(Is),oe(ru),oe(Zc))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac})}}return t})();class MDe extends Yt{constructor(n=1/0,e=1/0,i=_4){super(),this._bufferSize=n,this._windowTime=e,this._timestampProvider=i,this._buffer=[],this._infiniteTimeWindow=!0,this._infiniteTimeWindow=e===1/0,this._bufferSize=Math.max(1,n),this._windowTime=Math.max(1,e)}next(n){const{isStopped:e,_buffer:i,_infiniteTimeWindow:r,_timestampProvider:o,_windowTime:s}=this;e||(i.push(n),!r&&i.push(o.now()+s)),this._trimBuffer(),super.next(n)}_subscribe(n){this._throwIfClosed(),this._trimBuffer();const e=this._innerSubscribe(n),{_infiniteTimeWindow:i,_buffer:r}=this,o=r.slice();for(let s=0;snew Yt),resetOnError:e=!0,resetOnComplete:i=!0,resetOnRefCountZero:r=!0}=t;return o=>{let s,a,l,c=0,d=!1,u=!1;const h=()=>{a?.unsubscribe(),a=void 0},m=()=>{h(),s=l=void 0,d=u=!1},A=()=>{const v=s;m(),v?.unsubscribe()};return Be((v,x)=>{c++,!u&&!d&&h();const C=l=l??n();x.add(()=>{c--,0===c&&!u&&!d&&(a=wN(A,r))}),C.subscribe(x),!s&&c>0&&(s=new cl({next:w=>C.next(w),error:w=>{u=!0,h(),a=wN(m,e,w),C.error(w)},complete:()=>{d=!0,h(),a=wN(m,i),C.complete()}}),Go(v).subscribe(s))})(o)}}function wN(t,n,...e){if(!0===n)return void t();if(!1===n)return;const i=new cl({next:()=>{i.unsubscribe(),t()}});return Go(n(...e)).subscribe(i)}class TDe{constructor(n){this._box=n,this._destroyed=new Yt,this._resizeSubject=new Yt,this._elementObservables=new Map,typeof ResizeObserver<"u"&&(this._resizeObserver=new ResizeObserver(e=>this._resizeSubject.next(e)))}observe(n){return this._elementObservables.has(n)||this._elementObservables.set(n,new $i(e=>{const i=this._resizeSubject.subscribe(e);return this._resizeObserver?.observe(n,{box:this._box}),()=>{this._resizeObserver?.unobserve(n),i.unsubscribe(),this._elementObservables.delete(n)}}).pipe(Ii(e=>e.some(i=>i.target===n)),function SDe(t,n,e){let i,r=!1;return t&&"object"==typeof t?({bufferSize:i=1/0,windowTime:n=1/0,refCount:r=!1,scheduler:e}=t):i=t??1/0,fx({connector:()=>new MDe(i,n,e),resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:r})}({bufferSize:1,refCount:!0}),Ur(this._destroyed))),this._elementObservables.get(n)}destroy(){this._destroyed.next(),this._destroyed.complete(),this._resizeSubject.complete(),this._elementObservables.clear()}}let FDe=(()=>{class t{constructor(){this._observers=new Map,this._ngZone=Ut(Fn)}ngOnDestroy(){for(const[,e]of this._observers)e.destroy();this._observers.clear()}observe(e,i){const r=i?.box||"content-box";return this._observers.has(r)||this._observers.set(r,new TDe(r)),this._observers.get(r).observe(e)}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();const kDe=["notch"],IDe=["matFormFieldNotchedOutline",""],BDe=["*"],DDe=["textField"],RDe=["iconPrefixContainer"],LDe=["textPrefixContainer"],PDe=["*",[["mat-label"]],[["","matPrefix",""],["","matIconPrefix",""]],[["","matTextPrefix",""]],[["","matTextSuffix",""]],[["","matSuffix",""],["","matIconSuffix",""]],[["mat-error"],["","matError",""]],[["mat-hint",3,"align","end"]],[["mat-hint","align","end"]]],NDe=["*","mat-label","[matPrefix], [matIconPrefix]","[matTextPrefix]","[matTextSuffix]","[matSuffix], [matIconSuffix]","mat-error, [matError]","mat-hint:not([align='end'])","mat-hint[align='end']"];function ODe(t,n){1&t&&_e(0,"span",17)}function UDe(t,n){if(1&t&&(I(0,"label",16),zn(1,1),ft(2,ODe,1,0,"span",17),O()),2&t){const e=He(2);ue("floating",e._shouldLabelFloat())("monitorResize",e._hasOutline())("id",e._labelId),oi("for",e._control.id),H(2),yt(2,!e.hideRequiredMarker&&e._control.required?2:-1)}}function HDe(t,n){1&t&&ft(0,UDe,3,5,"label",16),2&t&&yt(0,He()._hasFloatingLabel()?0:-1)}function VDe(t,n){1&t&&_e(0,"div",5)}function QDe(t,n){}function zDe(t,n){1&t&&ft(0,QDe,0,0,"ng-template",11),2&t&&(He(2),ue("ngTemplateOutlet",Co(1)))}function GDe(t,n){if(1&t&&(I(0,"div",7),ft(1,zDe,1,1,null,11),O()),2&t){const e=He();ue("matFormFieldNotchedOutlineOpen",e._shouldLabelFloat()),H(),yt(1,e._forceDisplayInfixLabel()?-1:1)}}function qDe(t,n){1&t&&(I(0,"div",8,2),zn(2,2),O())}function WDe(t,n){1&t&&(I(0,"div",9,3),zn(2,3),O())}function $De(t,n){}function jDe(t,n){1&t&&ft(0,$De,0,0,"ng-template",11),2&t&&(He(),ue("ngTemplateOutlet",Co(1)))}function KDe(t,n){1&t&&(I(0,"div",12),zn(1,4),O())}function XDe(t,n){1&t&&(I(0,"div",13),zn(1,5),O())}function YDe(t,n){1&t&&_e(0,"div",14)}function ZDe(t,n){1&t&&(I(0,"div",18),zn(1,6),O()),2&t&&ue("@transitionMessages",He()._subscriptAnimationState)}function JDe(t,n){if(1&t&&(I(0,"mat-hint",20),ve(1),O()),2&t){const e=He(2);ue("id",e._hintLabelId),H(),ur(e.hintLabel)}}function e4e(t,n){if(1&t&&(I(0,"div",19),ft(1,JDe,2,2,"mat-hint",20),zn(2,7),_e(3,"div",21),zn(4,8),O()),2&t){const e=He();ue("@transitionMessages",e._subscriptAnimationState),H(),yt(1,e.hintLabel?1:-1)}}let td=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275dir=zt({type:t,selectors:[["mat-label"]],standalone:!0})}}return t})(),t4e=0;const ree=new ot("MatError");let oee=(()=>{class t{constructor(e,i){this.id="mat-mdc-error-"+t4e++,e||i.nativeElement.setAttribute("aria-live","polite")}static{this.\u0275fac=function(i){return new(i||t)(Kl("aria-live"),W(Un))}}static{this.\u0275dir=zt({type:t,selectors:[["mat-error"],["","matError",""]],hostAttrs:["aria-atomic","true",1,"mat-mdc-form-field-error","mat-mdc-form-field-bottom-align"],hostVars:1,hostBindings:function(i,r){2&i&&Id("id",r.id)},inputs:{id:"id"},standalone:!0,features:[ni([{provide:ree,useExisting:t}])]})}}return t})(),n4e=0,xN=(()=>{class t{constructor(){this.align="start",this.id="mat-mdc-hint-"+n4e++}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275dir=zt({type:t,selectors:[["mat-hint"]],hostAttrs:[1,"mat-mdc-form-field-hint","mat-mdc-form-field-bottom-align"],hostVars:4,hostBindings:function(i,r){2&i&&(Id("id",r.id),oi("align",null),xn("mat-mdc-form-field-hint-end","end"===r.align))},inputs:{align:"align",id:"id"},standalone:!0})}}return t})();const see=new ot("MatPrefix");let aee=(()=>{class t{constructor(){this._isText=!1}set _isTextSelector(e){this._isText=!0}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275dir=zt({type:t,selectors:[["","matPrefix",""],["","matIconPrefix",""],["","matTextPrefix",""]],inputs:{_isTextSelector:[bt.None,"matTextPrefix","_isTextSelector"]},standalone:!0,features:[ni([{provide:see,useExisting:t}])]})}}return t})();const i4e=new ot("MatSuffix"),lee=new ot("FloatingLabelParent");let cee=(()=>{class t{get floating(){return this._floating}set floating(e){this._floating=e,this.monitorResize&&this._handleResize()}get monitorResize(){return this._monitorResize}set monitorResize(e){this._monitorResize=e,this._monitorResize?this._subscribeToResize():this._resizeSubscription.unsubscribe()}constructor(e){this._elementRef=e,this._floating=!1,this._monitorResize=!1,this._resizeObserver=Ut(FDe),this._ngZone=Ut(Fn),this._parent=Ut(lee),this._resizeSubscription=new on}ngOnDestroy(){this._resizeSubscription.unsubscribe()}getWidth(){return function r4e(t){if(null!==t.offsetParent)return t.scrollWidth;const e=t.cloneNode(!0);e.style.setProperty("position","absolute"),e.style.setProperty("transform","translate(-9999px, -9999px)"),document.documentElement.appendChild(e);const i=e.scrollWidth;return e.remove(),i}(this._elementRef.nativeElement)}get element(){return this._elementRef.nativeElement}_handleResize(){setTimeout(()=>this._parent._handleLabelResized())}_subscribeToResize(){this._resizeSubscription.unsubscribe(),this._ngZone.runOutsideAngular(()=>{this._resizeSubscription=this._resizeObserver.observe(this._elementRef.nativeElement,{box:"border-box"}).subscribe(()=>this._handleResize())})}static{this.\u0275fac=function(i){return new(i||t)(W(Un))}}static{this.\u0275dir=zt({type:t,selectors:[["label","matFormFieldFloatingLabel",""]],hostAttrs:[1,"mdc-floating-label","mat-mdc-floating-label"],hostVars:2,hostBindings:function(i,r){2&i&&xn("mdc-floating-label--float-above",r.floating)},inputs:{floating:"floating",monitorResize:"monitorResize"},standalone:!0})}}return t})();const dee="mdc-line-ripple--active",CF="mdc-line-ripple--deactivating";let uee=(()=>{class t{constructor(e,i){this._elementRef=e,this._handleTransitionEnd=r=>{const o=this._elementRef.nativeElement.classList,s=o.contains(CF);"opacity"===r.propertyName&&s&&o.remove(dee,CF)},i.runOutsideAngular(()=>{e.nativeElement.addEventListener("transitionend",this._handleTransitionEnd)})}activate(){const e=this._elementRef.nativeElement.classList;e.remove(CF),e.add(dee)}deactivate(){this._elementRef.nativeElement.classList.add(CF)}ngOnDestroy(){this._elementRef.nativeElement.removeEventListener("transitionend",this._handleTransitionEnd)}static{this.\u0275fac=function(i){return new(i||t)(W(Un),W(Fn))}}static{this.\u0275dir=zt({type:t,selectors:[["div","matFormFieldLineRipple",""]],hostAttrs:[1,"mdc-line-ripple"],standalone:!0})}}return t})(),hee=(()=>{class t{constructor(e,i){this._elementRef=e,this._ngZone=i,this.open=!1}ngAfterViewInit(){const e=this._elementRef.nativeElement.querySelector(".mdc-floating-label");e?(this._elementRef.nativeElement.classList.add("mdc-notched-outline--upgraded"),"function"==typeof requestAnimationFrame&&(e.style.transitionDuration="0s",this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>e.style.transitionDuration="")}))):this._elementRef.nativeElement.classList.add("mdc-notched-outline--no-label")}_setNotchWidth(e){this._notch.nativeElement.style.width=this.open&&e?`calc(${e}px * var(--mat-mdc-form-field-floating-label-scale, 0.75) + 9px)`:""}static{this.\u0275fac=function(i){return new(i||t)(W(Un),W(Fn))}}static{this.\u0275cmp=At({type:t,selectors:[["div","matFormFieldNotchedOutline",""]],viewQuery:function(i,r){if(1&i&&ti(kDe,5),2&i){let o;mn(o=pn())&&(r._notch=o.first)}},hostAttrs:[1,"mdc-notched-outline"],hostVars:2,hostBindings:function(i,r){2&i&&xn("mdc-notched-outline--notched",r.open)},inputs:{open:[bt.None,"matFormFieldNotchedOutlineOpen","open"]},standalone:!0,features:[xr],attrs:IDe,ngContentSelectors:BDe,decls:5,vars:0,consts:[["notch",""],[1,"mdc-notched-outline__leading"],[1,"mdc-notched-outline__notch"],[1,"mdc-notched-outline__trailing"]],template:function(i,r){1&i&&(mo(),_e(0,"div",1),I(1,"div",2,0),zn(3),O(),_e(4,"div",3))},encapsulation:2,changeDetection:0})}}return t})();const o4e={transitionMessages:sh("transitionMessages",[nc("enter",Do({opacity:1,transform:"translateY(0%)"})),Tl("void => enter",[Do({opacity:0,transform:"translateY(-5px)"}),tc("300ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])};let CN=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275dir=zt({type:t})}}return t})();const EN=new ot("MatFormField"),s4e=new ot("MAT_FORM_FIELD_DEFAULT_OPTIONS");let fee=0,nd=(()=>{class t{get hideRequiredMarker(){return this._hideRequiredMarker}set hideRequiredMarker(e){this._hideRequiredMarker=$s(e)}get floatLabel(){return this._floatLabel||this._defaults?.floatLabel||"auto"}set floatLabel(e){e!==this._floatLabel&&(this._floatLabel=e,this._changeDetectorRef.markForCheck())}get appearance(){return this._appearance}set appearance(e){const i=this._appearance;this._appearance=e||this._defaults?.appearance||"fill","outline"===this._appearance&&this._appearance!==i&&(this._needsOutlineLabelOffsetUpdateOnStable=!0)}get subscriptSizing(){return this._subscriptSizing||this._defaults?.subscriptSizing||"fixed"}set subscriptSizing(e){this._subscriptSizing=e||this._defaults?.subscriptSizing||"fixed"}get hintLabel(){return this._hintLabel}set hintLabel(e){this._hintLabel=e,this._processHints()}get _control(){return this._explicitFormFieldControl||this._formFieldControl}set _control(e){this._explicitFormFieldControl=e}constructor(e,i,r,o,s,a,l,c){this._elementRef=e,this._changeDetectorRef=i,this._ngZone=r,this._dir=o,this._platform=s,this._defaults=a,this._animationMode=l,this._hideRequiredMarker=!1,this.color="primary",this._appearance="fill",this._subscriptSizing=null,this._hintLabel="",this._hasIconPrefix=!1,this._hasTextPrefix=!1,this._hasIconSuffix=!1,this._hasTextSuffix=!1,this._labelId="mat-mdc-form-field-label-"+fee++,this._hintLabelId="mat-mdc-hint-"+fee++,this._subscriptAnimationState="",this._destroyed=new Yt,this._isFocused=null,this._needsOutlineLabelOffsetUpdateOnStable=!1,a&&(a.appearance&&(this.appearance=a.appearance),this._hideRequiredMarker=!!a?.hideRequiredMarker,a.color&&(this.color=a.color))}ngAfterViewInit(){this._updateFocusState(),this._subscriptAnimationState="enter",this._changeDetectorRef.detectChanges()}ngAfterContentInit(){this._assertFormFieldControl(),this._initializeControl(),this._initializeSubscript(),this._initializePrefixAndSuffix(),this._initializeOutlineLabelOffsetSubscriptions()}ngAfterContentChecked(){this._assertFormFieldControl()}ngOnDestroy(){this._destroyed.next(),this._destroyed.complete()}getLabelId(){return this._hasFloatingLabel()?this._labelId:null}getConnectedOverlayOrigin(){return this._textField||this._elementRef}_animateAndLockLabel(){this._hasFloatingLabel()&&(this.floatLabel="always")}_initializeControl(){const e=this._control;e.controlType&&this._elementRef.nativeElement.classList.add(`mat-mdc-form-field-type-${e.controlType}`),e.stateChanges.subscribe(()=>{this._updateFocusState(),this._syncDescribedByIds(),this._changeDetectorRef.markForCheck()}),e.ngControl&&e.ngControl.valueChanges&&e.ngControl.valueChanges.pipe(Ur(this._destroyed)).subscribe(()=>this._changeDetectorRef.markForCheck())}_checkPrefixAndSuffixTypes(){this._hasIconPrefix=!!this._prefixChildren.find(e=>!e._isText),this._hasTextPrefix=!!this._prefixChildren.find(e=>e._isText),this._hasIconSuffix=!!this._suffixChildren.find(e=>!e._isText),this._hasTextSuffix=!!this._suffixChildren.find(e=>e._isText)}_initializePrefixAndSuffix(){this._checkPrefixAndSuffixTypes(),Sl(this._prefixChildren.changes,this._suffixChildren.changes).subscribe(()=>{this._checkPrefixAndSuffixTypes(),this._changeDetectorRef.markForCheck()})}_initializeSubscript(){this._hintChildren.changes.subscribe(()=>{this._processHints(),this._changeDetectorRef.markForCheck()}),this._errorChildren.changes.subscribe(()=>{this._syncDescribedByIds(),this._changeDetectorRef.markForCheck()}),this._validateHints(),this._syncDescribedByIds()}_assertFormFieldControl(){}_updateFocusState(){this._control.focused&&!this._isFocused?(this._isFocused=!0,this._lineRipple?.activate()):!this._control.focused&&(this._isFocused||null===this._isFocused)&&(this._isFocused=!1,this._lineRipple?.deactivate()),this._textField?.nativeElement.classList.toggle("mdc-text-field--focused",this._control.focused)}_initializeOutlineLabelOffsetSubscriptions(){this._prefixChildren.changes.subscribe(()=>this._needsOutlineLabelOffsetUpdateOnStable=!0),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.pipe(Ur(this._destroyed)).subscribe(()=>{this._needsOutlineLabelOffsetUpdateOnStable&&(this._needsOutlineLabelOffsetUpdateOnStable=!1,this._updateOutlineLabelOffset())})}),this._dir.change.pipe(Ur(this._destroyed)).subscribe(()=>this._needsOutlineLabelOffsetUpdateOnStable=!0)}_shouldAlwaysFloat(){return"always"===this.floatLabel}_hasOutline(){return"outline"===this.appearance}_forceDisplayInfixLabel(){return!this._platform.isBrowser&&this._prefixChildren.length&&!this._shouldLabelFloat()}_hasFloatingLabel(){return!!this._labelChildNonStatic||!!this._labelChildStatic}_shouldLabelFloat(){return this._control.shouldLabelFloat||this._shouldAlwaysFloat()}_shouldForward(e){const i=this._control?this._control.ngControl:null;return i&&i[e]}_getDisplayedMessages(){return this._errorChildren&&this._errorChildren.length>0&&this._control.errorState?"error":"hint"}_handleLabelResized(){this._refreshOutlineNotchWidth()}_refreshOutlineNotchWidth(){this._hasOutline()&&this._floatingLabel&&this._shouldLabelFloat()?this._notchedOutline?._setNotchWidth(this._floatingLabel.getWidth()):this._notchedOutline?._setNotchWidth(0)}_processHints(){this._validateHints(),this._syncDescribedByIds()}_validateHints(){}_syncDescribedByIds(){if(this._control){let e=[];if(this._control.userAriaDescribedBy&&"string"==typeof this._control.userAriaDescribedBy&&e.push(...this._control.userAriaDescribedBy.split(" ")),"hint"===this._getDisplayedMessages()){const i=this._hintChildren?this._hintChildren.find(o=>"start"===o.align):null,r=this._hintChildren?this._hintChildren.find(o=>"end"===o.align):null;i?e.push(i.id):this._hintLabel&&e.push(this._hintLabelId),r&&e.push(r.id)}else this._errorChildren&&e.push(...this._errorChildren.map(i=>i.id));this._control.setDescribedByIds(e)}}_updateOutlineLabelOffset(){if(!this._platform.isBrowser||!this._hasOutline()||!this._floatingLabel)return;const e=this._floatingLabel.element;if(!this._iconPrefixContainer&&!this._textPrefixContainer)return void(e.style.transform="");if(!this._isAttachedToDom())return void(this._needsOutlineLabelOffsetUpdateOnStable=!0);const i=this._iconPrefixContainer?.nativeElement,r=this._textPrefixContainer?.nativeElement,o=i?.getBoundingClientRect().width??0,s=r?.getBoundingClientRect().width??0;e.style.transform=`var(\n --mat-mdc-form-field-label-transform,\n translateY(-50%) translateX(calc(${"rtl"===this._dir.value?"-1":"1"} * (${o+s}px + var(--mat-mdc-form-field-label-offset-x, 0px))))\n )`}_isAttachedToDom(){const e=this._elementRef.nativeElement;if(e.getRootNode){const i=e.getRootNode();return i&&i!==e}return document.documentElement.contains(e)}static{this.\u0275fac=function(i){return new(i||t)(W(Un),W(Ao),W(Fn),W(th),W(Or),W(s4e,8),W(ts,8),W(xi))}}static{this.\u0275cmp=At({type:t,selectors:[["mat-form-field"]],contentQueries:function(i,r,o){if(1&i&&(Ir(o,td,5),Ir(o,td,7),Ir(o,CN,5),Ir(o,see,5),Ir(o,i4e,5),Ir(o,ree,5),Ir(o,xN,5)),2&i){let s;mn(s=pn())&&(r._labelChildNonStatic=s.first),mn(s=pn())&&(r._labelChildStatic=s.first),mn(s=pn())&&(r._formFieldControl=s.first),mn(s=pn())&&(r._prefixChildren=s),mn(s=pn())&&(r._suffixChildren=s),mn(s=pn())&&(r._errorChildren=s),mn(s=pn())&&(r._hintChildren=s)}},viewQuery:function(i,r){if(1&i&&(ti(DDe,5),ti(RDe,5),ti(LDe,5),ti(cee,5),ti(hee,5),ti(uee,5)),2&i){let o;mn(o=pn())&&(r._textField=o.first),mn(o=pn())&&(r._iconPrefixContainer=o.first),mn(o=pn())&&(r._textPrefixContainer=o.first),mn(o=pn())&&(r._floatingLabel=o.first),mn(o=pn())&&(r._notchedOutline=o.first),mn(o=pn())&&(r._lineRipple=o.first)}},hostAttrs:[1,"mat-mdc-form-field"],hostVars:42,hostBindings:function(i,r){2&i&&xn("mat-mdc-form-field-label-always-float",r._shouldAlwaysFloat())("mat-mdc-form-field-has-icon-prefix",r._hasIconPrefix)("mat-mdc-form-field-has-icon-suffix",r._hasIconSuffix)("mat-form-field-invalid",r._control.errorState)("mat-form-field-disabled",r._control.disabled)("mat-form-field-autofilled",r._control.autofilled)("mat-form-field-no-animations","NoopAnimations"===r._animationMode)("mat-form-field-appearance-fill","fill"==r.appearance)("mat-form-field-appearance-outline","outline"==r.appearance)("mat-form-field-hide-placeholder",r._hasFloatingLabel()&&!r._shouldLabelFloat())("mat-focused",r._control.focused)("mat-primary","accent"!==r.color&&"warn"!==r.color)("mat-accent","accent"===r.color)("mat-warn","warn"===r.color)("ng-untouched",r._shouldForward("untouched"))("ng-touched",r._shouldForward("touched"))("ng-pristine",r._shouldForward("pristine"))("ng-dirty",r._shouldForward("dirty"))("ng-valid",r._shouldForward("valid"))("ng-invalid",r._shouldForward("invalid"))("ng-pending",r._shouldForward("pending"))},inputs:{hideRequiredMarker:"hideRequiredMarker",color:"color",floatLabel:"floatLabel",appearance:"appearance",subscriptSizing:"subscriptSizing",hintLabel:"hintLabel"},exportAs:["matFormField"],standalone:!0,features:[ni([{provide:EN,useExisting:t},{provide:lee,useExisting:t}]),xr],ngContentSelectors:NDe,decls:18,vars:21,consts:[["labelTemplate",""],["textField",""],["iconPrefixContainer",""],["textPrefixContainer",""],[1,"mat-mdc-text-field-wrapper","mdc-text-field",3,"click"],[1,"mat-mdc-form-field-focus-overlay"],[1,"mat-mdc-form-field-flex"],["matFormFieldNotchedOutline","",3,"matFormFieldNotchedOutlineOpen"],[1,"mat-mdc-form-field-icon-prefix"],[1,"mat-mdc-form-field-text-prefix"],[1,"mat-mdc-form-field-infix"],[3,"ngTemplateOutlet"],[1,"mat-mdc-form-field-text-suffix"],[1,"mat-mdc-form-field-icon-suffix"],["matFormFieldLineRipple",""],[1,"mat-mdc-form-field-subscript-wrapper","mat-mdc-form-field-bottom-align"],["matFormFieldFloatingLabel","",3,"floating","monitorResize","id"],["aria-hidden","true",1,"mat-mdc-form-field-required-marker","mdc-floating-label--required"],[1,"mat-mdc-form-field-error-wrapper"],[1,"mat-mdc-form-field-hint-wrapper"],[3,"id"],[1,"mat-mdc-form-field-hint-spacer"]],template:function(i,r){if(1&i){const o=kn();mo(PDe),ft(0,HDe,1,1,"ng-template",null,0,Mf),I(2,"div",4,1),We("click",function(a){return Ft(o),kt(r._control.onContainerClick(a))}),ft(4,VDe,1,0,"div",5),I(5,"div",6),ft(6,GDe,2,2,"div",7)(7,qDe,3,0,"div",8)(8,WDe,3,0,"div",9),I(9,"div",10),ft(10,jDe,1,1,null,11),zn(11),O(),ft(12,KDe,2,0,"div",12)(13,XDe,2,0,"div",13),O(),ft(14,YDe,1,0,"div",14),O(),I(15,"div",15),ft(16,ZDe,2,1)(17,e4e,5,2),O()}if(2&i){let o;H(2),xn("mdc-text-field--filled",!r._hasOutline())("mdc-text-field--outlined",r._hasOutline())("mdc-text-field--no-label",!r._hasFloatingLabel())("mdc-text-field--disabled",r._control.disabled)("mdc-text-field--invalid",r._control.errorState),H(2),yt(4,r._hasOutline()||r._control.disabled?-1:4),H(2),yt(6,r._hasOutline()?6:-1),H(),yt(7,r._hasIconPrefix?7:-1),H(),yt(8,r._hasTextPrefix?8:-1),H(2),yt(10,!r._hasOutline()||r._forceDisplayInfixLabel()?10:-1),H(2),yt(12,r._hasTextSuffix?12:-1),H(),yt(13,r._hasIconSuffix?13:-1),H(),yt(14,r._hasOutline()?-1:14),H(),xn("mat-mdc-form-field-subscript-dynamic-size","dynamic"===r.subscriptSizing),H(),yt(16,"error"===(o=r._getDisplayedMessages())?16:"hint"===o?17:-1)}},dependencies:[cee,hee,py,uee,xN],styles:['.mdc-text-field{border-top-left-radius:4px;border-top-left-radius:var(--mdc-shape-small, 4px);border-top-right-radius:4px;border-top-right-radius:var(--mdc-shape-small, 4px);border-bottom-right-radius:0;border-bottom-left-radius:0;display:inline-flex;align-items:baseline;padding:0 16px;position:relative;box-sizing:border-box;overflow:hidden;will-change:opacity,transform,color}.mdc-text-field .mdc-floating-label{top:50%;transform:translateY(-50%);pointer-events:none}.mdc-text-field__input{height:28px;width:100%;min-width:0;border:none;border-radius:0;background:none;appearance:none;padding:0}.mdc-text-field__input::-ms-clear{display:none}.mdc-text-field__input::-webkit-calendar-picker-indicator{display:none}.mdc-text-field__input:focus{outline:none}.mdc-text-field__input:invalid{box-shadow:none}@media all{.mdc-text-field__input::placeholder{opacity:0}}@media all{.mdc-text-field__input:-ms-input-placeholder{opacity:0}}@media all{.mdc-text-field--no-label .mdc-text-field__input::placeholder,.mdc-text-field--focused .mdc-text-field__input::placeholder{opacity:1}}@media all{.mdc-text-field--no-label .mdc-text-field__input:-ms-input-placeholder,.mdc-text-field--focused .mdc-text-field__input:-ms-input-placeholder{opacity:1}}.mdc-text-field__affix{height:28px;opacity:0;white-space:nowrap}.mdc-text-field--label-floating .mdc-text-field__affix,.mdc-text-field--no-label .mdc-text-field__affix{opacity:1}@supports(-webkit-hyphens: none){.mdc-text-field--outlined .mdc-text-field__affix{align-items:center;align-self:center;display:inline-flex;height:100%}}.mdc-text-field__affix--prefix{padding-left:0;padding-right:2px}[dir=rtl] .mdc-text-field__affix--prefix,.mdc-text-field__affix--prefix[dir=rtl]{padding-left:2px;padding-right:0}.mdc-text-field--end-aligned .mdc-text-field__affix--prefix{padding-left:0;padding-right:12px}[dir=rtl] .mdc-text-field--end-aligned .mdc-text-field__affix--prefix,.mdc-text-field--end-aligned .mdc-text-field__affix--prefix[dir=rtl]{padding-left:12px;padding-right:0}.mdc-text-field__affix--suffix{padding-left:12px;padding-right:0}[dir=rtl] .mdc-text-field__affix--suffix,.mdc-text-field__affix--suffix[dir=rtl]{padding-left:0;padding-right:12px}.mdc-text-field--end-aligned .mdc-text-field__affix--suffix{padding-left:2px;padding-right:0}[dir=rtl] .mdc-text-field--end-aligned .mdc-text-field__affix--suffix,.mdc-text-field--end-aligned .mdc-text-field__affix--suffix[dir=rtl]{padding-left:0;padding-right:2px}.mdc-text-field--filled{height:56px}.mdc-text-field--filled::before{display:inline-block;width:0;height:40px;content:"";vertical-align:0}.mdc-text-field--filled .mdc-floating-label{left:16px;right:initial}[dir=rtl] .mdc-text-field--filled .mdc-floating-label,.mdc-text-field--filled .mdc-floating-label[dir=rtl]{left:initial;right:16px}.mdc-text-field--filled .mdc-floating-label--float-above{transform:translateY(-106%) scale(0.75)}.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__input{height:100%}.mdc-text-field--filled.mdc-text-field--no-label .mdc-floating-label{display:none}.mdc-text-field--filled.mdc-text-field--no-label::before{display:none}@supports(-webkit-hyphens: none){.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__affix{align-items:center;align-self:center;display:inline-flex;height:100%}}.mdc-text-field--outlined{height:56px;overflow:visible}.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-37.25px) scale(1)}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-34.75px) scale(0.75)}.mdc-text-field--outlined .mdc-floating-label--float-above{font-size:.75rem}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-text-field--outlined .mdc-text-field__input{height:100%}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{border-top-left-radius:4px;border-top-left-radius:var(--mdc-shape-small, 4px);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:4px;border-bottom-left-radius:var(--mdc-shape-small, 4px)}[dir=rtl] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading[dir=rtl]{border-top-left-radius:0;border-top-right-radius:4px;border-top-right-radius:var(--mdc-shape-small, 4px);border-bottom-right-radius:4px;border-bottom-right-radius:var(--mdc-shape-small, 4px);border-bottom-left-radius:0}@supports(top: max(0%)){.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{width:max(12px,var(--mdc-shape-small, 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__notch{max-width:calc(100% - max(12px,var(--mdc-shape-small, 4px))*2)}}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing{border-top-left-radius:0;border-top-right-radius:4px;border-top-right-radius:var(--mdc-shape-small, 4px);border-bottom-right-radius:4px;border-bottom-right-radius:var(--mdc-shape-small, 4px);border-bottom-left-radius:0}[dir=rtl] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing,.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing[dir=rtl]{border-top-left-radius:4px;border-top-left-radius:var(--mdc-shape-small, 4px);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:4px;border-bottom-left-radius:var(--mdc-shape-small, 4px)}@supports(top: max(0%)){.mdc-text-field--outlined{padding-left:max(16px,calc(var(--mdc-shape-small, 4px) + 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined{padding-right:max(16px,var(--mdc-shape-small, 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined+.mdc-text-field-helper-line{padding-left:max(16px,calc(var(--mdc-shape-small, 4px) + 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined+.mdc-text-field-helper-line{padding-right:max(16px,var(--mdc-shape-small, 4px))}}.mdc-text-field--outlined.mdc-text-field--with-leading-icon{padding-left:0}@supports(top: max(0%)){.mdc-text-field--outlined.mdc-text-field--with-leading-icon{padding-right:max(16px,var(--mdc-shape-small, 4px))}}[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-leading-icon,.mdc-text-field--outlined.mdc-text-field--with-leading-icon[dir=rtl]{padding-right:0}@supports(top: max(0%)){[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-leading-icon,.mdc-text-field--outlined.mdc-text-field--with-leading-icon[dir=rtl]{padding-left:max(16px,var(--mdc-shape-small, 4px))}}.mdc-text-field--outlined.mdc-text-field--with-trailing-icon{padding-right:0}@supports(top: max(0%)){.mdc-text-field--outlined.mdc-text-field--with-trailing-icon{padding-left:max(16px,calc(var(--mdc-shape-small, 4px) + 4px))}}[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-trailing-icon,.mdc-text-field--outlined.mdc-text-field--with-trailing-icon[dir=rtl]{padding-left:0}@supports(top: max(0%)){[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-trailing-icon,.mdc-text-field--outlined.mdc-text-field--with-trailing-icon[dir=rtl]{padding-right:max(16px,calc(var(--mdc-shape-small, 4px) + 4px))}}.mdc-text-field--outlined.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon{padding-left:0;padding-right:0}.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:1px}.mdc-text-field--outlined .mdc-floating-label{left:4px;right:initial}[dir=rtl] .mdc-text-field--outlined .mdc-floating-label,.mdc-text-field--outlined .mdc-floating-label[dir=rtl]{left:initial;right:4px}.mdc-text-field--outlined .mdc-text-field__input{display:flex;border:none !important;background-color:rgba(0,0,0,0)}.mdc-text-field--outlined .mdc-notched-outline{z-index:1}.mdc-text-field--textarea{flex-direction:column;align-items:center;width:auto;height:auto;padding:0}.mdc-text-field--textarea .mdc-floating-label{top:19px}.mdc-text-field--textarea .mdc-floating-label:not(.mdc-floating-label--float-above){transform:none}.mdc-text-field--textarea .mdc-text-field__input{flex-grow:1;height:auto;min-height:1.5rem;overflow-x:hidden;overflow-y:auto;box-sizing:border-box;resize:none;padding:0 16px}.mdc-text-field--textarea.mdc-text-field--filled::before{display:none}.mdc-text-field--textarea.mdc-text-field--filled .mdc-floating-label--float-above{transform:translateY(-10.25px) scale(0.75)}.mdc-text-field--textarea.mdc-text-field--filled .mdc-text-field__input{margin-top:23px;margin-bottom:9px}.mdc-text-field--textarea.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__input{margin-top:16px;margin-bottom:16px}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:0}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-27.25px) scale(1)}.mdc-text-field--textarea.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--textarea.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-24.75px) scale(0.75)}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label--float-above{font-size:.75rem}.mdc-text-field--textarea.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--textarea.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-text-field__input{margin-top:16px;margin-bottom:16px}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label{top:18px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field__input{margin-bottom:2px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field-character-counter{align-self:flex-end;padding:0 16px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field-character-counter::after{display:inline-block;width:0;height:16px;content:"";vertical-align:-16px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field-character-counter::before{display:none}.mdc-text-field__resizer{align-self:stretch;display:inline-flex;flex-direction:column;flex-grow:1;max-height:100%;max-width:100%;min-height:56px;min-width:fit-content;min-width:-moz-available;min-width:-webkit-fill-available;overflow:hidden;resize:both}.mdc-text-field--filled .mdc-text-field__resizer{transform:translateY(-1px)}.mdc-text-field--filled .mdc-text-field__resizer .mdc-text-field__input,.mdc-text-field--filled .mdc-text-field__resizer .mdc-text-field-character-counter{transform:translateY(1px)}.mdc-text-field--outlined .mdc-text-field__resizer{transform:translateX(-1px) translateY(-1px)}[dir=rtl] .mdc-text-field--outlined .mdc-text-field__resizer,.mdc-text-field--outlined .mdc-text-field__resizer[dir=rtl]{transform:translateX(1px) translateY(-1px)}.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field__input,.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field-character-counter{transform:translateX(1px) translateY(1px)}[dir=rtl] .mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field__input,[dir=rtl] .mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field-character-counter,.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field__input[dir=rtl],.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field-character-counter[dir=rtl]{transform:translateX(-1px) translateY(1px)}.mdc-text-field--with-leading-icon{padding-left:0;padding-right:16px}[dir=rtl] .mdc-text-field--with-leading-icon,.mdc-text-field--with-leading-icon[dir=rtl]{padding-left:16px;padding-right:0}.mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label{max-width:calc(100% - 48px);left:48px;right:initial}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label,.mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label[dir=rtl]{left:initial;right:48px}.mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label--float-above{max-width:calc(100%/0.75 - 64px/0.75)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label{left:36px;right:initial}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label[dir=rtl]{left:initial;right:36px}.mdc-text-field--with-leading-icon.mdc-text-field--outlined :not(.mdc-notched-outline--notched) .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-37.25px) translateX(-32px) scale(1)}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above[dir=rtl]{transform:translateY(-37.25px) translateX(32px) scale(1)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-34.75px) translateX(-32px) scale(0.75)}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above[dir=rtl],.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above[dir=rtl]{transform:translateY(-34.75px) translateX(32px) scale(0.75)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above{font-size:.75rem}.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-text-field--with-trailing-icon{padding-left:16px;padding-right:0}[dir=rtl] .mdc-text-field--with-trailing-icon,.mdc-text-field--with-trailing-icon[dir=rtl]{padding-left:0;padding-right:16px}.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label{max-width:calc(100% - 64px)}.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label--float-above{max-width:calc(100%/0.75 - 64px/0.75)}.mdc-text-field--with-trailing-icon.mdc-text-field--outlined :not(.mdc-notched-outline--notched) .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon{padding-left:0;padding-right:0}.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label{max-width:calc(100% - 96px)}.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label--float-above{max-width:calc(100%/0.75 - 96px/0.75)}.mdc-text-field-helper-line{display:flex;justify-content:space-between;box-sizing:border-box}.mdc-text-field+.mdc-text-field-helper-line{padding-right:16px;padding-left:16px}.mdc-form-field>.mdc-text-field+label{align-self:flex-start}.mdc-text-field--focused .mdc-notched-outline__leading,.mdc-text-field--focused .mdc-notched-outline__notch,.mdc-text-field--focused .mdc-notched-outline__trailing{border-width:2px}.mdc-text-field--focused+.mdc-text-field-helper-line .mdc-text-field-helper-text:not(.mdc-text-field-helper-text--validation-msg){opacity:1}.mdc-text-field--focused.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:2px}.mdc-text-field--focused.mdc-text-field--outlined.mdc-text-field--textarea .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:0}.mdc-text-field--invalid+.mdc-text-field-helper-line .mdc-text-field-helper-text--validation-msg{opacity:1}.mdc-text-field--disabled{pointer-events:none}@media screen and (forced-colors: active){.mdc-text-field--disabled .mdc-text-field__input{background-color:Window}.mdc-text-field--disabled .mdc-floating-label{z-index:1}}.mdc-text-field--disabled .mdc-floating-label{cursor:default}.mdc-text-field--disabled.mdc-text-field--filled .mdc-text-field__ripple{display:none}.mdc-text-field--disabled .mdc-text-field__input{pointer-events:auto}.mdc-text-field--end-aligned .mdc-text-field__input{text-align:right}[dir=rtl] .mdc-text-field--end-aligned .mdc-text-field__input,.mdc-text-field--end-aligned .mdc-text-field__input[dir=rtl]{text-align:left}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__input,[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__input,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix{direction:ltr}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--prefix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--prefix{padding-left:0;padding-right:2px}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--suffix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--suffix{padding-left:12px;padding-right:0}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__icon--leading,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__icon--leading{order:1}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--suffix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--suffix{order:2}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__input,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__input{order:3}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--prefix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--prefix{order:4}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__icon--trailing,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__icon--trailing{order:5}[dir=rtl] .mdc-text-field--ltr-text.mdc-text-field--end-aligned .mdc-text-field__input,.mdc-text-field--ltr-text.mdc-text-field--end-aligned[dir=rtl] .mdc-text-field__input{text-align:right}[dir=rtl] .mdc-text-field--ltr-text.mdc-text-field--end-aligned .mdc-text-field__affix--prefix,.mdc-text-field--ltr-text.mdc-text-field--end-aligned[dir=rtl] .mdc-text-field__affix--prefix{padding-right:12px}[dir=rtl] .mdc-text-field--ltr-text.mdc-text-field--end-aligned .mdc-text-field__affix--suffix,.mdc-text-field--ltr-text.mdc-text-field--end-aligned[dir=rtl] .mdc-text-field__affix--suffix{padding-left:2px}.mdc-floating-label{position:absolute;left:0;-webkit-transform-origin:left top;transform-origin:left top;line-height:1.15rem;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:text;overflow:hidden;will-change:transform}[dir=rtl] .mdc-floating-label,.mdc-floating-label[dir=rtl]{right:0;left:auto;-webkit-transform-origin:right top;transform-origin:right top;text-align:right}.mdc-floating-label--float-above{cursor:auto}.mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after{margin-left:1px;margin-right:0px;content:"*"}[dir=rtl] .mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after,.mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)[dir=rtl]::after{margin-left:0;margin-right:1px}.mdc-notched-outline{display:flex;position:absolute;top:0;right:0;left:0;box-sizing:border-box;width:100%;max-width:100%;height:100%;text-align:left;pointer-events:none}[dir=rtl] .mdc-notched-outline,.mdc-notched-outline[dir=rtl]{text-align:right}.mdc-notched-outline__leading,.mdc-notched-outline__notch,.mdc-notched-outline__trailing{box-sizing:border-box;height:100%;pointer-events:none}.mdc-notched-outline__trailing{flex-grow:1}.mdc-notched-outline__notch{flex:0 0 auto;width:auto}.mdc-notched-outline .mdc-floating-label{display:inline-block;position:relative;max-width:100%}.mdc-notched-outline .mdc-floating-label--float-above{text-overflow:clip}.mdc-notched-outline--upgraded .mdc-floating-label--float-above{max-width:133.3333333333%}.mdc-notched-outline--notched .mdc-notched-outline__notch{padding-left:0;padding-right:8px;border-top:none}[dir=rtl] .mdc-notched-outline--notched .mdc-notched-outline__notch,.mdc-notched-outline--notched .mdc-notched-outline__notch[dir=rtl]{padding-left:8px;padding-right:0}.mdc-notched-outline--no-label .mdc-notched-outline__notch{display:none}.mdc-line-ripple::before,.mdc-line-ripple::after{position:absolute;bottom:0;left:0;width:100%;border-bottom-style:solid;content:""}.mdc-line-ripple::before{z-index:1}.mdc-line-ripple::after{transform:scaleX(0);opacity:0;z-index:2}.mdc-line-ripple--active::after{transform:scaleX(1);opacity:1}.mdc-line-ripple--deactivating::after{opacity:0}.mdc-floating-label--float-above{transform:translateY(-106%) scale(0.75)}.mdc-notched-outline__leading,.mdc-notched-outline__notch,.mdc-notched-outline__trailing{border-top:1px solid;border-bottom:1px solid}.mdc-notched-outline__leading{border-left:1px solid;border-right:none;width:12px}[dir=rtl] .mdc-notched-outline__leading,.mdc-notched-outline__leading[dir=rtl]{border-left:none;border-right:1px solid}.mdc-notched-outline__trailing{border-left:none;border-right:1px solid}[dir=rtl] .mdc-notched-outline__trailing,.mdc-notched-outline__trailing[dir=rtl]{border-left:1px solid;border-right:none}.mdc-notched-outline__notch{max-width:calc(100% - 12px*2)}.mdc-line-ripple::before{border-bottom-width:1px}.mdc-line-ripple::after{border-bottom-width:2px}.mdc-text-field--filled{border-top-left-radius:var(--mdc-filled-text-field-container-shape);border-top-right-radius:var(--mdc-filled-text-field-container-shape);border-bottom-right-radius:0;border-bottom-left-radius:0}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-filled-text-field-caret-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-filled-text-field-error-caret-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mdc-filled-text-field-input-text-color)}.mdc-text-field--filled.mdc-text-field--disabled .mdc-text-field__input{color:var(--mdc-filled-text-field-disabled-input-text-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-floating-label,.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-label-text-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label,.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-focus-label-text-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label,.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-hover-label-text-color)}.mdc-text-field--filled.mdc-text-field--disabled .mdc-floating-label,.mdc-text-field--filled.mdc-text-field--disabled .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-disabled-label-text-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-floating-label,.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-error-label-text-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label,.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-error-focus-label-text-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label,.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-error-hover-label-text-color)}.mdc-text-field--filled .mdc-floating-label{font-family:var(--mdc-filled-text-field-label-text-font);font-size:var(--mdc-filled-text-field-label-text-size);font-weight:var(--mdc-filled-text-field-label-text-weight);letter-spacing:var(--mdc-filled-text-field-label-text-tracking)}@media all{.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color)}}@media all{.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color)}}.mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:var(--mdc-filled-text-field-container-color)}.mdc-text-field--filled.mdc-text-field--disabled{background-color:var(--mdc-filled-text-field-disabled-container-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-active-indicator-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-hover-active-indicator-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mdc-filled-text-field-focus-active-indicator-color)}.mdc-text-field--filled.mdc-text-field--disabled .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-disabled-active-indicator-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-error-active-indicator-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-error-hover-active-indicator-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mdc-filled-text-field-error-focus-active-indicator-color)}.mdc-text-field--filled .mdc-line-ripple::before{border-bottom-width:var(--mdc-filled-text-field-active-indicator-height)}.mdc-text-field--filled .mdc-line-ripple::after{border-bottom-width:var(--mdc-filled-text-field-focus-active-indicator-height)}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-outlined-text-field-caret-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-outlined-text-field-error-caret-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mdc-outlined-text-field-input-text-color)}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input{color:var(--mdc-outlined-text-field-disabled-input-text-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-floating-label,.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-label-text-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-focus-label-text-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label,.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-hover-label-text-color)}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-floating-label,.mdc-text-field--outlined.mdc-text-field--disabled .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-disabled-label-text-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-floating-label,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-error-label-text-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-error-focus-label-text-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-error-hover-label-text-color)}.mdc-text-field--outlined .mdc-floating-label{font-family:var(--mdc-outlined-text-field-label-text-font);font-size:var(--mdc-outlined-text-field-label-text-size);font-weight:var(--mdc-outlined-text-field-label-text-weight);letter-spacing:var(--mdc-outlined-text-field-label-text-tracking)}@media all{.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color)}}@media all{.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color)}}.mdc-text-field--outlined.mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label--float-above{font-size:calc(.75*var(--mdc-outlined-text-field-label-text-size))}.mdc-text-field--outlined.mdc-text-field--textarea.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined.mdc-text-field--textarea.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:var(--mdc-outlined-text-field-label-text-size)}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{border-top-left-radius:var(--mdc-outlined-text-field-container-shape);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:var(--mdc-outlined-text-field-container-shape)}[dir=rtl] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading[dir=rtl]{border-top-left-radius:0;border-top-right-radius:var(--mdc-outlined-text-field-container-shape);border-bottom-right-radius:var(--mdc-outlined-text-field-container-shape);border-bottom-left-radius:0}@supports(top: max(0%)){.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{width:max(12px,var(--mdc-outlined-text-field-container-shape))}}@supports(top: max(0%)){.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__notch{max-width:calc(100% - max(12px,var(--mdc-outlined-text-field-container-shape))*2)}}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing{border-top-left-radius:0;border-top-right-radius:var(--mdc-outlined-text-field-container-shape);border-bottom-right-radius:var(--mdc-outlined-text-field-container-shape);border-bottom-left-radius:0}[dir=rtl] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing,.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing[dir=rtl]{border-top-left-radius:var(--mdc-outlined-text-field-container-shape);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:var(--mdc-outlined-text-field-container-shape)}@supports(top: max(0%)){.mdc-text-field--outlined{padding-left:max(16px,calc(var(--mdc-outlined-text-field-container-shape) + 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined{padding-right:max(16px,var(--mdc-outlined-text-field-container-shape))}}@supports(top: max(0%)){.mdc-text-field--outlined+.mdc-text-field-helper-line{padding-left:max(16px,calc(var(--mdc-outlined-text-field-container-shape) + 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined+.mdc-text-field-helper-line{padding-right:max(16px,var(--mdc-outlined-text-field-container-shape))}}.mdc-text-field--outlined.mdc-text-field--with-leading-icon{padding-left:0}@supports(top: max(0%)){.mdc-text-field--outlined.mdc-text-field--with-leading-icon{padding-right:max(16px,var(--mdc-outlined-text-field-container-shape))}}[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-leading-icon,.mdc-text-field--outlined.mdc-text-field--with-leading-icon[dir=rtl]{padding-right:0}@supports(top: max(0%)){[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-leading-icon,.mdc-text-field--outlined.mdc-text-field--with-leading-icon[dir=rtl]{padding-left:max(16px,var(--mdc-outlined-text-field-container-shape))}}.mdc-text-field--outlined.mdc-text-field--with-trailing-icon{padding-right:0}@supports(top: max(0%)){.mdc-text-field--outlined.mdc-text-field--with-trailing-icon{padding-left:max(16px,calc(var(--mdc-outlined-text-field-container-shape) + 4px))}}[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-trailing-icon,.mdc-text-field--outlined.mdc-text-field--with-trailing-icon[dir=rtl]{padding-left:0}@supports(top: max(0%)){[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-trailing-icon,.mdc-text-field--outlined.mdc-text-field--with-trailing-icon[dir=rtl]{padding-right:max(16px,calc(var(--mdc-outlined-text-field-container-shape) + 4px))}}.mdc-text-field--outlined.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon{padding-left:0;padding-right:0}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-outline-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-hover-outline-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-focus-outline-color)}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-notched-outline__leading,.mdc-text-field--outlined.mdc-text-field--disabled .mdc-notched-outline__notch,.mdc-text-field--outlined.mdc-text-field--disabled .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-disabled-outline-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-notched-outline__leading,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-notched-outline__notch,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-error-outline-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__notch,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-error-hover-outline-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__leading,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__notch,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-error-focus-outline-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline .mdc-notched-outline__trailing{border-width:var(--mdc-outlined-text-field-outline-width)}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mdc-notched-outline__trailing{border-width:var(--mdc-outlined-text-field-focus-outline-width)}.mat-mdc-form-field-textarea-control{vertical-align:middle;resize:vertical;box-sizing:border-box;height:auto;margin:0;padding:0;border:none;overflow:auto}.mat-mdc-form-field-input-control.mat-mdc-form-field-input-control{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font:inherit;letter-spacing:inherit;text-decoration:inherit;text-transform:inherit;border:none}.mat-mdc-form-field .mat-mdc-floating-label.mdc-floating-label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;line-height:normal;pointer-events:all;will-change:auto}.mat-mdc-form-field:not(.mat-form-field-disabled) .mat-mdc-floating-label.mdc-floating-label{cursor:inherit}.mdc-text-field--no-label:not(.mdc-text-field--textarea) .mat-mdc-form-field-input-control.mdc-text-field__input,.mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control{height:auto}.mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control.mdc-text-field__input[type=color]{height:23px}.mat-mdc-text-field-wrapper{height:auto;flex:auto;will-change:auto}.mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-left:0;--mat-mdc-form-field-label-offset-x: -16px}.mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-right:0}[dir=rtl] .mat-mdc-text-field-wrapper{padding-left:16px;padding-right:16px}[dir=rtl] .mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-left:0}[dir=rtl] .mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-right:0}.mat-form-field-disabled .mdc-text-field__input::placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color)}.mat-form-field-disabled .mdc-text-field__input::-moz-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color)}.mat-form-field-disabled .mdc-text-field__input::-webkit-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color)}.mat-form-field-disabled .mdc-text-field__input:-ms-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color)}.mat-mdc-form-field-label-always-float .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms;opacity:1}.mat-mdc-text-field-wrapper .mat-mdc-form-field-infix .mat-mdc-floating-label{left:auto;right:auto}.mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-text-field__input{display:inline-block}.mat-mdc-form-field .mat-mdc-text-field-wrapper.mdc-text-field .mdc-notched-outline__notch{padding-top:0}.mat-mdc-text-field-wrapper::before{content:none}.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field .mdc-notched-outline__notch{border-left:1px solid rgba(0,0,0,0)}[dir=rtl] .mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field .mdc-notched-outline__notch{border-left:none;border-right:1px solid rgba(0,0,0,0)}.mat-mdc-form-field-infix{min-height:var(--mat-form-field-container-height);padding-top:var(--mat-form-field-filled-with-label-container-padding-top);padding-bottom:var(--mat-form-field-filled-with-label-container-padding-bottom)}.mdc-text-field--outlined .mat-mdc-form-field-infix,.mdc-text-field--no-label .mat-mdc-form-field-infix{padding-top:var(--mat-form-field-container-vertical-padding);padding-bottom:var(--mat-form-field-container-vertical-padding)}.mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-floating-label{top:calc(var(--mat-form-field-container-height)/2)}.mdc-text-field--filled .mat-mdc-floating-label{display:var(--mat-form-field-filled-label-display, block)}.mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{--mat-mdc-form-field-label-transform: translateY(calc(calc(6.75px + var(--mat-form-field-container-height) / 2) * -1)) scale(var(--mat-mdc-form-field-floating-label-scale, 0.75));transform:var(--mat-mdc-form-field-label-transform)}.mat-mdc-form-field-subscript-wrapper{box-sizing:border-box;width:100%;position:relative}.mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-error-wrapper{position:absolute;top:0;left:0;right:0;padding:0 16px}.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-error-wrapper{position:static}.mat-mdc-form-field-bottom-align::before{content:"";display:inline-block;height:16px}.mat-mdc-form-field-bottom-align.mat-mdc-form-field-subscript-dynamic-size::before{content:unset}.mat-mdc-form-field-hint-end{order:1}.mat-mdc-form-field-hint-wrapper{display:flex}.mat-mdc-form-field-hint-spacer{flex:1 0 1em}.mat-mdc-form-field-error{display:block;color:var(--mat-form-field-error-text-color)}.mat-mdc-form-field-subscript-wrapper,.mat-mdc-form-field-bottom-align::before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-form-field-subscript-text-font);line-height:var(--mat-form-field-subscript-text-line-height);font-size:var(--mat-form-field-subscript-text-size);letter-spacing:var(--mat-form-field-subscript-text-tracking);font-weight:var(--mat-form-field-subscript-text-weight)}.mat-mdc-form-field-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;opacity:0;pointer-events:none;background-color:var(--mat-form-field-state-layer-color)}.mat-mdc-text-field-wrapper:hover .mat-mdc-form-field-focus-overlay{opacity:var(--mat-form-field-hover-state-layer-opacity)}.mat-mdc-form-field.mat-focused .mat-mdc-form-field-focus-overlay{opacity:var(--mat-form-field-focus-state-layer-opacity)}select.mat-mdc-form-field-input-control{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(0,0,0,0);display:inline-flex;box-sizing:border-box}select.mat-mdc-form-field-input-control:not(:disabled){cursor:pointer}select.mat-mdc-form-field-input-control:not(.mat-mdc-native-select-inline) option{color:var(--mat-form-field-select-option-text-color)}select.mat-mdc-form-field-input-control:not(.mat-mdc-native-select-inline) option:disabled{color:var(--mat-form-field-select-disabled-option-text-color)}.mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-infix::after{content:"";width:0;height:0;border-left:5px solid rgba(0,0,0,0);border-right:5px solid rgba(0,0,0,0);border-top:5px solid;position:absolute;right:0;top:50%;margin-top:-2.5px;pointer-events:none;color:var(--mat-form-field-enabled-select-arrow-color)}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-infix::after{right:auto;left:0}.mat-mdc-form-field-type-mat-native-select.mat-focused .mat-mdc-form-field-infix::after{color:var(--mat-form-field-focus-select-arrow-color)}.mat-mdc-form-field-type-mat-native-select.mat-form-field-disabled .mat-mdc-form-field-infix::after{color:var(--mat-form-field-disabled-select-arrow-color)}.mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:15px}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:0;padding-left:15px}.cdk-high-contrast-active .mat-form-field-appearance-fill .mat-mdc-text-field-wrapper{outline:solid 1px}.cdk-high-contrast-active .mat-form-field-appearance-fill.mat-form-field-disabled .mat-mdc-text-field-wrapper{outline-color:GrayText}.cdk-high-contrast-active .mat-form-field-appearance-fill.mat-focused .mat-mdc-text-field-wrapper{outline:dashed 3px}.cdk-high-contrast-active .mat-mdc-form-field.mat-focused .mdc-notched-outline{border:dashed 3px}.mat-mdc-form-field-input-control[type=date],.mat-mdc-form-field-input-control[type=datetime],.mat-mdc-form-field-input-control[type=datetime-local],.mat-mdc-form-field-input-control[type=month],.mat-mdc-form-field-input-control[type=week],.mat-mdc-form-field-input-control[type=time]{line-height:1}.mat-mdc-form-field-input-control::-webkit-datetime-edit{line-height:1;padding:0;margin-bottom:-2px}.mat-mdc-form-field{--mat-mdc-form-field-floating-label-scale: 0.75;display:inline-flex;flex-direction:column;min-width:0;text-align:left;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-form-field-container-text-font);line-height:var(--mat-form-field-container-text-line-height);font-size:var(--mat-form-field-container-text-size);letter-spacing:var(--mat-form-field-container-text-tracking);font-weight:var(--mat-form-field-container-text-weight)}[dir=rtl] .mat-mdc-form-field{text-align:right}.mat-mdc-form-field .mdc-text-field--outlined .mdc-floating-label--float-above{font-size:calc(var(--mat-form-field-outlined-label-text-populated-size)*var(--mat-mdc-form-field-floating-label-scale))}.mat-mdc-form-field .mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:var(--mat-form-field-outlined-label-text-populated-size)}.mat-mdc-form-field-flex{display:inline-flex;align-items:baseline;box-sizing:border-box;width:100%}.mat-mdc-text-field-wrapper{width:100%;z-index:0}.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix{align-self:center;line-height:0;pointer-events:auto;position:relative;z-index:1}.mat-mdc-form-field-icon-prefix>.mat-icon,.mat-mdc-form-field-icon-suffix>.mat-icon{padding:0 12px;box-sizing:content-box}.mat-mdc-form-field-icon-prefix{color:var(--mat-form-field-leading-icon-color)}.mat-form-field-disabled .mat-mdc-form-field-icon-prefix{color:var(--mat-form-field-disabled-leading-icon-color)}.mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-trailing-icon-color)}.mat-form-field-disabled .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-disabled-trailing-icon-color)}.mat-form-field-invalid .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-trailing-icon-color)}.mat-form-field-invalid:not(.mat-focused):not(.mat-form-field-disabled) .mat-mdc-text-field-wrapper:hover .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-hover-trailing-icon-color)}.mat-form-field-invalid.mat-focused .mat-mdc-text-field-wrapper .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-focus-trailing-icon-color)}.mat-mdc-form-field-icon-prefix,[dir=rtl] .mat-mdc-form-field-icon-suffix{padding:0 4px 0 0}.mat-mdc-form-field-icon-suffix,[dir=rtl] .mat-mdc-form-field-icon-prefix{padding:0 0 0 4px}.mat-mdc-form-field-subscript-wrapper .mat-icon,.mat-mdc-form-field label .mat-icon{width:1em;height:1em;font-size:inherit}.mat-mdc-form-field-infix{flex:auto;min-width:0;width:180px;position:relative;box-sizing:border-box}.mat-mdc-form-field .mdc-notched-outline__notch{margin-left:-1px;-webkit-clip-path:inset(-9em -999em -9em 1px);clip-path:inset(-9em -999em -9em 1px)}[dir=rtl] .mat-mdc-form-field .mdc-notched-outline__notch{margin-left:0;margin-right:-1px;-webkit-clip-path:inset(-9em 1px -9em -999em);clip-path:inset(-9em 1px -9em -999em)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input{transition:opacity 150ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}@media all{.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder{transition:opacity 67ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}}@media all{.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder{transition:opacity 67ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}}@media all{.mdc-text-field--no-label .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder,.mdc-text-field--focused .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms}}@media all{.mdc-text-field--no-label .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder,.mdc-text-field--focused .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder{transition-delay:40ms;transition-duration:110ms}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__affix{transition:opacity 150ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--filled.mdc-ripple-upgraded--background-focused .mdc-text-field__ripple::before,.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--filled:not(.mdc-ripple-upgraded):focus .mdc-text-field__ripple::before{transition-duration:75ms}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--outlined .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-text-field-outlined 250ms 1}@keyframes mdc-floating-label-shake-float-above-text-field-outlined{0%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 34.75px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(calc(0% - 34.75px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(calc(0% - 34.75px)) scale(0.75)}100%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 34.75px)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--textarea{transition:none}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--textarea.mdc-text-field--filled .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-textarea-filled 250ms 1}@keyframes mdc-floating-label-shake-float-above-textarea-filled{0%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 10.25px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(calc(0% - 10.25px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(calc(0% - 10.25px)) scale(0.75)}100%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 10.25px)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-textarea-outlined 250ms 1}@keyframes mdc-floating-label-shake-float-above-textarea-outlined{0%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 24.75px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(calc(0% - 24.75px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(calc(0% - 24.75px)) scale(0.75)}100%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 24.75px)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-text-field-outlined-leading-icon 250ms 1}@keyframes mdc-floating-label-shake-float-above-text-field-outlined-leading-icon{0%{transform:translateX(calc(0% - 32px)) translateY(calc(0% - 34.75px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 32px)) translateY(calc(0% - 34.75px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 32px)) translateY(calc(0% - 34.75px)) scale(0.75)}100%{transform:translateX(calc(0% - 32px)) translateY(calc(0% - 34.75px)) scale(0.75)}}[dir=rtl] .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--shake,.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--with-leading-icon.mdc-text-field--outlined[dir=rtl] .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-text-field-outlined-leading-icon 250ms 1}@keyframes mdc-floating-label-shake-float-above-text-field-outlined-leading-icon-rtl{0%{transform:translateX(calc(0% - -32px)) translateY(calc(0% - 34.75px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - -32px)) translateY(calc(0% - 34.75px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - -32px)) translateY(calc(0% - 34.75px)) scale(0.75)}100%{transform:translateX(calc(0% - -32px)) translateY(calc(0% - 34.75px)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-floating-label{transition:transform 150ms cubic-bezier(0.4, 0, 0.2, 1),color 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-standard 250ms 1}@keyframes mdc-floating-label-shake-float-above-standard{0%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 106%)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(calc(0% - 106%)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(calc(0% - 106%)) scale(0.75)}100%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 106%)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-line-ripple::after{transition:transform 180ms cubic-bezier(0.4, 0, 0.2, 1),opacity 180ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-notched-outline .mdc-floating-label{max-width:calc(100% + 1px)}.mdc-notched-outline--upgraded .mdc-floating-label--float-above{max-width:calc(133.3333333333% + 1px)}'],encapsulation:2,data:{animation:[o4e.transitionMessages]},changeDetection:0})}}return t})(),mx=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[Ki,An,NR,Ki]})}}return t})();const c4e=["*",[["mat-toolbar-row"]]],d4e=["*","mat-toolbar-row"];let u4e=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275dir=zt({type:t,selectors:[["mat-toolbar-row"]],hostAttrs:[1,"mat-toolbar-row"],exportAs:["matToolbarRow"],standalone:!0})}}return t})(),SA=(()=>{class t{constructor(e,i,r){this._elementRef=e,this._platform=i,this._document=r}ngAfterViewInit(){this._platform.isBrowser&&(this._checkToolbarMixedModes(),this._toolbarRows.changes.subscribe(()=>this._checkToolbarMixedModes()))}_checkToolbarMixedModes(){}static{this.\u0275fac=function(i){return new(i||t)(W(Un),W(Or),W(xi))}}static{this.\u0275cmp=At({type:t,selectors:[["mat-toolbar"]],contentQueries:function(i,r,o){if(1&i&&Ir(o,u4e,5),2&i){let s;mn(s=pn())&&(r._toolbarRows=s)}},hostAttrs:[1,"mat-toolbar"],hostVars:6,hostBindings:function(i,r){2&i&&(Cc(r.color?"mat-"+r.color:""),xn("mat-toolbar-multiple-rows",r._toolbarRows.length>0)("mat-toolbar-single-row",0===r._toolbarRows.length))},inputs:{color:"color"},exportAs:["matToolbar"],standalone:!0,features:[xr],ngContentSelectors:d4e,decls:2,vars:0,template:function(i,r){1&i&&(mo(c4e),zn(0),zn(1,1))},styles:[".mat-toolbar{background:var(--mat-toolbar-container-background-color);color:var(--mat-toolbar-container-text-color)}.mat-toolbar,.mat-toolbar h1,.mat-toolbar h2,.mat-toolbar h3,.mat-toolbar h4,.mat-toolbar h5,.mat-toolbar h6{font-family:var(--mat-toolbar-title-text-font);font-size:var(--mat-toolbar-title-text-size);line-height:var(--mat-toolbar-title-text-line-height);font-weight:var(--mat-toolbar-title-text-weight);letter-spacing:var(--mat-toolbar-title-text-tracking);margin:0}.cdk-high-contrast-active .mat-toolbar{outline:solid 1px}.mat-toolbar .mat-form-field-underline,.mat-toolbar .mat-form-field-ripple,.mat-toolbar .mat-focused .mat-form-field-ripple{background-color:currentColor}.mat-toolbar .mat-form-field-label,.mat-toolbar .mat-focused .mat-form-field-label,.mat-toolbar .mat-select-value,.mat-toolbar .mat-select-arrow,.mat-toolbar .mat-form-field.mat-focused .mat-select-arrow{color:inherit}.mat-toolbar .mat-input-element{caret-color:currentColor}.mat-toolbar .mat-mdc-button-base.mat-mdc-button-base.mat-unthemed{--mdc-text-button-label-text-color:var(--mat-toolbar-container-text-color);--mdc-outlined-button-label-text-color:var(--mat-toolbar-container-text-color)}.mat-toolbar-row,.mat-toolbar-single-row{display:flex;box-sizing:border-box;padding:0 16px;width:100%;flex-direction:row;align-items:center;white-space:nowrap;height:var(--mat-toolbar-standard-height)}@media(max-width: 599px){.mat-toolbar-row,.mat-toolbar-single-row{height:var(--mat-toolbar-mobile-height)}}.mat-toolbar-multiple-rows{display:flex;box-sizing:border-box;flex-direction:column;width:100%;min-height:var(--mat-toolbar-standard-height)}@media(max-width: 599px){.mat-toolbar-multiple-rows{min-height:var(--mat-toolbar-mobile-height)}}"],encapsulation:2,changeDetection:0})}}return t})(),Aee=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[Ki,Ki]})}}return t})();const gee=Bp({passive:!0});let h4e=(()=>{class t{constructor(e,i){this._platform=e,this._ngZone=i,this._monitoredElements=new Map}monitor(e){if(!this._platform.isBrowser)return y0;const i=eh(e),r=this._monitoredElements.get(i);if(r)return r.subject;const o=new Yt,s="cdk-text-field-autofilled",a=l=>{"cdk-text-field-autofill-start"!==l.animationName||i.classList.contains(s)?"cdk-text-field-autofill-end"===l.animationName&&i.classList.contains(s)&&(i.classList.remove(s),this._ngZone.run(()=>o.next({target:l.target,isAutofilled:!1}))):(i.classList.add(s),this._ngZone.run(()=>o.next({target:l.target,isAutofilled:!0})))};return this._ngZone.runOutsideAngular(()=>{i.addEventListener("animationstart",a,gee),i.classList.add("cdk-text-field-autofill-monitored")}),this._monitoredElements.set(i,{subject:o,unlisten:()=>{i.removeEventListener("animationstart",a,gee)}}),o}stopMonitoring(e){const i=eh(e),r=this._monitoredElements.get(i);r&&(r.unlisten(),r.subject.complete(),i.classList.remove("cdk-text-field-autofill-monitored"),i.classList.remove("cdk-text-field-autofilled"),this._monitoredElements.delete(i))}ngOnDestroy(){this._monitoredElements.forEach((e,i)=>this.stopMonitoring(i))}static{this.\u0275fac=function(i){return new(i||t)(oe(Or),oe(Fn))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})(),bee=(()=>{class t{get minRows(){return this._minRows}set minRows(e){this._minRows=Qf(e),this._setMinHeight()}get maxRows(){return this._maxRows}set maxRows(e){this._maxRows=Qf(e),this._setMaxHeight()}get enabled(){return this._enabled}set enabled(e){this._enabled!==e&&((this._enabled=e)?this.resizeToFitContent(!0):this.reset())}get placeholder(){return this._textareaElement.placeholder}set placeholder(e){this._cachedPlaceholderHeight=void 0,e?this._textareaElement.setAttribute("placeholder",e):this._textareaElement.removeAttribute("placeholder"),this._cacheTextareaPlaceholderHeight()}constructor(e,i,r,o){this._elementRef=e,this._platform=i,this._ngZone=r,this._destroyed=new Yt,this._enabled=!0,this._previousMinRows=-1,this._isViewInited=!1,this._handleFocusEvent=s=>{this._hasFocus="focus"===s.type},this._document=o,this._textareaElement=this._elementRef.nativeElement}_setMinHeight(){const e=this.minRows&&this._cachedLineHeight?this.minRows*this._cachedLineHeight+"px":null;e&&(this._textareaElement.style.minHeight=e)}_setMaxHeight(){const e=this.maxRows&&this._cachedLineHeight?this.maxRows*this._cachedLineHeight+"px":null;e&&(this._textareaElement.style.maxHeight=e)}ngAfterViewInit(){this._platform.isBrowser&&(this._initialHeight=this._textareaElement.style.height,this.resizeToFitContent(),this._ngZone.runOutsideAngular(()=>{k0(this._getWindow(),"resize").pipe(SR(16),Ur(this._destroyed)).subscribe(()=>this.resizeToFitContent(!0)),this._textareaElement.addEventListener("focus",this._handleFocusEvent),this._textareaElement.addEventListener("blur",this._handleFocusEvent)}),this._isViewInited=!0,this.resizeToFitContent(!0))}ngOnDestroy(){this._textareaElement.removeEventListener("focus",this._handleFocusEvent),this._textareaElement.removeEventListener("blur",this._handleFocusEvent),this._destroyed.next(),this._destroyed.complete()}_cacheTextareaLineHeight(){if(this._cachedLineHeight)return;let e=this._textareaElement.cloneNode(!1);e.rows=1,e.style.position="absolute",e.style.visibility="hidden",e.style.border="none",e.style.padding="0",e.style.height="",e.style.minHeight="",e.style.maxHeight="",e.style.overflow="hidden",this._textareaElement.parentNode.appendChild(e),this._cachedLineHeight=e.clientHeight,e.remove(),this._setMinHeight(),this._setMaxHeight()}_measureScrollHeight(){const e=this._textareaElement,i=e.style.marginBottom||"",r=this._platform.FIREFOX,o=r&&this._hasFocus,s=r?"cdk-textarea-autosize-measuring-firefox":"cdk-textarea-autosize-measuring";o&&(e.style.marginBottom=`${e.clientHeight}px`),e.classList.add(s);const a=e.scrollHeight-4;return e.classList.remove(s),o&&(e.style.marginBottom=i),a}_cacheTextareaPlaceholderHeight(){if(!this._isViewInited||null!=this._cachedPlaceholderHeight)return;if(!this.placeholder)return void(this._cachedPlaceholderHeight=0);const e=this._textareaElement.value;this._textareaElement.value=this._textareaElement.placeholder,this._cachedPlaceholderHeight=this._measureScrollHeight(),this._textareaElement.value=e}ngDoCheck(){this._platform.isBrowser&&this.resizeToFitContent()}resizeToFitContent(e=!1){if(!this._enabled||(this._cacheTextareaLineHeight(),this._cacheTextareaPlaceholderHeight(),!this._cachedLineHeight))return;const i=this._elementRef.nativeElement,r=i.value;if(!e&&this._minRows===this._previousMinRows&&r===this._previousValue)return;const o=this._measureScrollHeight(),s=Math.max(o,this._cachedPlaceholderHeight||0);i.style.height=`${s}px`,this._ngZone.runOutsideAngular(()=>{typeof requestAnimationFrame<"u"?requestAnimationFrame(()=>this._scrollToCaretPosition(i)):setTimeout(()=>this._scrollToCaretPosition(i))}),this._previousValue=r,this._previousMinRows=this._minRows}reset(){void 0!==this._initialHeight&&(this._textareaElement.style.height=this._initialHeight)}_noopInputHandler(){}_getDocument(){return this._document||document}_getWindow(){return this._getDocument().defaultView||window}_scrollToCaretPosition(e){const{selectionStart:i,selectionEnd:r}=e;!this._destroyed.isStopped&&this._hasFocus&&e.setSelectionRange(i,r)}static{this.\u0275fac=function(i){return new(i||t)(W(Un),W(Or),W(Fn),W(xi,8))}}static{this.\u0275dir=zt({type:t,selectors:[["textarea","cdkTextareaAutosize",""]],hostAttrs:["rows","1",1,"cdk-textarea-autosize"],hostBindings:function(i,r){1&i&&We("input",function(){return r._noopInputHandler()})},inputs:{minRows:[bt.None,"cdkAutosizeMinRows","minRows"],maxRows:[bt.None,"cdkAutosizeMaxRows","maxRows"],enabled:[bt.HasDecoratorInputTransform,"cdkTextareaAutosize","enabled",qn],placeholder:"placeholder"},exportAs:["cdkTextareaAutosize"],standalone:!0,features:[Ho]})}}return t})(),f4e=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({})}}return t})();const m4e=new ot("MAT_INPUT_VALUE_ACCESSOR"),p4e=["button","checkbox","file","hidden","image","radio","range","reset","submit"];let A4e=0,_m=(()=>{class t{get disabled(){return this._disabled}set disabled(e){this._disabled=$s(e),this.focused&&(this.focused=!1,this.stateChanges.next())}get id(){return this._id}set id(e){this._id=e||this._uid}get required(){return this._required??this.ngControl?.control?.hasValidator(ZD.required)??!1}set required(e){this._required=$s(e)}get type(){return this._type}set type(e){this._type=e||"text",this._validateType(),!this._isTextarea&&MW().has(this._type)&&(this._elementRef.nativeElement.type=this._type)}get errorStateMatcher(){return this._errorStateTracker.matcher}set errorStateMatcher(e){this._errorStateTracker.matcher=e}get value(){return this._inputValueAccessor.value}set value(e){e!==this.value&&(this._inputValueAccessor.value=e,this.stateChanges.next())}get readonly(){return this._readonly}set readonly(e){this._readonly=$s(e)}get errorState(){return this._errorStateTracker.errorState}set errorState(e){this._errorStateTracker.errorState=e}constructor(e,i,r,o,s,a,l,c,d,u){this._elementRef=e,this._platform=i,this.ngControl=r,this._autofillMonitor=c,this._formField=u,this._uid="mat-input-"+A4e++,this.focused=!1,this.stateChanges=new Yt,this.controlType="mat-input",this.autofilled=!1,this._disabled=!1,this._type="text",this._readonly=!1,this._neverEmptyInputTypes=["date","datetime","datetime-local","month","time","week"].filter(A=>MW().has(A)),this._iOSKeyupListener=A=>{const v=A.target;!v.value&&0===v.selectionStart&&0===v.selectionEnd&&(v.setSelectionRange(1,1),v.setSelectionRange(0,0))};const h=this._elementRef.nativeElement,m=h.nodeName.toLowerCase();this._inputValueAccessor=l||h,this._previousNativeValue=this.value,this.id=this.id,i.IOS&&d.runOutsideAngular(()=>{e.nativeElement.addEventListener("keyup",this._iOSKeyupListener)}),this._errorStateTracker=new XR(a,r,s,o,this.stateChanges),this._isServer=!this._platform.isBrowser,this._isNativeSelect="select"===m,this._isTextarea="textarea"===m,this._isInFormField=!!u,this._isNativeSelect&&(this.controlType=h.multiple?"mat-native-select-multiple":"mat-native-select")}ngAfterViewInit(){this._platform.isBrowser&&this._autofillMonitor.monitor(this._elementRef.nativeElement).subscribe(e=>{this.autofilled=e.isAutofilled,this.stateChanges.next()})}ngOnChanges(){this.stateChanges.next()}ngOnDestroy(){this.stateChanges.complete(),this._platform.isBrowser&&this._autofillMonitor.stopMonitoring(this._elementRef.nativeElement),this._platform.IOS&&this._elementRef.nativeElement.removeEventListener("keyup",this._iOSKeyupListener)}ngDoCheck(){this.ngControl&&(this.updateErrorState(),null!==this.ngControl.disabled&&this.ngControl.disabled!==this.disabled&&(this.disabled=this.ngControl.disabled,this.stateChanges.next())),this._dirtyCheckNativeValue(),this._dirtyCheckPlaceholder()}focus(e){this._elementRef.nativeElement.focus(e)}updateErrorState(){this._errorStateTracker.updateErrorState()}_focusChanged(e){e!==this.focused&&(this.focused=e,this.stateChanges.next())}_onInput(){}_dirtyCheckNativeValue(){const e=this._elementRef.nativeElement.value;this._previousNativeValue!==e&&(this._previousNativeValue=e,this.stateChanges.next())}_dirtyCheckPlaceholder(){const e=this._getPlaceholder();if(e!==this._previousPlaceholder){const i=this._elementRef.nativeElement;this._previousPlaceholder=e,e?i.setAttribute("placeholder",e):i.removeAttribute("placeholder")}}_getPlaceholder(){return this.placeholder||null}_validateType(){p4e.indexOf(this._type)}_isNeverEmpty(){return this._neverEmptyInputTypes.indexOf(this._type)>-1}_isBadInput(){let e=this._elementRef.nativeElement.validity;return e&&e.badInput}get empty(){return!(this._isNeverEmpty()||this._elementRef.nativeElement.value||this._isBadInput()||this.autofilled)}get shouldLabelFloat(){if(this._isNativeSelect){const e=this._elementRef.nativeElement,i=e.options[0];return this.focused||e.multiple||!this.empty||!!(e.selectedIndex>-1&&i&&i.label)}return this.focused||!this.empty}setDescribedByIds(e){e.length?this._elementRef.nativeElement.setAttribute("aria-describedby",e.join(" ")):this._elementRef.nativeElement.removeAttribute("aria-describedby")}onContainerClick(){this.focused||this.focus()}_isInlineSelect(){const e=this._elementRef.nativeElement;return this._isNativeSelect&&(e.multiple||e.size>1)}static{this.\u0275fac=function(i){return new(i||t)(W(Un),W(Or),W(Ld,10),W(Iy,8),W(By,8),W(l$),W(m4e,10),W(h4e),W(Fn),W(EN,8))}}static{this.\u0275dir=zt({type:t,selectors:[["input","matInput",""],["textarea","matInput",""],["select","matNativeControl",""],["input","matNativeControl",""],["textarea","matNativeControl",""]],hostAttrs:[1,"mat-mdc-input-element"],hostVars:18,hostBindings:function(i,r){1&i&&We("focus",function(){return r._focusChanged(!0)})("blur",function(){return r._focusChanged(!1)})("input",function(){return r._onInput()}),2&i&&(Id("id",r.id)("disabled",r.disabled)("required",r.required),oi("name",r.name||null)("readonly",r.readonly&&!r._isNativeSelect||null)("aria-invalid",r.empty&&r.required?null:r.errorState)("aria-required",r.required)("id",r.id),xn("mat-input-server",r._isServer)("mat-mdc-form-field-textarea-control",r._isInFormField&&r._isTextarea)("mat-mdc-form-field-input-control",r._isInFormField)("mdc-text-field__input",r._isInFormField)("mat-mdc-native-select-inline",r._isInlineSelect()))},inputs:{disabled:"disabled",id:"id",placeholder:"placeholder",name:"name",required:"required",type:"type",errorStateMatcher:"errorStateMatcher",userAriaDescribedBy:[bt.None,"aria-describedby","userAriaDescribedBy"],value:"value",readonly:"readonly"},exportAs:["matInput"],standalone:!0,features:[ni([{provide:CN,useExisting:t}]),cr]})}}return t})(),MN=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[Ki,mx,mx,f4e,Ki]})}}return t})();const g4e=["switch"],b4e=["*"];function _4e(t,n){1&t&&(I(0,"div",10),bl(),I(1,"svg",12),_e(2,"path",13),O(),I(3,"svg",14),_e(4,"path",15),O()())}const v4e=new ot("mat-slide-toggle-default-options",{providedIn:"root",factory:()=>({disableToggleValue:!1,hideIcon:!1})}),y4e={provide:Fs,useExisting:hi(()=>zb),multi:!0};class _ee{constructor(n,e){this.source=n,this.checked=e}}let w4e=0,zb=(()=>{class t{_createChangeEvent(e){return new _ee(this,e)}get buttonId(){return`${this.id||this._uniqueId}-button`}focus(){this._switchElement.nativeElement.focus()}get checked(){return this._checked}set checked(e){this._checked=e,this._changeDetectorRef.markForCheck()}get inputId(){return`${this.id||this._uniqueId}-input`}constructor(e,i,r,o,s,a){this._elementRef=e,this._focusMonitor=i,this._changeDetectorRef=r,this.defaults=s,this._onChange=l=>{},this._onTouched=()=>{},this._validatorOnChange=()=>{},this._checked=!1,this.name=null,this.labelPosition="after",this.ariaLabel=null,this.ariaLabelledby=null,this.disabled=!1,this.disableRipple=!1,this.tabIndex=0,this.change=new Ln,this.toggleChange=new Ln,this.tabIndex=parseInt(o)||0,this.color=s.color||"accent",this._noopAnimations="NoopAnimations"===a,this.id=this._uniqueId="mat-mdc-slide-toggle-"+ ++w4e,this.hideIcon=s.hideIcon??!1,this._labelId=this._uniqueId+"-label"}ngAfterContentInit(){this._focusMonitor.monitor(this._elementRef,!0).subscribe(e=>{"keyboard"===e||"program"===e?(this._focused=!0,this._changeDetectorRef.markForCheck()):e||Promise.resolve().then(()=>{this._focused=!1,this._onTouched(),this._changeDetectorRef.markForCheck()})})}ngOnChanges(e){e.required&&this._validatorOnChange()}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef)}writeValue(e){this.checked=!!e}registerOnChange(e){this._onChange=e}registerOnTouched(e){this._onTouched=e}validate(e){return this.required&&!0!==e.value?{required:!0}:null}registerOnValidatorChange(e){this._validatorOnChange=e}setDisabledState(e){this.disabled=e,this._changeDetectorRef.markForCheck()}toggle(){this.checked=!this.checked,this._onChange(this.checked)}_emitChangeEvent(){this._onChange(this.checked),this.change.emit(this._createChangeEvent(this.checked))}_handleClick(){this.toggleChange.emit(),this.defaults.disableToggleValue||(this.checked=!this.checked,this._onChange(this.checked),this.change.emit(new _ee(this,this.checked)))}_getAriaLabelledBy(){return this.ariaLabelledby?this.ariaLabelledby:this.ariaLabel?null:this._labelId}static{this.\u0275fac=function(i){return new(i||t)(W(Un),W(ih),W(Ao),Kl("tabindex"),W(v4e),W(ts,8))}}static{this.\u0275cmp=At({type:t,selectors:[["mat-slide-toggle"]],viewQuery:function(i,r){if(1&i&&ti(g4e,5),2&i){let o;mn(o=pn())&&(r._switchElement=o.first)}},hostAttrs:[1,"mat-mdc-slide-toggle"],hostVars:13,hostBindings:function(i,r){2&i&&(Id("id",r.id),oi("tabindex",null)("aria-label",null)("name",null)("aria-labelledby",null),Cc(r.color?"mat-"+r.color:""),xn("mat-mdc-slide-toggle-focused",r._focused)("mat-mdc-slide-toggle-checked",r.checked)("_mat-animation-noopable",r._noopAnimations))},inputs:{name:"name",id:"id",labelPosition:"labelPosition",ariaLabel:[bt.None,"aria-label","ariaLabel"],ariaLabelledby:[bt.None,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[bt.None,"aria-describedby","ariaDescribedby"],required:[bt.HasDecoratorInputTransform,"required","required",qn],color:"color",disabled:[bt.HasDecoratorInputTransform,"disabled","disabled",qn],disableRipple:[bt.HasDecoratorInputTransform,"disableRipple","disableRipple",qn],tabIndex:[bt.HasDecoratorInputTransform,"tabIndex","tabIndex",e=>null==e?0:sa(e)],checked:[bt.HasDecoratorInputTransform,"checked","checked",qn],hideIcon:[bt.HasDecoratorInputTransform,"hideIcon","hideIcon",qn]},outputs:{change:"change",toggleChange:"toggleChange"},exportAs:["matSlideToggle"],standalone:!0,features:[ni([y4e,{provide:rs,useExisting:t,multi:!0}]),Ho,cr,xr],ngContentSelectors:b4e,decls:13,vars:24,consts:[["switch",""],["mat-internal-form-field","",3,"labelPosition"],["role","switch","type","button",1,"mdc-switch",3,"click","tabIndex","disabled"],[1,"mdc-switch__track"],[1,"mdc-switch__handle-track"],[1,"mdc-switch__handle"],[1,"mdc-switch__shadow"],[1,"mdc-elevation-overlay"],[1,"mdc-switch__ripple"],["mat-ripple","",1,"mat-mdc-slide-toggle-ripple","mat-mdc-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mdc-switch__icons"],[1,"mdc-label",3,"click","for"],["viewBox","0 0 24 24","aria-hidden","true",1,"mdc-switch__icon","mdc-switch__icon--on"],["d","M19.69,5.23L8.96,15.96l-4.23-4.23L2.96,13.5l6,6L21.46,7L19.69,5.23z"],["viewBox","0 0 24 24","aria-hidden","true",1,"mdc-switch__icon","mdc-switch__icon--off"],["d","M20 13H4v-2h16v2z"]],template:function(i,r){if(1&i){const o=kn();mo(),I(0,"div",1)(1,"button",2,0),We("click",function(){return Ft(o),kt(r._handleClick())}),_e(3,"div",3),I(4,"div",4)(5,"div",5)(6,"div",6),_e(7,"div",7),O(),I(8,"div",8),_e(9,"div",9),O(),ft(10,_4e,5,0,"div",10),O()()(),I(11,"label",11),We("click",function(a){return Ft(o),kt(a.stopPropagation())}),zn(12),O()()}if(2&i){const o=Co(2);ue("labelPosition",r.labelPosition),H(),xn("mdc-switch--selected",r.checked)("mdc-switch--unselected",!r.checked)("mdc-switch--checked",r.checked)("mdc-switch--disabled",r.disabled),ue("tabIndex",r.disabled?-1:r.tabIndex)("disabled",r.disabled),oi("id",r.buttonId)("name",r.name)("aria-label",r.ariaLabel)("aria-labelledby",r._getAriaLabelledBy())("aria-describedby",r.ariaDescribedby)("aria-required",r.required||null)("aria-checked",r.checked),H(8),ue("matRippleTrigger",o)("matRippleDisabled",r.disableRipple||r.disabled)("matRippleCentered",!0),H(),yt(10,r.hideIcon?-1:10),H(),ue("for",r.buttonId),oi("id",r._labelId)}},dependencies:[rh,w$],styles:['.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:var(--mdc-elevation-overlay-opacity);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1);background-color:var(--mdc-elevation-overlay-color)}.mdc-switch{align-items:center;background:none;border:none;cursor:pointer;display:inline-flex;flex-shrink:0;margin:0;outline:none;overflow:visible;padding:0;position:relative}.mdc-switch[hidden]{display:none}.mdc-switch:disabled{cursor:default;pointer-events:none}.mdc-switch__track{overflow:hidden;position:relative;width:100%}.mdc-switch__track::before,.mdc-switch__track::after{border:1px solid rgba(0,0,0,0);border-radius:inherit;box-sizing:border-box;content:"";height:100%;left:0;position:absolute;width:100%}@media screen and (forced-colors: active){.mdc-switch__track::before,.mdc-switch__track::after{border-color:currentColor}}.mdc-switch__track::before{transition:transform 75ms 0ms cubic-bezier(0, 0, 0.2, 1);transform:translateX(0)}.mdc-switch__track::after{transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.6, 1);transform:translateX(-100%)}[dir=rtl] .mdc-switch__track::after,.mdc-switch__track[dir=rtl]::after{transform:translateX(100%)}.mdc-switch--selected .mdc-switch__track::before{transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.6, 1);transform:translateX(100%)}[dir=rtl] .mdc-switch--selected .mdc-switch__track::before,.mdc-switch--selected .mdc-switch__track[dir=rtl]::before{transform:translateX(-100%)}.mdc-switch--selected .mdc-switch__track::after{transition:transform 75ms 0ms cubic-bezier(0, 0, 0.2, 1);transform:translateX(0)}.mdc-switch__handle-track{height:100%;pointer-events:none;position:absolute;top:0;transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1);left:0;right:auto;transform:translateX(0)}[dir=rtl] .mdc-switch__handle-track,.mdc-switch__handle-track[dir=rtl]{left:auto;right:0}.mdc-switch--selected .mdc-switch__handle-track{transform:translateX(100%)}[dir=rtl] .mdc-switch--selected .mdc-switch__handle-track,.mdc-switch--selected .mdc-switch__handle-track[dir=rtl]{transform:translateX(-100%)}.mdc-switch__handle{display:flex;pointer-events:auto;position:absolute;top:50%;transform:translateY(-50%);left:0;right:auto}[dir=rtl] .mdc-switch__handle,.mdc-switch__handle[dir=rtl]{left:auto;right:0}.mdc-switch__handle::before,.mdc-switch__handle::after{border:1px solid rgba(0,0,0,0);border-radius:inherit;box-sizing:border-box;content:"";width:100%;height:100%;left:0;position:absolute;top:0;transition:background-color 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1),border-color 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1);z-index:-1}@media screen and (forced-colors: active){.mdc-switch__handle::before,.mdc-switch__handle::after{border-color:currentColor}}.mdc-switch__shadow{border-radius:inherit;bottom:0;left:0;position:absolute;right:0;top:0}.mdc-elevation-overlay{bottom:0;left:0;right:0;top:0}.mdc-switch__ripple{left:50%;position:absolute;top:50%;transform:translate(-50%, -50%);z-index:-1}.mdc-switch:disabled .mdc-switch__ripple{display:none}.mdc-switch__icons{height:100%;position:relative;width:100%;z-index:1}.mdc-switch__icon{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0;opacity:0;transition:opacity 30ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mdc-switch--selected .mdc-switch__icon--on,.mdc-switch--unselected .mdc-switch__icon--off{opacity:1;transition:opacity 45ms 30ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-slide-toggle .mdc-switch--disabled+label{color:var(--mdc-switch-disabled-label-text-color)}.mdc-switch{width:var(--mdc-switch-track-width)}.mdc-switch.mdc-switch--selected:enabled .mdc-switch__handle::after{background:var(--mdc-switch-selected-handle-color)}.mdc-switch.mdc-switch--selected:enabled:hover:not(:focus):not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-selected-hover-handle-color)}.mdc-switch.mdc-switch--selected:enabled:focus:not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-selected-focus-handle-color)}.mdc-switch.mdc-switch--selected:enabled:active .mdc-switch__handle::after{background:var(--mdc-switch-selected-pressed-handle-color)}.mdc-switch.mdc-switch--selected:disabled .mdc-switch__handle::after{background:var(--mdc-switch-disabled-selected-handle-color)}.mdc-switch.mdc-switch--unselected:enabled .mdc-switch__handle::after{background:var(--mdc-switch-unselected-handle-color)}.mdc-switch.mdc-switch--unselected:enabled:hover:not(:focus):not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-unselected-hover-handle-color)}.mdc-switch.mdc-switch--unselected:enabled:focus:not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-unselected-focus-handle-color)}.mdc-switch.mdc-switch--unselected:enabled:active .mdc-switch__handle::after{background:var(--mdc-switch-unselected-pressed-handle-color)}.mdc-switch.mdc-switch--unselected:disabled .mdc-switch__handle::after{background:var(--mdc-switch-disabled-unselected-handle-color)}.mdc-switch .mdc-switch__handle::before{background:var(--mdc-switch-handle-surface-color)}.mdc-switch:enabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-handle-elevation)}.mdc-switch:disabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-disabled-handle-elevation)}.mdc-switch .mdc-switch__focus-ring-wrapper,.mdc-switch .mdc-switch__handle{height:var(--mdc-switch-handle-height)}.mdc-switch .mdc-switch__handle{border-radius:var(--mdc-switch-handle-shape)}.mdc-switch .mdc-switch__handle{width:var(--mdc-switch-handle-width)}.mdc-switch .mdc-switch__handle-track{width:calc(100% - var(--mdc-switch-handle-width))}.mdc-switch.mdc-switch--selected:enabled .mdc-switch__icon{fill:var(--mdc-switch-selected-icon-color)}.mdc-switch.mdc-switch--selected:disabled .mdc-switch__icon{fill:var(--mdc-switch-disabled-selected-icon-color)}.mdc-switch.mdc-switch--unselected:enabled .mdc-switch__icon{fill:var(--mdc-switch-unselected-icon-color)}.mdc-switch.mdc-switch--unselected:disabled .mdc-switch__icon{fill:var(--mdc-switch-disabled-unselected-icon-color)}.mdc-switch.mdc-switch--selected:disabled .mdc-switch__icons{opacity:var(--mdc-switch-disabled-selected-icon-opacity)}.mdc-switch.mdc-switch--unselected:disabled .mdc-switch__icons{opacity:var(--mdc-switch-disabled-unselected-icon-opacity)}.mdc-switch.mdc-switch--selected .mdc-switch__icon{width:var(--mdc-switch-selected-icon-size);height:var(--mdc-switch-selected-icon-size)}.mdc-switch.mdc-switch--unselected .mdc-switch__icon{width:var(--mdc-switch-unselected-icon-size);height:var(--mdc-switch-unselected-icon-size)}.mdc-switch.mdc-switch--selected:enabled:hover:not(:focus) .mdc-switch__ripple::before,.mdc-switch.mdc-switch--selected:enabled:hover:not(:focus) .mdc-switch__ripple::after{background-color:var(--mdc-switch-selected-hover-state-layer-color)}.mdc-switch.mdc-switch--selected:enabled:focus .mdc-switch__ripple::before,.mdc-switch.mdc-switch--selected:enabled:focus .mdc-switch__ripple::after{background-color:var(--mdc-switch-selected-focus-state-layer-color)}.mdc-switch.mdc-switch--selected:enabled:active .mdc-switch__ripple::before,.mdc-switch.mdc-switch--selected:enabled:active .mdc-switch__ripple::after{background-color:var(--mdc-switch-selected-pressed-state-layer-color)}.mdc-switch.mdc-switch--unselected:enabled:hover:not(:focus) .mdc-switch__ripple::before,.mdc-switch.mdc-switch--unselected:enabled:hover:not(:focus) .mdc-switch__ripple::after{background-color:var(--mdc-switch-unselected-hover-state-layer-color)}.mdc-switch.mdc-switch--unselected:enabled:focus .mdc-switch__ripple::before,.mdc-switch.mdc-switch--unselected:enabled:focus .mdc-switch__ripple::after{background-color:var(--mdc-switch-unselected-focus-state-layer-color)}.mdc-switch.mdc-switch--unselected:enabled:active .mdc-switch__ripple::before,.mdc-switch.mdc-switch--unselected:enabled:active .mdc-switch__ripple::after{background-color:var(--mdc-switch-unselected-pressed-state-layer-color)}.mdc-switch.mdc-switch--selected:enabled:hover:not(:focus):hover .mdc-switch__ripple::before,.mdc-switch.mdc-switch--selected:enabled:hover:not(:focus).mdc-ripple-surface--hover .mdc-switch__ripple::before{opacity:var(--mdc-switch-selected-hover-state-layer-opacity)}.mdc-switch.mdc-switch--selected:enabled:focus.mdc-ripple-upgraded--background-focused .mdc-switch__ripple::before,.mdc-switch.mdc-switch--selected:enabled:focus:not(.mdc-ripple-upgraded):focus .mdc-switch__ripple::before{transition-duration:75ms;opacity:var(--mdc-switch-selected-focus-state-layer-opacity)}.mdc-switch.mdc-switch--selected:enabled:active:not(.mdc-ripple-upgraded) .mdc-switch__ripple::after{transition:opacity 150ms linear}.mdc-switch.mdc-switch--selected:enabled:active:not(.mdc-ripple-upgraded):active .mdc-switch__ripple::after{transition-duration:75ms;opacity:var(--mdc-switch-selected-pressed-state-layer-opacity)}.mdc-switch.mdc-switch--selected:enabled:active.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-switch-selected-pressed-state-layer-opacity)}.mdc-switch.mdc-switch--unselected:enabled:hover:not(:focus):hover .mdc-switch__ripple::before,.mdc-switch.mdc-switch--unselected:enabled:hover:not(:focus).mdc-ripple-surface--hover .mdc-switch__ripple::before{opacity:var(--mdc-switch-unselected-hover-state-layer-opacity)}.mdc-switch.mdc-switch--unselected:enabled:focus.mdc-ripple-upgraded--background-focused .mdc-switch__ripple::before,.mdc-switch.mdc-switch--unselected:enabled:focus:not(.mdc-ripple-upgraded):focus .mdc-switch__ripple::before{transition-duration:75ms;opacity:var(--mdc-switch-unselected-focus-state-layer-opacity)}.mdc-switch.mdc-switch--unselected:enabled:active:not(.mdc-ripple-upgraded) .mdc-switch__ripple::after{transition:opacity 150ms linear}.mdc-switch.mdc-switch--unselected:enabled:active:not(.mdc-ripple-upgraded):active .mdc-switch__ripple::after{transition-duration:75ms;opacity:var(--mdc-switch-unselected-pressed-state-layer-opacity)}.mdc-switch.mdc-switch--unselected:enabled:active.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-switch-unselected-pressed-state-layer-opacity)}.mdc-switch .mdc-switch__ripple{height:var(--mdc-switch-state-layer-size);width:var(--mdc-switch-state-layer-size)}.mdc-switch .mdc-switch__track{height:var(--mdc-switch-track-height)}.mdc-switch:disabled .mdc-switch__track{opacity:var(--mdc-switch-disabled-track-opacity)}.mdc-switch:enabled .mdc-switch__track::after{background:var(--mdc-switch-selected-track-color)}.mdc-switch:enabled:hover:not(:focus):not(:active) .mdc-switch__track::after{background:var(--mdc-switch-selected-hover-track-color)}.mdc-switch:enabled:focus:not(:active) .mdc-switch__track::after{background:var(--mdc-switch-selected-focus-track-color)}.mdc-switch:enabled:active .mdc-switch__track::after{background:var(--mdc-switch-selected-pressed-track-color)}.mdc-switch:disabled .mdc-switch__track::after{background:var(--mdc-switch-disabled-selected-track-color)}.mdc-switch:enabled .mdc-switch__track::before{background:var(--mdc-switch-unselected-track-color)}.mdc-switch:enabled:hover:not(:focus):not(:active) .mdc-switch__track::before{background:var(--mdc-switch-unselected-hover-track-color)}.mdc-switch:enabled:focus:not(:active) .mdc-switch__track::before{background:var(--mdc-switch-unselected-focus-track-color)}.mdc-switch:enabled:active .mdc-switch__track::before{background:var(--mdc-switch-unselected-pressed-track-color)}.mdc-switch:disabled .mdc-switch__track::before{background:var(--mdc-switch-disabled-unselected-track-color)}.mdc-switch .mdc-switch__track{border-radius:var(--mdc-switch-track-shape)}.mdc-switch:enabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-handle-elevation-shadow)}.mdc-switch:disabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-disabled-handle-elevation-shadow)}.mat-mdc-slide-toggle{display:inline-block;-webkit-tap-highlight-color:rgba(0,0,0,0);outline:0}.mat-mdc-slide-toggle .mat-mdc-slide-toggle-ripple,.mat-mdc-slide-toggle .mdc-switch__ripple::after{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:50%;pointer-events:none}.mat-mdc-slide-toggle .mat-mdc-slide-toggle-ripple:not(:empty),.mat-mdc-slide-toggle .mdc-switch__ripple::after:not(:empty){transform:translateZ(0)}.mat-mdc-slide-toggle .mdc-switch__ripple::after{content:"";opacity:0}.mat-mdc-slide-toggle .mdc-switch:hover .mdc-switch__ripple::after{opacity:.04;transition:opacity 75ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-slide-toggle.mat-mdc-slide-toggle-focused .mdc-switch .mdc-switch__ripple::after{opacity:.12}.mat-mdc-slide-toggle.mat-mdc-slide-toggle-focused .mat-mdc-focus-indicator::before{content:""}.mat-mdc-slide-toggle .mat-ripple-element{opacity:.12}.mat-mdc-slide-toggle .mat-mdc-focus-indicator::before{border-radius:50%}.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle-track,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-elevation-overlay,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__icon,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle::before,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle::after,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__track::before,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__track::after{transition:none}.mat-mdc-slide-toggle .mdc-switch:enabled+.mdc-label{cursor:pointer}.mdc-switch__handle{transition:width 75ms cubic-bezier(0.4, 0, 0.2, 1),height 75ms cubic-bezier(0.4, 0, 0.2, 1),margin 75ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-switch--selected .mdc-switch__track::before{opacity:var(--mat-switch-hidden-track-opacity);transition:var(--mat-switch-hidden-track-transition)}.mdc-switch--selected .mdc-switch__track::after{opacity:var(--mat-switch-visible-track-opacity);transition:var(--mat-switch-visible-track-transition)}.mdc-switch--unselected .mdc-switch__track::before{opacity:var(--mat-switch-visible-track-opacity);transition:var(--mat-switch-visible-track-transition)}.mdc-switch--unselected .mdc-switch__track::after{opacity:var(--mat-switch-hidden-track-opacity);transition:var(--mat-switch-hidden-track-transition)}.mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle{width:var(--mat-switch-unselected-handle-size);height:var(--mat-switch-unselected-handle-size)}.mat-mdc-slide-toggle .mdc-switch--selected .mdc-switch__handle{width:var(--mat-switch-selected-handle-size);height:var(--mat-switch-selected-handle-size)}.mat-mdc-slide-toggle .mdc-switch__handle:has(.mdc-switch__icons){width:var(--mat-switch-with-icon-handle-size);height:var(--mat-switch-with-icon-handle-size)}.mat-mdc-slide-toggle:active .mdc-switch:not(.mdc-switch--disabled) .mdc-switch__handle{width:var(--mat-switch-pressed-handle-size);height:var(--mat-switch-pressed-handle-size)}.mat-mdc-slide-toggle .mdc-switch--selected .mdc-switch__handle{margin:var(--mat-switch-selected-handle-horizontal-margin)}.mat-mdc-slide-toggle .mdc-switch--selected .mdc-switch__handle:has(.mdc-switch__icons){margin:var(--mat-switch-selected-with-icon-handle-horizontal-margin)}.mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle{margin:var(--mat-switch-unselected-handle-horizontal-margin)}.mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle:has(.mdc-switch__icons){margin:var(--mat-switch-unselected-with-icon-handle-horizontal-margin)}.mat-mdc-slide-toggle:active .mdc-switch--selected:not(.mdc-switch--disabled) .mdc-switch__handle{margin:var(--mat-switch-selected-pressed-handle-horizontal-margin)}.mat-mdc-slide-toggle:active .mdc-switch--unselected:not(.mdc-switch--disabled) .mdc-switch__handle{margin:var(--mat-switch-unselected-pressed-handle-horizontal-margin)}.mdc-switch__track::after,.mdc-switch__track::before{border-width:var(--mat-switch-track-outline-width);border-color:var(--mat-switch-track-outline-color)}.mdc-switch--selected .mdc-switch__track::after,.mdc-switch--selected .mdc-switch__track::before{border-width:var(--mat-switch-selected-track-outline-width)}.mdc-switch--disabled .mdc-switch__track::after,.mdc-switch--disabled .mdc-switch__track::before{border-width:var(--mat-switch-disabled-unselected-track-outline-width);border-color:var(--mat-switch-disabled-unselected-track-outline-color)}.mdc-switch--disabled.mdc-switch--selected .mdc-switch__handle::after{opacity:var(--mat-switch-disabled-selected-handle-opacity)}.mdc-switch--disabled.mdc-switch--unselected .mdc-switch__handle::after{opacity:var(--mat-switch-disabled-unselected-handle-opacity)}'],encapsulation:2,changeDetection:0})}}return t})(),vee=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[zb,Ki,Ki]})}}return t})();function E4e(t,n){if(1&t&&(I(0,"mat-error"),ve(1),O()),2&t){const e=He();H(),ur(e.scenarioName.getError("Error"))}}function M4e(t,n){if(1&t){const e=kn();I(0,"mat-slide-toggle",6),We("change",function(){const r=Ft(e).$implicit;return kt(He().handleScenarioMetricPropertySelectionChange(r))}),ve(1),O()}if(2&t){const e=n.$implicit;ue("checked",e.isSelected),H(),an(" ",e.metricName?e.metricType+" ("+e.metricName+")":e.metricType," ")}}function S4e(t,n){1&t&&(I(0,"mat-error"),ve(1,"You cannot create an empty Scenario."),O())}let T4e=(()=>{class t{constructor(e,i,r){this.state=e,this.scenarioName=new QG("",[t=>0===t.value.length?{Error:"Scenario name is required"}:Fh.isScenarioExisting(t.value)?{Error:"A Scenario with this name already exists"}:null]),this.scenarioNameErrorField="Scenario name is required",this.areAnyScenarioMetricPropertiesSelected=!0,this.scenarioContent=((t,n)=>{const{dynamicSettings:e,appSettings:i,fileSettings:r}=t,o=[{metricType:"Camera-Position",metricName:"",savedValues:{...n},isSelected:!0,isDisabled:!1},{metricType:"Area-Metric",metricName:e.areaMetric,savedValues:e.margin,isSelected:!0,isDisabled:!1},{metricType:"Height-Metric",metricName:e.heightMetric,savedValues:{heightSlider:i.scaling,labelSlider:i.amountOfTopLabels},isSelected:!0,isDisabled:!1},{metricType:"Color-Metric",metricName:e.colorMetric,savedValues:{colorRange:e.colorRange,mapColors:i.mapColors},isSelected:!0,isDisabled:!1}];return r.edges.length>0&&o.push({metricType:"Edge-Metric",metricName:e.edgeMetric,savedValues:{edgePreview:i.amountOfEdgePreviews,edgeHeight:i.edgeHeight},isSelected:!0,isDisabled:!1}),o})(this.state.getValue(),{camera:i.camera.position,cameraTarget:r.controls.target})}handleScenarioMetricPropertySelectionChange(e){e.isSelected=!e.isSelected,this.areAnyScenarioMetricPropertiesSelected=this.scenarioContent.some(i=>i.isSelected)}addCustomScenario(){Fh.addScenario(this.scenarioName.value,this.scenarioContent)}static{this.\u0275fac=function(i){return new(i||t)(W(Br),W(ru),W(Zc))}}static{this.\u0275cmp=At({type:t,selectors:[["ng-component"]],decls:19,vars:4,consts:[["xmlns","http://www.w3.org/1999/html",1,"header"],["subscriptSizing","dynamic"],["matInput","",3,"formControl"],[1,"cc-add-custom-scenario-toggles"],[3,"checked"],["mat-flat-button","","mat-dialog-close","",3,"click","disabled"],[3,"change","checked"]],template:function(i,r){1&i&&(I(0,"mat-toolbar",0)(1,"h2"),ve(2,"Add Scenario"),O()(),I(3,"mat-dialog-content")(4,"p")(5,"mat-form-field",1)(6,"mat-label"),ve(7,"Scenario Name"),O(),_e(8,"input",2),ft(9,E4e,2,1,"mat-error"),O()(),I(10,"p"),ve(11,"The scenario includes:"),O(),I(12,"div",3),yr(13,M4e,2,2,"mat-slide-toggle",4,Sr),ft(15,S4e,2,0,"mat-error"),O()(),I(16,"mat-dialog-actions")(17,"button",5),We("click",function(){return r.addCustomScenario()}),ve(18," ADD "),O()()),2&i&&(H(8),ue("formControl",r.scenarioName),H(),yt(9,r.scenarioName.invalid?9:-1),H(4),wr(r.scenarioContent),H(2),yt(15,r.areAnyScenarioMetricPropertiesSelected?-1:15),H(2),ue("disabled",r.scenarioName.invalid||!r.areAnyScenarioMetricPropertiesSelected))},dependencies:[Pf,b0,eM,nd,td,oee,Bs,ic,Oc,Nc,SA,_m,zb],styles:[".cc-add-custom-scenario-toggles[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:8px}mat-slide-toggle[_ngcontent-%COMP%]{display:block}"]})}}return t})(),SN=(()=>{class t{constructor(){this._vertical=!1,this._inset=!1}get vertical(){return this._vertical}set vertical(e){this._vertical=$s(e)}get inset(){return this._inset}set inset(e){this._inset=$s(e)}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=At({type:t,selectors:[["mat-divider"]],hostAttrs:["role","separator",1,"mat-divider"],hostVars:7,hostBindings:function(i,r){2&i&&(oi("aria-orientation",r.vertical?"vertical":"horizontal"),xn("mat-divider-vertical",r.vertical)("mat-divider-horizontal",!r.vertical)("mat-divider-inset",r.inset))},inputs:{vertical:"vertical",inset:"inset"},standalone:!0,features:[xr],decls:0,vars:0,template:function(i,r){},styles:[".mat-divider{display:block;margin:0;border-top-style:solid;border-top-color:var(--mat-divider-color);border-top-width:var(--mat-divider-width)}.mat-divider.mat-divider-vertical{border-top:0;border-right-style:solid;border-right-color:var(--mat-divider-color);border-right-width:var(--mat-divider-width)}.mat-divider.mat-divider-inset{margin-left:80px}[dir=rtl] .mat-divider.mat-divider-inset{margin-left:auto;margin-right:80px}"],encapsulation:2,changeDetection:0})}}return t})(),TN=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[Ki,Ki]})}}return t})();function F4e(t,n){if(1&t&&(I(0,"span",5),_e(1,"i"),O()),2&t){const e=n.$implicit;ue("title",e.tooltip),H(),Uu("fa ",e.faIconClass,""),xn("cc-is-saved",e.isSaved)}}function k4e(t,n){if(1&t){const e=kn();I(0,"div",0)(1,"button",4),We("click",function(){const r=Ft(e).$implicit;return kt(He().scenarioService.applyScenario(r.scenarioName))}),ve(2),O(),yr(3,F4e,2,6,"span",5,Sr),I(5,"button",6),We("click",function(){const r=Ft(e).$implicit;return kt(He().scenarioService.removeScenario(r.scenarioName))}),_e(6,"i",7),O()()}if(2&t){const e=n.$implicit;H(),ue("disabled",!e.isScenarioApplicable),H(),an(" ",e.scenarioName," "),H(),wr(e.icons)}}let I4e=(()=>{class t{constructor(e,i){this.scenarioService=e,this.dialog=i,this.scenarios=[]}addScenario(){this.dialog.open(T4e,{panelClass:"cc-add-custom-scenario"})}static{this.\u0275fac=function(i){return new(i||t)(W(yN),W(Is))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-scenarios"]],inputs:{scenarios:"scenarios"},decls:8,vars:0,consts:[[1,"cc-row"],["disabled","",1,"cc-apply-scenario-button"],["title","Create a custom scenario",1,"cc-action-button","cc-add",3,"click"],[1,"fa","fa-plus"],["title","Apply scenario",1,"cc-apply-scenario-button",3,"click","disabled"],[1,"cc-scenario-content-icons",3,"title"],["title","Remove custom scenario",1,"cc-action-button","cc-remove",3,"click"],[1,"fa","fa-minus-square"]],template:function(i,r){1&i&&(I(0,"div",0)(1,"button",1),ve(2,"Metric Scenarios"),O(),I(3,"button",2),We("click",function(){return r.addScenario()}),_e(4,"i",3),O()(),_e(5,"mat-divider"),yr(6,k4e,7,2,"div",0,Sr)),2&i&&(H(6),wr(r.scenarios))},dependencies:[SN],styles:[".mat-mdc-menu-panel.cc-scenarios-menu{width:420px;max-width:unset}.mat-mdc-menu-panel.cc-scenarios-menu .mat-mdc-menu-content{padding:0}.mat-mdc-menu-panel.cc-scenarios-menu .cc-row{display:flex;height:48px;align-items:center}.mat-mdc-menu-panel.cc-scenarios-menu .cc-row [disabled]{color:#00000061}.mat-mdc-menu-panel.cc-scenarios-menu .cc-row .cc-apply-scenario-button{padding-left:16px;padding-right:16px;height:100%;flex:1;text-align:left;background-color:unset}.mat-mdc-menu-panel.cc-scenarios-menu .cc-row .cc-apply-scenario-button:hover:not([disabled]){background-color:#9e9e9e33}.mat-mdc-menu-panel.cc-scenarios-menu .cc-row .cc-action-button{width:52px;height:100%;display:inline-flex;justify-content:center;align-items:center}.mat-mdc-menu-panel.cc-scenarios-menu .cc-row .cc-action-button.cc-add{background-color:#1b9cfc}.mat-mdc-menu-panel.cc-scenarios-menu .cc-row .cc-action-button.cc-remove{border-left:1px solid rgba(0,0,0,.12);color:#b30000;background-color:unset}.mat-mdc-menu-panel.cc-scenarios-menu .cc-row .cc-action-button.cc-remove:hover:not([disabled]){background-color:#9e9e9e33}.mat-mdc-menu-panel.cc-scenarios-menu .cc-row i.fa{font-size:x-small}.mat-mdc-menu-panel.cc-scenarios-menu .cc-row .cc-scenario-content-icons{padding:0 8px;color:#d3d3d3}.mat-mdc-menu-panel.cc-scenarios-menu .cc-row .cc-scenario-content-icons i.fa.cc-is-saved{color:#000}\n"],encapsulation:2})}}return t})(),B4e=(()=>{class t{constructor(e){this.scenarioService=e,this.scenarios=[]}loadScenarios(){this.scenarios=this.scenarioService.getScenarios()}static{this.\u0275fac=function(i){return new(i||t)(W(yN))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-show-scenarios-button"]],decls:5,vars:2,consts:[["menu","matMenu"],["title","Open the scenario list",1,"cc-ribbon-bar-menu-button",3,"click","matMenuTriggerFor"],[1,"fa","fa-star"],[1,"cc-scenarios-menu"],[3,"scenarios"]],template:function(i,r){if(1&i){const o=kn();I(0,"button",1),We("click",function(){return Ft(o),kt(r.loadScenarios())}),_e(1,"i",2),O(),I(2,"mat-menu",3,0),_e(4,"cc-scenarios",4),O()}2&i&&(ue("matMenuTriggerFor",Co(3)),H(4),ue("scenarios",r.scenarios))},dependencies:[su,Qb,I4e],styles:["cc-show-scenarios-button{display:flex;justify-content:center}\n"],encapsulation:2})}}return t})();class FN{static downloadCurrentMap(n,e,i,r,o){const s=this.getProjectDataAsCCJsonFormat(n,e,i,r),a=o+N0.CC_FILE_EXTENSION;this.downloadData(JSON.stringify(s),a)}static getProjectDataAsCCJsonFormat(n,e,i,r){return{projectName:e.projectName,apiVersion:e.apiVersion,fileChecksum:e.fileChecksum,nodes:[this.undecorateMap(n)],attributeTypes:r.includes("AttributeTypes")?this.getAttributeTypesForJSON(i.attributeTypes):{},attributeDescriptors:r.includes("AttributeDescriptors")?this.getAttributeDescriptorsForJSON(i.attributeDescriptors):{},edges:r.includes("Edges")?this.undecorateEdges(i.edges):[],markedPackages:r.includes("MarkedPackages")?i.markedPackages:[],blacklist:this.getBlacklistToDownload(r,i.blacklist)}}static getBlacklistToDownload(n,e){const i=[];return n.includes("Flattens")&&i.push(...this.getFilteredBlacklist(e,"flatten").map(r=>({path:r.path,type:"hide"}))),n.includes("Excludes")&&i.push(...this.getFilteredBlacklist(e,"exclude")),i}static getAttributeTypesForJSON(n){return 0===Object.keys(n.edges).length&&0===Object.keys(n.nodes).length?{}:n}static getAttributeDescriptorsForJSON(n){return 0===Object.keys(n).length?{}:n}static getFilteredBlacklist(n,e){return n.filter(i=>i.type===e)}static undecorateMap(n){const e=Hd(n);for(const{data:i}of io(e))delete i.isExcluded,delete i.isFlattened,delete i.edgeAttributes,delete i.path,i.type===Ma.FOLDER?i.attributes={}:delete i.attributes[PM];return e}static undecorateEdges(n){const e=Hd(n);for(const i of e)delete i.visible;return e}static downloadData(n,e){const i=new Blob([n],{type:"text/json"}),r=document.createEvent("MouseEvents"),o=document.createElement("a");o.download=e,o.href=window.URL.createObjectURL(i),o.dataset.downloadurl=["text/json",o.download,o.href].join(":"),r.initMouseEvent("click",!0,!1,window,0,0,0,0,0,!1,!1,!1,!1,0,null),o.dispatchEvent(r)}}const yee=".cc.config.json",wee="CodeCharta::customConfigs";class Ri{static{this.customConfigs=Ri.loadCustomConfigsFromLocalStorage()}static{this.customConfigChange$=new De(null)}static setCustomConfigsToLocalStorage(){const n={version:"1.0.1",customConfigs:[...Ri.customConfigs]};localStorage.setItem(wee,JSON.stringify(n,cS)),Ri.customConfigChange$.next(null)}static loadCustomConfigsFromLocalStorage(){const n=this.getCcLocalStorage();return new Map(n?.customConfigs)}static getCcLocalStorage(){return JSON.parse(localStorage.getItem(wee),U$)}static addCustomConfig(n){Ri.customConfigs.set(n.id,n),Ri.setCustomConfigsToLocalStorage()}static editCustomConfigNote(n,e){const i=Ri.customConfigs.get(n);i.note=e,Ri.customConfigs.set(n,i),Ri.setCustomConfigsToLocalStorage()}static getCustomConfigSettings(n){return Ri.customConfigs.get(n)}static hasCustomConfigByName(n,e,i){for(const r of Ri.customConfigs.values())if(r.name===i&&r.mapSelectionMode===n&&this.areEqual(e,r.assignedMaps))return!0;return!1}static areEqual(n,e){return n.size===e.size&&[...n.entries()].every(([i,r])=>e.has(i)&&e.get(i)===r)}static getCustomConfigs(){return Ri.customConfigs}static importCustomConfigs(n){const e=JSON.parse(n,U$);for(const i of e.customConfigs.values()){if(Ri.getCustomConfigSettings(i.id))continue;Ri.hasCustomConfigByName(i.mapSelectionMode,i.assignedMaps,i.name)&&(i.name+=` (${fm.getFormattedTimestamp(new Date(i.creationTime))})`);const o={id:i.id,name:i.name,creationTime:i.creationTime,assignedMaps:i.assignedMaps,customConfigVersion:i.customConfigVersion,mapSelectionMode:i.mapSelectionMode,stateSettings:i.stateSettings,camera:i.camera,...i.note&&{note:i.note}};Ri.addCustomConfig(o)}}static downloadCustomConfigs(n){const e={downloadApiVersion:"1.0.1",timestamp:Date.now(),customConfigs:n},i=fm.getNewTimestamp()+yee;FN.downloadData(JSON.stringify(e,cS),i)}static createExportCustomConfigFromConfig(n){return{...n}}static getCustomConfigsAmountByMapAndMode(n,e){let i=0;for(const r of Ri.customConfigs.values())[...r.assignedMaps.values()].join(" ")===n&&r.mapSelectionMode===e&&i++;return i}static getConfigNameSuggestionByFileState({mapSelectionMode:n,assignedMaps:e}){const i=[...e.values()].join(" ");return`${i} #${Ri.getCustomConfigsAmountByMapAndMode(i,n)+1}`}static deleteCustomConfigs(n){for(const e of n)Ri.customConfigs.delete(e.id);Ri.setCustomConfigsToLocalStorage()}static deleteCustomConfig(n){Ri.customConfigs.delete(n),Ri.setCustomConfigsToLocalStorage()}static sortCustomConfigDropDownGroupList(n,e){if(!e.hasApplicableItems){if(n.hasApplicableItems||n.mapSelectionMode{r.setControlTarget(o.camera.cameraTarget),i.setPosition(o.camera.camera)},100)}}function P4e(t,n){return[...t.keys()].some(i=>n.has(i))}var EF=function(t){return t.MULTIPLE="STANDARD",t.DELTA="DELTA",t}(EF||{});const px=Xt(Ud,t=>{const n=new Map;let e;for(const{selectedAs:i,file:r}of t)e=i===Pi.Partial?EF.MULTIPLE:EF.DELTA,n.set(r.fileMeta.fileChecksum,r.fileMeta.fileName);return{mapSelectionMode:e,assignedMaps:n}});let kN=(()=>{class t{constructor(e){this.store=e,this.downloadableCustomConfigs$=nh([this.store.select(px),Ri.customConfigChange$]).pipe(Et(([i])=>(({assignedMaps:t})=>{const n=new Map,e=Ri.getCustomConfigs();for(const[i,r]of e.entries())P4e(r.assignedMaps,t)&&n.set(i,Ri.createExportCustomConfigFromConfig(r));return n})(i))),this.customConfigItemGroups$=nh([this.store.select(px),Ri.customConfigChange$]).pipe(Et(([i])=>function N4e({assignedMaps:t}){const n={applicableItems:new Map,nonApplicableItems:new Map},e=new Map;for(const i of Ri.loadCustomConfigsFromLocalStorage().values()){const r=[...i.assignedMaps.values()],o=`${r.join("_")}_${i.mapSelectionMode}`,s=[...i.assignedMaps.keys()].some(C=>t.has(C));e.has(o)||e.set(o,{mapNames:r.join(" "),mapSelectionMode:i.mapSelectionMode,hasApplicableItems:s,customConfigItems:[]});const{positive:a,neutral:l,negative:c,selected:d,positiveDelta:u,negativeDelta:h}=i.stateSettings.appSettings.mapColors,{areaMetric:m,heightMetric:A,colorMetric:v,edgeMetric:x}=i.stateSettings.dynamicSettings;e.get(o).customConfigItems.push({id:i.id,name:i.name,assignedMaps:i.assignedMaps,mapSelectionMode:i.mapSelectionMode,metrics:{areaMetric:m,heightMetric:A,colorMetric:v,edgeMetric:x},mapColors:{positive:a,neutral:l,negative:c,selected:d,positiveDelta:u,negativeDelta:h},isApplicable:s,...i.note&&{note:i.note}}),e.get(o).hasApplicableItems?n.applicableItems.set(o,e.get(o)):n.nonApplicableItems.set(o,e.get(o))}return n}(i)))}static{this.\u0275fac=function(i){return new(i||t)(oe(Wt))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac})}}return t})();function O4e(t,n){1&t&&(I(0,"div",7),ve(1,"It is time to add your first Custom View!"),O())}function U4e(t,n){if(1&t&&_e(0,"cc-custom-config-item-group",12),2&t){const e=He(2),i=He();ue("customConfigItemGroups",e.nonApplicableItems)("searchTerm",i.searchTerm)}}function H4e(t,n){if(1&t){const e=kn();I(0,"button",14),We("click",function(){return Ft(e),kt(He(3).toggleNonApplicableCustomConfigsList())}),ve(1),_e(2,"i",15),O()}if(2&t){const e=He(3);H(),an(" ",e.isNonApplicableListCollapsed?"Show non-applicable Custom Views":"Hide non-applicable Custom Views"," "),H(),ue("ngClass",e.isNonApplicableListCollapsed?"fa fa-angle-down":"fa fa-angle-up")}}function V4e(t,n){if(1&t){const e=kn();I(0,"mat-accordion",8)(1,"mat-form-field",9),_e(2,"i",10),I(3,"mat-label"),ve(4),O(),I(5,"input",11),We("input",function(r){return Ft(e),kt(He(2).setSearchTermDebounced(r))}),O()(),_e(6,"cc-custom-config-item-group",12),ft(7,U4e,1,2,"cc-custom-config-item-group",12)(8,H4e,3,2,"button",13),O()}if(2&t){const e=He(),i=He();ue("multi",!0),H(4),an("",i.searchPlaceholder," "),H(),ue("value",i.searchTerm),H(),ue("customConfigItemGroups",e.applicableItems)("searchTerm",i.searchTerm),H(),yt(7,i.isNonApplicableListCollapsed?-1:7),H(),yt(8,e.nonApplicableItems.size>0?8:-1)}}function Q4e(t,n){if(1&t&&(I(0,"mat-dialog-content",4)(1,"p",5),ve(2," Custom Views allow you to save and upload your individual configurations for certain maps. Find out more about Custom Views in the "),I(3,"a",6),ve(4,"documentation"),O(),ve(5,". "),O(),ft(6,O4e,2,0,"div",7)(7,V4e,9,7,"mat-accordion",8),O()),2&t){const e=n;H(6),yt(6,0===e.applicableItems.size&&0===e.nonApplicableItems.size?6:-1),H(),yt(7,0!==e.applicableItems.size||0!==e.nonApplicableItems.size?7:-1)}}let xee=(()=>{class t{constructor(e){this.customConfigService=e,this.searchTerm="",this.isNonApplicableListCollapsed=!0,this.searchPlaceholder="Search by name, mode and metrics...",this.setSearchTermDebounced=ou(i=>this.searchTerm=i.target.value,400)}toggleNonApplicableCustomConfigsList(){this.isNonApplicableListCollapsed=!this.isNonApplicableListCollapsed}static{this.\u0275fac=function(i){return new(i||t)(W(kN))}}static{this.\u0275cmp=At({type:t,selectors:[["ng-component"]],decls:9,vars:3,consts:[["color","primary"],[1,"row"],[1,"action-buttons"],[1,"custom-configs-button-in-custom-views"],[1,"content"],[1,"custom-config-documentation-hint"],["href","https://maibornwolff.github.io/codecharta/docs/custom-view/","target","_blank","rel","noopener noreferrer"],[1,"no-custom-configs-box"],[1,"custom-config-container",3,"multi"],[1,"cc-custom-configs-search-field"],["matPrefix","",1,"fa","fa-search","custom-config-search-icon"],["matInput","","type","text",3,"input","value"],[3,"customConfigItemGroups","searchTerm"],[1,"toggle-non-applicable-configs-button"],[1,"toggle-non-applicable-configs-button",3,"click"],[3,"ngClass"]],template:function(i,r){if(1&i&&(I(0,"mat-toolbar",0),ve(1,"Custom Views "),I(2,"div",1)(3,"div",2),_e(4,"cc-upload-custom-config-button")(5,"cc-download-custom-configs-button")(6,"cc-add-custom-config-button",3),O()()(),ft(7,Q4e,8,2,"mat-dialog-content",4),ze(8,"async")),2&i){let o;H(7),yt(7,(o=tt(8,1,r.customConfigService.customConfigItemGroups$))?7:-1,o)}},styles:[".cc-custom-config-list{width:850px}.cc-custom-config-list .mat-mdc-dialog-content{padding:16px;max-height:90vh}.cc-custom-config-list .cc-custom-configs-search-field{width:100%;font-size:14px}.cc-custom-config-list .cc-custom-configs-search-field .custom-config-search-icon{color:gray;margin-left:8px;font-size:18px}.cc-custom-config-list .cc-custom-configs-search-field .clear-icon{position:absolute;right:0;margin:0;height:24px;width:24px;display:flex;justify-content:center;align-items:center;top:0}.cc-custom-config-list .cc-custom-configs-search-field .mat-mdc-form-field-subscript-wrapper.mat-mdc-form-field-bottom-align{display:none}.cc-custom-config-list .cc-custom-configs-search-field .mat-mdc-form-field-infix{margin-left:6px;display:flex}.cc-custom-config-list .row{display:flex;justify-content:space-between;align-items:center;margin-left:auto}.cc-custom-config-list .custom-config-documentation-hint{margin:10px 0 20px;font-size:1.4em;line-height:1.4em;color:#000000de}.cc-custom-config-list .action-buttons button{margin:0 3px;min-width:12%;height:48px;width:48px;border-radius:100%;line-height:48px;background-color:#fff;color:#1b9cfc}.cc-custom-config-list .action-buttons button:disabled,.cc-custom-config-list .action-buttons button[disabled]{background-color:#e6e6e6;color:#ccc}.cc-custom-config-list .action-buttons button i.fa{font-size:12px;margin-left:0}.cc-custom-config-list .no-custom-configs-box{text-align:center;padding:50px 0}.cc-custom-config-list cc-custom-config-item-group .mat-expansion-panel-spacing{margin:0}.cc-custom-config-list cc-custom-config-item-group .mat-expansion-panel-body{padding:0 16px}.cc-custom-config-list cc-custom-config-item-group .mat-expansion-panel-header:not([aria-disabled=true]){border-bottom:1px solid black;padding:15px 2px}.cc-custom-config-list cc-custom-config-item-group .mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:none}.cc-custom-config-list cc-custom-config-item-group.non-applicable-group .mat-expansion-panel-header-title{color:#0000004d}.cc-custom-config-list cc-custom-config-item-group .mdc-list-item__content{width:100%;border-bottom:1px solid #000000;padding:0 5px}.cc-custom-config-list cc-custom-config-item-group .mdc-list-item__content .mdc-list-item__primary-text{display:flex;flex-direction:column;width:100%}.cc-custom-config-list cc-custom-config-item-group .mdc-list-item__content:hover{background-color:#0000000a}.cc-custom-config-list cc-custom-config-item-group .mdc-list-item__content button{background-color:transparent}.cc-custom-config-list cc-custom-config-item-group .mdc-list-item__content button.remove-button,.cc-custom-config-list cc-custom-config-item-group .mdc-list-item__content button.custom-config-note-dialog-button{font-size:16px;padding:8px 10px;margin:0}.cc-custom-config-list cc-custom-config-item-group .mdc-list-item__content button.remove-button:hover,.cc-custom-config-list cc-custom-config-item-group .mdc-list-item__content button.custom-config-note-dialog-button:hover{background-color:#0000000d;color:#1b9cfc;border-radius:50%}.cc-custom-config-list .toggle-non-applicable-configs-button{width:100%;height:30px;margin:5px 0}.cc-custom-config-list .mat-mdc-list-base{padding:0}.cc-custom-config-list .mat-mdc-list-item{height:max-content}\n"],encapsulation:2})}}return t})(),Cee=(()=>{class t{constructor(e){this.dialog=e}openCustomConfigDialog(){this.dialog.open(xee,{panelClass:"cc-custom-config-list"})}static{this.\u0275fac=function(i){return new(i||t)(W(Is))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-custom-configs"]],decls:4,vars:0,consts:[[1,"custom-configs-panel-buttons"],["title","Open your saved Custom Views",1,"cc-ribbon-bar-menu-button",3,"click"],[1,"fa","fa-cogs"]],template:function(i,r){1&i&&(I(0,"div",0)(1,"button",1),We("click",function(){return r.openCustomConfigDialog()}),_e(2,"i",2),O(),_e(3,"cc-add-custom-config-button"),O())},styles:["cc-custom-configs .custom-configs-panel-buttons{display:flex;justify-content:center;gap:4px}\n"],encapsulation:2})}}return t})();function IN(t,n){if(n||(n=0),!Array.isArray(t))throw new Error("percentRound input should be an Array");const e=t.slice(),i=t.length,r=new Array(i);let o=0;for(let s=i-1;s>=0;s--)"string"==typeof e[s]&&(e[s]=Number.parseFloat(e[s])),o+=1*e[s];if(isNaN(o))throw new Error("percentRound invalid input");if(0===o)r.fill(0);else{const s=Math.pow(10,n),a=100*s;let l=0;for(let c=i-1;c>=0;c--)e[c]=100*e[c]/o,l+=r[c]=Math.round(e[c]*s);if(l!==a){const d=1;let u=Math.abs(l-a);const h=new Array(i);for(let m=0;m0;){let m=0,A=h[0];for(let v=1;va&&r[v]-d<0)continue;m=v,A=h[v]}l>a?r[m]-=d:r[m]+=d,h[m]-=d,u--}}if(s>1)for(let c=0;cvoid 0!==t.attributes[l]),o=Mee(e)[i],s=t.attributes[i],a=t.attributes[MF];s<=o.percentile70?n.lowRisk+=a:s<=o.percentile80?n.moderateRisk+=a:s<=o.percentile90?n.highRisk+=a:n.veryHighRisk+=a}function j4e(t,n,e){for(const[i,r]of Object.entries(t.attributes))0!==r&&(n[e]??={},n[e][i]??=[],n[e][i].push(r))}function K4e(t,n){return t.isOutlier&&!n.isOutlier?-1:!t.isOutlier&&n.isOutlier?1:0}function X4e(t){const n=Hb.get(t);return n?`${t} (${n})`:`${t}`}function eRe(t){return t.includes(".")?t.slice(t.lastIndexOf(".")+1):void 0}function tRe(t,n){return BN.some(e=>void 0!==t.attributes[e])&&void 0!==t.attributes[MF]&&!G4e.has(n)}const nRe=Xt(lc,Od,(t,n)=>{if(!t.unifiedMapNode)return;const e={analyzedProgrammingLanguage:void 0,suspiciousMetricSuggestionLinks:[],unsuspiciousMetrics:[],untrackedMetrics:[],riskProfile:void 0},i=new Map,r={lowRisk:0,moderateRisk:0,highRisk:0,veryHighRisk:0};let o=0,s=0;const a={};for(const{data:c}of io(t.unifiedMapNode)){const d=eRe(c.name);if(c.type===Ma.FILE&&void 0!==d&&!Ju(c.path,n,"exclude")){const u=i.get(d)??0;if(i.set(d,u+1),j4e(c,a,d),tRe(c,d)){const h=BN.find(m=>void 0!==c.attributes[m]);s+=c.attributes[h],o+=c.attributes[MF],q4e(c,r,d)}}}o>0&&s>0&&(e.riskProfile=function W4e(t){const[n,e,i,r]=z4e([t.lowRisk,t.moderateRisk,t.highRisk,t.veryHighRisk]);return{lowRisk:n,moderateRisk:e,highRisk:i,veryHighRisk:r}}(r));const l=function Z4e(t){let n,e=-1;for(const[i,r]of t)es.percentile70&&(e.suspiciousMetrics.set(r,{from:s.percentile70,to:s.percentile80}),a>s.percentile90&&e.outliersThresholds.set(r,s.percentile90))}for(const r in t[n])!Object.keys(i).includes(r)&&!e.untrackedMetrics.includes(r)&&e.untrackedMetrics.push(r);return e}(a,l);e.unsuspiciousMetrics=c.unsuspiciousMetrics,e.untrackedMetrics=c.untrackedMetrics,e.suspiciousMetricSuggestionLinks=function $4e(t){const n=new Map;for(const[e,i]of t.suspiciousMetrics)n.set(e,{metric:e,...i}),t.outliersThresholds.has(e)&&(n.get(e).isOutlier=!0,n.get(e).outlierThreshold=t.outliersThresholds.get(e));return[...n.values()].sort(K4e)}(c)}return e});var See=Object.prototype.hasOwnProperty;function Tee(t,n,e){for(e of t.keys())if(TA(e,n))return e}function TA(t,n){var e,i,r;if(t===n)return!0;if(t&&n&&(e=t.constructor)===n.constructor){if(e===Date)return t.getTime()===n.getTime();if(e===RegExp)return t.toString()===n.toString();if(e===Array){if((i=t.length)===n.length)for(;i--&&TA(t[i],n[i]););return-1===i}if(e===Set){if(t.size!==n.size)return!1;for(i of t)if((r=i)&&"object"==typeof r&&!(r=Tee(n,r))||!n.has(r))return!1;return!0}if(e===Map){if(t.size!==n.size)return!1;for(i of t)if((r=i[0])&&"object"==typeof r&&!(r=Tee(n,r))||!TA(i[1],n.get(r)))return!1;return!0}if(e===ArrayBuffer)t=new Uint8Array(t),n=new Uint8Array(n);else if(e===DataView){if((i=t.byteLength)===n.byteLength)for(;i--&&t.getInt8(i)===n.getInt8(i););return-1===i}if(ArrayBuffer.isView(t)){if((i=t.byteLength)===n.byteLength)for(;i--&&t[i]===n[i];);return-1===i}if(!e||"object"==typeof t){for(e in i=0,t)if(See.call(t,e)&&++i&&!See.call(n,e)||!(e in n)||!TA(t[e],n[e]))return!1;return Object.keys(n).length===i}}return t!=t&&n!=n}let iRe=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=At({type:t,selectors:[["cc-suspicious-metric-dialog"]],inputs:{matMenuTriggerReference:"matMenuTriggerReference",data:"data"},decls:12,vars:0,consts:[["id","suspiciousMetricPopover","data-testid","suspiciousMetricPopover",1,"cc-dialog","suspicious-metric-dialog"],["mat-dialog-title","",1,"title"],[1,"info-text"],["target","_blank","rel","noopener","href","https://maibornwolff.github.io/codecharta/docs/suspicious-metrics/"],[1,"fa","fa-external-link"],[2,"display","flex","justify-content","center"],["mat-stroked-button","","mat-dialog-close","",1,"button-mat-dialog"]],template:function(i,r){1&i&&(I(0,"div",0)(1,"h2",1),ve(2,"Suspicious Metrics Information"),O(),I(3,"mat-dialog-content",2),ve(4," This feature compares the values of certain metrics from the loaded cc.json file with metric values of 241 Open Source Java projects. Based on this data suspicious and inconspicuous metrics are identified and corresponding suggestions can be clicked to view them. Be aware that metrics for other programming languages might not be comparable to Java Reference metric values. More information can be found in the "),I(5,"a",3),ve(6,"How-To Article "),_e(7,"i",4),O(),ve(8,". "),O(),I(9,"mat-dialog-actions",5)(10,"button",6),ve(11,"Close"),O()()())},dependencies:[Bs,ic,sS,Oc,Nc],encapsulation:2})}}return t})(),FA=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=At({type:t,selectors:[["cc-action-icon"]],inputs:{icon:"icon"},decls:1,vars:2,consts:[["role","button"]],template:function(i,r){1&i&&_e(0,"i",0),2&i&&Cc(r.icon)},styles:["cc-action-icon{display:inline-flex;align-items:center;cursor:pointer;width:24px;height:24px;border-radius:100%;background-color:#1b9cfc;font-size:14px}cc-action-icon:hover{background-color:#0374c9}cc-action-icon.disabled{opacity:.5}cc-action-icon i,cc-action-icon i.fa{margin:auto;line-height:1.5;color:#fff}\n"],encapsulation:2})}}return t})(),Fee=(()=>{class t{transform(e,i,r="..."){return e.length>i?e.slice(0,i)+r:e}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275pipe=lr({name:"truncateText",type:t,pure:!0})}}return t})();const rRe=(t,n)=>({"fa-caret-right":t,"fa-caret-down":n});function oRe(t,n){if(1&t&&(_e(0,"br"),I(1,"span",11),ve(2),O()),2&t){const e=He().$implicit,i=He(3);H(2),ur(i.getDescriptionOfMetric(e.metric))}}function sRe(t,n){if(1&t){const e=kn();I(0,"mat-button-toggle",12),We("click",function(){Ft(e);const r=He().$implicit;return kt(He(3).applySuspiciousMetric(r,!0))}),ve(1," High-Risk\xa0"),_e(2,"i",13),O()}}function aRe(t,n){1&t&&(I(0,"mat-button-toggle",14),ve(1," High-Risk\xa0"),_e(2,"i",15),O())}function lRe(t,n){if(1&t){const e=kn();_e(0,"div",5),I(1,"div",6)(2,"b"),ve(3),ze(4,"truncateText"),O(),ft(5,oRe,3,1),O(),I(6,"div")(7,"mat-button-toggle-group")(8,"mat-button-toggle",7),We("click",function(){const r=Ft(e).$implicit;return kt(He(3).applySuspiciousMetric(r,!1))}),ve(9," Apply preset\xa0"),_e(10,"i",8),ve(11,"\xa0"),_e(12,"i",9),O(),ft(13,sRe,3,0,"mat-button-toggle",10)(14,aRe,3,0),O()()}if(2&t){const e=n.$implicit,i=He(3);H(),wa("title",i.getNameAndDescriptionOfMetric(e.metric)),H(2),ur(po(4,6,e.metric,40)),H(2),yt(5,i.getDescriptionOfMetric(e.metric)?5:-1),H(3),Sc("title","Apply Map Configuration to show files with suspicious metric ",e.metric," and high risk or very high risk depending on selection"),H(5),yt(13,e.isOutlier?13:14)}}function cRe(t,n){if(1&t&&(I(0,"div",4),yr(1,lRe,15,9,null,null,Sr),O()),2&t){const e=He(2);H(),wr(e.data.suspiciousMetricSuggestionLinks)}}function dRe(t,n){if(1&t){const e=kn();I(0,"div",0)(1,"button",1),We("click",function(){return Ft(e),kt(He().toggleSuspiciousMetricsVisibility())}),I(2,"span",2),_e(3,"i",3),O(),ve(4," Suspicious Metrics in "),I(5,"code"),ve(6),O(),ve(7," code "),O()(),ft(8,cRe,3,0,"div",4)}if(2&t){const e=He();Sc("title","Suspicious Metrics in .",e.data.analyzedProgrammingLanguage," code"),H(3),ue("ngClass",tl(5,rRe,!e.isSuspiciuosMetricsVisible,e.isSuspiciuosMetricsVisible)),H(3),an(".",e.data.analyzedProgrammingLanguage,""),H(2),yt(8,e.isSuspiciuosMetricsVisible?8:-1)}}function uRe(t,n){if(1&t&&(I(0,"div",16),ve(1," No Suspicious Metrics found in "),I(2,"code"),ve(3),O(),ve(4,"! "),O()),2&t){const e=He();Sc("title","Suspicious Metrics in this .",e.data.analyzedProgrammingLanguage," code"),H(3),an(".",e.data.analyzedProgrammingLanguage,"")}}let hRe=(()=>{class t{constructor(e,i){this.store=e,this.dialog=i,this.isSuspiciuosMetricsVisible=!0}toggleSuspiciousMetricsVisibility(){this.isSuspiciuosMetricsVisible=!this.isSuspiciuosMetricsVisible}applySuspiciousMetric(e,i){this.store.dispatch(Ku({value:MF})),this.store.dispatch(Yu({value:e.metric})),this.store.dispatch(Lc({value:e.metric})),this.store.dispatch(Pd({value:{from:e.from,to:i?e.outlierThreshold:e.to}})),this.store.dispatch(ju({value:{positive:i?"#ffffff":iu.positive,neutral:i?"#ffffff":iu.neutral,negative:i?"#A900C0":iu.negative}})),this.matMenuTriggerReference.closeMenu()}getNameAndDescriptionOfMetric(e){const i=Hb.get(e);return i?`${e.toUpperCase()} (${i.toLowerCase()})`:e.toUpperCase()}getDescriptionOfMetric(e){const i=Hb.get(e);return i?`${i.toLowerCase()}`:""}static{this.\u0275fac=function(i){return new(i||t)(W(Wt),W(Is))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-suspicious-metrics-list"]],inputs:{matMenuTriggerReference:"matMenuTriggerReference",data:"data"},decls:2,vars:1,consts:[[1,"sub-title",3,"title"],["data-testid","Suspicious Metrics",1,"show-metrics-button",3,"click"],[1,"caret-icon-span"],[1,"fa",3,"ngClass"],[1,"text-content","grid-container-suspicious"],["id","spacer"],[3,"title"],[3,"click","title"],[1,"fa","fa-arrows-v"],[1,"fa","fa-paint-brush"],["title","Show very high risk files (90th percentile)"],[1,"sub-sub-title"],["title","Show very high risk files (90th percentile)",3,"click"],[1,"fa","fa-exclamation-triangle","risk-button-active"],["title","No high risk profile detected","disabled",""],[1,"fa","fa-exclamation-triangle"],[1,"sub-title-not-text-content","sub-title",3,"title"]],template:function(i,r){1&i&&ft(0,dRe,9,8)(1,uRe,5,3),2&i&&yt(0,r.data.suspiciousMetricSuggestionLinks.length?0:1)},dependencies:[Rd,uF,ax,Fee],encapsulation:2})}}return t})();const fRe=(t,n)=>({"fa-caret-right":t,"fa-caret-down":n});function mRe(t,n){if(1&t){const e=kn();I(0,"div",0)(1,"button",2),We("click",function(){return Ft(e),kt(He(2).toggleUntrackedMetricsVisibility())}),I(2,"span",3),_e(3,"i",4),O(),ve(4," Untracked metrics in "),I(5,"code"),ve(6),O(),ve(7," code "),O()()}if(2&t){const e=He(2);H(3),ue("ngClass",tl(2,fRe,!e.isUntrackedMetricsVisible,e.isUntrackedMetricsVisible)),H(3),an(".",e.data.analyzedProgrammingLanguage,"")}}function pRe(t,n){if(1&t&&(I(0,"li"),ve(1),O()),2&t){const e=n.$implicit;H(),ur(e)}}function ARe(t,n){if(1&t&&(I(0,"ul",1),yr(1,pRe,2,1,"li",null,Sr),O()),2&t){const e=He(2);H(),wr(e.data.untrackedMetrics)}}function gRe(t,n){1&t&&(I(0,"div"),ve(1,"No programming language was found for analyzing suspicious metrics."),O())}function bRe(t,n){if(1&t&&ft(0,mRe,8,5,"div",0)(1,ARe,3,0,"ul",1)(2,gRe,2,0,"div"),2&t){const e=He();yt(0,e.data.analyzedProgrammingLanguage.length?0:-1),H(),yt(1,e.isUntrackedMetricsVisible?1:-1),H(),yt(2,void 0===e.data.analyzedProgrammingLanguage?2:-1)}}let _Re=(()=>{class t{constructor(){this.isUntrackedMetricsVisible=!1}toggleUntrackedMetricsVisibility(){this.isUntrackedMetricsVisible=!this.isUntrackedMetricsVisible}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=At({type:t,selectors:[["cc-untracked-metrics-list"]],inputs:{matMenuTriggerReference:"matMenuTriggerReference",data:"data"},decls:1,vars:1,consts:[[1,"sub-title"],["data-testid","List of Untracked Metrics in ts Code",1,"text-content"],["data-testid","Untracked Metrics","title","Show/Hide Untracked Metrics",1,"show-metrics-button",3,"click"],[1,"caret-icon-span"],[1,"fa",3,"ngClass"]],template:function(i,r){1&i&&ft(0,bRe,3,3),2&i&&yt(0,r.data.untrackedMetrics.length?0:-1)},dependencies:[Rd],encapsulation:2})}}return t})();const vRe=(t,n)=>({"fa-caret-right":t,"fa-caret-down":n});function yRe(t,n){if(1&t){const e=kn();I(0,"div",0)(1,"button",2),We("click",function(){return Ft(e),kt(He(2).toggleUnsuspiciousMetricsVisibility())}),I(2,"span",3),_e(3,"i",4),O(),ve(4," Unsuspicious metrics in "),I(5,"code"),ve(6),O(),ve(7," code "),O()()}if(2&t){const e=He(2);H(3),ue("ngClass",tl(2,vRe,!e.isUnsuspiciuosMetricsVisible,e.isUnsuspiciuosMetricsVisible)),H(3),an(".",e.data.analyzedProgrammingLanguage,"")}}function wRe(t,n){if(1&t&&(I(0,"li"),ve(1),O()),2&t){const e=n.$implicit;H(),ur(e)}}function xRe(t,n){if(1&t&&(I(0,"ul",1),yr(1,wRe,2,1,"li",null,Sr),O()),2&t){const e=He(2);H(),wr(e.data.unsuspiciousMetrics)}}function CRe(t,n){if(1&t&&ft(0,yRe,8,5,"div",0)(1,xRe,3,0,"ul",1),2&t){const e=He();yt(0,e.data.analyzedProgrammingLanguage.length?0:-1),H(),yt(1,e.isUnsuspiciuosMetricsVisible?1:-1)}}let ERe=(()=>{class t{constructor(){this.isUnsuspiciuosMetricsVisible=!1}toggleUnsuspiciousMetricsVisibility(){this.isUnsuspiciuosMetricsVisible=!this.isUnsuspiciuosMetricsVisible}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=At({type:t,selectors:[["cc-unsuspicious-metrics-list"]],inputs:{matMenuTriggerReference:"matMenuTriggerReference",data:"data"},decls:1,vars:1,consts:[[1,"sub-title"],["data-testid","List of Unsuspicious Metrics in ts Code",1,"text-content"],["data-testid","Unsuspicious Metrics","title","Show/Hide Unsuspicious Metrics",1,"show-metrics-button",3,"click"],[1,"caret-icon-span"],[1,"fa",3,"ngClass"]],template:function(i,r){1&i&&ft(0,CRe,2,2),2&i&&yt(0,r.data.unsuspiciousMetrics.length?0:-1)},dependencies:[Rd],encapsulation:2})}}return t})(),kee=(()=>{class t{constructor(e){this.dialog=e}openDialog(){this.dialog.open(iRe,{width:"500px"})}static{this.\u0275fac=function(i){return new(i||t)(W(Is))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-suspicious-metrics-menu"]],viewQuery:function(i,r){if(1&i&&(ti(Qb,5),ti(su,5)),2&i){let o;mn(o=pn())&&(r.menuTrigger=o.first),mn(o=pn())&&(r.menu=o.first)}},inputs:{matMenuTriggerReference:"matMenuTriggerReference",data:"data"},decls:9,vars:6,consts:[[3,"click"],[1,"title"],["icon","fa fa-question-circle-o","title","Open Information about Suspicious Metrics","popovertarget","suspiciousMetricPopover",3,"click"],[1,"suspicious-menu-content-wrapper"],[3,"data","matMenuTriggerReference"]],template:function(i,r){1&i&&(I(0,"div",0),We("click",function(s){return s.stopPropagation()}),I(1,"div")(2,"div",1),ve(3,"Suspicious Metrics"),O(),I(4,"cc-action-icon",2),We("click",function(){return r.openDialog()}),O()(),I(5,"div",3),_e(6,"cc-suspicious-metrics-list",4)(7,"cc-unsuspicious-metrics-list",4)(8,"cc-untracked-metrics-list",4),O()()),2&i&&(H(6),ue("data",r.data)("matMenuTriggerReference",r.matMenuTriggerReference),H(),ue("data",r.data)("matMenuTriggerReference",r.matMenuTriggerReference),H(),ue("data",r.data)("matMenuTriggerReference",r.matMenuTriggerReference))},dependencies:[FA,hRe,_Re,ERe],encapsulation:2})}}return t})();const MRe=["matMenuTrigger"];function SRe(t,n){if(1&t&&(I(0,"span",4),ve(1),O()),2&t){const e=He();H(),an(" ",e.data.suspiciousMetricSuggestionLinks.length," ")}}let TRe=(()=>{class t{constructor(){this.hideBadge=!1}ngOnChanges(e){e.data&&!TA(e.data.previousValue,e.data.currentValue)&&(this.hideBadge=!1)}ngAfterViewInit(){this.menuComponent&&(this.menu=this.menuComponent.menu)}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=At({type:t,selectors:[["cc-suspicious-metrics"]],viewQuery:function(i,r){if(1&i&&(ti(kee,5),ti(MRe,5)),2&i){let o;mn(o=pn())&&(r.menuComponent=o.first),mn(o=pn())&&(r.matMenuTrigger=o.first)}},inputs:{data:"data",menu:"menu"},features:[cr],decls:7,vars:4,consts:[["matMenuTrigger","matMenuTrigger"],["menu","matMenu"],["title","Open Suspicious Metrics Panel",1,"cc-ribbon-bar-menu-button",3,"click","matMenuTriggerFor"],[1,"fa","fa-exclamation-triangle"],[1,"suspicious-metrics-badge"],[1,"ai-drop-down","suspicious-metric-panel"],[3,"data","matMenuTriggerReference"]],template:function(i,r){if(1&i){const o=kn();I(0,"button",2,0),We("click",function(){return Ft(o),kt(r.hideBadge=!0)}),_e(2,"i",3),ft(3,SRe,2,1,"span",4),O(),I(4,"mat-menu",5,1),_e(6,"cc-suspicious-metrics-menu",6),O()}if(2&i){const o=Co(1);ue("matMenuTriggerFor",Co(5)),H(3),yt(3,r.hideBadge||void 0===r.data.analyzedProgrammingLanguage&&!r.data.suspiciousMetricSuggestionLinks.length&&!r.data.unsuspiciousMetrics.length?-1:3),H(3),ue("data",r.data)("matMenuTriggerReference",o)}},dependencies:[su,Qb,kee],styles:[".ai-drop-down.suspicious-metric-panel{scrollbar-gutter:stable}.ai-drop-down.suspicious-metric-panel code{background:#e6e6e6f5;font-size:16px}.ai-drop-down.suspicious-metric-panel .grid-container-suspicious{display:grid;column-gap:4px;row-gap:8px;grid-template-columns:auto auto auto;place-items:center left}.ai-drop-down.suspicious-metric-panel .grid-container-suspicious #spacer{width:14px}.ai-drop-down.suspicious-metric-panel .grid-container-suspicious.text-content{padding-top:16px}.ai-drop-down.suspicious-metric-panel .grid-container-suspicious .fa-exclamation-triangle.risk-button-active{color:#9c0e6a}.ai-drop-down.suspicious-metric-panel ul.text-content{margin:0;padding-left:18px}.ai-drop-down.suspicious-metric-panel .suspicious-menu-content-wrapper{padding:8px}.ai-drop-down.suspicious-metric-panel .sub-sub-title{font-size:11;color:#999;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ai-drop-down.suspicious-metric-panel .caret-icon-span{display:inline-block;width:10px;font-size:16px;text-align:center}.ai-drop-down.suspicious-metric-panel .show-metrics-button{background-color:#fff;color:#000;cursor:pointer;width:100%;border:none;text-align:left;font-size:16px;padding:0 0 6px}.ai-drop-down.suspicious-metric-panel .title{display:inline-block}.ai-drop-down.suspicious-metric-panel cc-action-icon{margin-left:6px}.ai-drop-down.suspicious-metric-panel .sub-title-not-text-content{padding-bottom:8px}.ai-drop-down.suspicious-metric-panel .mat-button-toggle-appearance-standard .mat-button-toggle-label-content{line-height:2.5;display:flex;justify-content:center;align-items:center;text-align:center}.ai-drop-down.suspicious-metric-panel mat-button-toggle{height:35px;background-color:#e6e6e6f5}.ai-drop-down.suspicious-metric-panel mat-button-toggle:enabled:hover{background-color:#c8c8c8}.ai-drop-down.suspicious-metric-panel .mat-button-toggle-checked .mat-button-toggle-label-content .mat-pseudo-checkbox,.ai-drop-down.suspicious-metric-panel .mat-button-toggle-checked .mat-button-toggle-ripple{display:none}\n"],encapsulation:2})}}return t})(),FRe=(()=>{class t{constructor(e){this.element=e,this.ccRiskProfileBar=0}ngOnChanges(e){e.ccRiskProfileBar&&(this.element.nativeElement.style.display=this.ccRiskProfileBar>0?"flex":"none",this.element.nativeElement.style.width=`${this.ccRiskProfileBar}%`,this.element.nativeElement.style.color=this.ccRiskProfileBar>5?"black":"rgba(0,0,0,0)")}static{this.\u0275fac=function(i){return new(i||t)(W(Un))}}static{this.\u0275dir=zt({type:t,selectors:[["","ccRiskProfileBar",""]],inputs:{ccRiskProfileBar:"ccRiskProfileBar"},features:[cr]})}}return t})();function kRe(t,n){if(1&t&&(I(0,"div",4),ve(1,"Risk Profile"),O(),I(2,"div",5),ve(3," The Risk Profile gives a quick overview about the complexity and risk structure of the code base. It tells you how much of the code is placed in files associated with low/high risk in means of maintainability. The separation of code in risk classes like low or high complexity is based on Java reference metric values and therefore may be inaccurate for other programming languages. More information can be found in the "),I(4,"a",6),ve(5,"How-To Article "),_e(6,"i",7),O(),ve(7,". "),O(),I(8,"div",8)(9,"div"),_e(10,"i",9),ve(11," Calculations are based on an available complexity metric"),O()(),I(12,"div",5)(13,"ul")(14,"li"),ve(15),O(),I(16,"li"),ve(17),O(),I(18,"li"),ve(19),O(),I(20,"li"),ve(21),O()()(),I(22,"div",10)(23,"div",11),ve(24),O(),I(25,"div",12),ve(26),O(),I(27,"div",13),ve(28),O(),I(29,"div",14),ve(30),O()()),2&t){const e=He();H(15),an("",e.data.riskProfile.lowRisk,"% of overall code is in files with low complexity"),H(2),an("",e.data.riskProfile.moderateRisk,"% of overall code is in files with moderate complexity"),H(2),an("",e.data.riskProfile.highRisk,"% of overall code is in files with high complexity"),H(2),an("",e.data.riskProfile.veryHighRisk,"% of overall code is in files with extreme complexity"),H(2),Sc("title","Low Risk (",e.data.riskProfile.lowRisk,"% of code)"),ue("ccRiskProfileBar",e.data.riskProfile.lowRisk),H(),an(" ",e.data.riskProfile.lowRisk,"% "),H(),Sc("title","Moderate Risk (",e.data.riskProfile.moderateRisk,"% of code)"),ue("ccRiskProfileBar",e.data.riskProfile.moderateRisk),H(),an(" ",e.data.riskProfile.moderateRisk,"% "),H(),Sc("title","High Risk (",e.data.riskProfile.highRisk,"% of code)"),ue("ccRiskProfileBar",e.data.riskProfile.highRisk),H(),an(" ",e.data.riskProfile.highRisk,"% "),H(),Sc("title","Very High Risk (",e.data.riskProfile.veryHighRisk,"% of code)"),ue("ccRiskProfileBar",e.data.riskProfile.veryHighRisk),H(),an(" ",e.data.riskProfile.veryHighRisk,"% ")}}function IRe(t,n){1&t&&(I(0,"span"),ve(1," Could not calculate Risk Profile. At least one of the metrics rloc (real lines of code) or complexity (cyclomatic complexity) is not available. "),O(),_e(2,"br")(3,"br"),I(4,"span"),ve(5," Be aware that complexity was previously named mcc. Old maps which still contain mcc instead of complexity need to be regenerated for the risk profile to work. "),O())}let BRe=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=At({type:t,selectors:[["cc-high-risk-profile"]],inputs:{data:"data"},decls:6,vars:3,consts:[["menu","matMenu"],["title","Open High Risk Profile",1,"cc-ribbon-bar-menu-button",3,"matMenuTriggerFor"],[1,"fa","fa-bar-chart"],[1,"ai-drop-down","high-risk-profile"],[1,"title"],[1,"text-content"],["target","_blank","rel","noopener","href","https://maibornwolff.github.io/codecharta/docs/suspicious-metrics/"],[1,"fa","fa-external-link"],[1,"sub-title"],[1,"fa","fa-lightbulb-o"],[1,"risk-profiles"],[1,"risk-profile","low-risk",3,"ccRiskProfileBar","title"],[1,"risk-profile","moderate-risk",3,"ccRiskProfileBar","title"],[1,"risk-profile","high-risk",3,"ccRiskProfileBar","title"],[1,"risk-profile","very-high-risk",3,"ccRiskProfileBar","title"]],template:function(i,r){1&i&&(I(0,"button",1),_e(1,"i",2),O(),I(2,"mat-menu",3,0),ft(4,kRe,31,20)(5,IRe,6,0),O()),2&i&&(ue("matMenuTriggerFor",Co(3)),H(4),yt(4,void 0!==r.data.riskProfile?4:-1),H(),yt(5,void 0===r.data.riskProfile?5:-1))},dependencies:[su,Qb,FRe],styles:[".ai-drop-down.high-risk-profile ul{margin:0}.ai-drop-down.high-risk-profile .risk-profiles{margin:0 -10px -10px;display:flex}.ai-drop-down.high-risk-profile .risk-profiles .risk-profile{height:36px;text-align:center;justify-content:center;align-items:center;overflow:hidden}.ai-drop-down.high-risk-profile .risk-profiles .low-risk{background-color:#5cb34d}.ai-drop-down.high-risk-profile .risk-profiles .moderate-risk{background-color:#eef432}.ai-drop-down.high-risk-profile .risk-profiles .high-risk{background-color:#cc2900}.ai-drop-down.high-risk-profile .risk-profiles .very-high-risk{background-color:#9c0e6a}\n"],encapsulation:2})}}return t})();function DRe(t,n){if(1&t&&_e(0,"cc-suspicious-metrics",0)(1,"cc-high-risk-profile",0),2&t){const e=n;ue("data",e),H(),ue("data",e)}}let RRe=(()=>{class t{constructor(e){this.store=e,this.data$=this.store.select(nRe)}static{this.\u0275fac=function(i){return new(i||t)(W(Wt))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-artificial-intelligence"]],decls:2,vars:3,consts:[[3,"data"]],template:function(i,r){if(1&i&&(ft(0,DRe,2,2),ze(1,"async")),2&i){let o;yt(0,(o=tt(1,1,r.data$))?0:-1,o)}},dependencies:[TRe,BRe,Gn],styles:["cc-artificial-intelligence{display:flex;justify-content:center;gap:4px}cc-artificial-intelligence .suspicious-metrics-badge{position:absolute;bottom:10px;padding:4px 6px;border-radius:50%;background:red;color:#fff;font-size:10px;line-height:10px}.button-mat-dialog{border-radius:12px;margin-top:2px;font-size:14px;font-weight:700;width:100px}.mat-mdc-menu-panel.ai-drop-down{max-width:35em;padding:10px}.mat-mdc-menu-panel.ai-drop-down .mat-mdc-menu-content{padding:0}.mat-mdc-menu-panel.ai-drop-down .title{font-size:20px;font-weight:700;margin-bottom:8px}.mat-mdc-menu-panel.ai-drop-down .sub-title{font-size:16px}.mat-mdc-menu-panel.ai-drop-down .text-content{font-size:14px;padding:8px 0 16px}\n"],encapsulation:2})}}return t})();const LRe=["trigger"],PRe=["panel"],NRe=[[["mat-select-trigger"]],"*"],ORe=["mat-select-trigger","*"];function URe(t,n){if(1&t&&(I(0,"span",4),ve(1),O()),2&t){const e=He();H(),ur(e.placeholder)}}function HRe(t,n){1&t&&zn(0)}function VRe(t,n){if(1&t&&(I(0,"span",11),ve(1),O()),2&t){const e=He(2);H(),ur(e.triggerValue)}}function QRe(t,n){if(1&t&&(I(0,"span",10),ft(1,HRe,1,0)(2,VRe,2,1),O()),2&t){const e=He();H(),yt(1,e.customTrigger?1:2)}}function zRe(t,n){if(1&t){const e=kn();I(0,"div",12,1),We("@transformPanel.done",function(r){return Ft(e),kt(He()._panelDoneAnimatingStream.next(r.toState))})("keydown",function(r){return Ft(e),kt(He()._handleKeydown(r))}),zn(2,1),O()}if(2&t){const e=He();Uu("mat-mdc-select-panel mdc-menu-surface mdc-menu-surface--open ",e._getPanelTheme(),""),ue("ngClass",e.panelClass)("@transformPanel","showing"),oi("id",e.id+"-panel")("aria-multiselectable",e.multiple)("aria-label",e.ariaLabel||null)("aria-labelledby",e._getPanelAriaLabelledby())}}const GRe={transformPanelWrap:sh("transformPanelWrap",[Tl("* => void",eL("@transformPanel",[JR()],{optional:!0}))]),transformPanel:sh("transformPanel",[nc("void",Do({opacity:0,transform:"scale(1, 0.8)"})),Tl("void => showing",tc("120ms cubic-bezier(0, 0, 0.2, 1)",Do({opacity:1,transform:"scale(1, 1)"}))),Tl("* => void",tc("100ms linear",Do({opacity:0})))])};let Iee=0;const Bee=new ot("mat-select-scroll-strategy",{providedIn:"root",factory:()=>{const t=Ut(_s);return()=>t.scrollStrategies.reposition()}}),WRe=new ot("MAT_SELECT_CONFIG"),$Re={provide:Bee,deps:[_s],useFactory:function qRe(t){return()=>t.scrollStrategies.reposition()}},Dee=new ot("MatSelectTrigger");class jRe{constructor(n,e){this.source=n,this.value=e}}let vm=(()=>{class t{_scrollOptionIntoView(e){const i=this.options.toArray()[e];if(i){const r=this.panel.nativeElement,o=function $1e(t,n,e){if(e.length){let i=n.toArray(),r=e.toArray(),o=0;for(let s=0;se+i?Math.max(0,t-i+n):e}(s.offsetTop,s.offsetHeight,r.scrollTop,r.offsetHeight)}}_positioningSettled(){this._scrollOptionIntoView(this._keyManager.activeItemIndex||0)}_getChangeEvent(e){return new jRe(this,e)}get focused(){return this._focused||this._panelOpen}get hideSingleSelectionIndicator(){return this._hideSingleSelectionIndicator}set hideSingleSelectionIndicator(e){this._hideSingleSelectionIndicator=e,this._syncParentProperties()}get placeholder(){return this._placeholder}set placeholder(e){this._placeholder=e,this.stateChanges.next()}get required(){return this._required??this.ngControl?.control?.hasValidator(ZD.required)??!1}set required(e){this._required=e,this.stateChanges.next()}get multiple(){return this._multiple}set multiple(e){this._multiple=e}get compareWith(){return this._compareWith}set compareWith(e){this._compareWith=e,this._selectionModel&&this._initializeSelection()}get value(){return this._value}set value(e){this._assignValue(e)&&this._onChange(e)}get errorStateMatcher(){return this._errorStateTracker.matcher}set errorStateMatcher(e){this._errorStateTracker.matcher=e}get id(){return this._id}set id(e){this._id=e||this._uid,this.stateChanges.next()}get errorState(){return this._errorStateTracker.errorState}set errorState(e){this._errorStateTracker.errorState=e}constructor(e,i,r,o,s,a,l,c,d,u,h,m,A,v){this._viewportRuler=e,this._changeDetectorRef=i,this._elementRef=s,this._dir=a,this._parentFormField=d,this.ngControl=u,this._liveAnnouncer=A,this._defaultOptions=v,this._positions=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom",panelClass:"mat-mdc-select-panel-above"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom",panelClass:"mat-mdc-select-panel-above"}],this._panelOpen=!1,this._compareWith=(x,C)=>x===C,this._uid="mat-select-"+Iee++,this._triggerAriaLabelledBy=null,this._destroy=new Yt,this.stateChanges=new Yt,this._onChange=()=>{},this._onTouched=()=>{},this._valueId="mat-select-value-"+Iee++,this._panelDoneAnimatingStream=new Yt,this._overlayPanelClass=this._defaultOptions?.overlayPanelClass||"",this._focused=!1,this.controlType="mat-select",this.disabled=!1,this.disableRipple=!1,this.tabIndex=0,this._hideSingleSelectionIndicator=this._defaultOptions?.hideSingleSelectionIndicator??!1,this._multiple=!1,this.disableOptionCentering=this._defaultOptions?.disableOptionCentering??!1,this.ariaLabel="",this.panelWidth=this._defaultOptions&&typeof this._defaultOptions.panelWidth<"u"?this._defaultOptions.panelWidth:"auto",this._initialized=new Yt,this.optionSelectionChanges=$R(()=>{const x=this.options;return x?x.changes.pipe(Qd(x),Bf(()=>Sl(...x.map(C=>C.onSelectionChange)))):this._initialized.pipe(Bf(()=>this.optionSelectionChanges))}),this.openedChange=new Ln,this._openedStream=this.openedChange.pipe(Ii(x=>x),Et(()=>{})),this._closedStream=this.openedChange.pipe(Ii(x=>!x),Et(()=>{})),this.selectionChange=new Ln,this.valueChange=new Ln,this._trackedModal=null,this._skipPredicate=x=>!this.panelOpen&&x.disabled,this.ngControl&&(this.ngControl.valueAccessor=this),null!=v?.typeaheadDebounceInterval&&(this.typeaheadDebounceInterval=v.typeaheadDebounceInterval),this._errorStateTracker=new XR(o,u,c,l,this.stateChanges),this._scrollStrategyFactory=m,this._scrollStrategy=this._scrollStrategyFactory(),this.tabIndex=parseInt(h)||0,this.id=this.id}ngOnInit(){this._selectionModel=new dF(this.multiple),this.stateChanges.next(),this._panelDoneAnimatingStream.pipe(Ly(),Ur(this._destroy)).subscribe(()=>this._panelDoneAnimating(this.panelOpen)),this._viewportRuler.change().pipe(Ur(this._destroy)).subscribe(()=>{this.panelOpen&&(this._overlayWidth=this._getOverlayWidth(this._preferredOverlayOrigin),this._changeDetectorRef.detectChanges())})}ngAfterContentInit(){this._initialized.next(),this._initialized.complete(),this._initKeyManager(),this._selectionModel.changed.pipe(Ur(this._destroy)).subscribe(e=>{e.added.forEach(i=>i.select()),e.removed.forEach(i=>i.deselect())}),this.options.changes.pipe(Qd(null),Ur(this._destroy)).subscribe(()=>{this._resetOptions(),this._initializeSelection()})}ngDoCheck(){const e=this._getTriggerAriaLabelledby(),i=this.ngControl;if(e!==this._triggerAriaLabelledBy){const r=this._elementRef.nativeElement;this._triggerAriaLabelledBy=e,e?r.setAttribute("aria-labelledby",e):r.removeAttribute("aria-labelledby")}i&&(this._previousControl!==i.control&&(void 0!==this._previousControl&&null!==i.disabled&&i.disabled!==this.disabled&&(this.disabled=i.disabled),this._previousControl=i.control),this.updateErrorState())}ngOnChanges(e){(e.disabled||e.userAriaDescribedBy)&&this.stateChanges.next(),e.typeaheadDebounceInterval&&this._keyManager&&this._keyManager.withTypeAhead(this.typeaheadDebounceInterval)}ngOnDestroy(){this._keyManager?.destroy(),this._destroy.next(),this._destroy.complete(),this.stateChanges.complete(),this._clearFromModal()}toggle(){this.panelOpen?this.close():this.open()}open(){this._canOpen()&&(this._parentFormField&&(this._preferredOverlayOrigin=this._parentFormField.getConnectedOverlayOrigin()),this._overlayWidth=this._getOverlayWidth(this._preferredOverlayOrigin),this._applyModalPanelOwnership(),this._panelOpen=!0,this._keyManager.withHorizontalOrientation(null),this._highlightCorrectOption(),this._changeDetectorRef.markForCheck(),this.stateChanges.next())}_applyModalPanelOwnership(){const e=this._elementRef.nativeElement.closest('body > .cdk-overlay-container [aria-modal="true"]');if(!e)return;const i=`${this.id}-panel`;this._trackedModal&&OR(this._trackedModal,"aria-owns",i),qW(e,"aria-owns",i),this._trackedModal=e}_clearFromModal(){this._trackedModal&&(OR(this._trackedModal,"aria-owns",`${this.id}-panel`),this._trackedModal=null)}close(){this._panelOpen&&(this._panelOpen=!1,this._keyManager.withHorizontalOrientation(this._isRtl()?"rtl":"ltr"),this._changeDetectorRef.markForCheck(),this._onTouched(),this.stateChanges.next())}writeValue(e){this._assignValue(e)}registerOnChange(e){this._onChange=e}registerOnTouched(e){this._onTouched=e}setDisabledState(e){this.disabled=e,this._changeDetectorRef.markForCheck(),this.stateChanges.next()}get panelOpen(){return this._panelOpen}get selected(){return this.multiple?this._selectionModel?.selected||[]:this._selectionModel?.selected[0]}get triggerValue(){if(this.empty)return"";if(this._multiple){const e=this._selectionModel.selected.map(i=>i.viewValue);return this._isRtl()&&e.reverse(),e.join(", ")}return this._selectionModel.selected[0].viewValue}updateErrorState(){this._errorStateTracker.updateErrorState()}_isRtl(){return!!this._dir&&"rtl"===this._dir.value}_handleKeydown(e){this.disabled||(this.panelOpen?this._handleOpenKeydown(e):this._handleClosedKeydown(e))}_handleClosedKeydown(e){const i=e.keyCode,r=40===i||38===i||37===i||39===i,o=13===i||32===i,s=this._keyManager;if(!s.isTyping()&&o&&!Pc(e)||(this.multiple||e.altKey)&&r)e.preventDefault(),this.open();else if(!this.multiple){const a=this.selected;s.onKeydown(e);const l=this.selected;l&&a!==l&&this._liveAnnouncer.announce(l.viewValue,1e4)}}_handleOpenKeydown(e){const i=this._keyManager,r=e.keyCode,o=40===r||38===r,s=i.isTyping();if(o&&e.altKey)e.preventDefault(),this.close();else if(s||13!==r&&32!==r||!i.activeItem||Pc(e))if(!s&&this._multiple&&65===r&&e.ctrlKey){e.preventDefault();const a=this.options.some(l=>!l.disabled&&!l.selected);this.options.forEach(l=>{l.disabled||(a?l.select():l.deselect())})}else{const a=i.activeItemIndex;i.onKeydown(e),this._multiple&&o&&e.shiftKey&&i.activeItem&&i.activeItemIndex!==a&&i.activeItem._selectViaInteraction()}else e.preventDefault(),i.activeItem._selectViaInteraction()}_onFocus(){this.disabled||(this._focused=!0,this.stateChanges.next())}_onBlur(){this._focused=!1,this._keyManager?.cancelTypeahead(),!this.disabled&&!this.panelOpen&&(this._onTouched(),this._changeDetectorRef.markForCheck(),this.stateChanges.next())}_onAttached(){this._overlayDir.positionChange.pipe(qo(1)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this._positioningSettled()})}_getPanelTheme(){return this._parentFormField?`mat-${this._parentFormField.color}`:""}get empty(){return!this._selectionModel||this._selectionModel.isEmpty()}_initializeSelection(){Promise.resolve().then(()=>{this.ngControl&&(this._value=this.ngControl.value),this._setSelectionByValue(this._value),this.stateChanges.next()})}_setSelectionByValue(e){if(this.options.forEach(i=>i.setInactiveStyles()),this._selectionModel.clear(),this.multiple&&e)Array.isArray(e),e.forEach(i=>this._selectOptionByValue(i)),this._sortValues();else{const i=this._selectOptionByValue(e);i?this._keyManager.updateActiveItem(i):this.panelOpen||this._keyManager.updateActiveItem(-1)}this._changeDetectorRef.markForCheck()}_selectOptionByValue(e){const i=this.options.find(r=>{if(this._selectionModel.isSelected(r))return!1;try{return null!=r.value&&this._compareWith(r.value,e)}catch{return!1}});return i&&this._selectionModel.select(i),i}_assignValue(e){return!!(e!==this._value||this._multiple&&Array.isArray(e))&&(this.options&&this._setSelectionByValue(e),this._value=e,!0)}_getOverlayWidth(e){return"auto"===this.panelWidth?(e instanceof PR?e.elementRef:e||this._elementRef).nativeElement.getBoundingClientRect().width:null===this.panelWidth?"":this.panelWidth}_syncParentProperties(){if(this.options)for(const e of this.options)e._changeDetectorRef.markForCheck()}_initKeyManager(){this._keyManager=new e1e(this.options).withTypeAhead(this.typeaheadDebounceInterval).withVerticalOrientation().withHorizontalOrientation(this._isRtl()?"rtl":"ltr").withHomeAndEnd().withPageUpDown().withAllowedModifierKeys(["shiftKey"]).skipPredicate(this._skipPredicate),this._keyManager.tabOut.subscribe(()=>{this.panelOpen&&(!this.multiple&&this._keyManager.activeItem&&this._keyManager.activeItem._selectViaInteraction(),this.focus(),this.close())}),this._keyManager.change.subscribe(()=>{this._panelOpen&&this.panel?this._scrollOptionIntoView(this._keyManager.activeItemIndex||0):!this._panelOpen&&!this.multiple&&this._keyManager.activeItem&&this._keyManager.activeItem._selectViaInteraction()})}_resetOptions(){const e=Sl(this.options.changes,this._destroy);this.optionSelectionChanges.pipe(Ur(e)).subscribe(i=>{this._onSelect(i.source,i.isUserInput),i.isUserInput&&!this.multiple&&this._panelOpen&&(this.close(),this.focus())}),Sl(...this.options.map(i=>i._stateChanges)).pipe(Ur(e)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this.stateChanges.next()})}_onSelect(e,i){const r=this._selectionModel.isSelected(e);null!=e.value||this._multiple?(r!==e.selected&&(e.selected?this._selectionModel.select(e):this._selectionModel.deselect(e)),i&&this._keyManager.setActiveItem(e),this.multiple&&(this._sortValues(),i&&this.focus())):(e.deselect(),this._selectionModel.clear(),null!=this.value&&this._propagateChanges(e.value)),r!==this._selectionModel.isSelected(e)&&this._propagateChanges(),this.stateChanges.next()}_sortValues(){if(this.multiple){const e=this.options.toArray();this._selectionModel.sort((i,r)=>this.sortComparator?this.sortComparator(i,r,e):e.indexOf(i)-e.indexOf(r)),this.stateChanges.next()}}_propagateChanges(e){let i;i=this.multiple?this.selected.map(r=>r.value):this.selected?this.selected.value:e,this._value=i,this.valueChange.emit(i),this._onChange(i),this.selectionChange.emit(this._getChangeEvent(i)),this._changeDetectorRef.markForCheck()}_highlightCorrectOption(){if(this._keyManager)if(this.empty){let e=-1;for(let i=0;i0}focus(e){this._elementRef.nativeElement.focus(e)}_getPanelAriaLabelledby(){if(this.ariaLabel)return null;const e=this._parentFormField?.getLabelId();return this.ariaLabelledby?(e?e+" ":"")+this.ariaLabelledby:e}_getAriaActiveDescendant(){return this.panelOpen&&this._keyManager&&this._keyManager.activeItem?this._keyManager.activeItem.id:null}_getTriggerAriaLabelledby(){if(this.ariaLabel)return null;const e=this._parentFormField?.getLabelId();let i=(e?e+" ":"")+this._valueId;return this.ariaLabelledby&&(i+=" "+this.ariaLabelledby),i}_panelDoneAnimating(e){this.openedChange.emit(e)}setDescribedByIds(e){e.length?this._elementRef.nativeElement.setAttribute("aria-describedby",e.join(" ")):this._elementRef.nativeElement.removeAttribute("aria-describedby")}onContainerClick(){this.focus(),this.open()}get shouldLabelFloat(){return this.panelOpen||!this.empty||this.focused&&!!this.placeholder}static{this.\u0275fac=function(i){return new(i||t)(W(IR),W(Ao),W(Fn),W(l$),W(Un),W(th,8),W(Iy,8),W(By,8),W(EN,8),W(Ld,10),Kl("tabindex"),W(Bee),W(b1e),W(WRe,8))}}static{this.\u0275cmp=At({type:t,selectors:[["mat-select"]],contentQueries:function(i,r,o){if(1&i&&(Ir(o,Dee,5),Ir(o,zd,5),Ir(o,g$,5)),2&i){let s;mn(s=pn())&&(r.customTrigger=s.first),mn(s=pn())&&(r.options=s),mn(s=pn())&&(r.optionGroups=s)}},viewQuery:function(i,r){if(1&i&&(ti(LRe,5),ti(PRe,5),ti(OW,5)),2&i){let o;mn(o=pn())&&(r.trigger=o.first),mn(o=pn())&&(r.panel=o.first),mn(o=pn())&&(r._overlayDir=o.first)}},hostAttrs:["role","combobox","aria-autocomplete","none","aria-haspopup","listbox",1,"mat-mdc-select"],hostVars:19,hostBindings:function(i,r){1&i&&We("keydown",function(s){return r._handleKeydown(s)})("focus",function(){return r._onFocus()})("blur",function(){return r._onBlur()}),2&i&&(oi("id",r.id)("tabindex",r.disabled?-1:r.tabIndex)("aria-controls",r.panelOpen?r.id+"-panel":null)("aria-expanded",r.panelOpen)("aria-label",r.ariaLabel||null)("aria-required",r.required.toString())("aria-disabled",r.disabled.toString())("aria-invalid",r.errorState)("aria-activedescendant",r._getAriaActiveDescendant()),xn("mat-mdc-select-disabled",r.disabled)("mat-mdc-select-invalid",r.errorState)("mat-mdc-select-required",r.required)("mat-mdc-select-empty",r.empty)("mat-mdc-select-multiple",r.multiple))},inputs:{userAriaDescribedBy:[bt.None,"aria-describedby","userAriaDescribedBy"],panelClass:"panelClass",disabled:[bt.HasDecoratorInputTransform,"disabled","disabled",qn],disableRipple:[bt.HasDecoratorInputTransform,"disableRipple","disableRipple",qn],tabIndex:[bt.HasDecoratorInputTransform,"tabIndex","tabIndex",e=>null==e?0:sa(e)],hideSingleSelectionIndicator:[bt.HasDecoratorInputTransform,"hideSingleSelectionIndicator","hideSingleSelectionIndicator",qn],placeholder:"placeholder",required:[bt.HasDecoratorInputTransform,"required","required",qn],multiple:[bt.HasDecoratorInputTransform,"multiple","multiple",qn],disableOptionCentering:[bt.HasDecoratorInputTransform,"disableOptionCentering","disableOptionCentering",qn],compareWith:"compareWith",value:"value",ariaLabel:[bt.None,"aria-label","ariaLabel"],ariaLabelledby:[bt.None,"aria-labelledby","ariaLabelledby"],errorStateMatcher:"errorStateMatcher",typeaheadDebounceInterval:[bt.HasDecoratorInputTransform,"typeaheadDebounceInterval","typeaheadDebounceInterval",sa],sortComparator:"sortComparator",id:"id",panelWidth:"panelWidth"},outputs:{openedChange:"openedChange",_openedStream:"opened",_closedStream:"closed",selectionChange:"selectionChange",valueChange:"valueChange"},exportAs:["matSelect"],standalone:!0,features:[ni([{provide:CN,useExisting:t},{provide:A$,useExisting:t}]),Ho,cr,xr],ngContentSelectors:ORe,decls:11,vars:8,consts:[["fallbackOverlayOrigin","cdkOverlayOrigin","trigger",""],["panel",""],["cdk-overlay-origin","",1,"mat-mdc-select-trigger",3,"click"],[1,"mat-mdc-select-value"],[1,"mat-mdc-select-placeholder","mat-mdc-select-min-line"],[1,"mat-mdc-select-arrow-wrapper"],[1,"mat-mdc-select-arrow"],["viewBox","0 0 24 24","width","24px","height","24px","focusable","false","aria-hidden","true"],["d","M7 10l5 5 5-5z"],["cdk-connected-overlay","","cdkConnectedOverlayLockPosition","","cdkConnectedOverlayHasBackdrop","","cdkConnectedOverlayBackdropClass","cdk-overlay-transparent-backdrop",3,"backdropClick","attach","detach","cdkConnectedOverlayPanelClass","cdkConnectedOverlayScrollStrategy","cdkConnectedOverlayOrigin","cdkConnectedOverlayOpen","cdkConnectedOverlayPositions","cdkConnectedOverlayWidth"],[1,"mat-mdc-select-value-text"],[1,"mat-mdc-select-min-line"],["role","listbox","tabindex","-1",3,"keydown","ngClass"]],template:function(i,r){if(1&i){const o=kn();mo(NRe),I(0,"div",2,0),We("click",function(){return Ft(o),kt(r.open())}),I(3,"div",3),ft(4,URe,2,1,"span",4)(5,QRe,3,1),O(),I(6,"div",5)(7,"div",6),bl(),I(8,"svg",7),_e(9,"path",8),O()()()(),ft(10,zRe,3,9,"ng-template",9),We("backdropClick",function(){return Ft(o),kt(r.close())})("attach",function(){return Ft(o),kt(r._onAttached())})("detach",function(){return Ft(o),kt(r.close())})}if(2&i){const o=Co(1);H(3),oi("id",r._valueId),H(),yt(4,r.empty?4:5),H(6),ue("cdkConnectedOverlayPanelClass",r._overlayPanelClass)("cdkConnectedOverlayScrollStrategy",r._scrollStrategy)("cdkConnectedOverlayOrigin",r._preferredOverlayOrigin||o)("cdkConnectedOverlayOpen",r.panelOpen)("cdkConnectedOverlayPositions",r._positions)("cdkConnectedOverlayWidth",r._overlayWidth)}},dependencies:[PR,OW,Rd],styles:['.mat-mdc-select{display:inline-block;width:100%;outline:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:var(--mat-select-enabled-trigger-text-color);font-family:var(--mat-select-trigger-text-font);line-height:var(--mat-select-trigger-text-line-height);font-size:var(--mat-select-trigger-text-size);font-weight:var(--mat-select-trigger-text-weight);letter-spacing:var(--mat-select-trigger-text-tracking)}div.mat-mdc-select-panel{box-shadow:var(--mat-select-container-elevation-shadow)}.mat-mdc-select-disabled{color:var(--mat-select-disabled-trigger-text-color)}.mat-mdc-select-trigger{display:inline-flex;align-items:center;cursor:pointer;position:relative;box-sizing:border-box;width:100%}.mat-mdc-select-disabled .mat-mdc-select-trigger{-webkit-user-select:none;user-select:none;cursor:default}.mat-mdc-select-value{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-mdc-select-value-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-mdc-select-arrow-wrapper{height:24px;flex-shrink:0;display:inline-flex;align-items:center}.mat-form-field-appearance-fill .mdc-text-field--no-label .mat-mdc-select-arrow-wrapper{transform:none}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-invalid .mat-mdc-select-arrow,.mat-form-field-invalid:not(.mat-form-field-disabled) .mat-mdc-form-field-infix::after{color:var(--mat-select-invalid-arrow-color)}.mat-mdc-select-arrow{width:10px;height:5px;position:relative;color:var(--mat-select-enabled-arrow-color)}.mat-mdc-form-field.mat-focused .mat-mdc-select-arrow{color:var(--mat-select-focused-arrow-color)}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-disabled .mat-mdc-select-arrow{color:var(--mat-select-disabled-arrow-color)}.mat-mdc-select-arrow svg{fill:currentColor;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.cdk-high-contrast-active .mat-mdc-select-arrow svg{fill:CanvasText}.mat-mdc-select-disabled .cdk-high-contrast-active .mat-mdc-select-arrow svg{fill:GrayText}div.mat-mdc-select-panel{width:100%;max-height:275px;outline:0;overflow:auto;padding:8px 0;border-radius:4px;box-sizing:border-box;position:static;background-color:var(--mat-select-panel-background-color)}.cdk-high-contrast-active div.mat-mdc-select-panel{outline:solid 1px}.cdk-overlay-pane:not(.mat-mdc-select-panel-above) div.mat-mdc-select-panel{border-top-left-radius:0;border-top-right-radius:0;transform-origin:top center}.mat-mdc-select-panel-above div.mat-mdc-select-panel{border-bottom-left-radius:0;border-bottom-right-radius:0;transform-origin:bottom center}div.mat-mdc-select-panel .mat-mdc-option{--mdc-list-list-item-container-color: var(--mat-select-panel-background-color)}.mat-mdc-select-placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1);color:var(--mat-select-placeholder-text-color)}._mat-animation-noopable .mat-mdc-select-placeholder{transition:none}.mat-form-field-hide-placeholder .mat-mdc-select-placeholder{color:rgba(0,0,0,0);-webkit-text-fill-color:rgba(0,0,0,0);transition:none;display:block}.mat-mdc-form-field-type-mat-select:not(.mat-form-field-disabled) .mat-mdc-text-field-wrapper{cursor:pointer}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mat-mdc-floating-label{max-width:calc(100% - 18px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mdc-floating-label--float-above{max-width:calc(100%/0.75 - 24px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-text-field--label-floating .mdc-notched-outline__notch{max-width:calc(100% - 24px)}.mat-mdc-select-min-line:empty::before{content:" ";white-space:pre;width:1px;display:inline-block;visibility:hidden}.mat-form-field-appearance-fill .mat-mdc-select-arrow-wrapper{transform:var(--mat-select-arrow-transform)}'],encapsulation:2,data:{animation:[GRe.transformPanel]},changeDetection:0})}}return t})(),Ree=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275dir=zt({type:t,selectors:[["mat-select-trigger"]],standalone:!0,features:[ni([{provide:Dee,useExisting:t}])]})}}return t})(),Lee=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({providers:[$Re],imports:[An,g1,b$,Ki,h1,mx,b$,Ki]})}}return t})(),KRe=(()=>{class t{transform(e,i){const r=i.toLocaleLowerCase();return e.filter(o=>{let s=o.name;return("complexity"===o.name||"sonar_complexity"===o.name)&&(s+=" (formerly mcc)"),s.toLocaleLowerCase().includes(r)})}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275pipe=lr({name:"filterMetricDataBySearchTerm",type:t,pure:!0})}}return t})();const XRe=["searchTermInput"],YRe=["matSelect"],ZRe=[[["","hoveredInformation",""]]],JRe=["[hoveredInformation]"];function eLe(t,n){1&t&&ve(0," (formerly mcc) ")}function tLe(t,n){1&t&&(I(0,"span",10),ve(1),O()),2&t&&(H(),an(" ",n," "))}function nLe(t,n){if(1&t&&(I(0,"mat-option",8),ze(1,"attributeDescriptorTooltip"),ve(2),ft(3,eLe,1,0),I(4,"span",9),ve(5),O(),_e(6,"br"),ft(7,tLe,2,1,"span",10),O()),2&t){let e;const i=n.$implicit,r=He();ue("value",i.name)("title",po(1,6,r[i.name],i.name)),H(2),an(" ",i.name," "),H(),yt(3,"complexity"==i.name||"sonar_complexity"==i.name?3:-1),H(2),an("(",i.maxValue,")"),H(2),yt(7,(e=null==r[i.name]?null:r[i.name].description)?7:-1,e)}}function iLe(t,n){if(1&t){const e=kn();I(0,"mat-select",3,0),We("selectionChange",function(r){return Ft(e),kt(He().handleMetricChanged(r.value))})("openedChange",function(r){return Ft(e),kt(He().handleOpenedChanged(r))}),I(2,"mat-select-trigger"),ve(3),O(),I(4,"mat-form-field",4),_e(5,"i",5),I(6,"input",6,1),Fc("ngModelChange",function(r){Ft(e);const o=He();return Bd(o.searchTerm,r)||(o.searchTerm=r),kt(r)}),We("keydown",function(r){return Ft(e),kt(He().handleKeyDown(r))}),O()(),I(8,"div",7),yr(9,nLe,8,9,"mat-option",8,Sr),ze(11,"async"),ze(12,"filterMetricDataBySearchTerm"),O()()}if(2&t){const e=He();ue("panelClass","cc-metric-chooser")("value",e.selectedMetricName)("disabled",e.isDisabled),H(3),ur(e.selectedMetricName),H(3),ue("placeholder",e.searchPlaceholder),Tc("ngModel",e.searchTerm),H(3),wr(po(12,8,tt(11,6,e.metricData$),e.searchTerm))}}function rLe(t,n){1&t&&zn(0)}let Ax=(()=>{class t{constructor(e){this.store=e,this.type="node",this.isDisabled=!1,this.searchTerm="",this.attributeDescriptors$=this.store.select(cF),this.hideMetricSum=!1}ngOnInit(){this.metricData$=this.store.select(ks).pipe(Et(e=>"node"===this.type?e.nodeMetricData:e.edgeMetricData))}ngAfterViewInit(){this.matOptions.changes.subscribe(e=>{this.setFirstItemActiveOnSearch(e)})}setFirstItemActiveOnSearch(e){const i=e.filter(s=>s._selected),r=e.filter(s=>s.value.toLowerCase().startsWith(this.searchTerm.toLowerCase())).sort((s,a)=>s.value.localeCompare(a.value)),o=this.searchTerm.trim().length>0;setTimeout(()=>{o&&0===i.length&&0===r.length?this.matSelect._keyManager.setActiveItem(0):o&&0===i.length&&r.length>0&&this.matSelect._keyManager.setActiveItem(r[0]);try{document.querySelector(".mdc-list-item--selected").scrollIntoView()}catch{}})}handleOpenedChanged(e){e?(this.searchTermInput.nativeElement.focus(),this.hideMetricSum=!0):(this.searchTerm="",this.hideMetricSum=!1)}handleKeyDown(e){const{key:i}=e;"ArrowDown"!==i&&"ArrowUp"!==i&&"Enter"!==i&&"Escape"!==i&&e.stopPropagation()}static{this.\u0275fac=function(i){return new(i||t)(W(Wt))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-metric-chooser"]],viewQuery:function(i,r){if(1&i&&(ti(XRe,5),ti(YRe,5),ti(zd,5)),2&i){let o;mn(o=pn())&&(r.searchTermInput=o.first),mn(o=pn())&&(r.matSelect=o.first),mn(o=pn())&&(r.matOptions=o)}},inputs:{selectedMetricName:"selectedMetricName",searchPlaceholder:"searchPlaceholder",handleMetricChanged:"handleMetricChanged",type:"type",isDisabled:"isDisabled"},ngContentSelectors:JRe,decls:3,vars:4,consts:[["matSelect",""],["searchTermInput",""],[3,"panelClass","value","disabled"],[3,"selectionChange","openedChange","panelClass","value","disabled"],[1,"cc-metric-chooser-search-field"],["matPrefix","",1,"fa","fa-search","search-icon"],["matInput","","type","text",3,"ngModelChange","keydown","placeholder","ngModel"],[1,"cc-metric-chooser-option-container"],[3,"value","title"],[1,"metric-max-value"],[1,"metric-subtitle"]],template:function(i,r){if(1&i&&(mo(ZRe),ft(0,iLe,13,11,"mat-select",2),ze(1,"async"),ft(2,rLe,1,0)),2&i){let o;yt(0,(o=tt(1,2,r.attributeDescriptors$))?0:-1,o),H(2),yt(2,r.hideMetricSum?-1:2)}},dependencies:[nd,aee,vm,Ree,zd,_m,Pf,b0,v0,Gn,hF,KRe],styles:["cc-metric-chooser{width:100%}cc-metric-chooser cc-metric-chooser-value,cc-metric-chooser .cc-metric-chooser-container{position:absolute;top:10%;right:28px}cc-metric-chooser cc-metric-chooser-value .metric-value,cc-metric-chooser .cc-metric-chooser-container .metric-value{height:25px}cc-metric-chooser cc-metric-chooser-value .metric-value .rounded-box,cc-metric-chooser .cc-metric-chooser-container .metric-value .rounded-box{background-color:#e6e6e6;border-radius:2px;padding:2px 5px;display:inline-block}cc-metric-chooser .mat-mdc-select-placeholder{color:#000!important}cc-metric-chooser:hover .metric-value{display:none}.mat-mdc-select-panel.cc-metric-chooser .cc-metric-chooser-search-field{position:fixed;top:98px;z-index:-1;width:300px;font-size:14px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.mat-mdc-select-panel.cc-metric-chooser .cc-metric-chooser-search-field .search-icon{color:#1b9cfc;margin-left:8px;font-size:18px}.mat-mdc-select-panel.cc-metric-chooser .cc-metric-chooser-search-field .mat-mdc-form-field-subscript-wrapper.mat-mdc-form-field-bottom-align{display:none}.mat-mdc-select-panel.cc-metric-chooser .cc-metric-chooser-search-field .mat-mdc-form-field-infix{margin-left:6px;display:flex}.mat-mdc-select-panel.cc-metric-chooser .cc-metric-chooser-option-container{font-size:16px}.mat-mdc-select-panel.cc-metric-chooser .cc-metric-chooser-option-container mat-option .metric-max-value{color:#ccc}.mat-mdc-select-panel.cc-metric-chooser .cc-metric-chooser-option-container mat-option .metric-subtitle{color:#999;font-size:11px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.cdk-overlay-pane:not(.mat-mdc-select-panel-above) .mdc-menu-surface.mat-mdc-select-panel{position:absolute;width:300px;max-height:216px;right:0;top:72px;padding:0}\n"],encapsulation:2})}}return t})();const Pee=Xt(Rb,rx,(t,n)=>t.get(n));class oLe{constructor(){this.vertexShaderCode=p(1812),this.fragmentShaderCode=p(1190)}}class sLe{constructor(n){this._buildings=new Array,this.mapSize=n,this.scales=new Y(1,1,1)}add(n){this._buildings.push(n)}get buildings(){return this._buildings}setScales(n){this.scales=new Y(n.x,n.y,n.z)}getBuildingByPath(n){return this.buildings.find(e=>e.node.path===n)}intersect(n){let e,i=Number.POSITIVE_INFINITY;const r=this.scales.clone().multiplyScalar(this.mapSize).multiply(new Y(-1,0,-1));for(const o of this._buildings){const s=o.boundingBox.clone();if(s.min.multiply(this.scales),s.max.multiply(this.scales),s.translate(r),this.rayIntersectsAxisAlignedBoundingBox(n,s)){const a=n.intersectBox(s,new Y);if(a){const l=a.distanceTo(n.origin);l=o}}class aLe{constructor(n,e,i,r){this._id=n,this._boundingBox=e,this._color=r,this._defaultColor=r,this._deltaColor="#000000",this._defaultDeltaColor="#000000",this._node=i}getCenterPoint(n){return new Y(this._node.x0-n+this._node.width/2,this._node.z0+this._node.height,this._node.y0-n+this._node.length/2)}decreaseLightness(n){this._color=this._decreaseLightnessForColor(this._defaultColor,n),this._node.deltas&&(this._deltaColor=this._decreaseLightnessForColor(this._defaultDeltaColor,n))}_decreaseLightnessForColor(n,e){const i=Gi.hexToHSL(n);return i.decreaseLightness(e),i.getLightness()<10?i.setLightness(10):i.setLightness(i.getLightness()),i.toHex()}getColorVector(){return Gi.getVector3(this._color)}getDefaultColorVector(){return Gi.getVector3(this._defaultColor)}getDeltaColorVector(){return Gi.getVector3(this._deltaColor)}getDefaultDeltaColorVector(){return Gi.getVector3(this._defaultDeltaColor)}resetColor(){this._color=this._defaultColor,this._deltaColor=this._defaultDeltaColor}equals(n){return this._id===n._id}get id(){return this._id}get boundingBox(){return this._boundingBox}get color(){return this._color}get node(){return this._node}get deltaColor(){return this._deltaColor}get defaultDeltaColor(){return this._defaultDeltaColor}setColor(n){this._color=n}setNode(n){this._node=n}setInitialDeltaColor(n){this._defaultDeltaColor=n,this._deltaColor=n}setDeltaColor(n){this._deltaColor=n}}var SF=function(t){return t[t.left=0]="left",t[t.right=1]="right",t[t.bottom=2]="bottom",t[t.top=3]="top",t[t.back=4]="back",t[t.front=5]="front",t}(SF||{});const lLe=[[-1,0,0],[1,0,0],[0,-1,0],[0,1,0],[0,0,-1],[0,0,1]],Nee=[1,0,1,1,0,1,0,0,0,0,0,1,1,1,1,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,0,1,0,1,1,0,1,1,0,0,0,0,1,1,1];function Oee(t,n,e,i,r,o,s){o.add(new aLe(r,new ys(new Y(e.x,e.y,e.z),new Y(e.x+e.width,e.y+e.height,e.z+e.depth)),n,i)),t.uvs.set(Nee,r*Nee.length),function cLe(t,n,e){const{x:i,y:r,z:o,width:s,height:a,depth:l}=n,c=i+s,d=r+a,u=o+l;let h=4*e*6*3;t[h++]=i,t[h++]=r,t[h++]=o,t[h++]=i,t[h++]=d,t[h++]=o,t[h++]=i,t[h++]=d,t[h++]=u,t[h++]=i,t[h++]=r,t[h++]=u,t[h++]=c,t[h++]=r,t[h++]=o,t[h++]=c,t[h++]=d,t[h++]=o,t[h++]=c,t[h++]=d,t[h++]=u,t[h++]=c,t[h++]=r,t[h++]=u,t[h++]=i,t[h++]=r,t[h++]=o,t[h++]=i,t[h++]=r,t[h++]=u,t[h++]=c,t[h++]=r,t[h++]=u,t[h++]=c,t[h++]=r,t[h++]=o,t[h++]=i,t[h++]=d,t[h++]=o,t[h++]=i,t[h++]=d,t[h++]=u,t[h++]=c,t[h++]=d,t[h++]=u,t[h++]=c,t[h++]=d,t[h++]=o,t[h++]=c,t[h++]=r,t[h++]=u,t[h++]=i,t[h++]=r,t[h++]=u,t[h++]=i,t[h++]=d,t[h++]=u,t[h++]=c,t[h++]=d,t[h++]=u,t[h++]=c,t[h++]=r,t[h++]=o,t[h++]=i,t[h++]=r,t[h++]=o,t[h++]=i,t[h++]=d,t[h++]=o,t[h++]=c,t[h++]=d,t[h++]=o}(t.positions,e,r),function uLe(t,n,e,i,r,o){const{y:s,height:a}=n,c=i/(s+a-s);let d=6*r*4,u=3*d,h=6*r*6;const m=Gi.getVector3Array(e);for(let A=0;A<6;A++){const v=dLe(A,t),x=lLe[A],C=d,w=d+1,S=d+2,M=d+3;o.isHeight.set(v,d);for(const $=d+4;d<$;d++)o.normals.set(x,u),o.colors.set(m,u),u+=3,o.ids[d]=r,o.deltas[d]=c;const B=Math.floor(A/2);o.indices.set(1===x[B]?[C,w,S,C,S,M]:[C,S,w,C,M,S],h),h+=6}}(n,e,i,s,r,t)}function dLe(t,n){return n.isLeaf&&t!==SF.bottom?t===SF.top?[1,1,1,1]:t<=SF.right?[0,1,1,0]:[0,0,1,1]:[0,0,0,0]}let hLe=(()=>{class t{static{this.MINIMAL_BUILDING_HEIGHT=1}build(e,i,r,o){const s=new sLe(Ko);this.floorGradient=Gi.gradient("#333333","#DDDDDD",this.getMaxNodeDepth(e)),this.materials=[i];const a=e.length,h=4*a*6,m={positions:new Float32Array(3*h),uvs:new Float32Array(2*h),normals:new Float32Array(3*h),colors:new Float32Array(3*h),indices:new Uint32Array(6*a*6),ids:new Float32Array(h),deltas:new Float32Array(h),isHeight:new Float32Array(h)};for(const[A,v]of e.entries())v.isLeaf?this.addBuilding(m,v,A,s,r,o):this.addFloor(m,v,A,s);return{mesh:this.buildMeshFromIntermediateVertexData(m),desc:s}}getMaxNodeDepth(e){return e.reduce((i,{depth:r})=>Math.max(r,i),0)}mapNodeToLocalBox(e){return{x:e.x0,y:e.z0,z:e.y0,width:e.width,height:e.height,depth:e.length}}ensureMinHeightUnlessDeltaIsNegative(e,i){return i<=0?e:Math.max(e,t.MINIMAL_BUILDING_HEIGHT)}addFloor(e,i,r,o){const s=this.getMarkingColorWithGradient(i);Oee(e,i,this.mapNodeToLocalBox(i),s,r,o,0)}getMarkingColorWithGradient(e){if(e.markingColor){const r=Gi.getNumber(e.markingColor)&(e.depth%2==0?14540253:16777215);return Gi.convertNumberToHex(r)}return this.floorGradient[e.depth]}addBuilding(e,i,r,o,s,a){const l=this.mapNodeToLocalBox(i);l.height=this.ensureMinHeightUnlessDeltaIsNegative(i.height,i.heightDelta);let c=0;a&&i.deltas&&i.deltas[s.dynamicSettings.heightMetric]&&i.heightDelta&&(c=i.heightDelta,!i.flat&&c<0&&(l.height+=Math.abs(c))),Oee(e,i,l,i.color,r,o,c)}buildMeshFromIntermediateVertexData(e){const o=new Float32Array(e.colors),s=new Bn;return s.setAttribute("position",new Nn(e.positions,3)),s.setAttribute("normal",new Nn(e.normals,3)),s.setAttribute("isHeight",new Nn(e.isHeight,1)),s.setAttribute("uv",new Nn(e.uvs,2)),s.setAttribute("color",new Nn(e.colors,3)),s.setAttribute("deltaColor",new Nn(o,3)),s.setAttribute("subGeomIdx",new Nn(e.ids,1)),s.setAttribute("delta",new Nn(e.deltas,1)),s.setIndex(new Nn(e.indices,1)),s.addGroup(0,Number.POSITIVE_INFINITY,0),new Ci(s,this.materials)}}return t})(),fLe=(()=>{class t{static{this.NUM_OF_COLOR_VECTOR_FIELDS=3}static{this.NUM_OF_VERTICES=24}static{this.LIGHTNESS_INCREASE=-10}static{this.LIGHTNESS_DECREASE=20}constructor(e,i,r){this.initMaterial(),this.geomGen=new hLe,this.material.precision="lowp";const o=this.geomGen.build(e,this.material,i,r);this.threeMesh=o.mesh,this.mapGeomDesc=o.desc,this.nodes=e,this.initDeltaColorsOnMesh(i)}getThreeMesh(){return this.threeMesh}getNodes(){return this.nodes}selectBuilding(e,i){e.setColor(i),e.setDeltaColor(i),this.setVertexColor(e.id,e.getColorVector(),e.getDeltaColorVector()),this.updateVertices()}clearSelection(e){e.resetColor(),this.setVertexColor(e.id,e.getDefaultColorVector(),e.getDefaultDeltaColorVector()),this.updateVertices()}getMeshDescription(){return this.mapGeomDesc}getBuildingByPath(e){return this.mapGeomDesc.getBuildingByPath(e)}checkMouseRayMeshIntersection(e,i){const r=this.calculatePickingRay(e,i);return this.getMeshDescription().intersect(r)}setScale(e){this.mapGeomDesc.setScales(e)}highlightBuilding(e,i,r,o){const s=ca.buildingArrayToMap(e);for(const a of this.mapGeomDesc.buildings)this.isBuildingSelected(i,a)||(s.get(a.id)||o.get(a.id)?a.decreaseLightness(t.LIGHTNESS_INCREASE):this.adjustSurroundingBuildingColors(e,a,r),this.setVertexColor(a.id,a.getColorVector(),a.getDeltaColorVector()));this.updateVertices()}clearHighlight(e){for(const i of this.mapGeomDesc.buildings)this.isBuildingSelected(e,i)||this.setVertexColor(i.id,i.getDefaultColorVector(),i.getDefaultDeltaColorVector());this.updateVertices()}adjustSurroundingBuildingColors(e,i,r){if(r.appSettings.isPresentationMode){const o=e[0].getCenterPoint(Ko).distanceTo(i.getCenterPoint(Ko));this.decreaseLightnessByDistance(i,o)}else i.decreaseLightness(t.LIGHTNESS_DECREASE)}initDeltaColorsOnMesh(e){if(this.mapGeomDesc.buildings[0]?.node.deltas){for(const i of this.mapGeomDesc.buildings)this.setNewDeltaColor(i,e),this.setVertexColor(i.id,i.getColorVector(),i.getDeltaColorVector());this.updateVertices()}}setNewDeltaColor(e,i){const{appSettings:{mapColors:r},dynamicSettings:{heightMetric:o}}=i,{node:s}=e;if(s.flat)e.setInitialDeltaColor(r.flat);else if(s.deltas){const a=s.deltas[o];a>0&&e.setInitialDeltaColor(r.positiveDelta),a<0&&e.setInitialDeltaColor(r.negativeDelta)}}isBuildingSelected(e,i){return e&&i.equals(e)}decreaseLightnessByDistance(e,i){i>800?e.decreaseLightness(40):i>400?e.decreaseLightness(30):i>250?e.decreaseLightness(20):i>100?e.decreaseLightness(15):i>50&&e.decreaseLightness(10)}setVertexColor(e,i,r){const o=t.NUM_OF_VERTICES,s=e*o,a=this.threeMesh.geometry.getAttribute("color"),l=this.threeMesh.geometry.getAttribute("deltaColor");for(let c=s;cw&&(w=c),P=x*x*B,(S=Math.max(w/P,P/C))>M){x-=c;break}M=S}s.push(l={value:x,dice:m1?i:1)},e}((1+Math.sqrt(5))/2);function gx(){return 0}function bx(t){return function(){return t}}function vLe(){var t=_Le,n=!1,e=1,i=1,r=[0],o=gx,s=gx,a=gx,l=gx,c=gx;function d(h){return h.x0=h.y0=0,h.x1=e,h.y1=i,h.eachBefore(u),r=[0],n&&h.eachBefore(mLe),h}function u(h){var m=r[h.depth],A=h.x0+m,v=h.y0+m,x=h.x1-m,C=h.y1-m;x{!Eo(x)&&s&&(0===x.depth&&(u+=Vee),x.depth>0&&x.depth<3&&(u+=Qee))});const h=(c+o*a+u)*e,m=(d+o*a+u)*e;let A;return{treeMap:vLe().size([h,m]).paddingOuter(l).paddingInner(l).paddingRight(x=>{if(!A&&null===x.parent&&(A=x),A&&s){if(0===x.depth)return Math.max((A.x1-A.x0)*yLe,Vee);if(x.depth>0&&x.depth<3)return Math.max((A.x1-A.x0)*wLe,Qee)}return l})(r.sum(x=>function MLe(t,{dynamicSettings:n,appSettings:e,fileSettings:i},r){if(t.isExcluded)return 0;if(t.deltas&&function ELe(t,n){return 0===t.attributes[n.areaMetric]&&t.deltas[n.heightMetric]<0}(t,n))return Math.abs(t.deltas[n.areaMetric]);if(Eo(t)&&t.attributes?.[n.areaMetric]){const o=n.areaMetric;return 1===i.attributeDescriptors[o]?.direction?e.invertArea?t.attributes[n.areaMetric]:r-t.attributes[n.areaMetric]:e.invertArea?r-t.attributes[n.areaMetric]:t.attributes[n.areaMetric]}return 0}(x,n,i)*e)),height:m,width:h}}function Wee(t){let n=0,e=0;return t.each(({data:i})=>{(i.isExcluded||i.isFlattened)&&e++,n++}),2*Math.sqrt(n-e)}class ym{constructor(n,e,i){this.topLeft=n,this.bottomRight=n.clone().add(new ut(e,i)),this.width=e,this.height=i}shorterSide(){return this.width>this.height?this.height:this.width}isVertical(){return this.height>this.width}area(){return this.width*this.height}getBottomRight(){return this.bottomRight}}class LN{constructor(n){this.height=0,this.width=0,this.FIXED_MARGIN=.5,this.mapNode=n}getNode(){return this.mapNode}createMarginatedRectangle(n){const e=new ut(n.x+this.FIXED_MARGIN,n.y+this.FIXED_MARGIN);return new ym(e,this.width-2*this.FIXED_MARGIN,this.height-2*this.FIXED_MARGIN)}}var PN=function(t){return t[t.Horizontal=0]="Horizontal",t[t.Vertical=1]="Vertical",t}(PN||{});class $ee extends LN{constructor(){super(...arguments),this.spacer=2}getStreetThickness(){const n=this.mapNode.path.split("/"),e=this.mapNode.path.startsWith("/root/")&&3===n.length&&""!==n[2];return"/root"===this.mapNode.path||e?this.calculateRootStreetThickness(this.mapNode):this.calculateNonRootThickness(this.mapNode)}calculateNonRootThickness(n){return 2+5e-4*n.attributes.unary}calculateRootStreetThickness(n){return 8+.001*n.attributes.unary}}function TF(t,n){let e=t.attributes[n]||0;if(0===e&&t.children&&t.children.length>0)for(const i of t.children)e+=TF(i,n);return e}const qb={calculateSize:TF,mergeDirectories:function SLe(t,n){let e=t;const i=TF(t,n);for(const r of t.children)if(!Eo(r)&&i===TF(r,n)){const s=e.name;e=r,e.name=`${s}/${r.name}`;break}return e},buildNodeFrom:function TLe(t,n,e,i,r){const o=!(t.children&&t.children.length>0),s=rF(t,i),a=ca.getHeightValue(i,t,e,s),l=Math.abs(o?Math.max(n*a,ca.MIN_BUILDING_HEIGHT):ca.FOLDER_HEIGHT),c=t.rect.height,d=t.rect.topLeft.x,u=t.rect.topLeft.y,h=t.zOffset*ca.FOLDER_HEIGHT;return{name:t.name,id:t.id,width:t.rect.width,height:l,length:c,depth:t.zOffset,mapNodeDepth:100,x0:d,z0:h,y0:u,isLeaf:o,attributes:t.attributes,edgeAttributes:t.edgeAttributes,deltas:t.deltas,heightDelta:t.deltas?.[i.dynamicSettings.heightMetric]?n*t.deltas[i.dynamicSettings.heightMetric]:0,visible:Y5(t,o,i,s),path:t.path,link:t.link,markingColor:DM(t,i.fileSettings.markedPackages),flat:s,color:Z5(t,i,Ch(i),r,s),incomingEdgePoint:iF(t.rect.width,l,c,new Y(d,h,u),Ko),outgoingEdgePoint:iF(t.rect.width,l,c,new Y(d,h,u),Ko)}}};var wm=function(t){return t[t.RIGHT=0]="RIGHT",t[t.LEFT=1]="LEFT",t}(wm||{});class kA extends $ee{constructor(n,e,i=wm.RIGHT){super(n),this.children=[],this.topRow=[],this.bottomRow=[],this.children=e,this.orientation=i}calculateDimension(n){for(const e of this.children)e.calculateDimension(n);this.splitChildrenToRows(this.children),this.rearrangeRows(),this.metricValue=qb.calculateSize(this.mapNode,n),this.width=Math.max(this.getLength(this.topRow),this.getLength(this.bottomRow)),this.height=this.getMaxHeight(this.topRow)+this.getStreetThickness()+this.getMaxHeight(this.bottomRow)+this.spacer}layout(n,e){const i=this.getMaxHeight(this.topRow),r=this.layoutTopRow(e,i,n),o=this.layoutBottomRow(e,i,n);return[...r,this.layoutStreet(e,i),...o]}layoutTopRow(n,e,i){const r=new ut(n.x,n.y),o=[];if(this.orientation===wm.LEFT){const s=this.getLength(this.topRow);r.x+=this.width-s}for(let s=0;sMath.max(e,i.height),Number.MIN_VALUE)}calculateStreetOverhang(n){return this.orientation===wm.LEFT?this.calculateLeftStreetOverhang(n):this.calculateRightStreetOverhang(n)}calculateLeftStreetOverhang(n){const e=this.topRow[0],i=this.bottomRow[0],r=e instanceof Wb&&e.streetRect?e.streetRect.topLeft.x-n.x:this.width-this.getLength(this.topRow),o=i instanceof Wb&&i.streetRect?i.streetRect.topLeft.x-n.x:this.width-this.getLength(this.bottomRow);return r>0&&o>0?Math.min(r,o):0}calculateRightStreetOverhang(n){const e=this.topRow.at(-1),i=this.bottomRow.at(-1),r=n.x+this.width,o=e instanceof Wb&&e.streetRect?r-e.streetRect.getBottomRight().x:this.width-this.getLength(this.topRow),s=i instanceof Wb&&i.streetRect?r-i.streetRect.getBottomRight().x:this.width-this.getLength(this.bottomRow);return o>0&&s>0?Math.min(o,s):0}}var xm=function(t){return t[t.UP=0]="UP",t[t.DOWN=1]="DOWN",t}(xm||{});class Wb extends $ee{constructor(n,e,i,r=xm.UP){super(n),this.children=[],this.leftRow=[],this.rightRow=[],this.children=e,this.orientation=r}calculateDimension(n){for(const e of this.children)e.calculateDimension(n);this.splitChildrenToRows(this.children),this.rearrangeRows(),this.metricValue=qb.calculateSize(this.mapNode,n),this.width=this.getMaxWidth(this.leftRow)+this.getStreetThickness()+this.getMaxWidth(this.rightRow)+2*this.spacer,this.height=Math.max(this.getLength(this.leftRow),this.getLength(this.rightRow))}layout(n,e){const i=this.getMaxWidth(this.leftRow),r=this.layoutLeftRow(e,i,n),o=this.layoutRightRow(e,i,n);return[...r,this.layoutStreet(e,i),...o]}layoutLeftRow(n,e,i){const r=new ut(n.x,n.y),o=[];if(this.orientation===xm.UP){const s=this.getLength(this.leftRow);r.y+=this.height-s}for(let s=0;se.mapNode.type===i.mapNode.type?0:e.mapNode.type===Ma.FILE?-1:1)}splitChildrenToRows(n){this.sortChildrenByType(n);let e=0,i=0;for(const r of n)e+=r.height;for(const r of n)i<=e/2?(r instanceof kA&&(r.orientation=wm.LEFT),this.leftRow.push(r),i+=r.height):this.rightRow.push(r)}rearrangeRows(){this.orientation===xm.UP?this.leftRow.reverse():this.rightRow.reverse()}getMaxWidth(n){return n.reduce((e,i)=>Math.max(e,i.width),Number.MIN_VALUE)}calculateStreetOverhang(n){return this.orientation===xm.UP?this.calculateTopStreetOverhang(n):this.calculateBottomStreetOverhang(n)}calculateTopStreetOverhang(n){const e=this.leftRow[0],i=this.rightRow[0],r=e instanceof kA&&e.streetRect?e.streetRect.topLeft.y-n.y:this.height-this.getLength(this.leftRow),o=i instanceof kA&&i.streetRect?i.streetRect.topLeft.y-n.y:this.height-this.getLength(this.rightRow);return r>0&&o>0?Math.min(r,o):0}calculateBottomStreetOverhang(n){const e=this.leftRow.at(-1),i=this.rightRow.at(-1),r=n.y+this.height,o=e instanceof kA&&e.streetRect?r-e.streetRect.getBottomRight().y:this.height-this.getLength(this.leftRow),s=i instanceof kA&&i.streetRect?r-i.streetRect.getBottomRight().y:this.height-this.getLength(this.rightRow);return o>0&&s>0?Math.min(o,s):0}}class FLe extends LN{constructor(n){super(n)}calculateDimension(n){this.metricValue=qb.calculateSize(this.mapNode,n);const e=Math.sqrt(this.metricValue);this.width=this.height=e}layout(n,e){return[{...this.mapNode,value:this.metricValue,rect:this.createMarginatedRectangle(e),zOffset:0}]}}class kLe extends LN{constructor(n){super(n),this.treeMapNodes=[]}calculateDimension(n){this.metricName=n,this.metricValue=ca.calculateSize(this.mapNode,n),this.width=Math.sqrt(this.metricValue),this.height=Math.sqrt(this.metricValue)}}class jee{constructor(n){this.nodes=[],this.nodes=n}totalScaledSize(n,e,i,r){return n.reduce((o,s)=>o+this.scaledSize(s,i,r,e),0)}totalSize(n){return this.nodes.reduce((e,i)=>e+ca.calculateSize(i,n),0)}min(n,e,i,r){return n.reduce((o,s)=>Math.min(o,this.scaledSize(s,i,r,e)),Number.MAX_VALUE)}max(n,e,i,r){return n.reduce((o,s)=>Math.max(o,this.scaledSize(s,i,r,e)),Number.MIN_VALUE)}populate(n,e,i,r){for(const o of n){const s=this.worstAspectRatio(this.nodes,e,i,r);if(!(this.worstAspectRatio([...this.nodes,o],e,i,r)0?A/u:0,x=new ym(new ut(a,n.topLeft.y),v,u);h.push({...m,value:"File"===m.type?e:0,rect:this.applyNodeMargin(x,o),zOffset:r}),a+=v}return h}worstAspectRatio(n,e,i,r){const o=e.width,s=e.area(),a=this.totalScaledSize(n,r,i,s),l=this.min(n,r,i,s),c=this.max(n,r,i,s),d=Math.pow(o,2),u=Math.pow(a,2);return Math.max(d*c/u,u/(d*l))}}var ON=function(t){return t[t.topToBottom=0]="topToBottom",t[t.bottomToTop=1]="bottomToTop",t}(ON||{});class ILe extends jee{constructor(n){super(n)}layout(n,e,i,r,o,s=ON.topToBottom){let a=n.topLeft.y;s!==ON.topToBottom&&this.nodes.reverse();const l=this.nodes,c=n.area(),d=n.height,u=this.totalScaledSize(l,i,e,c)/d,h=[];for(const m of l){const A=this.scaledSize(m,e,c,i),v=u>0?A/u:0,x=new ym(new ut(n.topLeft.x,a),u,v);h.push({...m,value:"File"===m.type?e:0,rect:this.applyNodeMargin(x,o),zOffset:r}),a+=v}return h}worstAspectRatio(n,e,i,r){const o=e.height,s=e.area(),a=this.totalScaledSize(n,r,i,s),l=this.min(n,r,i,s),c=this.max(n,r,i,s),d=o**2,u=a**2;return Math.max(d*c/u,u/(d*l))}}class BLe extends kLe{constructor(n){super(n)}layout(n,e=new ut(0,0)){const i=this.createMarginatedRectangle(e),r={...this.mapNode,value:this.metricValue,rect:i,zOffset:0},o=this.mapNode.children.filter(s=>ca.calculateSize(s,this.metricName)>0);return this.treeMapNodes.push(r),o.length>0&&this.createNodes(o,i,this.metricValue,1,n),this.treeMapNodes}createNodes(n,e,i,r,o){let s=0,a=new ym(new ut(e.topLeft.x,e.topLeft.y),e.width,e.height),l=i;const c=this.orderBySizeDescending(n);do{const d=this.createStrip(a,c.slice(s),l),u=d.totalSize(this.metricName);if(u>0){const h=this.createStripNodes(d,a,l,r,o);this.createChildrenNodes(h,r,o),a=this.remainingRectangle(a,d,l,a.area()),l-=u}s+=d.nodes.length}while(s0){const o=r.children.filter(s=>ca.calculateSize(s,this.metricName)>0);if(o.length>0){const s=ca.calculateSize(r,this.metricName);this.createNodes(o,r.rect,s,e+1,i)}}}orderBySizeDescending(n){return n.sort((e,i)=>ca.calculateSize(i,this.metricName)-ca.calculateSize(e,this.metricName))}}class IA{static createStreetLayoutNodes(n,e,i,r){const o=LM(e.files),s=i.find(A=>A.name===e.dynamicSettings.heightMetric).maxValue*o,a=e.dynamicSettings.areaMetric,l=qb.mergeDirectories(n,a),d=this.createBoxes(l,a,e,PN.Vertical,1,e.appSettings.maxTreeMapFiles),u=new kA(l,d,0);return u.calculateDimension(a),u.layout(.02*e.dynamicSettings.margin,new ut(0,0)).map(A=>qb.buildNodeFrom(A,this.calculateHeightScale(n,Ko,s),s,e,r))}static createBoxes(n,e,i,r,o,s){const a=[],l=i.dynamicSettings.areaMetric;for(let c of n.children){if(Eo(c)){a.push(new FLe(c));continue}if(Ju(c.path,i.fileSettings.blacklist,"exclude"))continue;const d=i.appSettings.layoutAlgorithm,u=IA.countFileDescendants(c);if(d===qd.TreeMapStreet&&u<=s){const h=IA.createTreeMap(c);a.push(h)}else{c=qb.mergeDirectories(c,l);const h=IA.createBoxes(c,e,i,1-r,o+1,s),m=IA.createStreet(c,r,h,o);a.push(m)}}return a}static createStreet(n,e,i,r){return e===PN.Horizontal?new kA(n,i,r):new Wb(n,i,r)}static createTreeMap(n){return new BLe(n)}static countFileDescendants(n){let e=0;for(const i of n.children)e+=Eo(i)?1:IA.countFileDescendants(i);return e}static calculateHeightScale(n,e,i){return 2*e/i*(1e-4*n.attributes.unary+.005*Math.sqrt(n.attributes.unary))}}const Xee=Xt(Hr,t=>t.amountOfEdgePreviews),RLe=Xt(ks,Mh,Xee,(t,n,e)=>new Set(LLe(t.nodeEdgeMetricsMap,n,e))),LLe=(t,n,e)=>{const i=[];if(0===e)return i;const r=t.get(n);if(void 0===r)return i;for(const o of r.keys())if(i.push(o),i.length===e)break;return i},PLe=Xt(o1,t=>t.edges),OLe=Xt(RLe,PLe,Mh,(t,n,e)=>{const i=Hd(n);return((t,n,e)=>{for(const i of n)if(i.visible=Wd.none,void 0!==i.attributes[e]){const r=t.has(i.fromNodeName),o=t.has(i.toNodeName);r&&o?i.visible=Wd.both:r?i.visible=Wd.from:o&&(i.visible=Wd.to)}})(t,i,e),i});let ULe=(()=>{class t{constructor(e,i,r,o){this.store=e,this.state=i,this.threeSceneService=r,this.idToBuildingService=o,this.VERTICES_PER_LINE=5,this.arrows=new Array,this.HIGHLIGHT_BUILDING_DELAY=1,this.debounceCalculation=ou(s=>this.resetEdgesOfBuildings(s),this.HIGHLIGHT_BUILDING_DELAY),this.subscription=this.store.select(rx).pipe(Nr(s=>{if(null!==s){const a=this.idToBuildingService.get(s);this.onBuildingHovered(a)}else this.onBuildingUnhovered()})).subscribe(),this.resetEdgesOfBuildings=s=>{this.isEdgeApplicableForBuilding(s)&&(this.clearArrows(),this.showEdgesOfBuildings(s)),this.scale()},this.onBuildingSelected=s=>{this.isEdgeApplicableForBuilding(s.building)&&(this.clearArrows(),this.showEdgesOfBuildings()),this.scale()},this.onBuildingDeselected=()=>{this.clearArrows(),this.addEdgePreview()},this.threeSceneService.subscribe("onBuildingSelected",this.onBuildingSelected),this.threeSceneService.subscribe("onBuildingDeselected",this.onBuildingDeselected)}ngOnDestroy(){this.subscription.unsubscribe()}onBuildingHovered(e){this.debounceCalculation(e)}onBuildingUnhovered(){const{isEdgeMetricVisible:e}=this.state.getValue().appSettings;e&&(this.clearArrows(),this.showEdgesOfBuildings()),this.scale()}clearArrows(){this.arrows=[],this.threeSceneService.edgeArrows.children.length=0}addArrow(e,i,r){const{appSettings:o,dynamicSettings:s}=this.state.getValue(),a=100*o.edgeHeight;if(e.attributes?.[s.heightMetric]&&i.attributes?.[s.heightMetric]){const l=this.createCurve(i,e,a),c=Gi.getNumber(o.mapColors[r?"outgoingEdge":"incomingEdge"]);this.highlightBuilding(r?e:i),this.setCurveColor(l,c)}}addEdgePreview(){const e=OLe(this.state.getValue());for(const i of e){const r=this.map.get(i.fromNodeName),o=this.map.get(i.toNodeName);if(r&&o&&i.visible!==Wd.none&&i.visible){const s=100*this.state.getValue().appSettings.edgeHeight,a=this.createCurve(r,o,s);this.previewMode(a,i.visible)}}}addEdgeMapBasedOnNodes(e){this.map=this.getNodesAsMap(e)}scale(){const{scaling:e}=this.state.getValue().appSettings;for(const i of this.arrows)i.scale.x=e.x,i.scale.y=e.y,i.scale.z=e.z}isEdgeApplicableForBuilding(e){return this.state.getValue().appSettings.isEdgeMetricVisible&&e&&!e.node.flat}showEdgesOfBuildings(e){const i=new Map,r=this.threeSceneService.getSelectedBuilding();if(r){const{node:o}=r;i.set(o.path,o)}if(e){const{node:o}=e;i.set(o.path,o)}i.size>0?this.buildPairingEdges(i):this.addEdgePreview()}buildPairingEdges(e){const{edges:i}=this.state.getValue().fileSettings;for(const r of i){const o=this.map.get(r.fromNodeName);if(void 0===o)continue;const s=this.map.get(r.toNodeName);void 0!==s&&(e.has(o.path)?(this.addArrow(s,o,!0),this.threeSceneService.highlightBuildings()):e.has(s.path)&&(this.addArrow(s,o,!1),this.threeSceneService.highlightBuildings()))}}createCurve(e,i,r){const o=e.outgoingEdgePoint.clone(),s=i.incomingEdgePoint.clone(),a=Math.max(o.y+i.height,s.y+1)+r;return o.setY(a),s.setY(a),new HT(e.outgoingEdgePoint,o,s,i.incomingEdgePoint)}highlightBuilding(e){const i=this.threeSceneService.getMapMesh().getMeshDescription().getBuildingByPath(e.path);this.threeSceneService.addBuildingToHighlightingList(i)}setCurveColor(e,i,r=50){const o=e.getPoints(r),s=this.buildLine(o,i);s.add(this.buildArrow(o)),this.threeSceneService.edgeArrows.add(s),this.arrows.push(s)}previewMode(e,i){if(i===Wd.both||i===Wd.from){const r=this.makeArrowFromBezier(e,!1);this.threeSceneService.edgeArrows.add(r),this.arrows.push(r)}if(i===Wd.both||i===Wd.to){const r=this.makeArrowFromBezier(e,!0);this.threeSceneService.edgeArrows.add(r),this.arrows.push(r)}}getNodesAsMap(e){const i=new Map;for(const r of e)i.set(r.path,r);return i}makeArrowFromBezier(e,i,r=50){const o=e.getPoints(r),{incomingEdge:s,outgoingEdge:a}=this.state.getValue().appSettings.mapColors,l=i?s:a,c=i?o.slice(r+1-this.VERTICES_PER_LINE):o.slice(0,o.length-(r+1-this.VERTICES_PER_LINE));return this.buildEdge(c,Gi.getNumber(l))}buildEdge(e,i){const r=this.buildLine(e,i);return r.add(this.buildArrow(e)),r}buildLine(e,i=0){const r=new Bn;return r.setFromPoints(e),new Ba(r,new ls({color:i,linewidth:1}))}buildArrow(e,i=0,r=10,o=10){const s=e.at(-1).clone().sub(e.at(-2).clone()).normalize(),a=e.at(-1).clone();return s.y<0&&(a.y+=r+1),new zZ(s,a,r+1,i,r,o)}static{this.\u0275fac=function(i){return new(i||t)(oe(Wt),oe(Br),oe(cc),oe(Jw))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})(),Yee=(()=>{class t{constructor(e,i,r,o,s,a,l){this.store=e,this.state=i,this.threeSceneService=r,this.codeMapLabelService=o,this.codeMapArrowService=s,this.threeStatsService=a,this.codeMapMouseEventService=l,this.nodesByColor={positive:[],neutral:[],negative:[]},this.onIsLoadingFileChanged=c=>{c?this.threeSceneService?.dispose():this.threeStatsService?.resetPanels()},this.subscription=this.store.select(GL).pipe(Nr(this.onIsLoadingFileChanged)).subscribe()}ngOnDestroy(){this.subscription.unsubscribe()}render(e){const i=this.getNodes(e),r=this.getVisibleNodes(i);this.unflattenedNodes=r.filter(({flat:o})=>!o),this.setNewMapMesh(i,r),this.getNodesMatchingColorSelector(this.unflattenedNodes),this.setLabels(this.unflattenedNodes),this.setArrows(r)}setNewMapMesh(e,i){const r=this.state.getValue(),o=new fLe(i,r,Nd(r.files));this.threeSceneService.setMapMesh(e,o)}scaleMap(){this.codeMapMouseEventService.unhoverNode(),this.codeMapLabelService.scale(),this.codeMapArrowService.scale(),this.threeSceneService.scaleHeight(),this.codeMapLabelService.clearLabels(),this.setLabels(this.unflattenedNodes)}getNodes(e){const i=this.state.getValue(),r=ks(i).nodeMetricData,{appSettings:{layoutAlgorithm:o},files:s}=i,a=Nd(s);switch(o){case qd.StreetMap:case qd.TreeMapStreet:return IA.createStreetLayoutNodes(e,i,r,a);case qd.SquarifiedTreeMap:return function xLe(t,n,e,i){const r=LM(n.files),o=e.find(d=>d.name===n.dynamicSettings.heightMetric)?.maxValue*r,s=e.find(d=>d.name===n.dynamicSettings.areaMetric)?.maxValue*r,a=2*Ko/o;if(Gee(t)){const d=io(t),u=[ca.buildRootFolderForFixedFolders(d.data,a,n,i)],h=2*Ko+Wee(d)*(n.dynamicSettings.margin/Hee),m=h/u[0].width,A=h/u[0].length;return function CLe(t,n,e){t.x0*=e,t.y0*=n,t.width*=e,t.length*=n}(u[0],m,A),[...u,...zee(d,n,m,A,0,0,a,o,s,i,r)]}const l=qee(t,n,r,s),c=[];for(const d of l.treeMap)c.push(ca.buildNodeFrom(d,a,o,n,i));return c}(e,i,r,a);default:return[]}}getVisibleNodes(e){return e.filter(i=>i.visible&&i.length>0&&i.width>0).sort((i,r)=>r.height-i.height)}getNodesMatchingColorSelector(e){const i=this.state.getValue().dynamicSettings;this.nodesByColor={positive:[],negative:[],neutral:[]};for(const r of e)if(r.isLeaf){const o=r.attributes[i.colorMetric];"unary"===i.colorMetric?this.nodesByColor.positive.push(r):null!==o&&(oc.isLeaf).slice(0,s);this.setBuildingLabel(l,a)}}}setArrows(e){this.codeMapArrowService.clearArrows(),this.codeMapArrowService.addEdgeMapBasedOnNodes(e),this.codeMapArrowService.addEdgePreview()}static{this.\u0275fac=function(i){return new(i||t)(oe(Wt),oe(Br),oe(cc),oe(vJ),oe(ULe),oe(bJ),oe(ox))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})(),FF=(()=>{class t{constructor(e,i){this.store=e,this.codeMapRenderService=i}createNodeObservable(){return nh([this.store.select(Pee),this.store.select(pm),this.createTopLevelNodeObservable()]).pipe(Et(([o,s,a])=>o??s??a))}createTopLevelNodeObservable(){return nh([this.store.select(lc),this.store.select(Pl)]).pipe(Ii(([e])=>!!e.unifiedMapNode),Et(([e])=>this.findTopLevelNode(e)))}findTopLevelNode(e){const i=this.codeMapRenderService.getNodes(e.unifiedMapNode),r=this.codeMapRenderService.getVisibleNodes(i);return r.reduce((o,s)=>o.attributes.unary>s.attributes.unary?o:s,r[0])}static{this.\u0275fac=function(i){return new(i||t)(oe(Wt),oe(Yee))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})(),Zee=(()=>{class t{constructor(e,i){this.store=e,this.nodeSelectionService=i,this.isNodeALeaf=r=>{if(r)return this.isNode(r)?r.isLeaf:Eo(r)}}ngOnInit(){this.isNodeALeaf$=this.nodeSelectionService.createNodeObservable().pipe(Et(e=>this.isNodeALeaf(e))),this.attributeType$=this.store.select(((t,n)=>Xt(lF,$5,(e,i)=>"relative"===i[t][e[n]]?"x\u0342":"\u03a3"))(this.attributeType,this.metricFor))}isNode(e){return"isLeaf"in e}static{this.\u0275fac=function(i){return new(i||t)(W(Wt),W(FF))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-metric-chooser-type"]],inputs:{metricFor:"metricFor",attributeType:"attributeType"},decls:4,vars:6,consts:[[3,"hidden"]],template:function(i,r){1&i&&(I(0,"span",0),ze(1,"async"),ve(2),ze(3,"async"),O()),2&i&&(ue("hidden",tt(1,2,r.isNodeALeaf$)),H(2),an(" ",tt(3,4,r.attributeType$),"\n"))},dependencies:[Gn],encapsulation:2})}}return t})();function VLe(t,n){if(1&t&&(I(0,"div",5),ze(1,"async"),ze(2,"async"),ve(3),ze(4,"async"),O()),2&t){const e=He(),i=He();Fi("margin-left","2px")("background-color","heightMetric"===i.metricFor&&e.deltas[tt(1,5,i.primaryMetricNames$)[i.metricFor]]>0?"#b1d8a8":e.deltas[tt(2,7,i.primaryMetricNames$)[i.metricFor]]<0?"#ffcccc":"#e6e6e6"),H(3),an(" \u0394",e.deltas[tt(4,9,i.primaryMetricNames$)[i.metricFor]]," ")}}function QLe(t,n){if(1&t&&(I(0,"div",0)(1,"div",1),_e(2,"cc-metric-chooser-type",2),I(3,"span",3),ve(4),ze(5,"async"),O()(),ft(6,VLe,5,11,"div",4),O()),2&t){const e=n,i=He();H(2),ue("attributeType","nodes")("metricFor",i.metricFor),H(2),ur(e.attributes[tt(5,4,i.primaryMetricNames$)[i.metricFor]]),H(2),yt(6,e.deltas?6:-1)}}let UN=(()=>{class t{constructor(e,i){this.nodeSelectionService=e,this.store=i,this.node$=this.nodeSelectionService.createNodeObservable(),this.primaryMetricNames$=this.store.select(lF)}static{this.\u0275fac=function(i){return new(i||t)(W(FF),W(Wt))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-metric-chooser-value"]],inputs:{metricFor:"metricFor"},decls:2,vars:3,consts:[[1,"metric-value"],[1,"rounded-box"],[3,"attributeType","metricFor"],[1,"value"],[1,"rounded-box","value",3,"marginLeft","backgroundColor"],[1,"rounded-box","value"]],template:function(i,r){if(1&i&&(ft(0,QLe,7,6,"div",0),ze(1,"async")),2&i){let o;yt(0,(o=tt(1,1,r.node$))?0:-1,o)}},dependencies:[Zee,Gn],encapsulation:2})}}return t})(),zLe=(()=>{class t{constructor(e){this.store=e,this.areaMetric$=this.store.select(Ub)}handleAreaMetricChanged(e){this.store.dispatch(Ku({value:e}))}static{this.\u0275fac=function(i){return new(i||t)(W(Wt))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-area-metric-chooser"]],decls:4,vars:6,consts:[[1,"fa","fa-arrows-alt"],["title","Change area metric",3,"selectedMetricName","searchPlaceholder","handleMetricChanged"],["hoveredInformation","",3,"metricFor"]],template:function(i,r){1&i&&(_e(0,"i",0),I(1,"cc-metric-chooser",1),ze(2,"async"),_e(3,"cc-metric-chooser-value",2),O()),2&i&&(H(),ue("selectedMetricName",tt(2,4,r.areaMetric$))("searchPlaceholder","Area Metric (highest value)")("handleMetricChanged",r.handleAreaMetricChanged),H(2),ue("metricFor","areaMetric"))},dependencies:[Ax,UN,Gn],encapsulation:2})}}return t})();const GLe=Xt(Pl,t=>t.margin),qLe=Xt(Hr,t=>t.enableFloorLabels),WLe=Xt(Hr,t=>t.invertArea),$Le=["input"],jLe=["label"],KLe=["*"],XLe=new ot("mat-checkbox-default-options",{providedIn:"root",factory:Jee});function Jee(){return{color:"accent",clickAction:"check-indeterminate"}}var da=function(t){return t[t.Init=0]="Init",t[t.Checked=1]="Checked",t[t.Unchecked=2]="Unchecked",t[t.Indeterminate=3]="Indeterminate",t}(da||{});const YLe={provide:Fs,useExisting:hi(()=>BA),multi:!0};class ZLe{}let JLe=0;const ete=Jee();let BA=(()=>{class t{focus(){this._inputElement.nativeElement.focus()}_createChangeEvent(e){const i=new ZLe;return i.source=this,i.checked=e,i}_getAnimationTargetElement(){return this._inputElement?.nativeElement}get inputId(){return`${this.id||this._uniqueId}-input`}constructor(e,i,r,o,s,a){this._elementRef=e,this._changeDetectorRef=i,this._ngZone=r,this._animationMode=s,this._options=a,this._animationClasses={uncheckedToChecked:"mdc-checkbox--anim-unchecked-checked",uncheckedToIndeterminate:"mdc-checkbox--anim-unchecked-indeterminate",checkedToUnchecked:"mdc-checkbox--anim-checked-unchecked",checkedToIndeterminate:"mdc-checkbox--anim-checked-indeterminate",indeterminateToChecked:"mdc-checkbox--anim-indeterminate-checked",indeterminateToUnchecked:"mdc-checkbox--anim-indeterminate-unchecked"},this.ariaLabel="",this.ariaLabelledby=null,this.labelPosition="after",this.name=null,this.change=new Ln,this.indeterminateChange=new Ln,this._onTouched=()=>{},this._currentAnimationClass="",this._currentCheckState=da.Init,this._controlValueAccessorChangeFn=()=>{},this._validatorChangeFn=()=>{},this._checked=!1,this._disabled=!1,this._indeterminate=!1,this._options=this._options||ete,this.color=this._options.color||ete.color,this.tabIndex=parseInt(o)||0,this.id=this._uniqueId="mat-mdc-checkbox-"+ ++JLe}ngOnChanges(e){e.required&&this._validatorChangeFn()}ngAfterViewInit(){this._syncIndeterminate(this._indeterminate)}get checked(){return this._checked}set checked(e){e!=this.checked&&(this._checked=e,this._changeDetectorRef.markForCheck())}get disabled(){return this._disabled}set disabled(e){e!==this.disabled&&(this._disabled=e,this._changeDetectorRef.markForCheck())}get indeterminate(){return this._indeterminate}set indeterminate(e){const i=e!=this._indeterminate;this._indeterminate=e,i&&(this._transitionCheckState(this._indeterminate?da.Indeterminate:this.checked?da.Checked:da.Unchecked),this.indeterminateChange.emit(this._indeterminate)),this._syncIndeterminate(this._indeterminate)}_isRippleDisabled(){return this.disableRipple||this.disabled}_onLabelTextChange(){this._changeDetectorRef.detectChanges()}writeValue(e){this.checked=!!e}registerOnChange(e){this._controlValueAccessorChangeFn=e}registerOnTouched(e){this._onTouched=e}setDisabledState(e){this.disabled=e}validate(e){return this.required&&!0!==e.value?{required:!0}:null}registerOnValidatorChange(e){this._validatorChangeFn=e}_transitionCheckState(e){let i=this._currentCheckState,r=this._getAnimationTargetElement();if(i!==e&&r&&(this._currentAnimationClass&&r.classList.remove(this._currentAnimationClass),this._currentAnimationClass=this._getAnimationClassForCheckStateTransition(i,e),this._currentCheckState=e,this._currentAnimationClass.length>0)){r.classList.add(this._currentAnimationClass);const o=this._currentAnimationClass;this._ngZone.runOutsideAngular(()=>{setTimeout(()=>{r.classList.remove(o)},1e3)})}}_emitChangeEvent(){this._controlValueAccessorChangeFn(this.checked),this.change.emit(this._createChangeEvent(this.checked)),this._inputElement&&(this._inputElement.nativeElement.checked=this.checked)}toggle(){this.checked=!this.checked,this._controlValueAccessorChangeFn(this.checked)}_handleInputClick(){const e=this._options?.clickAction;this.disabled||"noop"===e?!this.disabled&&"noop"===e&&(this._inputElement.nativeElement.checked=this.checked,this._inputElement.nativeElement.indeterminate=this.indeterminate):(this.indeterminate&&"check"!==e&&Promise.resolve().then(()=>{this._indeterminate=!1,this.indeterminateChange.emit(this._indeterminate)}),this._checked=!this._checked,this._transitionCheckState(this._checked?da.Checked:da.Unchecked),this._emitChangeEvent())}_onInteractionEvent(e){e.stopPropagation()}_onBlur(){Promise.resolve().then(()=>{this._onTouched(),this._changeDetectorRef.markForCheck()})}_getAnimationClassForCheckStateTransition(e,i){if("NoopAnimations"===this._animationMode)return"";switch(e){case da.Init:if(i===da.Checked)return this._animationClasses.uncheckedToChecked;if(i==da.Indeterminate)return this._checked?this._animationClasses.checkedToIndeterminate:this._animationClasses.uncheckedToIndeterminate;break;case da.Unchecked:return i===da.Checked?this._animationClasses.uncheckedToChecked:this._animationClasses.uncheckedToIndeterminate;case da.Checked:return i===da.Unchecked?this._animationClasses.checkedToUnchecked:this._animationClasses.checkedToIndeterminate;case da.Indeterminate:return i===da.Checked?this._animationClasses.indeterminateToChecked:this._animationClasses.indeterminateToUnchecked}return""}_syncIndeterminate(e){const i=this._inputElement;i&&(i.nativeElement.indeterminate=e)}_onInputClick(){this._handleInputClick()}_onTouchTargetClick(){this._handleInputClick(),this.disabled||this._inputElement.nativeElement.focus()}_preventBubblingFromLabel(e){e.target&&this._labelElement.nativeElement.contains(e.target)&&e.stopPropagation()}static{this.\u0275fac=function(i){return new(i||t)(W(Un),W(Ao),W(Fn),Kl("tabindex"),W(ts,8),W(XLe,8))}}static{this.\u0275cmp=At({type:t,selectors:[["mat-checkbox"]],viewQuery:function(i,r){if(1&i&&(ti($Le,5),ti(jLe,5),ti(rh,5)),2&i){let o;mn(o=pn())&&(r._inputElement=o.first),mn(o=pn())&&(r._labelElement=o.first),mn(o=pn())&&(r.ripple=o.first)}},hostAttrs:[1,"mat-mdc-checkbox"],hostVars:14,hostBindings:function(i,r){2&i&&(Id("id",r.id),oi("tabindex",null)("aria-label",null)("aria-labelledby",null),Cc(r.color?"mat-"+r.color:"mat-accent"),xn("_mat-animation-noopable","NoopAnimations"===r._animationMode)("mdc-checkbox--disabled",r.disabled)("mat-mdc-checkbox-disabled",r.disabled)("mat-mdc-checkbox-checked",r.checked))},inputs:{ariaLabel:[bt.None,"aria-label","ariaLabel"],ariaLabelledby:[bt.None,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[bt.None,"aria-describedby","ariaDescribedby"],id:"id",required:[bt.HasDecoratorInputTransform,"required","required",qn],labelPosition:"labelPosition",name:"name",value:"value",disableRipple:[bt.HasDecoratorInputTransform,"disableRipple","disableRipple",qn],tabIndex:[bt.HasDecoratorInputTransform,"tabIndex","tabIndex",e=>null==e?void 0:sa(e)],color:"color",checked:[bt.HasDecoratorInputTransform,"checked","checked",qn],disabled:[bt.HasDecoratorInputTransform,"disabled","disabled",qn],indeterminate:[bt.HasDecoratorInputTransform,"indeterminate","indeterminate",qn]},outputs:{change:"change",indeterminateChange:"indeterminateChange"},exportAs:["matCheckbox"],standalone:!0,features:[ni([YLe,{provide:rs,useExisting:t,multi:!0}]),Ho,cr,xr],ngContentSelectors:KLe,decls:15,vars:19,consts:[["checkbox",""],["input",""],["label",""],["mat-internal-form-field","",3,"click","labelPosition"],[1,"mdc-checkbox"],[1,"mat-mdc-checkbox-touch-target",3,"click"],["type","checkbox",1,"mdc-checkbox__native-control",3,"blur","click","change","checked","indeterminate","disabled","id","required","tabIndex"],[1,"mdc-checkbox__ripple"],[1,"mdc-checkbox__background"],["focusable","false","viewBox","0 0 24 24","aria-hidden","true",1,"mdc-checkbox__checkmark"],["fill","none","d","M1.73,12.91 8.1,19.28 22.79,4.59",1,"mdc-checkbox__checkmark-path"],[1,"mdc-checkbox__mixedmark"],["mat-ripple","",1,"mat-mdc-checkbox-ripple","mat-mdc-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mdc-label",3,"for"]],template:function(i,r){if(1&i){const o=kn();mo(),I(0,"div",3),We("click",function(a){return Ft(o),kt(r._preventBubblingFromLabel(a))}),I(1,"div",4,0)(3,"div",5),We("click",function(){return Ft(o),kt(r._onTouchTargetClick())}),O(),I(4,"input",6,1),We("blur",function(){return Ft(o),kt(r._onBlur())})("click",function(){return Ft(o),kt(r._onInputClick())})("change",function(a){return Ft(o),kt(r._onInteractionEvent(a))}),O(),_e(6,"div",7),I(7,"div",8),bl(),I(8,"svg",9),_e(9,"path",10),O(),Cg(),_e(10,"div",11),O(),_e(11,"div",12),O(),I(12,"label",13,2),zn(14),O()()}if(2&i){const o=Co(2);ue("labelPosition",r.labelPosition),H(4),xn("mdc-checkbox--selected",r.checked),ue("checked",r.checked)("indeterminate",r.indeterminate)("disabled",r.disabled)("id",r.inputId)("required",r.required)("tabIndex",r.disabled?-1:r.tabIndex),oi("aria-label",r.ariaLabel||null)("aria-labelledby",r.ariaLabelledby)("aria-describedby",r.ariaDescribedby)("aria-checked",r.indeterminate?"mixed":null)("name",r.name)("value",r.value),H(7),ue("matRippleTrigger",o)("matRippleDisabled",r.disableRipple||r.disabled)("matRippleCentered",!0),H(),ue("for",r.inputId)}},dependencies:[rh,w$],styles:['.mdc-touch-target-wrapper{display:inline}@keyframes mdc-checkbox-unchecked-checked-checkmark-path{0%,50%{stroke-dashoffset:29.7833385}50%{animation-timing-function:cubic-bezier(0, 0, 0.2, 1)}100%{stroke-dashoffset:0}}@keyframes mdc-checkbox-unchecked-indeterminate-mixedmark{0%,68.2%{transform:scaleX(0)}68.2%{animation-timing-function:cubic-bezier(0, 0, 0, 1)}100%{transform:scaleX(1)}}@keyframes mdc-checkbox-checked-unchecked-checkmark-path{from{animation-timing-function:cubic-bezier(0.4, 0, 1, 1);opacity:1;stroke-dashoffset:0}to{opacity:0;stroke-dashoffset:-29.7833385}}@keyframes mdc-checkbox-checked-indeterminate-checkmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(45deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-checked-checkmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(45deg);opacity:0}to{transform:rotate(360deg);opacity:1}}@keyframes mdc-checkbox-checked-indeterminate-mixedmark{from{animation-timing-function:mdc-animation-deceleration-curve-timing-function;transform:rotate(-45deg);opacity:0}to{transform:rotate(0deg);opacity:1}}@keyframes mdc-checkbox-indeterminate-checked-mixedmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(315deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-unchecked-mixedmark{0%{animation-timing-function:linear;transform:scaleX(1);opacity:1}32.8%,100%{transform:scaleX(0);opacity:0}}.mdc-checkbox{display:inline-block;position:relative;flex:0 0 18px;box-sizing:content-box;width:18px;height:18px;line-height:0;white-space:nowrap;cursor:pointer;vertical-align:bottom}.mdc-checkbox[hidden]{display:none}.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:100%;width:100%}@media screen and (forced-colors: active){.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring{border-color:CanvasText}}.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring::after,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring::after{content:"";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring::after,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring::after{border-color:CanvasText}}@media all and (-ms-high-contrast: none){.mdc-checkbox .mdc-checkbox__focus-ring{display:none}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mdc-checkbox__mixedmark{margin:0 1px}}.mdc-checkbox--disabled{cursor:default;pointer-events:none}.mdc-checkbox__background{display:inline-flex;position:absolute;align-items:center;justify-content:center;box-sizing:border-box;width:18px;height:18px;border:2px solid currentColor;border-radius:2px;background-color:rgba(0,0,0,0);pointer-events:none;will-change:background-color,border-color;transition:background-color 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1),border-color 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox__checkmark{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;opacity:0;transition:opacity 180ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox--upgraded .mdc-checkbox__checkmark{opacity:1}.mdc-checkbox__checkmark-path{transition:stroke-dashoffset 180ms 0ms cubic-bezier(0.4, 0, 0.6, 1);stroke:currentColor;stroke-width:3.12px;stroke-dashoffset:29.7833385;stroke-dasharray:29.7833385}.mdc-checkbox__mixedmark{width:100%;height:0;transform:scaleX(0) rotate(0deg);border-width:1px;border-style:solid;opacity:0;transition:opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__background,.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__background,.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__background,.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__background{animation-duration:180ms;animation-timing-function:linear}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-unchecked-checked-checkmark-path 180ms linear 0s;transition:none}.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-unchecked-indeterminate-mixedmark 90ms linear 0s;transition:none}.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-checked-unchecked-checkmark-path 90ms linear 0s;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__checkmark{animation:mdc-checkbox-checked-indeterminate-checkmark 90ms linear 0s;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-checked-indeterminate-mixedmark 90ms linear 0s;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__checkmark{animation:mdc-checkbox-indeterminate-checked-checkmark 500ms linear 0s;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-checked-mixedmark 500ms linear 0s;transition:none}.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-unchecked-mixedmark 300ms linear 0s;transition:none}.mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background{transition:border-color 90ms 0ms cubic-bezier(0, 0, 0.2, 1),background-color 90ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__checkmark-path,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__checkmark-path,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__checkmark-path{stroke-dashoffset:0}.mdc-checkbox__native-control{position:absolute;margin:0;padding:0;opacity:0;cursor:inherit}.mdc-checkbox__native-control:disabled{cursor:default;pointer-events:none}.mdc-checkbox--touch{margin:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2)}.mdc-checkbox--touch .mdc-checkbox__native-control{top:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);right:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);left:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);width:var(--mdc-checkbox-state-layer-size);height:var(--mdc-checkbox-state-layer-size)}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__checkmark{transition:opacity 180ms 0ms cubic-bezier(0, 0, 0.2, 1),transform 180ms 0ms cubic-bezier(0, 0, 0.2, 1);opacity:1}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__mixedmark{transform:scaleX(1) rotate(-45deg)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__checkmark,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__checkmark{transform:rotate(45deg);opacity:0;transition:opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__mixedmark,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__mixedmark{transform:scaleX(1) rotate(0deg);opacity:1}.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__background,.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__checkmark,.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__checkmark-path,.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__mixedmark{transition:none}.mdc-checkbox{padding:calc((var(--mdc-checkbox-state-layer-size) - 18px) / 2);margin:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2)}.mdc-checkbox .mdc-checkbox__native-control[disabled]:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-disabled-unselected-icon-color);background-color:transparent}.mdc-checkbox .mdc-checkbox__native-control[disabled]:checked~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control[disabled]:indeterminate~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control[data-indeterminate=true][disabled]~.mdc-checkbox__background{border-color:transparent;background-color:var(--mdc-checkbox-disabled-selected-icon-color)}.mdc-checkbox .mdc-checkbox__native-control:enabled~.mdc-checkbox__background .mdc-checkbox__checkmark{color:var(--mdc-checkbox-selected-checkmark-color)}.mdc-checkbox .mdc-checkbox__native-control:enabled~.mdc-checkbox__background .mdc-checkbox__mixedmark{border-color:var(--mdc-checkbox-selected-checkmark-color)}.mdc-checkbox .mdc-checkbox__native-control:disabled~.mdc-checkbox__background .mdc-checkbox__checkmark{color:var(--mdc-checkbox-disabled-selected-checkmark-color)}.mdc-checkbox .mdc-checkbox__native-control:disabled~.mdc-checkbox__background .mdc-checkbox__mixedmark{border-color:var(--mdc-checkbox-disabled-selected-checkmark-color)}.mdc-checkbox .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-icon-color);background-color:transparent}.mdc-checkbox .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-icon-color);background-color:var(--mdc-checkbox-selected-icon-color)}@keyframes mdc-checkbox-fade-in-background-8A000000FFF4433600000000FFF44336{0%{border-color:var(--mdc-checkbox-unselected-icon-color);background-color:transparent}50%{border-color:var(--mdc-checkbox-selected-icon-color);background-color:var(--mdc-checkbox-selected-icon-color)}}@keyframes mdc-checkbox-fade-out-background-8A000000FFF4433600000000FFF44336{0%,80%{border-color:var(--mdc-checkbox-selected-icon-color);background-color:var(--mdc-checkbox-selected-icon-color)}100%{border-color:var(--mdc-checkbox-unselected-icon-color);background-color:transparent}}.mdc-checkbox.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-in-background-8A000000FFF4433600000000FFF44336}.mdc-checkbox.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-out-background-8A000000FFF4433600000000FFF44336}.mdc-checkbox:hover .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-hover-icon-color);background-color:transparent}.mdc-checkbox:hover .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox:hover .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mdc-checkbox:hover .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-hover-icon-color);background-color:var(--mdc-checkbox-selected-hover-icon-color)}@keyframes mdc-checkbox-fade-in-background-FF212121FFF4433600000000FFF44336{0%{border-color:var(--mdc-checkbox-unselected-hover-icon-color);background-color:transparent}50%{border-color:var(--mdc-checkbox-selected-hover-icon-color);background-color:var(--mdc-checkbox-selected-hover-icon-color)}}@keyframes mdc-checkbox-fade-out-background-FF212121FFF4433600000000FFF44336{0%,80%{border-color:var(--mdc-checkbox-selected-hover-icon-color);background-color:var(--mdc-checkbox-selected-hover-icon-color)}100%{border-color:var(--mdc-checkbox-unselected-hover-icon-color);background-color:transparent}}.mdc-checkbox:hover.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox:hover.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-in-background-FF212121FFF4433600000000FFF44336}.mdc-checkbox:hover.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox:hover.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-out-background-FF212121FFF4433600000000FFF44336}.mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-pressed-icon-color);background-color:transparent}.mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-pressed-icon-color);background-color:var(--mdc-checkbox-selected-pressed-icon-color)}@keyframes mdc-checkbox-fade-in-background-8A000000FFF4433600000000FFF44336{0%{border-color:var(--mdc-checkbox-unselected-pressed-icon-color);background-color:transparent}50%{border-color:var(--mdc-checkbox-selected-pressed-icon-color);background-color:var(--mdc-checkbox-selected-pressed-icon-color)}}@keyframes mdc-checkbox-fade-out-background-8A000000FFF4433600000000FFF44336{0%,80%{border-color:var(--mdc-checkbox-selected-pressed-icon-color);background-color:var(--mdc-checkbox-selected-pressed-icon-color)}100%{border-color:var(--mdc-checkbox-unselected-pressed-icon-color);background-color:transparent}}.mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-in-background-8A000000FFF4433600000000FFF44336}.mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-out-background-8A000000FFF4433600000000FFF44336}.mdc-checkbox .mdc-checkbox__background{top:calc((var(--mdc-checkbox-state-layer-size) - 18px) / 2);left:calc((var(--mdc-checkbox-state-layer-size) - 18px) / 2)}.mdc-checkbox .mdc-checkbox__native-control{top:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);right:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);left:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);width:var(--mdc-checkbox-state-layer-size);height:var(--mdc-checkbox-state-layer-size)}.mdc-checkbox .mdc-checkbox__native-control:enabled:focus:focus:not(:checked):not(:indeterminate)~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-focus-icon-color)}.mdc-checkbox .mdc-checkbox__native-control:enabled:focus:checked~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control:enabled:focus:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-focus-icon-color);background-color:var(--mdc-checkbox-selected-focus-icon-color)}.mdc-checkbox:hover .mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-hover-state-layer-opacity);background-color:var(--mdc-checkbox-unselected-hover-state-layer-color)}.mdc-checkbox:hover .mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-hover-state-layer-color)}.mdc-checkbox .mdc-checkbox__native-control:focus~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-focus-state-layer-opacity);background-color:var(--mdc-checkbox-unselected-focus-state-layer-color)}.mdc-checkbox .mdc-checkbox__native-control:focus~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-focus-state-layer-color)}.mdc-checkbox:active .mdc-checkbox__native-control~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-pressed-state-layer-opacity);background-color:var(--mdc-checkbox-unselected-pressed-state-layer-color)}.mdc-checkbox:active .mdc-checkbox__native-control~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-pressed-state-layer-color)}.mdc-checkbox:hover .mdc-checkbox__native-control:checked~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-hover-state-layer-opacity);background-color:var(--mdc-checkbox-selected-hover-state-layer-color)}.mdc-checkbox:hover .mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-hover-state-layer-color)}.mdc-checkbox .mdc-checkbox__native-control:focus:checked~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-focus-state-layer-opacity);background-color:var(--mdc-checkbox-selected-focus-state-layer-color)}.mdc-checkbox .mdc-checkbox__native-control:focus:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-focus-state-layer-color)}.mdc-checkbox:active .mdc-checkbox__native-control:checked~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-pressed-state-layer-opacity);background-color:var(--mdc-checkbox-selected-pressed-state-layer-color)}.mdc-checkbox:active .mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-pressed-state-layer-color)}.mat-mdc-checkbox{display:inline-block;position:relative;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-checkbox .mdc-checkbox__background{-webkit-print-color-adjust:exact;color-adjust:exact}.mat-mdc-checkbox._mat-animation-noopable *,.mat-mdc-checkbox._mat-animation-noopable *::before{transition:none !important;animation:none !important}.mat-mdc-checkbox label{cursor:pointer}.mat-mdc-checkbox.mat-mdc-checkbox-disabled label{cursor:default;color:var(--mat-checkbox-disabled-label-color)}.mat-mdc-checkbox label:empty{display:none}.cdk-high-contrast-active .mat-mdc-checkbox.mat-mdc-checkbox-disabled{opacity:.5}.cdk-high-contrast-active .mat-mdc-checkbox .mdc-checkbox__checkmark{--mdc-checkbox-selected-checkmark-color: CanvasText;--mdc-checkbox-disabled-selected-checkmark-color: CanvasText}.mat-mdc-checkbox .mdc-checkbox__ripple{opacity:0}.mat-mdc-checkbox-ripple,.mdc-checkbox__ripple{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:50%;pointer-events:none}.mat-mdc-checkbox-ripple:not(:empty),.mdc-checkbox__ripple:not(:empty){transform:translateZ(0)}.mat-mdc-checkbox-ripple .mat-ripple-element{opacity:.1}.mat-mdc-checkbox-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-checkbox-touch-target-display)}.mat-mdc-checkbox-ripple::before{border-radius:50%}.mdc-checkbox__native-control:focus~.mat-mdc-focus-indicator::before{content:""}'],encapsulation:2,changeDetection:0})}}return t})(),tte=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[BA,Ki,Ki]})}}return t})();const HN=(t,n,e)=>{const i=Number.parseInt(t.target.value);return ie?e:i},nPe=["knob"],iPe=["valueIndicatorContainer"];function rPe(t,n){if(1&t&&(I(0,"div",2,1)(2,"div",5)(3,"span",6),ve(4),O()()()),2&t){const e=He();H(4),ur(e.valueIndicatorText)}}const oPe=["trackActive"],sPe=["*"];function aPe(t,n){if(1&t&&_e(0,"div"),2&t){const e=n.$implicit,i=n.$index,r=He(3);Cc(0===e?"mdc-slider__tick-mark--active":"mdc-slider__tick-mark--inactive"),Fi("transform",r._calcTickMarkTransform(i))}}function lPe(t,n){1&t&&yr(0,aPe,1,4,"div",8,Sr),2&t&&wr(He(2)._tickMarks)}function cPe(t,n){if(1&t&&(I(0,"div",6,1),ft(2,lPe,2,0),O()),2&t){const e=He();H(2),yt(2,e._cachedWidth?2:-1)}}function dPe(t,n){if(1&t&&_e(0,"mat-slider-visual-thumb",7),2&t){const e=He();ue("discrete",e.discrete)("thumbPosition",1)("valueIndicatorText",e.startValueIndicatorText)}}var ii=function(t){return t[t.START=1]="START",t[t.END=2]="END",t}(ii||{}),$b=function(t){return t[t.ACTIVE=0]="ACTIVE",t[t.INACTIVE=1]="INACTIVE",t}($b||{});const kF=new ot("_MatSlider"),nte=new ot("_MatSliderThumb"),ite=new ot("_MatSliderRangeThumb"),rte=new ot("_MatSliderVisualThumb");let uPe=(()=>{class t{constructor(e,i,r,o){this._cdr=e,this._ngZone=i,this._slider=o,this._isHovered=!1,this._isActive=!1,this._isValueIndicatorVisible=!1,this._platform=Ut(Or),this._onPointerMove=s=>{if(this._sliderInput._isFocused)return;const a=this._hostElement.getBoundingClientRect(),l=this._slider._isCursorOnSliderThumb(s,a);this._isHovered=l,l?this._showHoverRipple():this._hideRipple(this._hoverRippleRef)},this._onMouseLeave=()=>{this._isHovered=!1,this._hideRipple(this._hoverRippleRef)},this._onFocus=()=>{this._hideRipple(this._hoverRippleRef),this._showFocusRipple(),this._hostElement.classList.add("mdc-slider__thumb--focused")},this._onBlur=()=>{this._isActive||this._hideRipple(this._focusRippleRef),this._isHovered&&this._showHoverRipple(),this._hostElement.classList.remove("mdc-slider__thumb--focused")},this._onDragStart=s=>{0===s.button&&(this._isActive=!0,this._showActiveRipple())},this._onDragEnd=()=>{this._isActive=!1,this._hideRipple(this._activeRippleRef),this._sliderInput._isFocused||this._hideRipple(this._focusRippleRef),this._platform.SAFARI&&this._showHoverRipple()},this._hostElement=r.nativeElement}ngAfterViewInit(){this._ripple.radius=24,this._sliderInput=this._slider._getInput(this.thumbPosition),this._sliderInputEl=this._sliderInput._hostElement;const e=this._sliderInputEl;this._ngZone.runOutsideAngular(()=>{e.addEventListener("pointermove",this._onPointerMove),e.addEventListener("pointerdown",this._onDragStart),e.addEventListener("pointerup",this._onDragEnd),e.addEventListener("pointerleave",this._onMouseLeave),e.addEventListener("focus",this._onFocus),e.addEventListener("blur",this._onBlur)})}ngOnDestroy(){const e=this._sliderInputEl;e&&(e.removeEventListener("pointermove",this._onPointerMove),e.removeEventListener("pointerdown",this._onDragStart),e.removeEventListener("pointerup",this._onDragEnd),e.removeEventListener("pointerleave",this._onMouseLeave),e.removeEventListener("focus",this._onFocus),e.removeEventListener("blur",this._onBlur))}_showHoverRipple(){this._isShowingRipple(this._hoverRippleRef)||(this._hoverRippleRef=this._showRipple({enterDuration:0,exitDuration:0}),this._hoverRippleRef?.element.classList.add("mat-mdc-slider-hover-ripple"))}_showFocusRipple(){this._isShowingRipple(this._focusRippleRef)||(this._focusRippleRef=this._showRipple({enterDuration:0,exitDuration:0},!0),this._focusRippleRef?.element.classList.add("mat-mdc-slider-focus-ripple"))}_showActiveRipple(){this._isShowingRipple(this._activeRippleRef)||(this._activeRippleRef=this._showRipple({enterDuration:225,exitDuration:400}),this._activeRippleRef?.element.classList.add("mat-mdc-slider-active-ripple"))}_isShowingRipple(e){return e?.state===il.FADING_IN||e?.state===il.VISIBLE}_showRipple(e,i){if(!this._slider.disabled&&(this._showValueIndicator(),this._slider._isRange&&this._slider._getThumb(this.thumbPosition===ii.START?ii.END:ii.START)._showValueIndicator(),!this._slider._globalRippleOptions?.disabled||i))return this._ripple.launch({animation:this._slider._noopAnimations?{enterDuration:0,exitDuration:0}:e,centered:!0,persistent:!0})}_hideRipple(e){if(e?.fadeOut(),this._isShowingAnyRipple())return;this._slider._isRange||this._hideValueIndicator();const i=this._getSibling();i._isShowingAnyRipple()||(this._hideValueIndicator(),i._hideValueIndicator())}_showValueIndicator(){this._hostElement.classList.add("mdc-slider__thumb--with-indicator")}_hideValueIndicator(){this._hostElement.classList.remove("mdc-slider__thumb--with-indicator")}_getSibling(){return this._slider._getThumb(this.thumbPosition===ii.START?ii.END:ii.START)}_getValueIndicatorContainer(){return this._valueIndicatorContainer?.nativeElement}_getKnob(){return this._knob.nativeElement}_isShowingAnyRipple(){return this._isShowingRipple(this._hoverRippleRef)||this._isShowingRipple(this._focusRippleRef)||this._isShowingRipple(this._activeRippleRef)}static{this.\u0275fac=function(i){return new(i||t)(W(Ao),W(Fn),W(Un),W(kF))}}static{this.\u0275cmp=At({type:t,selectors:[["mat-slider-visual-thumb"]],viewQuery:function(i,r){if(1&i&&(ti(rh,5),ti(nPe,5),ti(iPe,5)),2&i){let o;mn(o=pn())&&(r._ripple=o.first),mn(o=pn())&&(r._knob=o.first),mn(o=pn())&&(r._valueIndicatorContainer=o.first)}},hostAttrs:[1,"mdc-slider__thumb","mat-mdc-slider-visual-thumb"],inputs:{discrete:"discrete",thumbPosition:"thumbPosition",valueIndicatorText:"valueIndicatorText"},standalone:!0,features:[ni([{provide:rte,useExisting:t}]),xr],decls:4,vars:2,consts:[["knob",""],["valueIndicatorContainer",""],[1,"mdc-slider__value-indicator-container"],[1,"mdc-slider__thumb-knob"],["matRipple","",1,"mat-mdc-focus-indicator",3,"matRippleDisabled"],[1,"mdc-slider__value-indicator"],[1,"mdc-slider__value-indicator-text"]],template:function(i,r){1&i&&(ft(0,rPe,5,1,"div",2),_e(1,"div",3,0)(3,"div",4)),2&i&&(yt(0,r.discrete?0:-1),H(3),ue("matRippleDisabled",!0))},dependencies:[rh],styles:[".mat-mdc-slider-visual-thumb .mat-ripple{height:100%;width:100%}.mat-mdc-slider .mdc-slider__tick-marks{justify-content:start}.mat-mdc-slider .mdc-slider__tick-marks .mdc-slider__tick-mark--active,.mat-mdc-slider .mdc-slider__tick-marks .mdc-slider__tick-mark--inactive{position:absolute;left:2px}"],encapsulation:2,changeDetection:0})}}return t})(),ote=(()=>{class t{get disabled(){return this._disabled}set disabled(e){this._disabled=e;const i=this._getInput(ii.END),r=this._getInput(ii.START);i&&(i.disabled=this._disabled),r&&(r.disabled=this._disabled)}get discrete(){return this._discrete}set discrete(e){this._discrete=e,this._updateValueIndicatorUIs()}get min(){return this._min}set min(e){const i=isNaN(e)?this._min:e;this._min!==i&&this._updateMin(i)}_updateMin(e){const i=this._min;this._min=e,this._isRange?this._updateMinRange({old:i,new:e}):this._updateMinNonRange(e),this._onMinMaxOrStepChange()}_updateMinRange(e){const i=this._getInput(ii.END),r=this._getInput(ii.START),o=i.value,s=r.value;r.min=e.new,i.min=Math.max(e.new,r.value),r.max=Math.min(i.max,i.value),r._updateWidthInactive(),i._updateWidthInactive(),e.newe.old?this._onTranslateXChangeBySideEffect(r,i):this._onTranslateXChangeBySideEffect(i,r),o!==i.value&&this._onValueChange(i),s!==r.value&&this._onValueChange(r)}_updateMaxNonRange(e){const i=this._getInput(ii.END);if(i){const r=i.value;i.max=e,i._updateThumbUIByValue(),this._updateTrackUI(i),r!==i.value&&this._onValueChange(i)}}get step(){return this._step}set step(e){const i=isNaN(e)?this._step:e;this._step!==i&&this._updateStep(i)}_updateStep(e){this._step=e,this._isRange?this._updateStepRange():this._updateStepNonRange(),this._onMinMaxOrStepChange()}_updateStepRange(){const e=this._getInput(ii.END),i=this._getInput(ii.START),r=e.value,o=i.value,s=i.value;e.min=this._min,i.max=this._max,e.step=this._step,i.step=this._step,this._platform.SAFARI&&(e.value=e.value,i.value=i.value),e.min=Math.max(this._min,i.value),i.max=Math.min(this._max,e.value),i._updateWidthInactive(),e._updateWidthInactive(),e.value`${l}`,this._rippleRadius=24,this.startValueIndicatorText="",this.endValueIndicatorText="",this._isRange=!1,this._isRtl=!1,this._hasViewInitialized=!1,this._tickMarkTrackWidth=0,this._hasAnimation=!1,this._resizeTimer=null,this._platform=Ut(Or),this._knobRadius=8,this._thumbsOverlap=!1,this._noopAnimations="NoopAnimations"===a,this._dirChangeSubscription=this._dir.change.subscribe(()=>this._onDirChange()),this._isRtl="rtl"===this._dir.value}ngAfterViewInit(){this._platform.isBrowser&&this._updateDimensions();const e=this._getInput(ii.END),i=this._getInput(ii.START);this._isRange=!!e&&!!i,this._cdr.detectChanges();const r=this._getThumb(ii.END);this._rippleRadius=r._ripple.radius,this._inputPadding=this._rippleRadius-this._knobRadius,this._isRange?this._initUIRange(e,i):this._initUINonRange(e),this._updateTrackUI(e),this._updateTickMarkUI(),this._updateTickMarkTrackUI(),this._observeHostResize(),this._cdr.detectChanges()}_initUINonRange(e){e.initProps(),e.initUI(),this._updateValueIndicatorUI(e),this._hasViewInitialized=!0,e._updateThumbUIByValue()}_initUIRange(e,i){e.initProps(),e.initUI(),i.initProps(),i.initUI(),e._updateMinMax(),i._updateMinMax(),e._updateStaticStyles(),i._updateStaticStyles(),this._updateValueIndicatorUIs(),this._hasViewInitialized=!0,e._updateThumbUIByValue(),i._updateThumbUIByValue()}ngOnDestroy(){this._dirChangeSubscription.unsubscribe(),this._resizeObserver?.disconnect(),this._resizeObserver=null}_onDirChange(){this._isRtl="rtl"===this._dir.value,this._isRange?this._onDirChangeRange():this._onDirChangeNonRange(),this._updateTickMarkUI()}_onDirChangeRange(){const e=this._getInput(ii.END),i=this._getInput(ii.START);e._setIsLeftThumb(),i._setIsLeftThumb(),e.translateX=e._calcTranslateXByValue(),i.translateX=i._calcTranslateXByValue(),e._updateStaticStyles(),i._updateStaticStyles(),e._updateWidthInactive(),i._updateWidthInactive(),e._updateThumbUIByValue(),i._updateThumbUIByValue()}_onDirChangeNonRange(){this._getInput(ii.END)._updateThumbUIByValue()}_observeHostResize(){typeof ResizeObserver>"u"||!ResizeObserver||this._ngZone.runOutsideAngular(()=>{this._resizeObserver=new ResizeObserver(()=>{this._isActive()||(this._resizeTimer&&clearTimeout(this._resizeTimer),this._onResize())}),this._resizeObserver.observe(this._elementRef.nativeElement)})}_isActive(){return this._getThumb(ii.START)._isActive||this._getThumb(ii.END)._isActive}_getValue(e=ii.END){const i=this._getInput(e);return i?i.value:this.min}_skipUpdate(){return!(!this._getInput(ii.START)?._skipUIUpdate&&!this._getInput(ii.END)?._skipUIUpdate)}_updateDimensions(){this._cachedWidth=this._elementRef.nativeElement.offsetWidth,this._cachedLeft=this._elementRef.nativeElement.getBoundingClientRect().left}_setTrackActiveStyles(e){const i=this._trackActive.nativeElement.style;i.left=e.left,i.right=e.right,i.transformOrigin=e.transformOrigin,i.transform=e.transform}_calcTickMarkTransform(e){return`translateX(${e*(this._tickMarkTrackWidth/(this._tickMarks.length-1))}px`}_onTranslateXChange(e){this._hasViewInitialized&&(this._updateThumbUI(e),this._updateTrackUI(e),this._updateOverlappingThumbUI(e))}_onTranslateXChangeBySideEffect(e,i){this._hasViewInitialized&&(e._updateThumbUIByValue(),i._updateThumbUIByValue())}_onValueChange(e){this._hasViewInitialized&&(this._updateValueIndicatorUI(e),this._updateTickMarkUI(),this._cdr.detectChanges())}_onMinMaxOrStepChange(){this._hasViewInitialized&&(this._updateTickMarkUI(),this._updateTickMarkTrackUI(),this._cdr.markForCheck())}_onResize(){if(this._hasViewInitialized){if(this._updateDimensions(),this._isRange){const e=this._getInput(ii.END),i=this._getInput(ii.START);e._updateThumbUIByValue(),i._updateThumbUIByValue(),e._updateStaticStyles(),i._updateStaticStyles(),e._updateMinMax(),i._updateMinMax(),e._updateWidthInactive(),i._updateWidthInactive()}else{const e=this._getInput(ii.END);e&&e._updateThumbUIByValue()}this._updateTickMarkUI(),this._updateTickMarkTrackUI(),this._cdr.detectChanges()}}_areThumbsOverlapping(){const e=this._getInput(ii.START),i=this._getInput(ii.END);return!(!e||!i)&&i.translateX-e.translateX<20}_updateOverlappingThumbClassNames(e){const i=e.getSibling(),r=this._getThumb(e.thumbPosition);this._getThumb(i.thumbPosition)._hostElement.classList.remove("mdc-slider__thumb--top"),r._hostElement.classList.toggle("mdc-slider__thumb--top",this._thumbsOverlap)}_updateOverlappingThumbUI(e){!this._isRange||this._skipUpdate()||this._thumbsOverlap!==this._areThumbsOverlapping()&&(this._thumbsOverlap=!this._thumbsOverlap,this._updateOverlappingThumbClassNames(e))}_updateThumbUI(e){this._skipUpdate()||(this._getThumb(e.thumbPosition===ii.END?ii.END:ii.START)._hostElement.style.transform=`translateX(${e.translateX}px)`)}_updateValueIndicatorUI(e){if(this._skipUpdate())return;const i=this.displayWith(e.value);if(this._hasViewInitialized?e._valuetext=i:e._hostElement.setAttribute("aria-valuetext",i),this.discrete){e.thumbPosition===ii.START?this.startValueIndicatorText=i:this.endValueIndicatorText=i;const r=this._getThumb(e.thumbPosition);i.length<3?r._hostElement.classList.add("mdc-slider__thumb--short-value"):r._hostElement.classList.remove("mdc-slider__thumb--short-value")}}_updateValueIndicatorUIs(){const e=this._getInput(ii.END),i=this._getInput(ii.START);e&&this._updateValueIndicatorUI(e),i&&this._updateValueIndicatorUI(i)}_updateTickMarkTrackUI(){if(!this.showTickMarks||this._skipUpdate())return;const e=this._step&&this._step>0?this._step:1,r=(Math.floor(this.max/e)*e-this.min)/(this.max-this.min);this._tickMarkTrackWidth=this._cachedWidth*r-6}_updateTrackUI(e){this._skipUpdate()||(this._isRange?this._updateTrackUIRange(e):this._updateTrackUINonRange(e))}_updateTrackUIRange(e){const i=e.getSibling();if(!i||!this._cachedWidth)return;const r=Math.abs(i.translateX-e.translateX)/this._cachedWidth;this._setTrackActiveStyles(e._isLeftThumb&&this._cachedWidth?{left:"auto",right:this._cachedWidth-i.translateX+"px",transformOrigin:"right",transform:`scaleX(${r})`}:{left:`${i.translateX}px`,right:"auto",transformOrigin:"left",transform:`scaleX(${r})`})}_updateTrackUINonRange(e){this._setTrackActiveStyles(this._isRtl?{left:"auto",right:"0px",transformOrigin:"right",transform:`scaleX(${1-e.fillPercentage})`}:{left:"0px",right:"auto",transformOrigin:"left",transform:`scaleX(${e.fillPercentage})`})}_updateTickMarkUI(){if(!this.showTickMarks||void 0===this.step||void 0===this.min||void 0===this.max)return;const e=this.step>0?this.step:1;this._isRange?this._updateTickMarkUIRange(e):this._updateTickMarkUINonRange(e),this._isRtl&&this._tickMarks.reverse()}_updateTickMarkUINonRange(e){const i=this._getValue();let r=Math.max(Math.floor((i-this.min)/e),0),o=Math.max(Math.floor((this.max-i)/e),0);this._isRtl?r++:o++,this._tickMarks=Array(r).fill($b.ACTIVE).concat(Array(o).fill($b.INACTIVE))}_updateTickMarkUIRange(e){const i=this._getValue(),r=this._getValue(ii.START),o=Math.max(Math.floor((r-this.min)/e),0),s=Math.max(Math.floor((i-r)/e)+1,0),a=Math.max(Math.floor((this.max-i)/e),0);this._tickMarks=Array(o).fill($b.INACTIVE).concat(Array(s).fill($b.ACTIVE),Array(a).fill($b.INACTIVE))}_getInput(e){return e===ii.END&&this._input?this._input:this._inputs?.length?e===ii.START?this._inputs.first:this._inputs.last:void 0}_getThumb(e){return e===ii.END?this._thumbs?.last:this._thumbs?.first}_setTransition(e){this._hasAnimation=!this._platform.IOS&&e&&!this._noopAnimations,this._elementRef.nativeElement.classList.toggle("mat-mdc-slider-with-animation",this._hasAnimation)}_isCursorOnSliderThumb(e,i){const r=i.width/2,l=e.clientY-(i.y+r);return Math.pow(e.clientX-(i.x+r),2)+Math.pow(l,2)IF),multi:!0};let IF=(()=>{class t{get value(){return sa(this._hostElement.value,0)}set value(e){const i=(e=isNaN(e)?0:e)+"";this._hasSetInitialValue?this._isActive||this._setValue(i):this._initialValue=i}_setValue(e){this._hostElement.value=e,this._updateThumbUIByValue(),this._slider._onValueChange(this),this._cdr.detectChanges(),this._slider._cdr.markForCheck()}get translateX(){return this._slider.min>=this._slider.max?(this._translateX=this._tickMarkOffset,this._translateX):(void 0===this._translateX&&(this._translateX=this._calcTranslateXByValue()),this._translateX)}set translateX(e){this._translateX=e}get min(){return sa(this._hostElement.min,0)}set min(e){this._hostElement.min=e+"",this._cdr.detectChanges()}get max(){return sa(this._hostElement.max,0)}set max(e){this._hostElement.max=e+"",this._cdr.detectChanges()}get step(){return sa(this._hostElement.step,0)}set step(e){this._hostElement.step=e+"",this._cdr.detectChanges()}get disabled(){return qn(this._hostElement.disabled)}set disabled(e){this._hostElement.disabled=e,this._cdr.detectChanges(),this._slider.disabled!==this.disabled&&(this._slider.disabled=this.disabled)}get percentage(){return this._slider.min>=this._slider.max?this._slider._isRtl?1:0:(this.value-this._slider.min)/(this._slider.max-this._slider.min)}get fillPercentage(){return this._slider._cachedWidth?0===this._translateX?0:this.translateX/this._slider._cachedWidth:this._slider._isRtl?1:0}_setIsFocused(e){this._isFocused=e}constructor(e,i,r,o){this._ngZone=e,this._elementRef=i,this._cdr=r,this._slider=o,this.valueChange=new Ln,this.dragStart=new Ln,this.dragEnd=new Ln,this.thumbPosition=ii.END,this._knobRadius=8,this._tickMarkOffset=3,this._isActive=!1,this._isFocused=!1,this._hasSetInitialValue=!1,this._destroyed=new Yt,this._skipUIUpdate=!1,this._onTouchedFn=()=>{},this._isControlInitialized=!1,this._platform=Ut(Or),this._hostElement=i.nativeElement,this._ngZone.runOutsideAngular(()=>{this._hostElement.addEventListener("pointerdown",this._onPointerDown.bind(this)),this._hostElement.addEventListener("pointermove",this._onPointerMove.bind(this)),this._hostElement.addEventListener("pointerup",this._onPointerUp.bind(this))})}ngOnDestroy(){this._hostElement.removeEventListener("pointerdown",this._onPointerDown),this._hostElement.removeEventListener("pointermove",this._onPointerMove),this._hostElement.removeEventListener("pointerup",this._onPointerUp),this._destroyed.next(),this._destroyed.complete(),this.dragStart.complete(),this.dragEnd.complete()}initProps(){this._updateWidthInactive(),this.disabled!==this._slider.disabled&&(this._slider.disabled=!0),this.step=this._slider.step,this.min=this._slider.min,this.max=this._slider.max,this._initValue()}initUI(){this._updateThumbUIByValue()}_initValue(){this._hasSetInitialValue=!0,void 0===this._initialValue?this.value=this._getDefaultValue():(this._hostElement.value=this._initialValue,this._updateThumbUIByValue(),this._slider._onValueChange(this),this._cdr.detectChanges())}_getDefaultValue(){return this.min}_onBlur(){this._setIsFocused(!1),this._onTouchedFn()}_onFocus(){this._slider._setTransition(!1),this._slider._updateTrackUI(this),this._setIsFocused(!0)}_onChange(){this.valueChange.emit(this.value),this._isActive&&this._updateThumbUIByValue({withAnimation:!0})}_onInput(){this._onChangeFn?.(this.value),(this._slider.step||!this._isActive)&&this._updateThumbUIByValue({withAnimation:!0}),this._slider._onValueChange(this)}_onNgControlValueChange(){(!this._isActive||!this._isFocused)&&(this._slider._onValueChange(this),this._updateThumbUIByValue()),this._slider.disabled=this._formControl.disabled}_onPointerDown(e){if(!this.disabled&&0===e.button){if(this._platform.IOS){const i=this._slider._isCursorOnSliderThumb(e,this._slider._getThumb(this.thumbPosition)._hostElement.getBoundingClientRect());return this._isActive=i,this._updateWidthActive(),void this._slider._updateDimensions()}this._isActive=!0,this._setIsFocused(!0),this._updateWidthActive(),this._slider._updateDimensions(),this._slider.step||this._updateThumbUIByPointerEvent(e,{withAnimation:!0}),this.disabled||(this._handleValueCorrection(e),this.dragStart.emit({source:this,parent:this._slider,value:this.value}))}}_handleValueCorrection(e){this._skipUIUpdate=!0,setTimeout(()=>{this._skipUIUpdate=!1,this._fixValue(e)},0)}_fixValue(e){const i=e.clientX-this._slider._cachedLeft,r=this._slider._cachedWidth,o=0===this._slider.step?1:this._slider.step,s=Math.floor((this._slider.max-this._slider.min)/o),c=Math.round((this._slider._isRtl?1-i/r:i/r)*s)/s*(this._slider.max-this._slider.min)+this._slider.min,d=Math.round(c/o)*o;if(d===this.value)return this._slider._onValueChange(this),void(this._slider.step>0?this._updateThumbUIByValue():this._updateThumbUIByPointerEvent(e,{withAnimation:this._slider._hasAnimation}));this.value=d,this.valueChange.emit(this.value),this._onChangeFn?.(this.value),this._slider._onValueChange(this),this._slider.step>0?this._updateThumbUIByValue():this._updateThumbUIByPointerEvent(e,{withAnimation:this._slider._hasAnimation})}_onPointerMove(e){!this._slider.step&&this._isActive&&this._updateThumbUIByPointerEvent(e)}_onPointerUp(){this._isActive&&(this._isActive=!1,this._platform.SAFARI&&this._setIsFocused(!1),this.dragEnd.emit({source:this,parent:this._slider,value:this.value}),setTimeout(()=>this._updateWidthInactive(),this._platform.IOS?10:0))}_clamp(e){const i=this._tickMarkOffset;return Math.max(Math.min(e,this._slider._cachedWidth-this._tickMarkOffset),i)}_calcTranslateXByValue(){return this._slider._isRtl?(1-this.percentage)*(this._slider._cachedWidth-2*this._tickMarkOffset)+this._tickMarkOffset:this.percentage*(this._slider._cachedWidth-2*this._tickMarkOffset)+this._tickMarkOffset}_calcTranslateXByPointerEvent(e){return e.clientX-this._slider._cachedLeft}_updateWidthActive(){}_updateWidthInactive(){this._hostElement.style.padding=`0 ${this._slider._inputPadding}px`,this._hostElement.style.width=`calc(100% + ${this._slider._inputPadding-2*this._tickMarkOffset}px)`,this._hostElement.style.left=`-${this._slider._rippleRadius-this._tickMarkOffset}px`}_updateThumbUIByValue(e){this.translateX=this._clamp(this._calcTranslateXByValue()),this._updateThumbUI(e)}_updateThumbUIByPointerEvent(e,i){this.translateX=this._clamp(this._calcTranslateXByPointerEvent(e)),this._updateThumbUI(i)}_updateThumbUI(e){this._slider._setTransition(!!e?.withAnimation),this._slider._onTranslateXChange(this)}writeValue(e){(this._isControlInitialized||null!==e)&&(this.value=e)}registerOnChange(e){this._onChangeFn=e,this._isControlInitialized=!0}registerOnTouched(e){this._onTouchedFn=e}setDisabledState(e){this.disabled=e}focus(){this._hostElement.focus()}blur(){this._hostElement.blur()}static{this.\u0275fac=function(i){return new(i||t)(W(Fn),W(Un),W(Ao),W(kF))}}static{this.\u0275dir=zt({type:t,selectors:[["input","matSliderThumb",""]],hostAttrs:["type","range",1,"mdc-slider__input"],hostVars:1,hostBindings:function(i,r){1&i&&We("change",function(){return r._onChange()})("input",function(){return r._onInput()})("blur",function(){return r._onBlur()})("focus",function(){return r._onFocus()}),2&i&&oi("aria-valuetext",r._valuetext)},inputs:{value:[bt.HasDecoratorInputTransform,"value","value",sa]},outputs:{valueChange:"valueChange",dragStart:"dragStart",dragEnd:"dragEnd"},exportAs:["matSliderThumb"],standalone:!0,features:[ni([fPe,{provide:nte,useExisting:t}]),Ho]})}}return t})(),VN=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[Ki,P0]})}}return t})(),BF=(()=>{class t{constructor(){this.step=1,this.disabled=!1}handleSliderOnChange(e){e!==this.value&&this.onChange(e)}handleInputOnChange(e){const i=HN(e,this.min,this.max);i!==this.value&&!Number.isNaN(i)&&this.onChange(i)}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=At({type:t,selectors:[["cc-slider"]],inputs:{value:"value",min:"min",max:"max",label:"label",step:"step",disabled:"disabled",onChange:"onChange"},decls:8,vars:10,consts:[[1,"cc-slider-container"],[1,"label"],[1,"slider-with-input"],[3,"disabled","step","min","max"],["matSliderThumb","",3,"input","value"],["appearance","outline"],["matInput","","type","number",3,"input","value","disabled","min","max"]],template:function(i,r){1&i&&(I(0,"div",0)(1,"mat-label",1),ve(2),O(),I(3,"div",2)(4,"mat-slider",3)(5,"input",4),We("input",function(s){return r.handleInputOnChange(s)}),O()(),I(6,"mat-form-field",5)(7,"input",6),We("input",function(s){return r.handleInputOnChange(s)}),O()()()()),2&i&&(H(2),ur(r.label),H(2),ue("disabled",r.disabled)("step",r.step)("min",r.min)("max",r.max),H(),ue("value",r.value),H(2),ue("value",r.value)("disabled",r.disabled)("min",r.min)("max",r.max))},dependencies:[nd,td,_m,ote,IF],styles:["cc-slider{width:100%;margin-top:8px}cc-slider .label{margin-left:10px}cc-slider .cc-slider-container{display:flex;flex-direction:column}cc-slider .cc-slider-container .slider-with-input{display:flex;align-items:center}cc-slider .cc-slider-container .slider-with-input mat-slider{margin:0 12px;flex:2}cc-slider .cc-slider-container .slider-with-input mat-form-field{flex:1;height:32px}cc-slider .cc-slider-container .slider-with-input mat-form-field .mat-mdc-text-field-wrapper{padding:0 12px}cc-slider .cc-slider-container .slider-with-input mat-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex{align-self:center}cc-slider .cc-slider-container .slider-with-input mat-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-infix{padding:0;min-height:28px}cc-slider .cc-slider-container .slider-with-input mat-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-infix .mat-mdc-input-element{min-height:inherit}cc-slider .cc-slider-container .slider-with-input mat-form-field .mat-mdc-form-field-subscript-wrapper.mat-mdc-form-field-bottom-align{display:none}\n"],encapsulation:2})}}return t})();const QN={positive:!1,negative:!1,neutral:!1},APe=ui(QN,bn(Vy,tF(QN))),gPe=ui(!0,bn(Yy,Di(!0))),bPe=ui(!1,bn(Xy,Di(!1))),ste=un("SET_SORTING_ORDER_ASCENDING",{_as:"props",_p:void 0}),qN=un("TOGGLE_SORTING_ORDER_ASCENDING"),_Pe=ui(!0,bn(ste,Di(!0)),bn(qN,t=>!t)),vPe=ui(!0,bn(Ip,Di(!0))),yPe=ui(!0,bn(F0,Di(!0))),wPe=ui(!0,bn(gM,Di(!0))),xPe=ui(!1,bn(Zy,Di(!1))),CPe=ui(!1,bn(Wy,Di(!1))),EPe=ui(!1,bn(qy,Di(!1))),MPe=ui(!1,bn(zy,Di(!1))),SPe=ui(!1,bn(mM,Di(!1))),TPe=ui(!1,bn(hM,Di(!1))),nO=qd.SquarifiedTreeMap,FPe=ui(nO,bn($y,Di(nO))),kPe=ui(100,bn(jy,Di(100))),rO=Up.Standard,IPe=ui(rO,bn(Ky,Di(rO))),BPe=ui(!1,bn(uM,Di(!1))),DPe=ui(!1,bn(Gy,Di(!1))),RPe=ui(!0,bn(G4,(t,n)=>n.value),bn(fM,t=>!t)),LPe=ui(!1,bn(q4,(t,n)=>n.value),bn(W4,t=>!t)),cte=un("SET_IS_FILE_EXPLORER_PINNED",{_as:"props",_p:void 0}),aO=un("TOGGLE_IS_FILE_EXPLORER_PINNED"),PPe=ui(!1,bn(cte,Di(!1)),bn(aO,t=>!t)),OPe=kp({colorLabels:APe,showMetricLabelNodeName:gPe,showMetricLabelNameValue:bPe,sortingOrderAscending:_Pe,isSearchPanelPinned:PPe,isLoadingFile:vPe,isLoadingMap:yPe,mapColors:Mke,resetCameraIfNewFileIsLoaded:wPe,showOnlyBuildingsWithEdges:xPe,isEdgeMetricVisible:RPe,isWhiteBackground:CPe,invertHeight:EPe,invertArea:DPe,hideFlatBuildings:MPe,scaling:vDe,edgeHeight:_De,amountOfEdgePreviews:bDe,amountOfTopLabels:pDe,isPresentationMode:SPe,experimentalFeaturesEnabled:TPe,screenshotToClipboardEnabled:BPe,layoutAlgorithm:FPe,maxTreeMapFiles:kPe,sharpnessMode:IPe,isColorMetricLinkedToHeightMetric:LPe,enableFloorLabels:ui(!0,bn(Qy,Di(!0)))}),UPe={colorLabels:QN,showMetricLabelNodeName:!0,showMetricLabelNameValue:!1,sortingOrderAscending:!0,isSearchPanelPinned:!1,isLoadingFile:!0,isLoadingMap:!0,mapColors:iu,resetCameraIfNewFileIsLoaded:!0,showOnlyBuildingsWithEdges:!1,isEdgeMetricVisible:!0,isWhiteBackground:!1,invertHeight:!1,invertArea:!1,hideFlatBuildings:!1,scaling:yF,edgeHeight:4,amountOfEdgePreviews:1,amountOfTopLabels:1,isPresentationMode:!1,experimentalFeaturesEnabled:!1,screenshotToClipboardEnabled:!1,layoutAlgorithm:nO,maxTreeMapFiles:100,sharpnessMode:rO,isColorMetricLinkedToHeightMetric:!1,enableFloorLabels:!0};function dte(t,n){return t.filter(e=>!TA(e,n))}function ute(t,n){return hte(t,n)?t:[...t,Hd(n)]}function hte(t,n){return t.some(e=>TA(e,n))}const QPe=(t,{path:n,color:e})=>{const i=W5(t,n);(!i||i.color!==e)&&t.set(n,{path:n,color:e});for(const[r,o]of t)if(o.path===n)o.color!==e&&t.delete(r);else if(o.path.startsWith(n)){const s=W5(t,o.path);s&&s.color===o.color&&t.delete(r)}},fte=(t,n)=>{const e=t.findIndex(r=>r.path===n);if(-1!==e)return e;let i=-1;for(let r=0;r{const e=new Map(t.map(i=>[i.path,i]));for(const i of n.packages)QPe(e,i);return[...e.values()]}),bn(EM,(t,n)=>{const e=fte(t,n.path);return-1!==e?function HPe(t,n){return[...t.slice(0,n),...t.slice(n+1)]}(t,e):t})),uO=[],GPe=ui(uO,bn(J4,Di(uO)),bn(tW,(t,n)=>ute(t,n.edge)),bn(nW,(t,n)=>dte(t,n.edge))),hO={nodes:{},edges:{}},qPe=ui(hO,bn(j4,Di(hO)),bn(K4,(t,n)=>({...t,[n.category]:{...t[n.category],[n.name]:n.attributeType}}))),fO=[],WPe=ui(fO,bn(X4,Di(fO)),bn(Y4,(t,n)=>ute(t,n.item)),bn(wM,(t,n)=>function VPe(t,n){const e=[...t];for(const i of n)hte(e,i)||e.push(i);return e}(t,n.items)),bn(xM,(t,n)=>dte(t,n.item))),mO={},jPe=kp({markedPackages:zPe,edges:GPe,attributeTypes:qPe,attributeDescriptors:ui(mO,bn($4,Di(mO))),blacklist:WPe}),KPe={markedPackages:dO,edges:uO,attributeTypes:hO,attributeDescriptors:mO,blacklist:fO},pO=qf.weightedGradient,XPe=ui(pO,bn(C0,Di(pO))),AO=lS.NAME,YPe=ui(AO,bn(yM,Di(AO))),ZPe=ui(null,bn(Xu,Di(null))),bO={from:0,to:0},JPe=ui(bO,bn(Pd,tF(bO))),e5e=ui("",bn(Hf,Di("")),bn(a1,()=>"")),mte=[],t5e=ui(mte,bn(bM,(t,n)=>[...n.value]),bn(e1,()=>[]),bn(_M,(t,n)=>n.value===$d.rootPath?t:[n.value,...t]),bn(vM,t=>t.slice(1))),s5e=kp({colorMode:XPe,sortingOption:YPe,edgeMetric:ZPe,colorRange:JPe,margin:yDe,searchPattern:e5e,focusedNodePath:t5e,heightMetric:ui(null,bn(Yu,Di(null))),distributionMetric:ui(null,bn(Jy,Di(null))),colorMetric:ui(null,bn(Lc,Di(null))),areaMetric:ui(null,bn(Ku,Di(null)))}),a5e={colorMode:pO,sortingOption:AO,edgeMetric:null,colorRange:bO,margin:50,searchPattern:"",focusedNodePath:mte,heightMetric:null,distributionMetric:null,colorMetric:null,areaMetric:null},xO=[],l5e=ui(xO,bn(s1,Di(xO)),bn(wW,(t,n)=>[...t,{file:n.file,selectedAs:Pi.None}]),bn(gR,(t,n)=>function c5e(t,n){const e=t.filter(r=>r.file.fileMeta.fileName!==n);return e.some(r=>r.selectedAs===Pi.Partial)||(e[0]={...e[0],selectedAs:Pi.Partial}),e}(t,n.fileName)),bn(NM,(t,n)=>function d5e(t,n,e){return t.map(i=>FM(i.file,n)?{...i,selectedAs:Pi.Reference}:e&&FM(i.file,e)?{...i,selectedAs:Pi.Comparison}:{...i,selectedAs:Pi.None})}(t,n.referenceFile,n.comparisonFile)),bn(xR,(t,n)=>function u5e(t,n){return t.map(e=>FM(e.file,n)?{...e,selectedAs:Pi.Reference}:e.selectedAs===Pi.Comparison?e:{...e,selectedAs:Pi.None})}(t,n.file)),bn(wR,(t,n)=>function h5e(t,n){return t.map(e=>e.file===n?{...e,selectedAs:Pi.Comparison}:e.selectedAs===Pi.Reference?e:{...e,selectedAs:Pi.None})}(t,n.file)),bn(yR,t=>function f5e(t){return t.map(n=>n.selectedAs===Pi.Reference?{...n,selectedAs:Pi.Comparison}:n.selectedAs===Pi.Comparison?{...n,selectedAs:Pi.Reference}:n)}(t)),bn(a1,(t,n)=>pte(t,n.files.map(e=>e.fileMeta.fileName))),bn(bR,(t,n)=>pte(t,n.fileNames)),bn(vR,t=>t.map(n=>({...n,selectedAs:n.selectedAs===Pi.Partial?Pi.None:Pi.Partial}))),bn(_R,t=>t.map(n=>({...n,selectedAs:Pi.Partial}))));function pte(t,n){return t.map(e=>({...e,selectedAs:n.includes(e.file.fileMeta.fileName)?Pi.Partial:Pi.None}))}const m5e=ui(null,bn(Nb,Di(null))),p5e=ui(null,bn(Ob,(t,n)=>n.value)),_5e={fileSettings:jPe,appSettings:OPe,dynamicSettings:s5e,files:l5e,appStatus:kp({hoveredNodeId:m5e,selectedBuildingId:ui(null,bn(q5,Di(null))),rightClickedNodeData:p5e})},gte={fileSettings:KPe,appSettings:UPe,dynamicSettings:a5e,files:xO,appStatus:{hoveredNodeId:null,selectedBuildingId:null,rightClickedNodeData:null}},v5e=t=>(n,e)=>function wDe(t){return t.type===MA.type}(e)?bte(Hd(n),e.value):t(n,e),y5e=new Set(["fileSettings.attributeTypes","fileSettings.attributeDescriptors","fileSettings.blacklist","fileSettings.edges","fileSettings.markedPackages","dynamicSettings.focusedNodePath","files"]);function bte(t,n,e=[]){for(const[i,r]of Object.entries(n)){if(null==r||!w5e(t,i))continue;const o=[...e,i],s=o.join(".");t[i]="object"!=typeof r||y5e.has(s)?r:bte(t[i],r,o)}return t}function w5e(t,n){return Object.prototype.hasOwnProperty.call(t,n)}function E5e(t,n){if(1&t&&(I(0,"span",2),ve(1),O()),2&t){const e=He();H(),an(" ",e.label,"")}}let _x=(()=>{class t{constructor(e,i){this.store=e,this.state=i}applyDefaultSettings(){const e=((t,n)=>{const e={};let i=0;for(const r of t){const o=r.split(".");let s=gte,a=e;for(const[l,c]of o.entries())void 0!==s[c]&&(a[c]||(a[c]={},i++),l===o.length-1?a[c]=s[c]:(s=s[c],a=a[c]))}return 0!==i&&vN(e),t.includes("appSettings.amountOfTopLabels")&&(e.appSettings.amountOfTopLabels=_N(bF(n))),e})(this.settingsKeys,this.state.getValue());this.store.dispatch(MA({value:e})),this.callback&&this.callback()}static{this.\u0275fac=function(i){return new(i||t)(W(Wt),W(Br))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-reset-settings-button"]],inputs:{settingsKeys:"settingsKeys",tooltip:"tooltip",label:"label",callback:"callback"},decls:3,vars:2,consts:[[3,"click","title"],[1,"fa","fa-undo"],[1,"reset-settings-button-label"]],template:function(i,r){1&i&&(I(0,"button",0),We("click",function(){return r.applyDefaultSettings()}),_e(1,"i",1),ft(2,E5e,2,1,"span",2),O()),2&i&&(ue("title",r.tooltip),H(2),yt(2,r.label?2:-1))},styles:["cc-reset-settings-button button{color:#1b9cfc;background:none;align-items:center;display:flex;gap:4px;margin:0;padding:0}cc-reset-settings-button button .fa{display:flex;align-items:center;justify-content:center;height:40px;width:40px;font-size:18px}cc-reset-settings-button button:hover .fa{border-radius:100%;background-color:#9e9e9e33}\n"],encapsulation:2})}}return t})();const M5e=()=>["dynamicSettings.margin","appSettings.invertArea","appSettings.enableFloorLabels"];let S5e=(()=>{class t{static{this.DEBOUNCE_TIME=400}constructor(e){this.store=e,this.margin$=this.store.select(GLe),this.enableFloorLabels$=this.store.select(qLe),this.isInvertedArea$=this.store.select(WLe),this.applyDebouncedMargin=ou(i=>{this.store.dispatch(E0({value:i}))},t.DEBOUNCE_TIME)}setEnableFloorLabel(e){this.store.dispatch(Qy({value:e.checked}))}toggleInvertingArea(e){this.store.dispatch(Gy({value:e.checked}))}static{this.\u0275fac=function(i){return new(i||t)(W(Wt))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-area-settings-panel"]],decls:10,vars:14,consts:[[1,"options"],["title","Amount of space between buildings in percent","label","Margin",3,"value","onChange","min","max"],[3,"change","checked"],["tooltip","Reset area metric settings to their defaults","label","Reset area metric settings",3,"settingsKeys"]],template:function(i,r){1&i&&(I(0,"div",0),_e(1,"cc-slider",1),ze(2,"async"),I(3,"mat-checkbox",2),ze(4,"async"),We("change",function(s){return r.setEnableFloorLabel(s)}),ve(5,"Enable Floor Labels"),O(),I(6,"mat-checkbox",2),ze(7,"async"),We("change",function(s){return r.toggleInvertingArea(s)}),ve(8,"Invert Area"),O(),_e(9,"cc-reset-settings-button",3),O()),2&i&&(H(),ue("value",tt(2,7,r.margin$))("onChange",r.applyDebouncedMargin)("min",1)("max",100),H(2),ue("checked",tt(4,9,r.enableFloorLabels$)),H(3),ue("checked",tt(7,11,r.isInvertedArea$)),H(3),ue("settingsKeys",Vu(13,M5e)))},dependencies:[BA,BF,_x,Gn],styles:["cc-area-settings-panel{text-align:left;max-height:300px}cc-area-settings-panel .options{display:flex;flex-direction:column}cc-area-settings-panel .options .margin-option{position:relative}cc-area-settings-panel .options .margin-option cc-reset-settings-button{position:absolute;top:-20%;left:20%}\n"],encapsulation:2})}}return t})();const T5e=Xt(Hr,t=>t.amountOfTopLabels),_te=Xt(Hr,t=>t.colorLabels),F5e=Xt(_te,t=>t.negative||t.neutral||t.positive),k5e=Xt(Hr,t=>t.showMetricLabelNodeName),I5e=Xt(Hr,t=>t.showMetricLabelNameValue),B5e=Xt(Hr,t=>t.scaling),D5e=Xt(Hr,t=>t.invertHeight),R5e=()=>["appSettings.amountOfTopLabels","appSettings.scaling.y","appSettings.invertHeight"];function L5e(t,n){if(1&t){const e=kn();I(0,"mat-checkbox",1),ze(1,"async"),We("change",function(r){return Ft(e),kt(He().setInvertHeight(r))}),ve(2," Invert Height "),O()}2&t&&ue("checked",tt(1,1,He().invertHeight$))}let P5e=(()=>{class t{static{this.DEBOUNCE_TIME=400}constructor(e){this.store=e,this.amountOfTopLabels$=this.store.select(T5e),this.isLabelsSliderDisabled$=this.store.select(F5e),this.showMetricLabelNodeName$=this.store.select(k5e),this.showMetricLabelNodeValue$=this.store.select(I5e),this.scaling$=this.store.select(B5e),this.invertHeight$=this.store.select(D5e),this.isDeltaState$=this.store.select(Am),this.applyDebouncedTopLabels=ou(i=>{this.store.dispatch(Uf({value:i}))},t.DEBOUNCE_TIME),this.applyDebouncedScalingY=ou(i=>{this.store.dispatch(x0({value:{y:i}}))},t.DEBOUNCE_TIME)}setShowMetricLabelNodeName(e){this.store.dispatch(Yy({value:e.checked}))}setShowMetricLabelNameValue(e){this.store.dispatch(Xy({value:e.checked}))}setInvertHeight(e){this.store.dispatch(qy({value:e.checked}))}static{this.\u0275fac=function(i){return new(i||t)(W(Wt))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-height-settings-panel"]],decls:16,vars:32,consts:[["label","Labels",1,"cc-height-settings-panel-row",3,"disabled","title","min","max","value","onChange"],[3,"change","checked"],["title","Height","label","Height",1,"cc-height-settings-panel-row",3,"step","min","max","value","onChange"],[3,"checked"],["tooltip","Reset height metric settings to their defaults","label","Reset height metric settings",3,"settingsKeys"]],template:function(i,r){1&i&&(_e(0,"cc-slider",0),ze(1,"async"),ze(2,"async"),ze(3,"async"),ze(4,"async"),I(5,"mat-checkbox",1),ze(6,"async"),We("change",function(s){return r.setShowMetricLabelNodeName(s)}),ve(7,"Show label node names\n"),O(),I(8,"mat-checkbox",1),ze(9,"async"),We("change",function(s){return r.setShowMetricLabelNameValue(s)}),ve(10,"Show label node metrics\n"),O(),_e(11,"cc-slider",2),ze(12,"async"),ft(13,L5e,3,3,"mat-checkbox",3),ze(14,"async"),_e(15,"cc-reset-settings-button",4)),2&i&&(ue("disabled",tt(1,15,r.isLabelsSliderDisabled$))("title",tt(2,17,r.isLabelsSliderDisabled$)?"Disabled because color labels are used":"Display the labels of the "+tt(3,19,r.amountOfTopLabels$)+" highest buildings")("min",0)("max",50)("value",tt(4,21,r.amountOfTopLabels$))("onChange",r.applyDebouncedTopLabels),H(5),ue("checked",tt(6,23,r.showMetricLabelNodeName$)),H(3),ue("checked",tt(9,25,r.showMetricLabelNodeValue$)),H(3),ue("step",1)("min",1)("max",5)("value",tt(12,27,r.scaling$).y)("onChange",r.applyDebouncedScalingY),H(2),yt(13,tt(14,29,r.isDeltaState$)?-1:13),H(2),ue("settingsKeys",Vu(31,R5e)))},dependencies:[BA,BF,_x,Gn],encapsulation:2})}}return t})(),N5e=(()=>{class t{constructor(e){this.store=e,this.heightMetric$=this.store.select(sx)}handleHeightMetricChanged(e){this.store.dispatch(Yu({value:e}))}static{this.\u0275fac=function(i){return new(i||t)(W(Wt))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-height-metric-chooser"]],decls:4,vars:6,consts:[[1,"fa","fa-arrows-v"],["title","Change height metric",3,"selectedMetricName","searchPlaceholder","handleMetricChanged"],["hoveredInformation","",3,"metricFor"]],template:function(i,r){1&i&&(_e(0,"i",0),I(1,"cc-metric-chooser",1),ze(2,"async"),_e(3,"cc-metric-chooser-value",2),O()),2&i&&(H(),ue("selectedMetricName",tt(2,4,r.heightMetric$))("searchPlaceholder","Height Metric (highest value)")("handleMetricChanged",r.handleHeightMetricChanged),H(2),ue("metricFor","heightMetric"))},dependencies:[Ax,UN,Gn],encapsulation:2})}}return t})();const MO=Xt(Hr,t=>t.isColorMetricLinkedToHeightMetric);let O5e=(()=>{class t{constructor(e){this.store=e,this.isColorMetricLinkedToHeightMetric$=this.store.select(MO)}toggleIsColorMetricLinkedToHeightMetric(){this.store.dispatch(W4())}static{this.\u0275fac=function(i){return new(i||t)(W(Wt))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-link-color-metric-to-height-metric-button"]],decls:4,vars:6,consts:[[1,"link-metrics-button",3,"click","title"],[3,"ngClass"]],template:function(i,r){1&i&&(I(0,"button",0),ze(1,"async"),We("click",function(){return r.toggleIsColorMetricLinkedToHeightMetric()}),_e(2,"i",1),ze(3,"async"),O()),2&i&&(wa("title",tt(1,2,r.isColorMetricLinkedToHeightMetric$)?"Unlink Height and Color Metric":"Link Height and Color Metric"),H(2),ue("ngClass",tt(3,4,r.isColorMetricLinkedToHeightMetric$)?"fa fa-chain-broken":"fa fa-link"))},dependencies:[Rd,Gn],styles:["cc-link-color-metric-to-height-metric-button{display:flex;justify-content:center;height:100%}cc-link-color-metric-to-height-metric-button .link-metrics-button{width:50px;height:100%;padding:0;margin:0;background-color:transparent}cc-link-color-metric-to-height-metric-button .link-metrics-button .fa{color:#444}cc-link-color-metric-to-height-metric-button .link-metrics-button:hover{background-color:#c8c8c8}\n"],encapsulation:2})}}return t})(),U5e=(()=>{class t{constructor(e){this.store=e,this.colorMetric$=this.store.select(mm),this.isColorMetricLinkedToHeightMetric$=this.store.select(MO),this.nonDisabledColor="rgba(0, 0, 0, 0.38)",this.disabledColor="rgba(68,68,68, 1)"}handleColorMetricChanged(e){this.store.dispatch(Lc({value:e}))}static{this.\u0275fac=function(i){return new(i||t)(W(Wt))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-color-metric-chooser"]],decls:7,vars:16,consts:[[1,"fa","fa-paint-brush"],[3,"selectedMetricName","searchPlaceholder","handleMetricChanged","isDisabled"],["hoveredInformation","",3,"metricFor"]],template:function(i,r){1&i&&(_e(0,"i",0),ze(1,"async"),I(2,"cc-metric-chooser",1),ze(3,"async"),ze(4,"async"),ze(5,"async"),_e(6,"cc-metric-chooser-value",2),O()),2&i&&(Fi("color",tt(1,8,r.isColorMetricLinkedToHeightMetric$)?r.nonDisabledColor:r.disabledColor),H(2),ue("selectedMetricName",tt(3,10,r.colorMetric$))("searchPlaceholder","Color Metric (highest value)")("handleMetricChanged",r.handleColorMetricChanged)("isDisabled",tt(4,12,r.isColorMetricLinkedToHeightMetric$)),oi("title",tt(5,14,r.isColorMetricLinkedToHeightMetric$)?"Currently linked to height metric":"Change color metric"),H(4),ue("metricFor","colorMetric"))},dependencies:[Ax,UN,Gn],encapsulation:2})}}return t})();const vte=Xt(Pl,t=>t.colorMode),H5e=Xt(Lb,Am,t=>({leftColor:t.positive,middleColor:t.neutral,rightColor:t.negative})),V5e=Xt(Ch,ZJ,(t,n)=>({values:t.values,min:t.minValue,max:t.maxValue,from:n.from,to:n.to}));function yte(t,n){let e;if(void 0===n)for(const i of t)null!=i&&(e=i)&&(e=i);else{let i=-1;for(let r of t)null!=(r=n(r,++i,t))&&(e=r)&&(e=r)}return e}function z5e(t){return t}function G5e(t){return"translate("+t+",0)"}function q5e(t){return"translate(0,"+t+")"}function W5e(t){return n=>+t(n)}function $5e(t,n){return n=Math.max(0,t.bandwidth()-2*n)/2,t.round()&&(n=Math.round(n)),e=>+t(e)+n}function j5e(){return!this.__axis}function PF(t,n){var e=[],i=null,r=null,o=6,s=6,a=3,l=typeof window<"u"&&window.devicePixelRatio>1?0:.5,c=1===t||4===t?-1:1,d=4===t||2===t?"x":"y",u=1===t||3===t?G5e:q5e;function h(m){var A=i??(n.ticks?n.ticks.apply(n,e):n.domain()),v=r??(n.tickFormat?n.tickFormat.apply(n,e):z5e),x=Math.max(o,0)+a,C=n.range(),w=+C[0]+l,S=+C[C.length-1]+l,M=(n.bandwidth?$5e:W5e)(n.copy(),l),B=m.selection?m.selection():m,P=B.selectAll(".domain").data([null]),$=B.selectAll(".tick").data(A,n).order(),ee=$.exit(),te=$.enter().append("g").attr("class","tick"),re=$.select("line"),ne=$.select("text");P=P.merge(P.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),$=$.merge(te),re=re.merge(te.append("line").attr("stroke","currentColor").attr(d+"2",c*o)),ne=ne.merge(te.append("text").attr("fill","currentColor").attr(d,c*x).attr("dy",1===t?"0em":3===t?"0.71em":"0.32em")),m!==B&&(P=P.transition(m),$=$.transition(m),re=re.transition(m),ne=ne.transition(m),ee=ee.transition(m).attr("opacity",1e-6).attr("transform",function(Ce){return isFinite(Ce=M(Ce))?u(Ce+l):this.getAttribute("transform")}),te.attr("opacity",1e-6).attr("transform",function(Ce){var we=this.parentNode.__axis;return u((we&&isFinite(we=we(Ce))?we:M(Ce))+l)})),ee.remove(),P.attr("d",4===t||2===t?s?"M"+c*s+","+w+"H"+l+"V"+S+"H"+c*s:"M"+l+","+w+"V"+S:s?"M"+w+","+c*s+"V"+l+"H"+S+"V"+c*s:"M"+w+","+l+"H"+S),$.attr("opacity",1).attr("transform",function(Ce){return u(M(Ce)+l)}),re.attr(d+"2",c*o),ne.attr(d,c*x).text(v),B.filter(j5e).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",2===t?"start":4===t?"end":"middle"),B.each(function(){this.__axis=M})}return h.scale=function(m){return arguments.length?(n=m,h):n},h.ticks=function(){return e=Array.from(arguments),h},h.tickArguments=function(m){return arguments.length?(e=null==m?[]:Array.from(m),h):e.slice()},h.tickValues=function(m){return arguments.length?(i=null==m?null:Array.from(m),h):i&&i.slice()},h.tickFormat=function(m){return arguments.length?(r=m,h):r},h.tickSize=function(m){return arguments.length?(o=s=+m,h):o},h.tickSizeInner=function(m){return arguments.length?(o=+m,h):o},h.tickSizeOuter=function(m){return arguments.length?(s=+m,h):s},h.tickPadding=function(m){return arguments.length?(a=+m,h):a},h.offset=function(m){return arguments.length?(l=+m,h):l},h}function Y5e(){}function TO(t){return null==t?Y5e:function(){return this.querySelector(t)}}function eNe(){return[]}function xte(t){return null==t?eNe:function(){return this.querySelectorAll(t)}}function Cte(t){return function(){return this.matches(t)}}function Ete(t){return function(n){return n.matches(t)}}var iNe=Array.prototype.find;function oNe(){return this.firstElementChild}var aNe=Array.prototype.filter;function lNe(){return Array.from(this.children)}function Mte(t){return new Array(t.length)}function NF(t,n){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=n}function mNe(t,n,e,i,r,o){for(var a,s=0,l=n.length,c=o.length;sn?1:t>=n?0:NaN}NF.prototype={constructor:NF,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,n){return this._parent.insertBefore(t,n)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};var FO="http://www.w3.org/1999/xhtml";const Ste={svg:"http://www.w3.org/2000/svg",xhtml:FO,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function OF(t){var n=t+="",e=n.indexOf(":");return e>=0&&"xmlns"!==(n=t.slice(0,e))&&(t=t.slice(e+1)),Ste.hasOwnProperty(n)?{space:Ste[n],local:t}:t}function INe(t){return function(){this.removeAttribute(t)}}function BNe(t){return function(){this.removeAttributeNS(t.space,t.local)}}function DNe(t,n){return function(){this.setAttribute(t,n)}}function RNe(t,n){return function(){this.setAttributeNS(t.space,t.local,n)}}function LNe(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttribute(t):this.setAttribute(t,e)}}function PNe(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,e)}}function Tte(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function ONe(t){return function(){this.style.removeProperty(t)}}function UNe(t,n,e){return function(){this.style.setProperty(t,n,e)}}function HNe(t,n,e){return function(){var i=n.apply(this,arguments);null==i?this.style.removeProperty(t):this.style.setProperty(t,i,e)}}function jb(t,n){return t.style.getPropertyValue(n)||Tte(t).getComputedStyle(t,null).getPropertyValue(n)}function QNe(t){return function(){delete this[t]}}function zNe(t,n){return function(){this[t]=n}}function GNe(t,n){return function(){var e=n.apply(this,arguments);null==e?delete this[t]:this[t]=e}}function Fte(t){return t.trim().split(/^|\s+/)}function kO(t){return t.classList||new kte(t)}function kte(t){this._node=t,this._names=Fte(t.getAttribute("class")||"")}function Ite(t,n){for(var e=kO(t),i=-1,r=n.length;++i=0&&(this._names.splice(n,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var Lte=[null];function Ol(t,n){this._groups=t,this._parents=n}function Pte(){return new Ol([[document.documentElement]],Lte)}Ol.prototype=Pte.prototype={constructor:Ol,select:function Z5e(t){"function"!=typeof t&&(t=TO(t));for(var n=this._groups,e=n.length,i=new Array(e),r=0;r=S&&(S=w+1);!(B=x[S])&&++S=0;)(s=i[r])&&(o&&4^s.compareDocumentPosition(o)&&o.parentNode.insertBefore(s,o),o=s);return this},sort:function xNe(t){function n(u,h){return u&&h?t(u.__data__,h.__data__):!u-!h}t||(t=CNe);for(var e=this._groups,i=e.length,r=new Array(i),o=0;o1?this.each((null==n?ONe:"function"==typeof n?HNe:UNe)(t,n,e??"")):jb(this.node(),t)},property:function qNe(t,n){return arguments.length>1?this.each((null==n?QNe:"function"==typeof n?GNe:zNe)(t,n)):this.node()[t]},classed:function KNe(t,n){var e=Fte(t+"");if(arguments.length<2){for(var i=kO(this.node()),r=-1,o=e.length;++r=0&&(e=n.slice(i+1),n=n.slice(0,i)),{type:n,name:e}})}(t+""),o=i.length;if(!(arguments.length<2)){for(a=n?wOe:yOe,r=0;r{}};function Nte(){for(var i,t=0,n=arguments.length,e={};t=0&&(i=e.slice(r+1),e=e.slice(0,r)),e&&!n.hasOwnProperty(e))throw new Error("unknown type: "+e);return{type:e,name:i}})}(t+"",e),o=-1,s=i.length;if(!(arguments.length<2)){if(null!=n&&"function"!=typeof n)throw new Error("invalid callback: "+n);for(;++o0)for(var r,o,e=new Array(r),i=0;i=0&&t._call.call(void 0,n),t=t._next;--Kb}()}finally{Kb=0,function POe(){for(var t,e,n=HF,i=1/0;n;)n._call?(i>n._time&&(i=n._time),t=n,n=n._next):(e=n._next,n._next=null,n=t?t._next=e:HF=e);Cx=t,BO(i)}(),DA=0}}function LOe(){var t=Ex.now(),n=t-VF;n>Ute&&(QF-=n,VF=t)}function BO(t){Kb||(wx&&(wx=clearTimeout(wx)),t-DA>24?(t<1/0&&(wx=setTimeout(Qte,t-Ex.now()-QF)),xx&&(xx=clearInterval(xx))):(xx||(VF=Ex.now(),xx=setInterval(LOe,Ute)),Kb=1,Hte(Qte)))}function zte(t,n,e){var i=new zF;return i.restart(r=>{i.stop(),t(r+n)},n=null==n?0:+n,e),i}zF.prototype=Vte.prototype={constructor:zF,restart:function(t,n,e){if("function"!=typeof t)throw new TypeError("callback is not a function");e=(null==e?IO():+e)+(null==n?0:+n),!this._next&&Cx!==this&&(Cx?Cx._next=this:HF=this,Cx=this),this._call=t,this._time=e,BO()},stop:function(){this._call&&(this._call=null,this._time=1/0,BO())}};var NOe=BOe("start","end","cancel","interrupt"),OOe=[],Gte=0,GF=3;function WF(t,n,e,i,r,o){var s=t.__transition;if(s){if(e in s)return}else t.__transition={};!function UOe(t,n,e){var r,i=t.__transition;function s(c){var d,u,h,m;if(1!==e.state)return l();for(d in i)if((m=i[d]).name===e.name){if(m.state===GF)return zte(s);4===m.state?(m.state=6,m.timer.stop(),m.on.call("interrupt",t,t.__data__,m.index,m.group),delete i[d]):+dGte)throw new Error("too late; already scheduled");return e}function au(t,n){var e=id(t,n);if(e.state>GF)throw new Error("too late; already running");return e}function id(t,n){var e=t.__transition;if(!e||!(e=e[n]))throw new Error("transition not found");return e}function rd(t,n){return t=+t,n=+n,function(e){return t*(1-e)+n*e}}var $F,$te=180/Math.PI,PO={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function jte(t,n,e,i,r,o){var s,a,l;return(s=Math.sqrt(t*t+n*n))&&(t/=s,n/=s),(l=t*e+n*i)&&(e-=t*l,i-=n*l),(a=Math.sqrt(e*e+i*i))&&(e/=a,i/=a,l/=a),t*i180?d+=360:d-c>180&&(c+=360),h.push({i:u.push(r(u)+"rotate(",null,i)-2,x:rd(c,d)})):d&&u.push(r(u)+"rotate("+d+i)}(c.rotate,d.rotate,u,h),function a(c,d,u,h){c!==d?h.push({i:u.push(r(u)+"skewX(",null,i)-2,x:rd(c,d)}):d&&u.push(r(u)+"skewX("+d+i)}(c.skewX,d.skewX,u,h),function l(c,d,u,h,m,A){if(c!==u||d!==h){var v=m.push(r(m)+"scale(",null,",",null,")");A.push({i:v-4,x:rd(c,u)},{i:v-2,x:rd(d,h)})}else(1!==u||1!==h)&&m.push(r(m)+"scale("+u+","+h+")")}(c.scaleX,c.scaleY,d.scaleX,d.scaleY,u,h),c=d=null,function(m){for(var x,A=-1,v=h.length;++A>8&15|n>>4&240,n>>4&15|240&n,(15&n)<<4|15&n,1):8===e?KF(n>>24&255,n>>16&255,n>>8&255,(255&n)/255):4===e?KF(n>>12&15|n>>8&240,n>>8&15|n>>4&240,n>>4&15|240&n,((15&n)<<4|15&n)/255):null):(n=XOe.exec(t))?new ol(n[1],n[2],n[3],1):(n=YOe.exec(t))?new ol(255*n[1]/100,255*n[2]/100,255*n[3]/100,1):(n=ZOe.exec(t))?KF(n[1],n[2],n[3],n[4]):(n=JOe.exec(t))?KF(255*n[1]/100,255*n[2]/100,255*n[3]/100,n[4]):(n=e8e.exec(t))?ine(n[1],n[2]/100,n[3]/100,1):(n=t8e.exec(t))?ine(n[1],n[2]/100,n[3]/100,n[4]):Yte.hasOwnProperty(t)?ene(Yte[t]):"transparent"===t?new ol(NaN,NaN,NaN,0):null}function ene(t){return new ol(t>>16&255,t>>8&255,255&t,1)}function KF(t,n,e,i){return i<=0&&(t=n=e=NaN),new ol(t,n,e,i)}function XF(t,n,e,i){return 1===arguments.length?function r8e(t){return t instanceof Mx||(t=RA(t)),t?new ol((t=t.rgb()).r,t.g,t.b,t.opacity):new ol}(t):new ol(t,n,e,i??1)}function ol(t,n,e,i){this.r=+t,this.g=+n,this.b=+e,this.opacity=+i}function tne(){return`#${PA(this.r)}${PA(this.g)}${PA(this.b)}`}function nne(){const t=YF(this.opacity);return`${1===t?"rgb(":"rgba("}${LA(this.r)}, ${LA(this.g)}, ${LA(this.b)}${1===t?")":`, ${t})`}`}function YF(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function LA(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function PA(t){return((t=LA(t))<16?"0":"")+t.toString(16)}function ine(t,n,e,i){return i<=0?t=n=e=NaN:e<=0||e>=1?t=n=NaN:n<=0&&(t=NaN),new od(t,n,e,i)}function rne(t){if(t instanceof od)return new od(t.h,t.s,t.l,t.opacity);if(t instanceof Mx||(t=RA(t)),!t)return new od;if(t instanceof od)return t;var n=(t=t.rgb()).r/255,e=t.g/255,i=t.b/255,r=Math.min(n,e,i),o=Math.max(n,e,i),s=NaN,a=o-r,l=(o+r)/2;return a?(s=n===o?(e-i)/a+6*(e0&&l<1?0:s,new od(s,a,l,t.opacity)}function od(t,n,e,i){this.h=+t,this.s=+n,this.l=+e,this.opacity=+i}function one(t){return(t=(t||0)%360)<0?t+360:t}function ZF(t){return Math.max(0,Math.min(1,t||0))}function UO(t,n,e){return 255*(t<60?n+(e-n)*t/60:t<180?e:t<240?n+(e-n)*(240-t)/60:n)}function sne(t,n,e,i,r){var o=t*t,s=o*t;return((1-3*t+3*o-s)*n+(4-6*o+3*s)*e+(1+3*t+3*o-3*s)*i+s*r)/6}OO(Mx,RA,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:Zte,formatHex:Zte,formatHex8:function n8e(){return this.rgb().formatHex8()},formatHsl:function i8e(){return rne(this).formatHsl()},formatRgb:Jte,toString:Jte}),OO(ol,XF,Xte(Mx,{brighter(t){return t=null==t?jF:Math.pow(jF,t),new ol(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=null==t?.7:Math.pow(.7,t),new ol(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new ol(LA(this.r),LA(this.g),LA(this.b),YF(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:tne,formatHex:tne,formatHex8:function o8e(){return`#${PA(this.r)}${PA(this.g)}${PA(this.b)}${PA(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:nne,toString:nne})),OO(od,function s8e(t,n,e,i){return 1===arguments.length?rne(t):new od(t,n,e,i??1)},Xte(Mx,{brighter(t){return t=null==t?jF:Math.pow(jF,t),new od(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=null==t?.7:Math.pow(.7,t),new od(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+360*(this.h<0),n=isNaN(t)||isNaN(this.s)?0:this.s,e=this.l,i=e+(e<.5?e:1-e)*n,r=2*e-i;return new ol(UO(t>=240?t-240:t+120,r,i),UO(t,r,i),UO(t<120?t+240:t-120,r,i),this.opacity)},clamp(){return new od(one(this.h),ZF(this.s),ZF(this.l),YF(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=YF(this.opacity);return`${1===t?"hsl(":"hsla("}${one(this.h)}, ${100*ZF(this.s)}%, ${100*ZF(this.l)}%${1===t?")":`, ${t})`}`}}));const HO=t=>()=>t;function lne(t,n){var e=n-t;return e?function ane(t,n){return function(e){return t+e*n}}(t,e):HO(isNaN(t)?n:t)}const JF=function t(n){var e=function d8e(t){return 1==(t=+t)?lne:function(n,e){return e-n?function c8e(t,n,e){return t=Math.pow(t,e),n=Math.pow(n,e)-t,e=1/e,function(i){return Math.pow(t+i*n,e)}}(n,e,t):HO(isNaN(n)?e:n)}}(n);function i(r,o){var s=e((r=XF(r)).r,(o=XF(o)).r),a=e(r.g,o.g),l=e(r.b,o.b),c=lne(r.opacity,o.opacity);return function(d){return r.r=s(d),r.g=a(d),r.b=l(d),r.opacity=c(d),r+""}}return i.gamma=t,i}(1);function cne(t){return function(n){var s,a,e=n.length,i=new Array(e),r=new Array(e),o=new Array(e);for(s=0;s=1?(e=1,n-1):Math.floor(e*n),r=t[i],o=t[i+1];return sne((e-i/n)*n,i>0?t[i-1]:2*r-o,r,o,ie&&(o=n.slice(e,o),a[s]?a[s]+=o:a[++s]=o),(i=i[0])===(r=r[0])?a[s]?a[s]+=r:a[++s]=r:(a[++s]=null,l.push({i:s,x:rd(i,r)})),e=QO.lastIndex;return e=0&&(n=n.slice(0,e)),!n||"start"===n})}(n)?LO:au;return function(){var s=o(this,t),a=s.on;a!==i&&(r=(i=a).copy()).on(n,e),s.on=r}}(e,t,n))},attr:function _8e(t,n){var e=OF(t),i="transform"===e?qOe:une;return this.attrTween(t,"function"==typeof n?(e.local?b8e:g8e)(e,i,NO(this,"attr."+t,n)):null==n?(e.local?m8e:f8e)(e):(e.local?A8e:p8e)(e,i,n))},attrTween:function C8e(t,n){var e="attr."+t;if(arguments.length<2)return(e=this.tween(e))&&e._value;if(null==n)return this.tween(e,null);if("function"!=typeof n)throw new Error;var i=OF(t);return this.tween(e,(i.local?w8e:x8e)(i,n))},style:function X8e(t,n,e){var i="transform"==(t+="")?GOe:une;return null==n?this.styleTween(t,function W8e(t,n){var e,i,r;return function(){var o=jb(this,t),s=(this.style.removeProperty(t),jb(this,t));return o===s?null:o===e&&s===i?r:r=n(e=o,i=s)}}(t,i)).on("end.style."+t,hne(t)):"function"==typeof n?this.styleTween(t,function j8e(t,n,e){var i,r,o;return function(){var s=jb(this,t),a=e(this),l=a+"";return null==a&&(this.style.removeProperty(t),l=a=jb(this,t)),s===l?null:s===i&&l===r?o:(r=l,o=n(i=s,a))}}(t,i,NO(this,"style."+t,n))).each(function K8e(t,n){var e,i,r,a,o="style."+n,s="end."+o;return function(){var l=au(this,t),c=l.on,d=null==l.value[o]?a||(a=hne(n)):void 0;(c!==e||r!==d)&&(i=(e=c).copy()).on(s,r=d),l.on=i}}(this._id,t)):this.styleTween(t,function $8e(t,n,e){var i,o,r=e+"";return function(){var s=jb(this,t);return s===r?null:s===i?o:o=n(i=s,e)}}(t,i,n),e).on("end.style."+t,null)},styleTween:function J8e(t,n,e){var i="style."+(t+="");if(arguments.length<2)return(i=this.tween(i))&&i._value;if(null==n)return this.tween(i,null);if("function"!=typeof n)throw new Error;return this.tween(i,function Z8e(t,n,e){var i,r;function o(){var s=n.apply(this,arguments);return s!==r&&(i=(r=s)&&function Y8e(t,n,e){return function(i){this.style.setProperty(t,n.call(this,i),e)}}(t,s,e)),i}return o._value=n,o}(t,n,e??""))},text:function n6e(t){return this.tween("text","function"==typeof t?function t6e(t){return function(){var n=t(this);this.textContent=n??""}}(NO(this,"text",t)):function e6e(t){return function(){this.textContent=t}}(null==t?"":t+""))},textTween:function o6e(t){var n="text";if(arguments.length<1)return(n=this.tween(n))&&n._value;if(null==t)return this.tween(n,null);if("function"!=typeof t)throw new Error;return this.tween(n,function r6e(t){var n,e;function i(){var r=t.apply(this,arguments);return r!==e&&(n=(e=r)&&function i6e(t){return function(n){this.textContent=t.call(this,n)}}(r)),n}return i._value=t,i}(t))},remove:function V8e(){return this.on("end.remove",function H8e(t){return function(){var n=this.parentNode;for(var e in this.__transition)if(+e!==t)return;n&&n.removeChild(this)}}(this._id))},tween:function jOe(t,n){var e=this._id;if(t+="",arguments.length<2){for(var s,i=id(this.node(),e).tween,r=0,o=i.length;r2&&i.state<5,i.state=6,i.timer.stop(),i.on.call(r?"interrupt":"cancel",t,t.__data__,i.index,i.group),delete e[s]):o=!1;o&&delete t.__transition}}(this,t)})},yx.prototype.transition=function f6e(t){var n,e;t instanceof kh?(n=t._id,t=t._name):(n=fne(),(e=u6e).time=IO(),t=null==t?null:t+"");for(var i=this._groups,r=i.length,o=0;o1?i[0]+i.slice(2):i,+t.slice(e+1)]}function Jb(t){return(t=n3(Math.abs(t)))?t[1]:NaN}["w","e"].map(Fx),["n","s"].map(Fx),["n","w","e","s","nw","ne","sw","se"].map(Fx);var _ne,C6e=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function i3(t){if(!(n=C6e.exec(t)))throw new Error("invalid format: "+t);var n;return new $O({fill:n[1],align:n[2],sign:n[3],symbol:n[4],zero:n[5],width:n[6],comma:n[7],precision:n[8]&&n[8].slice(1),trim:n[9],type:n[10]})}function $O(t){this.fill=void 0===t.fill?" ":t.fill+"",this.align=void 0===t.align?">":t.align+"",this.sign=void 0===t.sign?"-":t.sign+"",this.symbol=void 0===t.symbol?"":t.symbol+"",this.zero=!!t.zero,this.width=void 0===t.width?void 0:+t.width,this.comma=!!t.comma,this.precision=void 0===t.precision?void 0:+t.precision,this.trim=!!t.trim,this.type=void 0===t.type?"":t.type+""}function vne(t,n){var e=n3(t,n);if(!e)return t+"";var i=e[0],r=e[1];return r<0?"0."+new Array(-r).join("0")+i:i.length>r+1?i.slice(0,r+1)+"."+i.slice(r+1):i+new Array(r-i.length+2).join("0")}i3.prototype=$O.prototype,$O.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};const yne={"%":(t,n)=>(100*t).toFixed(n),b:t=>Math.round(t).toString(2),c:t=>t+"",d:function y6e(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)},e:(t,n)=>t.toExponential(n),f:(t,n)=>t.toFixed(n),g:(t,n)=>t.toPrecision(n),o:t=>Math.round(t).toString(8),p:(t,n)=>vne(100*t,n),r:vne,s:function M6e(t,n){var e=n3(t,n);if(!e)return t+"";var i=e[0],r=e[1],o=r-(_ne=3*Math.max(-8,Math.min(8,Math.floor(r/3))))+1,s=i.length;return o===s?i:o>s?i+new Array(o-s+1).join("0"):o>0?i.slice(0,o)+"."+i.slice(o):"0."+new Array(1-o).join("0")+n3(t,Math.max(0,n+o-1))[0]},X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function wne(t){return t}var r3,o3,Ene,xne=Array.prototype.map,Cne=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"];!function T6e(t){r3=function S6e(t){var n=void 0===t.grouping||void 0===t.thousands?wne:function w6e(t,n){return function(e,i){for(var r=e.length,o=[],s=0,a=t[0],l=0;r>0&&a>0&&(l+a+1>i&&(a=Math.max(1,i-l)),o.push(e.substring(r-=a,r+a)),!((l+=a+1)>i));)a=t[s=(s+1)%t.length];return o.reverse().join(n)}}(xne.call(t.grouping,Number),t.thousands+""),e=void 0===t.currency?"":t.currency[0]+"",i=void 0===t.currency?"":t.currency[1]+"",r=void 0===t.decimal?".":t.decimal+"",o=void 0===t.numerals?wne:function x6e(t){return function(n){return n.replace(/[0-9]/g,function(e){return t[+e]})}}(xne.call(t.numerals,String)),s=void 0===t.percent?"%":t.percent+"",a=void 0===t.minus?"\u2212":t.minus+"",l=void 0===t.nan?"NaN":t.nan+"";function c(u){var h=(u=i3(u)).fill,m=u.align,A=u.sign,v=u.symbol,x=u.zero,C=u.width,w=u.comma,S=u.precision,M=u.trim,B=u.type;"n"===B?(w=!0,B="g"):yne[B]||(void 0===S&&(S=12),M=!0,B="g"),(x||"0"===h&&"="===m)&&(x=!0,h="0",m="=");var P="$"===v?e:"#"===v&&/[boxX]/.test(B)?"0"+B.toLowerCase():"",$="$"===v?i:/[%p]/.test(B)?s:"",ee=yne[B],te=/[defgprs%]/.test(B);function re(ne){var j,me,X,Ce=P,we=$;if("c"===B)we=ee(ne)+we,ne="";else{var Ae=(ne=+ne)<0||1/ne<0;if(ne=isNaN(ne)?l:ee(Math.abs(ne),S),M&&(ne=function E6e(t){e:for(var r,n=t.length,e=1,i=-1;e0&&(i=0)}return i>0?t.slice(0,i)+t.slice(r+1):t}(ne)),Ae&&0==+ne&&"+"!==A&&(Ae=!1),Ce=(Ae?"("===A?A:a:"-"===A||"("===A?"":A)+Ce,we=("s"===B?Cne[8+_ne/3]:"")+we+(Ae&&"("===A?")":""),te)for(j=-1,me=ne.length;++j(X=ne.charCodeAt(j))||X>57){we=(46===X?r+ne.slice(j+1):ne.slice(j))+we,ne=ne.slice(0,j);break}}w&&!x&&(ne=n(ne,1/0));var ke=Ce.length+ne.length+we.length,Qe=ke>1)+Ce+ne+we+Qe.slice(ke);break;default:ne=Qe+Ce+ne+we}return o(ne)}return S=void 0===S?6:/[gprs]/.test(B)?Math.max(1,Math.min(21,S)):Math.max(0,Math.min(20,S)),re.toString=function(){return u+""},re}return{format:c,formatPrefix:function d(u,h){var m=c(((u=i3(u)).type="f",u)),A=3*Math.max(-8,Math.min(8,Math.floor(Jb(h)/3))),v=Math.pow(10,-A),x=Cne[8+A/3];return function(C){return m(v*C)+x}}}}(t),o3=r3.format,Ene=r3.formatPrefix}({thousands:",",grouping:[3],currency:["$",""]});const F6e=Math.sqrt(50),k6e=Math.sqrt(10),I6e=Math.sqrt(2);function s3(t,n,e){const i=(n-t)/Math.max(0,e),r=Math.floor(Math.log10(i)),o=i/Math.pow(10,r),s=o>=F6e?10:o>=k6e?5:o>=I6e?2:1;let a,l,c;return r<0?(c=Math.pow(10,-r)/s,a=Math.round(t*c),l=Math.round(n*c),a/cn&&--l,c=-c):(c=Math.pow(10,r)*s,a=Math.round(t/c),l=Math.round(n/c),a*cn&&--l),ln?1:t>=n?0:NaN}function R6e(t,n){return null==t||null==n?NaN:nt?1:n>=t?0:NaN}function Mne(t){let n,e,i;function r(a,l,c=0,d=a.length){if(c>>1;e(a[u],l)<0?c=u+1:d=u}while(ca3(t(a),l),i=(a,l)=>t(a)-l):(n=t===a3||t===R6e?t:L6e,e=t,i=t),{left:r,center:function s(a,l,c=0,d=a.length){const u=r(a,l,c,d-1);return u>c&&i(a[u-1],l)>-i(a[u],l)?u-1:u},right:function o(a,l,c=0,d=a.length){if(c>>1;e(a[u],l)<=0?c=u+1:d=u}while(c0))return[];if((t=+t)==(n=+n))return[t];const i=n=r))return[];const a=o-r+1,l=new Array(a);if(i)if(s<0)for(let c=0;c0;){if((c=jO(s,a,e))===l)return i[r]=s,i[o]=a,n(i);if(c>0)s=Math.floor(s/c)*c,a=Math.ceil(a/c)*c;else{if(!(c<0))break;s=Math.ceil(s*c)/c,a=Math.floor(a*c)/c}l=c}return t},t}function YO(){var t=function Y6e(){return function X6e(){var i,r,o,a,l,c,t=Fne,n=Fne,e=KO,s=e_;function d(){var h=Math.min(t.length,n.length);return s!==e_&&(s=function W6e(t,n){var e;return t>n&&(e=t,t=n,n=e),function(i){return Math.max(t,Math.min(n,i))}}(t[0],t[h-1])),a=h>2?j6e:$6e,l=c=null,u}function u(h){return null==h||isNaN(h=+h)?o:(l||(l=a(t.map(i),n,e)))(i(s(h)))}return u.invert=function(h){return s(r((c||(c=a(n,t.map(i),rd)))(h)))},u.domain=function(h){return arguments.length?(t=Array.from(h,q6e),d()):t.slice()},u.range=function(h){return arguments.length?(n=Array.from(h),d()):n.slice()},u.rangeRound=function(h){return n=Array.from(h),e=z6e,d()},u.clamp=function(h){return arguments.length?(s=!!h||e_,d()):s!==e_},u.interpolate=function(h){return arguments.length?(e=h,d()):e},u.unknown=function(h){return arguments.length?(o=h,u):o},function(h,m){return i=h,r=m,d()}}()(e_,e_)}();return t.copy=function(){return function K6e(t,n){return n.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown())}(t,YO())},Z6e.apply(t,arguments),iUe(t)}function kne(t){return"string"==typeof t?new Ol([[document.querySelector(t)]],[document.documentElement]):new Ol([[t]],Lte)}function t_(t){return function(){return t}}function Ine(t){this._context=t}function oUe(t){return new Ine(t)}Ine.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;default:this._context.lineTo(t,n)}}};const ZO=Math.PI,JO=2*ZO,NA=1e-6,sUe=JO-NA;function Bne(t){this._+=t[0];for(let n=1,e=t.length;n=0))throw new Error(`invalid digits: ${t}`);if(n>15)return Bne;const e=10**n;return function(i){this._+=i[0];for(let r=1,o=i.length;rNA)if(Math.abs(u*l-c*d)>NA&&o){let m=i-s,A=r-a,v=l*l+c*c,x=m*m+A*A,C=Math.sqrt(v),w=Math.sqrt(h),S=o*Math.tan((ZO-Math.acos((v+h-x)/(2*C*w)))/2),M=S/w,B=S/C;Math.abs(M-1)>NA&&this._append`L${n+M*d},${e+M*u}`,this._append`A${o},${o},0,0,${+(u*m>d*A)},${this._x1=n+B*l},${this._y1=e+B*c}`}else this._append`L${this._x1=n},${this._y1=e}`}arc(n,e,i,r,o,s){if(n=+n,e=+e,s=!!s,(i=+i)<0)throw new Error(`negative radius: ${i}`);let a=i*Math.cos(r),l=i*Math.sin(r),c=n+a,d=e+l,u=1^s,h=s?r-o:o-r;null===this._x1?this._append`M${c},${d}`:(Math.abs(this._x1-c)>NA||Math.abs(this._y1-d)>NA)&&this._append`L${c},${d}`,i&&(h<0&&(h=h%JO+JO),h>sUe?this._append`A${i},${i},0,1,${u},${n-a},${e-l}A${i},${i},0,1,${u},${this._x1=c},${this._y1=d}`:h>NA&&this._append`A${i},${i},0,${+(h>=ZO)},${u},${this._x1=n+i*Math.cos(o)},${this._y1=e+i*Math.sin(o)}`)}rect(n,e,i,r){this._append`M${this._x0=this._x1=+n},${this._y0=this._y1=+e}h${i=+i}v${+r}h${-i}Z`}toString(){return this._}}function dUe(t){return t[0]}function uUe(t){return t[1]}function c3(t,n){this._context=t,this._t=n}function fUe(t){return new c3(t,0)}function n_(t,n,e){this.k=t,this.x=n,this.y=e}c3.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,n),this._context.lineTo(t,n);else{var e=this._x*(1-this._t)+t*this._t;this._context.lineTo(e,this._y),this._context.lineTo(e,n)}}this._x=t,this._y=n}},n_.prototype={constructor:n_,scale:function(t){return 1===t?this:new n_(this.k*t,this.x,this.y)},translate:function(t,n){return 0===t&0===n?this:new n_(this.k,this.x+this.k*t,this.y+this.k*n)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}},new n_(1,0,0);let yUe=(()=>{class t{ngOnChanges(){this.values.length>0&&(this.percentileRanks=this.isAttributeDirectionInversed?this.calculateReversedPercentileRanks(this.values):this.calculatePercentileRanks(this.values),this.renderDiagram())}renderDiagram(){this.initializeDiagramDimesions(),this.clearDiagramContainer();const e=this.createSvg(),i=this.createGroup(e),r=this.createXScale(),o=this.createYScale();this.drawAxes(i,r,o),this.drawFrame(i),this.drawLabels(i),this.drawAreas(i,r),this.drawLine(i)}initializeDiagramDimesions(){this.frameWidth=296,this.frameBuffer=10,this.frameHeight=80,this.marginTop=10,this.marginBottom=10,this.marginLeft=66,this.marginRight=54,this.diagramWidth=this.frameWidth-this.marginLeft-this.marginRight,this.diagramHeight=this.frameHeight-this.marginTop-this.marginBottom,this.yLabelYOffset=-47}clearDiagramContainer(){kne("#cc-range-diagram-container").selectAll("*").remove()}createSvg(){return kne("#cc-range-diagram-container").append("svg")}createGroup(e){return e.append("g").attr("transform",`translate(${this.marginLeft}, ${this.marginTop})`)}drawFrame(e){e.append("path").attr("d",`M ${-this.frameBuffer} ${-this.frameBuffer} h${this.diagramWidth+2*this.frameBuffer} v${this.diagramHeight+2*this.frameBuffer} h${-this.diagramWidth-2*this.frameBuffer} v${-this.diagramHeight-2*this.frameBuffer}`).attr("fill","none").attr("stroke","#888").attr("stroke-width","1px")}drawAxes(e,i,r){e.append("g").attr("id","axis-x").attr("transform",`translate(0,${this.diagramHeight+this.frameBuffer})`).call(function K5e(t){return PF(3,t)}(i).ticks(5)).attr("color","#888"),e.append("g").attr("id","axis-y").attr("transform",`translate(${-this.frameBuffer}, 0)`).call(function X5e(t){return PF(4,t)}(r).ticks(5).tickFormat(function(o){return o>=1e4?`${o3(".0f")(o/1e3)}k`:o>=1e3?`${o3(".1f")(o/1e3)}k`:o.toString()})).attr("color","#888")}createXScale(){return YO().domain(function Q5e(t,n){let e,i;if(void 0===n)for(const r of t)null!=r&&(void 0===e?r>=r&&(e=i=r):(e>r&&(e=r),i=o&&(e=i=o):(e>o&&(e=o),ie.x)).range([0,this.diagramWidth])}createYScale(){const e=[0,yte(this.percentileRanks,r=>r.y)],i=[yte(this.percentileRanks,r=>r.y),0];return YO().domain(this.isAttributeDirectionInversed?i:e).range([this.diagramHeight,0])}drawLabels(e){const o=(this.diagramHeight+2*this.frameBuffer)/2-this.frameBuffer;e.append("text").attr("id","y-label").attr("class","y label").attr("transform","rotate(-90)").attr("x",-o).attr("y",this.yLabelYOffset).attr("text-anchor","middle").attr("fill","#888").text(`${this.colorMetric}`),e.append("text").attr("id","x-label").attr("class","x label").attr("text-anchor","middle").attr("x",this.diagramWidth/2).attr("y",this.diagramHeight+this.marginTop+this.marginBottom+2*this.frameBuffer).attr("fill","#888").text(`Quantiles (% of ${this.colorMetric})`)}drawAreas(e,i){const r=i(this.isAttributeDirectionInversed?this.calculateReversedPercentileFromMetricValue(this.currentRightValue):this.calculatePercentileFromMetricValue(this.currentLeftValue)),o=i(this.isAttributeDirectionInversed?this.calculateReversedPercentileFromMetricValue(this.currentLeftValue):this.calculatePercentileFromMetricValue(this.currentRightValue));e.append("rect").attr("class","left-area").attr("x",0).attr("y",-this.frameBuffer).attr("width",r).attr("height",this.diagramHeight+2*this.frameBuffer).style("fill",this.isAttributeDirectionInversed?this.rightColor:this.leftColor).style("fill-opacity","0.3"),e.append("rect").attr("class","middle-area").attr("x",r).attr("y",-this.frameBuffer).attr("width",o-r).attr("height",this.diagramHeight+2*this.frameBuffer).style("fill",this.middleColor).style("fill-opacity","0.3"),e.append("rect").attr("class","right-area").attr("x",o).attr("y",-this.frameBuffer).attr("width",this.diagramWidth-o).attr("height",this.diagramHeight+2*this.frameBuffer).style("fill",this.isAttributeDirectionInversed?this.leftColor:this.rightColor).style("fill-opacity","0.3")}drawLine(e){e.append("path").attr("id","diagram-path").datum(this.percentileRanks).attr("fill","none").attr("stroke","#888").attr("stroke-width",1).attr("d",function hUe(t,n){var e=t_(!0),i=null,r=oUe,o=null,s=function cUe(t){let n=3;return t.digits=function(e){if(!arguments.length)return n;if(null==e)n=null;else{const i=Math.floor(e);if(!(i>=0))throw new RangeError(`invalid digits: ${e}`);n=i}return t},()=>new l3(n)}(a);function a(l){var c,u,m,d=(l=function rUe(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}(l)).length,h=!1;for(null==i&&(o=r(m=s())),c=0;c<=d;++c)!(cthis.createXScale()(i.x)).y(i=>this.createYScale()(i.y)))}calculatePercentileRanks(e){const i=[...new Set(e)].sort((s,a)=>s-a),r=e.length,o=[{x:0,y:i[0]}];for(const s of i){const l=e.filter(c=>c<=s).length/r*100;o.push({x:l,y:s})}return o}calculateReversedPercentileRanks(e){const i=[...new Set(e)].sort((s,a)=>s-a).reverse(),r=e.length,o=[{x:0,y:i[0]}];for(const s of i){const l=e.filter(c=>c>=s).length/r*100;o.push({x:l,y:s})}return o.sort((s,a)=>s.x-a.x)}calculatePercentileFromMetricValue(e){if(e===this.minValue)return 0;if(e===this.maxValue)return 100;let i=null;for(const r of this.percentileRanks){if(!(r.ye))return i;i=r.x}}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=At({type:t,selectors:[["cc-metric-color-range-diagram"]],inputs:{minValue:"minValue",maxValue:"maxValue",colorMetric:"colorMetric",values:"values",currentLeftValue:"currentLeftValue",currentRightValue:"currentRightValue",leftColor:"leftColor",middleColor:"middleColor",rightColor:"rightColor",isAttributeDirectionInversed:"isAttributeDirectionInversed"},features:[cr],decls:1,vars:0,consts:[["id","cc-range-diagram-container",1,"cc-range-diagram-container"]],template:function(i,r){1&i&&_e(0,"div",0)},styles:["#slider-label-left,#slider-label-right,#x-label,#y-label,#axis-x,#axis-y{font-size:11px}#slider-label-left[text-anchor].end,#slider-label-right[text-anchor].end,#x-label[text-anchor].end,#y-label[text-anchor].end,#axis-x[text-anchor].end,#axis-y[text-anchor].end{text-anchor:end}#slider-label-left[text-anchor].start,#slider-label-right[text-anchor].start,#x-label[text-anchor].start,#y-label[text-anchor].start,#axis-x[text-anchor].start,#axis-y[text-anchor].start{text-anchor:start}#slider-label-left{font-size:11px;fill:#888;text-anchor:end;dominant-baseline:hanging}#slider-label-right{font-size:11px;fill:#888;text-anchor:start;dominant-baseline:hanging}.cc-range-diagram-container{display:flex;justify-content:center;align-items:center}.cc-range-diagram-container svg{width:100%;height:130px}\n"],encapsulation:2})}}return t})();const xUe=({thumbX:t,minValue:n,maxValue:e,sliderWidth:i})=>Math.round(n+t*((e-n)/i)),Rne=({newThumbScreenX:t,sliderBoundingClientRectX:n,thumbRadius:e,sliderWidth:i,minValue:r,maxValue:o})=>{const s=t-n+e;return{updatedThumbX:s,upcomingValue:xUe({thumbX:s,minValue:r,maxValue:o,sliderWidth:i})}},MUe=["minLabel"],SUe=["maxLabel"],TUe=["currentLeftLabel"],FUe=["currentRightLabel"],kUe=["combinedCurrentLeftRightLabel"];let IUe=(()=>{class t{constructor(e){this.changeDetector=e,this.hideMinLabel=!1,this.hideMaxLabel=!1,this.doLeftRightLabelOverlap=!1}ngAfterViewChecked(){this.updateLabelDisplays()}updateLabelDisplays(){const e=this.minLabel.nativeElement.getBoundingClientRect().width,i=this.currentLeftLabel.nativeElement.getBoundingClientRect().width;this.currentLeftLabelLeftPosition=this.sliderRangePosition.leftEnd-i/2;const r=this.currentRightLabel.nativeElement.getBoundingClientRect().width,o=this.sliderWidth-this.maxLabel.nativeElement.getBoundingClientRect().width;this.currentRightLabelLeftPosition=this.sliderRangePosition.rightStart-r/2,this.hideMinLabel=this.currentLeftLabelLeftPosition<=e+4,this.hideMaxLabel=this.currentRightLabelLeftPosition+r+4>=o;const s=this.currentLeftLabelLeftPosition+i;this.doLeftRightLabelOverlap=s+4>=this.currentRightLabelLeftPosition;const a=(s+this.currentRightLabelLeftPosition)/2,l=this.combinedCurrentLeftRightLabel.nativeElement.getBoundingClientRect().width;this.combinedCurrentLeftRightLabelLeftPosition=a-l/2,this.changeDetector.detectChanges()}static{this.\u0275fac=function(i){return new(i||t)(W(Ao))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-range-slider-labels"]],viewQuery:function(i,r){if(1&i&&(ti(MUe,5),ti(SUe,5),ti(TUe,5),ti(FUe,5),ti(kUe,5)),2&i){let o;mn(o=pn())&&(r.minLabel=o.first),mn(o=pn())&&(r.maxLabel=o.first),mn(o=pn())&&(r.currentLeftLabel=o.first),mn(o=pn())&&(r.currentRightLabel=o.first),mn(o=pn())&&(r.combinedCurrentLeftRightLabel=o.first)}},inputs:{minValue:"minValue",maxValue:"maxValue",leftValueLabel:"leftValueLabel",rightValueLabel:"rightValueLabel",sliderRangePosition:"sliderRangePosition",sliderWidth:"sliderWidth"},decls:15,vars:26,consts:[["minLabel",""],["currentLeftLabel",""],["currentRightLabel",""],["combinedCurrentLeftRightLabel",""],["maxLabel",""],[1,"cc-range-slider-label"]],template:function(i,r){1&i&&(I(0,"div",5,0),ve(2),O(),I(3,"div",5,1),ve(5),O(),I(6,"div",5,2),ve(8),O(),I(9,"div",5,3),ve(11),O(),I(12,"div",5,4),ve(14),O()),2&i&&(Fi("left",0,"px")("visibility",r.hideMinLabel?"hidden":"visible"),H(2),an(" ",r.minValue,"\n"),H(),Fi("left",r.currentLeftLabelLeftPosition,"px")("visibility",r.doLeftRightLabelOverlap?"hidden":"visible"),H(2),an(" ",r.leftValueLabel,"\n"),H(),Fi("left",r.currentRightLabelLeftPosition,"px")("visibility",r.doLeftRightLabelOverlap?"hidden":"visible"),H(2),an(" ",r.rightValueLabel,"\n"),H(),Fi("left",r.combinedCurrentLeftRightLabelLeftPosition,"px")("visibility",r.doLeftRightLabelOverlap?"visible":"hidden"),H(2),Hu(" ",r.leftValueLabel," - ",r.rightValueLabel,"\n"),H(),Fi("right",0,"px")("visibility",r.hideMaxLabel?"hidden":"visible"),H(2),an(" ",r.maxValue,"\n"))},styles:["cc-range-slider-labels .cc-range-slider-label{position:absolute;top:0;line-height:24px;font-size:14px;color:#aeaeae}\n"],encapsulation:2,changeDetection:0})}}return t})();const BUe=["rangeSliderContainer"],DUe=["leftThumb"],RUe=["rightThumb"];let LUe=(()=>{class t{constructor(){this.sliderWidth=150,this.sliderRangePosition={leftEnd:0,rightStart:0},this.thumbRadius=7,this.currentlySliding=void 0,this.resetCurrentlySlidingOnNextMouseUp=e=>{const i=()=>{this.currentlySliding=void 0,document.removeEventListener("mouseup",i),document.removeEventListener("mousemove",e)};document.addEventListener("mouseup",i)},this.handleLeftThumbMoved=e=>{const i=(({deltaX:t,thumbScreenX:n,thumbRadius:e,otherThumbScreenX:i,sliderBoundingClientRectX:r,sliderWidth:o,minValue:s,maxValue:a})=>{let l=n+t;return li&&(l=i),Rne({newThumbScreenX:l,sliderBoundingClientRectX:r,thumbRadius:e,sliderWidth:o,minValue:s,maxValue:a})})({deltaX:e.movementX,thumbScreenX:this.leftThumb.nativeElement.getBoundingClientRect().x,thumbRadius:this.thumbRadius,otherThumbScreenX:this.rightThumb.nativeElement.getBoundingClientRect().x,sliderBoundingClientRectX:this.sliderContainer.nativeElement.getBoundingClientRect().x,sliderWidth:this.sliderWidth,minValue:this.minValue,maxValue:this.maxValue});this.sliderRangePosition={leftEnd:i.updatedThumbX,rightStart:this.sliderRangePosition.rightStart},this.upcomingLeftValue=i.upcomingValue,this.handleValueChange({newLeftValue:i.upcomingValue})},this.handleRightThumbMoved=e=>{const i=(({deltaX:t,thumbScreenX:n,thumbRadius:e,otherThumbScreenX:i,sliderBoundingClientRectX:r,sliderWidth:o,minValue:s,maxValue:a})=>{let l=n+t;return l>r+o-e&&(l=r+o-e),l{const o=n-t;return o<=0?{leftEnd:r,rightStart:r}:{leftEnd:(e-t)/o*r,rightStart:(i-t)/o*r}})({minValue:this.minValue,maxValue:this.maxValue,currentLeftValue:this.currentLeftValue,currentRightValue:this.currentRightValue,sliderWidth:this.sliderWidth}),e.currentLeftValue&&(this.upcomingLeftValue=this.currentLeftValue),e.currentRightValue&&(this.upcomingRightValue=this.currentRightValue))}setCurrentlySliding(e){switch(this.currentlySliding=e,this.currentlySliding){case"leftThumb":document.addEventListener("mousemove",this.handleLeftThumbMoved),this.rightThumb.nativeElement.style.zIndex="0",this.leftThumb.nativeElement.style.zIndex="1",this.resetCurrentlySlidingOnNextMouseUp(this.handleLeftThumbMoved);break;case"rightThumb":document.addEventListener("mousemove",this.handleRightThumbMoved),this.leftThumb.nativeElement.style.zIndex="0",this.rightThumb.nativeElement.style.zIndex="1",this.resetCurrentlySlidingOnNextMouseUp(this.handleRightThumbMoved)}}handleCurrentLeftInputChanged(e){const i=HN(e,this.minValue,this.currentRightValue);i!==this.currentLeftValue&&this.handleValueChange({newLeftValue:i})}handleCurrentRightInputChanged(e){const i=HN(e,this.currentLeftValue,this.maxValue);i!==this.currentRightValue&&this.handleValueChange({newRightValue:i})}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=At({type:t,selectors:[["cc-metric-color-range-slider"]],viewQuery:function(i,r){if(1&i&&(ti(BUe,5),ti(DUe,5),ti(RUe,5)),2&i){let o;mn(o=pn())&&(r.sliderContainer=o.first),mn(o=pn())&&(r.leftThumb=o.first),mn(o=pn())&&(r.rightThumb=o.first)}},inputs:{minValue:"minValue",maxValue:"maxValue",currentLeftValue:"currentLeftValue",currentRightValue:"currentRightValue",leftColor:"leftColor",middleColor:"middleColor",rightColor:"rightColor",handleValueChange:"handleValueChange",sliderWidth:"sliderWidth",isAttributeDirectionInversed:"isAttributeDirectionInversed"},features:[cr],decls:15,vars:28,consts:[["rangeSliderContainer",""],["leftThumb",""],["rightThumb",""],[1,"cc-range-slider-container"],["appearance","outline"],["matInput","","type","number",3,"input","value","min","max"],[1,"cc-range-slider-slider"],[1,"cc-range-slider-bar"],[1,"cc-range-slider-slider-thumb",3,"mousedown"],[3,"minValue","maxValue","leftValueLabel","rightValueLabel","sliderRangePosition","sliderWidth"]],template:function(i,r){if(1&i){const o=kn();I(0,"div",3)(1,"mat-form-field",4)(2,"input",5),We("input",function(a){return Ft(o),kt(r.handleCurrentLeftInputChanged(a))}),O()(),I(3,"div",6,0),_e(5,"span",7)(6,"span",7)(7,"span",7),I(8,"div",8,1),We("mousedown",function(){return Ft(o),kt(r.setCurrentlySliding("leftThumb"))}),O(),I(10,"div",8,2),We("mousedown",function(){return Ft(o),kt(r.setCurrentlySliding("rightThumb"))}),O(),_e(12,"cc-range-slider-labels",9),O(),I(13,"mat-form-field",4)(14,"input",5),We("input",function(a){return Ft(o),kt(r.handleCurrentRightInputChanged(a))}),O()()()}2&i&&(H(2),ue("value",r.currentLeftValue)("min",r.minValue)("max",r.upcomingRightValue),H(3),Fi("width",r.sliderRangePosition.leftEnd,"px")("border-bottom-color",r.leftColor),H(),Fi("width",r.sliderRangePosition.rightStart-r.sliderRangePosition.leftEnd,"px")("border-bottom-color",r.middleColor),H(),Fi("width",r.sliderWidth-r.sliderRangePosition.rightStart,"px")("border-bottom-color",r.rightColor),H(),Fi("left",r.sliderRangePosition.leftEnd-r.thumbRadius,"px"),H(2),Fi("left",r.sliderRangePosition.rightStart-r.thumbRadius,"px"),H(2),ue("minValue",r.minValue)("maxValue",r.maxValue)("leftValueLabel",r.upcomingLeftValue)("rightValueLabel",r.upcomingRightValue)("sliderRangePosition",r.sliderRangePosition)("sliderWidth",r.sliderWidth),H(2),ue("value",r.currentRightValue)("min",r.upcomingLeftValue)("max",r.maxValue))},dependencies:[nd,_m,IUe],styles:["cc-metric-color-range-slider .cc-range-slider-container{display:flex;align-items:center;margin:0 10px}cc-metric-color-range-slider .cc-range-slider-container mat-form-field{height:32px}cc-metric-color-range-slider .cc-range-slider-container mat-form-field .mat-mdc-text-field-wrapper{padding:0 4px}cc-metric-color-range-slider .cc-range-slider-container mat-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex{align-self:center}cc-metric-color-range-slider .cc-range-slider-container mat-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-infix{padding:0;min-height:28px}cc-metric-color-range-slider .cc-range-slider-container mat-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-infix .mat-mdc-input-element{min-height:inherit}cc-metric-color-range-slider .cc-range-slider-container mat-form-field .mat-mdc-form-field-subscript-wrapper.mat-mdc-form-field-bottom-align{display:none}cc-metric-color-range-slider .cc-range-slider-container .cc-range-slider-slider{flex:1;margin:0 8px;position:relative;line-height:48px}cc-metric-color-range-slider .cc-range-slider-container .cc-range-slider-slider .cc-range-slider-bar{display:inline-block;border-bottom-width:4px;border-bottom-style:solid}cc-metric-color-range-slider .cc-range-slider-container .cc-range-slider-slider .cc-range-slider-slider-thumb{cursor:pointer;position:absolute;top:20px;border-radius:100%;border:7px solid #1b9cfc}\n"],encapsulation:2})}}return t})();const PUe=()=>["appSettings.mapColors.positiveDelta","appSettings.mapColors.negativeDelta","appSettings.mapColors.selected"],NUe=()=>["appSettings.mapColors.positive","appSettings.mapColors.negative","appSettings.mapColors.neutral","appSettings.mapColors.selected"],OUe=()=>["appSettings.mapColors.positiveDelta","appSettings.mapColors.negativeDelta"];function UUe(t,n){if(1&t){const e=kn();I(0,"div"),_e(1,"cc-metric-color-range-slider",4),ze(2,"async"),ze(3,"async"),ze(4,"async"),ze(5,"async"),ze(6,"async"),ze(7,"async"),ze(8,"async"),ze(9,"async"),_e(10,"cc-reset-settings-button",5)(11,"cc-metric-color-range-diagram",6),ze(12,"async"),ze(13,"async"),ze(14,"async"),ze(15,"async"),ze(16,"async"),ze(17,"async"),ze(18,"async"),ze(19,"async"),ze(20,"async"),ze(21,"async"),I(22,"mat-form-field",7)(23,"mat-label"),ve(24,"Gradient Mode"),O(),I(25,"mat-select",8),ze(26,"async"),We("selectionChange",function(r){return Ft(e),kt(He().handleColorModeChange(r.value))}),I(27,"div",9),We("mousedown",function(r){return Ft(e),kt(r.stopPropagation())}),I(28,"mat-option",10),ve(29,"Absolute"),O(),I(30,"mat-option",11),ve(31,"Focused Gradient"),O(),I(32,"mat-option",12),ve(33,"Weighted Gradient"),O(),I(34,"mat-option",13),ve(35,"True Gradient"),O()()()()()}if(2&t){const e=He();H(),ue("minValue",tt(2,22,e.sliderValues$).min)("maxValue",tt(3,24,e.sliderValues$).max)("currentLeftValue",tt(4,26,e.sliderValues$).from)("currentRightValue",tt(5,28,e.sliderValues$).to)("leftColor",tt(6,30,e.sliderColors$).leftColor)("middleColor",tt(7,32,e.sliderColors$).middleColor)("rightColor",tt(8,34,e.sliderColors$).rightColor)("handleValueChange",e.handleValueChange)("isAttributeDirectionInversed",tt(9,36,e.isAttributeDescriptionInversed$)),H(9),ue("settingsKeys",Vu(60,OUe))("callback",e.resetColorRange),H(),ue("minValue",tt(12,38,e.sliderValues$).min)("maxValue",tt(13,40,e.sliderValues$).max)("currentLeftValue",tt(14,42,e.sliderValues$).from)("currentRightValue",tt(15,44,e.sliderValues$).to)("leftColor",tt(16,46,e.sliderColors$).leftColor)("middleColor",tt(17,48,e.sliderColors$).middleColor)("rightColor",tt(18,50,e.sliderColors$).rightColor)("colorMetric",tt(19,52,e.colorMetric$))("values",tt(20,54,e.sliderValues$).values)("isAttributeDirectionInversed",tt(21,56,e.isAttributeDescriptionInversed$)),H(14),ue("value",tt(26,58,e.colorMode$))}}function HUe(t,n){if(1&t){const e=kn();I(0,"div",1),_e(1,"cc-color-picker-for-map-color",0),I(2,"mat-checkbox",14),ze(3,"async"),We("change",function(r){return Ft(e),kt(He().toggleColorLabel(r,"positive"))}),ve(4,"Show labels"),O()(),I(5,"div",1),_e(6,"cc-color-picker-for-map-color",0),I(7,"mat-checkbox",14),ze(8,"async"),We("change",function(r){return Ft(e),kt(He().toggleColorLabel(r,"neutral"))}),ve(9,"Show labels"),O()(),I(10,"div",1),_e(11,"cc-color-picker-for-map-color",0),I(12,"mat-checkbox",14),ze(13,"async"),We("change",function(r){return Ft(e),kt(He().toggleColorLabel(r,"negative"))}),ve(14,"Show labels"),O()()}if(2&t){const e=He();H(),ue("mapColorFor","positive"),H(),ue("checked",tt(3,6,e.colorLabels$).positive),H(4),ue("mapColorFor","neutral"),H(),ue("checked",tt(8,8,e.colorLabels$).neutral),H(4),ue("mapColorFor","negative"),H(),ue("checked",tt(13,10,e.colorLabels$).negative)}}function VUe(t,n){1&t&&_e(0,"cc-color-picker-for-map-color",0)(1,"cc-color-picker-for-map-color",0),2&t&&(ue("mapColorFor","positiveDelta"),H(),ue("mapColorFor","negativeDelta"))}function QUe(t,n){if(1&t){const e=kn();I(0,"mat-checkbox",14),We("change",function(r){return Ft(e),kt(He().handleIsColorRangeInvertedChange(r.checked))}),ve(1,"Invert Colors"),O()}2&t&&ue("checked",He().isColorRangeInverted)}function zUe(t,n){if(1&t){const e=kn();I(0,"mat-checkbox",14),We("change",function(r){return Ft(e),kt(He().handleAreDeltaColorsInverted(r.checked))}),ve(1,"Invert Colors"),O()}2&t&&ue("checked",He().areDeltaColorsInverted)}let GUe=(()=>{class t{constructor(e,i){this.store=e,this.state=i,this.colorMode$=this.store.select(vte),this.colorLabels$=this.store.select(_te),this.colorMetric$=this.store.select(mm),this.isDeltaState$=this.store.select(Am),this.sliderValues$=this.store.select(V5e),this.sliderColors$=this.store.select(H5e),this.isAttributeDescriptionInversed$=this.checkIsAttributeDirectionReversed(),this.isColorRangeInverted=!1,this.areDeltaColorsInverted=!1,this.newLeftValue=null,this.newRightValue=null,this.handleValueChange=({newLeftValue:r,newRightValue:o})=>{this.newLeftValue=r??this.newLeftValue,this.newRightValue=o??this.newRightValue,this.updateColorRangeDebounced()},this.updateColorRangeDebounced=ou(()=>{const r={};null!==this.newLeftValue&&(r.from=this.newLeftValue),null!==this.newRightValue&&(r.to=this.newRightValue),this.store.dispatch(Pd({value:r})),this.newLeftValue=null,this.newRightValue=null},400),this.resetInvertColorCheckboxes=()=>{this.isColorRangeInverted=!1,this.areDeltaColorsInverted=!1},this.resetColorRange=()=>{const r=Ch(this.state.getValue());this.store.dispatch(Pd({value:wF(r)}))}}checkIsAttributeDirectionReversed(){return this.colorMetric$.pipe(Et(e=>1===this.state.getValue().fileSettings.attributeDescriptors[e]?.direction))}handleColorModeChange(e){this.store.dispatch(C0({value:e}))}toggleColorLabel(e,i){this.store.dispatch(Vy({value:{[i]:e.checked}}))}handleIsColorRangeInvertedChange(e){this.isColorRangeInverted=e,this.store.dispatch(pM())}handleAreDeltaColorsInverted(e){this.areDeltaColorsInverted=e,this.store.dispatch(AM())}static{this.\u0275fac=function(i){return new(i||t)(W(Wt),W(Br))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-color-settings-panel"]],decls:13,vars:18,consts:[[3,"mapColorFor"],[1,"color-row"],["tooltip","Reset color values to default","label","Reset colors",3,"settingsKeys","callback"],[3,"checked"],[3,"minValue","maxValue","currentLeftValue","currentRightValue","leftColor","middleColor","rightColor","handleValueChange","isAttributeDirectionInversed"],["tooltip","Reset slider thresholds to default","label","Reset thresholds",3,"settingsKeys","callback"],[3,"minValue","maxValue","currentLeftValue","currentRightValue","leftColor","middleColor","rightColor","colorMetric","values","isAttributeDirectionInversed"],["appearance","outline",1,"gradient-mode-selector"],[3,"selectionChange","value"],[3,"mousedown"],["value","absolute"],["value","focusedGradient"],["value","weightedGradient"],["value","trueGradient"],[3,"change","checked"]],template:function(i,r){1&i&&(ft(0,UUe,36,61,"div"),ze(1,"async"),ze(2,"async"),ft(3,HUe,15,12),ze(4,"async"),ft(5,VUe,2,2),_e(6,"cc-color-picker-for-map-color",0),I(7,"div",1),_e(8,"cc-reset-settings-button",2),ze(9,"async"),ft(10,QUe,2,1,"mat-checkbox",3),ze(11,"async"),ft(12,zUe,2,1),O()),2&i&&(yt(0,tt(1,6,r.isDeltaState$)||"unary"===tt(2,8,r.colorMetric$)?-1:0),H(3),yt(3,tt(4,10,r.isDeltaState$)?5:3),H(3),ue("mapColorFor","selected"),H(2),ue("settingsKeys",tt(9,12,r.isDeltaState$)?Vu(16,PUe):Vu(17,NUe))("callback",r.resetInvertColorCheckboxes),H(2),yt(10,tt(11,14,r.isDeltaState$)?12:10))},dependencies:[gN,yUe,LUe,_x,nd,td,vm,zd,BA,Gn],styles:["cc-color-settings-panel.cc-metric-settings-panel .gradient-mode-selector{height:40px;margin:5px 10px;width:243px}cc-color-settings-panel.cc-metric-settings-panel .gradient-mode-selector .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-infix{padding:10px;min-height:28px}cc-color-settings-panel.cc-metric-settings-panel .gradient-mode-selector .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-infix .mat-mdc-input-element{min-height:inherit}cc-color-settings-panel.cc-metric-settings-panel .gradient-mode-selector .mat-mdc-form-field-subscript-wrapper.mat-mdc-form-field-bottom-align{display:none}cc-color-settings-panel.cc-metric-settings-panel .color-row{display:flex;align-items:center}cc-color-picker-for-map-color{width:50%}cc-reset-settings-button{width:50%}\n"],encapsulation:2})}}return t})();const t8=Xt(Hr,t=>t.isEdgeMetricVisible);function qUe(t,n){1&t&&(I(0,"div",4)(1,"div",5),_e(2,"cc-metric-chooser-type",6),ve(3),O()()),2&t&&(H(2),ue("attributeType","edges")("metricFor","edgeMetric"),H(),an(" ",n," "))}function WUe(t,n){if(1&t&&(I(0,"cc-metric-chooser",2),ze(1,"async"),I(2,"div",3),ft(3,qUe,4,3,"div",4),ze(4,"async"),O()()),2&t){let e;const i=He();xn("is-edge-metric-disabled",!tt(1,7,i.isEdgeMetricVisible$)),ue("selectedMetricName",n)("searchPlaceholder","Edge Metric (highest value)")("handleMetricChanged",i.handleEdgeMetricChanged)("type","edge"),H(3),yt(3,(e=tt(4,9,i.edgeValue$))?3:-1,e)}}let $Ue=(()=>{class t{constructor(e,i){this.store=e,this.nodeSelectionService=i,this.edgeValue$=this.createEdgeValue(),this.edgeMetric$=this.store.select(Mh),this.isEdgeMetricVisible$=this.store.select(t8),this.formatHoveredEdgeValue=(r,o)=>{if(!o)return null;const s=o.edgeAttributes[r];return s?`${this.formatValue(s.incoming)} / ${this.formatValue(s.outgoing)}`:null},this.formatValue=r=>"number"==typeof r?r.toLocaleString():"-"}handleEdgeMetricChanged(e){this.store.dispatch(Xu({value:e}))}createEdgeValue(){return nh([this.store.select(Mh),this.nodeSelectionService.createNodeObservable()]).pipe(Et(([e,i])=>this.formatHoveredEdgeValue(e,i)))}static{this.\u0275fac=function(i){return new(i||t)(W(Wt),W(FF))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-edge-metric-chooser"]],decls:3,vars:3,consts:[[1,"fa","fa-exchange"],["title","Change edge metric",3,"is-edge-metric-disabled","selectedMetricName","searchPlaceholder","handleMetricChanged","type"],["title","Change edge metric",3,"selectedMetricName","searchPlaceholder","handleMetricChanged","type"],["hoveredInformation","",1,"cc-metric-chooser-container"],[1,"metric-value"],[1,"rounded-box"],[3,"attributeType","metricFor"]],template:function(i,r){if(1&i&&(_e(0,"i",0),ft(1,WUe,5,11,"cc-metric-chooser",1),ze(2,"async")),2&i){let o;H(),yt(1,(o=tt(2,1,r.edgeMetric$))?1:-1,o)}},dependencies:[Ax,Zee,Gn],styles:["cc-edge-metric-chooser cc-metric-chooser.is-edge-metric-disabled .mat-mdc-select-value{color:gray}\n"],encapsulation:2})}}return t})();const jUe=Xt(Hr,t=>t.edgeHeight),KUe=Xt(Hr,t=>t.showOnlyBuildingsWithEdges),XUe=Xt(ks,Mh,(t,n)=>t.nodeEdgeMetricsMap.get(n)?.size??0);let YUe=(()=>{class t{constructor(e){this.store=e}ngOnInit(){this.isEdgeMetricVisible$=this.store.select(t8)}toggleEdgeMetric(){this.store.dispatch(fM())}static{this.\u0275fac=function(i){return new(i||t)(W(Wt))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-edge-metric-toggle"]],decls:3,vars:3,consts:[[1,"edgeMetricCheckbox",3,"change","checked"]],template:function(i,r){1&i&&(I(0,"mat-checkbox",0),ze(1,"async"),We("change",function(){return r.toggleEdgeMetric()}),ve(2," Disable edge metric\n"),O()),2&i&&ue("checked",!tt(1,1,r.isEdgeMetricVisible$))},dependencies:[BA,Gn],encapsulation:2})}}return t})();const ZUe=()=>["appSettings.showOnlyBuildingsWithEdges","appSettings.amountOfEdgePreviews","appSettings.edgeHeight"];let JUe=(()=>{class t{constructor(e){this.store=e,this.amountOfBuildingsWithSelectedEdgeMetric$=this.store.select(XUe),this.edgePreviewLabel$=this.amountOfBuildingsWithSelectedEdgeMetric$.pipe(Et(i=>`Preview the edges of up to ${i} buildings with the highest amount of incoming and outgoing edges`)),this.amountOfEdgePreviews$=this.store.select(Xee),this.edgeHeight$=this.store.select(jUe),this.showOnlyBuildingsWithEdges$=this.store.select(KUe),this.applySettingsAmountOfEdgePreviews=i=>{this.store.dispatch(hx({value:i}))},this.applySettingsEdgeHeight=i=>{this.store.dispatch(w0({value:i}))}}applyShowOnlyBuildingsWithEdges(e){this.store.dispatch(Zy({value:e.checked}))}static{this.\u0275fac=function(i){return new(i||t)(W(Wt))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-edge-settings-panel"]],decls:17,vars:35,consts:[[3,"title","label","value","onChange","min","max","disabled"],["title","Adjust the curve height",3,"label","value","onChange","min","max","disabled"],[1,"wrapper"],[3,"mapColorFor"],[3,"change","checked","disabled"],["tooltip","Reset edge metric settings to their defaults","label","Reset edge metric settings",3,"settingsKeys"]],template:function(i,r){1&i&&(_e(0,"cc-slider",0),ze(1,"async"),ze(2,"async"),ze(3,"async"),ze(4,"async"),_e(5,"cc-slider",1),ze(6,"async"),ze(7,"async"),I(8,"div",2),_e(9,"cc-color-picker-for-map-color",3)(10,"cc-color-picker-for-map-color",3),O(),I(11,"mat-checkbox",4),ze(12,"async"),ze(13,"async"),We("change",function(s){return r.applyShowOnlyBuildingsWithEdges(s)}),ve(14," Only show nodes with edges\n"),O(),_e(15,"cc-edge-metric-toggle")(16,"cc-reset-settings-button",5)),2&i&&(ue("title",tt(1,18,r.edgePreviewLabel$))("label","Preview")("value",tt(2,20,r.amountOfEdgePreviews$))("onChange",r.applySettingsAmountOfEdgePreviews)("min",0)("max",tt(3,22,r.amountOfBuildingsWithSelectedEdgeMetric$))("disabled",0===tt(4,24,r.amountOfBuildingsWithSelectedEdgeMetric$)),H(5),ue("label","Height")("value",tt(6,26,r.edgeHeight$))("onChange",r.applySettingsEdgeHeight)("min",1)("max",9)("disabled",0===tt(7,28,r.amountOfBuildingsWithSelectedEdgeMetric$)),H(4),ue("mapColorFor","outgoingEdge"),H(),ue("mapColorFor","incomingEdge"),H(),ue("checked",tt(12,30,r.showOnlyBuildingsWithEdges$))("disabled",0===tt(13,32,r.amountOfBuildingsWithSelectedEdgeMetric$)),H(5),ue("settingsKeys",Vu(34,ZUe)))},dependencies:[_x,BF,BA,gN,YUe,Gn],encapsulation:2})}}return t})();function e7e(t,n){if(1&t){const e=kn();I(0,"mat-card",18),_e(1,"cc-link-color-metric-to-height-metric-button"),O(),I(2,"mat-card",19)(3,"div",1)(4,"div",20),_e(5,"cc-color-metric-chooser"),O(),I(6,"span",21),We("click",function(){return Ft(e),kt(He().updatePanelSelection("COLOR_PANEL_OPEN"))}),ve(7," Color Metric Options "),_e(8,"i",9),O()(),_e(9,"cc-color-settings-panel",10),O()}if(2&t){const e=He();H(2),xn("expanded","COLOR_PANEL_OPEN"===e.panelSelection),H(7),xn("hidden","COLOR_PANEL_OPEN"!==e.panelSelection)}}function t7e(t,n){if(1&t){const e=kn();I(0,"mat-card",22)(1,"div",1)(2,"div",23),_e(3,"cc-edge-metric-chooser"),O(),I(4,"span",24),We("click",function(){return Ft(e),kt(He().updatePanelSelection("EDGE_PANEL_OPEN"))}),ve(5," Edge Metric Options "),_e(6,"i",9),O(),_e(7,"cc-edge-settings-panel",10),O()()}if(2&t){const e=He();xn("expanded","EDGE_PANEL_OPEN"===e.panelSelection),H(7),xn("hidden","EDGE_PANEL_OPEN"!==e.panelSelection)}}function n7e(t,n){if(1&t){const e=kn();I(0,"mat-card",17)(1,"div",25),We("click",function(){return Ft(e),kt(He().updatePanelSelection("COLOR_PANEL_OPEN"))}),_e(2,"i",26),ve(3," Color Settings "),_e(4,"i",27),O(),_e(5,"cc-color-settings-panel",10),O()}if(2&t){const e=He();H(5),xn("hidden","COLOR_PANEL_OPEN"!==e.panelSelection)}}let i7e=(()=>{class t{constructor(e){this.store=e,this.panelSelection="NONE",this.experimentalFeaturesEnabled$=this.store.select(bN),this.isDeltaState$=this.store.select(Am),this.hasEdgeMetric$=this.store.select(ks).pipe(Et(i=>i.edgeMetricData.length>0)),this.closePanelSelectionOnOutsideClick=i=>{"NONE"!==this.panelSelection&&this.isOutside(i)&&(this.panelSelection="NONE")},this.panelSelectionComponents=["CC-AREA-SETTINGS-PANEL","CC-HEIGHT-SETTINGS-PANEL","CC-COLOR-SETTINGS-PANEL","CC-EDGE-SETTINGS-PANEL","COLOR-CHROME"],this.panelSectionTogglerTitles=["Show area metric settings","Show height metric settings","Show color metric settings","Show edge metric settings"]}ngOnInit(){document.addEventListener("mousedown",this.closePanelSelectionOnOutsideClick)}ngOnDestroy(){document.removeEventListener("mousedown",this.closePanelSelectionOnOutsideClick)}updatePanelSelection(e){this.panelSelection=this.panelSelection===e?"NONE":e}isOutside(e){return e.composedPath().every(i=>!this.panelSelectionComponents.includes(i.nodeName)&&!this.panelSectionTogglerTitles.includes(i.title)&&"codemap-context-menu"!==i.id)}static{this.\u0275fac=function(i){return new(i||t)(W(Wt))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-ribbon-bar"]],decls:43,vars:21,consts:[["appearance","outlined","id","scenario-card",1,"scenario-card"],[1,"section"],[1,"section-header"],[1,"section-title","no-hover"],["appearance","outlined","id","custom-configs-card",1,"custom-configs-card"],["appearance","outlined","id","ai-card",1,"ai-card"],["appearance","outlined","id","area-metric-card",1,"area-metric-card","metric-card"],["id","area-metric-header-section",1,"section-header"],["title","Show area metric settings",1,"section-title",3,"click"],[1,"fa","fa-angle-down"],[1,"cc-metric-settings-panel"],["appearance","outlined","id","height-and-color-metric-container"],["appearance","outlined","id","height-metric-card",1,"height-metric-card","metric-card"],["id","height-metric-section",1,"section"],["id","height-metric-header-section",1,"section-header"],["title","Show height metric settings",1,"section-title",3,"click"],["appearance","outlined","id","edge-metric-card",1,"edge-metric-card","metric-card",3,"expanded"],["appearance","outlined","id","color-settings-card"],["appearance","outlined",1,"link-color-metric-to-height-metric-card"],["appearance","outlined","id","color-metric-card",1,"color-metric-card","metric-card"],["id","color-metric-header-section",1,"section-header"],["title","Show color metric settings",1,"section-title",3,"click"],["appearance","outlined","id","edge-metric-card",1,"edge-metric-card","metric-card"],["id","edge-metric-header-section",1,"section-header"],["title","Show edge metric settings",1,"section-title",3,"click"],["title","Show color settings",1,"delta-color-section",3,"click"],[1,"fa","fa-paint-brush","color-icon"],[1,"fa","fa-sort-down","color-dropdown-icon"]],template:function(i,r){1&i&&(_e(0,"cc-search-panel"),I(1,"mat-card",0)(2,"div",1)(3,"div",2),_e(4,"cc-show-scenarios-button"),O(),I(5,"span",3),ve(6,"Metric Templates"),O()()(),I(7,"mat-card",4)(8,"div",1)(9,"div",2),_e(10,"cc-custom-configs"),O(),I(11,"span",3),ve(12,"Custom Views"),O()()(),I(13,"mat-card",5)(14,"div",1)(15,"div",2),_e(16,"cc-artificial-intelligence"),O(),I(17,"span",3),ve(18,"Suspicious Metrics"),O()()(),I(19,"mat-card",6)(20,"div",1)(21,"div",7),_e(22,"cc-area-metric-chooser"),O(),I(23,"span",8),We("click",function(){return r.updatePanelSelection("AREA_PANEL_OPEN")}),ve(24," Area Metric Options "),_e(25,"i",9),O()(),_e(26,"cc-area-settings-panel",10),O(),I(27,"mat-card",11),ze(28,"async"),I(29,"mat-card",12)(30,"div",13)(31,"div",14),_e(32,"cc-height-metric-chooser"),O(),I(33,"span",15),We("click",function(){return r.updatePanelSelection("HEIGHT_PANEL_OPEN")}),ve(34," Height Metric Options "),_e(35,"i",9),O()(),_e(36,"cc-height-settings-panel",10),O(),ft(37,e7e,10,4),ze(38,"async"),O(),ft(39,t7e,8,4,"mat-card",16),ze(40,"async"),ft(41,n7e,6,2,"mat-card",17),ze(42,"async")),2&i&&(H(19),xn("expanded","AREA_PANEL_OPEN"===r.panelSelection),H(7),xn("hidden","AREA_PANEL_OPEN"!==r.panelSelection),H(),xn("delta",tt(28,13,r.isDeltaState$)),H(2),xn("expanded","HEIGHT_PANEL_OPEN"===r.panelSelection),H(7),xn("hidden","HEIGHT_PANEL_OPEN"!==r.panelSelection),H(),yt(37,tt(38,15,r.isDeltaState$)?-1:37),H(2),yt(39,tt(40,17,r.hasEdgeMetric$)?39:-1),H(2),yt(41,tt(42,19,r.isDeltaState$)?41:-1))},dependencies:[dx,iee,B4e,Cee,RRe,zLe,S5e,P5e,N5e,O5e,U5e,GUe,$Ue,JUe,Gn],styles:['cc-ribbon-bar{position:fixed;z-index:10;white-space:nowrap;display:flex;flex-wrap:nowrap;flex-direction:row;width:100%}cc-ribbon-bar #height-and-color-metric-container{display:flex;flex-wrap:nowrap;flex-direction:row;border:none;flex:2.5 2.5 0}cc-ribbon-bar #height-and-color-metric-container.delta{flex:1 1 0}cc-ribbon-bar #height-and-color-metric-container .mat-mdc-card{box-shadow:none}cc-ribbon-bar .cc-ribbon-bar-menu-button{height:22px;line-height:22px;min-width:45px;margin:0;padding:0;font-size:9pt;background-color:#e6e6e6f5;color:#444}cc-ribbon-bar .cc-ribbon-bar-menu-button:hover{background-color:#c8c8c8}cc-ribbon-bar cc-search-panel .search-panel-card{border-left:none;width:100%}cc-ribbon-bar cc-search-panel .search-panel-card.expanded{height:100%}cc-ribbon-bar cc-search-panel .search-panel-card.expanded .section-body{min-height:162px;max-height:500px;overflow-y:auto}cc-ribbon-bar cc-search-panel .search-panel-card .section-body{display:flex;flex-direction:column;padding:6px;position:absolute;top:45px;background:#fff;border:1px solid #b5b5b5;box-shadow:0 1px 3px #0003,0 1px 1px #00000024,0 2px 1px -1px #0000001f}cc-ribbon-bar cc-search-panel .search-panel-card .section-body.hidden{display:none;pointer-events:none}cc-ribbon-bar .mat-mdc-card{padding:0;height:46px;border-radius:0;border-top:1px solid #cdcdcd;flex:1 1 0;transition:.2s width ease-in-out}cc-ribbon-bar .mat-mdc-card .section{display:inline-block;height:100%;width:100%;vertical-align:top;overflow:hidden}cc-ribbon-bar .mat-mdc-card .section#height-metric-section{border-right:none}cc-ribbon-bar .mat-mdc-card .section .section-header{margin:0 5px;height:31px;color:#444;overflow:hidden;padding:5px}cc-ribbon-bar .mat-mdc-card .section .section-header#area-metric-header-section,cc-ribbon-bar .mat-mdc-card .section .section-header#height-metric-header-section,cc-ribbon-bar .mat-mdc-card .section .section-header#color-metric-header-section,cc-ribbon-bar .mat-mdc-card .section .section-header#edge-metric-header-section{border-bottom:1px solid rgba(0,0,0,.12)}cc-ribbon-bar .mat-mdc-card .section .section-title{font-size:8pt;display:block;width:100%;height:100%;color:gray;text-align:center;transition:background-color .4s;border-bottom:1px solid transparent}cc-ribbon-bar .mat-mdc-card .section .section-title:hover{background-color:#e0e0e0;cursor:pointer}cc-ribbon-bar .mat-mdc-card .section .section-title:focus{outline:none}cc-ribbon-bar .mat-mdc-card .section .section-title.no-hover{pointer-events:none}cc-ribbon-bar .mat-mdc-card .section .section-title i:before{content:"\\f107"}cc-ribbon-bar .mat-mdc-card.expanded .section-title i:before{content:"\\f106"}cc-ribbon-bar .mat-mdc-card.expanded .section-body cc-reset-settings-button button{opacity:1;pointer-events:all}cc-ribbon-bar .mat-mdc-card .section-height-metric-card{border-right:none}cc-ribbon-bar .mat-mdc-card .delta-color-section{line-height:45px;vertical-align:baseline}cc-ribbon-bar .mat-mdc-card .delta-color-section:hover{cursor:pointer}cc-ribbon-bar .mat-mdc-card .delta-color-section .color-icon{margin:8px}cc-ribbon-bar .mat-mdc-card .delta-color-section .color-dropdown-icon{position:absolute;top:12px;right:8px}cc-ribbon-bar .mat-mdc-card.ai-card .section .section-header,cc-ribbon-bar .mat-mdc-card.custom-configs-card .section .section-header{overflow:visible;text-align:center}cc-ribbon-bar .mat-mdc-card.ai-card .section .section-title,cc-ribbon-bar .mat-mdc-card.custom-configs-card .section .section-title{padding:1px 5px}cc-ribbon-bar mat-card,cc-ribbon-bar .section .section-header,cc-ribbon-bar .section .section-body,cc-ribbon-bar .section-body cc-reset-settings-button button{transition:height .1s ease}cc-ribbon-bar mat-card.custom-configs-card,cc-ribbon-bar mat-card.ai-card{max-width:120px;min-width:120px}cc-ribbon-bar mat-card.link-color-metric-to-height-metric-card{display:flex;justify-content:center;flex-grow:0}cc-ribbon-bar mat-card.scenario-card{max-width:100px;min-width:100px}cc-ribbon-bar cc-area-metric-chooser,cc-ribbon-bar cc-height-metric-chooser,cc-ribbon-bar cc-color-metric-chooser,cc-ribbon-bar cc-edge-metric-chooser{display:flex;align-items:center;margin:auto}cc-ribbon-bar cc-area-metric-chooser i,cc-ribbon-bar cc-height-metric-chooser i,cc-ribbon-bar cc-color-metric-chooser i,cc-ribbon-bar cc-edge-metric-chooser i{margin-right:8px}cc-ribbon-bar .cc-metric-settings-panel{display:flex;flex-direction:column;position:absolute;top:45px;right:0;padding:8px;width:280px;background:#fff;border:1px solid #b5b5b5;box-shadow:0 1px 3px #0003,0 1px 1px #00000024,0 2px 1px -1px #0000001f;overflow:hidden;opacity:1;font-size:.9em;transition:max-height .2s ease-in-out}cc-ribbon-bar .cc-metric-settings-panel.hidden{max-height:0;pointer-events:none;opacity:0;transition:opacity 0ms .2s,max-height .2s ease-in-out}\n'],encapsulation:2})}}return t})();const Lne=()=>{const t=document.createElement("INPUT");return t.setAttribute("type","file"),t.setAttribute("accept",".json,.gz"),t.setAttribute("multiple",""),document.body.appendChild(t),t},i_="base";function Pne(t,n,e,i,r,o){if(0===t.length)return;const[s]=t;let a={name:s,type:Nne(t)?Ma.FILE:Ma.FOLDER,attributes:{}};Nne(t)?a=function a7e(t,n,e){const i={...n};return i.attributes={height:e.scale.y},{name:t,type:Ma.FOLDER,attributes:{},children:[i]}}(s,a,i):a.children=[],function s7e(t,n){return t.some(e=>e.name===n)}(n,s)?a=n.find(d=>d.name===s):n.push(a);const l=r.find(d=>d.name===e);a.fixedPosition=function l7e(t,n,e,i){let r;if(t.type===Ma.FOLDER){const s=n.position.z-n.scale.z/2,l=e.position.z-e.scale.z/2,c=d3((e.position.x-e.scale.x/2-(n.position.x-n.scale.x/2))/n.scale.x*100,2);r={left:d3((l-s)/n.scale.z*100,2),top:c,width:d3(e.scale.z/n.scale.z*100,2),height:d3(e.scale.x/n.scale.x*100,2)}}return t.name===i&&(r=function c7e(t){const n={...t};return n.top=Math.floor(50-n.height/2),n.left=Math.floor(50-n.width/2),n}(r)),r}(a,l,i,o.name);const c=e===i_?a.name:`${e}.${a.name}`;Pne(t.slice(1),a.children,c,i,r,o)}function Nne(t){return 1===t.length}function d3(t,n){const e=Math.pow(10,n);return Math.round(t*e)/e}function One(t){const n=t.replaceAll(".","/"),i=t.split(".").slice(-1);return`/${i_}/${n}/${i}`}const f7e=JSON.parse('{"$id":"http://example.com/example.json","$schema":"http://json-schema.org/draft-07/schema","default":{},"description":"This is the JSON Schema for the GameObjectsPositions structure","examples":[{"gameObjectPositions":[{"name":"root.analysis.import.SourceCodeParser.src.test.kotlin.de.maibornwolff.codecharta.importer.sourcecodeparser.oop.core.extract.HelloWorldTest","position":{"x":69,"y":18.5,"z":228.5},"scale":{"x":9,"y":5,"z":9}},{"name":"root.analysis.import.SourceCodeParser.src.test.kotlin.de.maibornwolff.codecharta.importer.sourcecodeparser.oop.core.extract.TryCatchFinallyTest","position":{"x":66,"y":22.5,"z":177.5},"scale":{"x":1,"y":13,"z":1}}],"cycles":[{"from":"root.analysis.import.SCMLogParser.src.main.java.de.maibornwolff.codecharta.importer.scmlogparser.SCMLogParser","to":"root.analysis.import.SCMLogParser.src.main.java.de.maibornwolff.codecharta.importer.scmlogparser.SCMLogParserParameter"}]}],"required":["gameObjectPositions"],"title":"The root schema","type":"object","properties":{"gameObjectPositions":{"$id":"#/properties/gameObjectPositions","type":"array","title":"The gameObjectPositions schema","description":"Defines the position and scale of GameObjects","default":[],"examples":[[{"name":"root.analysis.import.SourceCodeParser.src.test.kotlin.de.maibornwolff.codecharta.importer.sourcecodeparser.oop.core.extract.HelloWorldTest","position":{"x":69,"y":18.5,"z":228.5},"scale":{"x":9,"y":5,"z":9}},{"name":"root.analysis.import.SourceCodeParser.src.test.kotlin.de.maibornwolff.codecharta.importer.sourcecodeparser.oop.core.extract.SwitchCaseTest","position":{"x":65,"y":22,"z":181},"scale":{"x":2,"y":12,"z":2}}]],"additionalItems":true,"items":{"$id":"#/properties/gameObjectPositions/items","anyOf":[{"$id":"#/properties/gameObjectPositions/items/anyOf/0","type":"object","title":"The first anyOf schema","description":"Defines the properties of a GameObject","default":{},"examples":[{"name":"root.analysis.import.SourceCodeParser.src.test.kotlin.de.maibornwolff.codecharta.importer.sourcecodeparser.oop.core.extract.HelloWorldTest","position":{"x":69,"y":18.5,"z":228.5},"scale":{"x":9,"y":5,"z":9}}],"required":["name","position","scale"],"properties":{"name":{"$id":"#/properties/gameObjectPositions/items/anyOf/0/properties/name","type":"string","title":"The name schema","description":"An explanation about the purpose of this instance.","default":"","examples":["root.analysis.import.SourceCodeParser.src.test.kotlin.de.maibornwolff.codecharta.importer.sourcecodeparser.oop.core.extract.HelloWorldTest"]},"position":{"$id":"#/properties/gameObjectPositions/items/anyOf/0/properties/position","type":"object","title":"The position schema","description":"The position in absolute values","default":{},"examples":[{"x":69,"y":18.5,"z":228.5}],"required":["x","y","z"],"properties":{"x":{"$id":"#/properties/gameObjectPositions/items/anyOf/0/properties/position/properties/x","type":"number","title":"The x schema","description":"x position","default":0,"examples":[69]},"y":{"$id":"#/properties/gameObjectPositions/items/anyOf/0/properties/position/properties/y","type":"number","title":"The y schema","description":"y position","default":0,"examples":[18.5]},"z":{"$id":"#/properties/gameObjectPositions/items/anyOf/0/properties/position/properties/z","type":"number","title":"The z schema","description":"z position","default":0,"examples":[228.5]}},"additionalProperties":true},"scale":{"$id":"#/properties/gameObjectPositions/items/anyOf/0/properties/scale","type":"object","title":"The scale schema","description":"The scale of GameObjects","default":{},"examples":[{"x":9,"y":5,"z":9}],"required":["x","y","z"],"properties":{"x":{"$id":"#/properties/gameObjectPositions/items/anyOf/0/properties/scale/properties/x","type":"number","title":"The x schema","description":"x scale","default":0,"examples":[9]},"y":{"$id":"#/properties/gameObjectPositions/items/anyOf/0/properties/scale/properties/y","type":"number","title":"The y schema","description":"y scale","default":0,"examples":[5]},"z":{"$id":"#/properties/gameObjectPositions/items/anyOf/0/properties/scale/properties/z","type":"number","title":"The z schema","description":"z scale","default":0,"examples":[9]}},"additionalProperties":true}},"additionalProperties":true}]}},"cycles":{"$id":"#/properties/cycles","type":"array","title":"The cycles schema","description":"Defines the cycles between GameObjects","default":[],"examples":[[{"from":"root.analysis.import.SCMLogParser.src.main.java.de.maibornwolff.codecharta.importer.scmlogparser.SCMLogParser","to":"root.analysis.import.SCMLogParser.src.main.java.de.maibornwolff.codecharta.importer.scmlogparser.SCMLogParserParameter"}]],"additionalItems":true,"items":{"$id":"#/properties/cycles/items","anyOf":[{"$id":"#/properties/cycles/items/anyOf/0","type":"object","title":"The first anyOf schema","description":"A cycle between two GameObjects","default":{},"examples":[{"from":"root.analysis.import.SCMLogParser.src.main.java.de.maibornwolff.codecharta.importer.scmlogparser.SCMLogParser","to":"root.analysis.import.SCMLogParser.src.main.java.de.maibornwolff.codecharta.importer.scmlogparser.SCMLogParserParameter"}],"required":["from","to"],"properties":{"from":{"$id":"#/properties/cycles/items/anyOf/0/properties/from","type":"string","title":"The from schema","description":"from GameObject","default":"","examples":["root.analysis.import.SCMLogParser.src.main.java.de.maibornwolff.codecharta.importer.scmlogparser.SCMLogParser"]},"to":{"$id":"#/properties/cycles/items/anyOf/0/properties/to","type":"string","title":"The to schema","description":"to GameObject","default":"","examples":["root.analysis.import.SCMLogParser.src.main.java.de.maibornwolff.codecharta.importer.scmlogparser.SCMLogParserParameter"]}},"additionalProperties":true}]}}},"additionalProperties":true}'),Une=t=>{const n=[];for(let e=0;e{const i=n.name.endsWith(".gz"),r=new FileReader;let o;i?r.readAsArrayBuffer(n):r.readAsText(n,"utf8"),r.onload=s=>{const a=s.target.result.toString();o=i?QL(s.target.result,{to:"string"}):a,a.includes("gameObjectPositions")&&function m7e(t){return new(L$())({allErrors:!0}).validate(f7e,JSON.parse(t))}(a)&&(o=JSON.stringify(function r7e(t){const{gameObjectPositions:n,cycles:e=[]}=JSON.parse(t),i={checksum:"",data:{projectName:"GameObjects",fileChecksum:"",apiVersion:"1.3",nodes:[]}},r=[{name:i_,type:Ma.FOLDER,attributes:{},children:[]}];!function o7e(t){for(const n of t)n.name.startsWith("root")||(n.name=n.name.startsWith(".")?`root${n.name}`:`root.${n.name}`)}(n);const o=n.find(a=>"root"===a.name),s=function h7e(t){const n=Math.max(t.x,t.z);return{name:i_,position:{x:0,y:0,z:0},scale:{x:n,y:0,z:n}}}(o.scale);n.push(s);for(const a of n){const l=a.name.split(".");l[0]!==i_&&Pne(l,r[0].children,i_,a,n,o)}return i.data.nodes=r,i.data.edges=e.map(a=>function d7e(t){return{fromNodeName:One(t.from),toNodeName:One(t.to),attributes:{coupling:100}}}(a)),i.data.attributeTypes=function u7e(){return{edges:{coupling:Gf.relative}}}(),i.checksum=IM()(JSON.stringify(i.data)),i}(a)))},r.onloadend=()=>{e(o)}})});return function(e){return t.apply(this,arguments)}}();let Hne=(()=>{class t{constructor(e,i){this.store=e,this.loadFileService=i,this.isUploading=!1}uploadFiles(){const e=Lne();e.addEventListener("change",()=>{this.uploadFilesOnEvent(e)}),e.click()}uploadFilesOnEvent(e){var i=this;return f(function*(){try{i.isUploading=!0,i.store.dispatch(Ip({value:!0})),i.store.dispatch(F0({value:!0}));const r=yield Promise.all(Une(e.files)),{customConfigs:o,ccFiles:s}=i.splitCustomConfigsAndCCFiles(e.files,r);for(const a of o)Ri.importCustomConfigs(a);s.length>0&&(yield i.loadFileService.loadFiles(s))}catch{i.store.dispatch(Ip({value:!1})),i.store.dispatch(F0({value:!1}))}finally{i.isUploading=!1}})()}splitCustomConfigsAndCCFiles(e,i){const r=[],o=[];for(const[s,a]of i.entries()){const l=e[s].name;l.includes(yee)?r.push(a):o.push({fileName:l,fileSize:e[s].size,content:AR(a)})}return{customConfigs:r,ccFiles:o}}static{this.\u0275fac=function(i){return new(i||t)(oe(Wt),oe(N0))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})(),A7e=(()=>{class t{constructor(e){this.uploadFilesService=e}uploadFiles(){this.uploadFilesService.uploadFiles()}static{this.\u0275fac=function(i){return new(i||t)(W(Hne))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-upload-files-button"]],decls:1,vars:1,consts:[["title","Load cc.json files",3,"click","icon"]],template:function(i,r){1&i&&(I(0,"cc-action-icon",0),We("click",function(){return r.uploadFiles()}),O()),2&i&&ue("icon","fa fa-folder-open folder-icon")},dependencies:[FA],styles:["cc-upload-files-button i{padding-left:1px}\n"],encapsulation:2})}}return t})();const n8=typeof navigator<"u"&&navigator.userAgent.toLowerCase().indexOf("firefox")>0;function i8(t,n,e,i){t.addEventListener?t.addEventListener(n,e,i):t.attachEvent&&t.attachEvent("on".concat(n),e)}function kx(t,n,e,i){t.removeEventListener?t.removeEventListener(n,e,i):t.detachEvent&&t.detachEvent("on".concat(n),e)}function Vne(t,n){const e=n.slice(0,n.length-1);for(let i=0;i=0;)n[e-1]+=",",n.splice(e,1),e=n.lastIndexOf("");return n}const Ix={backspace:8,"\u232b":8,tab:9,clear:12,enter:13,"\u21a9":13,return:13,esc:27,escape:27,space:32,left:37,up:38,right:39,down:40,del:46,delete:46,ins:45,insert:45,home:36,end:35,pageup:33,pagedown:34,capslock:20,num_0:96,num_1:97,num_2:98,num_3:99,num_4:100,num_5:101,num_6:102,num_7:103,num_8:104,num_9:105,num_multiply:106,num_add:107,num_enter:108,num_subtract:109,num_decimal:110,num_divide:111,"\u21ea":20,",":188,".":190,"/":191,"`":192,"-":n8?173:189,"=":n8?61:187,";":n8?59:186,"'":222,"[":219,"]":221,"\\":220},cu={"\u21e7":16,shift:16,"\u2325":18,alt:18,option:18,"\u2303":17,ctrl:17,control:17,"\u2318":91,cmd:91,command:91},r8={16:"shiftKey",18:"altKey",17:"ctrlKey",91:"metaKey",shiftKey:16,ctrlKey:17,altKey:18,metaKey:91},Ys={16:!1,18:!1,17:!1,91:!1},To={};for(let t=1;t<20;t++)Ix["f".concat(t)]=111+t;let Yr=[],Bx=null,zne="all";const Dh=new Map,Dx=t=>Ix[t.toLowerCase()]||cu[t.toLowerCase()]||t.toUpperCase().charCodeAt(0);function Gne(t){zne=t||"all"}function Rx(){return zne||"all"}function qne(t){if(typeof t>"u")Object.keys(To).forEach(r=>{Array.isArray(To[r])&&To[r].forEach(o=>u3(o)),delete To[r]}),o8(null);else if(Array.isArray(t))t.forEach(r=>{r.key&&u3(r)});else if("object"==typeof t)t.key&&u3(t);else if("string"==typeof t){for(var n=arguments.length,e=new Array(n>1?n-1:0),i=1;i{let{key:n,scope:e,method:i,splitKey:r="+"}=t;Qne(n).forEach(s=>{const a=s.split(r),l=a.length,c=a[l-1],d="*"===c?"*":Dx(c);if(!To[d])return;e||(e=Rx());const u=l>1?Vne(cu,a):[],h=[];To[d]=To[d].filter(m=>{const v=(!i||m.method===i)&&m.scope===e&&function g7e(t,n){const e=t.length>=n.length?t:n,i=t.length>=n.length?n:t;let r=!0;for(let o=0;oo8(m))})};function Wne(t,n,e,i){if(n.element!==i)return;let r;if(n.scope===e||"all"===n.scope){r=n.mods.length>0;for(const o in Ys)Object.prototype.hasOwnProperty.call(Ys,o)&&(!Ys[o]&&n.mods.indexOf(+o)>-1||Ys[o]&&-1===n.mods.indexOf(+o))&&(r=!1);(0===n.mods.length&&!Ys[16]&&!Ys[18]&&!Ys[17]&&!Ys[91]||r||"*"===n.shortcut)&&(n.keys=[],n.keys=n.keys.concat(Yr),!1===n.method(t,n)&&(t.preventDefault?t.preventDefault():t.returnValue=!1,t.stopPropagation&&t.stopPropagation(),t.cancelBubble&&(t.cancelBubble=!0)))}}function $ne(t,n){const e=To["*"];let i=t.keyCode||t.which||t.charCode;if(!du.filter.call(this,t))return;if((93===i||224===i)&&(i=91),-1===Yr.indexOf(i)&&229!==i&&Yr.push(i),["ctrlKey","altKey","shiftKey","metaKey"].forEach(a=>{const l=r8[a];t[a]&&-1===Yr.indexOf(l)?Yr.push(l):!t[a]&&Yr.indexOf(l)>-1?Yr.splice(Yr.indexOf(l),1):"metaKey"===a&&t[a]&&3===Yr.length&&(t.ctrlKey||t.shiftKey||t.altKey||(Yr=Yr.slice(Yr.indexOf(l))))}),i in Ys){Ys[i]=!0;for(const a in cu)cu[a]===i&&(du[a]=!0);if(!e)return}for(const a in Ys)Object.prototype.hasOwnProperty.call(Ys,a)&&(Ys[a]=t[r8[a]]);t.getModifierState&&(!t.altKey||t.ctrlKey)&&t.getModifierState("AltGraph")&&(-1===Yr.indexOf(17)&&Yr.push(17),-1===Yr.indexOf(18)&&Yr.push(18),Ys[17]=!0,Ys[18]=!0);const r=Rx();if(e)for(let a=0;a1&&(r=Vne(cu,t)),(t="*"===(t=t[t.length-1])?"*":Dx(t))in To||(To[t]=[]),To[t].push({keyup:l,keydown:c,scope:o,mods:r,shortcut:i[a],method:e,key:i[a],splitKey:d,element:s});if(typeof s<"u"&&window){if(!Dh.has(s)){const m=function(){return $ne(arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.event,s)},A=function(){let v=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.event;$ne(v,s),function M7e(t){let n=t.keyCode||t.which||t.charCode;const e=Yr.indexOf(n);if(e>=0&&Yr.splice(e,1),t.key&&"meta"===t.key.toLowerCase()&&Yr.splice(0,Yr.length),(93===n||224===n)&&(n=91),n in Ys){Ys[n]=!1;for(const i in cu)cu[i]===n&&(du[i]=!1)}}(v)};Dh.set(s,{keydownListener:m,keyupListenr:A,capture:u}),i8(s,"keydown",m,u),i8(s,"keyup",A,u)}if(!Bx){const m=()=>{Yr=[]};Bx={listener:m,capture:u},i8(window,"focus",m,u)}}}function o8(t){const n=Object.values(To).flat();if(n.findIndex(i=>{let{element:r}=i;return r===t})<0){const{keydownListener:i,keyupListenr:r,capture:o}=Dh.get(t)||{};i&&r&&(kx(t,"keyup",r,o),kx(t,"keydown",i,o),Dh.delete(t))}if((n.length<=0||Dh.size<=0)&&(Object.keys(Dh).forEach(r=>{const{keydownListener:o,keyupListenr:s,capture:a}=Dh.get(r)||{};o&&s&&(kx(r,"keyup",s,a),kx(r,"keydown",o,a),Dh.delete(r))}),Dh.clear(),Object.keys(To).forEach(r=>delete To[r]),Bx)){const{listener:r,capture:o}=Bx;kx(window,"focus",r,o),Bx=null}}const s8={getPressedKeyString:function y7e(){return Yr.map(t=>(t=>Object.keys(Ix).find(n=>Ix[n]===t))(t)||(t=>Object.keys(cu).find(n=>cu[n]===t))(t)||String.fromCharCode(t))},setScope:Gne,getScope:Rx,deleteScope:function E7e(t,n){let e,i;t||(t=Rx());for(const r in To)if(Object.prototype.hasOwnProperty.call(To,r))for(e=To[r],i=0;i{let{element:a}=s;return o8(a)}):i++;Rx()===t&&Gne(n||"all")},getPressedKeyCodes:function v7e(){return Yr.slice(0)},getAllKeyCodes:function w7e(){const t=[];return Object.keys(To).forEach(n=>{To[n].forEach(e=>{let{key:i,scope:r,mods:o,shortcut:s}=e;t.push({scope:r,shortcut:s,mods:o,keys:i.split("+").map(a=>Dx(a))})})}),t},isPressed:function C7e(t){return"string"==typeof t&&(t=Dx(t)),-1!==Yr.indexOf(t)},filter:function x7e(t){const n=t.target||t.srcElement,{tagName:e}=n;let i=!0;const r="INPUT"===e&&!["checkbox","radio","range","button","file","reset","submit","color"].includes(n.type);return(n.isContentEditable||(r||"TEXTAREA"===e||"SELECT"===e)&&!n.readOnly)&&(i=!1),i},trigger:function S7e(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"all";Object.keys(To).forEach(e=>{To[e].filter(r=>r.scope===n&&r.shortcut===t).forEach(r=>{r&&r.method&&r.method()})})},unbind:qne,keyMap:Ix,modifier:cu,modifierMap:r8};for(const t in s8)Object.prototype.hasOwnProperty.call(s8,t)&&(du[t]=s8[t]);if(typeof window<"u"){const t=window.hotkeys;du.noConflict=n=>(n&&window.hotkeys===du&&(window.hotkeys=t),du),window.hotkeys=du}var T7e=p(7239),F7e=p.n(T7e);function a8(){return a8=f(function*(t){const n=[new ClipboardItem({[t.type]:t})];yield navigator.clipboard.write(n)}),a8.apply(this,arguments)}const jne=Xt(Hr,t=>t.screenshotToClipboardEnabled);function B7e(t,n){if(1&t){const e=kn();I(0,"cc-action-icon",2),We("click",function(){return Ft(e),kt(He().makeScreenshotToClipboard())}),O()}if(2&t){const e=He();xn("disabled",!e.isWriteToClipboardAllowed),wa("title",e.TITLE_CLIPBOARD_BUTTON),ue("icon","fa fa-camera")}}function D7e(t,n){if(1&t){const e=kn();I(0,"cc-action-icon",2),We("click",function(){return Ft(e),kt(He().makeScreenshotToFile())}),O()}2&t&&(wa("title",He().TITLE_FILE_BUTTON),ue("icon","fa fa-camera"))}let R7e=(()=>{class t{constructor(e,i,r,o,s){this.threeCameraService=e,this.threeSceneService=i,this.threeRendererService=r,this.store=o,this.state=s,this.SCREENSHOT_HOTKEY_TO_FILE="Ctrl+Alt+S",this.SCREENSHOT_HOTKEY_TO_CLIPBOARD="Ctrl+Alt+F",this.isScreenshotToClipboardEnabled$=this.store.select(jne)}ngOnInit(){this.isWriteToClipboardAllowed=function I7e(){return"clipboard"in navigator&&"write"in navigator.clipboard}(),this.TITLE_CLIPBOARD_BUTTON=this.createTitleClipboardButton(),this.TITLE_FILE_BUTTON=this.createTitleFileButton(),du(this.SCREENSHOT_HOTKEY_TO_FILE,()=>{this.makeScreenshotToFile()}),du(this.SCREENSHOT_HOTKEY_TO_CLIPBOARD,()=>{this.makeScreenshotToClipboard()})}makeScreenshotToFile(){var e=this;return f(function*(){const i=e.threeRendererService.renderer,r=e.saveRenderSettings(i),o=yield e.buildScreenShotCanvas(i);e.downloadScreenshot(o,e.state.getValue().files),e.applyRenderSettings(i,r)})()}makeScreenshotToClipboard(){var e=this;return f(function*(){if(!e.isWriteToClipboardAllowed)return;const i=e.threeRendererService.renderer,r=e.saveRenderSettings(i),o=yield e.buildScreenShotCanvas(i),s=new Promise(l=>o.toBlob(l));e.applyRenderSettings(i,r);const a=yield s;yield function k7e(t){return a8.apply(this,arguments)}(a)})()}downloadScreenshot(e,i){const r=e.toDataURL("image/png"),o=document.createElement("a");o.download=function Z_e(t,n){const e=Nd(t)?"delta":"",r=TM(t).map(a=>function J_e(t){return t.file.fileMeta.fileName.replace(/(.cc)?.json$/,"")}(a)),o=function eve(t){return t.length<=3?t.join(SM):[t.at(0),fW,t.at(-1)].join(SM)}(r);return function tve(t,n,e){const i=[n,t].filter(o=>o.length>0).join(SM),r=255-e.length-pR.length;return i.length<=r?[i,SM,e,pR].join(""):[i.slice(0,r-1),fW,e,pR].join("")}(o,e,n)}(i,"map"),o.href=r,document.body.appendChild(o),o.click(),o.remove()}saveRenderSettings(e){const i=e.getPixelRatio(),r=new rn;return e.getClearColor(r),{pixelRatio:i,clearColor:r}}applyRenderSettings(e,i){const{pixelRatio:r,clearColor:o}=i;e.setPixelRatio(r),e.setClearColor(o),e.render(this.threeSceneService.scene,this.threeCameraService.camera)}buildScreenShotCanvas(e){var i=this;return f(function*(){e.setPixelRatio(window.devicePixelRatio),e.setClearColor(new rn(0,0,0),0),e.render(i.threeSceneService.scene,i.threeCameraService.camera);const r=new Set(["cc-logo","cc-tool-bar","cc-view-cube","cc-ribbon-bar","cc-file-extension-bar","cc-attribute-side-bar","cc-loading-file-progess-spinner"]),o=new Set(["legend-panel-button"]),s=document.querySelector("body")?.offsetHeight,a=document.querySelector("cc-ribbon-bar")?.offsetHeight,l=document.querySelector("cc-tool-bar")?.offsetHeight,c=document.querySelector("cc-file-extension-bar")?.offsetHeight,d=a+l+c,u=yield F7e()(document.querySelector("body"),{removeContainer:!0,backgroundColor:"#00",scrollY:-d,height:s-d,ignoreElements:h=>r.has(h.tagName.toLowerCase())||o.has(h.id)||"10000"===h.style.zIndex});return i.getCroppedCanvas(u)})()}getCroppedCanvas(e){const i=e.getContext("2d"),r=e.width,o=e.height,a=i.getImageData(0,0,r,o).data;let l=r,c=o,d=0,u=0;for(let A=0;A0&&(l=Math.min(l,A),d=Math.max(d,A),c=Math.min(c,v),u=Math.max(u,v));const h=document.createElement("canvas"),m=h.getContext("2d");return h.width=d-l+1,h.height=u-c+1,m.drawImage(e,l,c,h.width,h.height,0,0,h.width,h.height),h}createTitleClipboardButton(){return this.isWriteToClipboardAllowed?`Take a screenshot of the map with ${this.SCREENSHOT_HOTKEY_TO_CLIPBOARD} (copy to clipboard) or ${this.SCREENSHOT_HOTKEY_TO_FILE} (save as file)`:"Firefox does not support copying to clipboard"}createTitleFileButton(){return`Take a screenshot of the map with ${this.SCREENSHOT_HOTKEY_TO_FILE} (save as file) or ${this.SCREENSHOT_HOTKEY_TO_CLIPBOARD} (copy to clipboard)`}static{this.\u0275fac=function(i){return new(i||t)(W(ru),W(cc),W(qi),W(Wt),W(Br))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-screenshot-button"]],decls:4,vars:6,consts:[[3,"icon","title","disabled"],[3,"icon","title"],[3,"click","icon","title"]],template:function(i,r){1&i&&(ft(0,B7e,1,4,"cc-action-icon",0),ze(1,"async"),ft(2,D7e,1,2,"cc-action-icon",1),ze(3,"async")),2&i&&(yt(0,tt(1,2,r.isScreenshotToClipboardEnabled$)?0:-1),H(2),yt(2,tt(3,4,r.isScreenshotToClipboardEnabled$)?-1:2))},dependencies:[FA,Gn],encapsulation:2})}}return t})();function L7e(t){return`\t\u2022 ${t.filePath} (${t.value})\n`}function P7e(t){return`${t.toUpperCase()}\n`}function H7e(t){return t.type===Ma.FILE&&void 0!==t.attributes}function V7e(t,n,e){for(const[i,r]of Object.entries(t.attributes)){const o=n?.[i]?.direction,s={filePath:t.path,value:r};if(e.has(i)){const a=e.get(i);Q7e(a,s,o),e.set(i,a.slice(0,10))}else e.set(i,[s])}}function Q7e(t,n,e){const i=function z7e(t){return 1===t?(n,e)=>n.value-e.value:(n,e)=>e.value-n.value}(e),r=t.findIndex(o=>i(n,o)<0);-1===r?t.push(n):t.splice(r,0,n)}let Kne=(()=>{class t{constructor(e){this.state=e}getClipboardText(){const r=function U7e(t,n){const e=new Map;for(const{data:i}of io(t))H7e(i)&&V7e(i,n,e);return e}(this.getUnifiedMapNode(),this.state.getValue().fileSettings.attributeDescriptors);return function N7e(t){let n="";for(const[e,i]of t.entries()){n+=P7e(e);for(const r of i)n+=L7e(r)}return n}(r)}getUnifiedMapNode(){const{unifiedMapNode:e}=lc(this.state.getValue());return e}static{this.\u0275fac=function(i){return new(i||t)(oe(Br))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac})}}return t})(),G7e=(()=>{class t{constructor(e){this.copyToClipboardService=e}copyNamesToClipBoard(){var e=this;return f(function*(){yield navigator.clipboard.writeText(e.copyToClipboardService.getClipboardText())})()}static{this.\u0275fac=function(i){return new(i||t)(W(Kne))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-copy-to-clipboard-button"]],decls:1,vars:0,consts:[["icon","fa fa-clipboard","title","Copy filenames with highest metric values to clipboard",3,"click"]],template:function(i,r){1&i&&(I(0,"cc-action-icon",0),We("click",function(){return r.copyNamesToClipBoard()}),O())},dependencies:[FA],encapsulation:2})}}return t})();var Lx=function(t,n){var Fe,jt,ln,vi,Po,Ph;void 0===n&&console.warn('THREE.OrbitControls: The second parameter "domElement" is now mandatory.'),n===document&&console.error('THREE.OrbitControls: "document" should not be used as the target "domElement". Please use "renderer.domElement" instead.'),this.object=t,this.domElement=n,this.enabled=!0,this.target=new Y,this.minDistance=0,this.maxDistance=1/0,this.minZoom=0,this.maxZoom=1/0,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.minAzimuthAngle=-1/0,this.maxAzimuthAngle=1/0,this.enableDamping=!1,this.dampingFactor=.05,this.enableZoom=!0,this.zoomSpeed=1,this.enableRotate=!0,this.rotateSpeed=1,this.enablePan=!0,this.panSpeed=1,this.screenSpacePanning=!0,this.keyPanSpeed=7,this.autoRotate=!1,this.autoRotateSpeed=2,this.keys={LEFT:37,UP:38,RIGHT:39,BOTTOM:40},this.mouseButtons={LEFT:dh.ROTATE,MIDDLE:dh.DOLLY,RIGHT:dh.PAN},this.touches={ONE:uh.ROTATE,TWO:uh.DOLLY_PAN},this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this._domElementKeyEvents=null,this.getPolarAngle=function(){return c.phi},this.getAzimuthalAngle=function(){return c.theta},this.listenToKeyEvents=function(Fe){Fe.addEventListener("keydown",Ot),this._domElementKeyEvents=Fe},this.saveState=function(){e.target0.copy(e.target),e.position0.copy(e.object.position),e.zoom0=e.object.zoom},this.reset=function(){e.target.copy(e.target0),e.object.position.copy(e.position0),e.object.zoom=e.zoom0,e.object.updateProjectionMatrix(),e.dispatchEvent(i),e.update(),a=s.NONE},this.update=(Fe=new Y,jt=(new as).setFromUnitVectors(t.up,new Y(0,1,0)),ln=jt.clone().invert(),vi=new Y,Po=new as,Ph=2*Math.PI,function(){var W3=e.object.position;Fe.copy(W3).sub(e.target),Fe.applyQuaternion(jt),c.setFromVector3(Fe),e.autoRotate&&a===s.NONE&&te(function $(){return 2*Math.PI/60/60*e.autoRotateSpeed}()),e.enableDamping?(c.theta+=d.theta*e.dampingFactor,c.phi+=d.phi*e.dampingFactor):(c.theta+=d.theta,c.phi+=d.phi);var hc=e.minAzimuthAngle,cd=e.maxAzimuthAngle;return isFinite(hc)&&isFinite(cd)&&(hc<-Math.PI?hc+=Ph:hc>Math.PI&&(hc-=Ph),cd<-Math.PI?cd+=Ph:cd>Math.PI&&(cd-=Ph),c.theta=hc<=cd?Math.max(hc,Math.min(cd,c.theta)):c.theta>(hc+cd)/2?Math.max(hc,c.theta):Math.min(cd,c.theta)),c.phi=Math.max(e.minPolarAngle,Math.min(e.maxPolarAngle,c.phi)),c.makeSafe(),c.radius*=u,c.radius=Math.max(e.minDistance,Math.min(e.maxDistance,c.radius)),!0===e.enableDamping?e.target.addScaledVector(h,e.dampingFactor):e.target.add(h),Fe.setFromSpherical(c),Fe.applyQuaternion(ln),W3.copy(e.target).add(Fe),e.object.lookAt(e.target),!0===e.enableDamping?(d.theta*=1-e.dampingFactor,d.phi*=1-e.dampingFactor,h.multiplyScalar(1-e.dampingFactor)):(d.set(0,0,0),h.set(0,0,0)),u=1,!!(m||vi.distanceToSquared(e.object.position)>l||8*(1-Po.dot(e.object.quaternion))>l)&&(e.dispatchEvent(i),vi.copy(e.object.position),Po.copy(e.object.quaternion),m=!1,!0)}),this.dispose=function(){e.domElement.removeEventListener("contextmenu",Sn),e.domElement.removeEventListener("pointerdown",Re),e.domElement.removeEventListener("wheel",Kt),e.domElement.removeEventListener("touchstart",en),e.domElement.removeEventListener("touchend",Cn),e.domElement.removeEventListener("touchmove",wt),e.domElement.ownerDocument.removeEventListener("pointermove",de),e.domElement.ownerDocument.removeEventListener("pointerup",ae),null!==e._domElementKeyEvents&&e._domElementKeyEvents.removeEventListener("keydown",Ot)};var e=this,i={type:"change"},r={type:"start"},o={type:"end"},s={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6},a=s.NONE,l=1e-6,c=new P5,d=new P5,u=1,h=new Y,m=!1,A=new ut,v=new ut,x=new ut,C=new ut,w=new ut,S=new ut,M=new ut,B=new ut,P=new ut;function ee(){return Math.pow(.95,e.zoomSpeed)}function te(Fe){d.theta-=Fe}function re(Fe){d.phi-=Fe}var ne=function(){var Fe=new Y;return function(ln,vi){Fe.setFromMatrixColumn(vi,0),Fe.multiplyScalar(-ln),h.add(Fe)}}(),Ce=function(){var Fe=new Y;return function(ln,vi){!0===e.screenSpacePanning?Fe.setFromMatrixColumn(vi,1):(Fe.setFromMatrixColumn(vi,0),Fe.crossVectors(e.object.up,Fe)),Fe.multiplyScalar(ln),h.add(Fe)}}(),we=function(){var Fe=new Y;return function(ln,vi){var Po=e.domElement;if(e.object.isPerspectiveCamera){Fe.copy(e.object.position).sub(e.target);var WA=Fe.length();WA*=Math.tan(e.object.fov/2*Math.PI/180),ne(2*ln*WA/Po.clientHeight,e.object.matrix),Ce(2*vi*WA/Po.clientHeight,e.object.matrix)}else e.object.isOrthographicCamera?(ne(ln*(e.object.right-e.object.left)/e.object.zoom/Po.clientWidth,e.object.matrix),Ce(vi*(e.object.top-e.object.bottom)/e.object.zoom/Po.clientHeight,e.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),e.enablePan=!1)}}();function j(Fe){e.object.isPerspectiveCamera?u/=Fe:e.object.isOrthographicCamera?(e.object.zoom=Math.max(e.minZoom,Math.min(e.maxZoom,e.object.zoom*Fe)),e.object.updateProjectionMatrix(),m=!0):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),e.enableZoom=!1)}function me(Fe){e.object.isPerspectiveCamera?u*=Fe:e.object.isOrthographicCamera?(e.object.zoom=Math.max(e.minZoom,Math.min(e.maxZoom,e.object.zoom/Fe)),e.object.updateProjectionMatrix(),m=!0):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),e.enableZoom=!1)}function X(Fe){A.set(Fe.clientX,Fe.clientY)}function ke(Fe){C.set(Fe.clientX,Fe.clientY)}function nt(Fe){1==Fe.touches.length?A.set(Fe.touches[0].pageX,Fe.touches[0].pageY):A.set(.5*(Fe.touches[0].pageX+Fe.touches[1].pageX),.5*(Fe.touches[0].pageY+Fe.touches[1].pageY))}function pe(Fe){1==Fe.touches.length?C.set(Fe.touches[0].pageX,Fe.touches[0].pageY):C.set(.5*(Fe.touches[0].pageX+Fe.touches[1].pageX),.5*(Fe.touches[0].pageY+Fe.touches[1].pageY))}function dt(Fe){var jt=Fe.touches[0].pageX-Fe.touches[1].pageX,ln=Fe.touches[0].pageY-Fe.touches[1].pageY,vi=Math.sqrt(jt*jt+ln*ln);M.set(0,vi)}function Ht(Fe){1==Fe.touches.length?v.set(Fe.touches[0].pageX,Fe.touches[0].pageY):v.set(.5*(Fe.touches[0].pageX+Fe.touches[1].pageX),.5*(Fe.touches[0].pageY+Fe.touches[1].pageY)),x.subVectors(v,A).multiplyScalar(e.rotateSpeed);var vi=e.domElement;te(2*Math.PI*x.x/vi.clientHeight),re(2*Math.PI*x.y/vi.clientHeight),A.copy(v)}function $t(Fe){1==Fe.touches.length?w.set(Fe.touches[0].pageX,Fe.touches[0].pageY):w.set(.5*(Fe.touches[0].pageX+Fe.touches[1].pageX),.5*(Fe.touches[0].pageY+Fe.touches[1].pageY)),S.subVectors(w,C).multiplyScalar(e.panSpeed),we(S.x,S.y),C.copy(w)}function rt(Fe){var jt=Fe.touches[0].pageX-Fe.touches[1].pageX,ln=Fe.touches[0].pageY-Fe.touches[1].pageY,vi=Math.sqrt(jt*jt+ln*ln);B.set(0,vi),P.set(0,Math.pow(B.y/M.y,e.zoomSpeed)),j(P.y),M.copy(B)}function Re(Fe){if(!1!==e.enabled)switch(Fe.pointerType){case"mouse":case"pen":!function Rt(Fe){var jt;switch(Fe.preventDefault(),e.domElement.focus?e.domElement.focus():window.focus(),Fe.button){case 0:jt=e.mouseButtons.LEFT;break;case 1:jt=e.mouseButtons.MIDDLE;break;case 2:jt=e.mouseButtons.RIGHT;break;default:jt=-1}switch(jt){case dh.DOLLY:if(!1===e.enableZoom)return;(function Ae(Fe){M.set(Fe.clientX,Fe.clientY)})(Fe),a=s.DOLLY;break;case dh.ROTATE:if(Fe.ctrlKey||Fe.metaKey||Fe.shiftKey){if(!1===e.enablePan)return;ke(Fe),a=s.PAN}else{if(!1===e.enableRotate)return;X(Fe),a=s.ROTATE}break;case dh.PAN:if(Fe.ctrlKey||Fe.metaKey||Fe.shiftKey){if(!1===e.enableRotate)return;X(Fe),a=s.ROTATE}else{if(!1===e.enablePan)return;ke(Fe),a=s.PAN}break;default:a=s.NONE}a!==s.NONE&&(e.domElement.ownerDocument.addEventListener("pointermove",de),e.domElement.ownerDocument.addEventListener("pointerup",ae),e.dispatchEvent(r))}(Fe)}}function de(Fe){if(!1!==e.enabled)switch(Fe.pointerType){case"mouse":case"pen":!function Se(Fe){if(!1!==e.enabled)switch(Fe.preventDefault(),a){case s.ROTATE:if(!1===e.enableRotate)return;!function Qe(Fe){v.set(Fe.clientX,Fe.clientY),x.subVectors(v,A).multiplyScalar(e.rotateSpeed);var jt=e.domElement;te(2*Math.PI*x.x/jt.clientHeight),re(2*Math.PI*x.y/jt.clientHeight),A.copy(v),e.update()}(Fe);break;case s.DOLLY:if(!1===e.enableZoom)return;!function ht(Fe){B.set(Fe.clientX,Fe.clientY),P.subVectors(B,M),P.y>0?j(ee()):P.y<0&&me(ee()),M.copy(B),e.update()}(Fe);break;case s.PAN:if(!1===e.enablePan)return;!function ye(Fe){w.set(Fe.clientX,Fe.clientY),S.subVectors(w,C).multiplyScalar(e.panSpeed),we(S.x,S.y),C.copy(w),e.update()}(Fe)}}(Fe)}}function ae(Fe){switch(Fe.pointerType){case"mouse":case"pen":!function qe(Fe){e.domElement.ownerDocument.removeEventListener("pointermove",de),e.domElement.ownerDocument.removeEventListener("pointerup",ae),!1!==e.enabled&&(e.dispatchEvent(o),a=s.NONE)}()}}function Kt(Fe){!1===e.enabled||!1===e.enableZoom||a!==s.NONE&&a!==s.ROTATE||(Fe.preventDefault(),Fe.stopPropagation(),e.dispatchEvent(r),function ie(Fe){Fe.deltaY<0?me(ee()):Fe.deltaY>0&&j(ee()),e.update()}(Fe),e.dispatchEvent(o))}function Ot(Fe){!1===e.enabled||!1===e.enablePan||function Ne(Fe){var jt=!1;switch(Fe.keyCode){case e.keys.UP:we(0,e.keyPanSpeed),jt=!0;break;case e.keys.BOTTOM:we(0,-e.keyPanSpeed),jt=!0;break;case e.keys.LEFT:we(e.keyPanSpeed,0),jt=!0;break;case e.keys.RIGHT:we(-e.keyPanSpeed,0),jt=!0}jt&&(Fe.preventDefault(),e.update())}(Fe)}function en(Fe){if(!1!==e.enabled){switch(Fe.preventDefault(),Fe.touches.length){case 1:switch(e.touches.ONE){case uh.ROTATE:if(!1===e.enableRotate)return;nt(Fe),a=s.TOUCH_ROTATE;break;case uh.PAN:if(!1===e.enablePan)return;pe(Fe),a=s.TOUCH_PAN;break;default:a=s.NONE}break;case 2:switch(e.touches.TWO){case uh.DOLLY_PAN:if(!1===e.enableZoom&&!1===e.enablePan)return;(function Pt(Fe){e.enableZoom&&dt(Fe),e.enablePan&&pe(Fe)})(Fe),a=s.TOUCH_DOLLY_PAN;break;case uh.DOLLY_ROTATE:if(!1===e.enableZoom&&!1===e.enableRotate)return;(function Vt(Fe){e.enableZoom&&dt(Fe),e.enableRotate&&nt(Fe)})(Fe),a=s.TOUCH_DOLLY_ROTATE;break;default:a=s.NONE}break;default:a=s.NONE}a!==s.NONE&&e.dispatchEvent(r)}}function wt(Fe){if(!1!==e.enabled)switch(Fe.preventDefault(),Fe.stopPropagation(),a){case s.TOUCH_ROTATE:if(!1===e.enableRotate)return;Ht(Fe),e.update();break;case s.TOUCH_PAN:if(!1===e.enablePan)return;$t(Fe),e.update();break;case s.TOUCH_DOLLY_PAN:if(!1===e.enableZoom&&!1===e.enablePan)return;(function It(Fe){e.enableZoom&&rt(Fe),e.enablePan&&$t(Fe)})(Fe),e.update();break;case s.TOUCH_DOLLY_ROTATE:if(!1===e.enableZoom&&!1===e.enableRotate)return;(function mt(Fe){e.enableZoom&&rt(Fe),e.enableRotate&&Ht(Fe)})(Fe),e.update();break;default:a=s.NONE}}function Cn(Fe){!1!==e.enabled&&(e.dispatchEvent(o),a=s.NONE)}function Sn(Fe){!1!==e.enabled&&Fe.preventDefault()}e.domElement.addEventListener("contextmenu",Sn),e.domElement.addEventListener("pointerdown",Re),e.domElement.addEventListener("wheel",Kt),e.domElement.addEventListener("touchstart",en),e.domElement.addEventListener("touchend",Cn),e.domElement.addEventListener("touchmove",wt),this.update()};(Lx.prototype=Object.create(Uc.prototype)).constructor=Lx;var l8=function(t,n){Lx.call(this,t,n),this.screenSpacePanning=!1,this.mouseButtons.LEFT=dh.PAN,this.mouseButtons.RIGHT=dh.ROTATE,this.touches.ONE=uh.PAN,this.touches.TWO=uh.DOLLY_ROTATE};(l8.prototype=Object.create(Uc.prototype)).constructor=l8;var c8=function(){};c8.prototype={constructor:c8,parse:function(t,n){void 0===n&&(n={});var e=void 0!==n.binary&&n.binary,i=[],r=0;t.traverse(function(Ce){if(Ce.isMesh){var we=Ce.geometry;if(!0!==we.isBufferGeometry)throw new Error("THREE.STLExporter: Geometry is not of type THREE.BufferGeometry.");var j=we.index,me=we.getAttribute("position");r+=null!==j?j.count/3:me.count/3,i.push({object3d:Ce,geometry:we})}});var o,s=80;if(!0===e){var l=new ArrayBuffer(2*r+3*r*4*4+80+4);(o=new DataView(l)).setUint32(s,r,!0),s+=4}else o="",o+="solid exported\n";for(var c=new Y,d=new Y,u=new Y,h=new Y,m=new Y,A=new Y,v=0,x=i.length;v>1|(21845&ao)<<1;Ox[ao]=((65280&(Cm=(61680&(Cm=(52428&Cm)>>2|(13107&Cm)<<2))>>4|(3855&Cm)<<4))>>8|(255&Cm)<<8)>>1}var uu=function(t,n,e){for(var i=t.length,r=0,o=new Pa(n);r>l]=c}else for(a=new Pa(i),r=0;r>15-t[r]);return a},Em=new Tr(288);for(ao=0;ao<144;++ao)Em[ao]=8;for(ao=144;ao<256;++ao)Em[ao]=9;for(ao=256;ao<280;++ao)Em[ao]=7;for(ao=280;ao<288;++ao)Em[ao]=8;var Ux=new Tr(32);for(ao=0;ao<32;++ao)Ux[ao]=5;var tie=uu(Em,9,0),iie=uu(Ux,5,0),Hx=function(t){return(t+7)/8|0},Mm=function(t,n,e){return(null==n||n<0)&&(n=0),(null==e||e>t.length)&&(e=t.length),new Tr(t.subarray(n,e))},oie=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],rr=function(t,n,e){var i=new Error(n||oie[t]);if(i.code=t,Error.captureStackTrace&&Error.captureStackTrace(i,rr),!e)throw i;return i},hu=function(t,n,e){var i=n/8|0;t[i]|=e<<=7&n,t[i+1]|=e>>8},s_=function(t,n,e){var i=n/8|0;t[i]|=e<<=7&n,t[i+1]|=e>>8,t[i+2]|=e>>16},A3=function(t,n){for(var e=[],i=0;ih&&(h=o[i].s);var m=new Pa(h+1),A=g3(e[d-1],m,0);if(A>n){i=0;var v=0,x=A-n,C=1<n))break;v+=C-(1<>=x;v>0;){var S=o[i].s;m[S]=0&&v;--i){var M=o[i].s;m[M]==n&&(--m[M],++v)}A=n}return{t:new Tr(m),l:A}},g3=function(t,n,e){return-1==t.s?Math.max(g3(t.l,n,e+1),g3(t.r,n,e+1)):n[t.s]=e},h8=function(t){for(var n=t.length;n&&!t[--n];);for(var e=new Pa(++n),i=0,r=t[0],o=1,s=function(l){e[i++]=l},a=1;a<=n;++a)if(t[a]==r&&a!=n)++o;else{if(!r&&o>2){for(;o>138;o-=138)s(32754);o>2&&(s(o>10?o-11<<5|28690:o-3<<5|12305),o=0)}else if(o>3){for(s(r),--o;o>6;o-=6)s(8304);o>2&&(s(o-3<<5|8208),o=0)}for(;o--;)s(r);o=1,r=t[a]}return{c:e.subarray(0,i),n}},a_=function(t,n){for(var e=0,i=0;i>8,t[r+2]=255^t[r],t[r+3]=255^t[r+1];for(var o=0;o4&&!re[Nx[Ce-1]];--Ce);var X,Ae,ke,Qe,we=c+5<<3,j=a_(r,Em)+a_(o,Ux)+s,me=a_(r,h)+a_(o,v)+s+14+3*Ce+a_($,re)+2*$[16]+3*$[17]+7*$[18];if(l>=0&&we<=j&&we<=me)return f8(n,d,t.subarray(l,l+c));if(hu(n,d,1+(me15&&(hu(n,d,ie[ee]>>5&127),d+=ie[ee]>>12)}}else X=tie,Ae=Em,ke=iie,Qe=Ux;for(ee=0;ee255){var Ne;s_(n,d,X[257+(Ne=nt>>18&31)]),d+=Ae[Ne+257],Ne>7&&(hu(n,d,nt>>23&31),d+=r_[Ne]);var pe=31&nt;s_(n,d,ke[pe]),d+=Qe[pe],pe>3&&(s_(n,d,nt>>5&8191),d+=o_[pe])}else s_(n,d,X[nt]),d+=Ae[nt]}return s_(n,d,X[256]),d+Ae[256]},sie=new Px([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),p8=new Tr(0),lie=function(){for(var t=new Int32Array(256),n=0;n<256;++n){for(var e=n,i=9;--i;)e=(1&e&&-306674912)^e>>>1;t[n]=e}return t}(),b3=function(){var t=-1;return{p:function(n){for(var e=t,i=0;i>>8;t=e},d:function(){return~t}}},_3=function(t,n,e,i,r){if(!r&&(r={l:1},n.dictionary)){var o=n.dictionary.subarray(-32768),s=new Tr(o.length+t.length);s.set(o),s.set(t,o.length),t=s,r.w=o.length}return function(t,n,e,i,r,o){var s=o.z||t.length,a=new Tr(i+s+5*(1+Math.ceil(s/7e3))+r),l=a.subarray(i,a.length-r),c=o.l,d=7&(o.r||0);if(n){d&&(l[0]=o.r>>3);for(var u=sie[n-1],h=u>>13,m=8191&u,A=(1<7e3||re>24576)&&(X>423||!c)){d=m8(t,l,0,M,B,P,ee,re,Ce,te-Ce,d),re=$=ee=0,Ce=te;for(var Ae=0;Ae<286;++Ae)B[Ae]=0;for(Ae=0;Ae<30;++Ae)P[Ae]=0}var ke=2,Qe=0,ht=m,ye=j-me&32767;if(X>2&&we==S(te-ye))for(var fe=Math.min(h,X)-1,ie=Math.min(32767,te),Ne=Math.min(258,X);ye<=ie&&--ht&&j!=me;){if(t[te+ke]==t[te+ke-ye]){for(var nt=0;ntke){if(ke=nt,Qe=ye,nt>fe)break;var pe=Math.min(ye,nt-2),dt=0;for(Ae=0;Aedt&&(dt=Ht,me=Pt)}}}ye+=(j=me)-(me=v[j])&32767}if(Qe){M[re++]=268435456|h3[ke]<<18|u8[Qe];var $t=31&h3[ke],rt=31&u8[Qe];ee+=r_[$t]+o_[rt],++B[257+$t],++P[rt],ne=te+ke,++$}else M[re++]=t[te],++B[t[te]]}}for(te=Math.max(te,ne);te=s&&(l[d/8|0]=c,It=s),d=f8(l,d+1,t.subarray(te,It))}o.i=s}return Mm(a,0,i+Hx(d)+r)}(t,null==n.level?6:n.level,null==n.mem?r.l?Math.ceil(1.5*Math.max(8,Math.min(13,Math.log(t.length)))):20:12+n.mem,e,i,r)},v3=function(t,n){var e={};for(var i in t)e[i]=t[i];for(var i in n)e[i]=n[i];return e},_o=function(t,n,e){for(;e;++n)t[n]=e,e>>>=8};function w3(t,n){return _3(t,n||{},0,0)}var x8=function(t,n,e,i){for(var r in t){var o=t[r],s=n+r,a=i;Array.isArray(o)&&(a=v3(i,o[1]),o=o[0]),o instanceof Tr?e[s]=[o,a]:(e[s+="/"]=[new Tr(0),a],x8(o,s,e,i))}},vie=typeof TextEncoder<"u"&&new TextEncoder,C8=typeof TextDecoder<"u"&&new TextDecoder;try{C8.decode(p8,{stream:!0})}catch{}function Tm(t,n){if(n){for(var e=new Tr(t.length),i=0;i>1)),s=0,a=function(d){o[s++]=d};for(i=0;io.length){var l=new Tr(s+8+(r-i<<1));l.set(o),o=l}var c=t.charCodeAt(i);c<128||n?a(c):c<2048?(a(192|c>>6),a(128|63&c)):c>55295&&c<57344?(a(240|(c=65536+(1047552&c)|1023&t.charCodeAt(++i))>>18),a(128|c>>12&63),a(128|c>>6&63),a(128|63&c)):(a(224|c>>12),a(128|c>>6&63),a(128|63&c))}return Mm(o,0,s)}var Qx=function(t){var n=0;if(t)for(var e in t){var i=t[e].length;i>65535&&rr(9),n+=i+4}return n},x3=function(t,n,e,i,r,o,s,a){var l=i.length,c=e.extra,d=a&&a.length,u=Qx(c);_o(t,n,null!=s?33639248:67324752),n+=4,null!=s&&(t[n++]=20,t[n++]=e.os),t[n]=20,n+=2,t[n++]=e.flag<<1|(o<0&&8),t[n++]=r&&8,t[n++]=255&e.compression,t[n++]=e.compression>>8;var h=new Date(null==e.mtime?Date.now():e.mtime),m=h.getFullYear()-1980;if((m<0||m>119)&&rr(10),_o(t,n,m<<25|h.getMonth()+1<<21|h.getDate()<<16|h.getHours()<<11|h.getMinutes()<<5|h.getSeconds()>>1),n+=4,-1!=o&&(_o(t,n,e.crc),_o(t,n+4,o<0?-o-2:o),_o(t,n+8,e.size)),_o(t,n+12,l),_o(t,n+14,u),n+=16,null!=s&&(_o(t,n,d),_o(t,n+6,e.attrs),_o(t,n+10,s),n+=14),t.set(i,n),n+=l,u)for(var A in c){var v=c[A],x=v.length;_o(t,n,+A),_o(t,n+2,x),t.set(v,n+4),n+=4+x}return d&&(t.set(a,n),n+=d),n};function cHe(t){return` \n \n \n \n \n \n`}function E8(){return E8=f(function*(t){const{vertices:n,triangles:e,volumes:i}=function Cie(t){const n=[],e=[],i=[],r=new Map,o=new Map;for(const a of t.children)M8(a,n,e,r,1,o,i);return{vertices:n,triangles:e,volumes:i}}(t),r=function uHe(t,n){const i=function fHe(t){let n=" \n";for(const e of t)n+=` ${e}\n`;return n+=" \n",n}(t),r=function mHe(t){let n=" \n";for(const e of t)n+=` ${e}\n`;return n+=" \n",n}(n);return'\n\n PrusaSlicer-2.7.2\n \n \n \n'+i+r+' \n \n \n \n\n'}(n,e),o=function aHe(t){let n='\n\n \n \n';for(const e of t)n+=cHe(e);return n+=" \n\n",n}(i);return function rHe(t,n){n||(n={});var e={},i=[];x8(t,"",e,n);var r=0,o=0;for(var s in e){var a=e[s],l=a[0],c=a[1],d=0==c.level?0:8,h=(u=Tm(s)).length,m=c.comment,A=m&&Tm(m),v=A&&A.length,x=Qx(c.extra);h>65535&&rr(11);var C=d?w3(l,c):l,w=C.length,S=b3();S.p(l),i.push(v3(c,{size:l.length,crc:S.d(),c:C,f:u,m:A,u:h!=s.length||A&&m.length!=v,o:r,compression:d})),r+=30+h+x+w,o+=76+2*(h+x)+(v||0)+w}for(var M=new Tr(o+22),B=r,P=o-r,$=0;$\n \n \n')},Metadata:{"Slic3r_PE_model.config":Tm(o)},"[Content_Types].xml":Tm('\n\n \n \n')},{comment:"created by CodeCharta"}).buffer}),E8.apply(this,arguments)}function M8(t,n,e,i,r,o,s,a=void 0){if(!t.visible)return;for(const d of t.children){let u=t.matrix;a&&(u=a.clone().multiply(t.matrix)),M8(d,n,e,i,r,o,s,u)}const l=function Eie(t){const n=new Map;if(t.geometry.attributes.color)for(let e=0;es);n.set(i,r)}return n}(t),c=new Map;for(const[d,u]of l.entries()){const h=e.length;Mie(n,i,c,u,t,a),Sie(t.geometry,e,c,u),Tie(t,d,h,e.length-1,s,r,o),r++}}function Mie(t,n,e,i,r,o){const s=r.geometry.attributes.position;for(const a of i){const l=new Y(s.getX(a),s.getY(a),s.getZ(a));l.applyMatrix4(r.matrix),o&&l.applyMatrix4(o);const c=``;n.has(c)?e.set(a,n.get(c)):(t.push(c),n.set(c,t.length-1),e.set(a,t.length-1))}}function Sie(t,n,e,i){if(t.index){const r=t.index;for(let o=0;o`;n.push(c)}}}else for(let r=0;r`;n.push(o)}}function Tie(t,n,e,i,r,o,s){s.has(n)||s.set(n,s.size+1);const a=s.get(n);r.push({id:o,name:"Map"===t.name?`${t.name} 0x${n}`:t.name,color:n,extruder:a,firstTriangleId:e,lastTriangleId:i})}function S8(t,n){return(t instanceof Nn?[t.getX(n),t.getY(n),t.getZ(n)]:[t[n],t[n+1],t[n+2]]).map(i=>Math.round(255*i).toString(16).padStart(2,"0")).join("")}"function"==typeof queueMicrotask?queueMicrotask:"function"==typeof setTimeout&&setTimeout;class ad extends Ci{constructor(n,e){super(),this.colorChangeStrategy=e,this.name=n,this.boundingBoxCalculated=!1,this.material=new qc}updateColor(n){this.colorChangeStrategy.execute(n,this);for(const e of this.children)e instanceof ad&&e.updateColor(n)}getWidth(){return this.updateBoundingBox(),this.geometry.boundingBox.max.x-this.geometry.boundingBox.min.x}getHeight(){return this.updateBoundingBox(),this.geometry.boundingBox.max.z-this.geometry.boundingBox.min.z}getDepth(){return this.updateBoundingBox(),this.geometry.boundingBox.max.y-this.geometry.boundingBox.min.y}isGeneralSizeChangeMesh(){return"changeSize"in this}updateBoundingBox(){this.boundingBoxCalculated||(this.geometry.computeBoundingBox(),this.boundingBoxCalculated=!0)}}class gHe{create(n){return f(function*(){const{width:e,secondRowVisible:i,mapSideOffset:r,baseplateHeight:o,frontTextSize:s,secondRowTextSize:a}=n;let l=5;const c=Math.sqrt(2*Math.pow(r,2))/(Math.sqrt(2)-1)-1;c{e.geometry=r});const i=new Ls;return i.copy(n.defaultMaterial),i.polygonOffset=!0,i.polygonOffsetUnits=1,i.polygonOffsetFactor=.1,e.material=i,e.updateColor(n.numberOfColors),new Promise(r=>{r(e)})})()}changeSize(n){this.boundingBoxCalculated=!1,this.createBaseplateGeometryStrategy.create(n).then(e=>{this.geometry=e})}}class OA extends ad{constructor(n,e,i=1,r=!0){super(n,e),this.minWidth=i,this.manualVisibility=r}setManualVisibility(n){this.manualVisibility=n,this.updateVisibility()}setCurrentWidth(n){this.currentWidth=n,this.updateVisibility()}updateVisibility(){this.visible=this.manualVisibility&&this.visibleBecauseOfColor&&(!this.currentWidth||this.currentWidth>=this.minWidth)}updateColor(n){this.visibleBecauseOfColor=this.colorChangeStrategy.execute(n,this);for(const e of this.children)e instanceof ad&&e.updateColor(n);this.updateVisibility()}}class sl{execute(n,e){if(n<=1)return!1;let i;return i=n<4?[1,1,1]:4===n?[1,1,0]:[1,1,1],e.material.color.setRGB(i[0],i[1],i[2]),!0}}class vHe extends OA{constructor(){super("Map",new sl,1,!1)}init(n){var e=this;return f(function*(){e.material=n.originalMapMesh.clone().material,e.originalColors=n.originalMapMesh.geometry.attributes.color;const i=n.originalMapMesh.geometry.clone();return i.computeBoundingBox(),i.rotateX(Math.PI/2),e.updateMapGeometry(n,i),i.computeBoundingBox(),i.rotateZ(-Math.PI/2),e.geometry=i,e})()}updateMapGeometry(n,e){const i=n.width-2*n.mapSideOffset,o=i/e.boundingBox.max.x;return e.scale(o,o,o),e.translate(-i/2,i/2,0),this.updateMapColors(this.originalColors,e,n.numberOfColors),e}updateMapColors(n,e,i){const r=[];for(let o=0;o.75&&a>.75?c=i<4?[1,1,1]:[1,1,0]:s>.45&&a<.1?c=i<4?[1,1,1]:[1,0,0]:s<5&&a>.6?c=i<4?[1,1,1]:[0,1,0]:(console.error("Unknown color"),c=[1,1,1]),r.push(...c)}e.setAttribute("color",new wn(r,3))}changeSize(n,e){var i=this;return f(function*(){const r=(n.width-2*n.mapSideOffset)/(e-2*n.mapSideOffset);i.geometry.scale(r,r,r)})()}updateColor(n){this.updateMapColors(this.originalColors,this.geometry,n)}}var UA=function(t){bo.call(this,t),this.defaultDPI=90,this.defaultUnit="px"};UA.prototype=Object.assign(Object.create(bo.prototype),{constructor:UA,load:function(t,n,e,i){var r=this,o=new Ll(r.manager);o.setPath(r.path),o.setRequestHeader(r.requestHeader),o.setWithCredentials(r.withCredentials),o.load(t,function(s){try{n(r.parse(s))}catch(a){i?i(a):console.error(a),r.manager.itemError(t)}},e,i)},parse:function(t){var n=this;function o(ye,fe,ie,Ne,nt,pe,dt,Pt){if(0!=fe&&0!=ie){Ne=Ne*Math.PI/180,fe=Math.abs(fe),ie=Math.abs(ie);var Vt=(dt.x-Pt.x)/2,Ht=(dt.y-Pt.y)/2,$t=Math.cos(Ne)*Vt+Math.sin(Ne)*Ht,rt=-Math.sin(Ne)*Vt+Math.cos(Ne)*Ht,It=fe*fe,mt=ie*ie,Me=$t*$t,Re=rt*rt,de=Me/It+Re/mt;if(de>1){var ae=Math.sqrt(de);It=(fe*=ae)*fe,mt=(ie*=ae)*ie}var Rt=It*Re+mt*Me,qe=Math.sqrt(Math.max(0,(It*mt-Rt)/Rt));nt===pe&&(qe=-qe);var Kt=qe*fe*rt/ie,Ot=-qe*ie*$t/fe,en=Math.cos(Ne)*Kt-Math.sin(Ne)*Ot+(dt.x+Pt.x)/2,wt=Math.sin(Ne)*Kt+Math.cos(Ne)*Ot+(dt.y+Pt.y)/2,Cn=s(1,0,($t-Kt)/fe,(rt-Ot)/ie),Sn=s(($t-Kt)/fe,(rt-Ot)/ie,(-$t-Kt)/fe,(-rt-Ot)/ie)%(2*Math.PI);ye.currentPath.absellipse(en,wt,fe,ie,Cn,Cn+Sn,0===pe,Ne)}else ye.lineTo(Pt.x,Pt.y)}function s(ye,fe,ie,Ne){var nt=ye*ie+fe*Ne,pe=Math.sqrt(ye*ye+fe*fe)*Math.sqrt(ie*ie+Ne*Ne),dt=Math.acos(Math.max(-1,Math.min(1,nt/pe)));return ye*Ne-fe*ie<0&&(dt=-dt),dt}function m(ye,fe){fe=Object.assign({},fe);var ie={};if(ye.hasAttribute("class"))for(var Ne=ye.getAttribute("class").split(/\s/).filter(Boolean).map(Vt=>Vt.trim()),nt=0;nt=0;dt--){var Pt=pe[dt].trim();if(""!==Pt){var Vt=Pt.indexOf("("),Ht=Pt.length;if(Vt>0&&Vt=1&&(nt=Ne=rt[0],rt.length>=2&&(nt=rt[1]),ie.translate(Ne,nt));break;case"rotate":if(rt.length>=1){var It,mt=0,Me=0;It=-rt[0]*Math.PI/180,rt.length>=3&&(mt=rt[1],Me=rt[2]),we.identity().translate(-mt,-Me),j.identity().rotate(It),me.multiplyMatrices(j,we),we.identity().translate(mt,Me),ie.multiplyMatrices(we,me)}break;case"scale":if(rt.length>=1){var Re=rt[0],de=Re;rt.length>=2&&(de=rt[1]),ie.scale(Re,de)}break;case"skewX":1===rt.length&&ie.set(1,Math.tan(rt[0]*Math.PI/180),0,0,1,0,0,0,1);break;case"skewY":1===rt.length&&ie.set(1,0,0,Math.tan(rt[0]*Math.PI/180),1,0,0,0,1);break;case"matrix":6===rt.length&&ie.set(rt[0],rt[2],rt[4],rt[1],rt[3],rt[5],0,0,1)}}fe.premultiply(ie)}}return fe}(ye);return ne.length>0&&fe.premultiply(ne[ne.length-1]),ke.copy(fe),ne.push(fe),fe}(ye),Ne=!0,nt=null;switch(ye.nodeName){case"svg":break;case"style":!function r(ye){if(ye.sheet&&ye.sheet.cssRules&&ye.sheet.cssRules.length)for(var fe=0;fepe.trim()),nt=0;nt0&&(ie.copy(nt),fe.currentPath.currentPoint.copy(ie),pe=!0);break;default:console.warn(rt)}dt=!1}return fe}(ye));break;case"rect":fe=m(ye,fe),nt=function a(ye){var fe=w(ye.getAttribute("x")||0),ie=w(ye.getAttribute("y")||0),Ne=w(ye.getAttribute("rx")||0),nt=w(ye.getAttribute("ry")||0),pe=w(ye.getAttribute("width")),dt=w(ye.getAttribute("height")),Pt=new xh;return Pt.moveTo(fe+2*Ne,ie),Pt.lineTo(fe+pe-2*Ne,ie),(0!==Ne||0!==nt)&&Pt.bezierCurveTo(fe+pe,ie,fe+pe,ie,fe+pe,ie+2*nt),Pt.lineTo(fe+pe,ie+dt-2*nt),(0!==Ne||0!==nt)&&Pt.bezierCurveTo(fe+pe,ie+dt,fe+pe,ie+dt,fe+pe-2*Ne,ie+dt),Pt.lineTo(fe+2*Ne,ie+dt),(0!==Ne||0!==nt)&&Pt.bezierCurveTo(fe,ie+dt,fe,ie+dt,fe,ie+dt-2*nt),Pt.lineTo(fe,ie+2*nt),(0!==Ne||0!==nt)&&Pt.bezierCurveTo(fe,ie,fe,ie,fe+2*Ne,ie),Pt}(ye);break;case"polygon":fe=m(ye,fe),nt=function l(ye){var Ne=new xh,nt=0;return ye.getAttribute("points").replace(/(-?[\d\.?]+)[,|\s](-?[\d\.?]+)/g,function fe(pe,dt,Pt){var Vt=w(dt),Ht=w(Pt);0===nt?Ne.moveTo(Vt,Ht):Ne.lineTo(Vt,Ht),nt++}),Ne.currentPath.autoClose=!0,Ne}(ye);break;case"polyline":fe=m(ye,fe),nt=function c(ye){var Ne=new xh,nt=0;return ye.getAttribute("points").replace(/(-?[\d\.?]+)[,|\s](-?[\d\.?]+)/g,function fe(pe,dt,Pt){var Vt=w(dt),Ht=w(Pt);0===nt?Ne.moveTo(Vt,Ht):Ne.lineTo(Vt,Ht),nt++}),Ne.currentPath.autoClose=!1,Ne}(ye);break;case"circle":fe=m(ye,fe),nt=function d(ye){var fe=w(ye.getAttribute("cx")),ie=w(ye.getAttribute("cy")),Ne=w(ye.getAttribute("r")),nt=new AA;nt.absarc(fe,ie,Ne,0,2*Math.PI);var pe=new xh;return pe.subPaths.push(nt),pe}(ye);break;case"ellipse":fe=m(ye,fe),nt=function u(ye){var fe=w(ye.getAttribute("cx")),ie=w(ye.getAttribute("cy")),Ne=w(ye.getAttribute("rx")),nt=w(ye.getAttribute("ry")),pe=new AA;pe.absellipse(fe,ie,Ne,nt,0,2*Math.PI);var dt=new xh;return dt.subPaths.push(pe),dt}(ye);break;case"line":fe=m(ye,fe),nt=function h(ye){var fe=w(ye.getAttribute("x1")),ie=w(ye.getAttribute("y1")),Ne=w(ye.getAttribute("x2")),nt=w(ye.getAttribute("y2")),pe=new xh;return pe.moveTo(fe,ie),pe.lineTo(Ne,nt),pe.currentPath.autoClose=!1,pe}(ye);break;case"defs":Ne=!1;break;case"use":fe=m(ye,fe);var pe=ye.href.baseVal.substring(1),dt=ye.viewportElement.getElementById(pe);dt?e(dt,fe):console.warn("SVGLoader: 'use node' references non-existent node id: "+pe)}if(nt&&(void 0!==fe.fill&&"none"!==fe.fill&&nt.color.setStyle(fe.fill),function B(ye,fe){function ie(rt){Ae.set(rt.x,rt.y,1).applyMatrix3(fe),rt.set(Ae.x,Ae.y)}for(var Ne=function P(ye){return 0!==ye.elements[1]||0!==ye.elements[3]}(fe),nt=ye.subPaths,pe=0,dt=nt.length;pe0?ke.copy(ne[ne.length-1]):ke.identity())}}(Qe.documentElement,{fill:"#000",fillOpacity:1,strokeOpacity:1,strokeWidth:1,strokeLineJoin:"miter",strokeLineCap:"butt",strokeMiterLimit:4}),{paths:te,xml:Qe.documentElement}}}),UA.getStrokeStyle=function(t,n,e,i,r){return{strokeColor:n=void 0!==n?n:"#000",strokeWidth:t=void 0!==t?t:1,strokeLineJoin:e=void 0!==e?e:"miter",strokeLineCap:i=void 0!==i?i:"butt",strokeMiterLimit:r=void 0!==r?r:4}},UA.pointsToStroke=function(t,n,e,i){var r=[],o=[],s=[];if(0===UA.pointsToStrokeWithBuffers(t,n,e,i,r,o,s))return null;var a=new Bn;return a.setAttribute("position",new wn(r,3)),a.setAttribute("normal",new wn(o,3)),a.setAttribute("uv",new wn(s,2)),a},UA.pointsToStrokeWithBuffers=function(){var t=new ut,n=new ut,e=new ut,i=new ut,r=new ut,o=new ut,s=new ut,a=new ut,l=new ut,c=new ut,d=new ut,u=new ut,h=new ut,m=new ut,A=new ut,v=new ut,x=new ut;return function(C,w,S,M,B,P,$,ee){S=void 0!==S?S:12,M=void 0!==M?M:.001,ee=void 0!==ee?ee:0;var te=(C=function Kt(Ot){for(var en=!1,wt=1,Cn=Ot.length-1;wt=M&&Sn.push(Ot[wt]);return Sn.push(Ot[Ot.length-1]),Sn}(C)).length;if(te<2)return 0;var ne,we,Ae,ke,Qe,re=C[0].equals(C[te-1]),Ce=C[0],j=w.strokeWidth/2,me=1/(te-1),X=0,ht=!1,ye=0,fe=3*ee,ie=2*ee;Me(C[0],C[1],t).multiplyScalar(j),a.copy(C[0]).sub(t),l.copy(C[0]).add(t),c.copy(a),d.copy(l);for(var Ne=1;Ne[]));var x=Math.log10(1/n),C=Math.pow(10,x);for(h=0;h{r.load(i,function(a){const l=a.paths,c=[];for(const A of l){const v=A.toShapes(!1,!0);for(const x of v){const C=new $c(x,{depth:n.printHeight,bevelEnabled:!1});c.push(C)}}const d=E3.mergeBufferGeometries(c);d.computeBoundingBox();const m=e.size/Math.max(d.boundingBox.max.x-d.boundingBox.min.x,d.boundingBox.max.y-d.boundingBox.min.y);d.scale(m,m,1),d.center(),"back"===e.side?d.rotateZ(Math.PI):(d.rotateZ(Math.PI),d.rotateY(Math.PI)),o(d)},void 0,function(a){console.error(`Error loading ${i}`),s(a)})})})()}}class yHe extends OA{constructor(n){super(n,new sl,120,!0),this.name="BackMWLogo"}init(n){var e=this;return f(function*(){const i=new zx;return e.geometry=yield i.create(n,{filePath:"codeCharta/assets/mw_logo_text.svg",size:.31,side:"back"}),e.position.set(0,.37,n.printHeight/2-n.baseplateHeight),e.updateColor(n.numberOfColors),e})()}}class Fie{create(n,e){var i=this;return f(function*(){const{font:r,side:o,text:s,xPosition:a,yPosition:l,align:c}=e;if(!s)return new Bn;let{textSize:d}=e;d||(d=.025);const u="center"===c&&s.includes("\n")?i.createMultilineCenteredTextGeometry(s,r,d,n.printHeight):new Eb(s,{font:r,size:d,height:n.printHeight});return u.center(),"back"===o&&u.rotateY(Math.PI),u.computeBoundingBox(),u.translate(("front"===o?1:-1)*(("center"===c?0:(u.boundingBox.max.x-u.boundingBox.min.x)/2)+a),l,"front"===o?n.printHeight/2:n.printHeight/2-n.baseplateHeight),u})()}createMultilineCenteredTextGeometry(n,e,i,r){const o=n.split("\n"),s=[];for(const[a,l]of o.entries()){const c=new Eb(l,{font:e,size:i,height:r});c.center(),c.translate(0,-a*i*1.5,0),s.push(c)}return E3.mergeBufferGeometries(s)}}class Gx extends OA{constructor(n,e=new sl,i,r,o,s=new Fie){super(n,e,i,r),this.createTextGeometryOptions=o,this.createTextGeometryStrategy=s}init(n){var e=this;return f(function*(){return e.geometry=yield e.createTextGeometryStrategy.create(n,e.createTextGeometryOptions),e.updateColor(n.numberOfColors),e})()}updateText(n){var e=this;return f(function*(){e.geometry=yield e.createTextGeometryStrategy.create(n,e.createTextGeometryOptions),e.boundingBoxCalculated=!1})()}updateTextGeometryOptions(n){this.createTextGeometryOptions.text=n}}class wHe extends Gx{constructor(n,e){const i={font:e,text:"IT Stabilization & Modernization\nmaibornwolff.de/service/it-sanierung",side:"back",xPosition:0,yPosition:.23,align:"center"};super(n,new sl,200,!0,i)}}var xHe=p(8314);class CHe extends OA{constructor(n){super(n,new sl,0,!1)}init(n){var e=this;return f(function*(){return e.geometry=yield e.create(n),e.position.set(.45,.45,n.printHeight/2-n.baseplateHeight),e.updateColor(n.numberOfColors),e})()}changeText(n){var e=this;return f(function*(){e.geometry=yield e.create(n)})()}create(n){var e=this;return f(function*(){if(!n.qrCodeText||0===n.qrCodeText.length)return new Bn;const i=document.createElement("canvas");yield xHe.mo(i,n.qrCodeText,{errorCorrectionLevel:"H"});const o=i.getContext("2d").getImageData(0,0,i.width,i.height),s=[],a=.6/o.width;for(let l=0;lsuper.init,i=this;return f(function*(){const r=yield i.createColoredBackTextChildren(n);for(const o of r)i.add(o);return e().call(i,n),i})()}createTextGeometry(n,e,i){var r=this;return f(function*(){return n.create(i,{font:r.font,text:e,side:"back",xPosition:.05,yPosition:.015,align:"left"})})()}getText(){return`${this.metricDescriptionBlockOptions.nodeMetricData.name}\n${this.metricDescriptionBlockOptions.title}\n`}createColoredBackTextChildren(n){var e=this;return f(function*(){const i=e.metricDescriptionBlockOptions,r=[],o=["Value ranges:",`${i.nodeMetricData.minValue} - ${i.colorRange.from-1}`,"/",`${i.colorRange.from} - ${i.colorRange.to-1}`,"/",`${i.colorRange.to} - ${i.nodeMetricData.maxValue}`],s=[new sl,new SHe,new sl,new THe,new sl,new FHe];let a=.05;for(let l=0;l{if(e instanceof Ci&&e.visible){e.geometry.computeBoundingBox();const{min:i,max:r}=e.geometry.boundingBox;n.min=Math.min(n.min,i.x),n.max=Math.max(n.max,r.x)}}),this.position.x=(n.max-n.min)/2}createColorAttributes(){return{colorIcon:"color_icon_for_3D_print.svg",colorIconScale:.075}}createHeightAttributes(){return{heightIcon:"height_icon_for_3D_print.svg",heightIconScale:.09}}createAreaAttributes(){return{areaIcon:"area_icon_for_3D_print.svg",areaIconScale:.075}}}class BHe extends ad{constructor(n){super("BackPrintContainer",new sl),this.font=n}init(n){var e=this;return f(function*(){return e.childrenMeshes=new Map,e.childrenMeshes.set("BackMWLogo",new yHe("BackMWLogo")),e.childrenMeshes.set("BackBelowLogoText",new wHe("BackBelowLogoText",e.font)),e.childrenMeshes.set("QrCode",new CHe("QrCode")),e.childrenMeshes.set("CodeChartaLogo",new EHe("CodeChartaLogo")),e.childrenMeshes.set("CodeChartaText",new MHe("CodeChartaText",e.font)),e.childrenMeshes.set("MetricDescriptionsContainer",new IHe("MetricDescriptionsContainer",e.font)),yield Promise.all([...e.childrenMeshes.values()].map(function(){var i=f(function*(r){yield r.init(n),e.add(r)});return function(r){return i.apply(this,arguments)}}())),e.changeSize(n,1),e})()}changeSize(n,e){const i=n.width/e;this.scale.set(this.scale.x*i,this.scale.y*i,this.scale.z),this.traverse(r=>{r instanceof OA&&r.setCurrentWidth(n.width)})}isQRCodeVisible(){return this.childrenMeshes.get("QrCode").visible}updateQrCodeText(n,e){var i=this;return f(function*(){e.qrCodeText=n,yield i.childrenMeshes.get("QrCode").changeText(e)})()}updateQrCodeVisibility(n){this.childrenMeshes.get("QrCode").setManualVisibility(n)}getChildrenMeshes(){return this.childrenMeshes}}class F8{execute(n,e){let i;return i=n<4?[1,1,1]:4===n?[1,1,0]:[1,1,1],e.material.color.setRGB(i[0],i[1],i[2]),!0}}class DHe extends Gx{constructor(n,e,i){let r=i.frontText;r||(r="FrontText");const o={font:e,side:"front",text:r,xPosition:0,yPosition:i.frontTextSize/2,textSize:i.frontTextSize,align:"center"};super(n,new F8,0,!0,o),this.name="Front Text"}}class RHe extends Gx{constructor(n,e,i){const r={font:e,text:i.secondRowText,side:"front",xPosition:0,yPosition:-i.secondRowTextSize,textSize:i.secondRowTextSize,align:"center"};super(n,new F8,0,!1,r)}}class k8 extends ad{constructor(n,e){super(n,new F8),this.alignment=e}changeRelativeSize(n){const e=this.getWidth();this.boundingBoxCalculated=!1;const i=n.secondRowVisible,r=i?(n.frontTextSize+n.secondRowTextSize)/n.frontTextSize:1;this.scale.x=r,this.scale.y=r;const o=i?-1:1,s="left"===this.alignment?-1:1;this.translateY(o*n.secondRowTextSize);const a=i?e/this.getWidth():this.getWidth()/e;this.translateX(2*a*s*o)}}class LHe extends k8{constructor(n){super(n,"right")}init(n,e=new zx){var i=this;return f(function*(){const r=n.frontTextSize*n.width/250;return i.geometry=yield e.create(n,{filePath:"codeCharta/assets/mw_logo.svg",size:r,side:"front"}),i.position.set(n.width/2-r/2-n.mapSideOffset/2,r/2,n.printHeight/2),n.secondRowVisible&&i.changeRelativeSize(n),i.updateColor(n.numberOfColors),i})()}changeSize(n,e){this.position.x+=(n.width-e)/2}}class PHe extends k8{constructor(n,e){super(n,"left"),this.filePath=e}init(n){var e=this;return f(function*(){const i=new zx,r=n.frontTextSize*n.width/200;return e.geometry=yield i.create(n,{filePath:e.filePath,size:r,side:"front"}),e.position.set(-n.width/2+r/2+n.mapSideOffset/2,r/2,n.printHeight/2),n.secondRowVisible&&e.changeRelativeSize(n),e.updateColor(n.numberOfColors),e})()}setColor(n){this.material.color.set(n)}rotate(){this.geometry.rotateZ(Math.PI/2)}flip(){this.geometry.rotateY(Math.PI)}changeSize(n,e){this.position.x-=(n.width-e)/2}}class NHe extends ad{constructor(n){super("FrontPrintContainer",new sl),this.font=n}init(n){var e=this;return f(function*(){return e.childrenMeshes=new Map,e.childrenMeshes.set("FrontText",new DHe("FrontText",e.font,n)),e.childrenMeshes.set("SecondRowText",new RHe("SecondRowText",e.font,n)),e.childrenMeshes.set("FrontMWLogo",new LHe("FrontMWLogo")),yield Promise.all([...e.childrenMeshes.values()].map(function(){var i=f(function*(r){yield r.init(n),e.add(r)});return function(r){return i.apply(this,arguments)}}())),e.position.y=-n.width/2-n.mapSideOffset/2,e})()}addCustomLogo(n,e){var i=this;return f(function*(){i.childrenMeshes.has("CustomLogo")&&i.removeCustomLogo();const r=yield new PHe("CustomLogo",n).init(e);i.add(r),i.childrenMeshes.set(r.name,r)})()}rotateCustomLogo(){this.childrenMeshes.get("CustomLogo").rotate()}flipCustomLogo(){this.childrenMeshes.get("CustomLogo").flip()}removeCustomLogo(){this.remove(this.childrenMeshes.get("CustomLogo")),this.childrenMeshes.delete("CustomLogo")}updateCustomLogoColor(n){this.childrenMeshes.get("CustomLogo").setColor(n)}updateFrontText(n,e){var i=this;return f(function*(){const r=i.childrenMeshes.get("FrontText");r.updateTextGeometryOptions(n),yield r.updateText(e)})()}changeSize(n,e){this.position.y-=(n.width-e)/2;for(const i of this.childrenMeshes.values())i instanceof k8&&i.isGeneralSizeChangeMesh()&&i.changeSize(n,e)}updateSecondRowText(n,e){var i=this;return f(function*(){const r=i.childrenMeshes.get("SecondRowText");r.updateTextGeometryOptions(n),yield r.updateText(e)})()}updateSecondRowVisibility(n){const e=this.childrenMeshes.get("FrontMWLogo"),i=this.childrenMeshes.get("SecondRowText"),r=this.childrenMeshes.get("CustomLogo");i.setManualVisibility(n.secondRowVisible),e.changeRelativeSize(n),r?.changeRelativeSize(n)}getChildrenMeshes(){return this.childrenMeshes}}const kie=JSON.parse('{"glyphs":{"0":{"x_min":73,"x_max":715,"ha":792,"o":"m 394 -29 q 153 129 242 -29 q 73 479 73 272 q 152 829 73 687 q 394 989 241 989 q 634 829 545 989 q 715 479 715 684 q 635 129 715 270 q 394 -29 546 -29 m 394 89 q 546 211 489 89 q 598 479 598 322 q 548 748 598 640 q 394 871 491 871 q 241 748 298 871 q 190 479 190 637 q 239 211 190 319 q 394 89 296 89 "},"1":{"x_min":215.671875,"x_max":574,"ha":792,"o":"m 574 0 l 442 0 l 442 697 l 215 697 l 215 796 q 386 833 330 796 q 475 986 447 875 l 574 986 l 574 0 "},"2":{"x_min":59,"x_max":731,"ha":792,"o":"m 731 0 l 59 0 q 197 314 59 188 q 457 487 199 315 q 598 691 598 580 q 543 819 598 772 q 411 867 488 867 q 272 811 328 867 q 209 630 209 747 l 81 630 q 182 901 81 805 q 408 986 271 986 q 629 909 536 986 q 731 694 731 826 q 613 449 731 541 q 378 316 495 383 q 201 122 235 234 l 731 122 l 731 0 "},"3":{"x_min":54,"x_max":737,"ha":792,"o":"m 737 284 q 635 55 737 141 q 399 -25 541 -25 q 156 52 248 -25 q 54 308 54 140 l 185 308 q 245 147 185 202 q 395 96 302 96 q 539 140 484 96 q 602 280 602 190 q 510 429 602 390 q 324 454 451 454 l 324 565 q 487 584 441 565 q 565 719 565 617 q 515 835 565 791 q 395 879 466 879 q 255 824 307 879 q 203 661 203 769 l 78 661 q 166 909 78 822 q 387 992 250 992 q 603 921 513 992 q 701 723 701 844 q 669 607 701 656 q 578 524 637 558 q 696 434 655 499 q 737 284 737 369 "},"4":{"x_min":48,"x_max":742.453125,"ha":792,"o":"m 742 243 l 602 243 l 602 0 l 476 0 l 476 243 l 48 243 l 48 368 l 476 958 l 602 958 l 602 354 l 742 354 l 742 243 m 476 354 l 476 792 l 162 354 l 476 354 "},"5":{"x_min":54.171875,"x_max":738,"ha":792,"o":"m 738 314 q 626 60 738 153 q 382 -23 526 -23 q 155 47 248 -23 q 54 256 54 125 l 183 256 q 259 132 204 174 q 382 91 314 91 q 533 149 471 91 q 602 314 602 213 q 538 469 602 411 q 386 528 475 528 q 284 506 332 528 q 197 439 237 484 l 81 439 l 159 958 l 684 958 l 684 840 l 254 840 l 214 579 q 306 627 258 612 q 407 643 354 643 q 636 552 540 643 q 738 314 738 457 "},"6":{"x_min":53,"x_max":739,"ha":792,"o":"m 739 312 q 633 62 739 162 q 400 -31 534 -31 q 162 78 257 -31 q 53 439 53 206 q 178 859 53 712 q 441 986 284 986 q 643 912 559 986 q 732 713 732 833 l 601 713 q 544 830 594 786 q 426 875 494 875 q 268 793 331 875 q 193 517 193 697 q 301 597 240 570 q 427 624 362 624 q 643 540 552 624 q 739 312 739 451 m 603 298 q 540 461 603 400 q 404 516 484 516 q 268 461 323 516 q 207 300 207 401 q 269 137 207 198 q 405 83 325 83 q 541 137 486 83 q 603 298 603 197 "},"7":{"x_min":58.71875,"x_max":730.953125,"ha":792,"o":"m 730 839 q 469 448 560 641 q 335 0 378 255 l 192 0 q 328 441 235 252 q 593 830 421 630 l 58 830 l 58 958 l 730 958 l 730 839 "},"8":{"x_min":55,"x_max":736,"ha":792,"o":"m 571 527 q 694 424 652 491 q 736 280 736 358 q 648 71 736 158 q 395 -26 551 -26 q 142 69 238 -26 q 55 279 55 157 q 96 425 55 359 q 220 527 138 491 q 120 615 153 562 q 88 726 88 668 q 171 904 88 827 q 395 986 261 986 q 618 905 529 986 q 702 727 702 830 q 670 616 702 667 q 571 527 638 565 m 394 565 q 519 610 475 565 q 563 717 563 655 q 521 823 563 781 q 392 872 474 872 q 265 824 312 872 q 224 720 224 783 q 265 613 224 656 q 394 565 312 565 m 395 91 q 545 150 488 91 q 597 280 597 204 q 546 408 597 355 q 395 465 492 465 q 244 408 299 465 q 194 280 194 356 q 244 150 194 203 q 395 91 299 91 "},"9":{"x_min":53,"x_max":739,"ha":792,"o":"m 739 524 q 619 94 739 241 q 362 -32 516 -32 q 150 47 242 -32 q 59 244 59 126 l 191 244 q 246 129 191 176 q 373 82 301 82 q 526 161 466 82 q 597 440 597 255 q 363 334 501 334 q 130 432 216 334 q 53 650 53 521 q 134 880 53 786 q 383 986 226 986 q 659 841 566 986 q 739 524 739 719 m 388 449 q 535 514 480 449 q 585 658 585 573 q 535 805 585 744 q 388 873 480 873 q 242 809 294 873 q 191 658 191 745 q 239 514 191 572 q 388 449 292 449 "},"\u03bf":{"x_min":0,"x_max":712,"ha":815,"o":"m 356 -25 q 96 88 192 -25 q 0 368 0 201 q 92 642 0 533 q 356 761 192 761 q 617 644 517 761 q 712 368 712 533 q 619 91 712 201 q 356 -25 520 -25 m 356 85 q 527 175 465 85 q 583 369 583 255 q 528 562 583 484 q 356 651 466 651 q 189 560 250 651 q 135 369 135 481 q 187 177 135 257 q 356 85 250 85 "},"S":{"x_min":0,"x_max":788,"ha":890,"o":"m 788 291 q 662 54 788 144 q 397 -26 550 -26 q 116 68 226 -26 q 0 337 0 168 l 131 337 q 200 152 131 220 q 384 85 269 85 q 557 129 479 85 q 650 270 650 183 q 490 429 650 379 q 194 513 341 470 q 33 739 33 584 q 142 964 33 881 q 388 1041 242 1041 q 644 957 543 1041 q 756 716 756 867 l 625 716 q 561 874 625 816 q 395 933 497 933 q 243 891 309 933 q 164 759 164 841 q 325 609 164 656 q 625 526 475 568 q 788 291 788 454 "},"\xa6":{"x_min":343,"x_max":449,"ha":792,"o":"m 449 462 l 343 462 l 343 986 l 449 986 l 449 462 m 449 -242 l 343 -242 l 343 280 l 449 280 l 449 -242 "},"/":{"x_min":183.25,"x_max":608.328125,"ha":792,"o":"m 608 1041 l 266 -129 l 183 -129 l 520 1041 l 608 1041 "},"\u03a4":{"x_min":-0.4375,"x_max":777.453125,"ha":839,"o":"m 777 893 l 458 893 l 458 0 l 319 0 l 319 892 l 0 892 l 0 1013 l 777 1013 l 777 893 "},"y":{"x_min":0,"x_max":684.78125,"ha":771,"o":"m 684 738 l 388 -83 q 311 -216 356 -167 q 173 -279 252 -279 q 97 -266 133 -279 l 97 -149 q 132 -155 109 -151 q 168 -160 155 -160 q 240 -114 213 -160 q 274 -26 248 -98 l 0 738 l 137 737 l 341 139 l 548 737 l 684 738 "},"\u03a0":{"x_min":0,"x_max":803,"ha":917,"o":"m 803 0 l 667 0 l 667 886 l 140 886 l 140 0 l 0 0 l 0 1012 l 803 1012 l 803 0 "},"\u0390":{"x_min":-111,"x_max":339,"ha":361,"o":"m 339 800 l 229 800 l 229 925 l 339 925 l 339 800 m -1 800 l -111 800 l -111 925 l -1 925 l -1 800 m 284 3 q 233 -10 258 -5 q 182 -15 207 -15 q 85 26 119 -15 q 42 200 42 79 l 42 737 l 167 737 l 168 215 q 172 141 168 157 q 226 101 183 101 q 248 103 239 101 q 284 112 257 104 l 284 3 m 302 1040 l 113 819 l 30 819 l 165 1040 l 302 1040 "},"g":{"x_min":0,"x_max":686,"ha":838,"o":"m 686 34 q 586 -213 686 -121 q 331 -306 487 -306 q 131 -252 216 -306 q 31 -84 31 -190 l 155 -84 q 228 -174 166 -138 q 345 -207 284 -207 q 514 -109 454 -207 q 564 89 564 -27 q 461 6 521 36 q 335 -23 401 -23 q 88 100 184 -23 q 0 370 0 215 q 87 634 0 522 q 330 758 183 758 q 457 728 398 758 q 564 644 515 699 l 564 737 l 686 737 l 686 34 m 582 367 q 529 560 582 481 q 358 652 468 652 q 189 561 250 652 q 135 369 135 482 q 189 176 135 255 q 361 85 251 85 q 529 176 468 85 q 582 367 582 255 "},"\xb2":{"x_min":0,"x_max":442,"ha":539,"o":"m 442 383 l 0 383 q 91 566 0 492 q 260 668 176 617 q 354 798 354 727 q 315 875 354 845 q 227 905 277 905 q 136 869 173 905 q 99 761 99 833 l 14 761 q 82 922 14 864 q 232 974 141 974 q 379 926 316 974 q 442 797 442 878 q 351 635 442 704 q 183 539 321 611 q 92 455 92 491 l 442 455 l 442 383 "},"\u2013":{"x_min":0,"x_max":705.5625,"ha":803,"o":"m 705 334 l 0 334 l 0 410 l 705 410 l 705 334 "},"\u039a":{"x_min":0,"x_max":819.5625,"ha":893,"o":"m 819 0 l 650 0 l 294 509 l 139 356 l 139 0 l 0 0 l 0 1013 l 139 1013 l 139 526 l 626 1013 l 809 1013 l 395 600 l 819 0 "},"\u0192":{"x_min":-46.265625,"x_max":392,"ha":513,"o":"m 392 651 l 259 651 l 79 -279 l -46 -278 l 134 651 l 14 651 l 14 751 l 135 751 q 151 948 135 900 q 304 1041 185 1041 q 334 1040 319 1041 q 392 1034 348 1039 l 392 922 q 337 931 360 931 q 271 883 287 931 q 260 793 260 853 l 260 751 l 392 751 l 392 651 "},"e":{"x_min":0,"x_max":714,"ha":813,"o":"m 714 326 l 140 326 q 200 157 140 227 q 359 87 260 87 q 488 130 431 87 q 561 245 545 174 l 697 245 q 577 48 670 123 q 358 -26 484 -26 q 97 85 195 -26 q 0 363 0 197 q 94 642 0 529 q 358 765 195 765 q 626 627 529 765 q 714 326 714 503 m 576 429 q 507 583 564 522 q 355 650 445 650 q 206 583 266 650 q 140 429 152 522 l 576 429 "},"\u03cc":{"x_min":0,"x_max":712,"ha":815,"o":"m 356 -25 q 94 91 194 -25 q 0 368 0 202 q 92 642 0 533 q 356 761 192 761 q 617 644 517 761 q 712 368 712 533 q 619 91 712 201 q 356 -25 520 -25 m 356 85 q 527 175 465 85 q 583 369 583 255 q 528 562 583 484 q 356 651 466 651 q 189 560 250 651 q 135 369 135 481 q 187 177 135 257 q 356 85 250 85 m 576 1040 l 387 819 l 303 819 l 438 1040 l 576 1040 "},"J":{"x_min":0,"x_max":588,"ha":699,"o":"m 588 279 q 287 -26 588 -26 q 58 73 126 -26 q 0 327 0 158 l 133 327 q 160 172 133 227 q 288 96 198 96 q 426 171 391 96 q 449 336 449 219 l 449 1013 l 588 1013 l 588 279 "},"\xbb":{"x_min":-1,"x_max":503,"ha":601,"o":"m 503 302 l 280 136 l 281 256 l 429 373 l 281 486 l 280 608 l 503 440 l 503 302 m 221 302 l 0 136 l 0 255 l 145 372 l 0 486 l -1 608 l 221 440 l 221 302 "},"\xa9":{"x_min":-3,"x_max":1008,"ha":1106,"o":"m 502 -7 q 123 151 263 -7 q -3 501 -3 294 q 123 851 -3 706 q 502 1011 263 1011 q 881 851 739 1011 q 1008 501 1008 708 q 883 151 1008 292 q 502 -7 744 -7 m 502 60 q 830 197 709 60 q 940 501 940 322 q 831 805 940 681 q 502 944 709 944 q 174 805 296 944 q 65 501 65 680 q 173 197 65 320 q 502 60 294 60 m 741 394 q 661 246 731 302 q 496 190 591 190 q 294 285 369 190 q 228 497 228 370 q 295 714 228 625 q 499 813 370 813 q 656 762 588 813 q 733 625 724 711 l 634 625 q 589 704 629 673 q 498 735 550 735 q 377 666 421 735 q 334 504 334 597 q 374 340 334 408 q 490 272 415 272 q 589 304 549 272 q 638 394 628 337 l 741 394 "},"\u03ce":{"x_min":0,"x_max":922,"ha":1030,"o":"m 687 1040 l 498 819 l 415 819 l 549 1040 l 687 1040 m 922 339 q 856 97 922 203 q 650 -26 780 -26 q 538 9 587 -26 q 461 103 489 44 q 387 12 436 46 q 277 -22 339 -22 q 69 97 147 -22 q 0 338 0 202 q 45 551 0 444 q 161 737 84 643 l 302 737 q 175 552 219 647 q 124 336 124 446 q 155 179 124 248 q 275 88 197 88 q 375 163 341 88 q 400 294 400 219 l 400 572 l 524 572 l 524 294 q 561 135 524 192 q 643 88 591 88 q 762 182 719 88 q 797 341 797 257 q 745 555 797 450 q 619 737 705 637 l 760 737 q 874 551 835 640 q 922 339 922 444 "},"^":{"x_min":193.0625,"x_max":598.609375,"ha":792,"o":"m 598 772 l 515 772 l 395 931 l 277 772 l 193 772 l 326 1013 l 462 1013 l 598 772 "},"\xab":{"x_min":0,"x_max":507.203125,"ha":604,"o":"m 506 136 l 284 302 l 284 440 l 506 608 l 507 485 l 360 371 l 506 255 l 506 136 m 222 136 l 0 302 l 0 440 l 222 608 l 221 486 l 73 373 l 222 256 l 222 136 "},"D":{"x_min":0,"x_max":828,"ha":935,"o":"m 389 1013 q 714 867 593 1013 q 828 521 828 729 q 712 161 828 309 q 382 0 587 0 l 0 0 l 0 1013 l 389 1013 m 376 124 q 607 247 523 124 q 681 510 681 355 q 607 771 681 662 q 376 896 522 896 l 139 896 l 139 124 l 376 124 "},"\u2219":{"x_min":0,"x_max":142,"ha":239,"o":"m 142 585 l 0 585 l 0 738 l 142 738 l 142 585 "},"\xff":{"x_min":0,"x_max":47,"ha":125,"o":"m 47 3 q 37 -7 47 -7 q 28 0 30 -7 q 39 -4 32 -4 q 45 3 45 -1 l 37 0 q 28 9 28 0 q 39 19 28 19 l 47 16 l 47 19 l 47 3 m 37 1 q 44 8 44 1 q 37 16 44 16 q 30 8 30 16 q 37 1 30 1 m 26 1 l 23 22 l 14 0 l 3 22 l 3 3 l 0 25 l 13 1 l 22 25 l 26 1 "},"w":{"x_min":0,"x_max":1009.71875,"ha":1100,"o":"m 1009 738 l 783 0 l 658 0 l 501 567 l 345 0 l 222 0 l 0 738 l 130 738 l 284 174 l 432 737 l 576 738 l 721 173 l 881 737 l 1009 738 "},"$":{"x_min":0,"x_max":700,"ha":793,"o":"m 664 717 l 542 717 q 490 825 531 785 q 381 872 450 865 l 381 551 q 620 446 540 522 q 700 241 700 370 q 618 45 700 116 q 381 -25 536 -25 l 381 -152 l 307 -152 l 307 -25 q 81 62 162 -25 q 0 297 0 149 l 124 297 q 169 146 124 204 q 307 81 215 89 l 307 441 q 80 536 148 469 q 13 725 13 603 q 96 910 13 839 q 307 982 180 982 l 307 1077 l 381 1077 l 381 982 q 574 917 494 982 q 664 717 664 845 m 307 565 l 307 872 q 187 831 233 872 q 142 724 142 791 q 180 618 142 656 q 307 565 218 580 m 381 76 q 562 237 562 96 q 517 361 562 313 q 381 423 472 409 l 381 76 "},"\\\\":{"x_min":-0.015625,"x_max":425.0625,"ha":522,"o":"m 425 -129 l 337 -129 l 0 1041 l 83 1041 l 425 -129 "},"\xb5":{"x_min":0,"x_max":697.21875,"ha":747,"o":"m 697 -4 q 629 -14 658 -14 q 498 97 513 -14 q 422 9 470 41 q 313 -23 374 -23 q 207 4 258 -23 q 119 81 156 32 l 119 -278 l 0 -278 l 0 738 l 124 738 l 124 343 q 165 173 124 246 q 308 83 216 83 q 452 178 402 83 q 493 359 493 255 l 493 738 l 617 738 l 617 214 q 623 136 617 160 q 673 92 637 92 q 697 96 684 92 l 697 -4 "},"\u0399":{"x_min":42,"x_max":181,"ha":297,"o":"m 181 0 l 42 0 l 42 1013 l 181 1013 l 181 0 "},"\u038e":{"x_min":0,"x_max":1144.5,"ha":1214,"o":"m 1144 1012 l 807 416 l 807 0 l 667 0 l 667 416 l 325 1012 l 465 1012 l 736 533 l 1004 1012 l 1144 1012 m 277 1040 l 83 799 l 0 799 l 140 1040 l 277 1040 "},"\u2019":{"x_min":0,"x_max":139,"ha":236,"o":"m 139 851 q 102 737 139 784 q 0 669 65 690 l 0 734 q 59 787 42 741 q 72 873 72 821 l 0 873 l 0 1013 l 139 1013 l 139 851 "},"\u039d":{"x_min":0,"x_max":801,"ha":915,"o":"m 801 0 l 651 0 l 131 822 l 131 0 l 0 0 l 0 1013 l 151 1013 l 670 191 l 670 1013 l 801 1013 l 801 0 "},"-":{"x_min":8.71875,"x_max":350.390625,"ha":478,"o":"m 350 317 l 8 317 l 8 428 l 350 428 l 350 317 "},"Q":{"x_min":0,"x_max":968,"ha":1072,"o":"m 954 5 l 887 -79 l 744 35 q 622 -11 687 2 q 483 -26 556 -26 q 127 130 262 -26 q 0 504 0 279 q 127 880 0 728 q 484 1041 262 1041 q 841 884 708 1041 q 968 507 968 735 q 933 293 968 398 q 832 104 899 188 l 954 5 m 723 191 q 802 330 777 248 q 828 499 828 412 q 744 790 828 673 q 483 922 650 922 q 228 791 322 922 q 142 505 142 673 q 227 221 142 337 q 487 91 323 91 q 632 123 566 91 l 520 215 l 587 301 l 723 191 "},"\u03c2":{"x_min":1,"x_max":676.28125,"ha":740,"o":"m 676 460 l 551 460 q 498 595 542 546 q 365 651 448 651 q 199 578 263 651 q 136 401 136 505 q 266 178 136 241 q 508 106 387 142 q 640 -50 640 62 q 625 -158 640 -105 q 583 -278 611 -211 l 465 -278 q 498 -182 490 -211 q 515 -80 515 -126 q 381 12 515 -15 q 134 91 197 51 q 1 388 1 179 q 100 651 1 542 q 354 761 199 761 q 587 680 498 761 q 676 460 676 599 "},"M":{"x_min":0,"x_max":954,"ha":1067,"o":"m 954 0 l 819 0 l 819 869 l 537 0 l 405 0 l 128 866 l 128 0 l 0 0 l 0 1013 l 200 1013 l 472 160 l 757 1013 l 954 1013 l 954 0 "},"\u03a8":{"x_min":0,"x_max":1006,"ha":1094,"o":"m 1006 678 q 914 319 1006 429 q 571 200 814 200 l 571 0 l 433 0 l 433 200 q 92 319 194 200 q 0 678 0 429 l 0 1013 l 139 1013 l 139 679 q 191 417 139 492 q 433 326 255 326 l 433 1013 l 571 1013 l 571 326 l 580 326 q 813 423 747 326 q 868 679 868 502 l 868 1013 l 1006 1013 l 1006 678 "},"C":{"x_min":0,"x_max":886,"ha":944,"o":"m 886 379 q 760 87 886 201 q 455 -26 634 -26 q 112 136 236 -26 q 0 509 0 283 q 118 882 0 737 q 469 1041 245 1041 q 748 955 630 1041 q 879 708 879 859 l 745 708 q 649 862 724 805 q 473 920 573 920 q 219 791 312 920 q 136 509 136 675 q 217 229 136 344 q 470 99 311 99 q 672 179 591 99 q 753 379 753 259 l 886 379 "},"!":{"x_min":0,"x_max":138,"ha":236,"o":"m 138 684 q 116 409 138 629 q 105 244 105 299 l 33 244 q 16 465 33 313 q 0 684 0 616 l 0 1013 l 138 1013 l 138 684 m 138 0 l 0 0 l 0 151 l 138 151 l 138 0 "},"{":{"x_min":0,"x_max":480.5625,"ha":578,"o":"m 480 -286 q 237 -213 303 -286 q 187 -45 187 -159 q 194 48 187 -15 q 201 141 201 112 q 164 264 201 225 q 0 314 118 314 l 0 417 q 164 471 119 417 q 201 605 201 514 q 199 665 201 644 q 193 772 193 769 q 241 941 193 887 q 480 1015 308 1015 l 480 915 q 336 866 375 915 q 306 742 306 828 q 310 662 306 717 q 314 577 314 606 q 288 452 314 500 q 176 365 256 391 q 289 275 257 337 q 314 143 314 226 q 313 84 314 107 q 310 -11 310 -5 q 339 -131 310 -94 q 480 -182 377 -182 l 480 -286 "},"X":{"x_min":-0.015625,"x_max":854.15625,"ha":940,"o":"m 854 0 l 683 0 l 423 409 l 166 0 l 0 0 l 347 519 l 18 1013 l 186 1013 l 428 637 l 675 1013 l 836 1013 l 504 520 l 854 0 "},"#":{"x_min":0,"x_max":963.890625,"ha":1061,"o":"m 963 690 l 927 590 l 719 590 l 655 410 l 876 410 l 840 310 l 618 310 l 508 -3 l 393 -2 l 506 309 l 329 310 l 215 -2 l 102 -3 l 212 310 l 0 310 l 36 410 l 248 409 l 312 590 l 86 590 l 120 690 l 347 690 l 459 1006 l 573 1006 l 462 690 l 640 690 l 751 1006 l 865 1006 l 754 690 l 963 690 m 606 590 l 425 590 l 362 410 l 543 410 l 606 590 "},"\u03b9":{"x_min":42,"x_max":284,"ha":361,"o":"m 284 3 q 233 -10 258 -5 q 182 -15 207 -15 q 85 26 119 -15 q 42 200 42 79 l 42 738 l 167 738 l 168 215 q 172 141 168 157 q 226 101 183 101 q 248 103 239 101 q 284 112 257 104 l 284 3 "},"\u0386":{"x_min":0,"x_max":906.953125,"ha":982,"o":"m 283 1040 l 88 799 l 5 799 l 145 1040 l 283 1040 m 906 0 l 756 0 l 650 303 l 251 303 l 143 0 l 0 0 l 376 1012 l 529 1012 l 906 0 m 609 421 l 452 866 l 293 421 l 609 421 "},")":{"x_min":0,"x_max":318,"ha":415,"o":"m 318 365 q 257 25 318 191 q 87 -290 197 -141 l 0 -290 q 140 21 93 -128 q 193 360 193 189 q 141 704 193 537 q 0 1024 97 850 l 87 1024 q 257 706 197 871 q 318 365 318 542 "},"\u03b5":{"x_min":0,"x_max":634.71875,"ha":714,"o":"m 634 234 q 527 38 634 110 q 300 -25 433 -25 q 98 29 183 -25 q 0 204 0 93 q 37 314 0 265 q 128 390 67 353 q 56 460 82 419 q 26 555 26 505 q 114 712 26 654 q 295 763 191 763 q 499 700 416 763 q 589 515 589 631 l 478 515 q 419 618 464 580 q 307 657 374 657 q 207 630 253 657 q 151 547 151 598 q 238 445 151 469 q 389 434 280 434 l 389 331 l 349 331 q 206 315 255 331 q 125 210 125 287 q 183 107 125 145 q 302 76 233 76 q 436 117 379 76 q 509 234 493 159 l 634 234 "},"\u0394":{"x_min":0,"x_max":952.78125,"ha":1028,"o":"m 952 0 l 0 0 l 400 1013 l 551 1013 l 952 0 m 762 124 l 476 867 l 187 124 l 762 124 "},"}":{"x_min":0,"x_max":481,"ha":578,"o":"m 481 314 q 318 262 364 314 q 282 136 282 222 q 284 65 282 97 q 293 -58 293 -48 q 241 -217 293 -166 q 0 -286 174 -286 l 0 -182 q 143 -130 105 -182 q 171 -2 171 -93 q 168 81 171 22 q 165 144 165 140 q 188 275 165 229 q 306 365 220 339 q 191 455 224 391 q 165 588 165 505 q 168 681 165 624 q 171 742 171 737 q 141 865 171 827 q 0 915 102 915 l 0 1015 q 243 942 176 1015 q 293 773 293 888 q 287 675 293 741 q 282 590 282 608 q 318 466 282 505 q 481 417 364 417 l 481 314 "},"\u2030":{"x_min":-3,"x_max":1672,"ha":1821,"o":"m 846 0 q 664 76 732 0 q 603 244 603 145 q 662 412 603 344 q 846 489 729 489 q 1027 412 959 489 q 1089 244 1089 343 q 1029 76 1089 144 q 846 0 962 0 m 845 103 q 945 143 910 103 q 981 243 981 184 q 947 340 981 301 q 845 385 910 385 q 745 342 782 385 q 709 243 709 300 q 742 147 709 186 q 845 103 781 103 m 888 986 l 284 -25 l 199 -25 l 803 986 l 888 986 m 241 468 q 58 545 126 468 q -3 715 -3 615 q 56 881 -3 813 q 238 958 124 958 q 421 881 353 958 q 483 712 483 813 q 423 544 483 612 q 241 468 356 468 m 241 855 q 137 811 175 855 q 100 710 100 768 q 136 612 100 653 q 240 572 172 572 q 344 614 306 572 q 382 713 382 656 q 347 810 382 771 q 241 855 308 855 m 1428 0 q 1246 76 1314 0 q 1185 244 1185 145 q 1244 412 1185 344 q 1428 489 1311 489 q 1610 412 1542 489 q 1672 244 1672 343 q 1612 76 1672 144 q 1428 0 1545 0 m 1427 103 q 1528 143 1492 103 q 1564 243 1564 184 q 1530 340 1564 301 q 1427 385 1492 385 q 1327 342 1364 385 q 1291 243 1291 300 q 1324 147 1291 186 q 1427 103 1363 103 "},"a":{"x_min":0,"x_max":698.609375,"ha":794,"o":"m 698 0 q 661 -12 679 -7 q 615 -17 643 -17 q 536 12 564 -17 q 500 96 508 41 q 384 6 456 37 q 236 -25 312 -25 q 65 31 130 -25 q 0 194 0 88 q 118 390 0 334 q 328 435 180 420 q 488 483 476 451 q 495 523 495 504 q 442 619 495 584 q 325 654 389 654 q 209 617 257 654 q 152 513 161 580 l 33 513 q 123 705 33 633 q 332 772 207 772 q 528 712 448 772 q 617 531 617 645 l 617 163 q 624 108 617 126 q 664 90 632 90 l 698 94 l 698 0 m 491 262 l 491 372 q 272 329 350 347 q 128 201 128 294 q 166 113 128 144 q 264 83 205 83 q 414 130 346 83 q 491 262 491 183 "},"\u2014":{"x_min":0,"x_max":941.671875,"ha":1039,"o":"m 941 334 l 0 334 l 0 410 l 941 410 l 941 334 "},"=":{"x_min":8.71875,"x_max":780.953125,"ha":792,"o":"m 780 510 l 8 510 l 8 606 l 780 606 l 780 510 m 780 235 l 8 235 l 8 332 l 780 332 l 780 235 "},"N":{"x_min":0,"x_max":801,"ha":914,"o":"m 801 0 l 651 0 l 131 823 l 131 0 l 0 0 l 0 1013 l 151 1013 l 670 193 l 670 1013 l 801 1013 l 801 0 "},"\u03c1":{"x_min":0,"x_max":712,"ha":797,"o":"m 712 369 q 620 94 712 207 q 362 -26 521 -26 q 230 2 292 -26 q 119 83 167 30 l 119 -278 l 0 -278 l 0 362 q 91 643 0 531 q 355 764 190 764 q 617 647 517 764 q 712 369 712 536 m 583 366 q 530 559 583 480 q 359 651 469 651 q 190 562 252 651 q 135 370 135 483 q 189 176 135 257 q 359 85 250 85 q 528 175 466 85 q 583 366 583 254 "},"\xaf":{"x_min":0,"x_max":941.671875,"ha":938,"o":"m 941 1033 l 0 1033 l 0 1109 l 941 1109 l 941 1033 "},"Z":{"x_min":0,"x_max":779,"ha":849,"o":"m 779 0 l 0 0 l 0 113 l 621 896 l 40 896 l 40 1013 l 779 1013 l 778 887 l 171 124 l 779 124 l 779 0 "},"u":{"x_min":0,"x_max":617,"ha":729,"o":"m 617 0 l 499 0 l 499 110 q 391 10 460 45 q 246 -25 322 -25 q 61 58 127 -25 q 0 258 0 136 l 0 738 l 125 738 l 125 284 q 156 148 125 202 q 273 82 197 82 q 433 165 369 82 q 493 340 493 243 l 493 738 l 617 738 l 617 0 "},"k":{"x_min":0,"x_max":612.484375,"ha":697,"o":"m 612 738 l 338 465 l 608 0 l 469 0 l 251 382 l 121 251 l 121 0 l 0 0 l 0 1013 l 121 1013 l 121 402 l 456 738 l 612 738 "},"\u0397":{"x_min":0,"x_max":803,"ha":917,"o":"m 803 0 l 667 0 l 667 475 l 140 475 l 140 0 l 0 0 l 0 1013 l 140 1013 l 140 599 l 667 599 l 667 1013 l 803 1013 l 803 0 "},"\u0391":{"x_min":0,"x_max":906.953125,"ha":985,"o":"m 906 0 l 756 0 l 650 303 l 251 303 l 143 0 l 0 0 l 376 1013 l 529 1013 l 906 0 m 609 421 l 452 866 l 293 421 l 609 421 "},"s":{"x_min":0,"x_max":604,"ha":697,"o":"m 604 217 q 501 36 604 104 q 292 -23 411 -23 q 86 43 166 -23 q 0 238 0 114 l 121 237 q 175 122 121 164 q 300 85 223 85 q 415 112 363 85 q 479 207 479 147 q 361 309 479 276 q 140 372 141 370 q 21 544 21 426 q 111 708 21 647 q 298 761 190 761 q 492 705 413 761 q 583 531 583 643 l 462 531 q 412 625 462 594 q 298 657 363 657 q 199 636 242 657 q 143 558 143 608 q 262 454 143 486 q 484 394 479 397 q 604 217 604 341 "},"B":{"x_min":0,"x_max":778,"ha":876,"o":"m 580 546 q 724 469 670 535 q 778 311 778 403 q 673 83 778 171 q 432 0 575 0 l 0 0 l 0 1013 l 411 1013 q 629 957 541 1013 q 732 768 732 892 q 691 633 732 693 q 580 546 650 572 m 393 899 l 139 899 l 139 588 l 379 588 q 521 624 462 588 q 592 744 592 667 q 531 859 592 819 q 393 899 471 899 m 419 124 q 566 169 504 124 q 635 303 635 219 q 559 436 635 389 q 402 477 494 477 l 139 477 l 139 124 l 419 124 "},"\u2026":{"x_min":0,"x_max":614,"ha":708,"o":"m 142 0 l 0 0 l 0 151 l 142 151 l 142 0 m 378 0 l 236 0 l 236 151 l 378 151 l 378 0 m 614 0 l 472 0 l 472 151 l 614 151 l 614 0 "},"?":{"x_min":0,"x_max":607,"ha":704,"o":"m 607 777 q 543 599 607 674 q 422 474 482 537 q 357 272 357 391 l 236 272 q 297 487 236 395 q 411 619 298 490 q 474 762 474 691 q 422 885 474 838 q 301 933 371 933 q 179 880 228 933 q 124 706 124 819 l 0 706 q 94 963 0 872 q 302 1044 177 1044 q 511 973 423 1044 q 607 777 607 895 m 370 0 l 230 0 l 230 151 l 370 151 l 370 0 "},"H":{"x_min":0,"x_max":803,"ha":915,"o":"m 803 0 l 667 0 l 667 475 l 140 475 l 140 0 l 0 0 l 0 1013 l 140 1013 l 140 599 l 667 599 l 667 1013 l 803 1013 l 803 0 "},"\u03bd":{"x_min":0,"x_max":675,"ha":761,"o":"m 675 738 l 404 0 l 272 0 l 0 738 l 133 738 l 340 147 l 541 738 l 675 738 "},"c":{"x_min":1,"x_max":701.390625,"ha":775,"o":"m 701 264 q 584 53 681 133 q 353 -26 487 -26 q 91 91 188 -26 q 1 370 1 201 q 92 645 1 537 q 353 761 190 761 q 572 688 479 761 q 690 493 666 615 l 556 493 q 487 606 545 562 q 356 650 428 650 q 186 563 246 650 q 134 372 134 487 q 188 179 134 258 q 359 88 250 88 q 492 136 437 88 q 566 264 548 185 l 701 264 "},"\xb6":{"x_min":0,"x_max":566.671875,"ha":678,"o":"m 21 892 l 52 892 l 98 761 l 145 892 l 176 892 l 178 741 l 157 741 l 157 867 l 108 741 l 88 741 l 40 871 l 40 741 l 21 741 l 21 892 m 308 854 l 308 731 q 252 691 308 691 q 227 691 240 691 q 207 696 213 695 l 207 712 l 253 706 q 288 733 288 706 l 288 763 q 244 741 279 741 q 193 797 193 741 q 261 860 193 860 q 287 860 273 860 q 308 854 302 855 m 288 842 l 263 843 q 213 796 213 843 q 248 756 213 756 q 288 796 288 756 l 288 842 m 566 988 l 502 988 l 502 -1 l 439 -1 l 439 988 l 317 988 l 317 -1 l 252 -1 l 252 602 q 81 653 155 602 q 0 805 0 711 q 101 989 0 918 q 309 1053 194 1053 l 566 1053 l 566 988 "},"\u03b2":{"x_min":0,"x_max":660,"ha":745,"o":"m 471 550 q 610 450 561 522 q 660 280 660 378 q 578 64 660 151 q 367 -22 497 -22 q 239 5 299 -22 q 126 82 178 32 l 126 -278 l 0 -278 l 0 593 q 54 903 0 801 q 318 1042 127 1042 q 519 964 436 1042 q 603 771 603 887 q 567 644 603 701 q 471 550 532 586 m 337 79 q 476 138 418 79 q 535 279 535 198 q 427 437 535 386 q 226 477 344 477 l 226 583 q 398 620 329 583 q 486 762 486 668 q 435 884 486 833 q 312 935 384 935 q 169 861 219 935 q 126 698 126 797 l 126 362 q 170 169 126 242 q 337 79 224 79 "},"\u039c":{"x_min":0,"x_max":954,"ha":1068,"o":"m 954 0 l 819 0 l 819 868 l 537 0 l 405 0 l 128 865 l 128 0 l 0 0 l 0 1013 l 199 1013 l 472 158 l 758 1013 l 954 1013 l 954 0 "},"\u038c":{"x_min":0.109375,"x_max":1120,"ha":1217,"o":"m 1120 505 q 994 132 1120 282 q 642 -29 861 -29 q 290 130 422 -29 q 167 505 167 280 q 294 883 167 730 q 650 1046 430 1046 q 999 882 868 1046 q 1120 505 1120 730 m 977 504 q 896 784 977 669 q 644 915 804 915 q 391 785 484 915 q 307 504 307 669 q 391 224 307 339 q 644 95 486 95 q 894 224 803 95 q 977 504 977 339 m 277 1040 l 83 799 l 0 799 l 140 1040 l 277 1040 "},"\u0389":{"x_min":0,"x_max":1158,"ha":1275,"o":"m 1158 0 l 1022 0 l 1022 475 l 496 475 l 496 0 l 356 0 l 356 1012 l 496 1012 l 496 599 l 1022 599 l 1022 1012 l 1158 1012 l 1158 0 m 277 1040 l 83 799 l 0 799 l 140 1040 l 277 1040 "},"\u2022":{"x_min":0,"x_max":663.890625,"ha":775,"o":"m 663 529 q 566 293 663 391 q 331 196 469 196 q 97 294 194 196 q 0 529 0 393 q 96 763 0 665 q 331 861 193 861 q 566 763 469 861 q 663 529 663 665 "},"\xa5":{"x_min":0.1875,"x_max":819.546875,"ha":886,"o":"m 563 561 l 697 561 l 696 487 l 520 487 l 482 416 l 482 380 l 697 380 l 695 308 l 482 308 l 482 0 l 342 0 l 342 308 l 125 308 l 125 380 l 342 380 l 342 417 l 303 487 l 125 487 l 125 561 l 258 561 l 0 1013 l 140 1013 l 411 533 l 679 1013 l 819 1013 l 563 561 "},"(":{"x_min":0,"x_max":318.0625,"ha":415,"o":"m 318 -290 l 230 -290 q 61 23 122 -142 q 0 365 0 190 q 62 712 0 540 q 230 1024 119 869 l 318 1024 q 175 705 219 853 q 125 360 125 542 q 176 22 125 187 q 318 -290 223 -127 "},"U":{"x_min":0,"x_max":796,"ha":904,"o":"m 796 393 q 681 93 796 212 q 386 -25 566 -25 q 101 95 208 -25 q 0 393 0 211 l 0 1013 l 138 1013 l 138 391 q 204 191 138 270 q 394 107 276 107 q 586 191 512 107 q 656 391 656 270 l 656 1013 l 796 1013 l 796 393 "},"\u03b3":{"x_min":0.5,"x_max":744.953125,"ha":822,"o":"m 744 737 l 463 54 l 463 -278 l 338 -278 l 338 54 l 154 495 q 104 597 124 569 q 13 651 67 651 l 0 651 l 0 751 l 39 753 q 168 711 121 753 q 242 594 207 676 l 403 208 l 617 737 l 744 737 "},"\u03b1":{"x_min":0,"x_max":765.5625,"ha":809,"o":"m 765 -4 q 698 -14 726 -14 q 564 97 586 -14 q 466 7 525 40 q 337 -26 407 -26 q 88 98 186 -26 q 0 369 0 212 q 88 637 0 525 q 337 760 184 760 q 465 728 407 760 q 563 637 524 696 l 563 739 l 685 739 l 685 222 q 693 141 685 168 q 748 94 708 94 q 765 96 760 94 l 765 -4 m 584 371 q 531 562 584 485 q 360 653 470 653 q 192 566 254 653 q 135 379 135 489 q 186 181 135 261 q 358 84 247 84 q 528 176 465 84 q 584 371 584 260 "},"F":{"x_min":0,"x_max":683.328125,"ha":717,"o":"m 683 888 l 140 888 l 140 583 l 613 583 l 613 458 l 140 458 l 140 0 l 0 0 l 0 1013 l 683 1013 l 683 888 "},"\xad":{"x_min":0,"x_max":705.5625,"ha":803,"o":"m 705 334 l 0 334 l 0 410 l 705 410 l 705 334 "},":":{"x_min":0,"x_max":142,"ha":239,"o":"m 142 585 l 0 585 l 0 738 l 142 738 l 142 585 m 142 0 l 0 0 l 0 151 l 142 151 l 142 0 "},"\u03a7":{"x_min":0,"x_max":854.171875,"ha":935,"o":"m 854 0 l 683 0 l 423 409 l 166 0 l 0 0 l 347 519 l 18 1013 l 186 1013 l 427 637 l 675 1013 l 836 1013 l 504 521 l 854 0 "},"*":{"x_min":116,"x_max":674,"ha":792,"o":"m 674 768 l 475 713 l 610 544 l 517 477 l 394 652 l 272 478 l 178 544 l 314 713 l 116 766 l 153 876 l 341 812 l 342 1013 l 446 1013 l 446 811 l 635 874 l 674 768 "},"\u2020":{"x_min":0,"x_max":777,"ha":835,"o":"m 458 804 l 777 804 l 777 683 l 458 683 l 458 0 l 319 0 l 319 681 l 0 683 l 0 804 l 319 804 l 319 1015 l 458 1013 l 458 804 "},"\xb0":{"x_min":0,"x_max":347,"ha":444,"o":"m 173 802 q 43 856 91 802 q 0 977 0 905 q 45 1101 0 1049 q 173 1153 90 1153 q 303 1098 255 1153 q 347 977 347 1049 q 303 856 347 905 q 173 802 256 802 m 173 884 q 238 910 214 884 q 262 973 262 937 q 239 1038 262 1012 q 173 1064 217 1064 q 108 1037 132 1064 q 85 973 85 1010 q 108 910 85 937 q 173 884 132 884 "},"V":{"x_min":0,"x_max":862.71875,"ha":940,"o":"m 862 1013 l 505 0 l 361 0 l 0 1013 l 143 1013 l 434 165 l 718 1012 l 862 1013 "},"\u039e":{"x_min":0,"x_max":734.71875,"ha":763,"o":"m 723 889 l 9 889 l 9 1013 l 723 1013 l 723 889 m 673 463 l 61 463 l 61 589 l 673 589 l 673 463 m 734 0 l 0 0 l 0 124 l 734 124 l 734 0 "},"\xa0":{"x_min":0,"x_max":0,"ha":853},"\u03ab":{"x_min":0.328125,"x_max":819.515625,"ha":889,"o":"m 588 1046 l 460 1046 l 460 1189 l 588 1189 l 588 1046 m 360 1046 l 232 1046 l 232 1189 l 360 1189 l 360 1046 m 819 1012 l 482 416 l 482 0 l 342 0 l 342 416 l 0 1012 l 140 1012 l 411 533 l 679 1012 l 819 1012 "},"\u201d":{"x_min":0,"x_max":347,"ha":454,"o":"m 139 851 q 102 737 139 784 q 0 669 65 690 l 0 734 q 59 787 42 741 q 72 873 72 821 l 0 873 l 0 1013 l 139 1013 l 139 851 m 347 851 q 310 737 347 784 q 208 669 273 690 l 208 734 q 267 787 250 741 q 280 873 280 821 l 208 873 l 208 1013 l 347 1013 l 347 851 "},"@":{"x_min":0,"x_max":1260,"ha":1357,"o":"m 1098 -45 q 877 -160 1001 -117 q 633 -203 752 -203 q 155 -29 327 -203 q 0 360 0 127 q 176 802 0 616 q 687 1008 372 1008 q 1123 854 969 1008 q 1260 517 1260 718 q 1155 216 1260 341 q 868 82 1044 82 q 772 106 801 82 q 737 202 737 135 q 647 113 700 144 q 527 82 594 82 q 367 147 420 82 q 314 312 314 212 q 401 565 314 452 q 639 690 498 690 q 810 588 760 690 l 849 668 l 938 668 q 877 441 900 532 q 833 226 833 268 q 853 182 833 198 q 902 167 873 167 q 1088 272 1012 167 q 1159 512 1159 372 q 1051 793 1159 681 q 687 925 925 925 q 248 747 415 925 q 97 361 97 586 q 226 26 97 159 q 627 -122 370 -122 q 856 -87 737 -122 q 1061 8 976 -53 l 1098 -45 m 786 488 q 738 580 777 545 q 643 615 700 615 q 483 517 548 615 q 425 322 425 430 q 457 203 425 250 q 552 156 490 156 q 722 273 665 156 q 786 488 738 309 "},"\u038a":{"x_min":0,"x_max":499,"ha":613,"o":"m 277 1040 l 83 799 l 0 799 l 140 1040 l 277 1040 m 499 0 l 360 0 l 360 1012 l 499 1012 l 499 0 "},"i":{"x_min":14,"x_max":136,"ha":275,"o":"m 136 873 l 14 873 l 14 1013 l 136 1013 l 136 873 m 136 0 l 14 0 l 14 737 l 136 737 l 136 0 "},"\u0392":{"x_min":0,"x_max":778,"ha":877,"o":"m 580 545 q 724 468 671 534 q 778 310 778 402 q 673 83 778 170 q 432 0 575 0 l 0 0 l 0 1013 l 411 1013 q 629 957 541 1013 q 732 768 732 891 q 691 632 732 692 q 580 545 650 571 m 393 899 l 139 899 l 139 587 l 379 587 q 521 623 462 587 q 592 744 592 666 q 531 859 592 819 q 393 899 471 899 m 419 124 q 566 169 504 124 q 635 302 635 219 q 559 435 635 388 q 402 476 494 476 l 139 476 l 139 124 l 419 124 "},"\u03c5":{"x_min":0,"x_max":617,"ha":725,"o":"m 617 352 q 540 94 617 199 q 308 -24 455 -24 q 76 94 161 -24 q 0 352 0 199 l 0 739 l 126 739 l 126 355 q 169 185 126 257 q 312 98 220 98 q 451 185 402 98 q 492 355 492 257 l 492 739 l 617 739 l 617 352 "},"]":{"x_min":0,"x_max":275,"ha":372,"o":"m 275 -281 l 0 -281 l 0 -187 l 151 -187 l 151 920 l 0 920 l 0 1013 l 275 1013 l 275 -281 "},"m":{"x_min":0,"x_max":1019,"ha":1128,"o":"m 1019 0 l 897 0 l 897 454 q 860 591 897 536 q 739 660 816 660 q 613 586 659 660 q 573 436 573 522 l 573 0 l 447 0 l 447 455 q 412 591 447 535 q 294 657 372 657 q 165 586 213 657 q 122 437 122 521 l 122 0 l 0 0 l 0 738 l 117 738 l 117 640 q 202 730 150 697 q 316 763 254 763 q 437 730 381 763 q 525 642 494 697 q 621 731 559 700 q 753 763 682 763 q 943 694 867 763 q 1019 512 1019 625 l 1019 0 "},"\u03c7":{"x_min":8.328125,"x_max":780.5625,"ha":815,"o":"m 780 -278 q 715 -294 747 -294 q 616 -257 663 -294 q 548 -175 576 -227 l 379 133 l 143 -277 l 9 -277 l 313 254 l 163 522 q 127 586 131 580 q 36 640 91 640 q 8 637 27 640 l 8 752 l 52 757 q 162 719 113 757 q 236 627 200 690 l 383 372 l 594 737 l 726 737 l 448 250 l 625 -69 q 670 -153 647 -110 q 743 -188 695 -188 q 780 -184 759 -188 l 780 -278 "},"\u03af":{"x_min":42,"x_max":326.71875,"ha":361,"o":"m 284 3 q 233 -10 258 -5 q 182 -15 207 -15 q 85 26 119 -15 q 42 200 42 79 l 42 737 l 167 737 l 168 215 q 172 141 168 157 q 226 101 183 101 q 248 102 239 101 q 284 112 257 104 l 284 3 m 326 1040 l 137 819 l 54 819 l 189 1040 l 326 1040 "},"\u0396":{"x_min":0,"x_max":779.171875,"ha":850,"o":"m 779 0 l 0 0 l 0 113 l 620 896 l 40 896 l 40 1013 l 779 1013 l 779 887 l 170 124 l 779 124 l 779 0 "},"R":{"x_min":0,"x_max":781.953125,"ha":907,"o":"m 781 0 l 623 0 q 587 242 590 52 q 407 433 585 433 l 138 433 l 138 0 l 0 0 l 0 1013 l 396 1013 q 636 946 539 1013 q 749 731 749 868 q 711 597 749 659 q 608 502 674 534 q 718 370 696 474 q 729 207 722 352 q 781 26 736 62 l 781 0 m 373 551 q 533 594 465 551 q 614 731 614 645 q 532 859 614 815 q 373 896 465 896 l 138 896 l 138 551 l 373 551 "},"o":{"x_min":0,"x_max":713,"ha":821,"o":"m 357 -25 q 94 91 194 -25 q 0 368 0 202 q 93 642 0 533 q 357 761 193 761 q 618 644 518 761 q 713 368 713 533 q 619 91 713 201 q 357 -25 521 -25 m 357 85 q 528 175 465 85 q 584 369 584 255 q 529 562 584 484 q 357 651 467 651 q 189 560 250 651 q 135 369 135 481 q 187 177 135 257 q 357 85 250 85 "},"K":{"x_min":0,"x_max":819.46875,"ha":906,"o":"m 819 0 l 649 0 l 294 509 l 139 355 l 139 0 l 0 0 l 0 1013 l 139 1013 l 139 526 l 626 1013 l 809 1013 l 395 600 l 819 0 "},",":{"x_min":0,"x_max":142,"ha":239,"o":"m 142 -12 q 105 -132 142 -82 q 0 -205 68 -182 l 0 -138 q 57 -82 40 -124 q 70 0 70 -51 l 0 0 l 0 151 l 142 151 l 142 -12 "},"d":{"x_min":0,"x_max":683,"ha":796,"o":"m 683 0 l 564 0 l 564 93 q 456 6 516 38 q 327 -25 395 -25 q 87 100 181 -25 q 0 365 0 215 q 90 639 0 525 q 343 763 187 763 q 564 647 486 763 l 564 1013 l 683 1013 l 683 0 m 582 373 q 529 562 582 484 q 361 653 468 653 q 190 561 253 653 q 135 365 135 479 q 189 175 135 254 q 358 85 251 85 q 529 178 468 85 q 582 373 582 258 "},"\xa8":{"x_min":-109,"x_max":247,"ha":232,"o":"m 247 1046 l 119 1046 l 119 1189 l 247 1189 l 247 1046 m 19 1046 l -109 1046 l -109 1189 l 19 1189 l 19 1046 "},"E":{"x_min":0,"x_max":736.109375,"ha":789,"o":"m 736 0 l 0 0 l 0 1013 l 725 1013 l 725 889 l 139 889 l 139 585 l 677 585 l 677 467 l 139 467 l 139 125 l 736 125 l 736 0 "},"Y":{"x_min":0,"x_max":820,"ha":886,"o":"m 820 1013 l 482 416 l 482 0 l 342 0 l 342 416 l 0 1013 l 140 1013 l 411 534 l 679 1012 l 820 1013 "},"\\"":{"x_min":0,"x_max":299,"ha":396,"o":"m 299 606 l 203 606 l 203 988 l 299 988 l 299 606 m 96 606 l 0 606 l 0 988 l 96 988 l 96 606 "},"\u2039":{"x_min":17.984375,"x_max":773.609375,"ha":792,"o":"m 773 40 l 18 376 l 17 465 l 773 799 l 773 692 l 159 420 l 773 149 l 773 40 "},"\u201e":{"x_min":0,"x_max":364,"ha":467,"o":"m 141 -12 q 104 -132 141 -82 q 0 -205 67 -182 l 0 -138 q 56 -82 40 -124 q 69 0 69 -51 l 0 0 l 0 151 l 141 151 l 141 -12 m 364 -12 q 327 -132 364 -82 q 222 -205 290 -182 l 222 -138 q 279 -82 262 -124 q 292 0 292 -51 l 222 0 l 222 151 l 364 151 l 364 -12 "},"\u03b4":{"x_min":1,"x_max":710,"ha":810,"o":"m 710 360 q 616 87 710 196 q 356 -28 518 -28 q 99 82 197 -28 q 1 356 1 192 q 100 606 1 509 q 355 703 199 703 q 180 829 288 754 q 70 903 124 866 l 70 1012 l 643 1012 l 643 901 l 258 901 q 462 763 422 794 q 636 592 577 677 q 710 360 710 485 m 584 365 q 552 501 584 447 q 451 602 521 555 q 372 611 411 611 q 197 541 258 611 q 136 355 136 472 q 190 171 136 245 q 358 85 252 85 q 528 173 465 85 q 584 365 584 252 "},"\u03ad":{"x_min":0,"x_max":634.71875,"ha":714,"o":"m 634 234 q 527 38 634 110 q 300 -25 433 -25 q 98 29 183 -25 q 0 204 0 93 q 37 313 0 265 q 128 390 67 352 q 56 459 82 419 q 26 555 26 505 q 114 712 26 654 q 295 763 191 763 q 499 700 416 763 q 589 515 589 631 l 478 515 q 419 618 464 580 q 307 657 374 657 q 207 630 253 657 q 151 547 151 598 q 238 445 151 469 q 389 434 280 434 l 389 331 l 349 331 q 206 315 255 331 q 125 210 125 287 q 183 107 125 145 q 302 76 233 76 q 436 117 379 76 q 509 234 493 159 l 634 234 m 520 1040 l 331 819 l 248 819 l 383 1040 l 520 1040 "},"\u03c9":{"x_min":0,"x_max":922,"ha":1031,"o":"m 922 339 q 856 97 922 203 q 650 -26 780 -26 q 538 9 587 -26 q 461 103 489 44 q 387 12 436 46 q 277 -22 339 -22 q 69 97 147 -22 q 0 339 0 203 q 45 551 0 444 q 161 738 84 643 l 302 738 q 175 553 219 647 q 124 336 124 446 q 155 179 124 249 q 275 88 197 88 q 375 163 341 88 q 400 294 400 219 l 400 572 l 524 572 l 524 294 q 561 135 524 192 q 643 88 591 88 q 762 182 719 88 q 797 342 797 257 q 745 556 797 450 q 619 738 705 638 l 760 738 q 874 551 835 640 q 922 339 922 444 "},"\xb4":{"x_min":0,"x_max":96,"ha":251,"o":"m 96 606 l 0 606 l 0 988 l 96 988 l 96 606 "},"\xb1":{"x_min":11,"x_max":781,"ha":792,"o":"m 781 490 l 446 490 l 446 255 l 349 255 l 349 490 l 11 490 l 11 586 l 349 586 l 349 819 l 446 819 l 446 586 l 781 586 l 781 490 m 781 21 l 11 21 l 11 115 l 781 115 l 781 21 "},"|":{"x_min":343,"x_max":449,"ha":792,"o":"m 449 462 l 343 462 l 343 986 l 449 986 l 449 462 m 449 -242 l 343 -242 l 343 280 l 449 280 l 449 -242 "},"\u03cb":{"x_min":0,"x_max":617,"ha":725,"o":"m 482 800 l 372 800 l 372 925 l 482 925 l 482 800 m 239 800 l 129 800 l 129 925 l 239 925 l 239 800 m 617 352 q 540 93 617 199 q 308 -24 455 -24 q 76 93 161 -24 q 0 352 0 199 l 0 738 l 126 738 l 126 354 q 169 185 126 257 q 312 98 220 98 q 451 185 402 98 q 492 354 492 257 l 492 738 l 617 738 l 617 352 "},"\xa7":{"x_min":0,"x_max":593,"ha":690,"o":"m 593 425 q 554 312 593 369 q 467 233 516 254 q 537 83 537 172 q 459 -74 537 -12 q 288 -133 387 -133 q 115 -69 184 -133 q 47 96 47 -6 l 166 96 q 199 7 166 40 q 288 -26 232 -26 q 371 -5 332 -26 q 420 60 420 21 q 311 201 420 139 q 108 309 210 255 q 0 490 0 383 q 33 602 0 551 q 124 687 66 654 q 75 743 93 712 q 58 812 58 773 q 133 984 58 920 q 300 1043 201 1043 q 458 987 394 1043 q 529 814 529 925 l 411 814 q 370 908 404 877 q 289 939 336 939 q 213 911 246 939 q 180 841 180 883 q 286 720 180 779 q 484 612 480 615 q 593 425 593 534 m 467 409 q 355 544 467 473 q 196 630 228 612 q 146 587 162 609 q 124 525 124 558 q 239 387 124 462 q 398 298 369 315 q 448 345 429 316 q 467 409 467 375 "},"b":{"x_min":0,"x_max":685,"ha":783,"o":"m 685 372 q 597 99 685 213 q 347 -25 501 -25 q 219 5 277 -25 q 121 93 161 36 l 121 0 l 0 0 l 0 1013 l 121 1013 l 121 634 q 214 723 157 692 q 341 754 272 754 q 591 637 493 754 q 685 372 685 526 m 554 356 q 499 550 554 470 q 328 644 437 644 q 162 556 223 644 q 108 369 108 478 q 160 176 108 256 q 330 83 221 83 q 498 169 435 83 q 554 356 554 245 "},"q":{"x_min":0,"x_max":683,"ha":876,"o":"m 683 -278 l 564 -278 l 564 97 q 474 8 533 39 q 345 -23 415 -23 q 91 93 188 -23 q 0 364 0 203 q 87 635 0 522 q 337 760 184 760 q 466 727 408 760 q 564 637 523 695 l 564 737 l 683 737 l 683 -278 m 582 375 q 527 564 582 488 q 358 652 466 652 q 190 565 253 652 q 135 377 135 488 q 189 179 135 261 q 361 84 251 84 q 530 179 469 84 q 582 375 582 260 "},"\u03a9":{"x_min":-0.171875,"x_max":969.5625,"ha":1068,"o":"m 969 0 l 555 0 l 555 123 q 744 308 675 194 q 814 558 814 423 q 726 812 814 709 q 484 922 633 922 q 244 820 334 922 q 154 567 154 719 q 223 316 154 433 q 412 123 292 199 l 412 0 l 0 0 l 0 124 l 217 124 q 68 327 122 210 q 15 572 15 444 q 144 911 15 781 q 484 1041 274 1041 q 822 909 691 1041 q 953 569 953 777 q 899 326 953 443 q 750 124 846 210 l 969 124 l 969 0 "},"\u03cd":{"x_min":0,"x_max":617,"ha":725,"o":"m 617 352 q 540 93 617 199 q 308 -24 455 -24 q 76 93 161 -24 q 0 352 0 199 l 0 738 l 126 738 l 126 354 q 169 185 126 257 q 312 98 220 98 q 451 185 402 98 q 492 354 492 257 l 492 738 l 617 738 l 617 352 m 535 1040 l 346 819 l 262 819 l 397 1040 l 535 1040 "},"z":{"x_min":-0.015625,"x_max":613.890625,"ha":697,"o":"m 613 0 l 0 0 l 0 100 l 433 630 l 20 630 l 20 738 l 594 738 l 593 636 l 163 110 l 613 110 l 613 0 "},"\u2122":{"x_min":0,"x_max":894,"ha":1000,"o":"m 389 951 l 229 951 l 229 503 l 160 503 l 160 951 l 0 951 l 0 1011 l 389 1011 l 389 951 m 894 503 l 827 503 l 827 939 l 685 503 l 620 503 l 481 937 l 481 503 l 417 503 l 417 1011 l 517 1011 l 653 580 l 796 1010 l 894 1011 l 894 503 "},"\u03ae":{"x_min":0.78125,"x_max":697,"ha":810,"o":"m 697 -278 l 572 -278 l 572 454 q 540 587 572 536 q 425 650 501 650 q 271 579 337 650 q 206 420 206 509 l 206 0 l 81 0 l 81 489 q 73 588 81 562 q 0 644 56 644 l 0 741 q 68 755 38 755 q 158 721 124 755 q 200 630 193 687 q 297 726 234 692 q 434 761 359 761 q 620 692 544 761 q 697 516 697 624 l 697 -278 m 479 1040 l 290 819 l 207 819 l 341 1040 l 479 1040 "},"\u0398":{"x_min":0,"x_max":960,"ha":1056,"o":"m 960 507 q 833 129 960 280 q 476 -32 698 -32 q 123 129 255 -32 q 0 507 0 280 q 123 883 0 732 q 476 1045 255 1045 q 832 883 696 1045 q 960 507 960 732 m 817 500 q 733 789 817 669 q 476 924 639 924 q 223 792 317 924 q 142 507 142 675 q 222 222 142 339 q 476 89 315 89 q 730 218 636 89 q 817 500 817 334 m 716 449 l 243 449 l 243 571 l 716 571 l 716 449 "},"\xae":{"x_min":-3,"x_max":1008,"ha":1106,"o":"m 503 532 q 614 562 566 532 q 672 658 672 598 q 614 747 672 716 q 503 772 569 772 l 338 772 l 338 532 l 503 532 m 502 -7 q 123 151 263 -7 q -3 501 -3 294 q 123 851 -3 706 q 502 1011 263 1011 q 881 851 739 1011 q 1008 501 1008 708 q 883 151 1008 292 q 502 -7 744 -7 m 502 60 q 830 197 709 60 q 940 501 940 322 q 831 805 940 681 q 502 944 709 944 q 174 805 296 944 q 65 501 65 680 q 173 197 65 320 q 502 60 294 60 m 788 146 l 678 146 q 653 316 655 183 q 527 449 652 449 l 338 449 l 338 146 l 241 146 l 241 854 l 518 854 q 688 808 621 854 q 766 658 766 755 q 739 563 766 607 q 668 497 713 519 q 751 331 747 472 q 788 164 756 190 l 788 146 "},"~":{"x_min":0,"x_max":833,"ha":931,"o":"m 833 958 q 778 753 833 831 q 594 665 716 665 q 402 761 502 665 q 240 857 302 857 q 131 795 166 857 q 104 665 104 745 l 0 665 q 54 867 0 789 q 237 958 116 958 q 429 861 331 958 q 594 765 527 765 q 704 827 670 765 q 729 958 729 874 l 833 958 "},"\u0395":{"x_min":0,"x_max":736.21875,"ha":778,"o":"m 736 0 l 0 0 l 0 1013 l 725 1013 l 725 889 l 139 889 l 139 585 l 677 585 l 677 467 l 139 467 l 139 125 l 736 125 l 736 0 "},"\xb3":{"x_min":0,"x_max":450,"ha":547,"o":"m 450 552 q 379 413 450 464 q 220 366 313 366 q 69 414 130 366 q 0 567 0 470 l 85 567 q 126 470 85 504 q 225 437 168 437 q 320 467 280 437 q 360 552 360 498 q 318 632 360 608 q 213 657 276 657 q 195 657 203 657 q 176 657 181 657 l 176 722 q 279 733 249 722 q 334 815 334 752 q 300 881 334 856 q 220 907 267 907 q 133 875 169 907 q 97 781 97 844 l 15 781 q 78 926 15 875 q 220 972 135 972 q 364 930 303 972 q 426 817 426 888 q 344 697 426 733 q 421 642 392 681 q 450 552 450 603 "},"[":{"x_min":0,"x_max":273.609375,"ha":371,"o":"m 273 -281 l 0 -281 l 0 1013 l 273 1013 l 273 920 l 124 920 l 124 -187 l 273 -187 l 273 -281 "},"L":{"x_min":0,"x_max":645.828125,"ha":696,"o":"m 645 0 l 0 0 l 0 1013 l 140 1013 l 140 126 l 645 126 l 645 0 "},"\u03c3":{"x_min":0,"x_max":803.390625,"ha":894,"o":"m 803 628 l 633 628 q 713 368 713 512 q 618 93 713 204 q 357 -25 518 -25 q 94 91 194 -25 q 0 368 0 201 q 94 644 0 533 q 356 761 194 761 q 481 750 398 761 q 608 739 564 739 l 803 739 l 803 628 m 360 85 q 529 180 467 85 q 584 374 584 262 q 527 566 584 490 q 352 651 463 651 q 187 559 247 651 q 135 368 135 478 q 189 175 135 254 q 360 85 251 85 "},"\u03b6":{"x_min":0,"x_max":573,"ha":642,"o":"m 573 -40 q 553 -162 573 -97 q 510 -278 543 -193 l 400 -278 q 441 -187 428 -219 q 462 -90 462 -132 q 378 -14 462 -14 q 108 45 197 -14 q 0 290 0 117 q 108 631 0 462 q 353 901 194 767 l 55 901 l 55 1012 l 561 1012 l 561 924 q 261 669 382 831 q 128 301 128 489 q 243 117 128 149 q 458 98 350 108 q 573 -40 573 80 "},"\u03b8":{"x_min":0,"x_max":674,"ha":778,"o":"m 674 496 q 601 160 674 304 q 336 -26 508 -26 q 73 153 165 -26 q 0 485 0 296 q 72 840 0 683 q 343 1045 166 1045 q 605 844 516 1045 q 674 496 674 692 m 546 579 q 498 798 546 691 q 336 935 437 935 q 178 798 237 935 q 126 579 137 701 l 546 579 m 546 475 l 126 475 q 170 233 126 348 q 338 80 230 80 q 504 233 447 80 q 546 475 546 346 "},"\u039f":{"x_min":0,"x_max":958,"ha":1054,"o":"m 485 1042 q 834 883 703 1042 q 958 511 958 735 q 834 136 958 287 q 481 -26 701 -26 q 126 130 261 -26 q 0 504 0 279 q 127 880 0 729 q 485 1042 263 1042 m 480 98 q 731 225 638 98 q 815 504 815 340 q 733 783 815 670 q 480 913 640 913 q 226 785 321 913 q 142 504 142 671 q 226 224 142 339 q 480 98 319 98 "},"\u0393":{"x_min":0,"x_max":705.28125,"ha":749,"o":"m 705 886 l 140 886 l 140 0 l 0 0 l 0 1012 l 705 1012 l 705 886 "}," ":{"x_min":0,"x_max":0,"ha":375},"%":{"x_min":-3,"x_max":1089,"ha":1186,"o":"m 845 0 q 663 76 731 0 q 602 244 602 145 q 661 412 602 344 q 845 489 728 489 q 1027 412 959 489 q 1089 244 1089 343 q 1029 76 1089 144 q 845 0 962 0 m 844 103 q 945 143 909 103 q 981 243 981 184 q 947 340 981 301 q 844 385 909 385 q 744 342 781 385 q 708 243 708 300 q 741 147 708 186 q 844 103 780 103 m 888 986 l 284 -25 l 199 -25 l 803 986 l 888 986 m 241 468 q 58 545 126 468 q -3 715 -3 615 q 56 881 -3 813 q 238 958 124 958 q 421 881 353 958 q 483 712 483 813 q 423 544 483 612 q 241 468 356 468 m 241 855 q 137 811 175 855 q 100 710 100 768 q 136 612 100 653 q 240 572 172 572 q 344 614 306 572 q 382 713 382 656 q 347 810 382 771 q 241 855 308 855 "},"P":{"x_min":0,"x_max":726,"ha":806,"o":"m 424 1013 q 640 931 555 1013 q 726 719 726 850 q 637 506 726 587 q 413 426 548 426 l 140 426 l 140 0 l 0 0 l 0 1013 l 424 1013 m 379 889 l 140 889 l 140 548 l 372 548 q 522 589 459 548 q 593 720 593 637 q 528 845 593 801 q 379 889 463 889 "},"\u0388":{"x_min":0,"x_max":1078.21875,"ha":1118,"o":"m 1078 0 l 342 0 l 342 1013 l 1067 1013 l 1067 889 l 481 889 l 481 585 l 1019 585 l 1019 467 l 481 467 l 481 125 l 1078 125 l 1078 0 m 277 1040 l 83 799 l 0 799 l 140 1040 l 277 1040 "},"\u038f":{"x_min":0.125,"x_max":1136.546875,"ha":1235,"o":"m 1136 0 l 722 0 l 722 123 q 911 309 842 194 q 981 558 981 423 q 893 813 981 710 q 651 923 800 923 q 411 821 501 923 q 321 568 321 720 q 390 316 321 433 q 579 123 459 200 l 579 0 l 166 0 l 166 124 l 384 124 q 235 327 289 210 q 182 572 182 444 q 311 912 182 782 q 651 1042 441 1042 q 989 910 858 1042 q 1120 569 1120 778 q 1066 326 1120 443 q 917 124 1013 210 l 1136 124 l 1136 0 m 277 1040 l 83 800 l 0 800 l 140 1041 l 277 1040 "},"_":{"x_min":0,"x_max":705.5625,"ha":803,"o":"m 705 -334 l 0 -334 l 0 -234 l 705 -234 l 705 -334 "},"\u03aa":{"x_min":-110,"x_max":246,"ha":275,"o":"m 246 1046 l 118 1046 l 118 1189 l 246 1189 l 246 1046 m 18 1046 l -110 1046 l -110 1189 l 18 1189 l 18 1046 m 136 0 l 0 0 l 0 1012 l 136 1012 l 136 0 "},"+":{"x_min":23,"x_max":768,"ha":792,"o":"m 768 372 l 444 372 l 444 0 l 347 0 l 347 372 l 23 372 l 23 468 l 347 468 l 347 840 l 444 840 l 444 468 l 768 468 l 768 372 "},"\xbd":{"x_min":0,"x_max":1050,"ha":1149,"o":"m 1050 0 l 625 0 q 712 178 625 108 q 878 277 722 187 q 967 385 967 328 q 932 456 967 429 q 850 484 897 484 q 759 450 798 484 q 721 352 721 416 l 640 352 q 706 502 640 448 q 851 551 766 551 q 987 509 931 551 q 1050 385 1050 462 q 976 251 1050 301 q 829 179 902 215 q 717 68 740 133 l 1050 68 l 1050 0 m 834 985 l 215 -28 l 130 -28 l 750 984 l 834 985 m 224 422 l 142 422 l 142 811 l 0 811 l 0 867 q 104 889 62 867 q 164 973 157 916 l 224 973 l 224 422 "},"\u03a1":{"x_min":0,"x_max":720,"ha":783,"o":"m 424 1013 q 637 933 554 1013 q 720 723 720 853 q 633 508 720 591 q 413 426 546 426 l 140 426 l 140 0 l 0 0 l 0 1013 l 424 1013 m 378 889 l 140 889 l 140 548 l 371 548 q 521 589 458 548 q 592 720 592 637 q 527 845 592 801 q 378 889 463 889 "},"\'":{"x_min":0,"x_max":139,"ha":236,"o":"m 139 851 q 102 737 139 784 q 0 669 65 690 l 0 734 q 59 787 42 741 q 72 873 72 821 l 0 873 l 0 1013 l 139 1013 l 139 851 "},"\xaa":{"x_min":0,"x_max":350,"ha":397,"o":"m 350 625 q 307 616 328 616 q 266 631 281 616 q 247 673 251 645 q 190 628 225 644 q 116 613 156 613 q 32 641 64 613 q 0 722 0 669 q 72 826 0 800 q 247 866 159 846 l 247 887 q 220 934 247 916 q 162 953 194 953 q 104 934 129 953 q 76 882 80 915 l 16 882 q 60 976 16 941 q 166 1011 104 1011 q 266 979 224 1011 q 308 891 308 948 l 308 706 q 311 679 308 688 q 331 670 315 670 l 350 672 l 350 625 m 247 757 l 247 811 q 136 790 175 798 q 64 726 64 773 q 83 682 64 697 q 132 667 103 667 q 207 690 174 667 q 247 757 247 718 "},"\u0385":{"x_min":0,"x_max":450,"ha":553,"o":"m 450 800 l 340 800 l 340 925 l 450 925 l 450 800 m 406 1040 l 212 800 l 129 800 l 269 1040 l 406 1040 m 110 800 l 0 800 l 0 925 l 110 925 l 110 800 "},"T":{"x_min":0,"x_max":777,"ha":835,"o":"m 777 894 l 458 894 l 458 0 l 319 0 l 319 894 l 0 894 l 0 1013 l 777 1013 l 777 894 "},"\u03a6":{"x_min":0,"x_max":915,"ha":997,"o":"m 527 0 l 389 0 l 389 122 q 110 231 220 122 q 0 509 0 340 q 110 785 0 677 q 389 893 220 893 l 389 1013 l 527 1013 l 527 893 q 804 786 693 893 q 915 509 915 679 q 805 231 915 341 q 527 122 696 122 l 527 0 m 527 226 q 712 310 641 226 q 779 507 779 389 q 712 705 779 627 q 527 787 641 787 l 527 226 m 389 226 l 389 787 q 205 698 275 775 q 136 505 136 620 q 206 308 136 391 q 389 226 276 226 "},"\u204b":{"x_min":0,"x_max":0,"ha":694},"j":{"x_min":-77.78125,"x_max":167,"ha":349,"o":"m 167 871 l 42 871 l 42 1013 l 167 1013 l 167 871 m 167 -80 q 121 -231 167 -184 q -26 -278 76 -278 l -77 -278 l -77 -164 l -41 -164 q 26 -143 11 -164 q 42 -65 42 -122 l 42 737 l 167 737 l 167 -80 "},"\u03a3":{"x_min":0,"x_max":756.953125,"ha":819,"o":"m 756 0 l 0 0 l 0 107 l 395 523 l 22 904 l 22 1013 l 745 1013 l 745 889 l 209 889 l 566 523 l 187 125 l 756 125 l 756 0 "},"\u203a":{"x_min":18.0625,"x_max":774,"ha":792,"o":"m 774 376 l 18 40 l 18 149 l 631 421 l 18 692 l 18 799 l 774 465 l 774 376 "},"<":{"x_min":17.984375,"x_max":773.609375,"ha":792,"o":"m 773 40 l 18 376 l 17 465 l 773 799 l 773 692 l 159 420 l 773 149 l 773 40 "},"\xa3":{"x_min":0,"x_max":704.484375,"ha":801,"o":"m 704 41 q 623 -10 664 5 q 543 -26 583 -26 q 359 15 501 -26 q 243 36 288 36 q 158 23 197 36 q 73 -21 119 10 l 6 76 q 125 195 90 150 q 175 331 175 262 q 147 443 175 383 l 0 443 l 0 512 l 108 512 q 43 734 43 623 q 120 929 43 854 q 358 1010 204 1010 q 579 936 487 1010 q 678 729 678 857 l 678 684 l 552 684 q 504 838 552 780 q 362 896 457 896 q 216 852 263 896 q 176 747 176 815 q 199 627 176 697 q 248 512 217 574 l 468 512 l 468 443 l 279 443 q 297 356 297 398 q 230 194 297 279 q 153 107 211 170 q 227 133 190 125 q 293 142 264 142 q 410 119 339 142 q 516 96 482 96 q 579 105 550 96 q 648 142 608 115 l 704 41 "},"t":{"x_min":0,"x_max":367,"ha":458,"o":"m 367 0 q 312 -5 339 -2 q 262 -8 284 -8 q 145 28 183 -8 q 108 143 108 64 l 108 638 l 0 638 l 0 738 l 108 738 l 108 944 l 232 944 l 232 738 l 367 738 l 367 638 l 232 638 l 232 185 q 248 121 232 140 q 307 102 264 102 q 345 104 330 102 q 367 107 360 107 l 367 0 "},"\xac":{"x_min":0,"x_max":706,"ha":803,"o":"m 706 411 l 706 158 l 630 158 l 630 335 l 0 335 l 0 411 l 706 411 "},"\u03bb":{"x_min":0,"x_max":750,"ha":803,"o":"m 750 -7 q 679 -15 716 -15 q 538 59 591 -15 q 466 214 512 97 l 336 551 l 126 0 l 0 0 l 270 705 q 223 837 247 770 q 116 899 190 899 q 90 898 100 899 l 90 1004 q 152 1011 125 1011 q 298 938 244 1011 q 373 783 326 901 l 605 192 q 649 115 629 136 q 716 95 669 95 l 736 95 q 750 97 745 97 l 750 -7 "},"W":{"x_min":0,"x_max":1263.890625,"ha":1351,"o":"m 1263 1013 l 995 0 l 859 0 l 627 837 l 405 0 l 265 0 l 0 1013 l 136 1013 l 342 202 l 556 1013 l 701 1013 l 921 207 l 1133 1012 l 1263 1013 "},">":{"x_min":18.0625,"x_max":774,"ha":792,"o":"m 774 376 l 18 40 l 18 149 l 631 421 l 18 692 l 18 799 l 774 465 l 774 376 "},"v":{"x_min":0,"x_max":675.15625,"ha":761,"o":"m 675 738 l 404 0 l 272 0 l 0 738 l 133 737 l 340 147 l 541 737 l 675 738 "},"\u03c4":{"x_min":0.28125,"x_max":644.5,"ha":703,"o":"m 644 628 l 382 628 l 382 179 q 388 120 382 137 q 436 91 401 91 q 474 94 447 91 q 504 97 501 97 l 504 0 q 454 -9 482 -5 q 401 -14 426 -14 q 278 67 308 -14 q 260 233 260 118 l 260 628 l 0 628 l 0 739 l 644 739 l 644 628 "},"\u03be":{"x_min":0,"x_max":624.9375,"ha":699,"o":"m 624 -37 q 608 -153 624 -96 q 563 -278 593 -211 l 454 -278 q 491 -183 486 -200 q 511 -83 511 -126 q 484 -23 511 -44 q 370 1 452 1 q 323 0 354 1 q 283 -1 293 -1 q 84 76 169 -1 q 0 266 0 154 q 56 431 0 358 q 197 538 108 498 q 94 613 134 562 q 54 730 54 665 q 77 823 54 780 q 143 901 101 867 l 27 901 l 27 1012 l 576 1012 l 576 901 l 380 901 q 244 863 303 901 q 178 745 178 820 q 312 600 178 636 q 532 582 380 582 l 532 479 q 276 455 361 479 q 118 281 118 410 q 165 173 118 217 q 274 120 208 133 q 494 101 384 110 q 624 -37 624 76 "},"&":{"x_min":-3,"x_max":894.25,"ha":992,"o":"m 894 0 l 725 0 l 624 123 q 471 0 553 40 q 306 -41 390 -41 q 168 -7 231 -41 q 62 92 105 26 q 14 187 31 139 q -3 276 -3 235 q 55 433 -3 358 q 248 581 114 508 q 170 689 196 640 q 137 817 137 751 q 214 985 137 922 q 384 1041 284 1041 q 548 988 483 1041 q 622 824 622 928 q 563 666 622 739 q 431 556 516 608 l 621 326 q 649 407 639 361 q 663 493 653 426 l 781 493 q 703 229 781 352 l 894 0 m 504 818 q 468 908 504 877 q 384 940 433 940 q 293 907 331 940 q 255 818 255 875 q 289 714 255 767 q 363 628 313 678 q 477 729 446 682 q 504 818 504 771 m 556 209 l 314 499 q 179 395 223 449 q 135 283 135 341 q 146 222 135 253 q 183 158 158 192 q 333 80 241 80 q 556 209 448 80 "},"\u039b":{"x_min":0,"x_max":862.5,"ha":942,"o":"m 862 0 l 719 0 l 426 847 l 143 0 l 0 0 l 356 1013 l 501 1013 l 862 0 "},"I":{"x_min":41,"x_max":180,"ha":293,"o":"m 180 0 l 41 0 l 41 1013 l 180 1013 l 180 0 "},"G":{"x_min":0,"x_max":921,"ha":1011,"o":"m 921 0 l 832 0 l 801 136 q 655 15 741 58 q 470 -28 568 -28 q 126 133 259 -28 q 0 499 0 284 q 125 881 0 731 q 486 1043 259 1043 q 763 957 647 1043 q 905 709 890 864 l 772 709 q 668 866 747 807 q 486 926 589 926 q 228 795 322 926 q 142 507 142 677 q 228 224 142 342 q 483 94 323 94 q 712 195 625 94 q 796 435 796 291 l 477 435 l 477 549 l 921 549 l 921 0 "},"\u03b0":{"x_min":0,"x_max":617,"ha":725,"o":"m 524 800 l 414 800 l 414 925 l 524 925 l 524 800 m 183 800 l 73 800 l 73 925 l 183 925 l 183 800 m 617 352 q 540 93 617 199 q 308 -24 455 -24 q 76 93 161 -24 q 0 352 0 199 l 0 738 l 126 738 l 126 354 q 169 185 126 257 q 312 98 220 98 q 451 185 402 98 q 492 354 492 257 l 492 738 l 617 738 l 617 352 m 489 1040 l 300 819 l 216 819 l 351 1040 l 489 1040 "},"`":{"x_min":0,"x_max":138.890625,"ha":236,"o":"m 138 699 l 0 699 l 0 861 q 36 974 0 929 q 138 1041 72 1020 l 138 977 q 82 931 95 969 q 69 839 69 893 l 138 839 l 138 699 "},"\xb7":{"x_min":0,"x_max":142,"ha":239,"o":"m 142 585 l 0 585 l 0 738 l 142 738 l 142 585 "},"\u03a5":{"x_min":0.328125,"x_max":819.515625,"ha":889,"o":"m 819 1013 l 482 416 l 482 0 l 342 0 l 342 416 l 0 1013 l 140 1013 l 411 533 l 679 1013 l 819 1013 "},"r":{"x_min":0,"x_max":355.5625,"ha":432,"o":"m 355 621 l 343 621 q 179 569 236 621 q 122 411 122 518 l 122 0 l 0 0 l 0 737 l 117 737 l 117 604 q 204 719 146 686 q 355 753 262 753 l 355 621 "},"x":{"x_min":0,"x_max":675,"ha":764,"o":"m 675 0 l 525 0 l 331 286 l 144 0 l 0 0 l 256 379 l 12 738 l 157 737 l 336 473 l 516 738 l 661 738 l 412 380 l 675 0 "},"\u03bc":{"x_min":0,"x_max":696.609375,"ha":747,"o":"m 696 -4 q 628 -14 657 -14 q 498 97 513 -14 q 422 8 470 41 q 313 -24 374 -24 q 207 3 258 -24 q 120 80 157 31 l 120 -278 l 0 -278 l 0 738 l 124 738 l 124 343 q 165 172 124 246 q 308 82 216 82 q 451 177 402 82 q 492 358 492 254 l 492 738 l 616 738 l 616 214 q 623 136 616 160 q 673 92 636 92 q 696 95 684 92 l 696 -4 "},"h":{"x_min":0,"x_max":615,"ha":724,"o":"m 615 472 l 615 0 l 490 0 l 490 454 q 456 590 490 535 q 338 654 416 654 q 186 588 251 654 q 122 436 122 522 l 122 0 l 0 0 l 0 1013 l 122 1013 l 122 633 q 218 727 149 694 q 362 760 287 760 q 552 676 484 760 q 615 472 615 600 "},".":{"x_min":0,"x_max":142,"ha":239,"o":"m 142 0 l 0 0 l 0 151 l 142 151 l 142 0 "},"\u03c6":{"x_min":-2,"x_max":878,"ha":974,"o":"m 496 -279 l 378 -279 l 378 -17 q 101 88 204 -17 q -2 367 -2 194 q 68 626 -2 510 q 283 758 151 758 l 283 646 q 167 537 209 626 q 133 373 133 462 q 192 177 133 254 q 378 93 259 93 l 378 758 q 445 764 426 763 q 476 765 464 765 q 765 659 653 765 q 878 377 878 553 q 771 96 878 209 q 496 -17 665 -17 l 496 -279 m 496 93 l 514 93 q 687 183 623 93 q 746 380 746 265 q 691 569 746 491 q 522 658 629 658 l 496 656 l 496 93 "},";":{"x_min":0,"x_max":142,"ha":239,"o":"m 142 585 l 0 585 l 0 738 l 142 738 l 142 585 m 142 -12 q 105 -132 142 -82 q 0 -206 68 -182 l 0 -138 q 58 -82 43 -123 q 68 0 68 -56 l 0 0 l 0 151 l 142 151 l 142 -12 "},"f":{"x_min":0,"x_max":378,"ha":472,"o":"m 378 638 l 246 638 l 246 0 l 121 0 l 121 638 l 0 638 l 0 738 l 121 738 q 137 935 121 887 q 290 1028 171 1028 q 320 1027 305 1028 q 378 1021 334 1026 l 378 908 q 323 918 346 918 q 257 870 273 918 q 246 780 246 840 l 246 738 l 378 738 l 378 638 "},"\u201c":{"x_min":1,"x_max":348.21875,"ha":454,"o":"m 140 670 l 1 670 l 1 830 q 37 943 1 897 q 140 1011 74 990 l 140 947 q 82 900 97 940 q 68 810 68 861 l 140 810 l 140 670 m 348 670 l 209 670 l 209 830 q 245 943 209 897 q 348 1011 282 990 l 348 947 q 290 900 305 940 q 276 810 276 861 l 348 810 l 348 670 "},"A":{"x_min":0.03125,"x_max":906.953125,"ha":1008,"o":"m 906 0 l 756 0 l 648 303 l 251 303 l 142 0 l 0 0 l 376 1013 l 529 1013 l 906 0 m 610 421 l 452 867 l 293 421 l 610 421 "},"\u2018":{"x_min":1,"x_max":139.890625,"ha":236,"o":"m 139 670 l 1 670 l 1 830 q 37 943 1 897 q 139 1011 74 990 l 139 947 q 82 900 97 940 q 68 810 68 861 l 139 810 l 139 670 "},"\u03ca":{"x_min":-70,"x_max":283,"ha":361,"o":"m 283 800 l 173 800 l 173 925 l 283 925 l 283 800 m 40 800 l -70 800 l -70 925 l 40 925 l 40 800 m 283 3 q 232 -10 257 -5 q 181 -15 206 -15 q 84 26 118 -15 q 41 200 41 79 l 41 737 l 166 737 l 167 215 q 171 141 167 157 q 225 101 182 101 q 247 103 238 101 q 283 112 256 104 l 283 3 "},"\u03c0":{"x_min":-0.21875,"x_max":773.21875,"ha":857,"o":"m 773 -7 l 707 -11 q 575 40 607 -11 q 552 174 552 77 l 552 226 l 552 626 l 222 626 l 222 0 l 97 0 l 97 626 l 0 626 l 0 737 l 773 737 l 773 626 l 676 626 l 676 171 q 695 103 676 117 q 773 90 714 90 l 773 -7 "},"\u03ac":{"x_min":0,"x_max":765.5625,"ha":809,"o":"m 765 -4 q 698 -14 726 -14 q 564 97 586 -14 q 466 7 525 40 q 337 -26 407 -26 q 88 98 186 -26 q 0 369 0 212 q 88 637 0 525 q 337 760 184 760 q 465 727 407 760 q 563 637 524 695 l 563 738 l 685 738 l 685 222 q 693 141 685 168 q 748 94 708 94 q 765 95 760 94 l 765 -4 m 584 371 q 531 562 584 485 q 360 653 470 653 q 192 566 254 653 q 135 379 135 489 q 186 181 135 261 q 358 84 247 84 q 528 176 465 84 q 584 371 584 260 m 604 1040 l 415 819 l 332 819 l 466 1040 l 604 1040 "},"O":{"x_min":0,"x_max":958,"ha":1057,"o":"m 485 1041 q 834 882 702 1041 q 958 512 958 734 q 834 136 958 287 q 481 -26 702 -26 q 126 130 261 -26 q 0 504 0 279 q 127 880 0 728 q 485 1041 263 1041 m 480 98 q 731 225 638 98 q 815 504 815 340 q 733 783 815 669 q 480 912 640 912 q 226 784 321 912 q 142 504 142 670 q 226 224 142 339 q 480 98 319 98 "},"n":{"x_min":0,"x_max":615,"ha":724,"o":"m 615 463 l 615 0 l 490 0 l 490 454 q 453 592 490 537 q 331 656 410 656 q 178 585 240 656 q 117 421 117 514 l 117 0 l 0 0 l 0 738 l 117 738 l 117 630 q 218 728 150 693 q 359 764 286 764 q 552 675 484 764 q 615 463 615 593 "},"l":{"x_min":41,"x_max":166,"ha":279,"o":"m 166 0 l 41 0 l 41 1013 l 166 1013 l 166 0 "},"\xa4":{"x_min":40.09375,"x_max":728.796875,"ha":825,"o":"m 728 304 l 649 224 l 512 363 q 383 331 458 331 q 256 363 310 331 l 119 224 l 40 304 l 177 441 q 150 553 150 493 q 184 673 150 621 l 40 818 l 119 898 l 267 749 q 321 766 291 759 q 384 773 351 773 q 447 766 417 773 q 501 749 477 759 l 649 898 l 728 818 l 585 675 q 612 618 604 648 q 621 553 621 587 q 591 441 621 491 l 728 304 m 384 682 q 280 643 318 682 q 243 551 243 604 q 279 461 243 499 q 383 423 316 423 q 487 461 449 423 q 525 553 525 500 q 490 641 525 605 q 384 682 451 682 "},"\u03ba":{"x_min":0,"x_max":632.328125,"ha":679,"o":"m 632 0 l 482 0 l 225 384 l 124 288 l 124 0 l 0 0 l 0 738 l 124 738 l 124 446 l 433 738 l 596 738 l 312 466 l 632 0 "},"p":{"x_min":0,"x_max":685,"ha":786,"o":"m 685 364 q 598 96 685 205 q 350 -23 504 -23 q 121 89 205 -23 l 121 -278 l 0 -278 l 0 738 l 121 738 l 121 633 q 220 726 159 691 q 351 761 280 761 q 598 636 504 761 q 685 364 685 522 m 557 371 q 501 560 557 481 q 330 651 437 651 q 162 559 223 651 q 108 366 108 479 q 162 177 108 254 q 333 87 224 87 q 502 178 441 87 q 557 371 557 258 "},"\u2021":{"x_min":0,"x_max":777,"ha":835,"o":"m 458 238 l 458 0 l 319 0 l 319 238 l 0 238 l 0 360 l 319 360 l 319 681 l 0 683 l 0 804 l 319 804 l 319 1015 l 458 1013 l 458 804 l 777 804 l 777 683 l 458 683 l 458 360 l 777 360 l 777 238 l 458 238 "},"\u03c8":{"x_min":0,"x_max":808,"ha":907,"o":"m 465 -278 l 341 -278 l 341 -15 q 87 102 180 -15 q 0 378 0 210 l 0 739 l 133 739 l 133 379 q 182 195 133 275 q 341 98 242 98 l 341 922 l 465 922 l 465 98 q 623 195 563 98 q 675 382 675 278 l 675 742 l 808 742 l 808 381 q 720 104 808 213 q 466 -13 627 -13 l 465 -278 "},"\u03b7":{"x_min":0.78125,"x_max":697,"ha":810,"o":"m 697 -278 l 572 -278 l 572 454 q 540 587 572 536 q 425 650 501 650 q 271 579 337 650 q 206 420 206 509 l 206 0 l 81 0 l 81 489 q 73 588 81 562 q 0 644 56 644 l 0 741 q 68 755 38 755 q 158 720 124 755 q 200 630 193 686 q 297 726 234 692 q 434 761 359 761 q 620 692 544 761 q 697 516 697 624 l 697 -278 "}},"cssFontWeight":"normal","ascender":1189,"underlinePosition":-100,"cssFontStyle":"normal","boundingBox":{"yMin":-334,"xMin":-111,"yMax":1189,"xMax":1672},"resolution":1000,"original_font_information":{"postscript_name":"Helvetiker-Regular","version_string":"Version 1.00 2004 initial release","vendor_url":"http://www.magenta.gr/","full_font_name":"Helvetiker","font_family_name":"Helvetiker","copyright":"Copyright (c) \u039cagenta ltd, 2004","description":"","trademark":"","designer":"","designer_url":"","unique_font_identifier":"\u039cagenta ltd:Helvetiker:22-10-104","license_url":"http://www.ellak.gr/fonts/MgOpen/license.html","license_description":"Copyright (c) 2004 by MAGENTA Ltd. All Rights Reserved.\\r\\n\\r\\nPermission is hereby granted, free of charge, to any person obtaining a copy of the fonts accompanying this license (\\"Fonts\\") and associated documentation files (the \\"Font Software\\"), to reproduce and distribute the Font Software, including without limitation the rights to use, copy, merge, publish, distribute, and/or sell copies of the Font Software, and to permit persons to whom the Font Software is furnished to do so, subject to the following conditions: \\r\\n\\r\\nThe above copyright and this permission notice shall be included in all copies of one or more of the Font Software typefaces.\\r\\n\\r\\nThe Font Software may be modified, altered, or added to, and in particular the designs of glyphs or characters in the Fonts may be modified and additional glyphs or characters may be added to the Fonts, only if the fonts are renamed to names not containing the word \\"MgOpen\\", or if the modifications are accepted for inclusion in the Font Software itself by the each appointed Administrator.\\r\\n\\r\\nThis License becomes null and void to the extent applicable to Fonts or Font Software that has been modified and is distributed under the \\"MgOpen\\" name.\\r\\n\\r\\nThe Font Software may be sold as part of a larger software package but no copy of one or more of the Font Software typefaces may be sold by itself. \\r\\n\\r\\nTHE FONT SOFTWARE IS PROVIDED \\"AS IS\\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL MAGENTA OR PERSONS OR BODIES IN CHARGE OF ADMINISTRATION AND MAINTENANCE OF THE FONT SOFTWARE BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.","manufacturer_name":"\u039cagenta ltd","font_sub_family_name":"Regular"},"descender":-334,"familyName":"Helvetiker","lineHeight":1522,"underlineThickness":50}');class OHe{constructor(n,e=new NHe(new jw(kie)),i=new BHe(new jw(kie)),r=new _He,o=new vHe){this.geometryOptions=n,this.frontPrintContainerMesh=e,this.backPrintContainerMesh=i,this.baseplateMesh=r,this.mapMesh=o,this.printMesh=new Ci,this.printMesh.name="PrintMesh"}initialize(){var n=this;return f(function*(){n.baseplateMesh=yield n.baseplateMesh.init(n.geometryOptions),n.printMesh.add(n.baseplateMesh),n.mapMesh=yield n.mapMesh.init(n.geometryOptions),n.printMesh.add(n.mapMesh),n.frontPrintContainerMesh=yield n.frontPrintContainerMesh.init(n.geometryOptions),n.printMesh.add(n.frontPrintContainerMesh),n.backPrintContainerMesh=yield n.backPrintContainerMesh.init(n.geometryOptions),n.printMesh.add(n.backPrintContainerMesh),n.calculateCurrentSize()})()}getThreeMesh(){return this.printMesh}getMapMesh(){return this.mapMesh}getSize(){return this.currentSize}updateSize(n){var e=this;return f(function*(){e.geometryOptions.width=n;const i=e.currentSize.x;return yield Promise.all([...e.printMesh.children].map(function(){var r=f(function*(o){o instanceof ad&&o.isGeneralSizeChangeMesh()&&o.changeSize(e.geometryOptions,i)});return function(o){return r.apply(this,arguments)}}())),e.calculateCurrentSize(),e.backPrintContainerMesh.isQRCodeVisible()})()}updateNumberOfColors(n){this.geometryOptions.numberOfColors=n;for(const e of this.printMesh.children)e instanceof ad&&e.updateColor(n)}addCustomLogo(n){var e=this;return f(function*(){e.frontPrintContainerMesh.addCustomLogo(n,e.geometryOptions)})()}rotateCustomLogo(){this.frontPrintContainerMesh.rotateCustomLogo()}flipCustomLogo(){this.frontPrintContainerMesh.flipCustomLogo()}removeCustomLogo(){this.frontPrintContainerMesh.removeCustomLogo()}updateCustomLogoColor(n){this.frontPrintContainerMesh.updateCustomLogoColor(n)}updateFrontText(n){this.frontPrintContainerMesh.updateFrontText(n,this.geometryOptions)}updateSecondRowVisibility(n){this.geometryOptions.secondRowVisible!==n&&(this.geometryOptions.secondRowVisible=n,this.frontPrintContainerMesh.updateSecondRowVisibility(this.geometryOptions),this.baseplateMesh.changeSize(this.geometryOptions))}updateSecondRowText(n){var e=this;return f(function*(){yield e.frontPrintContainerMesh.updateSecondRowText(n,e.geometryOptions)})()}calculateCurrentSize(){const n=this.baseplateMesh.getWidth(),e=this.baseplateMesh.getDepth(),i=this.baseplateMesh.getHeight()+this.mapMesh.getHeight();this.currentSize=new Y(n,e,i)}updateQrCodeText(n){var e=this;return f(function*(){yield e.backPrintContainerMesh.updateQrCodeText(n,e.geometryOptions)})()}updateQrCodeVisibility(n){this.backPrintContainerMesh.updateQrCodeVisibility(n)}}function Iie(t,n,e,i,r){const a=t.z,l=t.x,c=t.y-e;return n.geometry.boundingBox||n.geometry.computeBoundingBox(),Math.min(l,c,(a-i)*n.geometry.boundingBox.max.x/(n.geometry.boundingBox.max.z-n.geometry.boundingBox.min.z)+2*r)}const UHe=["rendererContainer"],HHe=["fileInput"],VHe=["class","component"],QHe=()=>["Color"];function zHe(t,n){if(1&t&&(I(0,"mat-option",9),ve(1),I(2,"span",35),ve(3),O()()),2&t){const e=n.$implicit;ue("value",e),H(),an("",e.name," "),H(2),UB(" (x: ",e.x,"cm, y: ",e.y,"cm, z: ",e.z,"cm, colors ",e.numberOfColors," )")}}let Bie=(()=>{class t{constructor(e,i){this.state=e,this.threeSceneService=i,this.logoColor="#ffffff",this.isFileSelected=!1,this.isPrintMeshLoaded=!1,this.secondRow={defaultText:(new Date).toLocaleDateString(),name:"Second Row Text",isVisible:!1,currentText:void 0},this.qrCode={defaultText:"maibornwolff.de/service/it-sanierung",name:"QrCode",isVisible:!1,currentText:void 0},this.printers=[{name:"Prusa MK3S (single color)",x:245,y:205,z:205,numberOfColors:1},{name:"BambuLab A1 + AMS Lite",x:251,y:251,z:251,numberOfColors:4},{name:"Prusa XL (5 colors)",x:355,y:335,z:355,numberOfColors:5}],this.selectedPrinter=this.printers[2],this.layerHeight=.2,this.frontTextSize=8,this.secondRowTextSize=6,this.frontPrintDepth=.6,this.mapSideOffset=10,this.baseplateHeight=1,this.logoSize=10,this.maxWidth=Iie(new Y(this.selectedPrinter.x,this.selectedPrinter.y,this.selectedPrinter.z),this.threeSceneService.getMapMesh().getThreeMesh(),this.frontTextSize,this.baseplateHeight,this.mapSideOffset),this.currentSize=new Y,this.currentSize.x=this.maxWidth,this.wantedWidth=this.maxWidth,this.currentNumberOfColors=this.selectedPrinter.numberOfColors,this.isPrintMeshLoaded=!1,this.secondRow.currentText=this.secondRow.defaultText,this.qrCode.currentText=this.qrCode.defaultText,this.areaMetric=this.state.getValue().dynamicSettings.areaMetric,this.heightMetric=this.state.getValue().dynamicSettings.heightMetric,this.colorMetric=this.state.getValue().dynamicSettings.colorMetric;const r=TM(this.state.getValue().files),o=this.state.getValue().fileSettings.blacklist,s=yW(r,o);this.nodeMetricData=s.filter(a=>a.name===this.areaMetric||a.name===this.heightMetric||a.name===this.colorMetric)}ngAfterViewInit(){var e=this;return f(function*(){yield e.createScene(),e.isPrintMeshLoaded=!0})()}onScaleChange(){this.previewMesh.updateSize(this.wantedWidth).then(e=>{this.qrCode.isVisible=e}),this.currentSize=this.previewMesh.getSize()}onFrontTextChange(){this.previewMesh.updateFrontText(this.frontText)}onFileSelected(e){const i=e.target.files[0];if(i){this.isFileSelected=!0;const r=new FileReader;r.readAsDataURL(i),r.onload=()=>{this.previewMesh.addCustomLogo(r.result)}}else this.isFileSelected=!1}onRotateLogo(){this.previewMesh.rotateCustomLogo()}onFlipLogo(){this.previewMesh.flipCustomLogo()}onRemoveLogo(){this.isFileSelected=!1,this.fileInput.nativeElement.value="",this.previewMesh.removeCustomLogo()}onSelectedPrinterChange(){const e=this.selectedPrinter.numberOfColors;this.currentNumberOfColors!==e&&(this.previewMesh.updateNumberOfColors(e),this.currentNumberOfColors=e),this.makeMapMaxSize(),this.updateCameraPosition(this.printPreviewScene.getObjectByName("camera"))}onLogoColorChange(e){this.logoColor=e,this.previewMesh.updateCustomLogoColor(this.logoColor)}onQrCodeTextChange(){this.onTextChange(this.qrCode),this.previewMesh.updateQrCodeText(this.qrCode.currentText),this.previewMesh.updateQrCodeVisibility(this.qrCode.isVisible)}onQrCodeVisibilityChange(e){this.qrCode.isVisible!==e.checked&&(this.qrCode.isVisible=e.checked,this.previewMesh.updateQrCodeVisibility(this.qrCode.isVisible))}onSecondRowTextChange(){this.onTextChange(this.secondRow),this.previewMesh.updateSecondRowText(this.secondRow.currentText),this.previewMesh.updateSecondRowVisibility(this.secondRow.isVisible)}onSecondRowVisibilityChange(e){this.secondRow.isVisible!==e.checked&&(this.secondRow.isVisible=e.checked,this.previewMesh.updateSecondRowVisibility(this.secondRow.isVisible))}onTextChange(e){""!==e.currentText?e.isVisible||(e.isVisible=!0):e.isVisible=!1}createScene(){var e=this;return f(function*(){const i=new cA;i.name="printPreviewScene",e.printPreviewScene=i,i.background=new rn(15527388);const r=e.threeSceneService.scene.clone().children[3];r.name="lights",i.add(r);const o=new Mo(45,1.15,50,2e5);o.name="camera",o.up=new Y(0,0,1),i.add(o),e.initRenderer(i,o),e.previewMesh=new OHe(e.initGeometryOptions()),yield e.previewMesh.initialize(),e.currentSize=e.previewMesh.getSize(),i.add(e.previewMesh.getThreeMesh()),e.updateCameraPosition(o)})()}initRenderer(e,i){const r=this.getGL(),o=new ut;r.getSize(o);const s=this.rendererContainer.nativeElement.offsetWidth;r.setSize(s,o.y*(s/o.x),!0),this.rendererContainer.nativeElement.appendChild(r.domElement);const l=new Lx(i,r.domElement),c=function(){requestAnimationFrame(c),l.update(),r.render(e,i)};c()}getGL(){return new gr}updateCameraPosition(e){e.position.set(.2*-this.currentSize.x,1.2*-this.currentSize.y,3*this.currentSize.z)}download3MFFile(){var e=this;return f(function*(){const i=yield function AHe(t){return E8.apply(this,arguments)}(e.printPreviewScene.getObjectByName("PrintMesh"));e.downloadFile(i,"3mf")})()}makeMapMaxSize(){this.wantedWidth=Iie(new Y(this.selectedPrinter.x,this.selectedPrinter.y,this.selectedPrinter.z),this.threeSceneService.getMapMesh().getThreeMesh(),this.frontTextSize,this.baseplateHeight,this.mapSideOffset),this.previewMesh.updateSize(this.wantedWidth).then(e=>{this.qrCode.isVisible=e}),this.currentSize=this.previewMesh.getSize(),this.maxWidth=this.currentSize.x}downloadStlFile(){const e=(new c8).parse(this.previewMesh.getMapMesh(),{binary:!0});this.downloadFile(e,"stl")}initGeometryOptions(){const e=this.state.getValue().fileSettings.attributeDescriptors,i=Hb,r=e[this.areaMetric]?.title||i.get(this.areaMetric),o=e[this.heightMetric]?.title||i.get(this.heightMetric),s=e[this.colorMetric]?.title||i.get(this.colorMetric);return{originalMapMesh:this.threeSceneService.getMapMesh().getThreeMesh(),width:this.wantedWidth,areaMetricTitle:r,areaMetricData:this.nodeMetricData.find(a=>a.name===this.areaMetric),heightMetricTitle:o,heightMetricData:this.nodeMetricData.find(a=>a.name===this.heightMetric),colorMetricTitle:s,colorMetricData:this.nodeMetricData.find(a=>a.name===this.colorMetric),colorRange:this.state.getValue().dynamicSettings.colorRange,frontText:this.frontText,secondRowText:this.secondRow.currentText,secondRowVisible:this.secondRow.isVisible,qrCodeText:this.qrCode.currentText,defaultMaterial:this.threeSceneService.getMapMesh().getThreeMesh().material[0].clone(),numberOfColors:this.currentNumberOfColors,layerHeight:this.layerHeight,frontTextSize:this.frontTextSize,secondRowTextSize:this.secondRowTextSize,printHeight:this.frontPrintDepth,mapSideOffset:this.mapSideOffset,baseplateHeight:this.baseplateHeight,logoSize:this.logoSize}}downloadFile(e,i){const r=Zu(this.state.getValue()),o=lc(this.state.getValue()).unifiedFileMeta?.fileName,s=`${fm.getNewFileName(o,Nd(r))}.${i}`;FN.downloadData(e,s)}static{this.\u0275fac=function(i){return new(i||t)(W(Br),W(cc))}}static{this.\u0275cmp=At({type:t,selectors:[["export3DMapDialog",8,"component"]],viewQuery:function(i,r){if(1&i&&(ti(UHe,5),ti(HHe,5)),2&i){let o;mn(o=pn())&&(r.rendererContainer=o.first),mn(o=pn())&&(r.fileInput=o.first)}},inputs:{logoColor:"logoColor"},attrs:VHe,decls:84,vars:25,consts:[["rendererContainer",""],["slider",""],["fileInput",""],["color","primary"],[1,"cc-export-3D-map-dialog"],[1,"preview"],["appearance","outline",1,"cc-export-3D-map-dialog-content"],["appearance","outline"],["data-testid","selectPrinter",3,"selectionChange","valueChange","value"],["data-testid","selectedPrinter",3,"value"],["appearance","outlined"],[1,"slider-container"],["data-testid","onScaleChange","discrete","true","min","100","step","1",3,"change","max"],["matSliderThumb","",3,"ngModelChange","ngModel"],["data-testid","printSizeOverview"],["matInput","","data-testid","frontText",3,"ngModelChange","input","ngModel","placeholder"],[1,"ManualVisibilityContent"],["data-testid","secondRowToggle",3,"change","checked"],["appearance","outline",3,"hidden"],["matInput","","data-testid","secondRowText",3,"ngModelChange","input","ngModel"],["data-testid","qrCodeToggle",3,"change","checked"],["matInput","","data-testid","qrCodeText",3,"ngModelChange","input","ngModel"],["type","file","accept",".svg",3,"change"],["mat-button","","title","Remove Logo Button",3,"click","hidden"],[1,"fa","fa-times"],[3,"hidden"],["mat-button","","title","Rotate Logo Button",3,"click"],[1,"fa","fa-rotate-right"],["mat-button","","title","Flip Logo Button",3,"click"],[1,"fa","fa-arrows-h"],[3,"onColorChange","hexColor","labels"],["align","end"],["mat-button","","title","Download 3MF Button",3,"click","disabled"],[1,"fa","fa-download"],["mat-button","","title","Download Stl Button",3,"click","disabled"],[1,"cc-printer-specs"]],template:function(i,r){if(1&i){const o=kn();I(0,"mat-toolbar",3),ve(1,"3D Print CodeCharta Map"),O(),I(2,"div",4),_e(3,"div",5,0),I(5,"mat-dialog-content",6)(6,"mat-form-field",7)(7,"mat-label"),ve(8,"Printer preset"),O(),I(9,"mat-select",8),We("selectionChange",function(){return Ft(o),kt(r.onSelectedPrinterChange())}),Fc("valueChange",function(a){return Ft(o),Bd(r.selectedPrinter,a)||(r.selectedPrinter=a),kt(a)}),I(10,"mat-select-trigger"),ve(11),O(),yr(12,zHe,4,6,"mat-option",9,Sr),O()(),I(14,"mat-card",10)(15,"mat-card-header"),ve(16,"Scale:"),O(),I(17,"mat-card-content")(18,"div",11)(19,"mat-slider",12),We("change",function(){return Ft(o),kt(r.onScaleChange())}),I(20,"input",13,1),Fc("ngModelChange",function(a){return Ft(o),Bd(r.wantedWidth,a)||(r.wantedWidth=a),kt(a)}),O()()(),I(22,"div",14)(23,"span"),ve(24),O(),_e(25,"br"),I(26,"span"),ve(27),O(),_e(28,"br"),I(29,"span"),ve(30),O()()()(),I(31,"mat-form-field",7)(32,"mat-label"),ve(33,"Bottom center label text"),O(),I(34,"input",15),Fc("ngModelChange",function(a){return Ft(o),Bd(r.frontText,a)||(r.frontText=a),kt(a)}),We("input",function(){return Ft(o),kt(r.onFrontTextChange())}),O()(),I(35,"mat-card",10)(36,"mat-card-header"),ve(37,"Second row center text"),O(),I(38,"mat-card-content",16)(39,"mat-slide-toggle",17),We("change",function(a){return Ft(o),kt(r.onSecondRowVisibilityChange(a))}),ve(40," Show second row text "),O(),I(41,"mat-form-field",18)(42,"mat-label"),ve(43,"Text"),O(),I(44,"input",19),Fc("ngModelChange",function(a){return Ft(o),Bd(r.secondRow.currentText,a)||(r.secondRow.currentText=a),kt(a)}),We("input",function(){return Ft(o),kt(r.onSecondRowTextChange())}),O()()()(),I(45,"mat-card",10)(46,"mat-card-header"),ve(47,"QR-Code"),O(),I(48,"mat-card-content",16)(49,"mat-slide-toggle",20),We("change",function(a){return Ft(o),kt(r.onQrCodeVisibilityChange(a))}),ve(50," Show QR-Code "),O(),I(51,"mat-form-field",18)(52,"mat-label"),ve(53,"QR-Code text"),O(),I(54,"input",21),Fc("ngModelChange",function(a){return Ft(o),Bd(r.qrCode.currentText,a)||(r.qrCode.currentText=a),kt(a)}),We("input",function(){return Ft(o),kt(r.onQrCodeTextChange())}),O()()()(),I(55,"mat-card",10)(56,"mat-card-header"),ve(57,"Bottom left logo (SVG):"),O(),I(58,"mat-card-content")(59,"input",22,2),We("change",function(a){return Ft(o),kt(r.onFileSelected(a))}),O(),I(61,"button",23),We("click",function(){return Ft(o),kt(r.onRemoveLogo())}),I(62,"span"),_e(63,"i",24),ve(64," Remove Logo"),O()(),I(65,"div",25)(66,"button",26),We("click",function(){return Ft(o),kt(r.onRotateLogo())}),I(67,"span"),_e(68,"i",27),ve(69," Rotate Logo"),O()(),I(70,"button",28),We("click",function(){return Ft(o),kt(r.onFlipLogo())}),I(71,"span"),_e(72,"i",29),ve(73," Flip Logo"),O()(),I(74,"cc-labelled-color-picker",30),We("onColorChange",function(a){return Ft(o),kt(r.onLogoColorChange(a))}),O()()()()(),I(75,"mat-dialog-actions",31)(76,"button",32),We("click",function(){return Ft(o),kt(r.download3MFFile())}),I(77,"span"),_e(78,"i",33),ve(79," Download 3MF"),O()(),I(80,"button",34),We("click",function(){return Ft(o),kt(r.downloadStlFile())}),I(81,"span"),_e(82,"i",33),ve(83," Download minimal STL"),O()()()()}2&i&&(H(9),Tc("value",r.selectedPrinter),H(2),an(" ",r.selectedPrinter.name," "),H(),wr(r.printers),H(7),ue("max",r.maxWidth),H(),Tc("ngModel",r.wantedWidth),H(4),Hu("Width: ",(r.currentSize.x/10).toFixed(1),"cm (max. ",(r.selectedPrinter.x/10).toFixed(1),")"),H(3),Hu("Depth: ",(r.currentSize.y/10).toFixed(1),"cm (max. ",(r.selectedPrinter.y/10).toFixed(1),")"),H(3),Hu("Height: ",(r.currentSize.z/10).toFixed(1),"cm (max. ",(r.selectedPrinter.z/10).toFixed(1),")"),H(4),Tc("ngModel",r.frontText),ue("placeholder","CodeCharta"),H(5),ue("checked",r.secondRow.isVisible),H(2),ue("hidden",r.secondRow.isVisible),H(3),Tc("ngModel",r.secondRow.currentText),H(5),ue("checked",r.qrCode.isVisible),H(2),ue("hidden",r.qrCode.isVisible),H(3),Tc("ngModel",r.qrCode.currentText),H(7),ue("hidden",!r.isFileSelected),H(4),ue("hidden",!r.isFileSelected),H(9),ue("hexColor",r.logoColor)("labels",Vu(24,QHe)),H(2),ue("disabled",!r.isPrintMeshLoaded),H(4),ue("disabled",!r.isPrintMeshLoaded))},dependencies:[nd,td,vm,Ree,zd,Bs,Oc,Nc,dx,JJ,eee,SA,_m,ote,IF,zb,Pf,b0,v0,AN],styles:['.mat-ripple{overflow:hidden;position:relative}.mat-ripple:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0,0,.2,1);transform:scale3d(0,0,0);background-color:var(--mat-ripple-color, rgba(0, 0, 0, .1))}.cdk-high-contrast-active .mat-ripple-element{display:none}.cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none;left:0}[dir=rtl] .cdk-visually-hidden{left:auto;right:0}.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop{position:absolute;inset:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:#00000052}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}textarea.cdk-textarea-autosize{resize:none}textarea.cdk-textarea-autosize-measuring{padding:2px 0!important;box-sizing:content-box!important;height:auto!important;overflow:hidden!important}textarea.cdk-textarea-autosize-measuring-firefox{padding:2px 0!important;box-sizing:content-box!important;height:0!important}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}.mat-focus-indicator{position:relative}.mat-focus-indicator:before{inset:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-focus-indicator-display, none);border:var(--mat-focus-indicator-border-width, 3px) var(--mat-focus-indicator-border-style, solid) var(--mat-focus-indicator-border-color, transparent);border-radius:var(--mat-focus-indicator-border-radius, 4px)}.mat-focus-indicator:focus:before{content:""}.cdk-high-contrast-active{--mat-focus-indicator-display: block}.mat-mdc-focus-indicator{position:relative}.mat-mdc-focus-indicator:before{inset:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-mdc-focus-indicator-display, none);border:var(--mat-mdc-focus-indicator-border-width, 3px) var(--mat-mdc-focus-indicator-border-style, solid) var(--mat-mdc-focus-indicator-border-color, transparent);border-radius:var(--mat-mdc-focus-indicator-border-radius, 4px)}.mat-mdc-focus-indicator:focus:before{content:""}.cdk-high-contrast-active{--mat-mdc-focus-indicator-display: block}.mat-app-background{background-color:var(--mat-app-background-color, transparent);color:var(--mat-app-text-color, inherit)}:root{--mat-dialog-container-min-width: 500px;--mat-dialog-actions-alignment: flex-end;--mat-toolbar-container-background-color: #1b9cfc;--mat-toolbar-container-text-color: #fff;--exceed-local-storage-message-text-color: #b02929;--exceed-local-storage-button-text-color: #ffffff;--exceed-local-storage-button-background-color: #b02929}:root .mat-mdc-checkbox.mat-accent{--mdc-checkbox-selected-checkmark-color: #fff !important}.cc-export-3D-map-dialog .mat-mdc-dialog-container{width:36vw;min-width:600px;max-height:95vh}.cc-export-3D-map-dialog .mat-mdc-dialog-container .cc-export-3D-map-dialog-content{display:flex;flex-direction:column;padding:16px;gap:16px;overflow-y:auto;max-height:calc(70vh - 200px);flex-grow:1}.cc-export-3D-map-dialog .mat-mdc-dialog-container .ManualVisibilityContent{display:flex;flex-direction:column;gap:16px;margin-top:16px}.cc-export-3D-map-dialog .mat-mdc-dialog-container .ManualVisibilityContent mat-form-field{display:flex;flex-direction:column}.cc-export-3D-map-dialog .mat-mdc-dialog-container mat-slider{width:95%}.cc-export-3D-map-dialog .mat-mdc-dialog-container mat-form-field{margin-bottom:-24px}.cc-export-3D-map-dialog .mat-mdc-dialog-container input[type=file]{margin-top:16px}.cc-printer-specs{color:#888}\n'],encapsulation:2})}}return t})(),GHe=(()=>{class t{constructor(e,i,r){this.dialog=e,this.state=i,this.store=r}export3DMap(){this.state.getValue().dynamicSettings.colorMode!==qf.absolute?this.dialog.open(Op,{data:this.buildErrorDialog()}):this.dialog.open(Bie,{panelClass:"cc-export-3D-map-dialog"})}buildErrorDialog(){return{title:"Map could not be exported",message:'

3D map can only be exported when color mode is set to absolute.
You can change this under Color Metric Options or use "Change and continue" to directly change the color mode and continue.

',resolveErrorData:{buttonText:"Change and continue",onResolveErrorClick:()=>{this.store.dispatch(C0({value:qf.absolute})),this.store.select(vte).pipe(qo(1)).subscribe(s=>{s===qf.absolute&&setTimeout(()=>{this.dialog.open(Bie,{panelClass:"cc-export-3D-map-dialog"})},100)})}}}}static{this.\u0275fac=function(i){return new(i||t)(W(Is),W(Br),W(Wt))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-export-3d-map-button"]],decls:1,vars:1,consts:[["title","Download 3MF code file",3,"click","icon"]],template:function(i,r){1&i&&(I(0,"cc-action-icon",0),We("click",function(){return r.export3DMap()}),O()),2&i&&ue("icon","fa fa-print")},dependencies:[FA],encapsulation:2})}}return t})();const KHe=Xt(Zu,t=>mW(t)),Die=Xt(ks,Ub,mm,sx,(t,n,e,i)=>((t,n)=>n.every(e=>((t,n)=>t.some(e=>e.name===n))(t,e)))(t.nodeMetricData,[n,e,i])),XHe=Xt(Pl,t=>(t=>Object.entries(t).every(([n,e])=>((t,n)=>"edgeMetric"===t||null!==n&&("object"!=typeof n||Object.values(n).every(e=>null!==e)))(n,e)))(t)),YHe=(Xt(ks,KHe,Die,XHe,(t,n,e,i)=>!(null===t.nodeMetricData||!n||!e||!i)),t=>t.some(n=>"rloc"===n.name)?"rloc":"unary"),ZHe=["rloc","real_lines_of_code","loc","lines_of_code","lines","statements","functions"],Rie=["complexity","mcc","cognitive_complexity","sonar_complexity","sonar_cognitive_complexity","max_nesting_level","indentation_level"];function JHe(t){return t.some(n=>n.maxValue>0)}let n9e=(()=>{class t{constructor(e){this.store=e,this.resetChosenDistributionMetric$=Bo(()=>this.store.select(ks).pipe(Et(i=>i.nodeMetricData),Ii(JHe),Wu(this.store.select(Die)),Ii(([,i])=>!i),Nr(([i])=>{Lie(this.store,i)})),{dispatch:!1})}static{this.\u0275fac=function(i){return new(i||t)(oe(Wt))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac})}}return t})();function Lie(t,n){t.dispatch(Jy({value:YHe(n)}));let[e,i,r]=function t9e(t){const n=[],e={AreaMetric:ZHe,HeightMetric:Rie,ColorMetric:Rie},i=new Set(t.map(r=>r.name));for(const r in e)for(const o of e[r])if(i.has(o)){n.push(o);break}return n}(n);(!e||!i||!r)&&([e,i,r]=function e9e(t,n){const e=[];let i;for(const r of t)if(r.maxValue&&(e.push(r.name),i=r.name,0==--n))return e;if(!i)throw new Error("there are no metrics available");for(;n-- >0;)e.push(i);return e}(n,3)),t.dispatch(Ku({value:e})),t.dispatch(Yu({value:i})),t.dispatch(Lc({value:r}))}let i9e=(()=>{class t{constructor(e,i,r,o){this.store=e,this.httpClient=i,this.loadFileService=r,this.loadInitialFileService=o,this.urlUtils=new hK(this.httpClient)}resetMap(){var e=this;return f(function*(){if(yield function W_e(){return hR.apply(this,arguments)}(),e.store.dispatch(MA({value:gte})),e.loadInitialFileService.checkFileQueryParameterPresent())try{const r=yield e.urlUtils.getFileDataFromQueryParam();e.loadFileService.loadFiles(r),e.loadInitialFileService.setRenderStateFromUrl()}catch{e.loadFileService.loadFiles([wS,xS])}else e.loadFileService.loadFiles([wS,xS]);e.resetMetrics()})()}resetMetrics(){this.store.select(ks).pipe(gF(),Nr(e=>{Lie(this.store,e.nodeMetricData)})).subscribe()}static{this.\u0275fac=function(i){return new(i||t)(W(Wt),W(Cy),W(N0),W(zL))}}static{this.\u0275cmp=At({type:t,selectors:[["ng-component"]],decls:12,vars:0,consts:[["xmlns","http://www.w3.org/1999/html",1,"header"],[1,"dialog-content"],["mat-button","","mat-dialog-close",""],["mat-button","","mat-dialog-close","","cdkFocusInitial","",3,"click"]],template:function(i,r){1&i&&(I(0,"mat-toolbar",0)(1,"h2"),ve(2,"Confirm reset map to default"),O()(),I(3,"mat-dialog-content")(4,"div",1)(5,"p"),ve(6,"Uploaded maps, selected metrics and settings are reset to default"),O()()(),I(7,"mat-dialog-actions")(8,"button",2),ve(9,"No"),O(),I(10,"button",3),We("click",function(){return r.resetMap()}),ve(11,"Yes"),O()())},dependencies:[Bs,ic,Oc,Nc,SA],styles:[".cc-confirm-reset-map-dialog .mat-mdc-dialog-container mat-toolbar.header{background-color:#1b9cfc}.cc-confirm-reset-map-dialog .mat-mdc-dialog-container mat-toolbar.header h2{color:#fff}.cc-confirm-reset-map-dialog .mat-mdc-dialog-container .mat-mdc-dialog-actions{margin:0;padding:0 8px;position:relative;display:flex;justify-content:right}.cc-confirm-reset-map-dialog .mat-mdc-dialog-container .mat-mdc-dialog-actions .mat-mdc-button{padding:0 8px;margin:8px 0 8px 8px;color:#1b9cfc;background-color:#8a848414;bottom:0}\n"],encapsulation:2})}}return t})(),r9e=(()=>{class t{constructor(e){this.dialog=e}showConfirmResetStateDialog(){this.dialog.open(i9e,{panelClass:"cc-confirm-reset-map-dialog"})}static{this.\u0275fac=function(i){return new(i||t)(W(Is))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-reset-map-button"]],decls:1,vars:1,consts:[["title","Reset map to default",3,"click","icon"]],template:function(i,r){1&i&&(I(0,"cc-action-icon",0),We("click",function(){return r.showConfirmResetStateDialog()}),O()),2&i&&ue("icon","fa fa-undo")},dependencies:[FA],encapsulation:2})}}return t})();const o9e=Xt(Lb,t=>`linear-gradient(${t.positiveDelta} 50%, ${t.negativeDelta} 50%)`);function s9e(t,n){if(1&t&&(I(0,"mat-option",2),ve(1),ze(2,"removeExtension"),O()),2&t){const e=n.$implicit;ue("value",e.file),H(),an(" ",tt(2,2,e.file.fileMeta.fileName)," ")}}function a9e(t,n){if(1&t&&(I(0,"mat-option",2),ve(1),ze(2,"removeExtension"),O()),2&t){const e=n.$implicit;ue("value",e.file),H(),an(" ",tt(2,2,e.file.fileMeta.fileName)," ")}}let l9e=(()=>{class t{constructor(e){this.store=e,this.files$=this.store.select(Zu),this.referenceFile$=this.store.select(z$),this.comparisonFile$=this.files$.pipe(Et(i=>i.find(r=>r.selectedAs===Pi.Comparison)?.file)),this.possibleComparisonFiles$=this.files$.pipe(Et(i=>i.filter(r=>r.selectedAs!==Pi.Reference))),this.pictogramBackground$=this.store.select(o9e)}handleDeltaReferenceFileChange(e){this.store.dispatch(xR({file:e}))}handleDeltaComparisonFileChange(e){this.store.dispatch(wR({file:e}))}switchReferenceAndComparison(){this.store.dispatch(yR())}static{this.\u0275fac=function(i){return new(i||t)(W(Wt))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-file-panel-delta-selector"]],decls:16,vars:17,consts:[[1,"delta-select-wrapper"],[1,"delta-select",3,"selectionChange","value"],[3,"value"],["title","Switch reference and comparison file",1,"reference-comparison-switch",3,"click","disabled"],[1,"fa","fa-arrows-h"],["placeholder","select comparison file",1,"delta-select",3,"selectionChange","value"],[1,"pictogram"]],template:function(i,r){1&i&&(I(0,"div",0)(1,"mat-select",1),ze(2,"async"),We("selectionChange",function(s){return r.handleDeltaReferenceFileChange(s.value)}),yr(3,s9e,3,4,"mat-option",2,Sr),ze(5,"async"),O(),I(6,"button",3),ze(7,"async"),We("click",function(){return r.switchReferenceAndComparison()}),_e(8,"i",4),O(),I(9,"mat-select",5),ze(10,"async"),We("selectionChange",function(s){return r.handleDeltaComparisonFileChange(s.value)}),yr(11,a9e,3,4,"mat-option",2,Sr),ze(13,"async"),O(),_e(14,"div",6),ze(15,"async"),O()),2&i&&(H(),ue("value",tt(2,5,r.referenceFile$)),H(2),wr(tt(5,7,r.files$)),H(3),ue("disabled",void 0===tt(7,9,r.comparisonFile$)),H(3),ue("value",tt(10,11,r.comparisonFile$)),H(2),wr(tt(13,13,r.possibleComparisonFiles$)),H(3),Fi("background",tt(15,15,r.pictogramBackground$)))},dependencies:[vm,zd,Gn,rN],styles:["cc-file-panel-delta-selector .delta-select-wrapper{display:flex;gap:12px}\n"],encapsulation:2})}}return t})(),c9e=(()=>{class t{constructor(e){this.store=e}onRemoveFile(e,i){this.store.dispatch(gR({fileName:e})),i.stopPropagation(),i.preventDefault()}static{this.\u0275fac=function(i){return new(i||t)(W(Wt))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-remove-file-button"]],inputs:{filename:"filename"},decls:2,vars:0,consts:[["title","Remove map",1,"remove-button",3,"click"],[1,"fa","fa-trash","delete-symbol"]],template:function(i,r){1&i&&(I(0,"button",0),We("click",function(s){return r.onRemoveFile(r.filename,s)}),_e(1,"i",1),O())},encapsulation:2})}}return t})();function d9e(t,n){1&t&&_e(0,"cc-remove-file-button",4),2&t&&ue("filename",He().$implicit.file.fileMeta.fileName)}function u9e(t,n){if(1&t&&(I(0,"mat-option",3),ve(1),ze(2,"removeExtension"),ft(3,d9e,1,1,"cc-remove-file-button",4),O()),2&t){const e=n.$implicit,i=He();ue("value",e.file),H(),an(" ",tt(2,3,e.file.fileMeta.fileName)," "),H(2),yt(3,i.fileStates.length>1?3:-1)}}let h9e=(()=>{class t{constructor(e){this.store=e,this.fileStates=[],this.selectedFilesInUI=[],this.selectedFilesInStore=[],this.filesSubscription=this.store.select(Zu).subscribe(i=>{this.fileStates=i,this.selectedFilesInStore=i.filter(r=>r.selectedAs===Pi.Partial).map(r=>r.file),this.selectedFilesInUI=this.selectedFilesInStore})}ngOnDestroy(){this.filesSubscription.unsubscribe()}handleSelectedFilesChanged(e){this.selectedFilesInUI=e,e.length>0&&this.store.dispatch(a1({files:e}))}handleOpenedChanged(e){e||(this.selectedFilesInUI=this.selectedFilesInStore)}handleSelectZeroFiles(){this.selectedFilesInUI=[]}handleInvertSelectedFiles(){this.selectedFilesInUI.length===this.fileStates.length?this.selectedFilesInUI=[]:this.store.dispatch(vR())}handleSelectAllFiles(){this.store.dispatch(_R())}static{this.\u0275fac=function(i){return new(i||t)(W(Wt))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-file-panel-file-selector"]],decls:10,vars:1,consts:[["panelClass","file-select","multiple","",1,"standard-select",3,"valueChange","selectionChange","openedChange","value"],[1,"file-selection-actions"],[1,"file-select-action-button",3,"click"],[1,"filenames",3,"value"],[3,"filename"]],template:function(i,r){1&i&&(I(0,"mat-select",0),Fc("valueChange",function(s){return Bd(r.selectedFilesInUI,s)||(r.selectedFilesInUI=s),s}),We("selectionChange",function(s){return r.handleSelectedFilesChanged(s.value)})("openedChange",function(s){return r.handleOpenedChanged(s)}),I(1,"div",1)(2,"button",2),We("click",function(){return r.handleSelectAllFiles()}),ve(3,"All"),O(),I(4,"button",2),We("click",function(){return r.handleSelectZeroFiles()}),ve(5,"None"),O(),I(6,"button",2),We("click",function(){return r.handleInvertSelectedFiles()}),ve(7,"Invert"),O()(),yr(8,u9e,4,5,"mat-option",3,Sr),O()),2&i&&(Tc("value",r.selectedFilesInUI),H(8),wr(r.fileStates))},dependencies:[vm,zd,c9e,rN],styles:[".file-select.mat-mdc-select-panel{min-width:max-content;padding:0}.file-select.mat-mdc-select-panel .mat-mdc-option .mdc-list-item__primary-text{flex:1;display:flex;justify-content:space-between;align-items:center}.file-select.mat-mdc-select-panel .file-selection-actions{display:flex}.file-select.mat-mdc-select-panel button{width:100%;font-size:16px;margin:0;background-color:transparent}.file-select.mat-mdc-select-panel button:hover{background-color:#0000000d;color:#1b9cfc}.file-select.mat-mdc-select-panel button.file-select-action-button{padding:15px 10px}.file-select.mat-mdc-select-panel button.remove-button{padding:8px 10px}.file-select.mat-mdc-select-panel button.remove-button:hover{border-radius:50%}\n"],encapsulation:2})}}return t})();function Pie(){return Be((t,n)=>{let e,i=!1;t.subscribe(Je(n,r=>{const o=e;e=r,i&&n.next([o,r]),i=!0}))})}let Nie=(()=>{class t{constructor(e,i){this.store=e,this.state=i,this.lastSetFilesOfPreviousMode=[],this.subscription=this.store.select(Zu).pipe(Pie(),Ii(([r,o])=>Nd(r)!==Nd(o)||0===o.length),Nr(([r,o])=>{this.lastSetFilesOfPreviousMode=0===o.length?o:r})).subscribe()}ngOnDestroy(){this.subscription.unsubscribe()}toggle(){if(0===this.lastSetFilesOfPreviousMode.length||Nd(this.lastSetFilesOfPreviousMode)){const i=Zu(this.state.getValue());this.lastSetFilesOfPreviousMode=this.filterNoneExisting(i,this.lastSetFilesOfPreviousMode);const r=this.lastSetFilesOfPreviousMode.find(s=>s.selectedAs===Pi.Reference)??i.find(s=>s.selectedAs===Pi.Partial),o=this.lastSetFilesOfPreviousMode.find(s=>s.selectedAs===Pi.Comparison);this.store.dispatch(NM({referenceFile:r.file,comparisonFile:o?.file}))}else this.store.dispatch(s1({value:this.lastSetFilesOfPreviousMode}))}filterNoneExisting(e,i){return i.filter(r=>e.find(o=>FM(o.file,r.file)))}static{this.\u0275fac=function(i){return new(i||t)(oe(Wt),oe(Br))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac})}}return t})(),f9e=(()=>{class t{constructor(e,i){this.store=e,this.fileSelectionModeService=i,this.isDeltaState$=this.store.select(Am)}static{this.\u0275fac=function(i){return new(i||t)(W(Wt),W(Nie))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-file-panel-state-buttons"]],decls:11,vars:14,consts:[["mat-button","",1,"state-selector-button","mode-selector","left",3,"click","disabled"],[1,"text"],["mat-button","",1,"state-selector-button","mode-selector","right",3,"click","disabled"]],template:function(i,r){1&i&&(I(0,"div")(1,"button",0),ze(2,"async"),ze(3,"async"),We("click",function(){return r.fileSelectionModeService.toggle()}),I(4,"span",1),ve(5,"Standard"),O()(),I(6,"button",2),ze(7,"async"),ze(8,"async"),We("click",function(){return r.fileSelectionModeService.toggle()}),I(9,"span",1),ve(10,"Delta"),O()()()),2&i&&(H(),xn("current",!tt(2,6,r.isDeltaState$)),ue("disabled",!tt(3,8,r.isDeltaState$)),H(5),xn("current",tt(7,10,r.isDeltaState$)),ue("disabled",tt(8,12,r.isDeltaState$)))},dependencies:[Bs,Gn],encapsulation:2})}}return t})();function m9e(t,n){1&t&&_e(0,"cc-file-panel-file-selector")}function p9e(t,n){1&t&&_e(0,"cc-file-panel-delta-selector")}let A9e=(()=>{class t{constructor(e){this.store=e,this.isDeltaState$=this.store.select(Am)}static{this.\u0275fac=function(i){return new(i||t)(W(Wt))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-file-panel"]],decls:4,vars:3,template:function(i,r){1&i&&(_e(0,"cc-file-panel-state-buttons"),ft(1,m9e,1,0,"cc-file-panel-file-selector"),ze(2,"async"),ft(3,p9e,1,0)),2&i&&(H(),yt(1,tt(2,1,r.isDeltaState$)?3:1))},dependencies:[l9e,h9e,f9e,Gn],styles:["cc-file-panel{display:flex;gap:inherit}cc-file-panel.hidden{display:none}cc-file-panel .state-selector-button.mode-selector{height:24px;width:66px;background-color:#fff}cc-file-panel .state-selector-button.mode-selector.middle{border-left:1px solid rgba(230,230,230,.96);border-right:1px solid rgba(230,230,230,.96)}cc-file-panel .state-selector-button.mode-selector.current{background-color:#1b9cfc;color:#fff}cc-file-panel .state-selector-button.mode-selector.current:hover{background-color:#1b9cfc}cc-file-panel .reference-comparison-switch{background-color:#1b9cfc;margin:0;height:24px;width:36px;border-radius:5px}cc-file-panel .reference-comparison-switch[disabled]{background-color:#ccc}cc-file-panel .reference-comparison-switch:hover{background-color:#0374c9}cc-file-panel .reference-comparison-switch:hover[disabled]{background-color:#ccc}cc-file-panel .reference-comparison-switch .fa{vertical-align:middle;color:#fff}cc-file-panel .pictogram{display:inline-flex;width:10px;margin-right:5px;margin-left:5px;height:22px;border-radius:2px;align-self:center;vertical-align:bottom}cc-file-panel .standard-select,cc-file-panel .delta-select{width:200px}\n"],encapsulation:2})}}return t})();const g9e=Xt(Pee,t=>t&&{path:t.path.slice(1).split("/"),isFile:"File"===t.type});function b9e(t,n){if(1&t&&_e(0,"i",2),2&t){const e=He(2);xn("fa-file-o",e.isFile)("fa-folder",!e.isFile)}}function _9e(t,n){1&t&&_e(0,"i",1)}function v9e(t,n){if(1&t&&(I(0,"span"),ft(1,b9e,1,4,"i",0),I(2,"span"),ve(3),O(),ft(4,_9e,1,0,"i",1),O()),2&t){const e=n.$implicit,i=n.$index,r=n.$count;H(),yt(1,i===r-1?1:-1),H(),xn("bold",i===r-1),H(),ur(e),H(),yt(4,i!==r-1?4:-1)}}function y9e(t,n){1&t&&yr(0,v9e,5,5,"span",null,Sr),2&t&&wr(n.path)}let w9e=(()=>{class t{constructor(e){this.store=e,this.hoveredNodePathPanelData$=this.store.select(g9e)}static{this.\u0275fac=function(i){return new(i||t)(W(Wt))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-hovered-node-path-panel"]],decls:2,vars:3,consts:[[1,"fa",3,"fa-file-o","fa-folder"],[1,"fa","fa-angle-right"],[1,"fa"]],template:function(i,r){if(1&i&&(ft(0,y9e,2,0),ze(1,"async")),2&i){let o;yt(0,(o=tt(1,1,r.hoveredNodePathPanelData$))?0:-1,o)}},dependencies:[Gn],styles:["cc-hovered-node-path-panel{width:100%;min-width:400px;display:inline-block;vertical-align:middle;margin:0 8px;font-size:10pt;overflow:hidden;white-space:nowrap}cc-hovered-node-path-panel .bold{font-weight:600}cc-hovered-node-path-panel i{margin:0 4px}\n"],encapsulation:2})}}return t})();const x9e=Xt(Hr,t=>t.isLoadingMap),C9e=["determinateSpinner"];function E9e(t,n){if(1&t&&(bl(),I(0,"svg",11),_e(1,"circle",12),O()),2&t){const e=He();oi("viewBox",e._viewBox()),H(),Fi("stroke-dasharray",e._strokeCircumference(),"px")("stroke-dashoffset",e._strokeCircumference()/2,"px")("stroke-width",e._circleStrokeWidth(),"%"),oi("r",e._circleRadius())}}const M9e=new ot("mat-progress-spinner-default-options",{providedIn:"root",factory:function S9e(){return{diameter:Oie}}}),Oie=100;let Uie=(()=>{class t{get color(){return this._color||this._defaultColor}set color(e){this._color=e}constructor(e,i,r){this._elementRef=e,this._defaultColor="primary",this._value=0,this._diameter=Oie,this._noopAnimations="NoopAnimations"===i&&!!r&&!r._forceAnimations,this.mode="mat-spinner"===e.nativeElement.nodeName.toLowerCase()?"indeterminate":"determinate",r&&(r.color&&(this.color=this._defaultColor=r.color),r.diameter&&(this.diameter=r.diameter),r.strokeWidth&&(this.strokeWidth=r.strokeWidth))}get value(){return"determinate"===this.mode?this._value:0}set value(e){this._value=Math.max(0,Math.min(100,e||0))}get diameter(){return this._diameter}set diameter(e){this._diameter=e||0}get strokeWidth(){return this._strokeWidth??this.diameter/10}set strokeWidth(e){this._strokeWidth=e||0}_circleRadius(){return(this.diameter-10)/2}_viewBox(){const e=2*this._circleRadius()+this.strokeWidth;return`0 0 ${e} ${e}`}_strokeCircumference(){return 2*Math.PI*this._circleRadius()}_strokeDashOffset(){return"determinate"===this.mode?this._strokeCircumference()*(100-this._value)/100:null}_circleStrokeWidth(){return this.strokeWidth/this.diameter*100}static{this.\u0275fac=function(i){return new(i||t)(W(Un),W(ts,8),W(M9e))}}static{this.\u0275cmp=At({type:t,selectors:[["mat-progress-spinner"],["mat-spinner"]],viewQuery:function(i,r){if(1&i&&ti(C9e,5),2&i){let o;mn(o=pn())&&(r._determinateCircle=o.first)}},hostAttrs:["role","progressbar","tabindex","-1",1,"mat-mdc-progress-spinner","mdc-circular-progress"],hostVars:18,hostBindings:function(i,r){2&i&&(oi("aria-valuemin",0)("aria-valuemax",100)("aria-valuenow","determinate"===r.mode?r.value:null)("mode",r.mode),Cc("mat-"+r.color),Fi("width",r.diameter,"px")("height",r.diameter,"px")("--mdc-circular-progress-size",r.diameter+"px")("--mdc-circular-progress-active-indicator-width",r.diameter+"px"),xn("_mat-animation-noopable",r._noopAnimations)("mdc-circular-progress--indeterminate","indeterminate"===r.mode))},inputs:{color:"color",mode:"mode",value:[bt.HasDecoratorInputTransform,"value","value",sa],diameter:[bt.HasDecoratorInputTransform,"diameter","diameter",sa],strokeWidth:[bt.HasDecoratorInputTransform,"strokeWidth","strokeWidth",sa]},exportAs:["matProgressSpinner"],standalone:!0,features:[Ho,xr],decls:14,vars:11,consts:[["circle",""],["determinateSpinner",""],["aria-hidden","true",1,"mdc-circular-progress__determinate-container"],["xmlns","http://www.w3.org/2000/svg","focusable","false",1,"mdc-circular-progress__determinate-circle-graphic"],["cx","50%","cy","50%",1,"mdc-circular-progress__determinate-circle"],["aria-hidden","true",1,"mdc-circular-progress__indeterminate-container"],[1,"mdc-circular-progress__spinner-layer"],[1,"mdc-circular-progress__circle-clipper","mdc-circular-progress__circle-left"],[3,"ngTemplateOutlet"],[1,"mdc-circular-progress__gap-patch"],[1,"mdc-circular-progress__circle-clipper","mdc-circular-progress__circle-right"],["xmlns","http://www.w3.org/2000/svg","focusable","false",1,"mdc-circular-progress__indeterminate-circle-graphic"],["cx","50%","cy","50%"]],template:function(i,r){if(1&i&&(ft(0,E9e,2,8,"ng-template",null,0,Mf),I(2,"div",2,1),bl(),I(4,"svg",3),_e(5,"circle",4),O()(),Cg(),I(6,"div",5)(7,"div",6)(8,"div",7),a0(9,8),O(),I(10,"div",9),a0(11,8),O(),I(12,"div",10),a0(13,8),O()()()),2&i){const o=Co(1);H(4),oi("viewBox",r._viewBox()),H(),Fi("stroke-dasharray",r._strokeCircumference(),"px")("stroke-dashoffset",r._strokeDashOffset(),"px")("stroke-width",r._circleStrokeWidth(),"%"),oi("r",r._circleRadius()),H(4),ue("ngTemplateOutlet",o),H(2),ue("ngTemplateOutlet",o),H(2),ue("ngTemplateOutlet",o)}},dependencies:[py],styles:["@keyframes mdc-circular-progress-container-rotate{to{transform:rotate(360deg)}}@keyframes mdc-circular-progress-spinner-layer-rotate{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}100%{transform:rotate(1080deg)}}@keyframes mdc-circular-progress-color-1-fade-in-out{from{opacity:.99}25%{opacity:.99}26%{opacity:0}89%{opacity:0}90%{opacity:.99}to{opacity:.99}}@keyframes mdc-circular-progress-color-2-fade-in-out{from{opacity:0}15%{opacity:0}25%{opacity:.99}50%{opacity:.99}51%{opacity:0}to{opacity:0}}@keyframes mdc-circular-progress-color-3-fade-in-out{from{opacity:0}40%{opacity:0}50%{opacity:.99}75%{opacity:.99}76%{opacity:0}to{opacity:0}}@keyframes mdc-circular-progress-color-4-fade-in-out{from{opacity:0}65%{opacity:0}75%{opacity:.99}90%{opacity:.99}to{opacity:0}}@keyframes mdc-circular-progress-left-spin{from{transform:rotate(265deg)}50%{transform:rotate(130deg)}to{transform:rotate(265deg)}}@keyframes mdc-circular-progress-right-spin{from{transform:rotate(-265deg)}50%{transform:rotate(-130deg)}to{transform:rotate(-265deg)}}.mdc-circular-progress{display:inline-flex;position:relative;direction:ltr;line-height:0;transition:opacity 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-circular-progress__determinate-container,.mdc-circular-progress__indeterminate-circle-graphic,.mdc-circular-progress__indeterminate-container,.mdc-circular-progress__spinner-layer{position:absolute;width:100%;height:100%}.mdc-circular-progress__determinate-container{transform:rotate(-90deg)}.mdc-circular-progress__indeterminate-container{font-size:0;letter-spacing:0;white-space:nowrap;opacity:0}.mdc-circular-progress__determinate-circle-graphic,.mdc-circular-progress__indeterminate-circle-graphic{fill:rgba(0,0,0,0)}.mdc-circular-progress__determinate-circle{transition:stroke-dashoffset 500ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-circular-progress__gap-patch{position:absolute;top:0;left:47.5%;box-sizing:border-box;width:5%;height:100%;overflow:hidden}.mdc-circular-progress__gap-patch .mdc-circular-progress__indeterminate-circle-graphic{left:-900%;width:2000%;transform:rotate(180deg)}.mdc-circular-progress__circle-clipper{display:inline-flex;position:relative;width:50%;height:100%;overflow:hidden}.mdc-circular-progress__circle-clipper .mdc-circular-progress__indeterminate-circle-graphic{width:200%}.mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{left:-100%}.mdc-circular-progress--indeterminate .mdc-circular-progress__determinate-container{opacity:0}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{opacity:1}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{animation:mdc-circular-progress-container-rotate 1568.2352941176ms linear infinite}.mdc-circular-progress--indeterminate .mdc-circular-progress__spinner-layer{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-1{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-1-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-2{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-2-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-3{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-3-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-4{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-4-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-left .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--closed{opacity:0}.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:var(--mdc-circular-progress-active-indicator-color)}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}.mat-mdc-progress-spinner circle{stroke-width:var(--mdc-circular-progress-active-indicator-width)}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-1 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-2 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-3 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-4 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}.mat-mdc-progress-spinner .mdc-circular-progress{width:var(--mdc-circular-progress-size) !important;height:var(--mdc-circular-progress-size) !important}.mat-mdc-progress-spinner{display:block;overflow:hidden;line-height:0}.mat-mdc-progress-spinner._mat-animation-noopable,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__determinate-circle{transition:none}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-circle-graphic,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__spinner-layer,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container{animation:none}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container circle{stroke-dasharray:0 !important}.cdk-high-contrast-active .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic,.cdk-high-contrast-active .mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle{stroke:currentColor;stroke:CanvasText}"],encapsulation:2,changeDetection:0})}}return t})(),Hie=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[An,Ki]})}}return t})(),F9e=(()=>{class t{constructor(e){this.isLoadingMap$=e.select(x9e)}static{this.\u0275fac=function(i){return new(i||t)(W(Wt))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-loading-map-progress-spinner"]],decls:2,vars:4,consts:[["id","loading-gif-map","mode","indeterminate","diameter","22","title","Rendering map"]],template:function(i,r){1&i&&(_e(0,"mat-progress-spinner",0),ze(1,"async")),2&i&&Fi("visibility",tt(1,2,r.isLoadingMap$)?"visible":"hidden")},dependencies:[Uie,Gn],styles:["cc-loading-map-progress-spinner{display:inline-block;vertical-align:middle}\n"],encapsulation:2})}}return t})();const k9e=Xt(Hr,t=>t.isPresentationMode);let I9e=(()=>{class t{constructor(e,i){this.store=e,this.elementReference=i,this.isPresentationModeEnabled$=this.store.select(k9e)}setPresentationModeEnabled(e){this.store.dispatch(mM({value:e.checked})),this.elementReference.nativeElement.querySelector("mat-slide-toggle").classList.remove("cdk-focused"),this.elementReference.nativeElement.querySelector("mat-slide-toggle").classList.remove("cdk-program-focused"),this.elementReference.nativeElement.querySelector("mat-slide-toggle").classList.remove("mat-mdc-slide-toggle-focused")}static{this.\u0275fac=function(i){return new(i||t)(W(Wt),W(Un))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-presentation-mode-button"]],decls:5,vars:6,consts:[["aria-label","Presentation Mode Toggle",3,"change","checked","title"],[1,"presentation-mode-icon","fa","fa-television"]],template:function(i,r){1&i&&(I(0,"mat-slide-toggle",0),ze(1,"async"),ze(2,"async"),We("change",function(s){return r.setPresentationModeEnabled(s)}),_e(3,"i",1),ve(4," Presentation Mode\n"),O()),2&i&&ue("checked",tt(1,2,r.isPresentationModeEnabled$))("title",tt(2,4,r.isPresentationModeEnabled$)?"Disable flashlight hover effect":"Enable flashlight hover effect")},dependencies:[zb,Gn],styles:["cc-presentation-mode-button mat-slide-toggle.mat-mdc-slide-toggle div.mdc-form-field{font-size:10pt;flex-direction:row-reverse;gap:12px}\n"],encapsulation:2})}}return t})();const B9e=Xt(Hr,t=>t.hideFlatBuildings),Vie=Xt(Hr,t=>t.resetCameraIfNewFileIsLoaded),Qie=Xt(Hr,t=>t.layoutAlgorithm),D9e=Xt(Hr,t=>t.maxTreeMapFiles);function R9e(t,n){if(1&t&&(I(0,"mat-option",2),ve(1),O()),2&t){const e=n.$implicit;ue("value",e),H(),an(" ",e," ")}}function L9e(t,n){if(1&t&&(_e(0,"cc-slider",3),ze(1,"async")),2&t){const e=He();ue("label","Maximum TreeMap Files")("min",1)("max",1e3)("value",tt(1,5,e.maxTreeMapFiles$))("onChange",e.handleChangeMaxTreeMapFiles)}}let P9e=(()=>{class t{constructor(e){this.store=e,this.layoutAlgorithms=Object.values(qd),this.layoutAlgorithm$=this.store.select(Qie),this.maxTreeMapFiles$=this.store.select(D9e),this.handleChangeMaxTreeMapFiles=ou(i=>{this.store.dispatch(jy({value:i}))},400)}handleSelectedLayoutAlgorithmChanged(e){this.store.dispatch($y({value:e.value}))}static{this.\u0275fac=function(i){return new(i||t)(W(Wt))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-map-layout-selection"]],decls:9,vars:6,consts:[["appearance","outline"],[3,"selectionChange","value"],[3,"value"],[1,"cc-tree-maps-max-tree-map-files",3,"label","min","max","value","onChange"]],template:function(i,r){1&i&&(I(0,"mat-form-field",0)(1,"mat-label"),ve(2,"Map Layout"),O(),I(3,"mat-select",1),ze(4,"async"),We("selectionChange",function(s){return r.handleSelectedLayoutAlgorithmChanged(s)}),yr(5,R9e,2,2,"mat-option",2,Sr),O()(),ft(7,L9e,2,7,"cc-slider",3),ze(8,"async")),2&i&&(H(3),ue("value",tt(4,2,r.layoutAlgorithm$)),H(2),wr(r.layoutAlgorithms),H(2),yt(7,"TreeMapStreet"===tt(8,4,r.layoutAlgorithm$)?7:-1))},dependencies:[nd,td,vm,zd,BF,Gn],encapsulation:2})}}return t})();function N9e(t,n){if(1&t&&(I(0,"mat-option",2),ve(1),O()),2&t){const e=n.$implicit;ue("value",e),H(),an(" ",e," ")}}let O9e=(()=>{class t{constructor(e){this.store=e,this.sharpnessModes=Object.values(Up),this.sharpnessMode$=this.store.select(fK)}handleSelectedSharpnessModeChanged(e){this.store.dispatch(Ky({value:e.value}))}static{this.\u0275fac=function(i){return new(i||t)(W(Wt))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-display-quality-selection"]],decls:7,vars:3,consts:[["appearance","outline"],[3,"selectionChange","value"],[3,"value"]],template:function(i,r){1&i&&(I(0,"mat-form-field",0)(1,"mat-label"),ve(2,"Display Quality"),O(),I(3,"mat-select",1),ze(4,"async"),We("selectionChange",function(s){return r.handleSelectedSharpnessModeChanged(s)}),yr(5,N9e,2,2,"mat-option",2,Sr),O()()),2&i&&(H(3),ue("value",tt(4,1,r.sharpnessMode$)),H(2),wr(r.sharpnessModes))},dependencies:[nd,td,vm,zd,Gn],encapsulation:2})}}return t})();const U9e=()=>["appSettings.hideFlatBuildings","appSettings.isWhiteBackground","appSettings.resetCameraIfNewFileIsLoaded","appSettings.layoutAlgorithm","appSettings.maxTreeMapFiles"];let H9e=(()=>{class t{constructor(e){this.store=e,this.screenshotToClipboardEnabled$=this.store.select(jne),this.experimentalFeaturesEnabled$=this.store.select(bN),this.isWhiteBackground$=this.store.select(AJ),this.hideFlatBuildings$=this.store.select(B9e),this.resetCameraIfNewFileIsLoaded$=this.store.select(Vie)}handleResetCameraIfNewFileIsLoadedChanged(e){this.store.dispatch(gM({value:e.checked}))}handleHideFlatBuildingsChanged(e){this.store.dispatch(zy({value:e.checked}))}handleIsWhiteBackgroundChanged(e){this.store.dispatch(Wy({value:e.checked}))}handleExperimentalFeaturesEnabledChanged(e){this.store.dispatch(hM({value:e.checked}))}handleScreenshotToClipboardEnabledChanged(e){this.store.dispatch(uM({value:e.checked}))}static{this.\u0275fac=function(i){return new(i||t)(W(Wt))}}static{this.\u0275cmp=At({type:t,selectors:[["ng-component"]],decls:36,vars:17,consts:[["color","primary"],[1,"cc-global-configuration-dialog-content"],[1,"cc-global-configuration-align-right"],[1,"cc-global-configuration-toggle-option"],[3,"change","checked"],["tooltip","Reset global settings to their defaults","label","Reset global settings",3,"settingsKeys"],[1,"cc-global-configuration-links-list"],["href","https://github.com/MaibornWolff/codecharta/blob/main/README.md","target","_blank","rel","noopener noreferrer",1,"weblink"],[1,"fa","fa-external-link","icon-link"],["href","https://github.com/MaibornWolff/codecharta/","target","_blank","rel","noopener noreferrer",1,"weblink"],["href","https://github.com/MaibornWolff/codecharta/wiki","target","_blank","rel","noopener noreferrer",1,"weblink"],["align","end"],["mat-button","","mat-dialog-close","","cdkFocusInitial",""]],template:function(i,r){1&i&&(I(0,"mat-toolbar",0),ve(1,"Global Configuration"),O(),I(2,"div",1),_e(3,"div",2)(4,"cc-map-layout-selection")(5,"cc-display-quality-selection"),I(6,"div",3)(7,"mat-slide-toggle",4),ze(8,"async"),We("change",function(s){return r.handleHideFlatBuildingsChanged(s)}),ve(9," Hide Flattened Buildings "),O(),I(10,"mat-slide-toggle",4),ze(11,"async"),We("change",function(s){return r.handleResetCameraIfNewFileIsLoadedChanged(s)}),ve(12," Reset Camera when changing map "),O(),I(13,"mat-slide-toggle",4),ze(14,"async"),We("change",function(s){return r.handleIsWhiteBackgroundChanged(s)}),ve(15," White Background "),O(),I(16,"mat-slide-toggle",4),ze(17,"async"),We("change",function(s){return r.handleExperimentalFeaturesEnabledChanged(s)}),ve(18," Enable Experimental Features "),O(),I(19,"mat-slide-toggle",4),ze(20,"async"),We("change",function(s){return r.handleScreenshotToClipboardEnabledChanged(s)}),ve(21," Screenshot to clipboard "),O()(),_e(22,"cc-reset-settings-button",5),I(23,"div",6)(24,"a",7),_e(25,"em",8),ve(26,"How-to "),O(),I(27,"a",9),_e(28,"em",8),ve(29,"Github "),O(),I(30,"a",10),_e(31,"em",8),ve(32,"Wiki "),O()(),I(33,"mat-dialog-actions",11)(34,"button",12),ve(35,"Close"),O()()()),2&i&&(H(7),ue("checked",tt(8,6,r.hideFlatBuildings$)),H(3),ue("checked",tt(11,8,r.resetCameraIfNewFileIsLoaded$)),H(3),ue("checked",tt(14,10,r.isWhiteBackground$)),H(3),ue("checked",tt(17,12,r.experimentalFeaturesEnabled$)),H(3),ue("checked",tt(20,14,r.screenshotToClipboardEnabled$)),H(3),ue("settingsKeys",Vu(16,U9e)))},dependencies:[Bs,ic,Oc,SA,zb,_x,P9e,O9e,Gn],encapsulation:2})}}return t})(),V9e=(()=>{class t{constructor(e){this.dialog=e}showGlobalConfiguration(){this.dialog.open(H9e,{panelClass:"cc-global-configuration-dialog"})}static{this.\u0275fac=function(i){return new(i||t)(W(Is))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-global-configuration-button"]],decls:4,vars:1,consts:[["mat-button","","title","Global Configuration",3,"click"],[3,"icon"]],template:function(i,r){1&i&&(I(0,"button",0),We("click",function(){return r.showGlobalConfiguration()}),I(1,"span"),ve(2,"Global Configuration"),O(),_e(3,"cc-action-icon",1),O()),2&i&&(H(3),ue("icon","fa fa-cog"))},dependencies:[Bs,FA],styles:["cc-global-configuration-button button{margin:0;padding:0}cc-global-configuration-button button cc-action-icon{margin-left:12px}cc-global-configuration-button button:hover cc-action-icon{background-color:#0374c9}.cc-global-configuration-dialog .mat-mdc-dialog-container .cc-global-configuration-dialog-content{padding:0 16px;display:flex;flex-direction:column;gap:26px}.cc-global-configuration-dialog .mat-mdc-dialog-container cc-map-layout-selection>mat-form-field,.cc-global-configuration-dialog .mat-mdc-dialog-container cc-display-quality-selection>mat-form-field{width:100%}.cc-global-configuration-dialog .mat-mdc-dialog-container cc-map-layout-selection>mat-form-field .mat-mdc-form-field-subscript-wrapper.mat-mdc-form-field-bottom-align,.cc-global-configuration-dialog .mat-mdc-dialog-container cc-display-quality-selection>mat-form-field .mat-mdc-form-field-subscript-wrapper.mat-mdc-form-field-bottom-align{display:none}.cc-global-configuration-dialog .mat-mdc-dialog-container cc-map-layout-selection .cc-tree-maps-max-tree-map-files,.cc-global-configuration-dialog .mat-mdc-dialog-container cc-display-quality-selection .cc-tree-maps-max-tree-map-files{display:inline-block;padding-left:16px}.cc-global-configuration-dialog .mat-mdc-dialog-container .cc-global-configuration-toggle-option{display:flex;flex-direction:column;gap:inherit}.cc-global-configuration-dialog .mat-mdc-dialog-container .cc-global-configuration-links-list{display:flex;gap:16px}.cc-global-configuration-dialog .mat-mdc-dialog-container .cc-global-configuration-links-list .weblink{display:block;color:#000000de;text-decoration:none}.cc-global-configuration-dialog .mat-mdc-dialog-container .cc-global-configuration-links-list .weblink .fa{margin:8px}\n"],encapsulation:2})}}return t})();function Q9e(t,n){1&t&&_e(0,"cc-file-panel")}function z9e(t,n){1&t&&_e(0,"cc-hovered-node-path-panel")}let G9e=(()=>{class t{constructor(e){this.store=e,this.hoveredNodeId$=this.store.select(rx),this.experimentalFeaturesEnabled$=this.store.select(bN)}static{this.\u0275fac=function(i){return new(i||t)(W(Wt))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-tool-bar"]],decls:12,vars:3,consts:[[1,"right-aligned"]],template:function(i,r){1&i&&(_e(0,"cc-upload-files-button")(1,"cc-screenshot-button")(2,"cc-copy-to-clipboard-button")(3,"cc-export-3d-map-button")(4,"cc-reset-map-button"),ft(5,Q9e,1,0,"cc-file-panel"),ze(6,"async"),ft(7,z9e,1,0),I(8,"div",0),_e(9,"cc-loading-map-progress-spinner")(10,"cc-presentation-mode-button")(11,"cc-global-configuration-button"),O()),2&i&&(H(5),yt(5,null===tt(6,1,r.hoveredNodeId$)?5:7))},dependencies:[A7e,R7e,G7e,GHe,r9e,A9e,w9e,F9e,I9e,V9e,Gn],styles:["cc-tool-bar{display:flex;gap:8px;padding-left:8px;align-items:center;background-color:#f0f0f0;height:35px;border-bottom:1px solid #cdcdcd}cc-tool-bar .right-aligned{position:absolute;right:4px;display:inline-flex;align-items:center;width:400px;justify-content:space-between}cc-tool-bar span{font-size:10pt}\n"],encapsulation:2})}}return t})(),zie=(()=>{class t{static{this.NO_EXTENSION="None"}static{this.OTHER_EXTENSION="other"}static{this.OTHER_GROUP_THRESHOLD_VALUE=3}static getMetricDistribution(e,i){if(!e)return[];const r=new Map;let o=0;for(const a of io(e))if(Eo(a)&&!a.data.isExcluded){const l=a.data.attributes[i],c=t.estimateFileExtension(a.data.name),d=r.get(c);o+=l,d?d.absoluteMetricValue+=l:r.set(c,t.getDistributionObject(c,l))}if(0===o)return[t.getNoneExtension()];let s=[];for(const a of r.values())0!==a.absoluteMetricValue&&(a.relativeMetricValue=100*a.absoluteMetricValue/o,s.push(a));return s.sort((a,l)=>l.absoluteMetricValue-a.absoluteMetricValue),s=t.getMetricDistributionWithOthers(s),s.length>0?s:[t.getNoneExtension()]}static getMetricDistributionWithOthers(e){const i=t.getOtherExtension(),r=[];for(const o of e)o.relativeMetricValue>t.OTHER_GROUP_THRESHOLD_VALUE?r.push(o):(i.absoluteMetricValue+=o.absoluteMetricValue,i.relativeMetricValue+=o.relativeMetricValue);return i.relativeMetricValue>0&&r.push(i),r}static getOtherExtension(){return{fileExtension:t.OTHER_EXTENSION,absoluteMetricValue:0,relativeMetricValue:0,color:t.getColor(t.OTHER_EXTENSION)}}static getDistributionObject(e,i){return{fileExtension:e,absoluteMetricValue:i,relativeMetricValue:0,color:t.getColor(e)}}static estimateFileExtension(e){const i=e.lastIndexOf(".");return i>0&&i!==e.length?e.slice(i+1).toLowerCase():t.NO_EXTENSION}static getNoneExtension(){return{fileExtension:t.NO_EXTENSION,absoluteMetricValue:null,relativeMetricValue:100,color:t.getColor(t.NO_EXTENSION)}}static getColor(e){if(e===t.NO_EXTENSION||e===t.OTHER_EXTENSION)return"#676867";let i=0;for(let r=0;rt.distributionMetric),q9e=Xt(lc,Gie,(t,n)=>zie.getMetricDistribution(t.unifiedMapNode,n));let W9e=(()=>{class t{constructor(e){this.store=e,this.distributionMetric$=this.store.select(Gie)}handleDistributionMetricChanged(e){this.store.dispatch(Jy({value:e}))}static{this.\u0275fac=function(i){return new(i||t)(W(Wt))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-distribution-metric-chooser"]],decls:3,vars:5,consts:[[1,"fa","fa-pie-chart"],[3,"selectedMetricName","searchPlaceholder","handleMetricChanged"]],template:function(i,r){1&i&&(_e(0,"i",0)(1,"cc-metric-chooser",1),ze(2,"async")),2&i&&(H(),ue("selectedMetricName",tt(2,3,r.distributionMetric$))("searchPlaceholder","Distribution Metric (highest value)")("handleMetricChanged",r.handleDistributionMetricChanged))},dependencies:[Ax,Gn],encapsulation:2})}}return t})();function $9e(t,n){if(1&t){const e=kn();I(0,"span",7),We("click",function(){return Ft(e),kt(He().toggleShowAbsoluteValues())}),I(1,"div",8),We("mouseover",function(){const r=Ft(e).$implicit;return kt(He().onHoverFileExtensionBar(r.fileExtension))})("mouseleave",function(){return Ft(e),kt(He().onUnhoverFileExtensionBar())}),ve(2),O()()}if(2&t){const e=n.$implicit,i=He();Fi("width",e.relativeMetricValue+"%")("background",e.color),H(),wa("title",e.fileExtension.toString()+" "+(i.showAbsoluteValues?e.absoluteMetricValue.toFixed(0):e.relativeMetricValue.toFixed(2)+"%")),H(),Hu(" ",e.relativeMetricValue>=e.fileExtension.length/2+1?e.fileExtension:""," ",i.showAbsoluteValues?e.absoluteMetricValue.toLocaleString():e.relativeMetricValue.toFixed(2)+"%"," ")}}function j9e(t,n){if(1&t&&(I(0,"div",6),_e(1,"span",9),ve(2),I(3,"span",10),ve(4),O()()),2&t){const e=n.$implicit,i=He();H(),Fi("background",e.color),H(),an("",e.fileExtension," : "),H(2),an(" ",i.showAbsoluteValues?e.absoluteMetricValue.toLocaleString():e.relativeMetricValue.toFixed(2)+"%"," ")}}let K9e=(()=>{class t{constructor(e,i){this.store=e,this.threeSceneService=i,this.showAbsoluteValues=!1,this.showDetails=!1,this.store.select(q9e).subscribe(r=>{this.metricDistribution=r})}onHoverFileExtensionBar(e){const i=new Set;for(const r of this.metricDistribution)"other"!==r.fileExtension&&i.add(r.fileExtension);for(const r of this.threeSceneService.getMapMesh().getMeshDescription().buildings)if(r.node.isLeaf){const o=zie.estimateFileExtension(r.node.name);(o===e||"other"===e&&!i.has(o))&&this.threeSceneService.addBuildingToHighlightingList(r)}this.threeSceneService.highlightBuildings()}onUnhoverFileExtensionBar(){this.threeSceneService.clearHighlight()}toggleShowDetails(){this.showDetails=!this.showDetails}toggleShowAbsoluteValues(){this.showAbsoluteValues=!this.showAbsoluteValues}static{this.\u0275fac=function(i){return new(i||t)(W(Wt),W(cc))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-file-extension-bar"]],decls:10,vars:5,consts:[[1,"cc-distribution"],["title","Distribution metric"],[1,"cc-bar"],[1,"cc-bar-section",3,"width","background"],[1,"cc-show-details-button",3,"click"],[1,"cc-distribution-details",3,"click"],[1,"cc-distribution-details-entry"],[1,"cc-bar-section",3,"click"],[1,"cc-bar-section-text",3,"mouseover","mouseleave","title"],[1,"cc-dot"],[1,"cc-detail-metric-value"]],template:function(i,r){1&i&&(I(0,"div",0),_e(1,"cc-distribution-metric-chooser",1),I(2,"div",2),yr(3,$9e,3,7,"span",3,Sr),O(),I(5,"button",4),We("click",function(){return r.toggleShowDetails()}),_e(6,"i"),O()(),I(7,"div",5),We("click",function(){return r.toggleShowAbsoluteValues()}),yr(8,j9e,5,4,"div",6,Sr),O()),2&i&&(H(3),wr(r.metricDistribution),H(3),Uu("fa ",r.showDetails?"fa-caret-up":"fa-caret-down",""),H(),xn("cc-hidden",!r.showDetails),H(),wr(r.metricDistribution))},dependencies:[W9e],styles:['#mat-select-2-panel{left:-24px;top:98px}cc-file-extension-bar{z-index:30;background-color:#fff}cc-file-extension-bar .cc-distribution{display:flex;height:17px}cc-file-extension-bar .cc-distribution cc-distribution-metric-chooser{width:210px;display:flex;align-items:center;font-size:12px;gap:6px;padding-left:6px}cc-file-extension-bar .cc-distribution .cc-bar{flex:1}cc-file-extension-bar .cc-distribution .cc-bar .cc-bar-section{height:100%;display:inline-block;overflow:hidden;color:#fff;text-align:center;cursor:pointer;outline:none}cc-file-extension-bar .cc-distribution .cc-bar .cc-bar-section:not(:last-child){border-right:1px solid white}cc-file-extension-bar .cc-distribution .cc-bar .cc-bar-section .cc-bar-section-text{font-size:10px;margin:2px 0;white-space:nowrap;padding:0 10px;text-overflow:""}cc-file-extension-bar .cc-show-details-button{line-height:10px;width:45px;margin:0;padding:0;background-color:#e6e6e6f5}cc-file-extension-bar .cc-distribution-details{border-top:1px solid #cdcdcd;height:25px;transition:all linear .2s}cc-file-extension-bar .cc-distribution-details.cc-hidden{height:0;border-top:0 solid #cdcdcd}cc-file-extension-bar .cc-distribution-details:hover{cursor:pointer}cc-file-extension-bar .cc-distribution-details .cc-distribution-details-entry{display:inline-block;font-size:15px;color:#000;margin:3px 0 3px 30px}cc-file-extension-bar .cc-distribution-details .cc-distribution-details-entry .cc-dot{height:10px;width:10px;border-radius:50%;display:inline-block;margin-right:8px}cc-file-extension-bar .cc-distribution-details .cc-distribution-details-entry .cc-detail-metric-value{color:gray}\n'],encapsulation:2})}}return t})(),X9e=(()=>{class t{constructor(e){this.isLoadingFile$=e.select(GL)}static{this.\u0275fac=function(i){return new(i||t)(W(Wt))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-loading-file-progress-spinner"]],decls:3,vars:4,consts:[["id","loading-gif-file"],["mode","indeterminate","diameter","96"]],template:function(i,r){1&i&&(I(0,"div",0),ze(1,"async"),_e(2,"mat-progress-spinner",1),O()),2&i&&Fi("visibility",tt(1,2,r.isLoadingFile$)?"visible":"hidden")},dependencies:[Uie,Gn],styles:["cc-loading-file-progress-spinner #loading-gif-file{position:fixed;left:0;top:0;width:100%;height:100%;z-index:40;background-color:#fffc;display:inline-block;text-align:center}cc-loading-file-progress-spinner #loading-gif-file mat-progress-spinner.mat-mdc-progress-spinner{display:inline-block;margin:22% auto 0}\n"],encapsulation:2})}}return t})(),Y9e=(()=>{class t{constructor(e,i){this.store=e,this.loadInitialFileService=i,this.isInitialized=!1}ngOnInit(){var e=this;return f(function*(){e.store.dispatch(Ip({value:!0})),yield e.loadInitialFileService.loadFilesOrSampleFiles(),e.isInitialized=!0})()}static{this.\u0275fac=function(i){return new(i||t)(W(Wt),W(zL))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-code-charta"]],decls:8,vars:2,template:function(i,r){1&i&&(I(0,"div"),_e(1,"cc-tool-bar")(2,"cc-file-extension-bar")(3,"cc-ribbon-bar")(4,"cc-code-map")(5,"cc-legend-panel")(6,"cc-loading-file-progress-spinner")(7,"cc-logo"),O()),2&i&&Fi("visibility",r.isInitialized?"visible":"hidden")},dependencies:[B2e,PIe,tDe,i7e,G9e,K9e,X9e],styles:["cc-code-charta #logo{display:flex;flex-direction:column;position:absolute;left:2em;bottom:1em;z-index:1}cc-code-charta #logo img{object-fit:contain;max-width:100%;height:auto}cc-code-charta #logo h2{color:#5a585a;font-weight:700;font-size:10px;text-align:center;margin:0;z-index:-1}cc-code-charta #codeMap{position:fixed;z-index:0;top:98px;left:0;width:100%;height:100%}cc-code-charta .cc-shadow{box-shadow:0 1px 5px #0003!important}cc-code-charta cc-attribute-side-bar .side-bar-container,cc-code-charta cc-legend-panel .block-wrapper,cc-code-charta cc-legend-panel .panel-button,cc-code-charta cc-view-cube,cc-code-charta unfocus-button-component{transition:right .3s ease}cc-code-charta .small-action-button{display:inline-block;height:24px;width:24px;vertical-align:top}cc-code-charta .state-selector-button{height:22px;vertical-align:bottom;width:30px;min-height:0;min-width:0;margin:0;padding:0;font-size:9pt;text-transform:none;background-color:#e6e6e6f5}cc-code-charta .state-selector-button:hover{background-color:#c8c8c8!important}cc-code-charta .state-selector-button i{vertical-align:middle;height:26px}cc-code-charta .state-selector-button.left{border-radius:5px 0 0 5px}cc-code-charta .state-selector-button.middle{border-radius:0;border-left:1px solid rgb(255,255,255);border-right:1px solid rgb(255,255,255)}cc-code-charta .state-selector-button.right{border-radius:0 5px 5px 0}cc-code-charta .state-selector-button.current{background-color:#009688;color:#fff}cc-code-charta .state-selector-button.current:hover{background-color:#0374c9!important}\n"],encapsulation:2})}}return t})(),Z9e=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[An]})}}return t})();function qie(t){return new ct(3e3,!1)}function Fm(t){switch(t.length){case 0:return new y1;case 1:return t[0];default:return new C$(t)}}function Wie(t,n,e=new Map,i=new Map){const r=[],o=[];let s=-1,a=null;if(n.forEach(l=>{const c=l.get("offset"),d=c==s,u=d&&a||new Map;l.forEach((h,m)=>{let A=m,v=h;if("offset"!==m)switch(A=t.normalizePropertyName(A,r),v){case"!":v=e.get(m);break;case oh:v=i.get(m);break;default:v=t.normalizeStyleValue(m,A,v,r)}u.set(A,v)}),d||o.push(u),a=u,s=c}),r.length)throw function yVe(t){return new ct(3502,!1)}();return o}function I8(t,n,e,i){switch(n){case"start":t.onStart(()=>i(e&&B8(e,"start",t)));break;case"done":t.onDone(()=>i(e&&B8(e,"done",t)));break;case"destroy":t.onDestroy(()=>i(e&&B8(e,"destroy",t)))}}function B8(t,n,e){const o=D8(t.element,t.triggerName,t.fromState,t.toState,n||t.phaseName,e.totalTime??t.totalTime,!!e.disabled),s=t._data;return null!=s&&(o._data=s),o}function D8(t,n,e,i,r="",o=0,s){return{element:t,triggerName:n,fromState:e,toState:i,phaseName:r,totalTime:o,disabled:!!s}}function Ul(t,n,e){let i=t.get(n);return i||t.set(n,i=e),i}function $ie(t){const n=t.indexOf(":");return[t.substring(1,n),t.slice(n+1)]}const DVe=typeof document>"u"?null:document.documentElement;function R8(t){const n=t.parentNode||t.host||null;return n===DVe?null:n}let HA=null,jie=!1;function Kie(t,n){for(;n;){if(n===t)return!0;n=R8(n)}return!1}function Xie(t,n,e){if(e)return Array.from(t.querySelectorAll(n));const i=t.querySelector(n);return i?[i]:[]}let L8=(()=>{class t{validateStyleProperty(e){return function LVe(t){HA||(HA=function PVe(){return typeof document<"u"?document.body:null}()||{},jie=!!HA.style&&"WebkitAppearance"in HA.style);let n=!0;return HA.style&&!function RVe(t){return"ebkit"==t.substring(1,6)}(t)&&(n=t in HA.style,!n&&jie&&(n="Webkit"+t.charAt(0).toUpperCase()+t.slice(1)in HA.style)),n}(e)}matchesElement(e,i){return!1}containsElement(e,i){return Kie(e,i)}getParentElement(e){return R8(e)}query(e,i,r){return Xie(e,i,r)}computeStyle(e,i,r){return r||""}animate(e,i,r,o,s,a=[],l){return new y1(r,o)}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac})}}return t})();class P8{static{this.NOOP=new L8}}class N8{}const OVe=1e3,O8="ng-enter",M3="ng-leave",S3="ng-trigger",T3=".ng-trigger",Zie="ng-animating",U8=".ng-animating";function Rh(t){if("number"==typeof t)return t;const n=t.match(/^(-?[\.\d]+)(m?s)/);return!n||n.length<2?0:H8(parseFloat(n[1]),n[2])}function H8(t,n){return"s"===n?t*OVe:t}function F3(t,n,e){return t.hasOwnProperty("duration")?t:function HVe(t,n,e){let r,o=0,s="";if("string"==typeof t){const a=t.match(/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i);if(null===a)return n.push(qie()),{duration:0,delay:0,easing:""};r=H8(parseFloat(a[1]),a[2]);const l=a[3];null!=l&&(o=H8(parseFloat(l),a[4]));const c=a[5];c&&(s=c)}else r=t;if(!e){let a=!1,l=n.length;r<0&&(n.push(function J9e(){return new ct(3100,!1)}()),a=!0),o<0&&(n.push(function eVe(){return new ct(3101,!1)}()),a=!0),a&&n.splice(l,0,qie())}return{duration:r,delay:o,easing:s}}(t,n,e)}function fu(t,n,e){n.forEach((i,r)=>{const o=Q8(r);e&&!e.has(r)&&e.set(r,t.style[o]),t.style[o]=i})}function VA(t,n){n.forEach((e,i)=>{const r=Q8(i);t.style[r]=""})}function qx(t){return Array.isArray(t)?1==t.length?t[0]:function X1e(t,n=null){return{type:si.Sequence,steps:t,options:n}}(t):t}const V8=new RegExp("{{\\s*(.+?)\\s*}}","g");function ere(t){let n=[];if("string"==typeof t){let e;for(;e=V8.exec(t);)n.push(e[1]);V8.lastIndex=0}return n}function Wx(t,n,e){const i=`${t}`,r=i.replace(V8,(o,s)=>{let a=n[s];return null==a&&(e.push(function nVe(t){return new ct(3003,!1)}()),a=""),a.toString()});return r==i?t:r}const zVe=/-+([a-z0-9])/g;function Q8(t){return t.replace(zVe,(...n)=>n[1].toUpperCase())}function Hl(t,n,e){switch(n.type){case si.Trigger:return t.visitTrigger(n,e);case si.State:return t.visitState(n,e);case si.Transition:return t.visitTransition(n,e);case si.Sequence:return t.visitSequence(n,e);case si.Group:return t.visitGroup(n,e);case si.Animate:return t.visitAnimate(n,e);case si.Keyframes:return t.visitKeyframes(n,e);case si.Style:return t.visitStyle(n,e);case si.Reference:return t.visitReference(n,e);case si.AnimateChild:return t.visitAnimateChild(n,e);case si.AnimateRef:return t.visitAnimateRef(n,e);case si.Query:return t.visitQuery(n,e);case si.Stagger:return t.visitStagger(n,e);default:throw function iVe(t){return new ct(3004,!1)}()}}const WVe=new Set(["width","height","minWidth","minHeight","maxWidth","maxHeight","left","top","bottom","right","fontSize","outlineWidth","outlineOffset","paddingTop","paddingLeft","paddingBottom","paddingRight","marginTop","marginLeft","marginBottom","marginRight","borderRadius","borderWidth","borderTopWidth","borderLeftWidth","borderRightWidth","borderBottomWidth","textIndent","perspective"]);class tre extends N8{normalizePropertyName(n,e){return Q8(n)}normalizeStyleValue(n,e,i,r){let o="";const s=i.toString().trim();if(WVe.has(e)&&0!==i&&"0"!==i)if("number"==typeof i)o="px";else{const a=i.match(/^[+-]?[\d\.]+([a-z]*)$/);a&&0==a[1].length&&r.push(function rVe(t,n){return new ct(3005,!1)}())}return s+o}}const k3="*";const I3=new Set(["true","1"]),B3=new Set(["false","0"]);function nre(t,n){const e=I3.has(t)||B3.has(t),i=I3.has(n)||B3.has(n);return(r,o)=>{let s=t==k3||t==r,a=n==k3||n==o;return!s&&e&&"boolean"==typeof r&&(s=r?I3.has(t):B3.has(t)),!a&&i&&"boolean"==typeof o&&(a=o?I3.has(n):B3.has(n)),s&&a}}const XVe=new RegExp("s*:selfs*,?","g");function G8(t,n,e,i){return new YVe(t).build(n,e,i)}class YVe{constructor(n){this._driver=n}build(n,e,i){const r=new eQe(e);return this._resetContextStyleTimingState(r),Hl(this,qx(n),r)}_resetContextStyleTimingState(n){n.currentQuerySelector="",n.collectedStyles=new Map,n.collectedStyles.set("",new Map),n.currentTime=0}visitTrigger(n,e){let i=e.queryCount=0,r=e.depCount=0;const o=[],s=[];return"@"==n.name.charAt(0)&&e.errors.push(function oVe(){return new ct(3006,!1)}()),n.definitions.forEach(a=>{if(this._resetContextStyleTimingState(e),a.type==si.State){const l=a,c=l.name;c.toString().split(/\s*,\s*/).forEach(d=>{l.name=d,o.push(this.visitState(l,e))}),l.name=c}else if(a.type==si.Transition){const l=this.visitTransition(a,e);i+=l.queryCount,r+=l.depCount,s.push(l)}else e.errors.push(function sVe(){return new ct(3007,!1)}())}),{type:si.Trigger,name:n.name,states:o,transitions:s,queryCount:i,depCount:r,options:null}}visitState(n,e){const i=this.visitStyle(n.styles,e),r=n.options&&n.options.params||null;if(i.containsDynamicStyles){const o=new Set,s=r||{};i.styles.forEach(a=>{a instanceof Map&&a.forEach(l=>{ere(l).forEach(c=>{s.hasOwnProperty(c)||o.add(c)})})}),o.size&&e.errors.push(function aVe(t,n){return new ct(3008,!1)}(0,o.values()))}return{type:si.State,name:n.name,style:i,options:r?{params:r}:null}}visitTransition(n,e){e.queryCount=0,e.depCount=0;const i=Hl(this,qx(n.animation),e),r=function $Ve(t,n){const e=[];return"string"==typeof t?t.split(/\s*,\s*/).forEach(i=>function jVe(t,n,e){if(":"==t[0]){const l=function KVe(t,n){switch(t){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(e,i)=>parseFloat(i)>parseFloat(e);case":decrement":return(e,i)=>parseFloat(i) *"}}(t,e);if("function"==typeof l)return void n.push(l);t=l}const i=t.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(null==i||i.length<4)return e.push(function AVe(t){return new ct(3015,!1)}()),n;const r=i[1],o=i[2],s=i[3];n.push(nre(r,s)),"<"==o[0]&&(r!=k3||s!=k3)&&n.push(nre(s,r))}(i,e,n)):e.push(t),e}(n.expr,e.errors);return{type:si.Transition,matchers:r,animation:i,queryCount:e.queryCount,depCount:e.depCount,options:QA(n.options)}}visitSequence(n,e){return{type:si.Sequence,steps:n.steps.map(i=>Hl(this,i,e)),options:QA(n.options)}}visitGroup(n,e){const i=e.currentTime;let r=0;const o=n.steps.map(s=>{e.currentTime=i;const a=Hl(this,s,e);return r=Math.max(r,e.currentTime),a});return e.currentTime=r,{type:si.Group,steps:o,options:QA(n.options)}}visitAnimate(n,e){const i=function nQe(t,n){if(t.hasOwnProperty("duration"))return t;if("number"==typeof t)return q8(F3(t,n).duration,0,"");const e=t;if(e.split(/\s+/).some(o=>"{"==o.charAt(0)&&"{"==o.charAt(1))){const o=q8(0,0,"");return o.dynamic=!0,o.strValue=e,o}const r=F3(e,n);return q8(r.duration,r.delay,r.easing)}(n.timings,e.errors);e.currentAnimateTimings=i;let r,o=n.styles?n.styles:Do({});if(o.type==si.Keyframes)r=this.visitKeyframes(o,e);else{let s=n.styles,a=!1;if(!s){a=!0;const c={};i.easing&&(c.easing=i.easing),s=Do(c)}e.currentTime+=i.duration+i.delay;const l=this.visitStyle(s,e);l.isEmptyStep=a,r=l}return e.currentAnimateTimings=null,{type:si.Animate,timings:i,style:r,options:null}}visitStyle(n,e){const i=this._makeStyleAst(n,e);return this._validateStyleAst(i,e),i}_makeStyleAst(n,e){const i=[],r=Array.isArray(n.styles)?n.styles:[n.styles];for(let a of r)"string"==typeof a?a===oh?i.push(a):e.errors.push(new ct(3002,!1)):i.push(new Map(Object.entries(a)));let o=!1,s=null;return i.forEach(a=>{if(a instanceof Map&&(a.has("easing")&&(s=a.get("easing"),a.delete("easing")),!o))for(let l of a.values())if(l.toString().indexOf("{{")>=0){o=!0;break}}),{type:si.Style,styles:i,easing:s,offset:n.offset,containsDynamicStyles:o,options:null}}_validateStyleAst(n,e){const i=e.currentAnimateTimings;let r=e.currentTime,o=e.currentTime;i&&o>0&&(o-=i.duration+i.delay),n.styles.forEach(s=>{"string"!=typeof s&&s.forEach((a,l)=>{const c=e.collectedStyles.get(e.currentQuerySelector),d=c.get(l);let u=!0;d&&(o!=r&&o>=d.startTime&&r<=d.endTime&&(e.errors.push(function cVe(t,n,e,i,r){return new ct(3010,!1)}()),u=!1),o=d.startTime),u&&c.set(l,{startTime:o,endTime:r}),e.options&&function QVe(t,n,e){const i=n.params||{},r=ere(t);r.length&&r.forEach(o=>{i.hasOwnProperty(o)||e.push(function tVe(t){return new ct(3001,!1)}())})}(a,e.options,e.errors)})})}visitKeyframes(n,e){const i={type:si.Keyframes,styles:[],options:null};if(!e.currentAnimateTimings)return e.errors.push(function dVe(){return new ct(3011,!1)}()),i;let o=0;const s=[];let a=!1,l=!1,c=0;const d=n.steps.map(C=>{const w=this._makeStyleAst(C,e);let S=null!=w.offset?w.offset:function tQe(t){if("string"==typeof t)return null;let n=null;if(Array.isArray(t))t.forEach(e=>{if(e instanceof Map&&e.has("offset")){const i=e;n=parseFloat(i.get("offset")),i.delete("offset")}});else if(t instanceof Map&&t.has("offset")){const e=t;n=parseFloat(e.get("offset")),e.delete("offset")}return n}(w.styles),M=0;return null!=S&&(o++,M=w.offset=S),l=l||M<0||M>1,a=a||M0&&o{const S=h>0?w==m?1:h*w:s[w],M=S*x;e.currentTime=A+v.delay+M,v.duration=M,this._validateStyleAst(C,e),C.offset=S,i.styles.push(C)}),i}visitReference(n,e){return{type:si.Reference,animation:Hl(this,qx(n.animation),e),options:QA(n.options)}}visitAnimateChild(n,e){return e.depCount++,{type:si.AnimateChild,options:QA(n.options)}}visitAnimateRef(n,e){return{type:si.AnimateRef,animation:this.visitReference(n.animation,e),options:QA(n.options)}}visitQuery(n,e){const i=e.currentQuerySelector,r=n.options||{};e.queryCount++,e.currentQuery=n;const[o,s]=function ZVe(t){const n=!!t.split(/\s*,\s*/).find(e=>":self"==e);return n&&(t=t.replace(XVe,"")),t=t.replace(/@\*/g,T3).replace(/@\w+/g,e=>T3+"-"+e.slice(1)).replace(/:animating/g,U8),[t,n]}(n.selector);e.currentQuerySelector=i.length?i+" "+o:o,Ul(e.collectedStyles,e.currentQuerySelector,new Map);const a=Hl(this,qx(n.animation),e);return e.currentQuery=null,e.currentQuerySelector=i,{type:si.Query,selector:o,limit:r.limit||0,optional:!!r.optional,includeSelf:s,animation:a,originalSelector:n.selector,options:QA(n.options)}}visitStagger(n,e){e.currentQuery||e.errors.push(function mVe(){return new ct(3013,!1)}());const i="full"===n.timings?{duration:0,delay:0,easing:"full"}:F3(n.timings,e.errors,!0);return{type:si.Stagger,animation:Hl(this,qx(n.animation),e),timings:i,options:null}}}class eQe{constructor(n){this.errors=n,this.queryCount=0,this.depCount=0,this.currentTransition=null,this.currentQuery=null,this.currentQuerySelector=null,this.currentAnimateTimings=null,this.currentTime=0,this.collectedStyles=new Map,this.options=null,this.unsupportedCSSPropertiesFound=new Set}}function QA(t){return t?(t={...t}).params&&(t.params=function JVe(t){return t?{...t}:null}(t.params)):t={},t}function q8(t,n,e){return{duration:t,delay:n,easing:e}}function W8(t,n,e,i,r,o,s=null,a=!1){return{type:1,element:t,keyframes:n,preStyleProps:e,postStyleProps:i,duration:r,delay:o,totalTime:r+o,easing:s,subTimeline:a}}class D3{constructor(){this._map=new Map}get(n){return this._map.get(n)||[]}append(n,e){let i=this._map.get(n);i||this._map.set(n,i=[]),i.push(...e)}has(n){return this._map.has(n)}clear(){this._map.clear()}}const oQe=new RegExp(":enter","g"),aQe=new RegExp(":leave","g");function $8(t,n,e,i,r,o=new Map,s=new Map,a,l,c=[]){return(new lQe).buildKeyframes(t,n,e,i,r,o,s,a,l,c)}class lQe{buildKeyframes(n,e,i,r,o,s,a,l,c,d=[]){c=c||new D3;const u=new j8(n,e,c,r,o,d,[]);u.options=l;const h=l.delay?Rh(l.delay):0;u.currentTimeline.delayNextStep(h),u.currentTimeline.setStyles([s],null,u.errors,l),Hl(this,i,u);const m=u.timelines.filter(A=>A.containsAnimation());if(m.length&&a.size){let A;for(let v=m.length-1;v>=0;v--){const x=m[v];if(x.element===e){A=x;break}}A&&!A.allowOnlyTimelineStyles()&&A.setStyles([a],null,u.errors,l)}return m.length?m.map(A=>A.buildKeyframes()):[W8(e,[],[],[],0,h,"",!1)]}visitTrigger(n,e){}visitState(n,e){}visitTransition(n,e){}visitAnimateChild(n,e){const i=e.subInstructions.get(e.element);if(i){const r=e.createSubContext(n.options),o=e.currentTimeline.currentTime,s=this._visitSubInstructions(i,r,r.options);o!=s&&e.transformIntoNewTimeline(s)}e.previousNode=n}visitAnimateRef(n,e){const i=e.createSubContext(n.options);i.transformIntoNewTimeline(),this._applyAnimationRefDelays([n.options,n.animation.options],e,i),this.visitReference(n.animation,i),e.transformIntoNewTimeline(i.currentTimeline.currentTime),e.previousNode=n}_applyAnimationRefDelays(n,e,i){for(const r of n){const o=r?.delay;if(o){const s="number"==typeof o?o:Rh(Wx(o,r?.params??{},e.errors));i.delayNextStep(s)}}}_visitSubInstructions(n,e,i){let o=e.currentTimeline.currentTime;const s=null!=i.duration?Rh(i.duration):null,a=null!=i.delay?Rh(i.delay):null;return 0!==s&&n.forEach(l=>{const c=e.appendInstructionToTimeline(l,s,a);o=Math.max(o,c.duration+c.delay)}),o}visitReference(n,e){e.updateOptions(n.options,!0),Hl(this,n.animation,e),e.previousNode=n}visitSequence(n,e){const i=e.subContextCount;let r=e;const o=n.options;if(o&&(o.params||o.delay)&&(r=e.createSubContext(o),r.transformIntoNewTimeline(),null!=o.delay)){r.previousNode.type==si.Style&&(r.currentTimeline.snapshotCurrentStyles(),r.previousNode=R3);const s=Rh(o.delay);r.delayNextStep(s)}n.steps.length&&(n.steps.forEach(s=>Hl(this,s,r)),r.currentTimeline.applyStylesToKeyframe(),r.subContextCount>i&&r.transformIntoNewTimeline()),e.previousNode=n}visitGroup(n,e){const i=[];let r=e.currentTimeline.currentTime;const o=n.options&&n.options.delay?Rh(n.options.delay):0;n.steps.forEach(s=>{const a=e.createSubContext(n.options);o&&a.delayNextStep(o),Hl(this,s,a),r=Math.max(r,a.currentTimeline.currentTime),i.push(a.currentTimeline)}),i.forEach(s=>e.currentTimeline.mergeTimelineCollectedStyles(s)),e.transformIntoNewTimeline(r),e.previousNode=n}_visitTiming(n,e){if(n.dynamic){const i=n.strValue;return F3(e.params?Wx(i,e.params,e.errors):i,e.errors)}return{duration:n.duration,delay:n.delay,easing:n.easing}}visitAnimate(n,e){const i=e.currentAnimateTimings=this._visitTiming(n.timings,e),r=e.currentTimeline;i.delay&&(e.incrementTime(i.delay),r.snapshotCurrentStyles());const o=n.style;o.type==si.Keyframes?this.visitKeyframes(o,e):(e.incrementTime(i.duration),this.visitStyle(o,e),r.applyStylesToKeyframe()),e.currentAnimateTimings=null,e.previousNode=n}visitStyle(n,e){const i=e.currentTimeline,r=e.currentAnimateTimings;!r&&i.hasCurrentStyleProperties()&&i.forwardFrame();const o=r&&r.easing||n.easing;n.isEmptyStep?i.applyEmptyStep(o):i.setStyles(n.styles,o,e.errors,e.options),e.previousNode=n}visitKeyframes(n,e){const i=e.currentAnimateTimings,r=e.currentTimeline.duration,o=i.duration,a=e.createSubContext().currentTimeline;a.easing=i.easing,n.styles.forEach(l=>{a.forwardTime((l.offset||0)*o),a.setStyles(l.styles,l.easing,e.errors,e.options),a.applyStylesToKeyframe()}),e.currentTimeline.mergeTimelineCollectedStyles(a),e.transformIntoNewTimeline(r+o),e.previousNode=n}visitQuery(n,e){const i=e.currentTimeline.currentTime,r=n.options||{},o=r.delay?Rh(r.delay):0;o&&(e.previousNode.type===si.Style||0==i&&e.currentTimeline.hasCurrentStyleProperties())&&(e.currentTimeline.snapshotCurrentStyles(),e.previousNode=R3);let s=i;const a=e.invokeQuery(n.selector,n.originalSelector,n.limit,n.includeSelf,!!r.optional,e.errors);e.currentQueryTotal=a.length;let l=null;a.forEach((c,d)=>{e.currentQueryIndex=d;const u=e.createSubContext(n.options,c);o&&u.delayNextStep(o),c===e.element&&(l=u.currentTimeline),Hl(this,n.animation,u),u.currentTimeline.applyStylesToKeyframe(),s=Math.max(s,u.currentTimeline.currentTime)}),e.currentQueryIndex=0,e.currentQueryTotal=0,e.transformIntoNewTimeline(s),l&&(e.currentTimeline.mergeTimelineCollectedStyles(l),e.currentTimeline.snapshotCurrentStyles()),e.previousNode=n}visitStagger(n,e){const i=e.parentContext,r=e.currentTimeline,o=n.timings,s=Math.abs(o.duration),a=s*(e.currentQueryTotal-1);let l=s*e.currentQueryIndex;switch(o.duration<0?"reverse":o.easing){case"reverse":l=a-l;break;case"full":l=i.currentStaggerTime}const d=e.currentTimeline;l&&d.delayNextStep(l);const u=d.currentTime;Hl(this,n.animation,e),e.previousNode=n,i.currentStaggerTime=r.currentTime-u+(r.startTime-i.currentTimeline.startTime)}}const R3={};class j8{constructor(n,e,i,r,o,s,a,l){this._driver=n,this.element=e,this.subInstructions=i,this._enterClassName=r,this._leaveClassName=o,this.errors=s,this.timelines=a,this.parentContext=null,this.currentAnimateTimings=null,this.previousNode=R3,this.subContextCount=0,this.options={},this.currentQueryIndex=0,this.currentQueryTotal=0,this.currentStaggerTime=0,this.currentTimeline=l||new L3(this._driver,e,0),a.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(n,e){if(!n)return;const i=n;let r=this.options;null!=i.duration&&(r.duration=Rh(i.duration)),null!=i.delay&&(r.delay=Rh(i.delay));const o=i.params;if(o){let s=r.params;s||(s=this.options.params={}),Object.keys(o).forEach(a=>{(!e||!s.hasOwnProperty(a))&&(s[a]=Wx(o[a],s,this.errors))})}}_copyOptions(){const n={};if(this.options){const e=this.options.params;if(e){const i=n.params={};Object.keys(e).forEach(r=>{i[r]=e[r]})}}return n}createSubContext(n=null,e,i){const r=e||this.element,o=new j8(this._driver,r,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(r,i||0));return o.previousNode=this.previousNode,o.currentAnimateTimings=this.currentAnimateTimings,o.options=this._copyOptions(),o.updateOptions(n),o.currentQueryIndex=this.currentQueryIndex,o.currentQueryTotal=this.currentQueryTotal,o.parentContext=this,this.subContextCount++,o}transformIntoNewTimeline(n){return this.previousNode=R3,this.currentTimeline=this.currentTimeline.fork(this.element,n),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(n,e,i){const r={duration:e??n.duration,delay:this.currentTimeline.currentTime+(i??0)+n.delay,easing:""},o=new cQe(this._driver,n.element,n.keyframes,n.preStyleProps,n.postStyleProps,r,n.stretchStartingKeyframe);return this.timelines.push(o),r}incrementTime(n){this.currentTimeline.forwardTime(this.currentTimeline.duration+n)}delayNextStep(n){n>0&&this.currentTimeline.delayNextStep(n)}invokeQuery(n,e,i,r,o,s){let a=[];if(r&&a.push(this.element),n.length>0){n=(n=n.replace(oQe,"."+this._enterClassName)).replace(aQe,"."+this._leaveClassName);let c=this._driver.query(this.element,n,1!=i);0!==i&&(c=i<0?c.slice(c.length+i,c.length):c.slice(0,i)),a.push(...c)}return!o&&0==a.length&&s.push(function pVe(t){return new ct(3014,!1)}()),a}}class L3{constructor(n,e,i,r){this._driver=n,this.element=e,this.startTime=i,this._elementTimelineStylesLookup=r,this.duration=0,this.easing=null,this._previousKeyframe=new Map,this._currentKeyframe=new Map,this._keyframes=new Map,this._styleSummary=new Map,this._localTimelineStyles=new Map,this._pendingStyles=new Map,this._backFill=new Map,this._currentEmptyStepKeyframe=null,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(e),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(e,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.hasCurrentStyleProperties();default:return!0}}hasCurrentStyleProperties(){return this._currentKeyframe.size>0}get currentTime(){return this.startTime+this.duration}delayNextStep(n){const e=1===this._keyframes.size&&this._pendingStyles.size;this.duration||e?(this.forwardTime(this.currentTime+n),e&&this.snapshotCurrentStyles()):this.startTime+=n}fork(n,e){return this.applyStylesToKeyframe(),new L3(this._driver,n,e||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=new Map,this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=1,this._loadKeyframe()}forwardTime(n){this.applyStylesToKeyframe(),this.duration=n,this._loadKeyframe()}_updateStyle(n,e){this._localTimelineStyles.set(n,e),this._globalTimelineStyles.set(n,e),this._styleSummary.set(n,{time:this.currentTime,value:e})}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(n){n&&this._previousKeyframe.set("easing",n);for(let[e,i]of this._globalTimelineStyles)this._backFill.set(e,i||oh),this._currentKeyframe.set(e,oh);this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(n,e,i,r){e&&this._previousKeyframe.set("easing",e);const o=r&&r.params||{},s=function dQe(t,n){const e=new Map;let i;return t.forEach(r=>{if("*"===r){i??=n.keys();for(let o of i)e.set(o,oh)}else for(let[o,s]of r)e.set(o,s)}),e}(n,this._globalTimelineStyles);for(let[a,l]of s){const c=Wx(l,o,i);this._pendingStyles.set(a,c),this._localTimelineStyles.has(a)||this._backFill.set(a,this._globalTimelineStyles.get(a)??oh),this._updateStyle(a,c)}}applyStylesToKeyframe(){0!=this._pendingStyles.size&&(this._pendingStyles.forEach((n,e)=>{this._currentKeyframe.set(e,n)}),this._pendingStyles.clear(),this._localTimelineStyles.forEach((n,e)=>{this._currentKeyframe.has(e)||this._currentKeyframe.set(e,n)}))}snapshotCurrentStyles(){for(let[n,e]of this._localTimelineStyles)this._pendingStyles.set(n,e),this._updateStyle(n,e)}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){const n=[];for(let e in this._currentKeyframe)n.push(e);return n}mergeTimelineCollectedStyles(n){n._styleSummary.forEach((e,i)=>{const r=this._styleSummary.get(i);(!r||e.time>r.time)&&this._updateStyle(i,e.value)})}buildKeyframes(){this.applyStylesToKeyframe();const n=new Set,e=new Set,i=1===this._keyframes.size&&0===this.duration;let r=[];this._keyframes.forEach((a,l)=>{const c=new Map([...this._backFill,...a]);c.forEach((d,u)=>{"!"===d?n.add(u):d===oh&&e.add(u)}),i||c.set("offset",l/this.duration),r.push(c)});const o=[...n.values()],s=[...e.values()];if(i){const a=r[0],l=new Map(a);a.set("offset",0),l.set("offset",1),r=[a,l]}return W8(this.element,r,o,s,this.duration,this.startTime,this.easing,!1)}}class cQe extends L3{constructor(n,e,i,r,o,s,a=!1){super(n,e,s.delay),this.keyframes=i,this.preStyleProps=r,this.postStyleProps=o,this._stretchStartingKeyframe=a,this.timings={duration:s.duration,delay:s.delay,easing:s.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let n=this.keyframes,{delay:e,duration:i,easing:r}=this.timings;if(this._stretchStartingKeyframe&&e){const o=[],s=i+e,a=e/s,l=new Map(n[0]);l.set("offset",0),o.push(l);const c=new Map(n[0]);c.set("offset",ore(a)),o.push(c);const d=n.length-1;for(let u=1;u<=d;u++){let h=new Map(n[u]);const m=h.get("offset");h.set("offset",ore((e+m*i)/s)),o.push(h)}i=s,e=0,r="",n=o}return W8(this.element,n,this.preStyleProps,this.postStyleProps,i,e,r,!0)}}function ore(t,n=3){const e=Math.pow(10,n-1);return Math.round(t*e)/e}function sre(t,n,e,i,r,o,s,a,l,c,d,u,h){return{type:0,element:t,triggerName:n,isRemovalTransition:r,fromState:e,fromStyles:o,toState:i,toStyles:s,timelines:a,queriedElements:l,preStyleProps:c,postStyleProps:d,totalTime:u,errors:h}}const K8={};class are{constructor(n,e,i){this._triggerName=n,this.ast=e,this._stateStyles=i}match(n,e,i,r){return function uQe(t,n,e,i,r){return t.some(o=>o(n,e,i,r))}(this.ast.matchers,n,e,i,r)}buildStyles(n,e,i){let r=this._stateStyles.get("*");return void 0!==n&&(r=this._stateStyles.get(n?.toString())||r),r?r.buildStyles(e,i):new Map}build(n,e,i,r,o,s,a,l,c,d){const u=[],h=this.ast.options&&this.ast.options.params||K8,A=this.buildStyles(i,a&&a.params||K8,u),v=l&&l.params||K8,x=this.buildStyles(r,v,u),C=new Set,w=new Map,S=new Map,M="void"===r,B={params:lre(v,h),delay:this.ast.options?.delay},P=d?[]:$8(n,e,this.ast.animation,o,s,A,x,B,c,u);let $=0;return P.forEach(ee=>{$=Math.max(ee.duration+ee.delay,$)}),u.length?sre(e,this._triggerName,i,r,M,A,x,[],[],w,S,$,u):(P.forEach(ee=>{const te=ee.element,re=Ul(w,te,new Set);ee.preStyleProps.forEach(Ce=>re.add(Ce));const ne=Ul(S,te,new Set);ee.postStyleProps.forEach(Ce=>ne.add(Ce)),te!==e&&C.add(te)}),sre(e,this._triggerName,i,r,M,A,x,P,[...C.values()],w,S,$))}}function lre(t,n){const e={...n};return Object.entries(t).forEach(([i,r])=>{null!=r&&(e[i]=r)}),e}class hQe{constructor(n,e,i){this.styles=n,this.defaultParams=e,this.normalizer=i}buildStyles(n,e){const i=new Map,r=lre(n,this.defaultParams);return this.styles.styles.forEach(o=>{"string"!=typeof o&&o.forEach((s,a)=>{s&&(s=Wx(s,r,e));const l=this.normalizer.normalizePropertyName(a,e);s=this.normalizer.normalizeStyleValue(a,l,s,e),i.set(a,s)})}),i}}class mQe{constructor(n,e,i){this.name=n,this.ast=e,this._normalizer=i,this.transitionFactories=[],this.states=new Map,e.states.forEach(r=>{this.states.set(r.name,new hQe(r.style,r.options&&r.options.params||{},i))}),cre(this.states,"true","1"),cre(this.states,"false","0"),e.transitions.forEach(r=>{this.transitionFactories.push(new are(n,r,this.states))}),this.fallbackTransition=function pQe(t,n,e){return new are(t,{type:si.Transition,animation:{type:si.Sequence,steps:[],options:null},matchers:[(s,a)=>!0],options:null,queryCount:0,depCount:0},n)}(n,this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(n,e,i,r){return this.transitionFactories.find(s=>s.match(n,e,i,r))||null}matchStyles(n,e,i){return this.fallbackTransition.buildStyles(n,e,i)}}function cre(t,n,e){t.has(n)?t.has(e)||t.set(e,t.get(n)):t.has(e)&&t.set(n,t.get(e))}const AQe=new D3;class gQe{constructor(n,e,i){this.bodyNode=n,this._driver=e,this._normalizer=i,this._animations=new Map,this._playersById=new Map,this.players=[]}register(n,e){const i=[],o=G8(this._driver,e,i,[]);if(i.length)throw function wVe(t){return new ct(3503,!1)}();this._animations.set(n,o)}_buildPlayer(n,e,i){const r=n.element,o=Wie(this._normalizer,n.keyframes,e,i);return this._driver.animate(r,o,n.duration,n.delay,n.easing,[],!0)}create(n,e,i={}){const r=[],o=this._animations.get(n);let s;const a=new Map;if(o?(s=$8(this._driver,e,o,O8,M3,new Map,new Map,i,AQe,r),s.forEach(d=>{const u=Ul(a,d.element,new Map);d.postStyleProps.forEach(h=>u.set(h,null))})):(r.push(function xVe(){return new ct(3300,!1)}()),s=[]),r.length)throw function CVe(t){return new ct(3504,!1)}();a.forEach((d,u)=>{d.forEach((h,m)=>{d.set(m,this._driver.computeStyle(u,m,oh))})});const c=Fm(s.map(d=>{const u=a.get(d.element);return this._buildPlayer(d,new Map,u)}));return this._playersById.set(n,c),c.onDestroy(()=>this.destroy(n)),this.players.push(c),c}destroy(n){const e=this._getPlayer(n);e.destroy(),this._playersById.delete(n);const i=this.players.indexOf(e);i>=0&&this.players.splice(i,1)}_getPlayer(n){const e=this._playersById.get(n);if(!e)throw function EVe(t){return new ct(3301,!1)}();return e}listen(n,e,i,r){const o=D8(e,"","","");return I8(this._getPlayer(n),i,o,r),()=>{}}command(n,e,i,r){if("register"==i)return void this.register(n,r[0]);if("create"==i)return void this.create(n,e,r[0]||{});const o=this._getPlayer(n);switch(i){case"play":o.play();break;case"pause":o.pause();break;case"reset":o.reset();break;case"restart":o.restart();break;case"finish":o.finish();break;case"init":o.init();break;case"setPosition":o.setPosition(parseFloat(r[0]));break;case"destroy":this.destroy(n)}}}const dre="ng-animate-queued",X8="ng-animate-disabled",wQe=[],ure={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},xQe={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},ld="__ng_removed";class Y8{get params(){return this.options.params}constructor(n,e=""){this.namespaceId=e;const i=n&&n.hasOwnProperty("value");if(this.value=function SQe(t){return t??null}(i?n.value:n),i){const{value:o,...s}=n;this.options=s}else this.options={};this.options.params||(this.options.params={})}absorbOptions(n){const e=n.params;if(e){const i=this.options.params;Object.keys(e).forEach(r=>{null==i[r]&&(i[r]=e[r])})}}}const $x="void",Z8=new Y8($x);class CQe{constructor(n,e,i){this.id=n,this.hostElement=e,this._engine=i,this.players=[],this._triggers=new Map,this._queue=[],this._elementListeners=new Map,this._hostClassName="ng-tns-"+n,uc(e,this._hostClassName)}listen(n,e,i,r){if(!this._triggers.has(e))throw function MVe(t,n){return new ct(3302,!1)}();if(null==i||0==i.length)throw function SVe(t){return new ct(3303,!1)}();if(!function TQe(t){return"start"==t||"done"==t}(i))throw function TVe(t,n){return new ct(3400,!1)}();const o=Ul(this._elementListeners,n,[]),s={name:e,phase:i,callback:r};o.push(s);const a=Ul(this._engine.statesByElement,n,new Map);return a.has(e)||(uc(n,S3),uc(n,S3+"-"+e),a.set(e,Z8)),()=>{this._engine.afterFlush(()=>{const l=o.indexOf(s);l>=0&&o.splice(l,1),this._triggers.has(e)||a.delete(e)})}}register(n,e){return!this._triggers.has(n)&&(this._triggers.set(n,e),!0)}_getTrigger(n){const e=this._triggers.get(n);if(!e)throw function FVe(t){return new ct(3401,!1)}();return e}trigger(n,e,i,r=!0){const o=this._getTrigger(e),s=new J8(this.id,e,n);let a=this._engine.statesByElement.get(n);a||(uc(n,S3),uc(n,S3+"-"+e),this._engine.statesByElement.set(n,a=new Map));let l=a.get(e);const c=new Y8(i,this.id);if(!(i&&i.hasOwnProperty("value"))&&l&&c.absorbOptions(l.options),a.set(e,c),l||(l=Z8),c.value!==$x&&l.value===c.value){if(!function IQe(t,n){const e=Object.keys(t),i=Object.keys(n);if(e.length!=i.length)return!1;for(let r=0;r{VA(n,x),fu(n,C)})}return}const h=Ul(this._engine.playersByElement,n,[]);h.forEach(v=>{v.namespaceId==this.id&&v.triggerName==e&&v.queued&&v.destroy()});let m=o.matchTransition(l.value,c.value,n,c.params),A=!1;if(!m){if(!r)return;m=o.fallbackTransition,A=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:n,triggerName:e,transition:m,fromState:l,toState:c,player:s,isFallbackTransition:A}),A||(uc(n,dre),s.onStart(()=>{c_(n,dre)})),s.onDone(()=>{let v=this.players.indexOf(s);v>=0&&this.players.splice(v,1);const x=this._engine.playersByElement.get(n);if(x){let C=x.indexOf(s);C>=0&&x.splice(C,1)}}),this.players.push(s),h.push(s),s}deregister(n){this._triggers.delete(n),this._engine.statesByElement.forEach(e=>e.delete(n)),this._elementListeners.forEach((e,i)=>{this._elementListeners.set(i,e.filter(r=>r.name!=n))})}clearElementCache(n){this._engine.statesByElement.delete(n),this._elementListeners.delete(n);const e=this._engine.playersByElement.get(n);e&&(e.forEach(i=>i.destroy()),this._engine.playersByElement.delete(n))}_signalRemovalForInnerTriggers(n,e){const i=this._engine.driver.query(n,T3,!0);i.forEach(r=>{if(r[ld])return;const o=this._engine.fetchNamespacesByElement(r);o.size?o.forEach(s=>s.triggerLeaveAnimation(r,e,!1,!0)):this.clearElementCache(r)}),this._engine.afterFlushAnimationsDone(()=>i.forEach(r=>this.clearElementCache(r)))}triggerLeaveAnimation(n,e,i,r){const o=this._engine.statesByElement.get(n),s=new Map;if(o){const a=[];if(o.forEach((l,c)=>{if(s.set(c,l.value),this._triggers.has(c)){const d=this.trigger(n,c,$x,r);d&&a.push(d)}}),a.length)return this._engine.markElementAsRemoved(this.id,n,!0,e,s),i&&Fm(a).onDone(()=>this._engine.processLeaveNode(n)),!0}return!1}prepareLeaveAnimationListeners(n){const e=this._elementListeners.get(n),i=this._engine.statesByElement.get(n);if(e&&i){const r=new Set;e.forEach(o=>{const s=o.name;if(r.has(s))return;r.add(s);const l=this._triggers.get(s).fallbackTransition,c=i.get(s)||Z8,d=new Y8($x),u=new J8(this.id,s,n);this._engine.totalQueuedPlayers++,this._queue.push({element:n,triggerName:s,transition:l,fromState:c,toState:d,player:u,isFallbackTransition:!0})})}}removeNode(n,e){const i=this._engine;if(n.childElementCount&&this._signalRemovalForInnerTriggers(n,e),this.triggerLeaveAnimation(n,e,!0))return;let r=!1;if(i.totalAnimations){const o=i.players.length?i.playersByQueriedElement.get(n):[];if(o&&o.length)r=!0;else{let s=n;for(;s=s.parentNode;)if(i.statesByElement.get(s)){r=!0;break}}}if(this.prepareLeaveAnimationListeners(n),r)i.markElementAsRemoved(this.id,n,!1,e);else{const o=n[ld];(!o||o===ure)&&(i.afterFlush(()=>this.clearElementCache(n)),i.destroyInnerAnimations(n),i._onRemovalComplete(n,e))}}insertNode(n,e){uc(n,this._hostClassName)}drainQueuedTransitions(n){const e=[];return this._queue.forEach(i=>{const r=i.player;if(r.destroyed)return;const o=i.element,s=this._elementListeners.get(o);s&&s.forEach(a=>{if(a.name==i.triggerName){const l=D8(o,i.triggerName,i.fromState.value,i.toState.value);l._data=n,I8(i.player,a.phase,l,a.callback)}}),r.markedForDestroy?this._engine.afterFlush(()=>{r.destroy()}):e.push(i)}),this._queue=[],e.sort((i,r)=>{const o=i.transition.ast.depCount,s=r.transition.ast.depCount;return 0==o||0==s?o-s:this._engine.driver.containsElement(i.element,r.element)?1:-1})}destroy(n){this.players.forEach(e=>e.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,n)}}class EQe{_onRemovalComplete(n,e){this.onRemovalComplete(n,e)}constructor(n,e,i,r){this.bodyNode=n,this.driver=e,this._normalizer=i,this.scheduler=r,this.players=[],this.newHostElements=new Map,this.playersByElement=new Map,this.playersByQueriedElement=new Map,this.statesByElement=new Map,this.disabledNodes=new Set,this.totalAnimations=0,this.totalQueuedPlayers=0,this._namespaceLookup={},this._namespaceList=[],this._flushFns=[],this._whenQuietFns=[],this.namespacesByHostElement=new Map,this.collectedEnterElements=[],this.collectedLeaveElements=[],this.onRemovalComplete=(o,s)=>{}}get queuedPlayers(){const n=[];return this._namespaceList.forEach(e=>{e.players.forEach(i=>{i.queued&&n.push(i)})}),n}createNamespace(n,e){const i=new CQe(n,e,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,e)?this._balanceNamespaceList(i,e):(this.newHostElements.set(e,i),this.collectEnterElement(e)),this._namespaceLookup[n]=i}_balanceNamespaceList(n,e){const i=this._namespaceList,r=this.namespacesByHostElement;if(i.length-1>=0){let s=!1,a=this.driver.getParentElement(e);for(;a;){const l=r.get(a);if(l){const c=i.indexOf(l);i.splice(c+1,0,n),s=!0;break}a=this.driver.getParentElement(a)}s||i.unshift(n)}else i.push(n);return r.set(e,n),n}register(n,e){let i=this._namespaceLookup[n];return i||(i=this.createNamespace(n,e)),i}registerTrigger(n,e,i){let r=this._namespaceLookup[n];r&&r.register(e,i)&&this.totalAnimations++}destroy(n,e){n&&(this.afterFlush(()=>{}),this.afterFlushAnimationsDone(()=>{const i=this._fetchNamespace(n);this.namespacesByHostElement.delete(i.hostElement);const r=this._namespaceList.indexOf(i);r>=0&&this._namespaceList.splice(r,1),i.destroy(e),delete this._namespaceLookup[n]}))}_fetchNamespace(n){return this._namespaceLookup[n]}fetchNamespacesByElement(n){const e=new Set,i=this.statesByElement.get(n);if(i)for(let r of i.values())if(r.namespaceId){const o=this._fetchNamespace(r.namespaceId);o&&e.add(o)}return e}trigger(n,e,i,r){if(P3(e)){const o=this._fetchNamespace(n);if(o)return o.trigger(e,i,r),!0}return!1}insertNode(n,e,i,r){if(!P3(e))return;const o=e[ld];if(o&&o.setForRemoval){o.setForRemoval=!1,o.setForMove=!0;const s=this.collectedLeaveElements.indexOf(e);s>=0&&this.collectedLeaveElements.splice(s,1)}if(n){const s=this._fetchNamespace(n);s&&s.insertNode(e,i)}r&&this.collectEnterElement(e)}collectEnterElement(n){this.collectedEnterElements.push(n)}markElementAsDisabled(n,e){e?this.disabledNodes.has(n)||(this.disabledNodes.add(n),uc(n,X8)):this.disabledNodes.has(n)&&(this.disabledNodes.delete(n),c_(n,X8))}removeNode(n,e,i){if(P3(e)){this.scheduler?.notify();const r=n?this._fetchNamespace(n):null;r?r.removeNode(e,i):this.markElementAsRemoved(n,e,!1,i);const o=this.namespacesByHostElement.get(e);o&&o.id!==n&&o.removeNode(e,i)}else this._onRemovalComplete(e,i)}markElementAsRemoved(n,e,i,r,o){this.collectedLeaveElements.push(e),e[ld]={namespaceId:n,setForRemoval:r,hasAnimation:i,removedBeforeQueried:!1,previousTriggersValues:o}}listen(n,e,i,r,o){return P3(e)?this._fetchNamespace(n).listen(e,i,r,o):()=>{}}_buildInstruction(n,e,i,r,o){return n.transition.build(this.driver,n.element,n.fromState.value,n.toState.value,i,r,n.fromState.options,n.toState.options,e,o)}destroyInnerAnimations(n){let e=this.driver.query(n,T3,!0);e.forEach(i=>this.destroyActiveAnimationsForElement(i)),0!=this.playersByQueriedElement.size&&(e=this.driver.query(n,U8,!0),e.forEach(i=>this.finishActiveQueriedAnimationOnElement(i)))}destroyActiveAnimationsForElement(n){const e=this.playersByElement.get(n);e&&e.forEach(i=>{i.queued?i.markedForDestroy=!0:i.destroy()})}finishActiveQueriedAnimationOnElement(n){const e=this.playersByQueriedElement.get(n);e&&e.forEach(i=>i.finish())}whenRenderingDone(){return new Promise(n=>{if(this.players.length)return Fm(this.players).onDone(()=>n());n()})}processLeaveNode(n){const e=n[ld];if(e&&e.setForRemoval){if(n[ld]=ure,e.namespaceId){this.destroyInnerAnimations(n);const i=this._fetchNamespace(e.namespaceId);i&&i.clearElementCache(n)}this._onRemovalComplete(n,e.setForRemoval)}n.classList?.contains(X8)&&this.markElementAsDisabled(n,!1),this.driver.query(n,".ng-animate-disabled",!0).forEach(i=>{this.markElementAsDisabled(i,!1)})}flush(n=-1){let e=[];if(this.newHostElements.size&&(this.newHostElements.forEach((i,r)=>this._balanceNamespaceList(i,r)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let i=0;ii()),this._flushFns=[],this._whenQuietFns.length){const i=this._whenQuietFns;this._whenQuietFns=[],e.length?Fm(e).onDone(()=>{i.forEach(r=>r())}):i.forEach(r=>r())}}reportError(n){throw function kVe(t){return new ct(3402,!1)}()}_flushAnimations(n,e){const i=new D3,r=[],o=new Map,s=[],a=new Map,l=new Map,c=new Map,d=new Set;this.disabledNodes.forEach(X=>{d.add(X);const Ae=this.driver.query(X,".ng-animate-queued",!0);for(let ke=0;ke{const ke=O8+v++;A.set(Ae,ke),X.forEach(Qe=>uc(Qe,ke))});const x=[],C=new Set,w=new Set;for(let X=0;XC.add(Qe)):w.add(Ae))}const S=new Map,M=mre(h,Array.from(C));M.forEach((X,Ae)=>{const ke=M3+v++;S.set(Ae,ke),X.forEach(Qe=>uc(Qe,ke))}),n.push(()=>{m.forEach((X,Ae)=>{const ke=A.get(Ae);X.forEach(Qe=>c_(Qe,ke))}),M.forEach((X,Ae)=>{const ke=S.get(Ae);X.forEach(Qe=>c_(Qe,ke))}),x.forEach(X=>{this.processLeaveNode(X)})});const B=[],P=[];for(let X=this._namespaceList.length-1;X>=0;X--)this._namespaceList[X].drainQueuedTransitions(e).forEach(ke=>{const Qe=ke.player,ht=ke.element;if(B.push(Qe),this.collectedEnterElements.length){const dt=ht[ld];if(dt&&dt.setForMove){if(dt.previousTriggersValues&&dt.previousTriggersValues.has(ke.triggerName)){const Pt=dt.previousTriggersValues.get(ke.triggerName),Vt=this.statesByElement.get(ke.element);if(Vt&&Vt.has(ke.triggerName)){const Ht=Vt.get(ke.triggerName);Ht.value=Pt,Vt.set(ke.triggerName,Ht)}}return void Qe.destroy()}}const ye=!u||!this.driver.containsElement(u,ht),fe=S.get(ht),ie=A.get(ht),Ne=this._buildInstruction(ke,i,ie,fe,ye);if(Ne.errors&&Ne.errors.length)return void P.push(Ne);if(ye)return Qe.onStart(()=>VA(ht,Ne.fromStyles)),Qe.onDestroy(()=>fu(ht,Ne.toStyles)),void r.push(Qe);if(ke.isFallbackTransition)return Qe.onStart(()=>VA(ht,Ne.fromStyles)),Qe.onDestroy(()=>fu(ht,Ne.toStyles)),void r.push(Qe);const nt=[];Ne.timelines.forEach(dt=>{dt.stretchStartingKeyframe=!0,this.disabledNodes.has(dt.element)||nt.push(dt)}),Ne.timelines=nt,i.append(ht,Ne.timelines),s.push({instruction:Ne,player:Qe,element:ht}),Ne.queriedElements.forEach(dt=>Ul(a,dt,[]).push(Qe)),Ne.preStyleProps.forEach((dt,Pt)=>{if(dt.size){let Vt=l.get(Pt);Vt||l.set(Pt,Vt=new Set),dt.forEach((Ht,$t)=>Vt.add($t))}}),Ne.postStyleProps.forEach((dt,Pt)=>{let Vt=c.get(Pt);Vt||c.set(Pt,Vt=new Set),dt.forEach((Ht,$t)=>Vt.add($t))})});if(P.length){const X=[];P.forEach(Ae=>{X.push(function IVe(t,n){return new ct(3505,!1)}())}),B.forEach(Ae=>Ae.destroy()),this.reportError(X)}const $=new Map,ee=new Map;s.forEach(X=>{const Ae=X.element;i.has(Ae)&&(ee.set(Ae,Ae),this._beforeAnimationBuild(X.player.namespaceId,X.instruction,$))}),r.forEach(X=>{const Ae=X.element;this._getPreviousPlayers(Ae,!1,X.namespaceId,X.triggerName,null).forEach(Qe=>{Ul($,Ae,[]).push(Qe),Qe.destroy()})});const te=x.filter(X=>Are(X,l,c)),re=new Map;fre(re,this.driver,w,c,oh).forEach(X=>{Are(X,l,c)&&te.push(X)});const Ce=new Map;m.forEach((X,Ae)=>{fre(Ce,this.driver,new Set(X),l,"!")}),te.forEach(X=>{const Ae=re.get(X),ke=Ce.get(X);re.set(X,new Map([...Ae?.entries()??[],...ke?.entries()??[]]))});const we=[],j=[],me={};s.forEach(X=>{const{element:Ae,player:ke,instruction:Qe}=X;if(i.has(Ae)){if(d.has(Ae))return ke.onDestroy(()=>fu(Ae,Qe.toStyles)),ke.disabled=!0,ke.overrideTotalTime(Qe.totalTime),void r.push(ke);let ht=me;if(ee.size>1){let fe=Ae;const ie=[];for(;fe=fe.parentNode;){const Ne=ee.get(fe);if(Ne){ht=Ne;break}ie.push(fe)}ie.forEach(Ne=>ee.set(Ne,ht))}const ye=this._buildAnimation(ke.namespaceId,Qe,$,o,Ce,re);if(ke.setRealPlayer(ye),ht===me)we.push(ke);else{const fe=this.playersByElement.get(ht);fe&&fe.length&&(ke.parentPlayer=Fm(fe)),r.push(ke)}}else VA(Ae,Qe.fromStyles),ke.onDestroy(()=>fu(Ae,Qe.toStyles)),j.push(ke),d.has(Ae)&&r.push(ke)}),j.forEach(X=>{const Ae=o.get(X.element);if(Ae&&Ae.length){const ke=Fm(Ae);X.setRealPlayer(ke)}}),r.forEach(X=>{X.parentPlayer?X.syncPlayerEvents(X.parentPlayer):X.destroy()});for(let X=0;X!ye.destroyed);ht.length?FQe(this,Ae,ht):this.processLeaveNode(Ae)}return x.length=0,we.forEach(X=>{this.players.push(X),X.onDone(()=>{X.destroy();const Ae=this.players.indexOf(X);this.players.splice(Ae,1)}),X.play()}),we}afterFlush(n){this._flushFns.push(n)}afterFlushAnimationsDone(n){this._whenQuietFns.push(n)}_getPreviousPlayers(n,e,i,r,o){let s=[];if(e){const a=this.playersByQueriedElement.get(n);a&&(s=a)}else{const a=this.playersByElement.get(n);if(a){const l=!o||o==$x;a.forEach(c=>{c.queued||!l&&c.triggerName!=r||s.push(c)})}}return(i||r)&&(s=s.filter(a=>!(i&&i!=a.namespaceId||r&&r!=a.triggerName))),s}_beforeAnimationBuild(n,e,i){const o=e.element,s=e.isRemovalTransition?void 0:n,a=e.isRemovalTransition?void 0:e.triggerName;for(const l of e.timelines){const c=l.element,d=c!==o,u=Ul(i,c,[]);this._getPreviousPlayers(c,d,s,a,e.toState).forEach(m=>{const A=m.getRealPlayer();A.beforeDestroy&&A.beforeDestroy(),m.destroy(),u.push(m)})}VA(o,e.fromStyles)}_buildAnimation(n,e,i,r,o,s){const a=e.triggerName,l=e.element,c=[],d=new Set,u=new Set,h=e.timelines.map(A=>{const v=A.element;d.add(v);const x=v[ld];if(x&&x.removedBeforeQueried)return new y1(A.duration,A.delay);const C=v!==l,w=function kQe(t){const n=[];return pre(t,n),n}((i.get(v)||wQe).map($=>$.getRealPlayer())).filter($=>!!$.element&&$.element===v),S=o.get(v),M=s.get(v),B=Wie(this._normalizer,A.keyframes,S,M),P=this._buildPlayer(A,B,w);if(A.subTimeline&&r&&u.add(v),C){const $=new J8(n,a,v);$.setRealPlayer(P),c.push($)}return P});c.forEach(A=>{Ul(this.playersByQueriedElement,A.element,[]).push(A),A.onDone(()=>function MQe(t,n,e){let i=t.get(n);if(i){if(i.length){const r=i.indexOf(e);i.splice(r,1)}0==i.length&&t.delete(n)}return i}(this.playersByQueriedElement,A.element,A))}),d.forEach(A=>uc(A,Zie));const m=Fm(h);return m.onDestroy(()=>{d.forEach(A=>c_(A,Zie)),fu(l,e.toStyles)}),u.forEach(A=>{Ul(r,A,[]).push(m)}),m}_buildPlayer(n,e,i){return e.length>0?this.driver.animate(n.element,e,n.duration,n.delay,n.easing,i):new y1(n.duration,n.delay)}}class J8{constructor(n,e,i){this.namespaceId=n,this.triggerName=e,this.element=i,this._player=new y1,this._containsRealPlayer=!1,this._queuedCallbacks=new Map,this.destroyed=!1,this.parentPlayer=null,this.markedForDestroy=!1,this.disabled=!1,this.queued=!0,this.totalTime=0}setRealPlayer(n){this._containsRealPlayer||(this._player=n,this._queuedCallbacks.forEach((e,i)=>{e.forEach(r=>I8(n,i,void 0,r))}),this._queuedCallbacks.clear(),this._containsRealPlayer=!0,this.overrideTotalTime(n.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(n){this.totalTime=n}syncPlayerEvents(n){const e=this._player;e.triggerCallback&&n.onStart(()=>e.triggerCallback("start")),n.onDone(()=>this.finish()),n.onDestroy(()=>this.destroy())}_queueEvent(n,e){Ul(this._queuedCallbacks,n,[]).push(e)}onDone(n){this.queued&&this._queueEvent("done",n),this._player.onDone(n)}onStart(n){this.queued&&this._queueEvent("start",n),this._player.onStart(n)}onDestroy(n){this.queued&&this._queueEvent("destroy",n),this._player.onDestroy(n)}init(){this._player.init()}hasStarted(){return!this.queued&&this._player.hasStarted()}play(){!this.queued&&this._player.play()}pause(){!this.queued&&this._player.pause()}restart(){!this.queued&&this._player.restart()}finish(){this._player.finish()}destroy(){this.destroyed=!0,this._player.destroy()}reset(){!this.queued&&this._player.reset()}setPosition(n){this.queued||this._player.setPosition(n)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(n){const e=this._player;e.triggerCallback&&e.triggerCallback(n)}}function P3(t){return t&&1===t.nodeType}function hre(t,n){const e=t.style.display;return t.style.display=n??"none",e}function fre(t,n,e,i,r){const o=[];e.forEach(l=>o.push(hre(l)));const s=[];i.forEach((l,c)=>{const d=new Map;l.forEach(u=>{const h=n.computeStyle(c,u,r);d.set(u,h),(!h||0==h.length)&&(c[ld]=xQe,s.push(c))}),t.set(c,d)});let a=0;return e.forEach(l=>hre(l,o[a++])),s}function mre(t,n){const e=new Map;if(t.forEach(a=>e.set(a,[])),0==n.length)return e;const r=new Set(n),o=new Map;function s(a){if(!a)return 1;let l=o.get(a);if(l)return l;const c=a.parentNode;return l=e.has(c)?c:r.has(c)?1:s(c),o.set(a,l),l}return n.forEach(a=>{const l=s(a);1!==l&&e.get(l).push(a)}),e}function uc(t,n){t.classList?.add(n)}function c_(t,n){t.classList?.remove(n)}function FQe(t,n,e){Fm(e).onDone(()=>t.processLeaveNode(n))}function pre(t,n){for(let e=0;er.add(o)):n.set(t,i),e.delete(t),!0}class jx{constructor(n,e,i,r){this._driver=e,this._normalizer=i,this._triggerCache={},this.onRemovalComplete=(o,s)=>{},this._transitionEngine=new EQe(n.body,e,i,r),this._timelineEngine=new gQe(n.body,e,i),this._transitionEngine.onRemovalComplete=(o,s)=>this.onRemovalComplete(o,s)}registerTrigger(n,e,i,r,o){const s=n+"-"+r;let a=this._triggerCache[s];if(!a){const l=[],d=G8(this._driver,o,l,[]);if(l.length)throw function vVe(t,n){return new ct(3404,!1)}();a=function fQe(t,n,e){return new mQe(t,n,e)}(r,d,this._normalizer),this._triggerCache[s]=a}this._transitionEngine.registerTrigger(e,r,a)}register(n,e){this._transitionEngine.register(n,e)}destroy(n,e){this._transitionEngine.destroy(n,e)}onInsert(n,e,i,r){this._transitionEngine.insertNode(n,e,i,r)}onRemove(n,e,i){this._transitionEngine.removeNode(n,e,i)}disableAnimations(n,e){this._transitionEngine.markElementAsDisabled(n,e)}process(n,e,i,r){if("@"==i.charAt(0)){const[o,s]=$ie(i);this._timelineEngine.command(o,e,s,r)}else this._transitionEngine.trigger(n,e,i,r)}listen(n,e,i,r,o){if("@"==i.charAt(0)){const[s,a]=$ie(i);return this._timelineEngine.listen(s,e,a,o)}return this._transitionEngine.listen(n,e,i,r,o)}flush(n=-1){this._transitionEngine.flush(n)}get players(){return[...this._transitionEngine.players,...this._timelineEngine.players]}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}afterFlushAnimationsDone(n){this._transitionEngine.afterFlushAnimationsDone(n)}}class Kx{static{this.initialStylesByElement=new WeakMap}constructor(n,e,i){this._element=n,this._startStyles=e,this._endStyles=i,this._state=0;let r=Kx.initialStylesByElement.get(n);r||Kx.initialStylesByElement.set(n,r=new Map),this._initialStyles=r}start(){this._state<1&&(this._startStyles&&fu(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(fu(this._element,this._initialStyles),this._endStyles&&(fu(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(Kx.initialStylesByElement.delete(this._element),this._startStyles&&(VA(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(VA(this._element,this._endStyles),this._endStyles=null),fu(this._element,this._initialStyles),this._state=3)}}const _re="@.disabled";class vre{constructor(n,e,i,r){this.namespaceId=n,this.delegate=e,this.engine=i,this._onDestroy=r,this.\u0275type=0}get data(){return this.delegate.data}destroyNode(n){this.delegate.destroyNode?.(n)}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.engine.afterFlushAnimationsDone(()=>{queueMicrotask(()=>{this.delegate.destroy()})}),this._onDestroy?.()}createElement(n,e){return this.delegate.createElement(n,e)}createComment(n){return this.delegate.createComment(n)}createText(n){return this.delegate.createText(n)}appendChild(n,e){this.delegate.appendChild(n,e),this.engine.onInsert(this.namespaceId,e,n,!1)}insertBefore(n,e,i,r=!0){this.delegate.insertBefore(n,e,i),this.engine.onInsert(this.namespaceId,e,n,r)}removeChild(n,e,i){this.engine.onRemove(this.namespaceId,e,this.delegate)}selectRootElement(n,e){return this.delegate.selectRootElement(n,e)}parentNode(n){return this.delegate.parentNode(n)}nextSibling(n){return this.delegate.nextSibling(n)}setAttribute(n,e,i,r){this.delegate.setAttribute(n,e,i,r)}removeAttribute(n,e,i){this.delegate.removeAttribute(n,e,i)}addClass(n,e){this.delegate.addClass(n,e)}removeClass(n,e){this.delegate.removeClass(n,e)}setStyle(n,e,i,r){this.delegate.setStyle(n,e,i,r)}removeStyle(n,e,i){this.delegate.removeStyle(n,e,i)}setProperty(n,e,i){"@"==e.charAt(0)&&e==_re?this.disableAnimations(n,!!i):this.delegate.setProperty(n,e,i)}setValue(n,e){this.delegate.setValue(n,e)}listen(n,e,i){return this.delegate.listen(n,e,i)}disableAnimations(n,e){this.engine.disableAnimations(n,e)}}class RQe extends vre{constructor(n,e,i,r,o){super(e,i,r,o),this.factory=n,this.namespaceId=e}setProperty(n,e,i){"@"==e.charAt(0)?"."==e.charAt(1)&&e==_re?this.disableAnimations(n,i=void 0===i||!!i):this.engine.process(this.namespaceId,n,e.slice(1),i):this.delegate.setProperty(n,e,i)}listen(n,e,i){if("@"==e.charAt(0)){const r=function LQe(t){switch(t){case"body":return document.body;case"document":return document;case"window":return window;default:return t}}(n);let o=e.slice(1),s="";return"@"!=o.charAt(0)&&([o,s]=function PQe(t){const n=t.indexOf(".");return[t.substring(0,n),t.slice(n+1)]}(o)),this.engine.listen(this.namespaceId,r,o,s,a=>{this.factory.scheduleListenerCallback(a._data||-1,i,a)})}return this.delegate.listen(n,e,i)}}class NQe{constructor(n,e,i){this.delegate=n,this.engine=e,this._zone=i,this._currentId=0,this._microtaskId=1,this._animationCallbacksBuffer=[],this._rendererCache=new Map,this._cdRecurDepth=0,e.onRemovalComplete=(r,o)=>{const s=o?.parentNode(r);s&&o.removeChild(s,r)}}createRenderer(n,e){const r=this.delegate.createRenderer(n,e);if(!n||!e?.data?.animation){const c=this._rendererCache;let d=c.get(r);return d||(d=new vre("",r,this.engine,()=>c.delete(r)),c.set(r,d)),d}const o=e.id,s=e.id+"-"+this._currentId;this._currentId++,this.engine.register(s,n);const a=c=>{Array.isArray(c)?c.forEach(a):this.engine.registerTrigger(o,s,n,c.name,c)};return e.data.animation.forEach(a),new RQe(this,s,r,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){queueMicrotask(()=>{this._microtaskId++})}scheduleListenerCallback(n,e,i){if(n>=0&&ne(i));const r=this._animationCallbacksBuffer;0==r.length&&queueMicrotask(()=>{this._zone.run(()=>{r.forEach(o=>{const[s,a]=o;s(a)}),this._animationCallbacksBuffer=[]})}),r.push([e,i])}end(){this._cdRecurDepth--,0==this._cdRecurDepth&&this._zone.runOutsideAngular(()=>{this._scheduleCountTask(),this.engine.flush(this._microtaskId)}),this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.engine.whenRenderingDone()}}let OQe=(()=>{class t extends jx{constructor(e,i,r){super(e,i,r,Ut(H2,{optional:!0}))}ngOnDestroy(){this.flush()}static{this.\u0275fac=function(i){return new(i||t)(oe(xi),oe(P8),oe(N8))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac})}}return t})();const yre=[{provide:N8,useFactory:function UQe(){return new tre}},{provide:jx,useClass:OQe},{provide:YI,useFactory:function HQe(t,n,e){return new NQe(t,n,e)},deps:[DD,jx,Fn]}],wre=[{provide:P8,useClass:L8},{provide:ts,useValue:"NoopAnimations"},...yre];let t6=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({providers:wre,imports:[gz]})}}return t})();const xre=["*"],Ere=["unscopedContent"],QQe=["text"],zQe=[[["","matListItemAvatar",""],["","matListItemIcon",""]],[["","matListItemTitle",""]],[["","matListItemLine",""]],"*",[["","matListItemMeta",""]],[["mat-divider"]]],GQe=["[matListItemAvatar],[matListItemIcon]","[matListItemTitle]","[matListItemLine]","*","[matListItemMeta]","mat-divider"],Mre=new ot("ListOption");let Sre=(()=>{class t{constructor(e){this._elementRef=e}static{this.\u0275fac=function(i){return new(i||t)(W(Un))}}static{this.\u0275dir=zt({type:t,selectors:[["","matListItemTitle",""]],hostAttrs:[1,"mat-mdc-list-item-title","mdc-list-item__primary-text"],standalone:!0})}}return t})(),Tre=(()=>{class t{constructor(e){this._elementRef=e}static{this.\u0275fac=function(i){return new(i||t)(W(Un))}}static{this.\u0275dir=zt({type:t,selectors:[["","matListItemLine",""]],hostAttrs:[1,"mat-mdc-list-item-line","mdc-list-item__secondary-text"],standalone:!0})}}return t})(),lze=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275dir=zt({type:t,selectors:[["","matListItemMeta",""]],hostAttrs:[1,"mat-mdc-list-item-meta","mdc-list-item__end"],standalone:!0})}}return t})(),Fre=(()=>{class t{constructor(e){this._listOption=e}_isAlignedAtStart(){return!this._listOption||"after"===this._listOption?._getTogglePosition()}static{this.\u0275fac=function(i){return new(i||t)(W(Mre,8))}}static{this.\u0275dir=zt({type:t,hostVars:4,hostBindings:function(i,r){2&i&&xn("mdc-list-item__start",r._isAlignedAtStart())("mdc-list-item__end",!r._isAlignedAtStart())},standalone:!0})}}return t})(),cze=(()=>{class t extends Fre{static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=_r(t)))(r||t)}})()}static{this.\u0275dir=zt({type:t,selectors:[["","matListItemAvatar",""]],hostAttrs:[1,"mat-mdc-list-item-avatar"],standalone:!0,features:[di]})}}return t})(),dze=(()=>{class t extends Fre{static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=_r(t)))(r||t)}})()}static{this.\u0275dir=zt({type:t,selectors:[["","matListItemIcon",""]],hostAttrs:[1,"mat-mdc-list-item-icon"],standalone:!0,features:[di]})}}return t})();const uze=new ot("MAT_LIST_CONFIG");let d_=(()=>{class t{constructor(){this._isNonInteractive=!0,this._disableRipple=!1,this._disabled=!1,this._defaultOptions=Ut(uze,{optional:!0})}get disableRipple(){return this._disableRipple}set disableRipple(e){this._disableRipple=$s(e)}get disabled(){return this._disabled}set disabled(e){this._disabled=$s(e)}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275dir=zt({type:t,hostVars:1,hostBindings:function(i,r){2&i&&oi("aria-disabled",r.disabled)},inputs:{disableRipple:"disableRipple",disabled:"disabled"},standalone:!0})}}return t})(),n6=(()=>{class t{set lines(e){this._explicitLines=Qf(e,null),this._updateItemLines(!1)}get disableRipple(){return this.disabled||this._disableRipple||this._noopAnimations||!!this._listBase?.disableRipple}set disableRipple(e){this._disableRipple=$s(e)}get disabled(){return this._disabled||!!this._listBase?.disabled}set disabled(e){this._disabled=$s(e)}get rippleDisabled(){return this.disableRipple||!!this.rippleConfig.disabled}constructor(e,i,r,o,s,a){this._elementRef=e,this._ngZone=i,this._listBase=r,this._platform=o,this._explicitLines=null,this._disableRipple=!1,this._disabled=!1,this._subscriptions=new on,this._rippleRenderer=null,this._hasUnscopedTextContent=!1,this.rippleConfig=s||{},this._hostElement=this._elementRef.nativeElement,this._isButtonElement="button"===this._hostElement.nodeName.toLowerCase(),this._noopAnimations="NoopAnimations"===a,r&&!r._isNonInteractive&&this._initInteractiveListItem(),this._isButtonElement&&!this._hostElement.hasAttribute("type")&&this._hostElement.setAttribute("type","button")}ngAfterViewInit(){this._monitorProjectedLinesAndTitle(),this._updateItemLines(!0)}ngOnDestroy(){this._subscriptions.unsubscribe(),null!==this._rippleRenderer&&this._rippleRenderer._removeTriggerEvents()}_hasIconOrAvatar(){return!(!this._avatars.length&&!this._icons.length)}_initInteractiveListItem(){this._hostElement.classList.add("mat-mdc-list-item-interactive"),this._rippleRenderer=new v1(this,this._ngZone,this._hostElement,this._platform),this._rippleRenderer.setupTriggerEvents(this._hostElement)}_monitorProjectedLinesAndTitle(){this._ngZone.runOutsideAngular(()=>{this._subscriptions.add(Sl(this._lines.changes,this._titles.changes).subscribe(()=>this._updateItemLines(!1)))})}_updateItemLines(e){if(!this._lines||!this._titles||!this._unscopedContent)return;e&&this._checkDomForUnscopedTextContent();const i=this._explicitLines??this._inferLinesFromContent(),r=this._unscopedContent.nativeElement;if(this._hostElement.classList.toggle("mat-mdc-list-item-single-line",i<=1),this._hostElement.classList.toggle("mdc-list-item--with-one-line",i<=1),this._hostElement.classList.toggle("mdc-list-item--with-two-lines",2===i),this._hostElement.classList.toggle("mdc-list-item--with-three-lines",3===i),this._hasUnscopedTextContent){const o=0===this._titles.length&&1===i;r.classList.toggle("mdc-list-item__primary-text",o),r.classList.toggle("mdc-list-item__secondary-text",!o)}else r.classList.remove("mdc-list-item__primary-text"),r.classList.remove("mdc-list-item__secondary-text")}_inferLinesFromContent(){let e=this._titles.length+this._lines.length;return this._hasUnscopedTextContent&&(e+=1),e}_checkDomForUnscopedTextContent(){this._hasUnscopedTextContent=Array.from(this._unscopedContent.nativeElement.childNodes).filter(e=>e.nodeType!==e.COMMENT_NODE).some(e=>!(!e.textContent||!e.textContent.trim()))}static{this.\u0275fac=function(i){return new(i||t)(W(Un),W(Fn),W(d_,8),W(Or),W(L0,8),W(ts,8))}}static{this.\u0275dir=zt({type:t,contentQueries:function(i,r,o){if(1&i&&(Ir(o,cze,4),Ir(o,dze,4)),2&i){let s;mn(s=pn())&&(r._avatars=s),mn(s=pn())&&(r._icons=s)}},hostVars:4,hostBindings:function(i,r){2&i&&(oi("aria-disabled",r.disabled)("disabled",r._isButtonElement&&r.disabled||null),xn("mdc-list-item--disabled",r.disabled))},inputs:{lines:"lines",disableRipple:"disableRipple",disabled:"disabled"},standalone:!0})}}return t})(),kre=(()=>{class t extends d_{static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=_r(t)))(r||t)}})()}static{this.\u0275cmp=At({type:t,selectors:[["mat-list"]],hostAttrs:[1,"mat-mdc-list","mat-mdc-list-base","mdc-list"],exportAs:["matList"],standalone:!0,features:[ni([{provide:d_,useExisting:t}]),di,xr],ngContentSelectors:xre,decls:1,vars:0,template:function(i,r){1&i&&(mo(),zn(0))},styles:['@media screen and (forced-colors: active),(-ms-high-contrast: active){.mdc-list-divider::after{content:"";display:block;border-bottom-width:1px;border-bottom-style:solid}}.mdc-list{margin:0;padding:8px 0;list-style-type:none}.mdc-list:focus{outline:none}.mdc-list-item__wrapper{display:block}.mdc-list-item{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;align-items:stretch;cursor:pointer}.mdc-list-item:focus{outline:none}.mdc-list-item.mdc-list-item--with-one-line{height:48px}.mdc-list-item.mdc-list-item--with-two-lines{height:64px}.mdc-list-item.mdc-list-item--with-three-lines{height:88px}.mdc-list-item.mdc-list-item--with-one-line .mdc-list-item__start{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--with-three-lines .mdc-list-item__start{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--with-one-line .mdc-list-item__end{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-two-lines .mdc-list-item__end{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--disabled,.mdc-list-item.mdc-list-item--non-interactive{cursor:auto}.mdc-list-item:not(.mdc-list-item--selected):focus::before,.mdc-list-item.mdc-ripple-upgraded--background-focused::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}@media screen and (forced-colors: active){.mdc-list-item:not(.mdc-list-item--selected):focus::before,.mdc-list-item.mdc-ripple-upgraded--background-focused::before{border-color:CanvasText}}.mdc-list-item.mdc-list-item--selected::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:3px double rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}@media screen and (forced-colors: active){.mdc-list-item.mdc-list-item--selected::before{border-color:CanvasText}}.mdc-list-item.mdc-list-item--selected:focus::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:3px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}@media screen and (forced-colors: active){.mdc-list-item.mdc-list-item--selected:focus::before{border-color:CanvasText}}a.mdc-list-item{color:inherit;text-decoration:none}.mdc-list-item__start{fill:currentColor;flex-shrink:0;pointer-events:none}.mdc-list-item__end{flex-shrink:0;pointer-events:none}.mdc-list-item__content{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;align-self:center;flex:1;pointer-events:none}.mdc-list-item--with-two-lines .mdc-list-item__content,.mdc-list-item--with-three-lines .mdc-list-item__content{align-self:stretch}.mdc-list-item__content[for]{pointer-events:none}.mdc-list-item__primary-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mdc-list-item--with-two-lines .mdc-list-item__primary-text,.mdc-list-item--with-three-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before,.mdc-list-item--with-three-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after,.mdc-list-item--with-three-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item__secondary-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;display:block;margin-top:0;line-height:normal}.mdc-list-item__secondary-text::before{display:inline-block;width:0;height:20px;content:"";vertical-align:0}.mdc-list-item--with-three-lines .mdc-list-item__secondary-text{white-space:normal;line-height:20px}.mdc-list-item--with-overline .mdc-list-item__secondary-text{white-space:nowrap;line-height:auto}.mdc-list-item__overline-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:24px;content:"";vertical-align:0}.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-three-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-three-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-three-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-avatar.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-avatar.mdc-list-item,.mdc-list-item--with-leading-avatar.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-avatar .mdc-list-item__start{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-leading-avatar .mdc-list-item__start,.mdc-list-item--with-leading-avatar .mdc-list-item__start[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-avatar.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-avatar .mdc-list-item__start{border-radius:50%}.mdc-list-item--with-leading-icon.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-icon.mdc-list-item,.mdc-list-item--with-leading-icon.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-icon .mdc-list-item__start{margin-left:16px;margin-right:32px}[dir=rtl] .mdc-list-item--with-leading-icon .mdc-list-item__start,.mdc-list-item--with-leading-icon .mdc-list-item__start[dir=rtl]{margin-left:32px;margin-right:16px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-icon.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-thumbnail.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-thumbnail.mdc-list-item,.mdc-list-item--with-leading-thumbnail.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-thumbnail .mdc-list-item__start{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-leading-thumbnail .mdc-list-item__start,.mdc-list-item--with-leading-thumbnail .mdc-list-item__start[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-image.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-image.mdc-list-item,.mdc-list-item--with-leading-image.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-image .mdc-list-item__start{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-leading-image .mdc-list-item__start,.mdc-list-item--with-leading-image .mdc-list-item__start[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-image.mdc-list-item--with-one-line{height:72px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:8px}.mdc-list-item--with-leading-video.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-video.mdc-list-item,.mdc-list-item--with-leading-video.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-video .mdc-list-item__start{margin-left:0;margin-right:16px}[dir=rtl] .mdc-list-item--with-leading-video .mdc-list-item__start,.mdc-list-item--with-leading-video .mdc-list-item__start[dir=rtl]{margin-left:16px;margin-right:0}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-video.mdc-list-item--with-one-line{height:72px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-checkbox.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-checkbox.mdc-list-item,.mdc-list-item--with-leading-checkbox.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-checkbox .mdc-list-item__start{margin-left:8px;margin-right:24px}[dir=rtl] .mdc-list-item--with-leading-checkbox .mdc-list-item__start,.mdc-list-item--with-leading-checkbox .mdc-list-item__start[dir=rtl]{margin-left:24px;margin-right:8px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:8px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-radio.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-radio.mdc-list-item,.mdc-list-item--with-leading-radio.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-radio .mdc-list-item__start{margin-left:8px;margin-right:24px}[dir=rtl] .mdc-list-item--with-leading-radio .mdc-list-item__start,.mdc-list-item--with-leading-radio .mdc-list-item__start[dir=rtl]{margin-left:24px;margin-right:8px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:8px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-radio.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-switch.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-switch.mdc-list-item,.mdc-list-item--with-leading-switch.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-switch .mdc-list-item__start{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-leading-switch .mdc-list-item__start,.mdc-list-item--with-leading-switch .mdc-list-item__start[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:16px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-switch.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-trailing-icon.mdc-list-item{padding-left:auto;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-icon.mdc-list-item,.mdc-list-item--with-trailing-icon.mdc-list-item[dir=rtl]{padding-left:0;padding-right:auto}.mdc-list-item--with-trailing-icon .mdc-list-item__end{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-trailing-icon .mdc-list-item__end,.mdc-list-item--with-trailing-icon .mdc-list-item__end[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-trailing-meta.mdc-list-item--with-two-lines .mdc-list-item__end{align-self:flex-start;margin-top:0}.mdc-list-item--with-trailing-meta.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:0}.mdc-list-item--with-trailing-meta.mdc-list-item{padding-left:auto;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-meta.mdc-list-item,.mdc-list-item--with-trailing-meta.mdc-list-item[dir=rtl]{padding-left:0;padding-right:auto}.mdc-list-item--with-trailing-meta .mdc-list-item__end{margin-left:28px;margin-right:16px}[dir=rtl] .mdc-list-item--with-trailing-meta .mdc-list-item__end,.mdc-list-item--with-trailing-meta .mdc-list-item__end[dir=rtl]{margin-left:16px;margin-right:28px}.mdc-list-item--with-trailing-meta.mdc-list-item--with-two-lines .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-trailing-meta.mdc-list-item--with-two-lines .mdc-list-item__end::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-trailing-meta.mdc-list-item--with-three-lines .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-trailing-meta.mdc-list-item--with-three-lines .mdc-list-item__end::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-trailing-meta .mdc-list-item__end{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-caption-font-family);font-size:var(--mdc-typography-caption-font-size);line-height:var(--mdc-typography-caption-line-height);font-weight:var(--mdc-typography-caption-font-weight);letter-spacing:var(--mdc-typography-caption-letter-spacing);text-decoration:var(--mdc-typography-caption-text-decoration);text-transform:var(--mdc-typography-caption-text-transform)}.mdc-list-item--with-trailing-checkbox.mdc-list-item{padding-left:auto;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-checkbox.mdc-list-item,.mdc-list-item--with-trailing-checkbox.mdc-list-item[dir=rtl]{padding-left:0;padding-right:auto}.mdc-list-item--with-trailing-checkbox .mdc-list-item__end{margin-left:24px;margin-right:8px}[dir=rtl] .mdc-list-item--with-trailing-checkbox .mdc-list-item__end,.mdc-list-item--with-trailing-checkbox .mdc-list-item__end[dir=rtl]{margin-left:8px;margin-right:24px}.mdc-list-item--with-trailing-checkbox.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:8px}.mdc-list-item--with-trailing-radio.mdc-list-item{padding-left:auto;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-radio.mdc-list-item,.mdc-list-item--with-trailing-radio.mdc-list-item[dir=rtl]{padding-left:0;padding-right:auto}.mdc-list-item--with-trailing-radio .mdc-list-item__end{margin-left:24px;margin-right:8px}[dir=rtl] .mdc-list-item--with-trailing-radio .mdc-list-item__end,.mdc-list-item--with-trailing-radio .mdc-list-item__end[dir=rtl]{margin-left:8px;margin-right:24px}.mdc-list-item--with-trailing-radio.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:8px}.mdc-list-item--with-trailing-switch.mdc-list-item{padding-left:auto;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-switch.mdc-list-item,.mdc-list-item--with-trailing-switch.mdc-list-item[dir=rtl]{padding-left:0;padding-right:auto}.mdc-list-item--with-trailing-switch .mdc-list-item__end{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-trailing-switch .mdc-list-item__end,.mdc-list-item--with-trailing-switch .mdc-list-item__end[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-trailing-switch.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:16px}.mdc-list-item--with-overline.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-overline.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:20px;content:"";vertical-align:0}.mdc-list-item--with-overline.mdc-list-item--with-three-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-overline.mdc-list-item--with-three-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:20px;content:"";vertical-align:0}.mdc-list-item{padding-left:16px;padding-right:16px}[dir=rtl] .mdc-list-item,.mdc-list-item[dir=rtl]{padding-left:16px;padding-right:16px}.mdc-list-group .mdc-deprecated-list{padding:0}.mdc-list-group__subheader{margin:calc((3rem - 1.5rem)/2) 16px}.mdc-list-divider{padding:0;background-clip:content-box}.mdc-list-divider.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-text.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-icon.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-image.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-avatar.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-switch.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-radio.mdc-list-divider--with-leading-inset{padding-left:16px;padding-right:auto}[dir=rtl] .mdc-list-divider.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-text.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-icon.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-image.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-avatar.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-switch.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-radio.mdc-list-divider--with-leading-inset,.mdc-list-divider.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-text.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-icon.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-image.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-avatar.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-switch.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-radio.mdc-list-divider--with-leading-inset[dir=rtl]{padding-left:auto;padding-right:16px}.mdc-list-divider.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-text.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-icon.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-image.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-avatar.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-switch.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-radio.mdc-list-divider--with-trailing-inset{padding-left:auto;padding-right:16px}[dir=rtl] .mdc-list-divider.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-text.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-icon.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-image.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-avatar.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-switch.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-radio.mdc-list-divider--with-trailing-inset,.mdc-list-divider.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-text.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-icon.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-image.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-avatar.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-switch.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-radio.mdc-list-divider--with-trailing-inset[dir=rtl]{padding-left:16px;padding-right:auto}.mdc-list-divider--with-leading-video.mdc-list-divider--with-leading-inset{padding-left:0px;padding-right:auto}[dir=rtl] .mdc-list-divider--with-leading-video.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-video.mdc-list-divider--with-leading-inset[dir=rtl]{padding-left:auto;padding-right:0px}[dir=rtl] .mdc-list-divider,.mdc-list-divider[dir=rtl]{padding:0}.mdc-list-item{background-color:var(--mdc-list-list-item-container-color)}.mdc-list-item.mdc-list-item--selected{background-color:var(--mdc-list-list-item-selected-container-color)}.mdc-list-item--with-one-line{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item--with-one-line.mdc-list-item--with-leading-avatar,.mdc-list-item--with-one-line.mdc-list-item--with-leading-icon,.mdc-list-item--with-one-line.mdc-list-item--with-leading-thumbnail,.mdc-list-item--with-one-line.mdc-list-item--with-leading-checkbox,.mdc-list-item--with-one-line.mdc-list-item--with-leading-radio,.mdc-list-item--with-one-line.mdc-list-item--with-leading-switch{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item--with-one-line.mdc-list-item--with-leading-image,.mdc-list-item--with-one-line.mdc-list-item--with-leading-video{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item--with-two-lines{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item--with-two-lines.mdc-list-item--with-leading-avatar,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-icon,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-thumbnail,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-checkbox,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-radio,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-switch,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-image,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-video{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item--with-three-lines{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item.mdc-list-item--with-one-line{height:var(--mdc-list-list-item-one-line-container-height)}.mdc-list-item.mdc-list-item--with-two-lines{height:var(--mdc-list-list-item-two-line-container-height)}.mdc-list-item.mdc-list-item--with-three-lines{height:var(--mdc-list-list-item-three-line-container-height)}.mdc-list-item__primary-text{color:var(--mdc-list-list-item-label-text-color)}.mdc-list-item__primary-text{font-family:var(--mdc-list-list-item-label-text-font);line-height:var(--mdc-list-list-item-label-text-line-height);font-size:var(--mdc-list-list-item-label-text-size);font-weight:var(--mdc-list-list-item-label-text-weight);letter-spacing:var(--mdc-list-list-item-label-text-tracking)}.mdc-list-item__secondary-text{color:var(--mdc-list-list-item-supporting-text-color)}.mdc-list-item__secondary-text{font-family:var(--mdc-list-list-item-supporting-text-font);line-height:var(--mdc-list-list-item-supporting-text-line-height);font-size:var(--mdc-list-list-item-supporting-text-size);font-weight:var(--mdc-list-list-item-supporting-text-weight);letter-spacing:var(--mdc-list-list-item-supporting-text-tracking)}.mdc-list-item--with-leading-icon .mdc-list-item__start{color:var(--mdc-list-list-item-leading-icon-color)}.mdc-list-item--with-leading-icon .mdc-list-item__start{width:var(--mdc-list-list-item-leading-icon-size);height:var(--mdc-list-list-item-leading-icon-size)}.mdc-list-item--with-leading-icon .mdc-list-item__start>i{font-size:var(--mdc-list-list-item-leading-icon-size)}.mdc-list-item--with-leading-icon .mdc-list-item__start .mdc-list-item__icon{font-size:var(--mdc-list-list-item-leading-icon-size);width:var(--mdc-list-list-item-leading-icon-size);height:var(--mdc-list-list-item-leading-icon-size)}.mdc-list-item--with-leading-icon .mdc-list-item__start .mdc-list-item__icon,.mdc-list-item--with-leading-icon .mdc-list-item__start .mdc-list-item__icon>.materialdesignWizIconSvgsSvgIcon{display:block}.mdc-list-item--with-leading-avatar .mdc-list-item__start{width:var(--mdc-list-list-item-leading-avatar-size);height:var(--mdc-list-list-item-leading-avatar-size)}.mdc-list-item.mdc-list-item--with-trailing-meta .mdc-list-item__end{color:var(--mdc-list-list-item-trailing-supporting-text-color)}.mdc-list-item--with-trailing-meta .mdc-list-item__end{font-family:var(--mdc-list-list-item-trailing-supporting-text-font);line-height:var(--mdc-list-list-item-trailing-supporting-text-line-height);font-size:var(--mdc-list-list-item-trailing-supporting-text-size);font-weight:var(--mdc-list-list-item-trailing-supporting-text-weight);letter-spacing:var(--mdc-list-list-item-trailing-supporting-text-tracking)}.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mdc-list-list-item-trailing-icon-color)}.mdc-list-item--with-trailing-icon .mdc-list-item__end{width:var(--mdc-list-list-item-trailing-icon-size);height:var(--mdc-list-list-item-trailing-icon-size)}.mdc-list-item--with-trailing-icon .mdc-list-item__end>i{font-size:var(--mdc-list-list-item-trailing-icon-size)}.mdc-list-item--with-trailing-icon .mdc-list-item__end .mdc-list-item__icon{font-size:var(--mdc-list-list-item-trailing-icon-size);width:var(--mdc-list-list-item-trailing-icon-size);height:var(--mdc-list-list-item-trailing-icon-size)}.mdc-list-item--with-trailing-icon .mdc-list-item__end .mdc-list-item__icon,.mdc-list-item--with-trailing-icon .mdc-list-item__end .mdc-list-item__icon>.materialdesignWizIconSvgsSvgIcon{display:block}.mdc-list-item--selected.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mdc-list-list-item-selected-trailing-icon-color)}.mdc-list-item--disabled .mdc-list-item__start,.mdc-list-item--disabled .mdc-list-item__content,.mdc-list-item--disabled .mdc-list-item__end{opacity:1}.mdc-list-item--disabled .mdc-list-item__primary-text,.mdc-list-item--disabled .mdc-list-item__secondary-text,.mdc-list-item--disabled .mdc-list-item__overline-text{opacity:var(--mdc-list-list-item-disabled-label-text-opacity)}.mdc-list-item--disabled.mdc-list-item--with-leading-icon .mdc-list-item__start{color:var(--mdc-list-list-item-disabled-leading-icon-color)}.mdc-list-item--disabled.mdc-list-item--with-leading-icon .mdc-list-item__start{opacity:var(--mdc-list-list-item-disabled-leading-icon-opacity)}.mdc-list-item--disabled.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mdc-list-list-item-disabled-trailing-icon-color)}.mdc-list-item--disabled.mdc-list-item--with-trailing-icon .mdc-list-item__end{opacity:var(--mdc-list-list-item-disabled-trailing-icon-opacity)}.mdc-list-item:hover .mdc-list-item__primary-text{color:var(--mdc-list-list-item-hover-label-text-color)}.mdc-list-item--with-leading-icon:hover .mdc-list-item__start{color:var(--mdc-list-list-item-hover-leading-icon-color)}.mdc-list-item--with-trailing-icon:hover .mdc-list-item__end{color:var(--mdc-list-list-item-hover-trailing-icon-color)}.mdc-list-item:focus .mdc-list-item__primary-text{color:var(--mdc-list-list-item-focus-label-text-color)}.mdc-list-item.mdc-list-item--disabled .mdc-list-item__primary-text{color:var(--mdc-list-list-item-disabled-label-text-color)}.mdc-list-item:hover::before{background-color:var(--mdc-list-list-item-hover-state-layer-color);opacity:var(--mdc-list-list-item-hover-state-layer-opacity)}.mdc-list-item.mdc-list-item--disabled::before{background-color:var(--mdc-list-list-item-disabled-state-layer-color);opacity:var(--mdc-list-list-item-disabled-state-layer-opacity)}.mdc-list-item:focus::before{background-color:var(--mdc-list-list-item-focus-state-layer-color);opacity:var(--mdc-list-list-item-focus-state-layer-opacity)}.mdc-list-item--disabled .mdc-radio,.mdc-list-item--disabled .mdc-checkbox{opacity:var(--mdc-list-list-item-disabled-label-text-opacity)}.mdc-list-item--with-leading-avatar .mat-mdc-list-item-avatar{border-radius:var(--mdc-list-list-item-leading-avatar-shape);background-color:var(--mdc-list-list-item-leading-avatar-color)}.mat-mdc-list-item-icon{font-size:var(--mdc-list-list-item-leading-icon-size)}.cdk-high-contrast-active a.mdc-list-item--activated::after{content:"";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}.cdk-high-contrast-active a.mdc-list-item--activated [dir=rtl]::after{right:auto;left:16px}.mat-mdc-list-base{display:block}.mat-mdc-list-base .mdc-list-item__start,.mat-mdc-list-base .mdc-list-item__end,.mat-mdc-list-base .mdc-list-item__content{pointer-events:auto}.mat-mdc-list-item,.mat-mdc-list-option{width:100%;box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-list-item:not(.mat-mdc-list-item-interactive),.mat-mdc-list-option:not(.mat-mdc-list-item-interactive){cursor:default}.mat-mdc-list-item .mat-divider-inset,.mat-mdc-list-option .mat-divider-inset{position:absolute;left:0;right:0;bottom:0}.mat-mdc-list-item .mat-mdc-list-item-avatar~.mat-divider-inset,.mat-mdc-list-option .mat-mdc-list-item-avatar~.mat-divider-inset{margin-left:72px}[dir=rtl] .mat-mdc-list-item .mat-mdc-list-item-avatar~.mat-divider-inset,[dir=rtl] .mat-mdc-list-option .mat-mdc-list-item-avatar~.mat-divider-inset{margin-right:72px}.mat-mdc-list-item-interactive::before{top:0;left:0;right:0;bottom:0;position:absolute;content:"";opacity:0;pointer-events:none}.mat-mdc-list-item>.mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-mdc-list-item:focus>.mat-mdc-focus-indicator::before{content:""}.mat-mdc-list-item.mdc-list-item--with-three-lines .mat-mdc-list-item-line.mdc-list-item__secondary-text{white-space:nowrap;line-height:normal}.mat-mdc-list-item.mdc-list-item--with-three-lines .mat-mdc-list-item-unscoped-content.mdc-list-item__secondary-text{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}mat-action-list button{background:none;color:inherit;border:none;font:inherit;outline:inherit;-webkit-tap-highlight-color:rgba(0,0,0,0);text-align:start}mat-action-list button::-moz-focus-inner{border:0}.mdc-list-item--with-leading-icon .mdc-list-item__start{margin-inline-start:var(--mat-list-list-item-leading-icon-start-space);margin-inline-end:var(--mat-list-list-item-leading-icon-end-space)}a.mdc-list-item.mdc-list-item--activated{background-color:var(--mat-list-active-indicator-color)}a.mdc-list-item.mdc-list-item--activated.mdc-list-item{border-radius:var(--mat-list-active-indicator-shape)}'],encapsulation:2,changeDetection:0})}}return t})(),Ire=(()=>{class t extends n6{get activated(){return this._activated}set activated(e){this._activated=$s(e)}constructor(e,i,r,o,s,a){super(e,i,r,o,s,a),this._activated=!1}_getAriaCurrent(){return"A"===this._hostElement.nodeName&&this._activated?"page":null}static{this.\u0275fac=function(i){return new(i||t)(W(Un),W(Fn),W(d_,8),W(Or),W(L0,8),W(ts,8))}}static{this.\u0275cmp=At({type:t,selectors:[["mat-list-item"],["a","mat-list-item",""],["button","mat-list-item",""]],contentQueries:function(i,r,o){if(1&i&&(Ir(o,Tre,5),Ir(o,Sre,5),Ir(o,lze,5)),2&i){let s;mn(s=pn())&&(r._lines=s),mn(s=pn())&&(r._titles=s),mn(s=pn())&&(r._meta=s)}},viewQuery:function(i,r){if(1&i&&(ti(Ere,5),ti(QQe,5)),2&i){let o;mn(o=pn())&&(r._unscopedContent=o.first),mn(o=pn())&&(r._itemText=o.first)}},hostAttrs:[1,"mat-mdc-list-item","mdc-list-item"],hostVars:11,hostBindings:function(i,r){2&i&&(oi("aria-current",r._getAriaCurrent()),xn("mdc-list-item--activated",r.activated)("mdc-list-item--with-leading-avatar",0!==r._avatars.length)("mdc-list-item--with-leading-icon",0!==r._icons.length)("mdc-list-item--with-trailing-meta",0!==r._meta.length)("_mat-animation-noopable",r._noopAnimations))},inputs:{activated:"activated"},exportAs:["matListItem"],standalone:!0,features:[di,xr],ngContentSelectors:GQe,decls:10,vars:0,consts:[["unscopedContent",""],[1,"mdc-list-item__content"],[1,"mat-mdc-list-item-unscoped-content",3,"cdkObserveContent"],[1,"mat-mdc-focus-indicator"]],template:function(i,r){if(1&i){const o=kn();mo(zQe),zn(0),I(1,"span",1),zn(2,1),zn(3,2),I(4,"span",2,0),We("cdkObserveContent",function(){return Ft(o),kt(r._updateItemLines(!0))}),zn(6,3),O()(),zn(7,4),zn(8,5),_e(9,"div",3)}},dependencies:[HW],encapsulation:2,changeDetection:0})}}return t})(),Dre=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[NR,An,Ki,P0,p$,TN]})}}return t})(),Aze=0;const i6=new ot("CdkAccordion");let gze=(()=>{class t{constructor(){this._stateChanges=new Yt,this._openCloseAllActions=new Yt,this.id="cdk-accordion-"+Aze++,this.multi=!1}openAll(){this.multi&&this._openCloseAllActions.next(!0)}closeAll(){this._openCloseAllActions.next(!1)}ngOnChanges(e){this._stateChanges.next(e)}ngOnDestroy(){this._stateChanges.complete(),this._openCloseAllActions.complete()}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275dir=zt({type:t,selectors:[["cdk-accordion"],["","cdkAccordion",""]],inputs:{multi:[bt.HasDecoratorInputTransform,"multi","multi",qn]},exportAs:["cdkAccordion"],standalone:!0,features:[ni([{provide:i6,useExisting:t}]),Ho,cr]})}}return t})(),bze=0,_ze=(()=>{class t{get expanded(){return this._expanded}set expanded(e){this._expanded!==e&&(this._expanded=e,this.expandedChange.emit(e),e?(this.opened.emit(),this._expansionDispatcher.notify(this.id,this.accordion?this.accordion.id:this.id)):this.closed.emit(),this._changeDetectorRef.markForCheck())}constructor(e,i,r){this.accordion=e,this._changeDetectorRef=i,this._expansionDispatcher=r,this._openCloseAllSubscription=on.EMPTY,this.closed=new Ln,this.opened=new Ln,this.destroyed=new Ln,this.expandedChange=new Ln,this.id="cdk-accordion-child-"+bze++,this._expanded=!1,this.disabled=!1,this._removeUniqueSelectionListener=()=>{},this._removeUniqueSelectionListener=r.listen((o,s)=>{this.accordion&&!this.accordion.multi&&this.accordion.id===s&&this.id!==o&&(this.expanded=!1)}),this.accordion&&(this._openCloseAllSubscription=this._subscribeToOpenCloseAllActions())}ngOnDestroy(){this.opened.complete(),this.closed.complete(),this.destroyed.emit(),this.destroyed.complete(),this._removeUniqueSelectionListener(),this._openCloseAllSubscription.unsubscribe()}toggle(){this.disabled||(this.expanded=!this.expanded)}close(){this.disabled||(this.expanded=!1)}open(){this.disabled||(this.expanded=!0)}_subscribeToOpenCloseAllActions(){return this.accordion._openCloseAllActions.subscribe(e=>{this.disabled||(this.expanded=e)})}static{this.\u0275fac=function(i){return new(i||t)(W(i6,12),W(Ao),W(FJ))}}static{this.\u0275dir=zt({type:t,selectors:[["cdk-accordion-item"],["","cdkAccordionItem",""]],inputs:{expanded:[bt.HasDecoratorInputTransform,"expanded","expanded",qn],disabled:[bt.HasDecoratorInputTransform,"disabled","disabled",qn]},outputs:{closed:"closed",opened:"opened",destroyed:"destroyed",expandedChange:"expandedChange"},exportAs:["cdkAccordionItem"],standalone:!0,features:[ni([{provide:i6,useValue:void 0}]),Ho]})}}return t})(),vze=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({})}}return t})();const yze=["body"],wze=[[["mat-expansion-panel-header"]],"*",[["mat-action-row"]]],xze=["mat-expansion-panel-header","*","mat-action-row"];function Cze(t,n){}const Eze=[[["mat-panel-title"]],[["mat-panel-description"]],"*"],Mze=["mat-panel-title","mat-panel-description","*"];function Sze(t,n){1&t&&(I(0,"span",1),bl(),I(1,"svg",2),_e(2,"path",3),O()()),2&t&&ue("@indicatorRotate",He()._getExpandedState())}const r6=new ot("MAT_ACCORDION"),Rre="225ms cubic-bezier(0.4,0.0,0.2,1)",Lre={indicatorRotate:sh("indicatorRotate",[nc("collapsed, void",Do({transform:"rotate(0deg)"})),nc("expanded",Do({transform:"rotate(180deg)"})),Tl("expanded <=> collapsed, void => collapsed",tc(Rre))]),bodyExpansion:sh("bodyExpansion",[nc("collapsed, void",Do({height:"0px",visibility:"hidden"})),nc("expanded",Do({height:"*",visibility:""})),Tl("expanded <=> collapsed, void => collapsed",tc(Rre))])},Pre=new ot("MAT_EXPANSION_PANEL");let Tze=(()=>{class t{constructor(e,i){this._template=e,this._expansionPanel=i}static{this.\u0275fac=function(i){return new(i||t)(W(Cl),W(Pre,8))}}static{this.\u0275dir=zt({type:t,selectors:[["ng-template","matExpansionPanelContent",""]],standalone:!0})}}return t})(),Fze=0;const Nre=new ot("MAT_EXPANSION_PANEL_DEFAULT_OPTIONS");let Ore=(()=>{class t extends _ze{get hideToggle(){return this._hideToggle||this.accordion&&this.accordion.hideToggle}set hideToggle(e){this._hideToggle=e}get togglePosition(){return this._togglePosition||this.accordion&&this.accordion.togglePosition}set togglePosition(e){this._togglePosition=e}constructor(e,i,r,o,s,a,l){super(e,i,r),this._viewContainerRef=o,this._animationMode=a,this._hideToggle=!1,this.afterExpand=new Ln,this.afterCollapse=new Ln,this._inputChanges=new Yt,this._headerId="mat-expansion-panel-header-"+Fze++,this.accordion=e,this._document=s,this._animationsDisabled="NoopAnimations"===a,l&&(this.hideToggle=l.hideToggle)}_hasSpacing(){return!!this.accordion&&this.expanded&&"default"===this.accordion.displayMode}_getExpandedState(){return this.expanded?"expanded":"collapsed"}toggle(){this.expanded=!this.expanded}close(){this.expanded=!1}open(){this.expanded=!0}ngAfterContentInit(){this._lazyContent&&this._lazyContent._expansionPanel===this&&this.opened.pipe(Qd(null),Ii(()=>this.expanded&&!this._portal),qo(1)).subscribe(()=>{this._portal=new m1(this._lazyContent._template,this._viewContainerRef)})}ngOnChanges(e){this._inputChanges.next(e)}ngOnDestroy(){super.ngOnDestroy(),this._inputChanges.complete()}_containsFocus(){if(this._body){const e=this._document.activeElement,i=this._body.nativeElement;return e===i||i.contains(e)}return!1}_animationStarted(e){!Ure(e)&&!this._animationsDisabled&&this._body&&this._body?.nativeElement.setAttribute("inert","")}_animationDone(e){Ure(e)||("expanded"===e.toState?this.afterExpand.emit():"collapsed"===e.toState&&this.afterCollapse.emit(),!this._animationsDisabled&&this._body&&this._body.nativeElement.removeAttribute("inert"))}static{this.\u0275fac=function(i){return new(i||t)(W(r6,12),W(Ao),W(FJ),W(va),W(xi),W(ts,8),W(Nre,8))}}static{this.\u0275cmp=At({type:t,selectors:[["mat-expansion-panel"]],contentQueries:function(i,r,o){if(1&i&&Ir(o,Tze,5),2&i){let s;mn(s=pn())&&(r._lazyContent=s.first)}},viewQuery:function(i,r){if(1&i&&ti(yze,5),2&i){let o;mn(o=pn())&&(r._body=o.first)}},hostAttrs:[1,"mat-expansion-panel"],hostVars:6,hostBindings:function(i,r){2&i&&xn("mat-expanded",r.expanded)("_mat-animation-noopable",r._animationsDisabled)("mat-expansion-panel-spacing",r._hasSpacing())},inputs:{hideToggle:[bt.HasDecoratorInputTransform,"hideToggle","hideToggle",qn],togglePosition:"togglePosition"},outputs:{afterExpand:"afterExpand",afterCollapse:"afterCollapse"},exportAs:["matExpansionPanel"],standalone:!0,features:[ni([{provide:r6,useValue:void 0},{provide:Pre,useExisting:t}]),Ho,di,cr,xr],ngContentSelectors:xze,decls:7,vars:4,consts:[["body",""],["role","region",1,"mat-expansion-panel-content",3,"id"],[1,"mat-expansion-panel-body"],[3,"cdkPortalOutlet"]],template:function(i,r){if(1&i){const o=kn();mo(wze),zn(0),I(1,"div",1,0),We("@bodyExpansion.start",function(a){return Ft(o),kt(r._animationStarted(a))})("@bodyExpansion.done",function(a){return Ft(o),kt(r._animationDone(a))}),I(3,"div",2),zn(4,1),ft(5,Cze,0,0,"ng-template",3),O(),zn(6,2),O()}2&i&&(H(),ue("@bodyExpansion",r._getExpandedState())("id",r.id),oi("aria-labelledby",r._headerId),H(4),ue("cdkPortalOutlet",r._portal))},dependencies:[GM],styles:['.mat-expansion-panel{box-sizing:content-box;display:block;margin:0;overflow:hidden;transition:margin 225ms cubic-bezier(0.4, 0, 0.2, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);position:relative;background:var(--mat-expansion-container-background-color);color:var(--mat-expansion-container-text-color);border-radius:var(--mat-expansion-container-shape)}.mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)}.mat-accordion .mat-expansion-panel:not(.mat-expanded),.mat-accordion .mat-expansion-panel:not(.mat-expansion-panel-spacing){border-radius:0}.mat-accordion .mat-expansion-panel:first-of-type{border-top-right-radius:var(--mat-expansion-container-shape);border-top-left-radius:var(--mat-expansion-container-shape)}.mat-accordion .mat-expansion-panel:last-of-type{border-bottom-right-radius:var(--mat-expansion-container-shape);border-bottom-left-radius:var(--mat-expansion-container-shape)}.cdk-high-contrast-active .mat-expansion-panel{outline:solid 1px}.mat-expansion-panel.ng-animate-disabled,.ng-animate-disabled .mat-expansion-panel,.mat-expansion-panel._mat-animation-noopable{transition:none}.mat-expansion-panel-content{display:flex;flex-direction:column;overflow:visible;font-family:var(--mat-expansion-container-text-font);font-size:var(--mat-expansion-container-text-size);font-weight:var(--mat-expansion-container-text-weight);line-height:var(--mat-expansion-container-text-line-height);letter-spacing:var(--mat-expansion-container-text-tracking)}.mat-expansion-panel-content[style*="visibility: hidden"] *{visibility:hidden !important}.mat-expansion-panel-body{padding:0 24px 16px}.mat-expansion-panel-spacing{margin:16px 0}.mat-accordion>.mat-expansion-panel-spacing:first-child,.mat-accordion>*:first-child:not(.mat-expansion-panel) .mat-expansion-panel-spacing{margin-top:0}.mat-accordion>.mat-expansion-panel-spacing:last-child,.mat-accordion>*:last-child:not(.mat-expansion-panel) .mat-expansion-panel-spacing{margin-bottom:0}.mat-action-row{border-top-style:solid;border-top-width:1px;display:flex;flex-direction:row;justify-content:flex-end;padding:16px 8px 16px 24px;border-top-color:var(--mat-expansion-actions-divider-color)}.mat-action-row .mat-button-base,.mat-action-row .mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-action-row .mat-button-base,[dir=rtl] .mat-action-row .mat-mdc-button-base{margin-left:0;margin-right:8px}'],encapsulation:2,data:{animation:[Lre.bodyExpansion]},changeDetection:0})}}return t})();function Ure(t){return"void"===t.fromState}let Hre=(()=>{class t{constructor(e,i,r,o,s,a,l){this.panel=e,this._element=i,this._focusMonitor=r,this._changeDetectorRef=o,this._animationMode=a,this._parentChangeSubscription=on.EMPTY,this.tabIndex=0;const c=e.accordion?e.accordion._stateChanges.pipe(Ii(d=>!(!d.hideToggle&&!d.togglePosition))):y0;this.tabIndex=parseInt(l||"")||0,this._parentChangeSubscription=Sl(e.opened,e.closed,c,e._inputChanges.pipe(Ii(d=>!!(d.hideToggle||d.disabled||d.togglePosition)))).subscribe(()=>this._changeDetectorRef.markForCheck()),e.closed.pipe(Ii(()=>e._containsFocus())).subscribe(()=>r.focusVia(i,"program")),s&&(this.expandedHeight=s.expandedHeight,this.collapsedHeight=s.collapsedHeight)}get disabled(){return this.panel.disabled}_toggle(){this.disabled||this.panel.toggle()}_isExpanded(){return this.panel.expanded}_getExpandedState(){return this.panel._getExpandedState()}_getPanelId(){return this.panel.id}_getTogglePosition(){return this.panel.togglePosition}_showToggle(){return!this.panel.hideToggle&&!this.panel.disabled}_getHeaderHeight(){const e=this._isExpanded();return e&&this.expandedHeight?this.expandedHeight:!e&&this.collapsedHeight?this.collapsedHeight:null}_keydown(e){switch(e.keyCode){case 32:case 13:Pc(e)||(e.preventDefault(),this._toggle());break;default:return void(this.panel.accordion&&this.panel.accordion._handleHeaderKeydown(e))}}focus(e,i){e?this._focusMonitor.focusVia(this._element,e,i):this._element.nativeElement.focus(i)}ngAfterViewInit(){this._focusMonitor.monitor(this._element).subscribe(e=>{e&&this.panel.accordion&&this.panel.accordion._handleHeaderFocus(this)})}ngOnDestroy(){this._parentChangeSubscription.unsubscribe(),this._focusMonitor.stopMonitoring(this._element)}static{this.\u0275fac=function(i){return new(i||t)(W(Ore,1),W(Un),W(ih),W(Ao),W(Nre,8),W(ts,8),Kl("tabindex"))}}static{this.\u0275cmp=At({type:t,selectors:[["mat-expansion-panel-header"]],hostAttrs:["role","button",1,"mat-expansion-panel-header","mat-focus-indicator"],hostVars:15,hostBindings:function(i,r){1&i&&We("click",function(){return r._toggle()})("keydown",function(s){return r._keydown(s)}),2&i&&(oi("id",r.panel._headerId)("tabindex",r.disabled?-1:r.tabIndex)("aria-controls",r._getPanelId())("aria-expanded",r._isExpanded())("aria-disabled",r.panel.disabled),Fi("height",r._getHeaderHeight()),xn("mat-expanded",r._isExpanded())("mat-expansion-toggle-indicator-after","after"===r._getTogglePosition())("mat-expansion-toggle-indicator-before","before"===r._getTogglePosition())("_mat-animation-noopable","NoopAnimations"===r._animationMode))},inputs:{expandedHeight:"expandedHeight",collapsedHeight:"collapsedHeight",tabIndex:[bt.HasDecoratorInputTransform,"tabIndex","tabIndex",e=>null==e?0:sa(e)]},standalone:!0,features:[Ho,xr],ngContentSelectors:Mze,decls:5,vars:3,consts:[[1,"mat-content"],[1,"mat-expansion-indicator"],["xmlns","http://www.w3.org/2000/svg","viewBox","0 -960 960 960","aria-hidden","true","focusable","false"],["d","M480-345 240-585l56-56 184 184 184-184 56 56-240 240Z"]],template:function(i,r){1&i&&(mo(Eze),I(0,"span",0),zn(1),zn(2,1),zn(3,2),O(),ft(4,Sze,3,1,"span",1)),2&i&&(xn("mat-content-hide-toggle",!r._showToggle()),H(4),yt(4,r._showToggle()?4:-1))},styles:['.mat-expansion-panel-header{display:flex;flex-direction:row;align-items:center;padding:0 24px;border-radius:inherit;transition:height 225ms cubic-bezier(0.4, 0, 0.2, 1);height:var(--mat-expansion-header-collapsed-state-height);font-family:var(--mat-expansion-header-text-font);font-size:var(--mat-expansion-header-text-size);font-weight:var(--mat-expansion-header-text-weight);line-height:var(--mat-expansion-header-text-line-height);letter-spacing:var(--mat-expansion-header-text-tracking)}.mat-expansion-panel-header.mat-expanded{height:var(--mat-expansion-header-expanded-state-height)}.mat-expansion-panel-header[aria-disabled=true]{color:var(--mat-expansion-header-disabled-state-text-color)}.mat-expansion-panel-header:not([aria-disabled=true]){cursor:pointer}.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover{background:var(--mat-expansion-header-hover-state-layer-color)}@media(hover: none){.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover{background:var(--mat-expansion-container-background-color)}}.mat-expansion-panel .mat-expansion-panel-header:not([aria-disabled=true]).cdk-keyboard-focused,.mat-expansion-panel .mat-expansion-panel-header:not([aria-disabled=true]).cdk-program-focused{background:var(--mat-expansion-header-focus-state-layer-color)}.mat-expansion-panel-header._mat-animation-noopable{transition:none}.mat-expansion-panel-header:focus,.mat-expansion-panel-header:hover{outline:none}.mat-expansion-panel-header.mat-expanded:focus,.mat-expansion-panel-header.mat-expanded:hover{background:inherit}.mat-expansion-panel-header.mat-expansion-toggle-indicator-before{flex-direction:row-reverse}.mat-expansion-panel-header.mat-expansion-toggle-indicator-before .mat-expansion-indicator{margin:0 16px 0 0}[dir=rtl] .mat-expansion-panel-header.mat-expansion-toggle-indicator-before .mat-expansion-indicator{margin:0 0 0 16px}.mat-content{display:flex;flex:1;flex-direction:row;overflow:hidden}.mat-content.mat-content-hide-toggle{margin-right:8px}[dir=rtl] .mat-content.mat-content-hide-toggle{margin-right:0;margin-left:8px}.mat-expansion-toggle-indicator-before .mat-content.mat-content-hide-toggle{margin-left:24px;margin-right:0}[dir=rtl] .mat-expansion-toggle-indicator-before .mat-content.mat-content-hide-toggle{margin-right:24px;margin-left:0}.mat-expansion-panel-header-title{color:var(--mat-expansion-header-text-color)}.mat-expansion-panel-header-title,.mat-expansion-panel-header-description{display:flex;flex-grow:1;flex-basis:0;margin-right:16px;align-items:center}[dir=rtl] .mat-expansion-panel-header-title,[dir=rtl] .mat-expansion-panel-header-description{margin-right:0;margin-left:16px}.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description{color:inherit}.mat-expansion-panel-header-description{flex-grow:2;color:var(--mat-expansion-header-description-color)}.mat-expansion-indicator::after{border-style:solid;border-width:0 2px 2px 0;content:"";display:inline-block;padding:3px;transform:rotate(45deg);vertical-align:middle;color:var(--mat-expansion-header-indicator-color);display:inline-block;display:var(--mat-expansion-legacy-header-indicator-display, inline-block)}.mat-expansion-indicator svg{width:24px;height:24px;margin:0 -8px;vertical-align:middle;fill:var(--mat-expansion-header-indicator-color);display:none;display:var(--mat-expansion-header-indicator-display, none)}.cdk-high-contrast-active .mat-expansion-panel-content{border-top:1px solid;border-top-left-radius:0;border-top-right-radius:0}'],encapsulation:2,data:{animation:[Lre.indicatorRotate]},changeDetection:0})}}return t})(),kze=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275dir=zt({type:t,selectors:[["mat-panel-title"]],hostAttrs:[1,"mat-expansion-panel-header-title"],standalone:!0})}}return t})(),Ize=(()=>{class t extends gze{constructor(){super(...arguments),this._ownHeaders=new Lu,this.hideToggle=!1,this.displayMode="default",this.togglePosition="after"}ngAfterContentInit(){this._headers.changes.pipe(Qd(this._headers)).subscribe(e=>{this._ownHeaders.reset(e.filter(i=>i.panel.accordion===this)),this._ownHeaders.notifyOnChanges()}),this._keyManager=new VR(this._ownHeaders).withWrap().withHomeAndEnd()}_handleHeaderKeydown(e){this._keyManager.onKeydown(e)}_handleHeaderFocus(e){this._keyManager.updateActiveItem(e)}ngOnDestroy(){super.ngOnDestroy(),this._keyManager?.destroy(),this._ownHeaders.destroy()}static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=_r(t)))(r||t)}})()}static{this.\u0275dir=zt({type:t,selectors:[["mat-accordion"]],contentQueries:function(i,r,o){if(1&i&&Ir(o,Hre,5),2&i){let s;mn(s=pn())&&(r._headers=s)}},hostAttrs:[1,"mat-accordion"],hostVars:2,hostBindings:function(i,r){2&i&&xn("mat-accordion-multi",r.multi)},inputs:{hideToggle:[bt.HasDecoratorInputTransform,"hideToggle","hideToggle",qn],displayMode:"displayMode",togglePosition:"togglePosition"},exportAs:["matAccordion"],standalone:!0,features:[ni([{provide:r6,useExisting:t}]),Ho,di]})}}return t})(),Vre=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[Ki,vze,p1]})}}return t})();const Bze=[Lee,pN,oL,TN,TJ,Np,tee,RJ,Np,tte,Aee,mx,MN,Hie,Dre,Vre,VN,vee,t6,Bc];let Oi=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[t6,Bze,Lee,pN,oL,TN,TJ,Np,tee,RJ,Np,tte,Aee,mx,MN,Hie,Dre,Vre,VN,vee,t6,Bc]})}}return t})(),Dze=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[An,Oi]})}}return t})(),Rze=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[An]})}}return t})(),Qre=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({})}}return t})(),o6=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({})}}return t})(),Lze=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[An,Oi,Dze,Rze,Qre,o6]})}}return t})(),Pze=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[An,Z9e,Lze]})}}return t})(),Xx=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({providers:[FF],imports:[An,Oi,Bc,o6]})}}return t})(),Nze=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[An,Xx]})}}return t})(),Oze=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[An,Nze]})}}return t})(),zre=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[An,gBe,Oi]})}}return t})(),s6=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[An,zre]})}}return t})(),Uze=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[An,s6]})}}return t})(),a6=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[An,s6]})}}return t})(),Hze=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[An,Oi,Uze,a6,o6]})}}return t})(),Vze=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[An,Oi]})}}return t})(),Qze=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[An]})}}return t})(),Gre=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[An]})}}return t})(),l6=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[An,Gre]})}}return t})(),zze=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[An,Xx,l6]})}}return t})(),Gze=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[An,Xx,l6]})}}return t})(),qze=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[An,Xx,l6]})}}return t})(),Wze=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[An,Xx,Gre]})}}return t})(),$ze=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[An,Bc,Dy,Oi]})}}return t})(),jze=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({providers:[yN],imports:[An,Oi,$ze]})}}return t})(),Yx=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[An,Oi]})}}return t})(),O3=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[Oi,An]})}}return t})(),Kze=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[An,Yx,O3,Oi,a6]})}}return t})(),tGe=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[Ki,Ki]})}}return t})(),Kre=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({})}}return t})(),GA=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[An]})}}return t})(),nGe=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[An,Oi,Np,An,pN,tGe,oL,Np,GA,Kre]})}}return t})(),iGe=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[An,Oi,Np,nGe]})}}return t})();const rGe=Xt(Od,t=>0===t.length);let oGe=(()=>{class t{constructor(e){this.hideBlacklistItemsIndicator$=e.select(rGe)}static{this.\u0275fac=function(i){return new(i||t)(W(Wt))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-search-panel-mode-selector"]],inputs:{searchPanelMode:"searchPanelMode",updateSearchPanelMode:"updateSearchPanelMode"},decls:7,vars:4,consts:[[3,"value"],["id","tree-view","value","tree-view",3,"click"],[1,"fa","fa-sitemap"],["id","blacklist","value","blacklist",3,"click"],[1,"fa","fa-eye-slash"],[1,"has-blacklist-items-indicator",3,"hidden"]],template:function(i,r){1&i&&(I(0,"mat-button-toggle-group",0)(1,"mat-button-toggle",1),We("click",function(){return r.updateSearchPanelMode("treeView")}),_e(2,"i",2),O(),I(3,"mat-button-toggle",3),We("click",function(){return r.updateSearchPanelMode("blacklist")}),_e(4,"i",4)(5,"div",5),ze(6,"async"),O()()),2&i&&(ue("value",r.searchPanelMode),H(5),ue("hidden",tt(6,2,r.hideBlacklistItemsIndicator$)))},dependencies:[uF,ax,Gn],styles:["cc-search-panel-mode-selector mat-button-toggle-group{height:100%;align-items:center;font-size:12px}cc-search-panel-mode-selector .has-blacklist-items-indicator{position:absolute;margin-left:18px;margin-top:-32px;border-radius:50%;background-color:red;width:5px;height:5px}\n"],encapsulation:2})}}return t})();const Xre=t=>Xt(Od,n=>sGe(t,n)),sGe=(t,n)=>{const e=n.filter(i=>i.type===t);return e.sort((i,r)=>i.path.localeCompare(r.path)),e};function aGe(t,n){1&t&&(I(0,"mat-list-item"),ve(1,"Add pattern via search or node context-menu"),O())}function lGe(t,n){if(1&t){const e=kn();I(0,"mat-list-item",3)(1,"button",4),We("click",function(){const r=Ft(e).$implicit;return kt(He(2).removeBlacklistEntry(r))}),_e(2,"em",5),ve(3),O()()}if(2&t){const e=n.$implicit;ue("title",e.path),H(3),an(" ",e.path," ")}}function cGe(t,n){if(1&t&&(I(0,"div"),ft(1,aGe,2,0,"mat-list-item"),yr(2,lGe,4,2,"mat-list-item",3,Sr),O()),2&t){const e=n;H(),yt(1,0===e.length?1:-1),H(),wr(e)}}function dGe(t,n){1&t&&(I(0,"mat-list-item"),ve(1,"Add pattern via search or node context-menu"),O())}function uGe(t,n){if(1&t){const e=kn();I(0,"mat-list-item",3)(1,"button",4),We("click",function(){const r=Ft(e).$implicit;return kt(He(2).removeBlacklistEntry(r))}),_e(2,"em",5),ve(3),O()()}if(2&t){const e=n.$implicit;ue("title",e.path),H(3),an(" ",e.path," ")}}function hGe(t,n){if(1&t&&(I(0,"div"),ft(1,dGe,2,0,"mat-list-item"),yr(2,uGe,4,2,"mat-list-item",3,Sr),O()),2&t){const e=n;H(),yt(1,0===e.length?1:-1),H(),wr(e)}}let fGe=(()=>{class t{constructor(e){this.store=e,this.flattenedItems$=this.store.select(Xre("flatten")),this.excludedItems$=this.store.select(Xre("exclude"))}removeBlacklistEntry(e){this.store.dispatch(xM({item:e}))}static{this.\u0275fac=function(i){return new(i||t)(W(Wt))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-blacklist-panel"]],decls:14,vars:6,consts:[[1,"header-text"],["matTooltip","Flattened nodes are shown as flat/short buildings and are included in folder metrics",1,"fa","fa-question-circle-o"],["matTooltip","Excluded buildings are not shown in the map and are not included in folder metrics",1,"fa","fa-question-circle-o"],[3,"title"],["mat-button","",3,"click"],["title","Remove list item",1,"fa","fa-minus-square"]],template:function(i,r){if(1&i&&(I(0,"mat-list")(1,"div")(2,"h3",0),ve(3,"Flattened"),O(),_e(4,"em",1),O(),ft(5,cGe,4,1,"div"),ze(6,"async"),O(),I(7,"mat-list")(8,"div")(9,"h3",0),ve(10,"Excluded"),O(),_e(11,"em",2),O(),ft(12,hGe,4,1,"div"),ze(13,"async"),O()),2&i){let o,s;H(5),yt(5,(o=tt(6,2,r.flattenedItems$))?5:-1,o),H(7),yt(12,(s=tt(13,4,r.excludedItems$))?12:-1,s)}},dependencies:[Bs,SJ,kre,Ire,Gn],styles:["cc-blacklist-panel .header-text{display:inline-block;margin:0 .25em 0 0}cc-blacklist-panel mat-list.mat-mdc-list.mat-mdc-list-base mat-list-item{border-top:1px solid rgba(0,0,0,.12)}cc-blacklist-panel mat-list.mat-mdc-list.mat-mdc-list-base mat-list-item .mdc-list-item__content{padding:0}cc-blacklist-panel mat-list.mat-mdc-list.mat-mdc-list-base mat-list-item .mdc-list-item__content button{width:100%;text-align:start}cc-blacklist-panel mat-list.mat-mdc-list.mat-mdc-list-base mat-list-item .mdc-list-item__content button .fa{padding-right:8px}\n"],encapsulation:2})}}return t})(),mGe=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[An,Oi]})}}return t})(),pGe=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[An,Oi]})}}return t})(),AGe=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[An]})}}return t})();const d6=Xt(Pb,t=>""===t||"!"===t||","===t),V3=t=>(t=t.trim()).startsWith("*")||t.endsWith("*")||t.startsWith("/")||t.startsWith("./")||t.startsWith('"')||t.endsWith('"')||t.startsWith("!")?t:`*${t}*`,Yre=(t,n,e)=>{const i=e.trim().split(",");if(e.trim().startsWith("!")){i[0]=i[0].slice(1);for(const r of i){const o=`!${V3(r)}`;if(t.some(s=>o===s.path&&n===s.type))return!0}return!1}for(const r of i)if(t.some(o=>V3(r)===o.path&&n===o.type))return!0;return!1},gGe=Xt(Pb,d6,Od,(t,n,e)=>!!n||Yre(e,"flatten",t)),bGe=Xt(Pb,d6,Od,(t,n,e)=>!!n||Yre(e,"exclude",t)),_Ge=(t,n)=>{const e=[],i=n.split(",");if(i[0].startsWith("!")){i[0]=i[0].slice(1);for(const r of i)r.length>0&&e.push({path:`!${V3(r)}`,type:t})}else for(let r of i)if(r.length>0){if(r.startsWith("!"))break;r=V3(r),e.push({path:r,type:t})}return e},vGe=(t,n,e)=>{const i=[...n,...e];for(const{file:r}of t)if(!yGe(r,i))return!1;return!0},yGe=(t,n)=>{for(const e of io(t.map))if(wGe(e,n))return!1;return!0},wGe=(t,n)=>Eo(t)&&t.data.path&&!Ju(t.data.path,n,"exclude");let Zre=(()=>{class t{constructor(e,i,r){this.actions$=e,this.store=i,this.dialog=r,this.doBlacklistItemsResultInEmptyMap$=this.actions$.pipe(Dc(Z4),Wu(this.store.select(Ud),this.store.select(Od)),Et(([o,s,a])=>({items:o.items,resultsInEmptyMap:vGe(s,a,o.items)})),fx()),this.showErrorDialogIfBlacklistItemsResultInEmptyMap$=Bo(()=>this.doBlacklistItemsResultInEmptyMap$.pipe(Ii(o=>o.resultsInEmptyMap),Nr(()=>{this.dialog.open(Op,{data:{title:"Blacklist Error",message:"Excluding all buildings is not possible."}})})),{dispatch:!1}),this.addBlacklistItems$=Bo(()=>this.doBlacklistItemsResultInEmptyMap$.pipe(Ii(o=>!o.resultsInEmptyMap),Et(o=>wM({items:o.items}))))}static{this.\u0275fac=function(i){return new(i||t)(oe($u),oe(Wt),oe(Is))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac})}}return t})(),CGe=(()=>{class t{constructor(e,i,r){this.actions$=e,this.store=i,this.addBlacklistItemsIfNotResultsInEmptyMapEffect=r,this.searchPattern2BlacklistItems$=this.actions$.pipe(Dc("BlacklistSearchPatternAction"),Wu(this.store.select(Pb)),Et(([o,s])=>({type:o.action.type,blacklistItems:_Ge(o.action.type,s)})),fx()),this.flattenSearchPattern$=Bo(()=>this.searchPattern2BlacklistItems$.pipe(Ii(o=>"flatten"===o.type),Nr(o=>{this.store.dispatch(wM({items:o.blacklistItems})),this.store.dispatch(Hf({value:""}))})),{dispatch:!1}),this.excludeSearchPattern$=Bo(()=>this.searchPattern2BlacklistItems$.pipe(Ii(o=>"exclude"===o.type),Nr(()=>{this.addBlacklistItemsIfNotResultsInEmptyMapEffect.doBlacklistItemsResultInEmptyMap$.pipe(qo(1),Ii(o=>!o.resultsInEmptyMap),Nr(()=>{this.store.dispatch(Hf({value:""}))})).subscribe()}),Et(o=>Z4({items:o.blacklistItems}))))}static{this.\u0275fac=function(i){return new(i||t)(oe($u),oe(Wt),oe(Zre))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac})}}return t})();function EGe(t,n){if(1&t){const e=kn();I(0,"button",12),We("click",function(){return Ft(e),kt(He().resetSearchPattern())}),_e(1,"i",13),O()}}let MGe=(()=>{class t{constructor(e){this.store=e,this.searchPattern$=this.store.select(Pb),this.isSearchPatternEmpty$=this.store.select(d6),this.isFlattenPatternDisabled$=this.store.select(gGe),this.isExcludePatternDisabled$=this.store.select(bGe),this.setSearchPatternDebounced=ou(i=>this.setSearchPattern(i),400)}setSearchPattern(e){this.store.dispatch(Hf({value:e.target.value}))}resetSearchPattern(){this.store.dispatch(Hf({value:""}))}blacklistSearchPattern(e){this.store.dispatch((t=>({type:"BlacklistSearchPatternAction",action:{type:t}}))(e))}static{this.\u0275fac=function(i){return new(i||t)(W(Wt))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-search-bar"]],decls:21,vars:13,consts:[["menu","matMenu"],[1,"fa","fa-search","search-icon"],[1,"ccSearchInput"],["type","text","placeholder","Search: *.js, **/app/*",3,"input","value"],["data-testid","search-bar-clear-button",1,"small-action-button","clear-icon"],["title","Add to Blacklist",1,"small-action-button",3,"matMenuTriggerFor"],[1,"fa","fa-ellipsis-h"],["mat-menu-item","","disabled",""],["mat-menu-item","","data-testid","search-bar-flatten-button",3,"click","disabled"],[1,"fa","fa-eye-slash"],["mat-menu-item","","data-testid","search-bar-exclude-button",3,"click","disabled"],[1,"fa","fa-ban"],["data-testid","search-bar-clear-button",1,"small-action-button","clear-icon",3,"click"],[1,"fa","fa-times"]],template:function(i,r){if(1&i){const o=kn();_e(0,"i",1),I(1,"div",2)(2,"input",3),ze(3,"async"),We("input",function(a){return Ft(o),kt(r.setSearchPatternDebounced(a))}),O(),ft(4,EGe,2,0,"button",4),ze(5,"async"),O(),I(6,"button",5),_e(7,"i",6),O(),I(8,"mat-menu",null,0)(10,"button",7),ve(11,"Add Pattern to Blacklist"),O(),_e(12,"mat-divider"),I(13,"button",8),ze(14,"async"),We("click",function(){return Ft(o),kt(r.blacklistSearchPattern("flatten"))}),_e(15,"i",9),ve(16," Flatten "),O(),I(17,"button",10),ze(18,"async"),We("click",function(){return Ft(o),kt(r.blacklistSearchPattern("exclude"))}),_e(19,"i",11),ve(20," Exclude "),O()()}if(2&i){const o=Co(9);H(2),ue("value",tt(3,5,r.searchPattern$)),H(2),yt(4,tt(5,7,r.isSearchPatternEmpty$)?-1:4),H(2),ue("matMenuTriggerFor",o),H(7),ue("disabled",tt(14,9,r.isFlattenPatternDisabled$)),H(4),ue("disabled",tt(18,11,r.isExcludePatternDisabled$))}},dependencies:[su,pF,Qb,SN,Gn],styles:["cc-search-bar{display:inline-block}cc-search-bar .search-icon{margin-right:8px;min-width:16px}cc-search-bar .ccSearchInput{display:inline-block;position:relative}cc-search-bar .ccSearchInput input{width:204px;border-width:0 0 1px;border-color:#d3d3d3;outline:0;font-size:11pt;height:24px}cc-search-bar .ccSearchInput input:focus{border-color:#0374c9;box-shadow:0 1px #0374c9}cc-search-bar .ccSearchInput>*{vertical-align:middle;display:inline-block;position:relative;height:30px}cc-search-bar .ccSearchInput .clear-icon{position:absolute;right:0;margin:0;height:24px;width:24px;display:flex;justify-content:center;align-items:center;top:0}cc-search-bar .small-action-button{margin:0 5px}cc-search-bar button{background-color:transparent;box-shadow:none;margin-top:2px;font-size:14px}cc-search-bar button:hover{background-color:#d3d3d3;border-radius:50%}\n"],encapsulation:2})}}return t})();const Q3=(t,n,e)=>n.reduce((i,r)=>Ju(r.path,e,t)?i+1:i,0),SGe=Xt(oJ,Od,bF,(t,n,e)=>{const i=t.filter(r=>Eo(r));return{fileCount:`${i.length}/${e.length}`,flattenCount:`${Q3("flatten",i,n)}/${Q3("flatten",e,n)}`,excludeCount:`${Q3("exclude",i,n)}/${Q3("exclude",e,n)}`}}),Jre=Xt(Hr,t=>t.sortingOrderAscending);let TGe=(()=>{class t{constructor(e){this.store=e}ngOnInit(){this.sortingOrderAscending$=this.store.select(Jre)}onClick(){this.store.dispatch(qN())}static{this.\u0275fac=function(i){return new(i||t)(W(Wt))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-sorting-button"]],decls:4,vars:7,consts:[[1,"box-rounded","submenu-button",3,"click","title"],[3,"className"]],template:function(i,r){1&i&&(I(0,"button",0),ze(1,"async"),We("click",function(){return r.onClick()}),_e(2,"i",1),ze(3,"async"),O()),2&i&&(Sc("title","Toggle sort order (currently ",tt(1,3,r.sortingOrderAscending$)?"ascending":"descending",")"),H(2),ue("className",tt(3,5,r.sortingOrderAscending$)?"fa fa-sort-amount-asc":"fa fa-sort-amount-desc"))},dependencies:[Gn],encapsulation:2})}}return t})();const eoe=Xt(Pl,t=>t.sortingOption);function FGe(t,n){if(1&t&&(I(0,"mat-option",1),ve(1),O()),2&t){const e=n.$implicit;ue("value",e),H(),an(" ",e," ")}}let kGe=(()=>{class t{constructor(e){this.store=e,this.sortingOptions=Object.values(lS),this.selectedSortingOption$=e.select(eoe)}handleSelectedSortingOptionChanged(e){this.store.dispatch(yM(e.value))}static{this.\u0275fac=function(i){return new(i||t)(W(Wt))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-sorting-option"]],decls:4,vars:3,consts:[["title","Sort by",1,"sorting-option-select",3,"selectionChange","value"],[3,"value"]],template:function(i,r){1&i&&(I(0,"mat-select",0),ze(1,"async"),We("selectionChange",function(s){return r.handleSelectedSortingOptionChanged(s)}),yr(2,FGe,2,2,"mat-option",1,Sr),O()),2&i&&(ue("value",tt(1,1,r.selectedSortingOption$)),H(2),wr(r.sortingOptions))},dependencies:[vm,zd,Gn],styles:[".sorting-option-select{max-width:88px}\n"],encapsulation:2})}}return t})(),IGe=(()=>{class t{constructor(e){this.store=e}ngOnInit(){this.isSearchPanelPinned$=this.store.select(nee)}onClick(){this.store.dispatch(aO())}static{this.\u0275fac=function(i){return new(i||t)(W(Wt))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-thumb-tack-button"]],decls:3,vars:3,consts:[["title","Pin file explorer",1,"box-rounded","submenu-button",3,"click","ngClass"],[1,"fa","fa-thumb-tack"]],template:function(i,r){1&i&&(I(0,"button",0),ze(1,"async"),We("click",function(){return r.onClick()}),_e(2,"i",1),O()),2&i&&ue("ngClass",tt(1,1,r.isSearchPanelPinned$)?"pinned":"")},dependencies:[Rd,Gn],styles:[".pinned{background-color:#979797}\n"],encapsulation:2})}}return t})();function BGe(t,n){if(1&t&&(I(0,"span",0),ve(1),_e(2,"i",1),O(),I(3,"span",2),ve(4),_e(5,"img",3),O(),I(6,"span",4),ve(7),_e(8,"i",5),O(),I(9,"div",6),_e(10,"cc-thumb-tack-button"),O(),I(11,"div",6),_e(12,"cc-sorting-button")(13,"cc-sorting-option"),O()),2&t){const e=n;H(),ur(e.fileCount),H(3),ur(e.flattenCount),H(3),ur(e.excludeCount)}}let DGe=(()=>{class t{constructor(e){this.matchingFileCounters$=e.select(SGe)}static{this.\u0275fac=function(i){return new(i||t)(W(Wt))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-matching-files-counter"]],decls:2,vars:3,consts:[["title","Files matching search pattern",1,"box-rounded","node-count"],[1,"fa","fa-file"],["title","Files flattened",1,"box-rounded","node-count",2,"display","inline-flex"],["alt","flattenIcon","src","codeCharta/assets/flatten.png",1,"fa","png-icon-files-counter"],["title","Files excluded",1,"box-rounded","node-count"],[1,"fa","fa-ban"],[1,"clickable-component"]],template:function(i,r){if(1&i&&(ft(0,BGe,14,3),ze(1,"async")),2&i){let o;yt(0,(o=tt(1,1,r.matchingFileCounters$))?0:-1,o)}},dependencies:[TGe,kGe,IGe,Gn],styles:["cc-matching-files-counter .node-count{background:#eee;color:#000;padding:4px 8px;margin-right:8px}cc-matching-files-counter .node-count i{margin-left:6px}cc-matching-files-counter .box-rounded{display:inline-block;font-weight:400;line-height:17px;font-size:10pt;margin-top:2px;min-width:20px;border-radius:4px;text-align:center}cc-matching-files-counter .png-icon-files-counter{width:19px;height:16px;margin-left:6px}cc-matching-files-counter cc-thumb-tack-button button{height:25px;background:#e6e6e6;padding:1px 8px}cc-matching-files-counter cc-sorting-button button{height:25px;background:#e6e6e6;padding:1px 8px}cc-matching-files-counter cc-sorting-option .mat-mdc-select{width:105px;padding:2px 8px;font-weight:400;line-height:17px;font-size:10pt}cc-matching-files-counter .clickable-component{display:inline-block;color:#000;margin-left:-9px}\n"],encapsulation:2})}}return t})();function Lh(t){if("object"!=typeof t)return t;var n,e,i=Object.prototype.toString.call(t);if("[object Object]"===i){if(t.constructor!==Object&&"function"==typeof t.constructor)for(n in e=new t.constructor,t)t.hasOwnProperty(n)&&e[n]!==t[n]&&(e[n]=Lh(t[n]));else for(n in e={},t)"__proto__"===n?Object.defineProperty(e,n,{value:Lh(t[n]),configurable:!0,enumerable:!0,writable:!0}):e[n]=Lh(t[n]);return e}if("[object Array]"===i){for(n=t.length,e=Array(n);n--;)e[n]=Lh(t[n]);return e}return"[object Set]"===i?(e=new Set,t.forEach(function(r){e.add(Lh(r))}),e):"[object Map]"===i?(e=new Map,t.forEach(function(r,o){e.set(Lh(o),Lh(r))}),e):"[object Date]"===i?new Date(+t):"[object RegExp]"===i?((e=new RegExp(t.source,t.flags)).lastIndex=t.lastIndex,e):"[object DataView]"===i?new t.constructor(Lh(t.buffer)):"[object ArrayBuffer]"===i?t.slice(0):"Array]"===i.slice(-6)?new t.constructor(t):t}const RGe=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"}),LGe=(t,n)=>RGe.compare(t.name,n.name),PGe=(t,n)=>t.attributes.unary-n.attributes.unary,toe=(t,n,e)=>{if(!t)return;for(let r=0;r{const e=t===lS.NUMBER_OF_FILES?PGe:LGe;return n?e:(i,r)=>-1*e(i,r)})(n,e);return t.children=((t,n)=>{const e=[],i=[];for(const r of n.children)r.type===Ma.FOLDER?e.push(r):i.push(r);return e.sort(t),i.sort(t),[...e,...i]})(i,t),t},UGe=Xt(lc,eoe,Jre,(t,n,e)=>toe(Lh(t.unifiedMapNode),n,e)),noe=Xt(tN,t=>t.rightClickedNodeData);let ioe=(()=>{class t{transform(e,i){return u6(e,i)}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275pipe=lr({name:"areaMetricValid",type:t,pure:!0})}}return t})();function u6(t,n){return t.deltas?.[n]<0||t.attributes?.[n]>0}let HGe=(()=>{class t{transform(e,i){return Eo(e)?"fa fa-file-o":i?"fa fa-folder-open":"fa fa-folder"}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275pipe=lr({name:"mapTreeViewItemIconClass",type:t,pure:!0})}}return t})(),VGe=(()=>{class t{static{this.defaultColor="#000000"}static{this.areMetricZeroColor="#BDBDBD"}constructor(e){this.state=e}transform(e){const{areaMetric:i}=this.state.getValue().dynamicSettings;return u6(e,i)?Eo(e)?void 0:DM(e,this.state.getValue().fileSettings.markedPackages)||t.defaultColor:t.areMetricZeroColor}static{this.\u0275fac=function(i){return new(i||t)(W(Br,16))}}static{this.\u0275pipe=lr({name:"mapTreeViewItemIconColor",type:t,pure:!1})}}return t})(),QGe=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=At({type:t,selectors:[["cc-map-tree-view-item-icon"]],inputs:{node:"node",isOpen:"isOpen"},decls:3,vars:9,consts:[["role","img","aria-hidden","true"]],template:function(i,r){1&i&&(_e(0,"span",0),ze(1,"mapTreeViewItemIconClass"),ze(2,"mapTreeViewItemIconColor")),2&i&&(Cc(po(1,4,r.node,r.isOpen)),Fi("color",tt(2,7,r.node)))},dependencies:[HGe,VGe],encapsulation:2})}}return t})();const zGe=Xt(lc,t=>t.unifiedMapNode?.attributes.unary);let roe=(()=>{class t{transform(e){return Eo(e)}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275pipe=lr({name:"isNodeLeaf",type:t,pure:!0})}}return t})();function GGe(t,n){if(1&t&&(I(0,"span"),ve(1),ze(2,"async"),O()),2&t){const e=He(2);H(),an("",(100*e.unaryValue/tt(2,1,e.rootUnary$)).toFixed(0),"%")}}function qGe(t,n){1&t&&ve(0,"File")}function WGe(t,n){1&t&&ve(0,"Files")}function $Ge(t,n){if(1&t&&(I(0,"span",2),ve(1),ft(2,qGe,1,0,"ng-template",3)(3,WGe,1,0,"ng-template",4),O()),2&t){const e=He(2);ue("ngPlural",e.unaryValue),H(),an(" ",e.unaryValue," ")}}function jGe(t,n){if(1&t&&(I(0,"span",1),ft(1,GGe,3,3,"span")(2,$Ge,4,2),O()),2&t){const e=He();H(),yt(1,e.isHovered?2:1)}}let KGe=(()=>{class t{constructor(e){this.searchedNodePaths$=e.select(j5),this.rootUnary$=e.select(zGe),this.areaMetric$=e.select(Ub)}static{this.\u0275fac=function(i){return new(i||t)(W(Wt))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-map-tree-view-item-name"]],inputs:{node:"node",isHovered:"isHovered",unaryValue:"unaryValue",unaryPercentage:"unaryPercentage"},decls:7,vars:17,consts:[[1,"node-name"],[1,"unary-number"],[3,"ngPlural"],["ngPluralCase","=1"],["ngPluralCase","other"]],template:function(i,r){1&i&&(I(0,"span",0),ze(1,"async"),ze(2,"areaMetricValid"),ze(3,"async"),ve(4),O(),ft(5,jGe,3,1,"span",1),ze(6,"isNodeLeaf")),2&i&&(xn("flattened",r.node.isFlattened)("noAreaMetric",!po(2,10,r.node,tt(1,8,r.areaMetric$)))("tree-search-result",tt(3,13,r.searchedNodePaths$).has(r.node.path)),H(4),an(" ",r.node.name,"\n"),H(),yt(5,tt(6,15,r.node)?-1:5))},dependencies:[CD,qQ,Gn,ioe,roe],encapsulation:2})}}return t})();function XGe(t,n){1&t&&_e(0,"i",1)}let YGe=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=At({type:t,selectors:[["cc-map-tree-view-item-option-buttons"]],inputs:{isFlattened:"isFlattened",openNodeContextMenu:"openNodeContextMenu"},decls:5,vars:1,consts:[["role","button","aria-hidden","true",1,"right-aligned"],["title","Flattened",1,"flattened","fa","fa-eye-slash"],[1,"small-action-button"],["title","Open Node-Context-Menu",3,"click"],[1,"fa","fa-ellipsis-h"]],template:function(i,r){1&i&&(I(0,"span",0),ft(1,XGe,1,0,"i",1),I(2,"div",2)(3,"button",3),We("click",function(s){return r.openNodeContextMenu(s)}),_e(4,"i",4),O()()()),2&i&&(H(),yt(1,r.isFlattened?1:-1))},encapsulation:2})}}return t})();function ZGe(t,n){if(1&t&&_e(0,"cc-map-tree-view-item-option-buttons",4),2&t){const e=He(2);ue("isFlattened",e.node.isFlattened)("openNodeContextMenu",e.openNodeContextMenu)}}function JGe(t,n){if(1&t&&(I(0,"div"),_e(1,"cc-map-tree-view-level",5),O()),2&t){const e=n.$implicit,i=He(3);H(),ue("node",e)("depth",i.depth+1)}}function eqe(t,n){1&t&&yr(0,JGe,2,2,"div",null,Sr),2&t&&wr(He(2).node.children)}function tqe(t,n){if(1&t){const e=kn();I(0,"div"),ze(1,"isNodeLeaf"),I(2,"div",1),ze(3,"async"),ze(4,"async"),ze(5,"async"),ze(6,"areaMetricValid"),We("mouseenter",function(){return Ft(e),kt(He().onMouseEnter())})("mouseleave",function(){return Ft(e),kt(He().onMouseLeave())})("click",function(){return Ft(e),kt(He().onClick())})("contextmenu",function(r){return Ft(e),kt(He().openNodeContextMenu(r))}),_e(7,"cc-map-tree-view-item-icon",2)(8,"cc-map-tree-view-item-name",3),ze(9,"async"),ft(10,ZGe,1,2,"cc-map-tree-view-item-option-buttons",4),ze(11,"async"),ze(12,"async"),ze(13,"areaMetricValid"),O(),I(14,"div"),ft(15,eqe,2,0),O()()}if(2&t){let e;const i=He();(function KH(t,n,e,i,r){Mc(ar,kd,Zg(xt(),t,n,e,i,r),!0)})("tree-element-",i.depth," ",tt(1,23,i.node)?"tree-leaf":"tree-parent",""),H(2),Uu("tree-element-label-",i.depth," tree-element-label"),xn("hovered",tt(3,25,i.hoveredNodeId$)===i.node.id)("marked",(null==(e=tt(4,27,i.rightClickedNodeData$))?null:e.nodeId)===i.node.id),wa("id",i.node.path),ue("title",po(6,31,i.node,tt(5,29,i.areaMetric$))?"":"No Node Area for Chosen Metric"),H(5),ue("node",i.node)("isOpen",i.isOpen),H(),ue("node",i.node)("isHovered",tt(9,34,i.hoveredNodeId$)===i.node.id)("unaryValue",i.node.attributes.unary),H(2),yt(10,tt(11,36,i.hoveredNodeId$)===i.node.id&&po(13,40,i.node,tt(12,38,i.areaMetric$))?10:-1),H(4),Uu("tree-element-children tree-element-children-",i.depth,""),H(),yt(15,i.isOpen?15:-1)}}let nqe=(()=>{class t{constructor(e,i,r,o,s){this.store=e,this.threeSceneService=i,this.idToBuildingService=r,this.threeRendererService=o,this.codeMapMouseEventService=s,this.hoveredNodeId$=this.store.select(rx),this.rightClickedNodeData$=this.store.select(noe),this.areaMetric$=this.store.select(Ub),this.isOpen=!1,this.areMetricValid=!1,this.openNodeContextMenu=a=>{a.preventDefault(),a.stopPropagation(),this.areaMetric$.subscribe(l=>this.areMetricValid=u6(this.node,l)).unsubscribe(),this.areMetricValid&&(this.store.dispatch(Ob({value:{nodeId:this.node.id,xPositionOfRightClickEvent:a.clientX,yPositionOfRightClickEvent:a.clientY}})),document.querySelector(".tree-element-0").addEventListener("scroll",this.scrollFunction))},this.scrollFunction=()=>{this.store.dispatch(Ob({value:null})),document.querySelector(".tree-element-0").removeEventListener("scroll",this.scrollFunction)}}ngOnInit(){this.isOpen=0===this.depth}onMouseEnter(){const e=this.idToBuildingService.get(this.node.id),i=this.threeSceneService.labels?.children;this.codeMapMouseEventService.setLabelHoveredLeaf(e,i),this.codeMapMouseEventService.hoverNode(this.node.id),this.store.dispatch(Nb({value:this.node.id}))}onMouseLeave(){this.threeSceneService.resetLabel(),this.codeMapMouseEventService.unhoverNode(),this.codeMapMouseEventService.clearLabelHoveredBuilding(),this.store.dispatch(Nb({value:null}))}onClick(){this.isOpen=!this.isOpen;const e=this.idToBuildingService.get(this.node.id);this.codeMapMouseEventService.drawLabelSelectedBuilding(e),this.threeSceneService.selectBuilding(e),this.threeSceneService.clearConstantHighlight(),this.threeRendererService.render()}static{this.\u0275fac=function(i){return new(i||t)(W(Wt),W(cc),W(Jw),W(qi),W(ox))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-map-tree-view-level"]],inputs:{node:"node",depth:"depth"},decls:1,vars:1,consts:[[3,"class"],[3,"mouseenter","mouseleave","click","contextmenu","id","title"],[3,"node","isOpen"],[3,"node","isHovered","unaryValue"],[3,"isFlattened","openNodeContextMenu"],[3,"node","depth"]],template:function(i,r){1&i&&ft(0,tqe,16,43,"div",0),2&i&&yt(0,r.node.isExcluded?-1:0)},dependencies:[QGe,KGe,YGe,t,Gn,ioe,roe],encapsulation:2})}}return t})();function iqe(t,n){1&t&&_e(0,"cc-map-tree-view-level",0),2&t&&ue("node",n)("depth",0)}let rqe=(()=>{class t{constructor(e){this.mapTreeViewNode$=e.select(UGe)}static{this.\u0275fac=function(i){return new(i||t)(W(Wt))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-map-tree-view"]],decls:2,vars:3,consts:[[3,"node","depth"]],template:function(i,r){if(1&i&&(ft(0,iqe,1,2,"cc-map-tree-view-level",0),ze(1,"async")),2&i){let o;yt(0,(o=tt(1,1,r.mapTreeViewNode$))?0:-1,o)}},dependencies:[nqe,Gn],styles:["cc-map-tree-view .tree-element-0{overflow-y:auto;max-height:400px;margin-left:3px;margin-top:10px}cc-map-tree-view .tree-element-0 div{margin:0;padding:0;position:relative}cc-map-tree-view .tree-element-0 .tree-element-children{margin-left:19px}cc-map-tree-view .tree-element-label{cursor:default}cc-map-tree-view .tree-element-label{cursor:pointer}cc-map-tree-view .tree-element-label:focus{outline:none}cc-map-tree-view .tree-element-label:hover,cc-map-tree-view .tree-element-label.hovered{background-color:#efefef;border-radius:2px}cc-map-tree-view .tree-element-label.marked{background-color:#efefef;border-radius:2px}cc-map-tree-view .tree-element-label .unary-number{color:#a3a3a3;font-size:.8em;margin-top:1px}cc-map-tree-view .tree-element-label .node-type-icon{display:inline-block;width:14px;margin-left:2px}cc-map-tree-view .tree-element-label .node-name.flattened{color:gray}cc-map-tree-view .tree-element-label .node-name.noAreaMetric{color:#bdbdbd}cc-map-tree-view .tree-element-label .right-aligned{position:absolute;right:6px}cc-map-tree-view .tree-element-label .right-aligned i.flattened{color:gray}cc-map-tree-view .tree-element-label .right-aligned .small-action-button button{min-height:0;width:100%;height:100%;margin:0;background-color:transparent;box-shadow:none}cc-map-tree-view .tree-element-label .right-aligned .small-action-button button:hover{background-color:#ddd}cc-map-tree-view .tree-element-label .right-aligned .small-action-button button i{position:absolute;top:2px;left:6px}cc-map-tree-view .tree-search-result{background-color:#fc801bab}\n"],encapsulation:2})}}return t})(),oqe=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[An,Oi,mGe,pGe,AGe]})}}return t})();cE(iee,[dx,MGe,DGe,rqe,oGe,fGe],[]);let sqe=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[An,Oi,O3,Yx]})}}return t})(),aqe=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({})}}return t})(),ooe=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[Oi,Dy,Bc,An,WR]})}}return t})(),lqe=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[Oi,Dy,Bc,An,ooe]})}}return t})(),cqe=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({providers:[kN]})}}return t})(),dqe=(()=>{class t{constructor(e){this.data=e}static{this.\u0275fac=function(i){return new(i||t)(W(w1))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-custom-config-note-dialog"]],decls:11,vars:2,consts:[[1,"custom-config-note-dialog-container"],["mat-dialog-content","",1,"note-input-container"],["appearance","fill",1,"note-input"],["matInput","","cdkAutosizeMinRows","10","cdkTextareaAutosize","",3,"ngModelChange","ngModel"],["mat-dialog-actions","",1,"note-dialog-action-buttons"],[3,"mat-dialog-close"]],template:function(i,r){1&i&&(I(0,"div",0)(1,"div",1)(2,"mat-form-field",2)(3,"mat-label"),ve(4,"Custom Note"),O(),I(5,"textarea",3),Fc("ngModelChange",function(s){return Bd(r.data,s)||(r.data=s),s}),O()()(),I(6,"div",4)(7,"button",5),ve(8,"Cancel"),O(),I(9,"button",5),ve(10,"Ok"),O()()()),2&i&&(H(5),Tc("ngModel",r.data),H(4),ue("mat-dialog-close",r.data))},dependencies:[nd,td,ic,Oc,Nc,_m,bee,Pf,b0,v0],styles:["cc-custom-config-note-dialog .custom-config-note-dialog-container{padding:20px 24px}cc-custom-config-note-dialog .custom-config-note-dialog-container .note-input-container{padding:0}cc-custom-config-note-dialog .custom-config-note-dialog-container .note-input-container .note-input{width:100%}cc-custom-config-note-dialog .custom-config-note-dialog-container .note-dialog-action-buttons{justify-content:flex-end;padding:0}cc-custom-config-note-dialog .custom-config-note-dialog-container button{padding:12px;margin:0 0 0 10px;color:#1b9cfc;background-color:#8a848414}cc-custom-config-note-dialog .custom-config-note-dialog-container button:hover{background-color:#0000000d;color:#1b9cfc}\n"],encapsulation:2})}}return t})(),uqe=(()=>{class t{constructor(e){this.dialog=e}openDialog(){this.customConfigNote=this.customConfigItem.note,this.dialog.open(dqe,{width:"600px",data:this.customConfigNote}).afterClosed().subscribe(i=>{void 0!==i&&this.customConfigNote!==i&&(this.customConfigNote=i,Ri.editCustomConfigNote(this.customConfigItem.id,i))})}static{this.\u0275fac=function(i){return new(i||t)(W(Is))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-custom-config-note-dialog-button"]],inputs:{customConfigItem:"customConfigItem"},decls:2,vars:0,consts:[["title","Edit/View Note",1,"custom-config-note-dialog-button",3,"click"],[1,"fa","fa-pencil"]],template:function(i,r){1&i&&(I(0,"button",0),We("click",function(){return r.openDialog()}),_e(1,"i",1),O())},encapsulation:2})}}return t})();function soe(t,n){const{mapSelectionMode:e,assignedMaps:i}=px(n),r=[];for(const o of t.assignedMaps.keys())i.has(o)||r.push(t.assignedMaps.get(o));return{mapSelectionMode:t.mapSelectionMode!==e?t.mapSelectionMode:"",mapNames:r}}let hqe=(()=>{class t{constructor(e){this.state=e}transform(e){const{mapSelectionMode:i,mapNames:r}=soe(e,this.state.getValue());return r.length>0||i.length>0?"rgb(204, 204, 204)":"rgba(0, 0, 0, 0.87)"}static{this.\u0275fac=function(i){return new(i||t)(W(Br,16))}}static{this.\u0275pipe=lr({name:"customConfig2ApplicableColor",type:t,pure:!0})}}return t})(),fqe=(()=>{class t{transform(e){const{mapColors:i,mapSelectionMode:r}=e;return r===EF.MULTIPLE?[i.positive,i.neutral,i.negative,i.selected]:[i.positiveDelta,i.negativeDelta,i.selected]}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275pipe=lr({name:"customConfigColorSchemaBySelectionMode",type:t,pure:!0})}}return t})();function mqe(t,n){if(1&t&&(I(0,"p",2),_e(1,"i",8),ve(2),O()),2&t){const e=He();H(2),an(" ",e.customConfigItem.metrics.edgeMetric,"")}}function pqe(t,n){if(1&t&&(I(0,"div",7),_e(1,"span",9),O()),2&t){const e=n.$implicit,i=He();H(),Fi("background-color",i.customConfigItem.isApplicable?e:"rgb(204, 204, 204)")}}let Aqe=(()=>{class t{constructor(e,i,r){this.store=e,this.threeCameraService=i,this.threeOrbitControlsService=r}applyCustomConfig(){Ri.applyCustomConfig(this.customConfigItem.id,this.store,this.threeCameraService,this.threeOrbitControlsService)}static{this.\u0275fac=function(i){return new(i||t)(W(Wt),W(ru),W(Zc))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-apply-custom-config-button"]],inputs:{customConfigItem:"customConfigItem"},decls:17,vars:12,consts:[["mat-dialog-close","",3,"click","disabled","title"],[1,"config-metric-list"],[1,"config-metric"],[1,"fa","fa-arrows-alt"],[1,"fa","fa-arrows-v"],[1,"fa","fa-paint-brush"],[1,"color-schema-container"],[1,"color-swatch-container"],[1,"fa","fa-exchange"],[1,"color-swatch"]],template:function(i,r){1&i&&(I(0,"button",0),ze(1,"customConfig2ApplicableColor"),We("click",function(){return r.applyCustomConfig()}),I(2,"div",1)(3,"p",2),_e(4,"i",3),ve(5),O(),I(6,"p",2),_e(7,"i",4),ve(8),O(),I(9,"p",2),_e(10,"i",5),ve(11),O(),ft(12,mqe,3,1,"p",2),I(13,"div",6),yr(14,pqe,2,2,"div",7,Sr),ze(16,"customConfigColorSchemaBySelectionMode"),O()()()),2&i&&(Fi("color",tt(1,8,r.customConfigItem)),wa("title",r.customConfigItem.name),ue("disabled",!r.customConfigItem.isApplicable),H(5),an(" ",r.customConfigItem.metrics.areaMetric,""),H(3),an(" ",r.customConfigItem.metrics.heightMetric,""),H(3),an(" ",r.customConfigItem.metrics.colorMetric,""),H(),yt(12,r.customConfigItem.metrics.edgeMetric?12:-1),H(2),wr(tt(16,10,r.customConfigItem)))},dependencies:[ic,hqe,fqe],styles:["cc-apply-custom-config-button{display:flex;flex:1}cc-apply-custom-config-button button{flex-direction:row;width:100%;margin:0}cc-apply-custom-config-button button:disabled{cursor:default}cc-apply-custom-config-button button .config-metric-list{display:flex;flex-wrap:wrap;gap:10px}cc-apply-custom-config-button button p{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-size:15px;margin:0;text-align:left}cc-apply-custom-config-button button p.config-name{flex:1 1 auto;width:100%}cc-apply-custom-config-button button p.config-metric{flex:0 0 9em}cc-apply-custom-config-button button .color-schema-container{display:flex;align-items:center;gap:2px}cc-apply-custom-config-button button .color-schema-container .color-swatch-container .color-swatch{display:inline-block;width:16px;height:16px}\n"],encapsulation:2})}}return t})(),gqe=(()=>{class t{constructor(e){this.state=e}transform(e){const{mapSelectionMode:i,mapNames:r}=soe(e,this.state.getValue());return r.length>0&&i.length>0?`This view is partially applicable. To complete your view, please switch to the ${i} mode and select the following map(s): ${r.join(", ")}.`:r.length>0?`To fulfill your view, please select the following map(s): ${r.join(", ")}.`:i.length>0?`This view is partially applicable. To complete your view, please switch to the ${i} mode.`:"Apply Custom View"}static{this.\u0275fac=function(i){return new(i||t)(W(Br,16))}}static{this.\u0275pipe=lr({name:"customConfig2ApplicableMessage",type:t,pure:!0})}}return t})(),bqe=(()=>{class t{transform(e,i){const r=i.toLocaleLowerCase().trimEnd();return e.filter(o=>this.isItemMatchingSearchTerm(o,r))}isItemMatchingSearchTerm(e,i){const r=e.name.toLocaleLowerCase().includes(i),o=e.mapSelectionMode.toLocaleLowerCase().includes(i),s=Object.values(e.metrics).some(a=>a?.toLocaleLowerCase().includes(i));return r||o||s}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275pipe=lr({name:"filterCustomConfigDataBySearchTerm",type:t,pure:!0})}}return t})();const _qe=["matExpansionPanel"];function vqe(t,n){if(1&t){const e=kn();I(0,"mat-list-item",5),ze(1,"customConfig2ApplicableMessage"),I(2,"div",6)(3,"p",7)(4,"strong")(5,"span",8),We("click",function(){const r=Ft(e).$implicit;return kt(He(4).applyCustomConfig(r.id))}),ve(6),ze(7,"truncateText"),O()()()(),I(8,"div",9)(9,"p",10)(10,"span",8),We("click",function(){const r=Ft(e).$implicit;return kt(He(4).applyCustomConfig(r.id))}),ve(11),ze(12,"truncateText"),O()(),_e(13,"cc-custom-config-note-dialog-button",11),O(),I(14,"div",12),_e(15,"cc-apply-custom-config-button",11),I(16,"button",13),We("click",function(){const r=Ft(e).$implicit,o=He(3).$implicit;return kt(He().removeCustomConfig(r.id,o.key))}),_e(17,"i",14),O()()()}if(2&t){const e=n.$implicit;wa("title",tt(1,6,e)),H(3),wa("title",e.name),H(3),an(" ",po(7,8,e.name,75)," "),H(5),an(" ",e.note?po(12,11,e.note,95):"Add Note"," "),H(2),ue("customConfigItem",e),H(2),ue("customConfigItem",e)}}function yqe(t,n){if(1&t&&(I(0,"mat-list"),yr(1,vqe,18,14,"mat-list-item",5,Sr),O()),2&t){const e=He();H(),wr(e)}}function wqe(t,n){1&t&&(I(0,"div",4)(1,"p"),ve(2,"No configurations found."),O()())}function xqe(t,n){if(1&t&&ft(0,yqe,3,0,"mat-list")(1,wqe,3,0,"div",4),2&t){const e=n;yt(0,e.length>0?0:-1),H(),yt(1,0===e.length?1:-1)}}function Cqe(t,n){if(1&t){const e=kn();I(0,"mat-expansion-panel",1,0)(2,"mat-expansion-panel-header",2),We("click",function(){const r=Ft(e).$implicit;return kt(He().toggleGroupExpansion(r.key))}),I(3,"mat-panel-title",3),ve(4," Custom View(s) in "),I(5,"strong"),ve(6),ze(7,"titlecase"),O(),ve(8),O()(),ft(9,xqe,2,2),ze(10,"filterCustomConfigDataBySearchTerm"),O()}if(2&t){let e;const i=n.$implicit,r=He();ue("expanded",r.isGroupExpanded(i.key)||r.searchTerm.length>0),H(6),an(" ",tt(7,4,i.value.mapSelectionMode)," "),H(2),an(" mode for ",i.value.mapNames," "),H(),yt(9,(e=po(10,6,i.value.customConfigItems,r.searchTerm))?9:-1,e)}}let Eqe=(()=>{class t{constructor(e,i,r){this.store=e,this.threeCameraService=i,this.threeOrbitControlsService=r,this.searchTerm="",this.expandedStates={},this.manuallyToggled=new Set}ngOnChanges(e){if(e.searchTerm)if(e.searchTerm.currentValue.length>0)for(const i of Object.keys(this.expandedStates))this.expandedStates[i]=!0;else for(const i of Object.keys(this.expandedStates))this.manuallyToggled.has(i)||(this.expandedStates[i]=!1)}isGroupExpanded(e){return this.searchTerm.length>0?!this.manuallyToggled.has(e)||this.expandedStates[e]:this.expandedStates[e]||!1}toggleGroupExpansion(e){this.expandedStates[e]=!this.isGroupExpanded(e),this.manuallyToggled.add(e)}removeCustomConfig(e,i){Ri.deleteCustomConfig(e),this.expandedStates[i]=!0}applyCustomConfig(e){Ri.applyCustomConfig(e,this.store,this.threeCameraService,this.threeOrbitControlsService)}static{this.\u0275fac=function(i){return new(i||t)(W(Wt),W(ru),W(Zc))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-custom-config-item-group"]],viewQuery:function(i,r){if(1&i&&ti(_qe,5),2&i){let o;mn(o=pn())&&(r.matExpansionPanel=o.first)}},inputs:{customConfigItemGroups:"customConfigItemGroups",searchTerm:"searchTerm"},features:[cr],decls:3,vars:2,consts:[["matExpansionPanel",""],[3,"expanded"],[3,"click"],[1,"custom-config-item-group-title"],[1,"no-configs-found-message"],[3,"title"],[1,"metrics-box"],[1,"config-item-name",3,"title"],["mat-dialog-close","",3,"click"],[1,"custom-config-note"],[1,"custom-config-note-content"],[3,"customConfigItem"],[1,"custom-config-action-buttons"],["title","Remove Custom View",1,"remove-button",3,"click"],[1,"fa","fa-trash"]],template:function(i,r){1&i&&(yr(0,Cqe,11,9,"mat-expansion-panel",1,Sr),ze(2,"keyvalue")),2&i&&wr(tt(2,0,r.customConfigItemGroups))},dependencies:[ic,kre,Ire,Ore,Hre,kze,uqe,Aqe,WQ,PE,Fee,gqe,bqe],styles:["cc-custom-config-item-group .custom-config-item-group-title{color:#000000de;display:inline-block}cc-custom-config-item-group div .metrics-box{margin-top:10px}cc-custom-config-item-group div .custom-config-note{display:flex;flex-wrap:wrap;align-items:center;margin-top:5px}cc-custom-config-item-group div .custom-config-action-buttons{display:flex;align-items:center;margin-bottom:5px}cc-custom-config-item-group p{font-size:15px;margin:0;white-space:pre-line}cc-custom-config-item-group p.custom-config-note-content{margin-right:7px;font-size:13px}\n"],encapsulation:2})}}return t})();function Sqe(t,n,e,i){const{mapSelectionMode:r,assignedMaps:o}=px(n),s={id:"",name:t,creationTime:Date.now(),mapSelectionMode:r,assignedMaps:o,customConfigVersion:"1.0.0",stateSettings:{appSettings:void 0,dynamicSettings:void 0,fileSettings:void 0},camera:e,...i&&{note:i}};return function Tqe(t){t.stateSettings.appSettings={showMetricLabelNameValue:!1,showMetricLabelNodeName:!1,colorLabels:{positive:!1,negative:!1,neutral:!1},amountOfEdgePreviews:0,amountOfTopLabels:0,edgeHeight:0,hideFlatBuildings:!1,invertHeight:!1,invertArea:!1,isLoadingFile:!1,isLoadingMap:!1,isPresentationMode:!1,isWhiteBackground:!1,resetCameraIfNewFileIsLoaded:!1,scaling:void 0,showOnlyBuildingsWithEdges:!1,isEdgeMetricVisible:!0,sortingOrderAscending:!1,isSearchPanelPinned:!1,experimentalFeaturesEnabled:!1,screenshotToClipboardEnabled:!1,layoutAlgorithm:void 0,maxTreeMapFiles:0,sharpnessMode:void 0,isColorMetricLinkedToHeightMetric:!1,enableFloorLabels:!0,mapColors:{labelColorAndAlpha:{alpha:0,rgb:""},base:"",flat:"",incomingEdge:"",markingColors:[],negative:"",negativeDelta:"",neutral:"",outgoingEdge:"",positive:"",positiveDelta:"",selected:""}}}(s),function Fqe(t){t.stateSettings.dynamicSettings={areaMetric:"",colorMetric:"",distributionMetric:"",edgeMetric:"",focusedNodePath:[],heightMetric:"",margin:0,searchPattern:"",sortingOption:void 0,colorRange:{from:0,to:0},colorMode:void 0}}(s),function kqe(t){t.stateSettings.fileSettings={blacklist:void 0,edges:[],attributeDescriptors:{},markedPackages:[]}}(s),aoe(n,s.stateSettings),s.id=IM()(JSON.stringify(s,cS)),s}function aoe(t,n){for(const[e,i]of Object.entries(t))Object.prototype.hasOwnProperty.call(n,e)&&("object"!=typeof i||Array.isArray(i)||null===i||void 0===n[e]?n[e]=i:aoe(i,n[e]))}let Iqe=(()=>{class t{constructor(e){this.data=e}static{this.\u0275fac=function(i){return new(i||t)(W(w1))}}static{this.\u0275cmp=At({type:t,selectors:[["ng-component"]],decls:10,vars:4,consts:[[1,"confirmation-message"],["mat-dialog-title",""],["mat-dialog-content",""],["mat-dialog-actions",""],["mat-button","",3,"mat-dialog-close"],["mat-button","","cdkFocusInitial","",1,"submit-button",3,"mat-dialog-close"]],template:function(i,r){1&i&&(I(0,"div",0)(1,"h1",1),ve(2),O(),I(3,"div",2),ve(4),O()(),I(5,"div",3)(6,"button",4),ve(7,"CANCEL"),O(),I(8,"button",5),ve(9,"OK"),O()()),2&i&&(H(2),ur(r.data.title),H(2),ur(r.data.message),H(2),ue("mat-dialog-close",!1),H(2),ue("mat-dialog-close",!0))},dependencies:[Bs,ic,sS,Oc,Nc],styles:[".cc-confirmation-dialog .mat-mdc-dialog-container .confirmation-message{padding:10px}.cc-confirmation-dialog .mat-mdc-dialog-container .mat-mdc-dialog-actions{justify-content:flex-end}.cc-confirmation-dialog .mat-mdc-dialog-container .mat-mdc-dialog-actions .mat-mdc-button{background-color:#8a848414}.cc-confirmation-dialog .mat-mdc-dialog-container .mat-mdc-dialog-actions .mat-mdc-button.submit-button{color:#009688}\n"],encapsulation:2})}}return t})();function Lqe(t,n){if(1&t){const e=kn();I(0,"span",0),ve(1,"Do you want to download and then purge old unused Configs to make space for new ones?"),O(),I(2,"button",1),We("click",function(){return Ft(e),kt(He().showPurgeConfirmDialog())}),ve(3," DOWNLOAD & PURGE... "),O()}}let Pqe=(()=>{class t{constructor(e){this.dialog=e,this.isLocalStorageSizeValid=!0}ngOnInit(){this.isLocalStorageSizeValid=(()=>{let n="";for(const[i,r]of Object.entries(localStorage))n+=i+r;return 3+16*n.length/8/1024<=768})()}showPurgeConfirmDialog(){const e=function Rqe(){const t=new Set,n=Ri.getCustomConfigs(),e=new Map;for(const[r,o]of n.entries())void 0===o?.creationTime&&(o.creationTime=Date.now()),(Date.now()-o.creationTime)/2592e6>=6&&(e.set(r,Ri.createExportCustomConfigFromConfig(o)),t.add(o));return e.size>0&&Ri.downloadCustomConfigs(e),t}();0!==e.size?this.dialog.open(Iqe,{panelClass:"cc-confirmation-dialog",data:{title:"Confirm to purge old Configs",message:"Are you sure to delete old Configs now?"}}).afterClosed().subscribe(r=>{r&&Ri.deleteCustomConfigs([...e])}):this.dialog.open(Op,{data:{title:"Download Error",message:"Could not download and purge old configs automatically! Please try it by yourself."}})}static{this.\u0275fac=function(i){return new(i||t)(W(Is))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-download-and-purge-configs"]],decls:1,vars:1,consts:[[1,"exceed-local-storage-message"],["mat-flat-button","","title","Download old unused Custom Views as a backup file and then delete them in the browser.",1,"exceed-local-storage-button",3,"click"]],template:function(i,r){1&i&&ft(0,Lqe,4,0),2&i&&yt(0,r.isLocalStorageSizeValid?-1:0)},dependencies:[Bs],styles:["[_nghost-%COMP%]{text-align:right}.exceed-local-storage-message[_ngcontent-%COMP%]{display:block;text-align:left;padding:0 16px;color:var(--exceed-local-storage-message-text-color)}.exceed-local-storage-button[_ngcontent-%COMP%]{margin-right:89px;color:var(--exceed-local-storage-button-text-color);background-color:var(--exceed-local-storage-button-background-color)}"]})}}return t})();function Nqe(t,n){if(1&t&&(I(0,"mat-error"),ve(1),O()),2&t){const e=He();H(),ur(e.getErrorMessage())}}let Oqe=(()=>{class t{constructor(e,i,r){this.state=e,this.threeCameraService=i,this.threeOrbitControlsService=r}ngOnInit(){const e=px(this.state.getValue());this.customConfigName=new QG("",[ZD.required,Uqe(e)]),this.customConfigName.setValue(Ri.getConfigNameSuggestionByFileState(e))}getErrorMessage(){return this.customConfigName.hasError("required")?"Please enter a view name.":this.customConfigName.hasError("Error")?this.customConfigName.getError("Error"):""}addCustomConfig(){const e=Sqe(this.customConfigName.value,this.state.getValue(),{camera:this.threeCameraService.camera.position,cameraTarget:this.threeOrbitControlsService.controls.target},this.customConfigNote);Ri.addCustomConfig(e)}static{this.\u0275fac=function(i){return new(i||t)(W(Br),W(ru),W(Zc))}}static{this.\u0275cmp=At({type:t,selectors:[["ng-component"]],decls:24,vars:4,consts:[["xmlns","http://www.w3.org/1999/html",1,"header"],["matInput","","required","",1,"custom-config-input",3,"formControl"],["cdkAutosizeMinRows","8","cdkTextareaAutosize","","matInput","","required","",1,"custom-config-input",3,"ngModelChange","ngModel"],["mat-flat-button","","mat-dialog-close","",3,"click","disabled"]],template:function(i,r){1&i&&(I(0,"mat-toolbar",0)(1,"h2"),ve(2,"Add Custom View"),O()(),I(3,"mat-dialog-content")(4,"p")(5,"mat-form-field")(6,"mat-label"),ve(7,"Save individual configurations for your map."),O(),_e(8,"input",1),I(9,"mat-hint"),ve(10,"Config View Name"),O(),ft(11,Nqe,2,1,"mat-error"),O()(),I(12,"p")(13,"mat-form-field")(14,"mat-label"),ve(15,"Provide custom note for configuration (optional)"),O(),I(16,"textarea",2),Fc("ngModelChange",function(s){return Bd(r.customConfigNote,s)||(r.customConfigNote=s),s}),ve(17," "),O(),I(18,"mat-hint"),ve(19,"Config Note"),O()()()(),I(20,"mat-dialog-actions"),_e(21,"cc-download-and-purge-configs"),I(22,"button",3),We("click",function(){return r.addCustomConfig()}),ve(23,"ADD"),O()()),2&i&&(H(8),ue("formControl",r.customConfigName),H(3),yt(11,r.customConfigName.invalid?11:-1),H(5),Tc("ngModel",r.customConfigNote),H(6),ue("disabled",r.customConfigName.invalid))},dependencies:[nd,td,xN,oee,Bs,ic,Oc,Nc,SA,_m,bee,Pf,b0,tM,v0,eM,Pqe],encapsulation:2})}}return t})();function Uqe(t){return n=>Ri.hasCustomConfigByName(t.mapSelectionMode,t.assignedMaps,n.value)?{Error:"A Custom View with this name already exists."}:null}let loe=(()=>{class t{constructor(e){this.dialog=e}showAddCustomConfigDialog(){this.dialog.open(Oqe,{panelClass:"cc-add-custom-config-dialog"})}static{this.\u0275fac=function(i){return new(i||t)(W(Is))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-add-custom-config-button"]],decls:2,vars:0,consts:[["title","Create new Custom View",1,"cc-ribbon-bar-menu-button",3,"click"],[1,"fa","fa-plus"]],template:function(i,r){1&i&&(I(0,"button",0),We("click",function(){return r.showAddCustomConfigDialog()}),_e(1,"i",1),O())},encapsulation:2})}}return t})(),Hqe=(()=>{class t{upload(){const e=Lne();e.addEventListener("change",()=>{this.uploadOnEvent(e)}),e.click()}uploadOnEvent(e){return f(function*(){const i=yield Promise.all(Une(e.files));for(const r of i)try{Ri.importCustomConfigs(r)}catch{}})()}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=At({type:t,selectors:[["cc-upload-custom-config-button"]],decls:2,vars:0,consts:[["title","Upload Custom View (.cc.config.json file).",1,"action-button",3,"click"],[1,"fa","fa-folder-open"]],template:function(i,r){1&i&&(I(0,"button",0),We("click",function(){return r.upload()}),_e(1,"i",1),O())},encapsulation:2})}}return t})(),Gqe=(()=>{class t{constructor(e){this.downloadCustomConfigService=e}ngOnInit(){this.subscription=this.downloadCustomConfigService.downloadableCustomConfigs$.subscribe(e=>{this.downloadableConfigs=e})}ngOnDestroy(){this.subscription.unsubscribe()}downloadPreloadedCustomConfigs(){!function zqe(t){const n={downloadApiVersion:"1.0.1",timestamp:Date.now(),customConfigs:t},e=fm.getNewTimestamp()+".cc.config.json";FN.downloadData(JSON.stringify(n,cS),e)}(this.downloadableConfigs)}static{this.\u0275fac=function(i){return new(i||t)(W(kN))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-download-custom-configs-button"]],decls:2,vars:1,consts:[["title","Download Custom View related to currently uploaded maps, if any.",3,"click","disabled"],[1,"fa","fa-download"]],template:function(i,r){1&i&&(I(0,"button",0),We("click",function(){return r.downloadPreloadedCustomConfigs()}),_e(1,"i",1),O()),2&i&&ue("disabled",0===r.downloadableConfigs.size)},encapsulation:2})}}return t})(),qqe=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[Oi,An,ooe,aqe,lqe,cqe,Bc,Kre]})}}return t})();cE(Cee,[loe],[]),cE(xee,[nd,td,aee,Nc,SA,_m,Ize,Rd,Hqe,loe,Gqe,Eqe],[Gn]);let Wqe=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[An,Oi,O3,Yx]})}}return t})(),$qe=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[An,MN]})}}return t})(),jqe=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[An,Oi]})}}return t})(),Kqe=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[An,a6,$qe,jqe,Yx,Oi]})}}return t})(),Xqe=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[An]})}}return t})(),Yqe=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[An,Oi,oqe,jze,qqe,iGe,zze,sqe,Wqe,Gze,Xqe,qze,Kqe,Wze,Kze]})}}return t})(),Zqe=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[GA]})}}return t})(),Jqe=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[An,Oi]})}}return t})(),eWe=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[An,Oi,O3]})}}return t})(),tWe=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[Oi,Yx,eWe,Jqe,GA]})}}return t})(),nWe=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[An]})}}return t})(),iWe=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[An,GA]})}}return t})(),rWe=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({providers:[Nie],imports:[An,Oi,Bc,Qre]})}}return t})(),oWe=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({providers:[Kne],imports:[An,GA]})}}return t})(),sWe=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[An,Oi]})}}return t})(),aWe=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[An,GA,Zz,Oi,VN,Bc,s6]})}}return t})(),lWe=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[An,Oi]})}}return t})(),cWe=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[An,GA,Oi,Dy,Bc]})}}return t})(),dWe=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[An,Zqe,iWe,oWe,aWe,cWe,rWe,nWe,lWe,sWe,tWe]})}}return t})(),uWe=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[Qze,An,Pze,Hze,Yqe,dWe,Oze,Vze]})}}return t})();let qA={async:!1,baseUrl:null,breaks:!1,extensions:null,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,hooks:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1};const doe=/[&<>"']/,mWe=new RegExp(doe.source,"g"),uoe=/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,pWe=new RegExp(uoe.source,"g"),AWe={"&":"&","<":"<",">":">",'"':""","'":"'"},hoe=t=>AWe[t];function fa(t,n){if(n){if(doe.test(t))return t.replace(mWe,hoe)}else if(uoe.test(t))return t.replace(pWe,hoe);return t}const gWe=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function foe(t){return t.replace(gWe,(n,e)=>"colon"===(e=e.toLowerCase())?":":"#"===e.charAt(0)?"x"===e.charAt(1)?String.fromCharCode(parseInt(e.substring(2),16)):String.fromCharCode(+e.substring(1)):"")}const bWe=/(^|[^\[])\^/g;function Vr(t,n){t="string"==typeof t?t:t.source,n=n||"";const e={replace:(i,r)=>(r=(r=r.source||r).replace(bWe,"$1"),t=t.replace(i,r),e),getRegex:()=>new RegExp(t,n)};return e}const _We=/[^\w:]/g,vWe=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function moe(t,n,e){if(t){let i;try{i=decodeURIComponent(foe(e)).replace(_We,"").toLowerCase()}catch{return null}if(0===i.indexOf("javascript:")||0===i.indexOf("vbscript:")||0===i.indexOf("data:"))return null}n&&!vWe.test(e)&&(e=function CWe(t,n){z3[" "+t]||(z3[" "+t]=yWe.test(t)?t+"/":q3(t,"/",!0));const e=-1===(t=z3[" "+t]).indexOf(":");return"//"===n.substring(0,2)?e?n:t.replace(wWe,"$1")+n:"/"===n.charAt(0)?e?n:t.replace(xWe,"$1")+n:t+n}(n,e));try{e=encodeURI(e).replace(/%25/g,"%")}catch{return null}return e}const z3={},yWe=/^[^:]+:\/*[^/]*$/,wWe=/^([^:]+:)[\s\S]*$/,xWe=/^([^:]+:\/*[^/]*)[\s\S]*$/,G3={exec:function(){}};function poe(t,n){const i=t.replace(/\|/g,(o,s,a)=>{let l=!1,c=s;for(;--c>=0&&"\\"===a[c];)l=!l;return l?"|":" |"}).split(/ \|/);let r=0;if(i[0].trim()||i.shift(),i.length>0&&!i[i.length-1].trim()&&i.pop(),i.length>n)i.splice(n);else for(;i.length1;)1&n&&(e+=t),n>>=1,t+=t;return e+t}function goe(t,n,e,i){const r=n.href,o=n.title?fa(n.title):null,s=t[1].replace(/\\([\[\]])/g,"$1");if("!"!==t[0].charAt(0)){i.state.inLink=!0;const a={type:"link",raw:e,href:r,title:o,text:s,tokens:i.inlineTokens(s)};return i.state.inLink=!1,a}return{type:"image",raw:e,href:r,title:o,text:fa(s)}}class h6{constructor(n){this.options=n||qA}space(n){const e=this.rules.block.newline.exec(n);if(e&&e[0].length>0)return{type:"space",raw:e[0]}}code(n){const e=this.rules.block.code.exec(n);if(e){const i=e[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:e[0],codeBlockStyle:"indented",text:this.options.pedantic?i:q3(i,"\n")}}}fences(n){const e=this.rules.block.fences.exec(n);if(e){const i=e[0],r=function SWe(t,n){const e=t.match(/^(\s+)(?:```)/);if(null===e)return n;const i=e[1];return n.split("\n").map(r=>{const o=r.match(/^\s+/);if(null===o)return r;const[s]=o;return s.length>=i.length?r.slice(i.length):r}).join("\n")}(i,e[3]||"");return{type:"code",raw:i,lang:e[2]?e[2].trim().replace(this.rules.inline._escapes,"$1"):e[2],text:r}}}heading(n){const e=this.rules.block.heading.exec(n);if(e){let i=e[2].trim();if(/#$/.test(i)){const r=q3(i,"#");(this.options.pedantic||!r||/ $/.test(r))&&(i=r.trim())}return{type:"heading",raw:e[0],depth:e[1].length,text:i,tokens:this.lexer.inline(i)}}}hr(n){const e=this.rules.block.hr.exec(n);if(e)return{type:"hr",raw:e[0]}}blockquote(n){const e=this.rules.block.blockquote.exec(n);if(e){const i=e[0].replace(/^ *>[ \t]?/gm,""),r=this.lexer.state.top;this.lexer.state.top=!0;const o=this.lexer.blockTokens(i);return this.lexer.state.top=r,{type:"blockquote",raw:e[0],tokens:o,text:i}}}list(n){let e=this.rules.block.list.exec(n);if(e){let i,r,o,s,a,l,c,d,u,h,m,A,v=e[1].trim();const x=v.length>1,C={type:"list",raw:"",ordered:x,start:x?+v.slice(0,-1):"",loose:!1,items:[]};v=x?`\\d{1,9}\\${v.slice(-1)}`:`\\${v}`,this.options.pedantic&&(v=x?v:"[*+-]");const w=new RegExp(`^( {0,3}${v})((?:[\t ][^\\n]*)?(?:\\n|$))`);for(;n&&(A=!1,(e=w.exec(n))&&!this.rules.block.hr.test(n));){if(i=e[0],n=n.substring(i.length),d=e[2].split("\n",1)[0].replace(/^\t+/,M=>" ".repeat(3*M.length)),u=n.split("\n",1)[0],this.options.pedantic?(s=2,m=d.trimLeft()):(s=e[2].search(/[^ ]/),s=s>4?1:s,m=d.slice(s),s+=e[1].length),l=!1,!d&&/^ *$/.test(u)&&(i+=u+"\n",n=n.substring(u.length+1),A=!0),!A){const M=new RegExp(`^ {0,${Math.min(3,s-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ \t][^\\n]*)?(?:\\n|$))`),B=new RegExp(`^ {0,${Math.min(3,s-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),P=new RegExp(`^ {0,${Math.min(3,s-1)}}(?:\`\`\`|~~~)`),$=new RegExp(`^ {0,${Math.min(3,s-1)}}#`);for(;n&&(h=n.split("\n",1)[0],u=h,this.options.pedantic&&(u=u.replace(/^ {1,4}(?=( {4})*[^ ])/g," ")),!(P.test(u)||$.test(u)||M.test(u)||B.test(n)));){if(u.search(/[^ ]/)>=s||!u.trim())m+="\n"+u.slice(s);else{if(l||d.search(/[^ ]/)>=4||P.test(d)||$.test(d)||B.test(d))break;m+="\n"+u}!l&&!u.trim()&&(l=!0),i+=h+"\n",n=n.substring(h.length+1),d=u.slice(s)}}C.loose||(c?C.loose=!0:/\n *\n *$/.test(i)&&(c=!0)),this.options.gfm&&(r=/^\[[ xX]\] /.exec(m),r&&(o="[ ] "!==r[0],m=m.replace(/^\[[ xX]\] +/,""))),C.items.push({type:"list_item",raw:i,task:!!r,checked:o,loose:!1,text:m}),C.raw+=i}C.items[C.items.length-1].raw=i.trimRight(),C.items[C.items.length-1].text=m.trimRight(),C.raw=C.raw.trimRight();const S=C.items.length;for(a=0;a"space"===P.type),B=M.length>0&&M.some(P=>/\n.*\n/.test(P.raw));C.loose=B}if(C.loose)for(a=0;a$/,"$1").replace(this.rules.inline._escapes,"$1"):"",o=e[3]?e[3].substring(1,e[3].length-1).replace(this.rules.inline._escapes,"$1"):e[3];return{type:"def",tag:i,raw:e[0],href:r,title:o}}}table(n){const e=this.rules.block.table.exec(n);if(e){const i={type:"table",header:poe(e[1]).map(r=>({text:r})),align:e[2].replace(/^ *|\| *$/g,"").split(/ *\| */),rows:e[3]&&e[3].trim()?e[3].replace(/\n[ \t]*$/,"").split("\n"):[]};if(i.header.length===i.align.length){i.raw=e[0];let o,s,a,l,r=i.align.length;for(o=0;o({text:c}));for(r=i.header.length,s=0;s/i.test(e[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(e[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(e[0])&&(this.lexer.state.inRawBlock=!1),{type:this.options.sanitize?"text":"html",raw:e[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(e[0]):fa(e[0]):e[0]}}link(n){const e=this.rules.inline.link.exec(n);if(e){const i=e[2].trim();if(!this.options.pedantic&&/^$/.test(i))return;const s=q3(i.slice(0,-1),"\\");if((i.length-s.length)%2==0)return}else{const s=function EWe(t,n){if(-1===t.indexOf(n[1]))return-1;const e=t.length;let i=0,r=0;for(;r-1){const l=(0===e[0].indexOf("!")?5:4)+e[1].length+s;e[2]=e[2].substring(0,s),e[0]=e[0].substring(0,l).trim(),e[3]=""}}let r=e[2],o="";if(this.options.pedantic){const s=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(r);s&&(r=s[1],o=s[3])}else o=e[3]?e[3].slice(1,-1):"";return r=r.trim(),/^$/.test(i)?r.slice(1):r.slice(1,-1)),goe(e,{href:r&&r.replace(this.rules.inline._escapes,"$1"),title:o&&o.replace(this.rules.inline._escapes,"$1")},e[0],this.lexer)}}reflink(n,e){let i;if((i=this.rules.inline.reflink.exec(n))||(i=this.rules.inline.nolink.exec(n))){let r=(i[2]||i[1]).replace(/\s+/g," ");if(r=e[r.toLowerCase()],!r){const o=i[0].charAt(0);return{type:"text",raw:o,text:o}}return goe(i,r,i[0],this.lexer)}}emStrong(n,e,i=""){let r=this.rules.inline.emStrong.lDelim.exec(n);if(!r||r[3]&&i.match(/[\p{L}\p{N}]/u))return;const o=r[1]||r[2]||"";if(!o||o&&(""===i||this.rules.inline.punctuation.exec(i))){const s=r[0].length-1;let a,l,c=s,d=0;const u="*"===r[0][0]?this.rules.inline.emStrong.rDelimAst:this.rules.inline.emStrong.rDelimUnd;for(u.lastIndex=0,e=e.slice(-1*n.length+s);null!=(r=u.exec(e));){if(a=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!a)continue;if(l=a.length,r[3]||r[4]){c+=l;continue}if((r[5]||r[6])&&s%3&&!((s+l)%3)){d+=l;continue}if(c-=l,c>0)continue;l=Math.min(l,l+c+d);const h=n.slice(0,s+r.index+(r[0].length-a.length)+l);if(Math.min(s,l)%2){const A=h.slice(1,-1);return{type:"em",raw:h,text:A,tokens:this.lexer.inlineTokens(A)}}const m=h.slice(2,-2);return{type:"strong",raw:h,text:m,tokens:this.lexer.inlineTokens(m)}}}}codespan(n){const e=this.rules.inline.code.exec(n);if(e){let i=e[2].replace(/\n/g," ");const r=/[^ ]/.test(i),o=/^ /.test(i)&&/ $/.test(i);return r&&o&&(i=i.substring(1,i.length-1)),i=fa(i,!0),{type:"codespan",raw:e[0],text:i}}}br(n){const e=this.rules.inline.br.exec(n);if(e)return{type:"br",raw:e[0]}}del(n){const e=this.rules.inline.del.exec(n);if(e)return{type:"del",raw:e[0],text:e[2],tokens:this.lexer.inlineTokens(e[2])}}autolink(n,e){const i=this.rules.inline.autolink.exec(n);if(i){let r,o;return"@"===i[2]?(r=fa(this.options.mangle?e(i[1]):i[1]),o="mailto:"+r):(r=fa(i[1]),o=r),{type:"link",raw:i[0],text:r,href:o,tokens:[{type:"text",raw:r,text:r}]}}}url(n,e){let i;if(i=this.rules.inline.url.exec(n)){let r,o;if("@"===i[2])r=fa(this.options.mangle?e(i[0]):i[0]),o="mailto:"+r;else{let s;do{s=i[0],i[0]=this.rules.inline._backpedal.exec(i[0])[0]}while(s!==i[0]);r=fa(i[0]),o="www."===i[1]?"http://"+i[0]:i[0]}return{type:"link",raw:i[0],text:r,href:o,tokens:[{type:"text",raw:r,text:r}]}}}inlineText(n,e){const i=this.rules.inline.text.exec(n);if(i){let r;return r=this.lexer.state.inRawBlock?this.options.sanitize?this.options.sanitizer?this.options.sanitizer(i[0]):fa(i[0]):i[0]:fa(this.options.smartypants?e(i[0]):i[0]),{type:"text",raw:i[0],text:r}}}}const jn={newline:/^(?: *(?:\n|$))+/,code:/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,hr:/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/,html:"^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n *)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))",def:/^ {0,3}\[(label)\]: *(?:\n *)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/,table:G3,lheading:/^((?:.|\n(?!\n))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,text:/^[^\n]+/,_label:/(?!\s*\])(?:\\.|[^\[\]\\])+/,_title:/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/};jn.def=Vr(jn.def).replace("label",jn._label).replace("title",jn._title).getRegex(),jn.bullet=/(?:[*+-]|\d{1,9}[.)])/,jn.listItemStart=Vr(/^( *)(bull) */).replace("bull",jn.bullet).getRegex(),jn.list=Vr(jn.list).replace(/bull/g,jn.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+jn.def.source+")").getRegex(),jn._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",jn._comment=/|$)/,jn.html=Vr(jn.html,"i").replace("comment",jn._comment).replace("tag",jn._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),jn.paragraph=Vr(jn._paragraph).replace("hr",jn.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",jn._tag).getRegex(),jn.blockquote=Vr(jn.blockquote).replace("paragraph",jn.paragraph).getRegex(),jn.normal={...jn},jn.gfm={...jn.normal,table:"^ *([^\\n ].*\\|.*)\\n {0,3}(?:\\| *)?(:?-+:? *(?:\\| *:?-+:? *)*)(?:\\| *)?(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"},jn.gfm.table=Vr(jn.gfm.table).replace("hr",jn.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",jn._tag).getRegex(),jn.gfm.paragraph=Vr(jn._paragraph).replace("hr",jn.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("table",jn.gfm.table).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",jn._tag).getRegex(),jn.pedantic={...jn.normal,html:Vr("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",jn._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:G3,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:Vr(jn.normal._paragraph).replace("hr",jn.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",jn.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()};const Dn={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:G3,tag:"^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(ref)\]/,nolink:/^!?\[(ref)\](?:\[\])?/,reflinkSearch:"reflink|nolink(?!\\()",emStrong:{lDelim:/^(?:\*+(?:([punct_])|[^\s*]))|^_+(?:([punct*])|([^\s_]))/,rDelimAst:/^(?:[^_*\\]|\\.)*?\_\_(?:[^_*\\]|\\.)*?\*(?:[^_*\\]|\\.)*?(?=\_\_)|(?:[^*\\]|\\.)+(?=[^*])|[punct_](\*+)(?=[\s]|$)|(?:[^punct*_\s\\]|\\.)(\*+)(?=[punct_\s]|$)|[punct_\s](\*+)(?=[^punct*_\s])|[\s](\*+)(?=[punct_])|[punct_](\*+)(?=[punct_])|(?:[^punct*_\s\\]|\\.)(\*+)(?=[^punct*_\s])/,rDelimUnd:/^(?:[^_*\\]|\\.)*?\*\*(?:[^_*\\]|\\.)*?\_(?:[^_*\\]|\\.)*?(?=\*\*)|(?:[^_\\]|\\.)+(?=[^_])|[punct*](\_+)(?=[\s]|$)|(?:[^punct*_\s\\]|\\.)(\_+)(?=[punct*\s]|$)|[punct*\s](\_+)(?=[^punct*_\s])|[\s](\_+)(?=[punct*])|[punct*](\_+)(?=[punct*])/},code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:G3,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\.5&&(i="x"+i.toString(16)),n+="&#"+i+";";return n}Dn._punctuation="!\"#$%&'()+\\-.,/:;<=>?@\\[\\]`^{|}~",Dn.punctuation=Vr(Dn.punctuation).replace(/punctuation/g,Dn._punctuation).getRegex(),Dn.blockSkip=/\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g,Dn.escapedEmSt=/(?:^|[^\\])(?:\\\\)*\\[*_]/g,Dn._comment=Vr(jn._comment).replace("(?:--\x3e|$)","--\x3e").getRegex(),Dn.emStrong.lDelim=Vr(Dn.emStrong.lDelim).replace(/punct/g,Dn._punctuation).getRegex(),Dn.emStrong.rDelimAst=Vr(Dn.emStrong.rDelimAst,"g").replace(/punct/g,Dn._punctuation).getRegex(),Dn.emStrong.rDelimUnd=Vr(Dn.emStrong.rDelimUnd,"g").replace(/punct/g,Dn._punctuation).getRegex(),Dn._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,Dn._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,Dn._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,Dn.autolink=Vr(Dn.autolink).replace("scheme",Dn._scheme).replace("email",Dn._email).getRegex(),Dn._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,Dn.tag=Vr(Dn.tag).replace("comment",Dn._comment).replace("attribute",Dn._attribute).getRegex(),Dn._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,Dn._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/,Dn._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,Dn.link=Vr(Dn.link).replace("label",Dn._label).replace("href",Dn._href).replace("title",Dn._title).getRegex(),Dn.reflink=Vr(Dn.reflink).replace("label",Dn._label).replace("ref",jn._label).getRegex(),Dn.nolink=Vr(Dn.nolink).replace("ref",jn._label).getRegex(),Dn.reflinkSearch=Vr(Dn.reflinkSearch,"g").replace("reflink",Dn.reflink).replace("nolink",Dn.nolink).getRegex(),Dn.normal={...Dn},Dn.pedantic={...Dn.normal,strong:{start:/^__|\*\*/,middle:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,endAst:/\*\*(?!\*)/g,endUnd:/__(?!_)/g},em:{start:/^_|\*/,middle:/^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,endAst:/\*(?!\*)/g,endUnd:/_(?!_)/g},link:Vr(/^!?\[(label)\]\((.*?)\)/).replace("label",Dn._label).getRegex(),reflink:Vr(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",Dn._label).getRegex()},Dn.gfm={...Dn.normal,escape:Vr(Dn.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\l+" ".repeat(c.length));n;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some(a=>!!(i=a.call({lexer:this},n,e))&&(n=n.substring(i.raw.length),e.push(i),!0)))){if(i=this.tokenizer.space(n)){n=n.substring(i.raw.length),1===i.raw.length&&e.length>0?e[e.length-1].raw+="\n":e.push(i);continue}if(i=this.tokenizer.code(n)){n=n.substring(i.raw.length),r=e[e.length-1],!r||"paragraph"!==r.type&&"text"!==r.type?e.push(i):(r.raw+="\n"+i.raw,r.text+="\n"+i.text,this.inlineQueue[this.inlineQueue.length-1].src=r.text);continue}if(i=this.tokenizer.fences(n)){n=n.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.heading(n)){n=n.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.hr(n)){n=n.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.blockquote(n)){n=n.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.list(n)){n=n.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.html(n)){n=n.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.def(n)){n=n.substring(i.raw.length),r=e[e.length-1],!r||"paragraph"!==r.type&&"text"!==r.type?this.tokens.links[i.tag]||(this.tokens.links[i.tag]={href:i.href,title:i.title}):(r.raw+="\n"+i.raw,r.text+="\n"+i.raw,this.inlineQueue[this.inlineQueue.length-1].src=r.text);continue}if(i=this.tokenizer.table(n)){n=n.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.lheading(n)){n=n.substring(i.raw.length),e.push(i);continue}if(o=n,this.options.extensions&&this.options.extensions.startBlock){let a=1/0;const l=n.slice(1);let c;this.options.extensions.startBlock.forEach(function(d){c=d.call({lexer:this},l),"number"==typeof c&&c>=0&&(a=Math.min(a,c))}),a<1/0&&a>=0&&(o=n.substring(0,a+1))}if(this.state.top&&(i=this.tokenizer.paragraph(o))){r=e[e.length-1],s&&"paragraph"===r.type?(r.raw+="\n"+i.raw,r.text+="\n"+i.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=r.text):e.push(i),s=o.length!==n.length,n=n.substring(i.raw.length);continue}if(i=this.tokenizer.text(n)){n=n.substring(i.raw.length),r=e[e.length-1],r&&"text"===r.type?(r.raw+="\n"+i.raw,r.text+="\n"+i.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=r.text):e.push(i);continue}if(n){const a="Infinite loop on byte: "+n.charCodeAt(0);if(this.options.silent){console.error(a);break}throw new Error(a)}}return this.state.top=!0,e}inline(n,e=[]){return this.inlineQueue.push({src:n,tokens:e}),e}inlineTokens(n,e=[]){let i,r,o,a,l,c,s=n;if(this.tokens.links){const d=Object.keys(this.tokens.links);if(d.length>0)for(;null!=(a=this.tokenizer.rules.inline.reflinkSearch.exec(s));)d.includes(a[0].slice(a[0].lastIndexOf("[")+1,-1))&&(s=s.slice(0,a.index)+"["+Aoe("a",a[0].length-2)+"]"+s.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;null!=(a=this.tokenizer.rules.inline.blockSkip.exec(s));)s=s.slice(0,a.index)+"["+Aoe("a",a[0].length-2)+"]"+s.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;null!=(a=this.tokenizer.rules.inline.escapedEmSt.exec(s));)s=s.slice(0,a.index+a[0].length-2)+"++"+s.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex),this.tokenizer.rules.inline.escapedEmSt.lastIndex--;for(;n;)if(l||(c=""),l=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some(d=>!!(i=d.call({lexer:this},n,e))&&(n=n.substring(i.raw.length),e.push(i),!0)))){if(i=this.tokenizer.escape(n)){n=n.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.tag(n)){n=n.substring(i.raw.length),r=e[e.length-1],r&&"text"===i.type&&"text"===r.type?(r.raw+=i.raw,r.text+=i.text):e.push(i);continue}if(i=this.tokenizer.link(n)){n=n.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.reflink(n,this.tokens.links)){n=n.substring(i.raw.length),r=e[e.length-1],r&&"text"===i.type&&"text"===r.type?(r.raw+=i.raw,r.text+=i.text):e.push(i);continue}if(i=this.tokenizer.emStrong(n,s,c)){n=n.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.codespan(n)){n=n.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.br(n)){n=n.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.del(n)){n=n.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.autolink(n,boe)){n=n.substring(i.raw.length),e.push(i);continue}if(!this.state.inLink&&(i=this.tokenizer.url(n,boe))){n=n.substring(i.raw.length),e.push(i);continue}if(o=n,this.options.extensions&&this.options.extensions.startInline){let d=1/0;const u=n.slice(1);let h;this.options.extensions.startInline.forEach(function(m){h=m.call({lexer:this},u),"number"==typeof h&&h>=0&&(d=Math.min(d,h))}),d<1/0&&d>=0&&(o=n.substring(0,d+1))}if(i=this.tokenizer.inlineText(o,TWe)){n=n.substring(i.raw.length),"_"!==i.raw.slice(-1)&&(c=i.raw.slice(-1)),l=!0,r=e[e.length-1],r&&"text"===r.type?(r.raw+=i.raw,r.text+=i.text):e.push(i);continue}if(n){const d="Infinite loop on byte: "+n.charCodeAt(0);if(this.options.silent){console.error(d);break}throw new Error(d)}}return e}}class f6{constructor(n){this.options=n||qA}code(n,e,i){const r=(e||"").match(/\S*/)[0];if(this.options.highlight){const o=this.options.highlight(n,r);null!=o&&o!==n&&(i=!0,n=o)}return n=n.replace(/\n$/,"")+"\n",r?'

'+(i?n:fa(n,!0))+"
\n":"
"+(i?n:fa(n,!0))+"
\n"}blockquote(n){return`
\n${n}
\n`}html(n){return n}heading(n,e,i,r){return this.options.headerIds?`${n}\n`:`${n}\n`}hr(){return this.options.xhtml?"
\n":"
\n"}list(n,e,i){const r=e?"ol":"ul";return"<"+r+(e&&1!==i?' start="'+i+'"':"")+">\n"+n+"\n"}listitem(n){return`
  • ${n}
  • \n`}checkbox(n){return" "}paragraph(n){return`

    ${n}

    \n`}table(n,e){return e&&(e=`${e}`),"\n\n"+n+"\n"+e+"
    \n"}tablerow(n){return`\n${n}\n`}tablecell(n,e){const i=e.header?"th":"td";return(e.align?`<${i} align="${e.align}">`:`<${i}>`)+n+`\n`}strong(n){return`${n}`}em(n){return`${n}`}codespan(n){return`${n}`}br(){return this.options.xhtml?"
    ":"
    "}del(n){return`${n}`}link(n,e,i){if(null===(n=moe(this.options.sanitize,this.options.baseUrl,n)))return i;let r='",r}image(n,e,i){if(null===(n=moe(this.options.sanitize,this.options.baseUrl,n)))return i;let r=`${i}":">",r}text(n){return n}}class _oe{strong(n){return n}em(n){return n}codespan(n){return n}del(n){return n}html(n){return n}text(n){return n}link(n,e,i){return""+i}image(n,e,i){return""+i}br(){return""}}class voe{constructor(){this.seen={}}serialize(n){return n.toLowerCase().trim().replace(/<[!\/a-z].*?>/gi,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-")}getNextSafeSlug(n,e){let i=n,r=0;if(this.seen.hasOwnProperty(i)){r=this.seen[n];do{r++,i=n+"-"+r}while(this.seen.hasOwnProperty(i))}return e||(this.seen[n]=r,this.seen[i]=0),i}slug(n,e={}){const i=this.serialize(n);return this.getNextSafeSlug(i,e.dryrun)}}class Im{constructor(n){this.options=n||qA,this.options.renderer=this.options.renderer||new f6,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new _oe,this.slugger=new voe}static parse(n,e){return new Im(e).parse(n)}static parseInline(n,e){return new Im(e).parseInline(n)}parse(n,e=!0){let r,o,s,a,l,c,d,u,h,m,A,v,x,C,w,S,M,B,P,i="";const $=n.length;for(r=0;r<$;r++)if(m=n[r],this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[m.type]&&(P=this.options.extensions.renderers[m.type].call({parser:this},m),!1!==P||!["space","hr","heading","code","table","blockquote","list","html","paragraph","text"].includes(m.type)))i+=P||"";else switch(m.type){case"space":continue;case"hr":i+=this.renderer.hr();continue;case"heading":i+=this.renderer.heading(this.parseInline(m.tokens),m.depth,foe(this.parseInline(m.tokens,this.textRenderer)),this.slugger);continue;case"code":i+=this.renderer.code(m.text,m.lang,m.escaped);continue;case"table":for(u="",d="",a=m.header.length,o=0;o0&&"paragraph"===w.tokens[0].type?(w.tokens[0].text=B+" "+w.tokens[0].text,w.tokens[0].tokens&&w.tokens[0].tokens.length>0&&"text"===w.tokens[0].tokens[0].type&&(w.tokens[0].tokens[0].text=B+" "+w.tokens[0].tokens[0].text)):w.tokens.unshift({type:"text",text:B}):C+=B),C+=this.parse(w.tokens,x),h+=this.renderer.listitem(C,M,S);i+=this.renderer.list(h,A,v);continue;case"html":i+=this.renderer.html(m.text);continue;case"paragraph":i+=this.renderer.paragraph(this.parseInline(m.tokens));continue;case"text":for(h=m.tokens?this.parseInline(m.tokens):m.text;r+1<$&&"text"===n[r+1].type;)m=n[++r],h+="\n"+(m.tokens?this.parseInline(m.tokens):m.text);i+=e?this.renderer.paragraph(h):h;continue;default:{const ee='Token with "'+m.type+'" type was not found.';if(this.options.silent)return void console.error(ee);throw new Error(ee)}}return i}parseInline(n,e){e=e||this.renderer;let r,o,s,i="";const a=n.length;for(r=0;r{"function"==typeof i&&(r=i,i=null);const o={...i},s=function FWe(t,n,e){return i=>{if(i.message+="\nPlease report this to https://github.com/markedjs/marked.",t){const r="

    An error occurred:

    "+fa(i.message+"",!0)+"
    ";return n?Promise.resolve(r):e?void e(null,r):r}if(n)return Promise.reject(i);if(!e)throw i;e(i)}}((i={...Xn.defaults,...o}).silent,i.async,r);if(typeof e>"u"||null===e)return s(new Error("marked(): input parameter is undefined or null"));if("string"!=typeof e)return s(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected"));if(function MWe(t){t&&t.sanitize&&!t.silent&&console.warn("marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options")}(i),i.hooks&&(i.hooks.options=i),r){const a=i.highlight;let l;try{i.hooks&&(e=i.hooks.preprocess(e)),l=t(e,i)}catch(u){return s(u)}const c=function(u){let h;if(!u)try{i.walkTokens&&Xn.walkTokens(l,i.walkTokens),h=n(l,i),i.hooks&&(h=i.hooks.postprocess(h))}catch(m){u=m}return i.highlight=a,u?s(u):r(null,h)};if(!a||a.length<3||(delete i.highlight,!l.length))return c();let d=0;return Xn.walkTokens(l,function(u){"code"===u.type&&(d++,setTimeout(()=>{a(u.text,u.lang,function(h,m){if(h)return c(h);null!=m&&m!==u.text&&(u.text=m,u.escaped=!0),d--,0===d&&c()})},0))}),void(0===d&&c())}if(i.async)return Promise.resolve(i.hooks?i.hooks.preprocess(e):e).then(a=>t(a,i)).then(a=>i.walkTokens?Promise.all(Xn.walkTokens(a,i.walkTokens)).then(()=>a):a).then(a=>n(a,i)).then(a=>i.hooks?i.hooks.postprocess(a):a).catch(s);try{i.hooks&&(e=i.hooks.preprocess(e));const a=t(e,i);i.walkTokens&&Xn.walkTokens(a,i.walkTokens);let l=n(a,i);return i.hooks&&(l=i.hooks.postprocess(l)),l}catch(a){return s(a)}}}function Xn(t,n,e){return yoe(km.lex,Im.parse)(t,n,e)}function kWe(t,n){if(1&t&&(I(0,"div")(1,"h2"),ve(2),O(),_e(3,"ul",6),O()),2&t){const e=n.$implicit;H(2),ur(e.key),H(),ue("innerHTML",e.value,vI)}}Xn.options=Xn.setOptions=function(t){return function fWe(t){qA=t}(Xn.defaults={...Xn.defaults,...t}),Xn},Xn.getDefaults=function coe(){return{async:!1,baseUrl:null,breaks:!1,extensions:null,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,hooks:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1}},Xn.defaults=qA,Xn.use=function(...t){const n=Xn.defaults.extensions||{renderers:{},childTokens:{}};t.forEach(e=>{const i={...e};if(i.async=Xn.defaults.async||i.async||!1,e.extensions&&(e.extensions.forEach(r=>{if(!r.name)throw new Error("extension name required");if(r.renderer){const o=n.renderers[r.name];n.renderers[r.name]=o?function(...s){let a=r.renderer.apply(this,s);return!1===a&&(a=o.apply(this,s)),a}:r.renderer}if(r.tokenizer){if(!r.level||"block"!==r.level&&"inline"!==r.level)throw new Error("extension level must be 'block' or 'inline'");n[r.level]?n[r.level].unshift(r.tokenizer):n[r.level]=[r.tokenizer],r.start&&("block"===r.level?n.startBlock?n.startBlock.push(r.start):n.startBlock=[r.start]:"inline"===r.level&&(n.startInline?n.startInline.push(r.start):n.startInline=[r.start]))}r.childTokens&&(n.childTokens[r.name]=r.childTokens)}),i.extensions=n),e.renderer){const r=Xn.defaults.renderer||new f6;for(const o in e.renderer){const s=r[o];r[o]=(...a)=>{let l=e.renderer[o].apply(r,a);return!1===l&&(l=s.apply(r,a)),l}}i.renderer=r}if(e.tokenizer){const r=Xn.defaults.tokenizer||new h6;for(const o in e.tokenizer){const s=r[o];r[o]=(...a)=>{let l=e.tokenizer[o].apply(r,a);return!1===l&&(l=s.apply(r,a)),l}}i.tokenizer=r}if(e.hooks){const r=Xn.defaults.hooks||new m6;for(const o in e.hooks){const s=r[o];r[o]=m6.passThroughHooks.has(o)?a=>{if(Xn.defaults.async)return Promise.resolve(e.hooks[o].call(r,a)).then(c=>s.call(r,c));const l=e.hooks[o].call(r,a);return s.call(r,l)}:(...a)=>{let l=e.hooks[o].apply(r,a);return!1===l&&(l=s.apply(r,a)),l}}i.hooks=r}if(e.walkTokens){const r=Xn.defaults.walkTokens;i.walkTokens=function(o){let s=[];return s.push(e.walkTokens.call(this,o)),r&&(s=s.concat(r.call(this,o))),s}}Xn.setOptions(i)})},Xn.walkTokens=function(t,n){let e=[];for(const i of t)switch(e=e.concat(n.call(Xn,i)),i.type){case"table":for(const r of i.header)e=e.concat(Xn.walkTokens(r.tokens,n));for(const r of i.rows)for(const o of r)e=e.concat(Xn.walkTokens(o.tokens,n));break;case"list":e=e.concat(Xn.walkTokens(i.items,n));break;default:Xn.defaults.extensions&&Xn.defaults.extensions.childTokens&&Xn.defaults.extensions.childTokens[i.type]?Xn.defaults.extensions.childTokens[i.type].forEach(function(r){e=e.concat(Xn.walkTokens(i[r],n))}):i.tokens&&(e=e.concat(Xn.walkTokens(i.tokens,n)))}return e},Xn.parseInline=yoe(km.lexInline,Im.parseInline),Xn.Parser=Im,Xn.parser=Im.parse,Xn.Renderer=f6,Xn.TextRenderer=_oe,Xn.Lexer=km,Xn.lexer=km.lex,Xn.Tokenizer=h6,Xn.Slugger=voe,Xn.Hooks=m6,Xn.parse=Xn;let IWe=(()=>{class t{constructor(e){this.data=e,this.changes=this.getChangelogChanges()}getChangelogChanges(){let i=Xn.parse('# Change Log - Visualization\r\n\r\nAll notable changes to this project will be documented in this file.\r\n\r\nThe format is based on [Keep a Changelog](http://keepachangelog.com/)\r\nand this project adheres to [Semantic Versioning](http://semver.org/)\r\n\r\n## [unreleased] (Added \u{1f680} | Changed | Removed \u{1f5d1} | Fixed \u{1f41e} | Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb})\r\n\r\n## [1.127.1] - 2024-08-12\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Revert [#3655](https://github.com/MaibornWolff/codecharta/pull/3665) as we implement new navigation methods\r\n\r\n## [1.127.0] - 2024-08-12\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Zooming doesn\'t affect the camera position [#3655](https://github.com/MaibornWolff/codecharta/pull/3665)\r\n- Fix the issue where the map disappears after excessive zooming out.[#3655](https://github.com/MaibornWolff/codecharta/pull/3665)\r\n- Fix visualization standalone electron build by bumping the version to 29 [#3681](https://github.com/MaibornWolff/codecharta/pull/3681)\r\n\r\n### Added \u{1f680}\r\n\r\n- Export multi-material 3MF for 3D printing of maps in color [#3616](https://github.com/MaibornWolff/codecharta/pull/3616)\r\n\r\n### Changed\r\n\r\n- IMPORTANT: The sonar complexity will no longer be renamed to MCC! [#3456](https://github.com/MaibornWolff/codecharta/pull/3606)\r\n\r\n## [1.126.0] - 2024-06-03\r\n\r\n### Added \u{1f680}\r\n\r\n- Overhaul the Suspicious Metrics menu [#3612](https://github.com/MaibornWolff/codecharta/pull/3612)\r\n\r\n## [1.125.0] - 2024-04-24\r\n\r\n### Added \u{1f680}\r\n\r\n- Add search bar for custom configs [#3529](https://github.com/MaibornWolff/codecharta/pull/3529)\r\n- Automatically reverse the metric direction for those where higher values indicate better codequality, such as `branch_coverage` [#3518](https://github.com/MaibornWolff/codecharta/pull/3518)\r\n- Display summary metrics for root node as default [#3525](https://github.com/MaibornWolff/codecharta/pull/3525)\r\n- Remove whitespace on screenshots [#3527](https://github.com/MaibornWolff/codecharta/pull/3527)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix small style issues [#3544](https://github.com/MaibornWolff/codecharta/pull/3544)\r\n- Fix key handling for selection metrics [#3546](https://github.com/MaibornWolff/codecharta/pull/3546)\r\n- Fix applying default metric templates to ensure options reset correctly [#3560](https://github.com/MaibornWolff/codecharta/pull/3560)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Update angular to v17\r\n\r\n## [1.124.1] - 2024-03-18\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix metrics being reset on excluding / flattening buildings [#3524](https://github.com/MaibornWolff/codecharta/pull/3524)\r\n- Take direction of attributes into account when creating the list with highest metrics [#3526](https://github.com/MaibornWolff/codecharta/pull/3526)\r\n\r\n## [1.124.0] - 2024-03-18\r\n\r\n### Added \u{1f680}\r\n\r\n- Display diagram of color distribution [#3511](https://github.com/MaibornWolff/codecharta/pull/3511)\r\n
    \r\n color-metric-diagram\r\n
    \r\n- Persist uploaded files and applied configuration accross page-reloads [#3486](https://github.com/MaibornWolff/codecharta/pull/3486)\r\n- Height, color, edge and area metric can be selected via query parameters [#3513](https://github.com/MaibornWolff/codecharta/pull/3513)\r\n- Capturing a screenshot of the map also captures the legend [#3520](https://github.com/MaibornWolff/codecharta/pull/3520)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Bump node version from 16 to 18 [#3452](https://github.com/MaibornWolff/codecharta/pull/3452)\r\n\r\n## [1.123.0] - 2024-02-26\r\n\r\n### Changed\r\n\r\n- CodeCharta Analysis and Visualization now have separate changelogs and releases [#3499](https://github.com/MaibornWolff/codecharta/pull/3499)\r\n\r\n### Added \u{1f680}\r\n\r\n- Highlight building on-click of file in explorer [#3488](https://github.com/MaibornWolff/codecharta/pull/3488)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix buildings inability to be completely red in delta mode [#3439](https://github.com/MaibornWolff/codecharta/pull/3439)\r\n- Fix edge preview in visualization [#3439](https://github.com/MaibornWolff/codecharta/pull/3439)\r\n- Fix edges start/end intersecting with building in delta mode [#3439](https://github.com/MaibornWolff/codecharta/pull/3439)\r\n- Fix style issues in the node/file explorer of visualization [#3439](https://github.com/MaibornWolff/codecharta/pull/3439)\r\n\r\n## [1.122.0] - 2024-01-16\r\n\r\n### Added \u{1f680}\r\n\r\n- File explorer can be pinned while analyzing the code-map [#3459](https://github.com/MaibornWolff/codecharta/pull/3459)\r\n- Validate input file during interactive parser configuration [#3460](https://github.com/MaibornWolff/codecharta/pull/3460)\r\n- Add functionality to screenshot legend [#3471](https://github.com/MaibornWolff/codecharta/pull/3471)\r\n\r\n### Changed\r\n\r\n- Multiple values for options need to be separated by comma [#3434](https://github.com/MaibornWolff/codecharta/pull/3434)\r\n- Changed the short-form of the `--no-issues` flag in the SourceCodeParser from `-i` to `-ni` [#3434](https://github.com/MaibornWolff/codecharta/pull/3434)\r\n- Clarify sonar user token question [#3445](https://github.com/MaibornWolff/codecharta/pull/3445)\r\n- Changed the `--user` flag to `--user-token` in SonarImporter [#3445](https://github.com/MaibornWolff/codecharta/pull/3445)\r\n- Changed the interactive dialog of `modify` to prompt user for single action to perform [#3448](https://github.com/MaibornWolff/codecharta/pull/3448)\r\n- Selected buildings now keep their label until they are unselected [#3465](https://github.com/MaibornWolff/codecharta/pull/3465)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix saving the number of top-labels in custom configs [#3461](https://github.com/MaibornWolff/codecharta/pull/3461)\r\n- Fix parsers crashing after printing output to stdout [#3442](https://github.com/MaibornWolff/codecharta/pull/3442)\r\n- Fix removal of nodes with identical names in `modify` [#3446](https://github.com/MaibornWolff/codecharta/pull/3446)\r\n- Fix the highlighting of very high risk metrics to highlight only matching files [#3454](https://github.com/MaibornWolff/codecharta/pull/3454)\r\n\r\n## [1.121.1] - 2023-12-08\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix github-pages not showing documentation [#3436](https://github.com/MaibornWolff/codecharta/pull/3436)\r\n\r\n## [1.121.0] - 2023-12-07\r\n\r\n### Added \u{1f680}\r\n\r\n- Add logging of absolute file paths of output files [#3414](https://github.com/MaibornWolff/codecharta/pull/3414)\r\n\r\n### Changed\r\n\r\n- Changed short form of parameter `--file-extensions` of RawTextParser from `-f` to `-fe` [#3405](https://github.com/MaibornWolff/codecharta/pull/3405)\r\n- Update readme and gh-pages for RawTextParser [#3405](https://github.com/MaibornWolff/codecharta/pull/3405)\r\n- Changed the `--format` flag for csv-output in SourceCodeParser from `table` to `csv` [#3414](https://github.com/MaibornWolff/codecharta/pull/3414)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix RawTextParser producing incorrect output when no (or multiple) file extensions were specified in interactive mode [#3405](https://github.com/MaibornWolff/codecharta/pull/3405)\r\n- Fix handling of empty inputs for the `--metrics`, `--exclude`, `--file-extensions` flags in the RawTextParser [#3415](https://github.com/MaibornWolff/codecharta/pull/3415)\r\n- Fix RawTextParser incorrectly setting max indentation level to a predefined value [#3419](https://github.com/MaibornWolff/codecharta/pull/3419)\r\n- Fix the csv-exporter so that it exports multiple projects instead of just one when multiple projects are specified [#3414](https://github.com/MaibornWolff/codecharta/pull/3414)\r\n- Fix file extensions of output files for merged projects [#3421](https://github.com/MaibornWolff/codecharta/pull/3421)\r\n- Fix the ability for users to accidentally pass invalid metrics to the RawTextParser without it crashing [#3424](https://github.com/MaibornWolff/codecharta/pull/3424)\r\n- Fix deselected buildings with green/red roof in delta mode do not reset their color roof [#3426](https://github.com/MaibornWolff/codecharta/pull/3426)\r\n- Fix parser hang issue in interactive mode caused by unintentional "enter" input after the last question [#3422](https://github.com/MaibornWolff/codecharta/pull/3422)\r\n\r\n### Chore \u200d\u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Upgraded to angular 16 [#3408](https://github.com/MaibornWolff/codecharta/pull/3408)\r\n\r\n## [1.120.1] - 2023-11-17\r\n\r\n### Removed \u{1f5d1}\r\n\r\n- Deprecated download button removed (functionality has been replaced by custom views) [#3398](https://github.com/MaibornWolff/codecharta/pull/3398)\r\n- Remove the \'new\' badges from the \'Custom Views\' and \'Suspicious Metrics\' features as these features are no longer new [#3393](https://github.com/MaibornWolff/codecharta/pull/3399)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix an issue with web demo on Safari showing a white screen and not loading [#3396](https://github.com/MaibornWolff/codecharta/pull/3396)\r\n- Fix the ability for users to skip the value for tab-width when configuring the rawtextparser and estimate its value [#3404](https://github.com/MaibornWolff/codecharta/pull/3404)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Add documentation for the installation requirements for metric-gardener [#3395](https://github.com/MaibornWolff/codecharta/pull/3395)\r\n- Add hints to README (visualization and package) about MacOS arm64 standalone execution [#3395](https://github.com/MaibornWolff/codecharta/pull/3395)\r\n\r\n## [1.120.0] - 2023-11-02\r\n\r\n### Added \u{1f680}\r\n\r\n- Only ask to merge results after parser suggestion execution when more than one parser was executed [#3384](https://github.com/MaibornWolff/codecharta/pull/3384)\r\n- Add the description of each parser to the list of suggested parsers [#3387](https://github.com/MaibornWolff/codecharta/pull/3387)\r\n\r\n### Changed\r\n\r\n- Adjust console output of metric gardener importer to no longer include one line for each processed node [#3386](https://github.com/MaibornWolff/codecharta/pull/3390)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix command not found issue for --version and --help in the analysis [#3377](https://github.com/MaibornWolff/codecharta/pull/3377)\r\n- Fix metric gardener importer getting stuck for large inputs [#3382](https://github.com/MaibornWolff/codecharta/pull/3382)\r\n- Update docs for ccsh to remove outdated parameters and unify the pages structure [#3333](https://github.com/MaibornWolff/codecharta/pull/3388)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Raise minimum required Java Version from 8 to 11 [#3359](https://github.com/MaibornWolff/codecharta/pull/3359)\r\n- Swap nw.js to electron for standalone execution [#3373](https://github.com/MaibornWolff/codecharta/pull/3373)\r\n\r\n## [1.119.1] - 2023-08-03\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix ccsh execution under windows via cmd-terminal [#3354](https://github.com/MaibornWolff/codecharta/pull/3354)\r\n\r\n## [1.119.0] - 2023-07-13\r\n\r\n### Added \u{1f680}\r\n\r\n- Add message outputting which parser is being configured during parser suggestions [#3335](https://github.com/MaibornWolff/codecharta/pull/3335)\r\n- Add basic validity checking for all input resources (files/folders, url for SonarImporter) [#3325](https://github.com/MaibornWolff/codecharta/pull/3325)\r\n- Automatically start specific interactive parser when calling parser without args [#3332](https://github.com/MaibornWolff/codecharta/pull/3332)\r\n\r\n## [1.118.0] - 2023-06-15\r\n\r\n### Added \u{1f680}\r\n\r\n- Add metric tooltips that display attribute descriptors and provide hyperlinks in the sidebar to the metric\'s documentation [#3273](https://github.com/MaibornWolff/codecharta/pull/3273)
    \r\n \r\n- Expand and restructure documentation regarding Docker usage [#3312](https://github.com/MaibornWolff/codecharta/pull/3312)\r\n- Add current working directories as hint or default value to interactive parser and parser suggestions when asking for input [#3319](https://github.com/MaibornWolff/codecharta/pull/3319)\r\n- Add helpful status messages when calculating parser suggestions [#3329](https://github.com/MaibornWolff/codecharta/pull/3329)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Speed up parser suggestions significantly [#3329](https://github.com/MaibornWolff/codecharta/pull/3329)\r\n- Fix color range reset not triggering on color metric change [#3311](https://github.com/MaibornWolff/codecharta/pull/3311)\r\n\r\n## [1.117.0] - 2023-05-19\r\n\r\n### Added \u{1f680}\r\n\r\n- Add support for parser suggestions to SVN-, MetricGardener-, RawText- and SourceCodeParser [#3287](https://github.com/MaibornWolff/codecharta/pull/3287)\r\n- Add semi automatic merging feature after executing multiple parsers [#3287](https://github.com/MaibornWolff/codecharta/pull/3287)\r\n- Expand developer documentation to include common problems and solutions for them [#3289](https://github.com/MaibornWolff/codecharta/pull/3289)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix entrypoint for analysis docker image [#3259](https://github.com/MaibornWolff/codecharta/pull/3259)\r\n- Show again delta of a building which have nothing in common in red or green [#3271](https://github.com/MaibornWolff/codecharta/pull/3271)\r\n- Always show description of suspicious metrics [#3285](https://github.com/MaibornWolff/codecharta/pull/3285)\r\n- Show suspicious metrics and risk profile documentation pages in navigation bar [#3290](https://github.com/MaibornWolff/codecharta/pull/3290)\r\n- Merge filter will now abort execution when an invalid file is specified as input [#3305](https://github.com/MaibornWolff/codecharta/pull/3305)\r\n- Fix formatting issues in docs turning `--` to `\u2013` [#3301](https://github.com/MaibornWolff/codecharta/pull/3301)\r\n\r\n### Changed\r\n\r\n- Adjusted documentation for parser suggestions [#3287](https://github.com/MaibornWolff/codecharta/pull/3287)\r\n- Make the size of the CodeCharta logo more suitable for any screen size and remove MaibornWolff logo [#3302](https://github.com/MaibornWolff/codecharta/pull/3302)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Replace custom Redux adapter through real NgRx [#3271](https://github.com/MaibornWolff/codecharta/pull/3271)\r\n\r\n## [1.116.0] - 2023-04-28\r\n\r\n### Added \u{1f680}\r\n\r\n- Add automatic parser suggestions to recommend usable parsers for a codebase (supports GitLogParser and SonarImporter) when running `ccsh` command [#3275](https://github.com/MaibornWolff/codecharta/pull/3275)
    \r\n ![image](https://user-images.githubusercontent.com/129938897/234309117-c9edd4e7-7c53-4ba7-b849-ec9c3f8f3215.png)\r\n- Add documentation subsections for interactive shell and parser suggestions\r\n\r\n### Changed\r\n\r\n- Changed default behavior when launching ccsh without arguments to parser suggestions [#3275](https://github.com/MaibornWolff/codecharta/pull/3275)\r\n- Old interactive parser selection now reachable by passing `-i` or `--interactive` as arguments [#3275](https://github.com/MaibornWolff/codecharta/pull/3275)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix suspicious metrics and risk profile docs not loading [#3272](https://github.com/MaibornWolff/codecharta/pull/3272)\r\n\r\n## [1.115.1] - 2023-04-06\r\n\r\n### Removed \u{1f5d1}\r\n\r\n- Support for Custom Views created before CodeCharta version 1.110.0 or older is no longer be maintained [#3265](https://github.com/MaibornWolff/codecharta/pull/3265)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix the disappearance of the suspicious metrics labels [#3263](https://github.com/MaibornWolff/codecharta/pull/3263)\r\n- Fix UI components that look different since version 1.115.0 [#3260](https://github.com/MaibornWolff/codecharta/pull/3260)\r\n- Show latest release notes in changelog dialog [#3264](https://github.com/MaibornWolff/codecharta/pull/3264)\r\n\r\n## [1.115.0] - 2023-03-30\r\n\r\n### Added \u{1f680}\r\n\r\n- Display the CodeCharta logo next to the MaibornWolff logo [#3226](https://github.com/MaibornWolff/codecharta/pull/3226)\r\n- Tooltip for primary and secondary metrics that displays AttributeDescriptor information in the sidebar [#3239](https://github.com/MaibornWolff/codecharta/pull/3239)
    \r\n ![image](https://user-images.githubusercontent.com/65733509/227218468-b7d1e1ae-b847-40ab-8513-f3762b8787bb.png)\r\n- Supports adding note to a custom view, provides a preview and an edit option for notes from the selection menu [#3234](https://github.com/MaibornWolff/codecharta/pull/3234)
    \r\n ![image](https://user-images.githubusercontent.com/72517530/226942610-9e08d39c-324d-4de3-81d0-4e5da4e589aa.png)\r\n ![image](https://user-images.githubusercontent.com/72517530/226943152-1bb339bb-c39f-4bf6-a32d-ee8476249f98.png)\r\n\r\n### Changed\r\n\r\n- The Suspicious metrics and Risk profile Feature is now also available outside the Experimental Feature Mode [#2963](https://github.com/MaibornWolff/codecharta/pull/2963)
    \r\n ![image](https://user-images.githubusercontent.com/47224279/222686442-05d4b83c-04d7-4275-b1eb-4339e8906130.jpg)\r\n- Made the background color a bit lighter [#3226](https://github.com/MaibornWolff/codecharta/pull/3226)\r\n- Saturate the distribution bar colors [#3226](https://github.com/MaibornWolff/codecharta/pull/3226)\r\n- Improve the layout of all metric menus [#3226](https://github.com/MaibornWolff/codecharta/pull/3226)\r\n- Improve the layout of the global configuration dialog [#3226](https://github.com/MaibornWolff/codecharta/pull/3226)\r\n- Improve the layout of the metric chooser panel [#3226](https://github.com/MaibornWolff/codecharta/pull/3226)\r\n- Change the primary color to match the color of the CodeCharta logo [#3226](https://github.com/MaibornWolff/codecharta/pull/3226)\r\n- Improve the docs for suspicious metrics and risk profile feature [#3238](https://github.com/MaibornWolff/codecharta/pull/3238)\r\n- Improve Custom Views Dialog [#3238](https://github.com/MaibornWolff/codecharta/pull/3248)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Unselecting a folder in Presentation Mode leads to console error [#3215](https://github.com/MaibornWolff/codecharta/pull/3215)\r\n- Fix Shrunken FileExplorer\'s file list on small displays [#3235](https://github.com/MaibornWolff/codecharta/pull/3235)\r\n- Fix various margin problems in the UI [#3226](https://github.com/MaibornWolff/codecharta/pull/3226)\r\n- Fix bumpy animations when moving/turning the map, hover buildings (showing labels and edges) [#3244](https://github.com/MaibornWolff/codecharta/pull/3244)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Upgrade all material UI components to MDC (not using the UI legacy components any more) [#3226](https://github.com/MaibornWolff/codecharta/pull/3226)\r\n\r\n## [1.114.0] - 2023-01-13\r\n\r\n### Added \u{1f680}\r\n\r\n- Add an option to hide floor labels under the Area Metric Options. This recalculates the map. [#3175](https://github.com/MaibornWolff/codecharta/pull/3175)\r\n\r\n### Removed \u{1f5d1}\r\n\r\n- Camera settings for custom views generated with version 1.101.1 and earlier are now ignored. [#3196](https://github.com/MaibornWolff/codecharta/pull/3196)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Reposition legend panel button again, when attribute sidebar is open [#3183](https://github.com/MaibornWolff/codecharta/pull/3183)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Add attribute descriptors (metric descriptions) to TokeiImporter and SVNlogParser [#3176](https://github.com/MaibornWolff/codecharta/pull/3176)\r\n\r\n## [1.113.0] - 2022-12-15\r\n\r\n### Changed\r\n\r\n- The Custom Views Feature is now also available outside the Experimental Feature Mode [#3079](https://github.com/MaibornWolff/codecharta/pull/3076)
    \r\n ![image](https://user-images.githubusercontent.com/72517530/204557970-0ba31f3b-5209-4707-a2d0-55cc45509f8a.png)\r\n- Please note that the functionality of downloading cc.json maps will no longer be supported from April 2023. Instead, use the Custom View feature to create and share configurations for different views of your map. [#3079](https://github.com/MaibornWolff/codecharta/pull/3076)\r\n- Change tooltips in the legend to show the metric description [#3162](https://github.com/MaibornWolff/codecharta/pull/3162)
    \r\n ![image](https://user-images.githubusercontent.com/27358421/205251507-100b1e1a-d86e-44f3-89cf-f32bf295aabd.png)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Improve metric titles by loading them from cc.json [#3162](https://github.com/MaibornWolff/codecharta/pull/3162)\r\n- Add attribute descriptors to SoureCodeParser [#3166](https://github.com/MaibornWolff/codecharta/pull/3166)\r\n\r\n## [1.112.1] - 2022-12-01\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Reverted PR [#3077](https://github.com/MaibornWolff/codecharta/pull/3077) that introduced a rendering bug, where buildings sizes were not proportional to their area value [#3159](https://github.com/MaibornWolff/codecharta/pull/3159)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Add attribute descriptors to SonarImporter [#3149](https://github.com/MaibornWolff/codecharta/pull/3149)\r\n- Add title field to attribute descriptors [#3158](https://github.com/MaibornWolff/codecharta/pull/3158)\r\n\r\n## [1.112.0] - 2022-11-25\r\n\r\n### Added \u{1f680}\r\n\r\n- New calculation algorithm for treeMap that accounts for paddings and floor labels [#3077](https://github.com/MaibornWolff/codecharta/pull/3077)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix ribbon-bar shadow moving down when search is expanded [#3138](https://github.com/MaibornWolff/codecharta/pull/3138)\r\n- Fix loading errors of maps containing no programming-language-info [#3144](https://github.com/MaibornWolff/codecharta/pull/3144)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Documentation for new treeMap calculation algorithm [#3077](https://github.com/MaibornWolff/codecharta/pull/3077)\r\n- Add attribute descriptors (metric descriptions) to some filters and importers [#3091](https://github.com/MaibornWolff/codecharta/pull/3091)\r\n\r\n## [1.111.0] - 2022-11-17\r\n\r\n### Added \u{1f680}\r\n\r\n- Add description to every Custom View [#3119](https://github.com/MaibornWolff/codecharta/pull/3119)
    \r\n ![image](https://user-images.githubusercontent.com/72517530/201381274-a9a913d5-8f9d-4da6-9f26-6476e194ce3b.png)\r\n- Highlight files and folders with no area metric or an area metric value of zero in the search panel [#3126](https://github.com/MaibornWolff/codecharta/pull/3126)\r\n\r\n### Changed\r\n\r\n- Be aware, that all Custom Views generated with version 1.110.0 or older will be unusable by April 2023 [#3119](https://github.com/MaibornWolff/codecharta/pull/3119)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix Node Context-Menu in Map Tree View opening multiple times [#3135](https://github.com/MaibornWolff/codecharta/pull/3135)\r\n- Fix crashing on focusing or hovering un-rendered buildings [#3123](https://github.com/MaibornWolff/codecharta/pull/3123)\r\n- Fix showing changelog entries in the dialog when a new version is available [#3123](https://github.com/MaibornWolff/codecharta/pull/3129)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Update supported latest browsers [#3125](https://github.com/MaibornWolff/codecharta/pull/3125)\r\n- Split e2e and unit test configs [#3128](https://github.com/MaibornWolff/codecharta/pull/3128)\r\n\r\n## [1.110.0] - 2022-11-04\r\n\r\n### Changed\r\n\r\n- Custom Views are now applicable even if maps or mode are different. Missing maps or map selection mode is displayed in the tooltip [#3090](https://github.com/MaibornWolff/codecharta/pull/3090)\r\n- Be aware, that all Custom Views generated with version 1.109.1 or older will be unusable by April 2023 [#3105](https://github.com/MaibornWolff/codecharta/pull/3105)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix broken link to Custom View documentation [#3101](https://github.com/MaibornWolff/codecharta/pull/3101)\r\n- Don\'t re-center map after every state change like changing area metric [#3109](https://github.com/MaibornWolff/codecharta/pull/3109)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Adjust Custom View API and maintain old Custom Views until April 2023 [#3105](https://github.com/MaibornWolff/codecharta/pull/3105)\r\n- Migrate codeMap.render.service, codeMap.label.service, codeMap.mouseEvent.service, codeMap.arrow.service, codeCharta.service, sharpnessMode.service, isLoadingFile.service, scaling.service and experimentalFeaturesEnabled.service to Angular [#3094](https://github.com/MaibornWolff/codecharta/pull/3094)\r\n- Extract tree map size into a const as this is never changed [3098](https://github.com/MaibornWolff/codecharta/pull/3098)\r\n- Migrate markedPackages.service, edges.service, blacklist.service, files.service and injector.service [3106](https://github.com/MaibornWolff/codecharta/pull/3106)\r\n- Refactor out `LoadInitialFileService` and fix with it loose Promise in tests [#3110](https://github.com/MaibornWolff/codecharta/pull/3110)\r\n- Migrate codeCharta.component, storeService.service and remove AngularJS dual boot from bootstrapping [#3114](https://github.com/MaibornWolff/codecharta/pull/3114)\r\n- Remove obsolete AngularJS dependencies [#3115](https://github.com/MaibornWolff/codecharta/pull/3115)\r\n\r\n## [1.109.1] - 2022-10-12\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix broken links on new GitHub Page \'Docker Containers\' [#3089](https://github.com/MaibornWolff/codecharta/pull/3089)\r\n\r\n## [1.109.0] - 2022-10-12\r\n\r\n### Added \u{1f680}\r\n\r\n- Add description and documentation to Custom View modal [#3085](https://github.com/MaibornWolff/codecharta/pull/3085)\r\n- Add a new button that links the height metric to the color metric so that the colour metric is automatically set to\r\n the selected height metric [#3058](https://github.com/MaibornWolff/codecharta/pull/3058)
    \r\n ![image](https://user-images.githubusercontent.com/72517530/193291144-fdc73a15-2087-47e2-845b-05c666aec71d.png)
    \r\n ![image](https://user-images.githubusercontent.com/72517530/194300920-60ce9fcd-0dd5-46ef-a90b-01d9a29205e6.png)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix interactive GitLogParser using wrong dialogue with repo-scan subcommand [#3073](https://github.com/MaibornWolff/codecharta/pull/3073)\r\n- Fix CodeCharta Analysis container exiting when detached [#3062](https://github.com/MaibornWolff/codecharta/pull/3062)\r\n- Fix CodeCharta Analysis container not coming with the sonar-scanner pre-installed [#3062](https://github.com/MaibornWolff/codecharta/pull/3062)\r\n- Rerender immediately after marking a folder with a color [#3067](https://github.com/MaibornWolff/codecharta/pull/3067)\r\n- Clicking the \'reset height metric settings\' button resets the number of top labels to the dynamic default value [#3066](https://github.com/MaibornWolff/codecharta/pull/3066)\r\n- Unfocus nodes when changing selected files, which prevents the app from crashing [#3072](https://github.com/MaibornWolff/codecharta/pull/3072)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Update Docker Publish Action in Release Pipeline [#3060](https://github.com/MaibornWolff/codecharta/pull/3060)\r\n- Write documentation for docker containers [#3063](https://github.com/MaibornWolff/codecharta/pull/3063)\r\n- Migrate isAttributeSideBarVisible.service, threeScene.service, threeCamera.service and threeStats.service to Angular [#3068](https://github.com/MaibornWolff/codecharta/pull/3068)\r\n- Migrate dialog.service to Angular [#3072](https://github.com/MaibornWolff/codecharta/pull/3072)\r\n- Add documentation for new treeMap algorithm [#3077](https://github.com/MaibornWolff/codecharta/pull/3077)\r\n- Migrate dialog.service to Angular [#3070](https://github.com/MaibornWolff/codecharta/pull/3070)\r\n- Migrate FocusedNodePathService, LayoutAlgorithmService, ThreeOrbitControlsService and ThreeViewerService to Angular [#3072](https://github.com/MaibornWolff/codecharta/pull/3072)\r\n- Migrate updateAttributeTypes.service to Angular [#3082](https://github.com/MaibornWolff/codecharta/pull/3082)\r\n\r\n## [1.108.1] - 2022-09-29\r\n\r\n## Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Update formatting in Docker Release Pipeline [#3059](https://github.com/MaibornWolff/codecharta/pull/3059)\r\n\r\n## [1.108.0] - 2022-09-28\r\n\r\n### Added \u{1f680}\r\n\r\n- Add new Analysis docker container, together with a docker-compose file that contains analysis, visualization and a\r\n SonarQube instance [#3057](https://github.com/MaibornWolff/codecharta/pull/3057)\r\n\r\n### Removed \u{1f5d1}\r\n\r\n- remove outdated Crococosmo, Understand and Jasome Importer from Analysis including its documentation [#3053](https://github.com/MaibornWolff/codecharta/pull/3053)\r\n\r\n## [1.107.0] - 2022-09-27\r\n\r\n### Added \u{1f680}\r\n\r\n- Add subcommand to GitLogParser to run necessary git commands automatically [#3041](https://github.com/MaibornWolff/codecharta/pull/3041)\r\n\r\n### Changed\r\n\r\n- Change default behaviour of GitLogParser to use new subcommands [#3041](https://github.com/MaibornWolff/codecharta/pull/3041)\r\n- Set default value for displaying labels 1 per 100 buildings with a maximum of 10 labels [#3046](https://github.com/MaibornWolff/codecharta/pull/3046)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Uncheck the box when \'reset invert height\' icon is clicked [#3048](https://github.com/MaibornWolff/codecharta/pull/3048)\r\n- Update ReadMe and GitHub pages for MetricGardener [#3045](https://github.com/MaibornWolff/codecharta/pull/3045)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate codeMap.component to Angular with minor internal improvements [#3049](https://github.com/MaibornWolff/codecharta/pull/3049)\r\n- Remove threeUpdateCycle.service [#3050](https://github.com/MaibornWolff/codecharta/pull/3050)\r\n- Migrate metricData.service, edgeMetric.service, nodeMetricData.service and edgeMetricData.service to Angular [#3051](https://github.com/MaibornWolff/codecharta/pull/3051)\r\n- Migrate threeRenderer.service to Angular [#3052](https://github.com/MaibornWolff/codecharta/pull/3052)\r\n\r\n## [1.106.1] - 2022-09-20\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- CC-JSON Files not loaded on Safari browser [#3042](https://github.com/MaibornWolff/codecharta/pull/3042)\r\n- Show loading spinners while loading a file [#2980](https://github.com/MaibornWolff/codecharta/pull/2980)\r\n- Prevent clicking on not opened metric options in ribbon bar [#3029](https://github.com/MaibornWolff/codecharta/pull/3029)\r\n- Set cursor to pointer on color settings panel of delta mode [#3029](https://github.com/MaibornWolff/codecharta/pull/3029)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Throttle rendering and migrate codeMap.preRender.service to Angular [#2980](https://github.com/MaibornWolff/codecharta/pull/2980)\r\n\r\n## [1.106.0] - 2022-09-13\r\n\r\n### Added \u{1f680}\r\n\r\n- Add option to CSVImporter to specify the path column name [#3026](https://github.com/MaibornWolff/codecharta/pull/3026)\r\n\r\n### Changed\r\n\r\n- Stop asking the user to compress a file when printing to stdOut [#3024](https://github.com/MaibornWolff/codecharta/pull/3024)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix anongit script using the wrong whitespace, causing gitlogparser to fail [#3030](https://github.com/MaibornWolff/codecharta/pull/3030)\r\n- Reshow suspicious metrics badge when calculated data has changed [#2997](https://github.com/MaibornWolff/codecharta/pull/2997)\r\n\r\n## [1.105.0] - 2022-09-06\r\n\r\n### Added \u{1f680}\r\n\r\n- Add an option to run MetricGardener before its parser if requested [#3015](https://github.com/MaibornWolff/codecharta/pull/3015)\r\n- Add missing documentation for MetricGardener importer [#3016](https://github.com/MaibornWolff/codecharta/pull/3016)\r\n\r\n### Changed\r\n\r\n- Increase the size of the close button to simplify closing the attribute sidebar [#3014](https://github.com/MaibornWolff/codecharta/pull/3014)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix console error when clicking switch button in delta mode [#3023](https://github.com/MaibornWolff/codecharta/pull/3023)\r\n- Fix broken images to new document pages about how using SonarQube [#3012](https://github.com/MaibornWolff/codecharta/pull/3012)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate tool bar component to Angular [#3020](https://github.com/MaibornWolff/codecharta/pull/3020)\r\n- Remove obsolete AngularJS IsPresentationModeService and ShowOnlyBuildingsWithEdgesService [#3005](https://github.com/MaibornWolff/codecharta/pull/3005)\r\n\r\n## [1.104.1] - 2022-08-31\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix broken links to new document pages about how using SonarQube [#3009](https://github.com/MaibornWolff/codecharta/pull/3009)\r\n\r\n## [1.104.0] - 2022-08-31\r\n\r\n### Added \u{1f680}\r\n\r\n- Copy-to-Clipboard-Button to paste the top 10 files with highest metric values [#2942](https://github.com/MaibornWolff/codecharta/pull/2942), [#2996](https://github.com/MaibornWolff/codecharta/pull/2995)
    \r\n ![image](https://user-images.githubusercontent.com/46388280/184089603-ecfa8e31-8241-42a2-9954-2de554347381.png)
    \r\n ![image](https://user-images.githubusercontent.com/46388280/184089577-5cd2eec0-5293-4083-b629-0e3c5621047c.png)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Correct file types now get appended to the name of the output file when using the interactive ccsh [#2914](https://github.com/MaibornWolff/codecharta/pull/2914)\r\n- Fix exit code handling and update integrationTest\'s golden_test.sh to cover all modules [#2988](https://github.com/MaibornWolff/codecharta/pull/2988)\r\n- Fix missing color pickers within edge metric options [#2993](https://github.com/MaibornWolff/codecharta/pull/2993)\r\n- Fix labels being displayed at an incorrect height and lines being disconnected from labels [#2991](https://github.com/MaibornWolff/codecharta/pull/2991)\r\n- Provides a list of metrics where no calculation could be performed in relation to a suspicion [#2996](https://github.com/MaibornWolff/codecharta/pull/2996)
    \r\n ![missing_values_suspicious_metrics](https://user-images.githubusercontent.com/31436472/187439165-77eda080-ceba-4bab-b077-4f6a2d6162b5.png)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate view cube component and its service to Angular [#2998](https://github.com/MaibornWolff/codecharta/pull/2998)\r\n\r\n## [1.104.0] - 2022-08-29\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate presentation mode button to Angular [#2938](https://github.com/MaibornWolff/codecharta/pull/2938)\r\n\r\n## [1.103.6] - 2022-08-17\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix bug in CompressionStreamHandler\'s input stream validation, that caused endless blocking reads from System.In [#2987](https://github.com/MaibornWolff/codecharta/pull/2987)\r\n\r\n## [1.103.5] - 2022-08-12\r\n\r\n### Changed\r\n\r\n- Update visualization readme file [#2932](https://github.com/MaibornWolff/codecharta/pull/2932)\r\n- Update the documentation for the usage of SonarQube [#2965](https://github.com/MaibornWolff/codecharta/pull/2965)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Add permission to upload-assets action [#2979](https://github.com/MaibornWolff/codecharta/pull/2979), [#2982](https://github.com/MaibornWolff/codecharta/pull/2982)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate download button to Angular [#2973](https://github.com/MaibornWolff/codecharta/pull/2973)\r\n\r\n## [1.103.3] - 2022-08-10\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Update Ubuntu images package list as part of the wine action [#2976](https://github.com/MaibornWolff/codecharta/pull/2976)\r\n\r\n## [1.103.2] - 2022-08-10\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Highlight buildings on hover of file extension bar [#2969](https://github.com/MaibornWolff/codecharta/pull/2969)\r\n- Fix of the npm visualization installation under MacOS by version bumping nwjs [#2974](https://github.com/MaibornWolff/codecharta/pull/2974)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate file extension bar to Angular [#2968](https://github.com/MaibornWolff/codecharta/pull/2968)\r\n\r\n## [1.103.1] - 2022-08-09\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Change release action script in order to show changelog in release notes [#2970](https://github.com/MaibornWolff/codecharta/pull/2970)\r\n\r\n## [1.103.0] - 2022-08-09\r\n\r\n### Changed\r\n\r\n- Update links to demo website [#2961](https://github.com/MaibornWolff/codecharta/pull/2961)\r\n\r\n### Added \u{1f680}\r\n\r\n- Show tooltip with explanation for some metrics [#2957](https://github.com/MaibornWolff/codecharta/pull/2957)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix installation instructions for Apple Silicon [#2956](https://github.com/MaibornWolff/codecharta/pull/2956)\r\n- Fix release tag [#2954](https://github.com/MaibornWolff/codecharta/pull/2954)\r\n- Prevent dark map on unhover [#2959](https://github.com/MaibornWolff/codecharta/pull/2959)\r\n- Zoom in/out time [#2959](https://github.com/MaibornWolff/codecharta/pull/2959)\r\n- Fix webpack build package being corrupt if zipped under linux by changing the compression path [#2934](https://github.com/MaibornWolff/codecharta/pull/2934)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Load metric templates lazily and migrate them to Angular [#2960](https://github.com/MaibornWolff/codecharta/pull/2960)\r\n\r\n## [1.102] - 2022-08-04\r\n\r\n### Changed\r\n\r\n- Changed storing format for camera position within custom views and scenarios. Loading of created custom views or scenarios in old format will stop working in 2023 [2880](https://github.com/MaibornWolff/codecharta/pull/2880)\r\n- Add error messages for the user to "Add Scenario Dialog" [#2928](https://github.com/MaibornWolff/codecharta/pull/2928)\r\n\r\n### Added \u{1f680}\r\n\r\n- Switch reference and comparison file by button click in delta mode [#2933](https://github.com/MaibornWolff/codecharta/pull/2933)\r\n ![image](https://user-images.githubusercontent.com/72517530/182630368-2d2b177d-8b4b-4850-8486-8d9afc7153c5.png)\r\n- Add display of changed files in delta mode (changed := metric values changed or list of applied metrics\r\n changed) [#2890](https://github.com/MaibornWolff/codecharta/pull/2890)\r\n ![image](https://user-images.githubusercontent.com/72517530/182631857-6192dea1-7a01-4684-90a6-d5da8615434a.png)\r\n- Load compressed files (cc.json.gz) via URL parameter [#2917](https://github.com/MaibornWolff/codecharta/pull/2917)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix SonarImporter requesting no metrics from SonarQube when the list of metrics was left empty [#2913](https://github.com/MaibornWolff/codecharta/pull/2913)\r\n- Exclude edge metrics from custom scenarios, when there are no edge metrics available. Before it was impossible to apply those custom configs [#2928](https://github.com/MaibornWolff/codecharta/pull/2928)\r\n- Fix of NoSuchMethodException due to a call of method `readNBytes()` that is not available in Java 9 with replacement call `read()` [#2930](https://github.com/MaibornWolff/codecharta/pull/2930)\r\n- Keep selected metrics when excluding buildings [#2935](https://github.com/MaibornWolff/codecharta/pull/2935)\r\n- Update UI correctly when toggling between standard and delta mode [#2937](https://github.com/MaibornWolff/codecharta/pull/2937)\r\n\r\n## [1.101.1] - 2022-07-27\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Modify build script for GitHub pages in order to provide zipped maps.\r\n\r\n## [1.101.0] - 2022-07-26\r\n\r\n### Added \u{1f680}\r\n\r\n- Transform a metric gardener json file into a code charta json file, that can be correctly visualized [#2675](https://github.com/MaibornWolff/codecharta/pull/2875)\r\n\r\n### Changed\r\n\r\n- Restore previous selected files when switching back from delta to standard mode [#2891](https://github.com/MaibornWolff/codecharta/pull/2891)\r\n- Add more metrics that can be preselected when opening a cc.json file [#2907](https://github.com/MaibornWolff/codecharta/pull/2907) [#2908](https://github.com/MaibornWolff/codecharta/pull/2908)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Let file selection always show what is actual rendered within the map [#2891](https://github.com/MaibornWolff/codecharta/pull/2891)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Improve performance by slightly delaying node-name popups and removing unused functionality [#2897](https://github.com/MaibornWolff/codecharta/pull/2897)\r\n\r\n## [1.100.0] - 2022-07-12\r\n\r\n### Added \u{1f680}\r\n\r\n- Add a description for the statements metric [#2883](https://github.com/MaibornWolff/codecharta/pull/2883)\r\n\r\n### Changed\r\n\r\n- Select matching metric combination based on available metrics [#2862](https://github.com/MaibornWolff/codecharta/pull/2862)\r\n- Unify UI of buttons in toolbar [#2857](https://github.com/MaibornWolff/codecharta/pull/2857)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix resetting of color range within color settings panel [#2877](https://github.com/MaibornWolff/codecharta/pull/2877)\r\n- Fix resetting of colors in delta mode within color settings panel [#2873](https://github.com/MaibornWolff/codecharta/pull/2873)\r\n- Restore global settings on page load again [#2878](https://github.com/MaibornWolff/codecharta/pull/2878)\r\n- Fix \'undefinded\' being displayed as a metric description when no description was available [#2883](https://github.com/MaibornWolff/codecharta/pull/2883)\r\n- Fix windows standalone builds [#2881](https://github.com/MaibornWolff/codecharta/pull/2881)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate color settings panel to Angular [#2873](https://github.com/MaibornWolff/codecharta/pull/2873)\r\n\r\n## [1.99.1] - 2022-06-22\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix packaging of standalone app for macOS and Windows [#2847](https://github.com/MaibornWolff/codecharta/pull/2847)\r\n- Fix dialogparser test of sourcecode parser[#2860](https://github.com/MaibornWolff/codecharta/pull/2860)\r\n\r\n## [1.99.0] - 2022-06-21\r\n\r\n### Added \u{1f680}\r\n\r\n- Add interactive dialog support for the remaining parsers [#2833](https://github.com/MaibornWolff/codecharta/pull/2833) [#2836](https://github.com/MaibornWolff/codecharta/pull/2836) [#2842](https://github.com/MaibornWolff/codecharta/pull/2842) [#2843](https://github.com/MaibornWolff/codecharta/pull/2843) [#2846](https://github.com/MaibornWolff/codecharta/pull/2846)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix analysis bug where importers would get stuck before file output [#2854](https://github.com/MaibornWolff/codecharta/pull/2854)\r\n- Use correct icon for height metric chooser again [#2851](https://github.com/MaibornWolff/codecharta/pull/2851)\r\n- Close height metric option instead of making it only invisible on close [#2853](https://github.com/MaibornWolff/codecharta/pull/2853)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate changelog dialog to Angular [#2849](https://github.com/MaibornWolff/codecharta/pull/2849)\r\n- Migrate node path panel to Angular [#2855](https://github.com/MaibornWolff/codecharta/pull/2855)\r\n\r\n## [1.98.0] - 2022-06-14\r\n\r\n### Added \u{1f680}\r\n\r\n- Add missing documentation for ccsh filters and csv exporter [#2831](https://github.com/MaibornWolff/codecharta/pull/2831)\r\n- Add support for compressed files to all analysis filters and to `check` validation [#2820](https://github.com/MaibornWolff/codecharta/pull/2820)\r\n\r\n### Changed\r\n\r\n- Update Readme file [#2837](https://github.com/MaibornWolff/codecharta/pull/2837)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Default selected metrics on file changes when default scenario is not applicable [#2828](https://github.com/MaibornWolff/codecharta/pull/2828)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Remove old references to single mode states and actions [#2574](https://github.com/MaibornWolff/codecharta/pull/2841)\r\n- Rename multiple mode references to standard [#2574](https://github.com/MaibornWolff/codecharta/pull/2848)\r\n\r\n## [1.97.0] - 2022-05-31\r\n\r\n### Added \u{1f680}\r\n\r\n- Add interactive dialog support for the parsers [#2737](https://github.com/MaibornWolff/codecharta/pull/2737) [#2822](https://github.com/MaibornWolff/codecharta/pull/2822)
    \r\n ![m](https://user-images.githubusercontent.com/48621967/161549546-1463914e-c223-4912-acb1-db4e357e76c5.png)\r\n\r\n### Changed\r\n\r\n- Hide color metric range-slider in color metric options of ribbon bar in delta mode instead of disabling it [#2797](https://github.com/MaibornWolff/codecharta/pull/2797)\r\n- Display max value of selected distribution metric in file extension bar [#2824](https://github.com/MaibornWolff/codecharta/pull/2824)\r\n- Display max value of selected metric in all metric chooser of ribbon bar [#2825](https://github.com/MaibornWolff/codecharta/pull/2825)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Handle invalid input of range-slider correctly [#2797](https://github.com/MaibornWolff/codecharta/pull/2797)\r\n- Use real color range min value instead of 0 and take color range min value into account for calculating initial first third of positive color [#2797](https://github.com/MaibornWolff/codecharta/pull/2797)\r\n- Fix range-slider in case of min value equal to max value [#2797](https://github.com/MaibornWolff/codecharta/pull/2797)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Track not only changes to color metric options by slider but also by related input field [#2797](https://github.com/MaibornWolff/codecharta/pull/2797)\r\n- Migrate center-map-button-component to Angular [#2809](https://github.com/MaibornWolff/codecharta/pull/2809)\r\n- Migrate the following components to Angular: globalSettingsButton.component, dialog.globalSettings.component, layoutSelection.component, sharpnessModeSelector.component, maxTreeMapFiles.component, maxTreeMapFiles.service, hideFlatBuildings.service, resetCameraIfNewFileIsLoaded.service [#2815](https://github.com/MaibornWolff/codecharta/pull/2815)\r\n- Migrate area-settings-panel-component to Angular [#2821](https://github.com/MaibornWolff/codecharta/pull/2821)\r\n\r\n## [1.96.0] - 2022-05-17\r\n\r\n### Changed\r\n\r\n- Remove all mentions of regular `.cc` `.json` `.gz` file extensions from file panel and sidebar [#2793](https://github.com/MaibornWolff/codecharta/pull/2793)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Update slider of area metric options correctly on changes of related input field [#2787](https://github.com/MaibornWolff/codecharta/pull/2787)\r\n- Limit length of labels in legend panel [#2804](https://github.com/MaibornWolff/codecharta/pull/2804)\r\n- Prevent invalid input for margin in area metric options to be submitted [#2799](https://github.com/MaibornWolff/codecharta/pull/2799)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Introduce custom angular material theme [#2784](https://github.com/MaibornWolff/codecharta/pull/2784)\r\n- Migrate height-settings-panel-component [#2790](https://github.com/MaibornWolff/codecharta/pull/2790)\r\n- Fully migrate custom-config-component [#2760](https://github.com/MaibornWolff/codecharta/pull/2760)\r\n\r\n## [1.95.2] - 2022-04-19\r\n\r\n### Changed\r\n\r\n- Restrict upload in custom views menu to custom views. Custom views uploaded in the custom views menu are now allowed to have an arbitrary file suffix [#2773](https://github.com/MaibornWolff/codecharta/pull/2773)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate reset-settings-button-component to Angular [#2774](https://github.com/MaibornWolff/codecharta/pull/2774)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Set files loaded via URL to multiple mode by default when delta mode is not selected [#2769](https://github.com/MaibornWolff/codecharta/pull/2769)\r\n\r\n## [1.95.1] - 2022-04-01\r\n\r\n### Changed\r\n\r\n- Display project name as file name (if not empty or blank) for loaded files via URL [#2767](https://github.com/MaibornWolff/codecharta/pull/2767)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fixes floor labels being drawn next to the map if margin was changed after map height is unequal to 1 [#2763](https://github.com/MaibornWolff/codecharta/pull/2763)\r\n- Fixes floor labels being stuck inside folder geometry when scaling [#2766](https://github.com/MaibornWolff/codecharta/pull/2766)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate metric-hovered-value-component to Angular [#2752](https://github.com/MaibornWolff/codecharta/pull/2752)\r\n\r\n## [1.95.0] - 2022-03-28\r\n\r\n### Added \u{1f680}\r\n\r\n- Focused gradient option for color metric. Only applies a gradient between the two set borders. [#2750](https://github.com/MaibornWolff/codecharta/pull/2750)\r\n\r\n### Changed\r\n\r\n- Mark SCMLogParserV2 as stable and deprecate SCMLogParser for Git [2725](https://github.com/MaibornWolff/codecharta/pull/2725)\r\n - Rename SCMLogParserV2 to GitLogParser\r\n - Rename SCMLogParser to SVNLogParser and remove git parsing\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Set initially correct attribute type of primary edge metric in attribute sidebar [#2731](https://github.com/MaibornWolff/codecharta/issues/2731)\r\n- Fix switching secondary metrics to median aggregation in attribute sidebar [#2630](https://github.com/MaibornWolff/codecharta/issues/2630)\r\n\r\n## [1.94.0] - 2022-03-21\r\n\r\n### Changed\r\n\r\n- Improve sonarimport help message [#2717](https://github.com/MaibornWolff/codecharta/pull/2717)\r\n- Remove blacklist entry on click of name as well [#2712](https://github.com/MaibornWolff/codecharta/pull/2712)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate add `custom config button` in ribbonbar to Angular [#2736](https://github.com/MaibornWolff/codecharta/pull/2736)\r\n\r\n## [1.93.0] - 2022-03-14\r\n\r\n### Added \u{1f680}\r\n\r\n- Show amount of added and removed files in attribute sidebar when delta mode is enabled and a folder is selected [#2701](https://github.com/MaibornWolff/codecharta/pull/2701/files)
    \r\n ![xs](https://user-images.githubusercontent.com/72517530/157468180-4e2d052b-63b8-4040-bb22-b633a24d3b8a.png)\r\n\r\n### Changed\r\n\r\n- Suspicious metrics and risk profile are calculated for all selected maps [#2721](https://github.com/MaibornWolff/codecharta/pull/2721)\r\n- Close search panel and ribbon bar dropdowns on every outside click [#2692](https://github.com/MaibornWolff/codecharta/issues/2692)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix GameObjects importer edge cases [#2705](https://github.com/MaibornWolff/codecharta/pull/2705)\r\n\r\n## [1.92.1] - 2022-03-07\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix removing maps with long file names [#2696](https://github.com/MaibornWolff/codecharta/pull/2697)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate search-bar-component to Angular [#2686](https://github.com/MaibornWolff/codecharta/pull/2686)\r\n\r\n## [1.92.0] - 2022-03-01\r\n\r\n### Changed\r\n\r\n- Design and add a new CodeChara Logo [#2682](https://github.com/MaibornWolff/codecharta/pull/2682)
    \r\n ![xs](https://user-images.githubusercontent.com/48621967/155682925-ecc9fe5d-77de-4927-9c6a-b1059ae9eead.png)\r\n- Risk profile is now calculated for every occurring programming languages in selected file(s)[#2679](https://github.com/MaibornWolff/codecharta/pull/2679)\r\n\r\n## [1.91.1] - 2022-02-25\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix loading of files without edge metric never finished [#2680](https://github.com/MaibornWolff/codecharta/issues/2680)\r\n\r\n## [1.91.0] - 2022-02-21\r\n\r\n### Changed\r\n\r\n- Refactor edge metric panel [#2670](https://github.com/MaibornWolff/codecharta/pull/2670)\r\n - Remove edge metric option \'none\'\r\n - By default, the first edge metric is enabled when map has edge metrics\r\n - Disable edge metric panel when loaded map has no edge metrics\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Improve loading times by reducing the size of JavaScript files [#2667](https://github.com/MaibornWolff/codecharta/pull/2667)\r\n- Fix loading of files without edge metric never finished [#2680](https://github.com/MaibornWolff/codecharta/issues/2680)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate loading gifs to Angular and remove now unused `isLoadingMap.service` [#2668](https://github.com/MaibornWolff/codecharta/pull/2668)\r\n\r\n## [1.90.0] - 2022-02-15\r\n\r\n### Added \u{1f680}\r\n\r\n- Parse and import GameObjects file structure into cc.json on upload [#2646](https://github.com/MaibornWolff/codecharta/pull/2646)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix flaky string comparison possibly due to puppeteer update [#2659](https://github.com/MaibornWolff/codecharta/pull/2659)\r\n- Fix show garbage bin next to the loaded maps [#2647](https://github.com/MaibornWolff/codecharta/pull/2647)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Run standalone version of CodeCharta in Node.js web target (and disable [#1314](https://github.com/MaibornWolff/codecharta/issues/1314)), so that local storage is available [#2637](https://github.com/MaibornWolff/codecharta/pull/2637)\r\n\r\n## [1.89.0] - 2022-02-07\r\n\r\n### Added \u{1f680}\r\n\r\n- Add area metric option to invert the amount of area, which is used for the nodes [#2626](https://github.com/MaibornWolff/codecharta/pull/2626)\r\n- Add button to clear search field [#2638](https://github.com/MaibornWolff/codecharta/pull/2638)
    \r\n ![xs](https://user-images.githubusercontent.com/48218172/151999974-3b8a7cca-52b2-4757-b3c0-e3b2e36ad237.png)\r\n\r\n### Changed\r\n\r\n- New buttons for selecting attribute types [#2631](https://github.com/MaibornWolff/codecharta/pull/2631)\r\n ![xs](https://user-images.githubusercontent.com/72517530/151762455-07e47bf5-18aa-4721-a60a-6dfee057e1e5.png)\r\n- Migrate context menu with slightly new layout touch to Angular. Migrated version prevents rendering outside of view [#1661](https://github.com/MaibornWolff/codecharta/issues/1661)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Remove delay of keeping a building highlight permanently [#2641](https://github.com/MaibornWolff/codecharta/issues/2641)\r\n\r\n## [1.88.0] - 2022-01-24\r\n\r\n### Changed\r\n\r\n- Rename custom configs to custom view [#2625](https://github.com/MaibornWolff/codecharta/pull/2625)\r\n- Combine single and multiple mode into standard mode [#2578](https://github.com/MaibornWolff/codecharta/pull/2578)\r\n ![xs](https://user-images.githubusercontent.com/72517530/150765617-2d66eb78-2c26-45c5-b63b-f84994ed88ab.png)\r\n- Improve file validation handling and provide more descriptive import messages [#2604](https://github.com/MaibornWolff/codecharta/pull/2604)\r\n ![xs](https://user-images.githubusercontent.com/48621967/150532207-f3b482ed-3a14-43c0-b1a3-80ac4c25d5e0.png)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix Image not shown in what is new dialog [#2610](https://github.com/MaibornWolff/codecharta/pull/2610)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n - Unfocus focused node only when map starts to load and not also when map has finished loading. This shouldn\'t change any behavior for the user [#2614](https://github.com/MaibornWolff/codecharta/pull/2614)\r\n\r\n## [1.87.1] - 2022-01-17\r\n\r\n### Changed\r\n\r\n- User-friendly renaming for display quality options [#2601](https://github.com/MaibornWolff/codecharta/pull/2601)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix color of selected building in delta mode [#2603](https://github.com/MaibornWolff/codecharta/pull/2603)\r\n- Fix link to news page when clicking \'Know more\' button changelog dialog [#2602](https://github.com/MaibornWolff/codecharta/pull/2602)\r\n- Fix Image not shown in what is new dialog [#2610](https://github.com/MaibornWolff/codecharta/pull/2610)\r\n\r\n## [1.87.0] - 2022-01-11\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate `unfocus-button-component` to Angular.\r\n\r\n### Changed\r\n\r\n- Remove suspicious metrics from custom map configurations [#2564](https://github.com/MaibornWolff/codecharta/pull/2564).\r\n- Add \'show/hide non-applicable CustomConfigs\' button to Custom Configs menu [#2591](https://github.com/MaibornWolff/codecharta/pull/2591).\r\n\r\n## [1.86.0] - 2021-12-20\r\n\r\n### Added \u{1f680}\r\n\r\n- Add 3D export feature for 3D printing [#2561](https://github.com/MaibornWolff/codecharta/pull/2561).
    \r\n ![xs](https://user-images.githubusercontent.com/48621967/146173663-e0ea177e-6ed8-4ddb-bd11-410415541e9f.png)\r\n ![l](https://user-images.githubusercontent.com/48621967/146174397-42a6e475-ed2f-47c0-ba9c-4f8304d53399.png)\r\n\r\n### Changed\r\n\r\n- Replace all color pickers in the context of ongoing Angular migration [#2560](https://github.com/MaibornWolff/codecharta/pull/2560).\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix showing names of custom configs properly [#2557](https://github.com/MaibornWolff/codecharta/pull/2557).\r\n- Fix minor memory leak in context menu for code map buildings [#2565](https://github.com/MaibornWolff/codecharta/issues/2565).\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate legend panel to Angular [#2560](https://github.com/MaibornWolff/codecharta/pull/2560).\r\n\r\n## [1.85.0] - 2021-12-13\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix delta values of secondary metrics not shown in delta mode within attribute side bar [#2539](https://github.com/MaibornWolff/codecharta/issues/2539).\r\n- Use icon tag instead of font awesome icon [#2537](https://github.com/MaibornWolff/codecharta/pull/2537).\r\n- Rename text for placeholder of metric chooser [#2547](https://github.com/MaibornWolff/codecharta/pull/2547)\r\n- Fix attribute type selector of primary edge metric not shown [#2528](https://github.com/MaibornWolff/codecharta/issues/2528).\r\n- Identical files and files with identical file names but different hashes can be loaded [#2548](https://github.com/MaibornWolff/codecharta/pull/2548)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Remove `secondaryMetrics` from store and remove `secondaryMetrics.service` as the data can be derived from selected node [#2527](https://github.com/MaibornWolff/codecharta/pull/2527).\r\n- Migrate `attribute-side-bar-component` to Angular [#2527](https://github.com/MaibornWolff/codecharta/pull/2527).\r\n- Switch from Webpack 4 Loaders to Asset Module to load icons properly with css-loader 6.x [#2542](https://github.com/MaibornWolff/codecharta/pull/2542).\r\n\r\n### Removed \u{1f5d1}\r\n\r\n- Remove notification dialog when deleting a custom config [#2553](https://github.com/MaibornWolff/codecharta/pull/2553)\r\n\r\n## [1.84.1] - 2021-11-29\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix compressed files not being loaded ([#2524](https://github.com/MaibornWolff/codecharta/pull/2525))\r\n\r\n## [1.84.0] - 2021-11-22\r\n\r\n### Changed\r\n\r\n- Improved the UI and usability of the Suspicious Metrics Feature ([#2376](https://github.com/MaibornWolff/codecharta/pull/2494))
    \r\n - The Metrics and the Analysis are now split in two menus
    \r\n ![xs](https://user-images.githubusercontent.com/48621967/141795078-bb856f53-1bc3-4c09-8be5-d031899835ae.png)\r\n - The Suspicious Metrics are now sorted with the Very High Risk on top
    \r\n ![m](https://user-images.githubusercontent.com/48621967/141793011-1bfc0e19-bd3a-4bd2-af70-c3dd472821b6.png)\r\n - The bar in the analysis shows the percentages
    \r\n ![m](https://user-images.githubusercontent.com/48621967/141791111-564778fa-b767-4ee4-b024-6856f1a79b4b.png)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix showing labels when weighted gradient on yellow buildings in color metric options are enabled ([#2511](https://github.com/MaibornWolff/codecharta/pull/2511))\r\n- Fix rounding of the sum of percentages in risk profile ([#2393](https://github.com/MaibornWolff/codecharta/pull/2516))\r\n- Fix legend panel not having a background ([#2422](https://github.com/MaibornWolff/codecharta/pull/2510))\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Remove `nodeSearch.service.ts` and `searchedNodePaths` from store as they can be derived from `searchPattern` ([#2495](https://github.com/MaibornWolff/codecharta/pull/2495)).\r\n- Refactor where metric data are calculated ([#2514](https://github.com/MaibornWolff/codecharta/pull/2514)).\r\n- Migrate `attribute-type-selector-component` to Angular ([#2519](https://github.com/MaibornWolff/codecharta/pull/2519)).\r\n\r\n## [1.83.1] - 2021-11-10\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix loading files from URL in Web Demo ([#2494](https://github.com/MaibornWolff/codecharta/pull/2494))\r\n\r\n## [1.83.0] - 2021-11-09\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix unwanted calculations of suspicious metrics when experimental features are disabled ([#2471](https://github.com/MaibornWolff/codecharta/pull/2471))\r\n- Fix UI issues in the configuration panel ([#2322](https://github.com/maibornwolff/codecharta/issues/2322))\r\n- Fix tooltip of sorting order button in map tree view showing wrong sorting order ([#2473](https://github.com/maibornwolff/codecharta/issues/2473))\r\n\r\n### Changed\r\n\r\n- Calculate MD5 checksum when generating .cc.json files ([#2411](https://github.com/MaibornWolff/codecharta/pull/2450))\r\n\r\n## [1.82.0] - 2021-10-18\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix what\'s new section including the last opened version ([#2447](https://github.com/MaibornWolff/codecharta/pull/2453))\r\n- Fix unfocus button text not showing correctly ([#2439](https://github.com/MaibornWolff/codecharta/pull/2439))\r\n\r\n### Changed\r\n\r\n- Folders in the Folder structure view of the top left come now always before any files, regardless of the sort order.\r\n\r\n## [1.81.0] - 2021-10-11\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix color picker not being usable ([#2439](https://github.com/MaibornWolff/codecharta/pull/2439))\r\n- Fix Changelog inconsistencies ([#2425](https://github.com/MaibornWolff/codecharta/pull/2425))
    \r\n ![xl](https://user-images.githubusercontent.com/48621967/135866024-ee06119a-1a62-4912-90df-ac3aa9216608.PNG)\r\n- Fix memory and performance issues related to drawing labels on floors/folders ([#2348](https://github.com/MaibornWolff/codecharta/issues/2348)).\r\n- Hides legend block if label description is not available and adds new metric descriptions ([#2377](https://github.com/maibornwolff/codecharta/issues/2377)).\r\n\r\n## [1.80.0] - 2021-10-04\r\n\r\n### Added \u{1f680}\r\n\r\n- Adds feature to display building colors as a gradients ([#2327](https://github.com/MaibornWolff/codecharta/issues/2327)).\r\n - "Weighted Gradient" only mixes colors in a small interval around the preset values.\r\n - "True Gradient" mixes colors from the 0 to the highest value, the two preset color range values determine the balance.\r\n - "Absolute" represents the old behaviour without gradients.
    \r\n ![l](https://user-images.githubusercontent.com/42114276/134924267-245c65c9-2893-43a8-9a0a-17e3182bf15a.JPG)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix broken file/node search #2389\r\n- Fix changelog inconsistencies ([#2425](https://github.com/MaibornWolff/codecharta/pull/2425))\r\n\r\n## [1.79.0] - 2021-09-20\r\n\r\n### Added \u{1f680}\r\n\r\n- Add metric descriptions to the frontend and show a translation next to the entry ([#2330](https://github.com/MaibornWolff/codecharta/issues/2330))
    \r\n \r\n- An option has been added to the global settings to enable copying screenshots to clipboard instead of saving them in a file ([#2326](https://github.com/MaibornWolff/codecharta/issues/2326))
    \r\n ![xl](https://user-images.githubusercontent.com/57844849/131342771-a3c637e3-8241-49aa-8d51-71e3a8d38aef.png)\r\n- Add changelog guidelines ([#2358](https://github.com/MaibornWolff/codecharta/pull/2358))\r\n- A changelog dialog with the latest additions to CodeCharta appears on version update ([#1315](https://github.com/MaibornWolff/codecharta/pull/2342))
    \r\n ![xl](https://user-images.githubusercontent.com/48621967/131360878-a8e1ef40-7f73-4de7-8b3f-4c8dc21448da.PNG)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix broken method call in screenshot feature.\r\n- Improve changelog entries.\r\n\r\n### Changed\r\n\r\n- Changing the background color and remove "outgoing" and "incoming" edges from the legend, if not applicable ([#2330](https://github.com/MaibornWolff/codecharta/issues/2330))\r\n- Improve the user experience for the AI Feature "Suspicious Metrics and Risk Profiles" and enable it for any programming language ([#2362](https://github.com/MaibornWolff/codecharta/pull/2362))
    \r\n ![m](https://user-images.githubusercontent.com/26900540/133250867-adf4583d-9d0e-4f81-b8a7-1407b93d9f40.png)\r\n\r\n## [1.78.0] - 2021-09-06\r\n\r\n### Added \u{1f680}\r\n\r\n- A changelog dialog with the latest additions to CodeCharta appears on version update ([#1315](https://github.com/MaibornWolff/codecharta/issues/1315))\r\n- Add documentation for SCMLogParserV2 ([#1349](https://github.com/maibornwolff/codecharta/issues/1349))\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Empty temporary label during hovering ([#2328](https://github.com/maibornwolff/codecharta/issues/2328))\r\n- Show the screenshot hotkey in the screenshot title ([#2323](https://github.com/maibornwolff/codecharta/issues/2323))\r\n- Improved rendering performance ([#2345](https://github.com/MaibornWolff/codecharta/pull/2345))\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Update GH-Pages and visualization dependencies ([#2356](https://github.com/maibornwolff/codecharta/issues/2356))\r\n\r\n## [1.77.0] - 2021-07-30\r\n\r\n### Added \u{1f680}\r\n\r\n- The "Color Metric Options" panel and "Legend" panel display the maximum value of the selected metric instead of infinite. ([#1520](https://github.com/maibornwolff/codecharta/issues/1520))\r\n- Mark color-section as unimportant in delta mode ([#769](https://github.com/maibornwolff/codecharta/issues/769))\r\n\r\n### Changed\r\n\r\n- Small ui improvements added. ([#1881](https://github.com/MaibornWolff/codecharta/issues/1881))\r\n- Numbers/Percentages always show in the distribution bar([#1540](https://github.com/MaibornWolff/codecharta/issues/1540))\r\n - Toggle between percentage and absolute numbers by clicking anywhere on the (expanded) distribution bar.\r\n - The old expanded distribution bar is now accessible through a button.\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- It is no longer possible to exclude all files on the map ([#901](https://github.com/MaibornWolff/codecharta/issues/901))\r\n\r\n## [1.76.0] - 2021-07-13\r\n\r\n### Added \u{1f680}\r\n\r\n- Custom metric scenarios which include the \'Color-Metric\' (rloc) will now also save any changes made to the color scheme.\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Performance improvements when loading new files. ([#1312](https://github.com/maibornwolff/codecharta/issues/1312))\r\n\r\n## [1.75.0] - 2021-07-05\r\n\r\n### Added \u{1f680}\r\n\r\n- Imported files are now compressed by default. Use the -nc parameter to uncompress the files. ([#1702](https://github.com/maibornwolff/codecharta/issues/1702))\r\n- Export the current view as a png image by using "Ctrl+Alt+S" or clicking the corresponding button ([#674](https://github.com/MaibornWolff/codecharta/issues/674))\r\n- Show only labels of buildings according to a chosen color ([#1347](https://github.com/MaibornWolff/codecharta/issues/1347))\r\n- New buttons to reset the color hex values and color metric thresholds separately ([#1613](https://github.com/MaibornWolff/codecharta/issues/1613))
    \r\n ![l](https://user-images.githubusercontent.com/50167165/121889295-5b071780-cd19-11eb-87ef-aba0ab0c6c09.png)\r\n\r\n### Changed\r\n\r\n- Metric aggregations now work as intended and are available from the sidebar when selecting folders ([#1953](https://github.com/MaibornWolff/codecharta/issues/1953))\r\n- Opening new files does no longer remove old ones.\r\n - Already loaded files can be individually removed.\r\n - The \'Multiple\' view will select the latest files.
    \r\n ![l](https://user-images.githubusercontent.com/50167165/123071234-c6856f00-d414-11eb-8326-e25f614e75d7.png)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- It is now possible to rotate the map by rotating the view cube ([#353](https://github.com/MaibornWolff/codecharta/issues/353))\r\n\r\n## [1.74.0] - 2021-05-31\r\n\r\n### Added \u{1f680}\r\n\r\n- SonarImport: SonarQube 8.8 support. Older versions are still supported.\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Only show labels for building included in the search\r\n- Color slider not initialized correctly ([#1592](https://github.com/MaibornWolff/codecharta/issues/1592))\r\n\r\n## [1.73.0] - 2021-05-10\r\n\r\n### Added \u{1f680}\r\n\r\n- Improve descriptions ([#1879](https://github.com/MaibornWolff/codecharta/issues/1879))\r\n

    \r\n ![m](https://user-images.githubusercontent.com/57844849/115393175-b2897b00-a1e1-11eb-8601-d2128f3469a3.png)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Excluding in delta mode is broken ([#1578](https://github.com/MaibornWolff/codecharta/issues/1578))\r\n (Inclusion and exclusion of files using wildcard searches in the flatten and exclude operations)\r\n- Fix labels and lines missing a connection in some cases([#1716](https://github.com/MaibornWolff/codecharta/issues/1716))\r\n- Ribbons resizing when expanding ([#1952](https://github.com/MaibornWolff/codecharta/issues/1952))\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Fix breaking changes with newest three-js version([#1877](https://github.com/MaibornWolff/codecharta/issues/1877))\r\n\r\n## [1.72.0] - 2021-04-22\r\n\r\n### Added \u{1f680}\r\n\r\n- Hints for Global Settings ([#1715](https://github.com/MaibornWolff/codecharta/issues/1715))\r\n- Indicate total nodes and excluded / flattened nodes in file explorer ([#1880](https://github.com/MaibornWolff/codecharta/issues/1880))\r\n- Add path to node context menu ([#1667](https://github.com/MaibornWolff/codecharta/issues/1667))\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Made the header semi responsive ([#1037](https://github.com/MaibornWolff/codecharta/issues/1037))\r\n\r\n## [1.71.2] - 2021-03-16\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- DevOps pipeline changes\r\n- Fixed web visualization in github\r\n\r\n## [1.71.1] - 2021-03-16\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- DevOps pipeline changes\r\n\r\n## [1.71.0] - 2021-03-16\r\n\r\n### Changed\r\n\r\n- Disable unready AI function\r\n- Fix linter errors\r\n- Fix editorconfig\r\n\r\n## [1.70.2] - 2021-03-12\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- DevOps pipeline changes\r\n- Project naming for Docker deployment\r\n\r\n## [1.70.1] - 2021-03-12\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- DevOps pipeline changes\r\n\r\n## [1.70.0] - 2021-03-09\r\n\r\n### Changed\r\n\r\n- Render on demand ([#1728](https://github.com/MaibornWolff/codecharta/issues/1728))\r\n\r\n### Fixed\r\n\r\n- Memory leaks\r\n\r\n## [1.69.0] - 2021-02-23\r\n\r\n### Added \u{1f680}\r\n\r\n- Added WebGL FXAA antialias & PixelRatio Options in order to achieve better resolution on high dpi displays(https://github.com/MaibornWolff/codecharta/pull/1551).

    \r\n ![option dialog](https://user-images.githubusercontent.com/74670211/106582136-f4404900-6543-11eb-8f5b-5e1ec47457c7.png)\r\n There are 4 available modes:\r\n - **standard mode**: the pixel density is only applied to the small cube with standard browser aliasing\r\n - **pixel ratio without aliasing**: no antialiasing is used\r\n - **pixel ration with FXAA**: Nvidia FXAA antialiasing shader is used as an alisaing technique. this has better perfromance the standard browser aliasing aliasing\r\n - **pixel ration with MSAA**: this is the best aliasing quality, slower then FXAA.\r\n- Added GPU Stats (only in dev mode)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Unfocus now respects the focus depth ([#1099](https://github.com/MaibornWolff/codecharta/issues/1099))\r\n- Track anonymous usage data also for older CodeCharta API versions and fix some minor bugs.\r\n\r\n## [1.68.0] - 2021-02-08\r\n\r\n### Added \u{1f680}\r\n\r\n- A new experimental feature has been added to track anonymous metadata of a currently loaded map.\r\n - Neither the map name nor file names will be tracked but anonymous metric values and statistics like (average, min, max).\r\n - The tracked data will not be sent to a server yet. Instead, it can be downloaded as a json file in the Global Settings for now.\r\n - It is planned to send the anonymous data to a server in the future, so that we can collect tracking data automatically.\r\n - ![example of new feature](https://user-images.githubusercontent.com/26900540/106896300-ac5f2480-66f1-11eb-8096-246d1733c0ee.png)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Errors occurred in delta mode if names of root folders were different\r\n- Switching maps in delta mode now shows the differences between the maps ([#1606](https://github.com/maibornwolff/codecharta/issues/1606))\r\n- Label over hovered building not shown for height Metric value of zero ([#1623](https://github.com/MaibornWolff/codecharta/issues/1623))\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- CodeChartaStorage class has been introduced to dynamically store values either on disk (standalone version) or in the localStorage (web version). This is the first step to solve [#684](https://github.com/MaibornWolff/codecharta/issues/684).\r\n\r\n## [1.67.0] - 2021-01-26\r\n\r\n### Added \u{1f680}\r\n\r\n- Allow opening files from local drive by double clicking on the buildings or clicking on their names ([#1314](https://github.com/MaibornWolff/codecharta/issues/1314))\r\n - Only available in the standalone version!\r\n - files are opened in associated third-party applications\r\n - web-links are opened in a browser window\r\n- Allow customized color in the node context menu ([#1556](https://github.com/MaibornWolff/codecharta/issues/1556)).\r\n\r\n [!example of new feature #1556](https://user-images.githubusercontent.com/3596742/104302048-a007f300-54c8-11eb-86c1-287483884783.png)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- fixed wrong max tree map visibility ([#1624](https://github.com/MaibornWolff/codecharta/issues/1624))\r\n- fixed incorrect label placement on delta maps that share no common nodes ([#1686](https://github.com/MaibornWolff/codecharta/issues/1686))\r\n\r\n## [1.66.0] - 2021-01-18\r\n\r\n### Added \u{1f680}\r\n\r\n- Allow color of buildings to be customizable in the ribbon bar and in the legend. Colors of edges are now customizable as well ([#1533](https://github.com/MaibornWolff/codecharta/issues/1533))

    \r\n ![example of new feature](https://user-images.githubusercontent.com/3596742/103547861-3c1c7380-4ea5-11eb-8df2-541caf65b9df.png)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Global settings not reverting to default ones ([#1632](https://github.com/MaibornWolff/codecharta/issues/1632))\r\n- Maximum treemap files shown in squarified node ([#1624](https://github.com/MaibornWolff/codecharta/issues/1624))\r\n- Wrong folder names and colors in legend when using the highlight folder feature ([#1555](https://github.com/MaibornWolff/codecharta/issues/1555))\r\n- Temporary labels are placed at the wrong height for scaled buildings ([#1618](https://github.com/MaibornWolff/codecharta/issues/1618))\r\n- Visible labels will disappear or placed lower for scaled buildings ([#1619](https://github.com/MaibornWolff/codecharta/issues/1619))\r\n- Unnecessary break line for secondary metrics ([#1093](https://github.com/MaibornWolff/codecharta/issues/1093))\r\n\r\n## [1.65.0] - 2020-12-23\r\n\r\n### Added \u{1f680}\r\n\r\n- Highlight label while hovering over building, draw a temporary label for hovered buildings that have none ([#1529](https://github.com/MaibornWolff/codecharta/issues/1529))\r\n- Integrated streetlayout ([#904](https://github.com/MaibornWolff/codecharta/issues/904))\r\n ![cc_street_ccv](https://user-images.githubusercontent.com/63230711/78872405-87eed900-7a49-11ea-984a-c0ef738779b9.png)\r\n In street layout file nodes are displayed as buildings and directories are displayed as streets. A street layout has the advantage of a more apparent directory structure and stable positioning of nodes after metric changes.\r\n two different Street layout are integrated : - StreetLayout : as described above. - TMStreet : a combination of street layout and squarified layout.\r\n\r\n### Changed\r\n\r\n- The button to see excluded buildings is now merged into the flattened button. Excluded and flattened buildings can now be seen by opening the building with the eye slash icon ([#1543](https://github.com/MaibornWolff/codecharta/issues/1543))\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Height scaling not applied to buildings ([#1595](https://github.com/MaibornWolff/codecharta/issues/1595)))\r\n- Fixed multiple label positioning/scaling bugs\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- e2e flaky test ([#1322](https://github.com/MaibornWolff/codecharta/issues/1322))\r\n\r\n## [1.64.0] - 2020-12-15\r\n\r\n### Added \u{1f680}\r\n\r\n- Download and upload Custom Configurations is now possible ([#1472](https://github.com/MaibornWolff/codecharta/issues/1472))\r\n\r\n - Open the Custom Configs menu in the toolbar on top of the map\r\n - Next to the `plus` Button you can see two new buttons: Upload and download.\r\n - Download: If you already have added Custom Configs you can download them by clicking the download button.\r\n - Custom Configs which are applicable for the currently selected map(s) will be downloaded as `.cc.config.json` files.\r\n - Upload: Click the upload button and specify your Custom Config file (`.cc.config.json`)\r\n - Already existing Custom Configs will be skipped.\r\n - Different Custom Configs with same names will be renamed.\r\n - Another way to upload your Custom Configs is to upload a `.cc.json` file together with one or multiple `.cc.config.json` files using the default `Load .cc.json map` button in the upper left corner.\r\n - The Configs are stored to the local storage of your browser.\r\n - If a limit of `768KB` is exceeded you will see a warning when trying to add a new Custom Config.\r\n - You can click the displayed "download and purge" button to download/backup at least 6 months old Configs and then purge them from the local storage to make space for new ones.\r\n - If we cannot purge any Configs, you might have to do that by your own by deleting specific Configs manually.\r\n\r\n### Changed\r\n\r\n- Increase possible margin size ([#1490](https://github.com/MaibornWolff/codecharta/pull/1490))\r\n - change displayed margin value from % to pixel\r\n - change dynamic margin value to a default margin value that should fit the map\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Re-enabled color selection for folders and on hover ([#1544](https://github.com/MaibornWolff/codecharta/pull/1544))\r\n- Labels do not take delta height into account ([#1523](https://github.com/MaibornWolff/codecharta/issues/1523))\r\n- The calculation of the map resolution scale factor was wrong ([#1491](https://github.com/MaibornWolff/codecharta/issues/1491))\r\n - The factor is used to decrease the map resolution especially for big maps to avoid performance issues.\r\n - Now only the selected maps will be considered for the calculation. Unselected maps will be skipped.\r\n\r\n## [1.63.0] - 2020-11-30\r\n\r\n### Added \u{1f680}\r\n\r\n- Add the folder name onto the floor on the first 3 layers to get a better overview of the map ([#1491](https://github.com/MaibornWolff/codecharta/issues/1491))\r\n- UX Improvements related to labels allowing for user interaction #1404\r\n - Labels can be hovered, hovering their corresponding node\r\n - Selecting a label will select the corresponding node\r\n - Hovering a label will remove its transparency and move towards the user:\r\n - If other labels obstruct the hovered label it will move to the front\r\n - Increased the transparency of other labels; this makes it easier to distinguish the hovered label\r\n - Increase the amount of labels to 250.\r\n- Show file count of folders in Attribute-Side-Bar ([#1255](https://github.com/MaibornWolff/codecharta/issues/1255)):\r\n ![img showing file count of folder](https://user-images.githubusercontent.com/3596742/100371884-be915800-3008-11eb-89f5-ed57c62680cc.png)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Buildings are flattened when delta is active #824.\r\n- Selected Building now stays highlighted when map is rotated #1498\r\n\r\n## [1.62.0] - 2020-11-12\r\n\r\n### Added \u{1f680}\r\n\r\n- A new option in the Global Settings allows to enable/disable experimental features #1318\r\n - Click on the settings button in the upper right corner to open the Global Settings dialog.\r\n - Activate/Deactivate the new option "Enable Experimental Features"\r\n - The features will be shown/hidden accordingly\r\n- "CustomViews", the first experimental feature has been added #1318\r\n\r\n - It must be enabled by activating the new option in the Global Settings dialog as mentioned before.\r\n - You can save your current map configurations to replay/restore them later.\r\n - A saved CustomView can only be applied for it\'s original map.\r\n - This will enable you to be more efficient in analizing projects by switching between different CustomViews.\r\n\r\n- NodeContextMenu now contains option to keep buildings highlighted #1323\r\n\r\n- Fixed Folder algorithm supports nested (parent-child) Fixed Folders #1431\r\n 1. Define children of a Fixed Folder also as Fixed Folders by adding the `fixedPosition` attribute manually in `.cc.json`.\r\n 1. All children of a parent Fixed Folder must be fixed.\r\n 1. Read the how-to guide for further information: https://maibornwolff.github.io/codecharta/how-to/fixate_folders_with_a_custom_cc_json/\r\n\r\n### Changed\r\n\r\n- Improved search\r\n\r\n 1. Not providing any star in the search bar from now on expects the input to\r\n be a wildcard search. Thus, files are going to match paths that have\r\n leading or following characters. E.g., `oo` is going to match\r\n `/root/foobar`.\r\n 1. To use the explicit former search mode, wrap the search entry in quotes as\r\n in: `"oo"`. This would only match filenames that are exactly `oo`.\r\n 1. The search field accepts multiple search entries at once, separated by\r\n commata. `foo,bar` is going to search for both `*foo*` and `*bar*` and\r\n marks all matched files accordingly.\r\n 1. It is possible to invert the search with a leading exclamation mark as in\r\n `!foobar`. That will match any file that does not match `*foobar*`. It is\r\n only possible to invert the complete input, not individual search entries.\r\n 1. Whitespace handling changed to ignore leading whitespace.\r\n\r\n- Distribution metric #1188\r\n\r\n 1. set rloc to default distribution metric, showing language percentages for real lines of code, if available. Else set to unary to show language distribution over files\r\n\r\n- Improved file sorting in the file overview of the search bar\r\n - Numbers are sorted naturally\r\n - Characters are compared with their base character (e.g., `a` is now next to `\xe1`).\r\n- Label metric not shown by default anymore\r\n\r\n## [1.61.0] - 2020-10-30\r\n\r\n### Changed\r\n\r\n- Disable highlighting buildings during map movement #1432\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- File tree/flattened/excluded overlay visualization is buggy #1269\r\n- EdgePreview on Map broken when selecting zero #1276\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Schedules and merge retries of dependabot dependency updates changed\r\n\r\n## [1.60.2] - 2020-10-24\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Mouse cursor flickering #1170\r\n- Fix flipping map when clicking any option in the toolbar #1410\r\n- Fix edge metric not working correctly\r\n\r\n## [1.60.1] - 2020-10-20\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Issue with first start without an internet connection not working#1266\r\n- Issue with ribbon bar sizes for opened cards #1035\r\n\r\n## [1.60.0] - 2020-10-16\r\n\r\n### Added \u{1f680}\r\n\r\n- Parsing feedback with progressbar and probable ETA for parsers and SonarImporter #847\r\n- Mark node names and make the names clickable for nodes that have a link to them #1313\r\n- Indicate the metric name next to a shown value in a new line on labels #1035\r\n- Checkboxes to display metric names and values and to display node names on labels #1035\r\n- Mark node names and make the names clickable for nodes that have a link to them #1313\r\n\r\n### Changed\r\n\r\n- Label design #1035\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- First start without an internet connection of standalone not working #1266\r\n- Comparing a map in delta mode shows the correct differences\r\n- This mainly applies to maps compared with itself while it also fixes some other minor miscalculations\r\n- File extensions detection is improved\r\n- Zooming in and out the map will now close the node context menu #1324\r\n - Improved and simplified event handling in NodeContextMenu component\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Improved performance of multiple operations (e.g., delta mode).\r\n\r\n## [1.59.0] - 2020-10-09\r\n\r\n### Added \u{1f680}\r\n\r\n- New EXPERIMENTAL SCMLogParser version\r\n- Improved performance around 300% when parsing CodeCharta\r\n- Improved memory usage\r\n- Fixed issue with old parser creating incorrect nodes in CodeCharta #871\r\n- ATTENTION: the parser is experimental, therefore some potential issues might remain, e.g. potentially an unhandled edge case when parsing node\r\n- To use the new parser a reversed git log is needed, as well as a git file list, refer to `ccsh scmlogparserv2 -h` for additional information\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Color-Metric slider is set and activated in the map accordingly to the released sliderbutton #1319\r\n- Deselcting a building will instantly dehighlight the buildings which were connected through edges #890\r\n\r\n## [1.58.1] - 2020-10-02\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Showing wrong edges when hovering a building after selecting one #1137\r\n\r\n## [1.58.0] - 2020-10-02\r\n\r\n### Added \u{1f680}\r\n\r\n- Add active color metric to the top of the legend panel #1278\r\n- SourceCodeParser: Java 14 Support #1277\r\n\r\n## [1.57.4] - 2020-09-25\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Metric-Settings-Panels closed when clicking an option inside the panel #1258\r\n- Improve loading and rendering maps performance\r\n\r\n## [1.57.3] - 2020-09-18\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Improve overall performance for loading and rendering maps\r\n- Improve error messages when a file can\'t be loaded with the URL parameters\r\n\r\n## [1.57.2] - 2020-09-11\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- New API version 1.2 not set correctly in analysis\r\n\r\n## [1.57.1] - 2020-09-11\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Validation of unique filenames not checking for the complete path and instead throwing an error on duplicate filename\r\n\r\n## [1.57.0] - 2020-09-11\r\n\r\n### Added \u{1f680}\r\n\r\n- `fixedPosition` as a new property in the `cc.json` that allows to fixate folders in the map\r\n\r\n### Changed\r\n\r\n- `cc.json` version updated to `1.2`\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Compressed `cc.jsons (.gz) not marked as accepted when selecting a file in the file chooser\r\n\r\n### Docs \u{1f50e}\r\n\r\n- [How-To: Fixate Folders in the `cc.json`](https://maibornwolff.github.io//codecharta/how-to/fixate_folders_with_a_custom_cc_json/)\r\n- CC-Json-API changes\r\n\r\n## [1.56.0] - 2020-09-04\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Improve performance when switching to multiple or delta mode when edges are available\r\n- Scenario with EdgeMetric is only appliable when EdgeMetric is existing for the Map #1201\r\n- Starting standalone version results in infinite loading loop #1202\r\n- Expanded metric selection will close when clicking anywhere outside of that selection #1036\r\n\r\n## [1.55.0] - 2020-08-28\r\n\r\n### Added \u{1f680}\r\n\r\n- Cursor indicator for different mouse actions #1042\r\n\r\n### Changed\r\n\r\n- Edge-Metrics sorted by name now instead of number of incoming and outgoing edges\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Number of incoming and outgoing edges not visible when hovering over a node #1095\r\n- Highlighting buildings in multiple mode now works #956\r\n\r\n## [1.54.0] - 2020-08-21\r\n\r\n### Added \u{1f680}\r\n\r\n- Opening NodeContextMenu in the tree-view marks the node until it is closed #1068\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Missing Sonarcloud metrics in demo\r\n\r\n### Docs \u{1f50e}\r\n\r\n- Added note how to fix missing `sh` command issue when running integration tests on Windows\r\n\r\n## [1.53.0] - 2020-08-14\r\n\r\n### Changed\r\n\r\n- NodeContextMenu will show up when releasing the right-mouse-button now #1027\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- NodeContextMenu showing up after moving the mouse while holding right-mouse-button #1027\r\n\r\n## [1.52.0] - 2020-08-07\r\n\r\n### Added \u{1f680}\r\n\r\n- Support for Tokei 12 new JSON schema #1103\r\n\r\n### Changed\r\n\r\n- Rename master branch to main for a more inclusive naming #1117\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- After loading an invalid file the filechooser pops up again, so that the user can choose a valid file #1021\r\n- Quality gates on sonarcloud.io are red #879\r\n\r\n### Docs \u{1f50e}\r\n\r\n- Moved developer guides to our [gh-pages](https://maibornwolff.github.io/codecharta/) #986\r\n\r\n## [1.51.0] - 2020-07-24\r\n\r\n### Added \u{1f680}\r\n\r\n- File chooser now accept ".json" files only to avoid accidentally loading incorrect files #1094\r\n- Lots of tooltips #1030\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Blacklisting a building would sometimes not update the map #1098\r\n- Changes made after opening the filechooser and closing it won\'t be applied #875\r\n- Edge metric list not always updated correctly when loading a new file #1106\r\n\r\n## [1.50.0] - 2020-07-10\r\n\r\n### Added \u{1f680}\r\n\r\n- Line between scenario indicator and remove button #1069\r\n\r\n### Changed\r\n\r\n- Reduced transition time when opening or collapsing parts of the ribbon bar #1043\r\n- Search Panel will open now when clicking in the search field and collapse when clicking somewhere else #1071\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Opening the same file again will now reload the file and reset the application #1032\r\n- Improve render performance by persisting color conversions #1034\r\n- Sorting in tree-view not being applied #1040\r\n\r\n## [1.49.1] - 2020-07-03\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Improved performance significantly when switching between single, multiple and delta\r\n- Color-Range-Slider sometimes misbehaved when loading a new map or excluding buildings #926\r\n\r\n## [1.49.0] - 2020-06-19\r\n\r\n### Added \u{1f680}\r\n\r\n- Custom scenarios can be created and saved through the scenario menu #675\r\n- Importer and parser documentation can now be found on the github Website #954\r\n- Output of sourcemonitor can now be compressed with the compression flag\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- [Security] Bump angular from 1.7.9 to 1.8.0 in /visualization #995\r\n\r\n## [1.48.0] - 2020-06-12\r\n\r\n### Added \u{1f680}\r\n\r\n- Support of compressed cc.json files. Files can be compressed in the analysis #848\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Improved performance of several importers #846\r\n\r\n## [1.47.1] - 2020-05-08\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Attribute-Side-Bar being invisible\r\n\r\n## [1.47.0] - 2020-05-02\r\n\r\n### Added \u{1f680}\r\n\r\n- When hovering over a folder, all buildings inside it will be highlighted as well #694\r\n\r\n### Changed\r\n\r\n- Rename the button Show-Complete-Map button to Unfocus #642\r\n- Move the Unfocus button (visible when right-clicking a focused node) to the node-context-menu #948\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Generating a delta map with merged empty folders in between is now working correctly #730\r\n- Reduced time when opening a new file #932\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- [Security] Bump jquery from 3.4.0 to 3.5.0 in /visualization #944\r\n\r\n## [1.46.1] - 2020-04-24\r\n\r\n### Added \u{1f680}\r\n\r\n- Error dialogs in case of validation or api version issues #610\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Improved overall rendering performance of larger maps by roughly 40% #836\r\n\r\n## [1.45.5] - 2020-04-17\r\n\r\n### Added \u{1f680}\r\n\r\n- Median symbol for aggregated relative metrics #365\r\n- AttributeTypes for tokeiImporter and SCMLogParser #365\r\n- Ellipsis button in TreeView list when hovering a node to access context menu #780\r\n- Show gray eye-icon next to the ellipsis-button to indicate a flattened node #780\r\n- Attribute Type selector in the metric dropdowns for edges and nodes\r\n\r\n### Changed\r\n\r\n- Metrics with AttributeType relative are now aggregated using the median #365\r\n- Showing absolute number of files instead of relative number when hovering list item in TreeView #780\r\n- Clicking a hovered list item inside the TreeView opens folders #780\r\n- Color node name in gray when flattened #780\r\n\r\n### Removed \u{1f5d1}\r\n\r\n- Eye-icon in TreeView list to flatten a node #780\r\n- Option to focus a node when clicking the node name inside the TreeView #780\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Consistency of AttributeTypes representation #365\r\n- Wrong file description for tokeiimporter\r\n- Improved search performance #837\r\n\r\n## [1.44.0] - 2020-03-27\r\n\r\n### Added \u{1f680}\r\n\r\n- Dialog to select between different sorting options #388\r\n- Button to reverse the current selected sorting #388\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Show file selection in toolBar after excluding or hiding a node instead of an empty toolBar #896\r\n\r\n## [1.43.0] - 2020-03-20\r\n\r\n### Changed\r\n\r\n- Selectable metrics will only contain metrics from the visible maps\r\n- Closing the attribute-side-bar by clicking somewhere in the map will now be triggered on mouse up instead of mouse down\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Search-panel opening for a short duration when importing a new file\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Fix vulnerability with nokogiri <1.10.8\r\n\r\n## [1.42.3] - 2020-03-13\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Loading Gif not displayed when preparing to render a new map #857\r\n- Selecting zero files in Multiple mode will not trigger the 3D CodeMap creation\r\n- Metrics in the dropdown menu now show the correct max value for the visible maps #876\r\n\r\n## [1.42.2] - 2020-02-14\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Replaced non standard `[[` in sh scripts #849\r\n- Improved performance for loading a new file #836\r\n- Marked Packages are loaded from files #798\r\n\r\n## [1.42.1] - 2020-02-07\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- GC Overhead Limit (OutOfMemory Exception) during analysis of large SCMLogs fixed #845\r\n\r\n## [1.42.0] - 2020-01-31\r\n\r\n### Added \u{1f680}\r\n\r\n- Support for camel and kebab-case for ccsh arguments #772\r\n- RawTextParser for analysis #660\r\n- IndentationLevel as metric for RawTextParser #660\r\n- Show additional Pairing Rate of Selected Building, simultaneously to the currently hovered Buildings #736\r\n\r\n### Changed\r\n\r\n- Options of the ccsh are now consistently in kebab-case #772\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Path prefix handling in tokeiimporter #841\r\n\r\n## [1.41.8] - 2020-01-17\r\n\r\n### Removed \u{1f5d1}\r\n\r\n- Project name parameters in the ccsh #773\r\n\r\n## [1.41.6] - 2020-01-10\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Deployment\r\n\r\n## [1.41.1] - 2020-01-10\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Performance of loading maps with edges improved #823\r\n- Calculation of other Group for fileExtensionBar #768\r\n- Remove focus of UI elements when they are not visible anymore\r\n\r\n## [1.41.0] - 2019-12-06\r\n\r\n### Added \u{1f680}\r\n\r\n- Show the relative number of files a folder includes compared to the project in the TreeView #380\r\n- Show the number of files a folder includes in the TreeView when hovering #380\r\n- When the File Extension Bar is hovered, all buildings corresponding to that extension are highlighted #545\r\n- Toggle between percentage and absolute values when clicking the file extension details section #545\r\n- Sum hovered delta values for folders #781\r\n\r\n## [1.40.0] - 2019-11-22\r\n\r\n### Changed\r\n\r\n- Replaced Blacklist Hide with Flatten option #691\r\n- Flattened buildings are not hidden by default #691\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Bump @types/three from 0.89.12 to 0.103.2 in /visualization #453\r\n- Bump angularjs-slider from 6.5.1 to 7.0.0 in /visualization #454\r\n- Bump webpack from 3.12.0 to 4.41.2 in /visualization #436\r\n- [Security] Bump angular from 1.7.7 to 1.7.9 in /visualization #800\r\n\r\n## [1.39.0] - 2019-11-15\r\n\r\n### Added\r\n\r\n- Progress indicator for SonarImporter #544\r\n\r\n### Changed\r\n\r\n- New style for hovered metric values #696\r\n- Redesigned slider labels in ribbonBar sections #696\r\n- Shortened ribbonBar sections #696\r\n\r\n### Fixed\r\n\r\n- Missing pictures and broken links in docs #785\r\n- SCMLogParser is now more resilient to unusual SVN commit messages #763\r\n\r\n## [1.38.1] - 2019-11-13\r\n\r\n### Added\r\n\r\n- New github-pages https://maibornwolff.github.io/codecharta/\r\n\r\n### Fixed\r\n\r\n- Sum symbol for hovered metric values only shows for folders #775\r\n\r\n## [1.38.0] - 2019-11-08\r\n\r\n### Added\r\n\r\n- Temporal coupling edges generated by SCMLogParser #622\r\n\r\n### Changed\r\n\r\n- Downloaded files are no longer formatted #679\r\n- Added highly and median coupled files metrics to non-churn metric list of SCMLogParser #622\r\n- Moved nodePathPanel to toolBar and updated style #607\r\n\r\n### Fixed\r\n\r\n- Removed attributes from downloaded files that should not be there #679\r\n\r\n## [1.37.0] - 2019-10-25\r\n\r\n### Added\r\n\r\n- Sidebar with information regarding the selected building #527\r\n- Sidebar closes when selected buildings is excluded #748\r\n\r\n### Changed\r\n\r\n- Animation to show or hide the legend panel #527\r\n\r\n### Removed\r\n\r\n- Expandable detail panel in lower left corner #527\r\n- Removed option to maximize/minimize detail panel #527\r\n\r\n### Fixed\r\n\r\n- Autofocus and label size for focused nodes #747\r\n- Selected buildings stays selected when settings are changed #748\r\n- IllegalStateException when scanning single file in SourceCodeParser #573\r\n- SourceCodeParser places files in the project root correctly into the hierarchy #574\r\n\r\n## [1.36.0] - 2019-10-18\r\n\r\n### Changed\r\n\r\n- Open and close the ribbonBar sections independently with an updated animation\r\n\r\n### Fixed\r\n\r\n- Camera is now resetted correctly, when unfocusing #634\r\n- Inputs of Color Range Slider now waits a second before it commits its values #676\r\n- Fixed root folder name in TreeView after new map after loading new map #649\r\n- Increased size of ribbonBar for big screens #644\r\n- File-Extension-Bar will not display excluded nodes anymore #725\r\n- Sanitize input for shelljs #600\r\n\r\n### Chore\r\n\r\n- Bump jacoco from 0.8.1 to 0.8.4 in /analysis\r\n\r\n## [1.35.0] - 2019-10-04\r\n\r\n### Added\r\n\r\n- Checkbox in global Settings for disabling camera reset, when new map is loaded #685\r\n- Pipe support for SourceCodeParser #716\r\n- Pipe support for SCMLogParser #717\r\n- Pipe support for SonarImporter #715\r\n\r\n### Fixed\r\n\r\n- Exclude and Hide options are disabled for empty and already existing search patterns #654\r\n\r\n## [1.34.0] - 2019-09-20\r\n\r\n### Added\r\n\r\n- Tokei Importer #538\r\n- Prominent Notice that we use Sonar-jar #713\r\n\r\n### Chore\r\n\r\n- Bump kotlin-reflect from 1.3.41 to 1.3.50 in /analysis\r\n- Bump json from 20180813 to 20190722 in /analysis\r\n- Bump rxjava from 2.2.9 to 2.2.12 in /analysis\r\n- Bump assertj-core from 3.12.2 to 3.13.2 in /analysis\r\n- Bump sonar-java-plugin from 5.12.1.17771 to 5.14.0.18788 in /analysis\r\n\r\n## [1.33.0] - 2019-09-10\r\n\r\n### Added\r\n\r\n- Edge Previews (Palm-Tree-Effect) #529\r\n- Dropdown to select Edge Metric, including Edge Counter #529\r\n- Edge Metric settings for Edge Height, Number of Previews & show only building with Edges #529\r\n\r\n### Changed\r\n\r\n- Edge Visualization to better distinguish between incoming and outgoing edges #529\r\n- Distribution metric is by default the same as area metric #689\r\n- MapTreeView below searchBar opens the first level by default #690\r\n- Focus metric search when opening metricChooser #693\r\n\r\n### Removed\r\n\r\n- Edge Options in Context menu #529\r\n\r\n### Fixed\r\n\r\n- SourceCodeParser now skips custom metrics for files, if the syntax tree cannot be created\r\n- Nodes with color metric equals 0 are colored correct again #677\r\n\r\n### Chore\r\n\r\n- [Security] Bump mixin-deep from 1.3.1 to 1.3.2 in /visualization\r\n\r\n## [1.32.0] - 2019-08-09\r\n\r\n### Added\r\n\r\n- Search for metrics and an indicator for the highest value in dropdown #575\r\n- Button to enable PresentationMode that uses Flashlight-Hovering #576\r\n- Clarifying information which file is which in the file bar when in delta mode #615\r\n\r\n### Changed\r\n\r\n- Replaced Scenario dropdown with button on the left of the metric sections #628\r\n\r\n## [1.31.0] - 2019-08-02\r\n\r\n### Added\r\n\r\n- New Metric in SourceCodeParser: Maximum-Nesting-Level #659\r\n\r\n### Fixed\r\n\r\n- Label hight adjustment now matches scaling of map #594\r\n- SCMLogParser now guesses the input file encoding #614\r\n\r\n## [1.30.0] - 2019-07-26\r\n\r\n### Added\r\n\r\n- New Search Bar #526\r\n- Number of Renames Metric to SCMLogParser #621\r\n- Age In Weeks Metric for SCMLogParser #620\r\n\r\n### Changed\r\n\r\n- ToolBar now shows partially cut-off controls if the window is too small #582\r\n- Position of the legendPanel was moved to the bottom-right corner #633\r\n- RibbonBar only opens the three metric section\r\n- Moved Scenario-select to the right in order to use less space\r\n- Moved loading-gif from ribbonBar to toolBar\r\n\r\n### Removed\r\n\r\n- RibbonBar toggle button\r\n\r\n### Fixed\r\n\r\n- FileExtensionBar height to not show a bottom-margin in Chrome\r\n- PointerEvents not being propagated when RibbonBar was extended\r\n- Reduced memory usage of SCMLogParser to avoid OutOfMemory Exception #631\r\n\r\n### Chore\r\n\r\n- [Security] Bump lodash.mergewith from 4.6.1 to 4.6.2 in /visualization\r\n- [Security] Bump lodash from 4.17.11 to 4.17.13 in /visualization\r\n- [Security] Bump fstream from 1.0.11 to 1.0.12 in /visualization\r\n\r\n## [1.29.0] - 2019-07-12\r\n\r\n### Changed\r\n\r\n- Moved Button to reset the map to the center next to the view-cube #606\r\n- Moved FileExtensionBar #527\r\n\r\n### Removed\r\n\r\n- Burger Menu / SideNav #526\r\n\r\n### Fixed\r\n\r\n- Colors in File-Extension-Bar will be displayed in MS Edge and Standlone now #584\r\n\r\n## [1.28.0] - 2019-06-28\r\n\r\n### Added\r\n\r\n- Releasing will now remind the developer to manually add the release notes #533\r\n- StructureModifier to remove and move nodes and set root of projects #547 / #181\r\n\r\n### Changed\r\n\r\n- More informative log messages regarding the success of project merging #547\r\n\r\n### Removed\r\n\r\n- Release Notes are not generated and added automatically to a release #533\r\n\r\n### Fixed\r\n\r\n- Margin will now be set correctly depending on whether dynamicMargin is enabled or not #602\r\n\r\n## [1.27.0] - 2019-06-25\r\n\r\n### Added\r\n\r\n- Automatically generates release notes from changelog and appends it to release #533\r\n- Adds global settings-menu with settings from options panel and weblinks #528\r\n\r\n### Changed\r\n\r\n- Moved File Settings from Ribbon Bar to new File Setting Bar #525\r\n- Rename sample file codemap-nodes #587\r\n- Hide checkbox to select white-positive-buildings in delta state #345\r\n\r\n### Removed\r\n\r\n- Removes Options panel from sidebar #528\r\n- Removes Weblinks panel from sidebar #528\r\n- Removed URL-parameter info from sidebar #525\r\n\r\n### Fixed\r\n\r\n- Unary Metric will no longer be auto-selected when a new map is loaded #579\r\n\r\n## [1.26.0] - 2019-06-14\r\n\r\n### Added\r\n\r\n- FileExtensionBar to show file-distribution of chosen metric #495\r\n- sum icon is now displayed on the left of the metric value #364\r\n- Added Pop-up dialog before downloading file to set filename and see what data will be stored #523\r\n\r\n### Fixed\r\n\r\n- Fix set default ColorRange when resetting color section #560\r\n\r\n## [1.25.1] - 2019-05-30\r\n\r\n### Added\r\n\r\n- SVN log parser keeps track of renaming of files for metric calculation #542\r\n\r\n### Fixed\r\n\r\n- Entries with renaming information in SVN logs are attributed to correct file #542\r\n- Unary metric will no longer be removed from the MetricChooser-Dropdown when a folder was excluded or hidden #548\r\n- Changing margin and then file or mode will no longer freeze the application #524\r\n\r\n### Chore\r\n\r\n- [Security] Bump tar from 2.2.1 to 2.2.2 in /visualization\r\n\r\n## [1.25.0] - 2019-05-17\r\n\r\n### Added\r\n\r\n- Added SonarJava to Source code parser #343\r\n- Added exclude and defaultExclude options to SourceCodeParser #508\r\n- Show loading-gif in ribbonBar when rerendering map\r\n\r\n### Changed\r\n\r\n- Using Sonar Plugins for Source code parser, giving the Sonar Metrics #343\r\n- Use debounced settings update instead of throttled\r\n- Filename of downloaded file now contains time #484\r\n\r\n### Fixed\r\n\r\n- Fixed issue with too long line in ccsh.bat #506\r\n- Prevent downloaded files from having multiple Timestamps #484\r\n- Do not show loadingGif when cancelling the fileChooser #498\r\n- Excluding a building now updates the maximum value of colorRange #355\r\n\r\n### Chore\r\n\r\n- Bump angular-material from 1.1.9 to 1.1.14 in /visualization\r\n- [Security] Bump jquery from 3.3.1 to 3.4.0 in /visualization\r\n\r\n## [1.24.0] - 2019-04-23\r\n\r\n### Removed\r\n\r\n- Settings as URL parameters #470\r\n\r\n### Fixed\r\n\r\n- Fixed issue with trailing slash in URL parameter of SonarImporter #356\r\n\r\n### Chore\r\n\r\n- Bump d3 from 4.13.0 to 5.9.2 in /visualization\r\n- Bump sinon from 4.5.0 to 7.3.1 in /visualization\r\n\r\n## [1.23.0] - 2019-03-22\r\n\r\n### Added\r\n\r\n- Project Name can be specified for merge filter #394\r\n\r\n### Changed\r\n\r\n- Throw a MergeException if project names do not match in MergeFilter #394\r\n\r\n### Fixed\r\n\r\n- Excluded buildings are no longer used for aggregated metric calculation #352\r\n\r\n### Chore\r\n\r\n- Bump browser-sync-webpack-plugin from 1.2.0 to 2.2.2 in /visualization\r\n- Bump @types/node from 8.10.19 to 11.11.3 in /visualization\r\n- Bump html-webpack-plugin from 2.30.1 to 3.2.0 in /visualization\r\n- Bump load-grunt-tasks from 3.5.2 to 4.0.0 in /visualization #444\r\n- Bump ajv from 5.5.2 to 6.10.0 in /visualization #447\r\n- Bump resolve-url-loader from 2.3.0 to 3.0.1 in /visualization #448\r\n\r\n## [1.22.0] - 2019-03-15\r\n\r\n### Added\r\n\r\n- Added buttons to select all/none/inversion of revisions/maps in multiple mode #391\r\n- Merge filter can merge all files of folders #392\r\n\r\n### Fixed\r\n\r\n- Fixed bug that code map was not re-loaded when changing from multiple to single revision mode #396\r\n- Fixed missing apiVersion in aggregated map #398\r\n- Input Fields of color sliders adjust width according to content #409\r\n\r\n### Chore\r\n\r\n- Bump nouislider from 11.1.0 to 13.1.1 in /visualization\r\n- Bump typescript from 2.7.2 to 3.3.3333 in /visualization\r\n- Bump @types/d3 from 4.13.0 to 5.7.1 in /visualization\r\n\r\n## [1.21.2] - 2019-02-26\r\n\r\n### Added\r\n\r\n- When entering Multiple Mode, all Maps/revisions are preselected\r\n\r\n### Fixed\r\n\r\n- Fixing non-existent metric aggregation on root-level when using multiple Files\r\n\r\n## [1.21.1] - 2019-02-22\r\n\r\n### Added\r\n\r\n- Hovering a node in the map also hovers it in the tree view #351\r\n\r\n### Fixed\r\n\r\n- Fixing sync between treeview hovering and map hovering #351\r\n- Folders can no longer be colored in the CodeMap or TreeView #359\r\n\r\n## [1.21.0] - 2019-02-16\r\n\r\n### Added\r\n\r\n- Color searched node names green in TreeView #225\r\n- Add option buttons (three dots) in TreeViewSearch to `Hide` or `Exclude` matching nodes #298\r\n- Show blacklist entry counter in blacklistPanel header #298\r\n- Option checkbox \'Hide Flattened Buildings\' #225\r\n- Hide/Flatten non-searched buildings #225\r\n- Hide/Flatten all buildings, if searchPattern can\'t find any matching nodes #225\r\n- Show maxValue of each metric in metricChooser select list #204\r\n- Colored color-slider inside the RibbonBar #318\r\n- Option to color positive buildings white #311\r\n- Clicking the ribbonBar section-titles toggles the ribbonBar #324\r\n- View-Cube displayed in top right corner #274\r\n- Adding prettier formatter\r\n- Adapt colorRange when changing colorMetric #330\r\n\r\n### Changed\r\n\r\n- Update TreeView filter with search field #225\r\n- Use \'gitignore\' style matching in TreeViewSearch #225\r\n- Reorder `Focus`, `Hide` and `Exclude` buttons in nodeContextMenu #298\r\n- Reorder sidebarPanels (BlacklistPanel beneath TreeViewSearchPanel) #298\r\n- Use `fa-ban`-icon as symbols for blacklistPanel (instead of `fa-list`) #298\r\n- Use `fa-ban`-icon as symbols for blacklistType `Exclude` (instead of `fa-times`) #298\r\n- Label size keeps readable for large maps or a high distance between camera and map #237\r\n- updated dependencies to fix vulnerabilities\r\n- Scenarios only update settings which exist in Scenario and not all #224\r\n- MergeFilter to merge unique blacklist entries #275\r\n- MergeFilter to only merge unique attributeType entries #275\r\n\r\n### Removed\r\n\r\n- Remove invertHeight checkbox in delta-view #306\r\n- Remove option to add blacklist entries from inside the blacklistPanel #298\r\n- Remove statistic functions in Experimental panel #308\r\n\r\n### Fixed\r\n\r\n- CodeMap does not move anymore when navigating in text-fields #307\r\n- Merge blacklist in multipleFile view and convert paths #275\r\n- Show logo in NW.js standalone application #233\r\n\r\n## [1.20.1] - 2018-12-19\r\n\r\nFixed release issues.\r\n\r\n## [1.20.0] - 2018-12-19\r\n\r\n### Added\r\n\r\n- button to unfocus node\r\n- NodeContextMenu: Option to only hide dependent edges\r\n- plop support\r\n\r\n### Changed\r\n\r\n- Renaming \'isolate node\' to \'focus node\'\r\n- Focusing a node does not remove the blacklist items of type Hide\r\n\r\n### Removed\r\n\r\n- NodeContextMenu: Option to \'show all\' nodes, which used to unhide all nodes\r\n\r\n### Fixed\r\n\r\n- Reshow hidden nodes from Treeview or Blacklist\r\n\r\n## [1.19.0] - 2018-11-02\r\n\r\n### Added\r\n\r\n- Deleted files in delta view use their previous area value in order to be visible #254\r\n\r\n### Fixed\r\n\r\n- Buildings in the delta view are not colored correctly #253\r\n- Reset Button in RibbonBar to reset \'Invert Colors\' #255\r\n- Remove lag of \'Invert Color\' checkboxes, when selecting single/delta mode #255\r\n\r\n## [1.18.1] - 2018-10-31\r\n\r\nFixed release issues\r\n\r\n## [1.18.0] - 2018-10-29\r\n\r\n### Added\r\n\r\n- Integration with Jasome through JasomeImporter #245\r\n- URL parameter \'mode\' with the values Single, Multiple or Delta\r\n- Blacklist to persist excluded or hidden nodes #205\r\n- Option to exclude nodes in nodeContextMenu #205\r\n- BlacklistPanel in SettingsSidebar to manage blacklist #205\r\n- Save-Button to download current CodeMap #205\r\n- Publishing visualization on Docker Hub #252\r\n\r\n### Changed\r\n\r\n- No longer fat jar of every subcomponent of analysis, baked into ccsh\r\n- Changed simple syserr write to logger call for analysis #243\r\n\r\n### Removed\r\n\r\n- URL parameter \'delta\' does not exist anymore\r\n\r\n### Fixed\r\n\r\n- Show delta of CodeMap when URL parameter mode=delta is set\r\n\r\n## [1.17.0] - 2018-09-28\r\n\r\n### Changed\r\n\r\n- Invert delta colors moved from color to heigh metric column in ribbon bar #220\r\n- Delta value now as kindOfMap shown #220\r\n- Aggreate maps as multiple rename #220\r\n\r\n### Fixed\r\n\r\n- Single/delta buttons now correctly activated when delta in ulr shown #220\r\n\r\n## [1.17.0] - 2018-09-21\r\n\r\n### Added\r\n\r\n- CodeMaatImport for temporal coupling dependencies #172\r\n- EdgeFilter to aggregate edge-attributes as node-attributes #222\r\n- Option to show and hide dependent edges from node-context-menu #218\r\n\r\n### Changed\r\n\r\n- MergeFilter merges edges #172\r\n\r\n## [1.16.2] - 2018-09-10\r\n\r\n### Fixed\r\n\r\n- missing event in firefox #232\r\n\r\n## [1.16.1] - 2018-08-31\r\n\r\n### Added\r\n\r\n- gitlab + dotnet manual\r\n\r\n## [1.16.0] - 2018-08-31\r\n\r\n### Added\r\n\r\n- add the option to add multiple files via url parameter (e.g. ?file=a&file=b...)\r\n\r\n## [1.15.1] - 2018-08-13\r\n\r\nFixed release issues\r\n\r\n## [1.15.0] - 2018-08-13\r\n\r\n### Added\r\n\r\n- e2e tests are running in CI Environment (headless)\r\n- pupeteer as e2e test framework\r\n- Show names of marked packages in legend\r\n- Added a source code importer that can analyse rloc,mcc for java source code\r\n- keep settings when the user changes a file\r\n- Added option to set white background\r\n\r\n### Removed\r\n\r\n- cypress\r\n\r\n## [1.14.2] - 2018-07-16\r\n\r\n### Changed\r\n\r\n- Changed folder detail metrics from mean to sum\r\n\r\n## [1.14.1] - 2018-07-13\r\n\r\nFixed release issues\r\n\r\n## [1.14.0] - 2018-07-13\r\n\r\n### Added\r\n\r\n- Added UnderstandImporter to Analysis\r\n- Packages can be highlighted in different colors #152\r\n- Adding a context menu with highlighting colors and convenience methods for the tree view and 3D view #155\r\n- Folders and files to highlight can be described in the cc.json #165\r\n- Dynamic/automatic margin computing de/activated by tick\r\n\r\n### Changed\r\n\r\n- Details panel: using the sum of the childrens metrics instead of the mean value\r\n\r\n### Fixed\r\n\r\n- Display buttons do not trigger map changes #185\r\n- Flickering surfaces when zooming out\r\n\r\n## [1.13.0] - 2018-06-08\r\n\r\n### Added\r\n\r\n- Layout switcher #141\r\n- Added CrococosmoImporter to Analysis\r\n- Added type, dirs, name to CSVExporter\r\n- Invert height of building checkbox\r\n- Aggregate multiple maps in visualization #110\r\n- Auto Focus selected map part\r\n- Timmer added to applySettings in SettingsService\r\n\r\n### Changed\r\n\r\n- Crococosmo xml files will now generate a cc.json file for each version\r\n- Suppressing ARIA warnings\r\n- Simplified gradle structure of analysis part\r\n- Deltas added in the metric quick access panel #138\r\n- Ticks and ResetValue Buttons call to onSettingsChange to avoid applySettings timer\r\n- compacting empty middle packages #150\r\n- Detail panel minimized by default\r\n\r\n### Fixed\r\n\r\n- filter by regex shows parent nodes #116\r\n- typo in scss file\r\n\r\n## [1.12.0] - 2018-04-27\r\n\r\n### Added\r\n\r\n- horizontal quick access metric chooser\r\n- Link behind filepath in detailPanel #84\r\n- Double click event-handler on Buildings #84\r\n- Detail Panel can be minimized and maximized\r\n- Settings option to minimize Detail Panel\r\n- cypress as an e2e test runner\r\n\r\n### Removed\r\n\r\n- metric details from legend\r\n- metric chooser from settings panel\r\n\r\n## [1.11.2] - 2018-04-13\r\n\r\n### Fixed\r\n\r\n- a sonar importer bug which prevented the importer to fetch the last page #122\r\n\r\n## [1.11.1] - 2018-04-11\r\n\r\nFixed release issues\r\n\r\n## [1.11.0] - 2018-04-11\r\n\r\n### Added\r\n\r\n- SASS support\r\n- simple regex filter\r\n- Reset Button\r\n- Dialog Service replaces console log calls and window.alert calls\r\n- linking tree view and map hover\r\n- auto fit scene button\r\n- anugularJS material\r\n- Scenarios are now filtered by compatibility for the given map\r\n- Link in visualization #84\r\n\r\n### Removed\r\n\r\n- materialize-css\r\n- grunt\r\n\r\n### Fixed\r\n\r\n- less flickering and artifacts\r\n\r\n## [1.10.0] - 2018-03-22\r\n\r\n### Changed\r\n\r\n- Clean up UI #86\r\n- Updated analysis dependencies\r\n\r\n### Fixed\r\n\r\n- Delta View shows Deltas of itself as non-trivial if nodes have same name #89: Compare deltas by path not name\r\n- Delta calculation performance boost #91\r\n- Problems when intermediate nodes missed metrics #92\r\n- removed unnecessary calculations\r\n- removed bug in SonarImporter that slowed up performance and missed out multiple metrics\r\n- minor bugs\r\n\r\n## [1.9.3] - 2018-02-23\r\n\r\n### Changed\r\n\r\n- sorting treeview by folders and names\r\n\r\n## [1.9.2] - 2018-02-20\r\n\r\n### Added\r\n\r\n- added preliminary CSVExporter for visualisation data\r\n\r\n### Changed\r\n\r\n- padding rendering\r\n- minimal building height is 1 to prevent clipping issues\r\n- fallback values for visualization when no metric is available (area = 1, height = 1, color = grey). Data in data structure will not be changed.\r\n\r\n## [1.9.1] - 2018-02-20\r\n\r\n### Fixed\r\n\r\n- detail panel bug fix\r\n\r\n## [1.9.0] - 2018-02-20\r\n\r\n### Changed\r\n\r\n- moved to unscoped npm packages\r\n\r\n## [1.8.2] - 2018-02-20\r\n\r\n### Changed\r\n\r\n- detail panel background is white now. better visibility\r\n\r\n## [1.8.1] - 2018-02-20\r\n\r\n### Changed\r\n\r\n- revision chooser moved to settings panel and uses now understandable dropdowns instead of links. Part of the #82 proposals\r\n\r\n## [1.8.0] - 2018-02-20\r\n\r\n### Added\r\n\r\n- Experimental dependency support\r\n- loading indicator\r\n- file path to detail panel\r\n- collapsible tree view and visibility/isolation per node toggles\r\n\r\n### Changed\r\n\r\n- added a ray-aabb intersection test before precise testing. Less time is spent in intersection methods.\r\n\r\n### Fixed\r\n\r\n- fixed a minor bug\r\n- canvas mouse event listener are now limited to the canvas dom element. UI events will not trigger the canvas listeners anymore\r\n- canvas mouse events distinguish now between click and drag. Dragging does not reset selection anymore\r\n- slider input #64\r\n- rz slider initialization bug\r\n- increasing test coverage\r\n- deltas where calculated on map loading even though, they were disabled\r\n\r\n## [1.7.2] - 2018-02-02\r\n\r\n### Fixed\r\n\r\n- url to homepage\r\n- analysis package\r\n\r\n## [1.7.1] - 2018-02-02\r\n\r\nFixed release issues\r\n\r\n## [1.7.0] - 2018-02-02\r\n\r\n### Changed\r\n\r\n- npm pachage scoped to @maibornwolff\r\n- Defined further scenarios via json file\r\n- Added description for metrics and scenarios\r\n- using fixed point values in detail panel (ui) to truncate infinite or long decimals\r\n- folders now use the mean attributes of their buildings(leaves)\r\n\r\n### Fixed\r\n\r\n- Bugfix: detail panel should be cleared before setting new details else old values may survive\r\n\r\n## [1.6.7] - 2018-02-01\r\n\r\nFixed release issues\r\n\r\n## [1.6.6] - 2018-02-01\r\n\r\n### Added\r\n\r\n- added anonymous git log generator anongit\r\n- browser demo shows codecharta-visualization sonar analysis\r\n\r\n### Changed\r\n\r\n- rewrote command line interface\r\n- linking ccsh to bin/ccsh will be deleted later\r\n\r\n### Fixed\r\n\r\n- No underscore for scenarios in tooltips #71\r\n\r\n## [1.6.5] - 2018-01-30\r\n\r\nFixed release issues\r\n\r\n## [1.6.4] - 2018-01-30\r\n\r\n### Fixed\r\n\r\n- fixed broken SonarImporter due to jdk9 migration\r\n\r\n## [1.6.3] - 2018-01-26\r\n\r\n### Added\r\n\r\n- added npm publish for analysis\r\n- simple release script for automatic changelog updates, commits, tags, version bumps\r\n\r\n## [1.6.2] - 2018-01-25\r\n\r\n### Added\r\n\r\n- added support for git log --raw and git log --numstat --raw\r\n- added support for git log --numstat and codechurn\r\n- added support for renames in SCMLogParser for git log --name-status\r\n- added support for renames in SCMLogParser for git log --numstat, git log --raw and git log --numstat --raw\r\n- added new SCM experimental metrics range_of_weeks_with_commits and successive_weeks_of_commits\r\n- the file origin of a node is displayed in the details now\r\n- sonarqube analysis on CI build\r\n- npm publish support in visualization\r\n\r\n### Changed\r\n\r\n- Deltas are no longer experimental\r\n- two selected delta maps now merge their nodes correctly. The map where\r\n a node was missing get\'s a copy of this node with metrics=0.\r\n File additions/deletions are therefore only visible when areaMetric is\r\n unary and deltas are activated.\r\n\r\n### Fixed\r\n\r\n- delta display bug for heights\r\n- going back from delta view now correctly removes deltas from node data\r\n- Delta shown although not in delta mode #60\r\n- Allow inversion of delta colors #57\r\n- npm binary error\r\n\r\n## [1.5.2] - 2018-01-04\r\n\r\n### Changed\r\n\r\n- scaling slider now has steps of 0.1. This allows the user to select precise values like 2.0\r\n- updated jdk to jdk9\r\n\r\n### Fixed\r\n\r\n- Opening the same file a second time does not work #53\r\n- added missing require declaration\r\n- added glsl loader in testing environment\r\n- Native Application support is bugged while building in Travis CI #48\r\n\r\n## [1.5.1] - 2017-11-14\r\n\r\n### Added\r\n\r\n- command line parameter to toggle "authors" attribute in SCMLogParser\r\n\r\n### Fixed\r\n\r\n- when passing a file through the "file" parameter in the URL, the map now renders correctly\r\n\r\n## [1.5.0] - 2017-10-24\r\n\r\n### Added\r\n\r\n- experimental delta functionality\r\n- loading multiple maps\r\n- experimental margin slider\r\n\r\n### Changed\r\n\r\n- faster rendering\r\n\r\n### Removed\r\n\r\n- nwjs packages and native apps due to a bug\r\n\r\n### Fixed\r\n\r\n- using color metric instead of height metric for color range slider ceil\r\n\r\n## [1.4.0] - 2017-09-14\r\n\r\n### Added\r\n\r\n- Typescript support\r\n- Browsersync\r\n- added advanced merging strategy "leaf" in MergeFilter\r\n- advanced merging with restructuring\r\n\r\n### Changed\r\n\r\n- Browserify replaced with Webpack\r\n- Better debugging\r\n- Karma instead of Mocha\r\n\r\n## [1.3.2] - 2017-08-18\r\n\r\n### Added\r\n\r\n- add slider controls for color thresholds #19\r\n- Added additional structuring in SonarImporter for multi-module projects\r\n- button to generate current url parameters\r\n- camera position is now a setting (e.g. in scenarios or url parameters)\r\n- margin slider: make it easier to find out to which package/folder a class belongs #20\r\n\r\n### Changed\r\n\r\n- better url parameter resolution (nested parameters are handled correctly)\r\n- changed hover color. Allows better distinction between hover and select\r\n\r\n### Removed\r\n\r\n- obsolete helper grid\r\n\r\n### Fixed\r\n\r\n- changing display or color settings resets scaling #18\r\n- scenario description #32\r\n- Scaling should not scale the labels #35\r\n\r\n## [1.3.1] - 2017-07-05\r\n\r\n### Fixed\r\n\r\n- Prevented override of URL-parameters by default scenario\r\n\r\n## [1.3.0] - 2017-07-05\r\n\r\n### Added\r\n\r\n- Adding simple merge functionality for multiple json files\r\n- Added CSVImporter\r\n- Added Translation for SonarQube metrics\r\n- Added descriptions for metrics\r\n\r\n### Changed\r\n\r\n- Changed uppercase metrics, e.g. RLOC, to lowercase metrics\r\n\r\n### Fixed\r\n\r\n- Simple cc.json does not display anything #17\r\n\r\n## [1.2.0] - 2017-06-19\r\n\r\n### Added\r\n\r\n- Adding Labels and UI\r\n- Support for links to source page of SonarQube in sonarimporter\r\n- Added SCMLogParser\r\n\r\n### Fixed\r\n\r\n- GitHub Issue: legend is wrong #21\r\n\r\n## [1.1.5] - 2017-05-31\r\n\r\n### Fixed\r\n\r\n- Wrong version numbers in analysis part\r\n\r\n## [1.1.4] - 2017-05-26\r\n\r\n### Added\r\n\r\n- Scenarios and default scenario\r\n- Translation API for Metrics\r\n- Metric tooltips in dropdown\r\n\r\n### Fixed\r\n\r\n- GitHub Issue: Sonarimporter crashes with null pointer exception when there is a component without path. #13\r\n\r\n## [1.1.3] - 2017-05-01\r\n\r\n### Added\r\n\r\n- Support for SonarQube Measures-API\r\n- Error logging for sonarqube errors\r\n\r\n### Changed\r\n\r\n- Standard Sonar metric is now complexity,ncloc,functions,duplicated_lines,classes,blocker_violations,generated_lines,bugs,commented_out_code_lines,lines,violations,comment_lines,duplicated_blocks\r\n\r\n## [1.1.2] - 2017-04-28\r\n\r\n### Added\r\n\r\n- Translation API for Metrics\r\n\r\n## [1.1.1] - 2017-04-07\r\n\r\n### Fixed\r\n\r\n- GitHub Issue: Flickering surfaces #3\r\n- GitHub Issue: Unable to install due to readlink error on macOS #4\r\n\r\n## [1.1.0] - 2017-03-27\r\n\r\n### Added\r\n\r\n- SourceMonitorImporter for importing projects from SourceMonitor.\r\n\r\n## [1.0.0] - 2017-03-17\r\n\r\n### Added\r\n\r\n- SonarImporter for importing projects from SonarQube.\r\n- ValidationTool for validating an existing json file.\r\n',{headerIds:!1}).split("\n");const r=this.findVersionLine(i,this.data.currentVersion),o=this.findVersionLine(i,this.data.previousVersion);i=i.slice(r,o+1);const s=["Added \u{1f680}","Fixed \u{1f41e}","Changed","Removed \u{1f5d1}","Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}"],a={};for(const l of s){const c=new RegExp(`

    ${l}

    `),d=this.getAllIndexes(i,c),u=[];for(const h of d){const m=h+2,A=this.findEndChangesLine(i,h);for(const v of i.slice(m,A))u.push(`${v}
    `)}u.length>0&&(a[l]=u.join("\n"))}return a}getAllIndexes(e,i){return e.reduce((r,o,s)=>(i.test(o)&&r.push(s),r),[])}findVersionLine(e,i){const r=new RegExp(`\\[${i}]`);return e.findIndex(o=>r.test(o))}findEndChangesLine(e,i){return i+e.slice(i+1).findIndex(r=>/

    /.test(r)||/

    /.test(r))}static{this.\u0275fac=function(i){return new(i||t)(W(w1))}}static{this.\u0275cmp=At({type:t,selectors:[["ng-component"]],decls:16,vars:5,consts:[["color","primary"],["mat-dialog-content",""],[1,"content"],["mat-dialog-actions",""],["href","https://maibornwolff.github.io/codecharta/news/","target","_blank","rel","noopener noreferrer"],["mat-button","","cdkFocusInitial","",3,"mat-dialog-close"],[3,"innerHTML"]],template:function(i,r){1&i&&(I(0,"mat-toolbar",0),ve(1,"Changelog"),O(),I(2,"div",1)(3,"h1"),ve(4,"What is new in CodeCharta?"),O(),I(5,"h2"),ve(6),O(),I(7,"div",2),yr(8,kWe,4,2,"div",null,Sr),ze(10,"keyvalue"),O()(),I(11,"div",3)(12,"a",4),ve(13,"Know more"),O(),I(14,"button",5),ve(15,"CLOSE"),O()()),2&i&&(H(6),Hu("",r.data.previousVersion," \u2192 ",r.data.currentVersion,""),H(2),wr(tt(10,3,r.changes)),H(6),ue("mat-dialog-close",!0))},dependencies:[Bs,ic,Oc,Nc,SA,PE],styles:[".cc-changelog-dialog .mat-mdc-dialog-container [mat-dialog-content]{padding:8px 24px 0;margin-top:10px;color:#000}.cc-changelog-dialog .mat-mdc-dialog-container [mat-dialog-content] img[alt$=xs]{height:32px}.cc-changelog-dialog .mat-mdc-dialog-container [mat-dialog-content] img[alt$=s]{height:64px}.cc-changelog-dialog .mat-mdc-dialog-container [mat-dialog-content] img[alt$=m]{height:256px}.cc-changelog-dialog .mat-mdc-dialog-container [mat-dialog-content] img[alt$=l]{height:350px}.cc-changelog-dialog .mat-mdc-dialog-container [mat-dialog-content] img[alt$=xl]{height:512px}.cc-changelog-dialog .mat-mdc-dialog-container [mat-dialog-actions]{justify-content:flex-end}.cc-changelog-dialog .mat-mdc-dialog-container [mat-dialog-actions] a{color:#1b9cfc}.cc-changelog-dialog .mat-mdc-dialog-container [mat-dialog-actions] button{margin:0 8px}\n"],encapsulation:2})}}return t})();function woe(t){const n=t.split(".");return{major:Number.parseInt(n[0])||0,minor:Number.parseInt(n[1])||0,patch:Number.parseInt(n[2])||0}}let xoe=(()=>{class t{constructor(e){this.dialog=e,this.version=x1.rE}synchronizeLocalCodeChartaVersion(){const e=localStorage.getItem("codeChartaVersion");null!==e?function BWe(t,n){const e=woe(t),i=woe(n);return e.major===i.major&&e.minor===i.minor&&e.patch===i.patch?0:e.major>i.major?1:e.majori.minor?1:e.minori.patch?1:e.patcht.focusedNodePath);const Coe=[Vy,ju,pM,AM,Yy,Xy,Wy,Gy,qy,zy,x0,w0,hx,Uf,$y,jy,Ky,C0,Xu,Pd,E0,Hf,bM,_M,e1,vM,Yu,Ku,Lc,Zy,CM,t1,EM,Qy,MA];let Eoe=(()=>{class t{constructor(e,i,r,o,s){this.store=e,this.actions$=i,this.uploadFilesService=r,this.threeRendererService=o,this.codeMapRenderService=s,this.actionsRequiringRender$=this.actions$.pipe(Dc(...Coe)),this.renderCodeMap$=Bo(()=>nh([this.store.select(lc),this.actionsRequiringRender$]).pipe(Ii(([a])=>!!a.unifiedMapNode),function RWe(t,n=M0,e){const i=MR(t,n);return function DWe(t,n){return Be((e,i)=>{const{leading:r=!0,trailing:o=!1}=n??{};let s=!1,a=null,l=null,c=!1;const d=()=>{l?.unsubscribe(),l=null,o&&(m(),c&&i.complete())},u=()=>{l=null,c&&i.complete()},h=A=>l=Go(t(A)).subscribe(Je(i,d,u)),m=()=>{if(s){s=!1;const A=a;a=null,i.next(A),!c&&h(A)}};e.subscribe(Je(i,A=>{s=!0,a=A,(!l||l.closed)&&(r?m():h(A))},()=>{c=!0,(!(o&&s&&l)||l.closed)&&i.complete()}))})}(()=>i,e)}(16.666666666666668,M0,{leading:!1,trailing:!0}),Nr(([a])=>{this.codeMapRenderService.render(a.unifiedMapNode),this.codeMapRenderService.scaleMap(),this.threeRendererService.render()}),fx()),{dispatch:!1}),this.removeLoadingIndicatorAfterRender$=Bo(()=>this.renderCodeMap$.pipe(Ii(()=>!this.uploadFilesService.isUploading),Nr(()=>{this.store.dispatch(Ip({value:!1})),this.store.dispatch(F0({value:!1}))})),{dispatch:!1})}static{this.\u0275fac=function(i){return new(i||t)(oe(Wt),oe($u),oe(Hne),oe(qi),oe(Yee))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac})}}return t})(),PWe=(()=>{class t{constructor(e,i,r){this.store=e,this.renderCodeMapEffect=i,this.threeOrbitControlsService=r,this.autoFitTo$=Bo(()=>nh([this.store.select(Ud),this.store.select(p6),this.store.select(Qie)]).pipe(b1(1),Wu(this.store.select(Vie)),Ii(([,o])=>o),Bf(()=>this.renderCodeMapEffect.renderCodeMap$.pipe(qo(1))),Nr(()=>{this.threeOrbitControlsService.autoFitTo()})),{dispatch:!1})}static{this.\u0275fac=function(i){return new(i||t)(oe(Wt),oe(Eoe),oe(Zc))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac})}}return t})(),NWe=(()=>{class t{constructor(e){this.store=e,this.linkHeightAndColorMetric$=Bo(()=>nh([this.store.select(sx),this.store.select(MO)]).pipe(Ii(([,i])=>i),Et(([i])=>Lc({value:i}))))}static{this.\u0275fac=function(i){return new(i||t)(oe(Wt))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac})}}return t})(),OWe=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[An,Oi]})}}return t})(),UWe=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[An,Oi]})}}return t})(),HWe=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[An,Oi]})}}return t})(),VWe=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[An,zre]})}}return t})(),QWe=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[An,Oi,OWe,UWe,HWe,VWe]})}}return t})();const A6=Xt(noe,Rb,(t,n)=>t?n.get(t.nodeId):null);function zWe(t,n){if(1&t){const e=kn();I(0,"button",1),We("click",function(){return Ft(e),kt(He().flattenNode())}),_e(1,"img",2),ve(2," FLATTEN "),O()}}function GWe(t,n){if(1&t){const e=kn();I(0,"button",3),We("click",function(){return Ft(e),kt(He().unFlattenNode())}),_e(1,"img",2),ve(2," SHOW "),O()}}let qWe=(()=>{class t{constructor(e){this.store=e}flattenNode(){this.store.dispatch(Y4({item:{path:this.codeMapNode.path,type:"flatten",nodeType:this.codeMapNode.type}}))}unFlattenNode(){this.store.dispatch(xM({item:{path:this.codeMapNode.path,type:"flatten",nodeType:this.codeMapNode.type}}))}static{this.\u0275fac=function(i){return new(i||t)(W(Wt))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-flatten-buttons"]],inputs:{codeMapNode:"codeMapNode"},decls:2,vars:1,consts:[["mat-button","","title","Flatten node and children-nodes, but keep an empty space"],["mat-button","","title","Flatten node and children-nodes, but keep an empty space",3,"click"],["alt","flattenIcon","src","codeCharta/assets/flatten.png",1,"png-icon"],["mat-button","","title","Show node and children-nodes",3,"click"]],template:function(i,r){1&i&&ft(0,zWe,3,0,"button",0)(1,GWe,3,0),2&i&&yt(0,null!=r.codeMapNode&&r.codeMapNode.isFlattened?1:0)},dependencies:[Bs],encapsulation:2})}}return t})();const WWe=Xt(p6,t=>t[0]);let $We=(()=>{class t{transform(e,i){if(!e||!i)return{isNodeFocused:!1,isParentFocused:!1};const r=e===i.path;return{isNodeFocused:r,isParentFocused:!r&&i.path.startsWith(e)}}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275pipe=lr({name:"isNodeFocused",type:t,pure:!0})}}return t})();function jWe(t,n){if(1&t){const e=kn();I(0,"button",1),We("click",function(){return Ft(e),kt(He(2).handleFocusNodeClicked())}),_e(1,"i",2),ve(2," FOCUS "),O()}}function KWe(t,n){if(1&t){const e=kn();I(0,"button",5),We("click",function(){return Ft(e),kt(He(3).handleUnfocusAllNodesClicked())}),_e(1,"i",2),ve(2," UNFOCUS ALL "),O()}}function XWe(t,n){if(1&t){const e=kn();I(0,"button",3),We("click",function(){return Ft(e),kt(He(2).handleUnfocusNodeClicked())}),_e(1,"i",2),ve(2),O(),ft(3,KWe,3,0,"button",4),ze(4,"async")}if(2&t){const e=He(),i=He();H(2),an(" ",e.isParentFocused?"UNFOCUS PARENT":"UNFOCUS"," "),H(),yt(3,tt(4,2,i.hasPreviousFocusedNodePath$)?3:-1)}}function YWe(t,n){if(1&t&&ft(0,jWe,3,0,"button",0)(1,XWe,5,4),2&t){const e=n;yt(0,e.isNodeFocused?-1:0),H(),yt(1,e.isNodeFocused||e.isParentFocused?1:-1)}}let ZWe=(()=>{class t{constructor(e){this.store=e,this.currentFocusedNodePath$=this.store.select(WWe),this.hasPreviousFocusedNodePath$=this.store.select(p6).pipe(Et(i=>i.length>1))}handleFocusNodeClicked(){this.store.dispatch(_M({value:this.codeMapNode.path}))}handleUnfocusNodeClicked(){this.store.dispatch(vM())}handleUnfocusAllNodesClicked(){this.store.dispatch(e1())}static{this.\u0275fac=function(i){return new(i||t)(W(Wt))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-focus-buttons"]],inputs:{codeMapNode:"codeMapNode"},decls:3,vars:6,consts:[["mat-button","","id","focus-button","title","Only show selected nodes with children-nodes"],["mat-button","","id","focus-button","title","Only show selected nodes with children-nodes",3,"click"],[1,"fa","fa-bullseye"],["mat-button","","aria-label","Remove Focus from node","title","Show previous focused node",3,"click"],["mat-button","","aria-label","Remove Focus from all nodes","title","Show complete map"],["mat-button","","aria-label","Remove Focus from all nodes","title","Show complete map",3,"click"]],template:function(i,r){if(1&i&&(ft(0,YWe,2,2),ze(1,"async"),ze(2,"isNodeFocused")),2&i){let o;yt(0,(o=po(2,3,tt(1,1,r.currentFocusedNodePath$),r.codeMapNode))?0:-1,o)}},dependencies:[Bs,Gn,$We],encapsulation:2})}}return t})();function JWe(t,n){if(1&t){const e=kn();I(0,"button",1),We("click",function(){return Ft(e),kt(He().addNodeToConstantHighlight())}),_e(1,"i",2),ve(2," KEEP HIGHLIGHT "),O()}}function e$e(t,n){if(1&t){const e=kn();I(0,"button",3),We("click",function(){return Ft(e),kt(He().removeNodeFromConstantHighlight())}),_e(1,"i",2),ve(2," REMOVE HIGHLIGHT "),O()}}let t$e=(()=>{class t{constructor(e,i){this.threeSceneService=e,this.idToBuilding=i}ngOnChanges(e){e.codeMapNode&&(this.isHighlighted=this.calculateIsHighlighted())}addNodeToConstantHighlight(){this.threeSceneService.addNodeAndChildrenToConstantHighlight(this.codeMapNode)}removeNodeFromConstantHighlight(){this.threeSceneService.removeNodeAndChildrenFromConstantHighlight(this.codeMapNode)}calculateIsHighlighted(){if(!this.codeMapNode)return!1;const e=this.idToBuilding.get(this.codeMapNode.id);return!!e&&this.threeSceneService.getConstantHighlight().has(e.id)}static{this.\u0275fac=function(i){return new(i||t)(W(cc),W(Jw))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-highlight-buttons"]],inputs:{codeMapNode:"codeMapNode"},features:[cr],decls:2,vars:1,consts:[["mat-button","","title","Highlight node constantly"],["mat-button","","title","Highlight node constantly",3,"click"],[1,"fa","fa-cubes"],["mat-button","","title","Remove constant highlight",3,"click"]],template:function(i,r){1&i&&ft(0,JWe,3,0,"button",0)(1,e$e,3,0),2&i&&yt(0,r.isHighlighted?1:0)},dependencies:[Bs],encapsulation:2})}}return t})();const n$e=Xt(Lb,t=>t.markingColors),i$e=Xt(A6,n$e,PJ,(t,n,e)=>{if(null===t)return n.map(r=>({color:r,isMarked:!1}));const i=fte(e,t.path);return n.map(r=>({color:r,isMarked:-1!==i&&r===e[i].color}))});function r$e(t,n){1&t&&_e(0,"i",5)}function o$e(t,n){if(1&t){const e=kn();I(0,"button",4),We("click",function(){const r=Ft(e).$implicit,o=He(),s=He();return kt(r.isMarked?s.unmarkFolder(o.path):s.markFolder(o.path,r.color))}),ft(1,r$e,1,0,"i",5),O()}if(2&t){const e=n.$implicit;Fi("background-color",e.color),H(),yt(1,e.isMarked?1:-1)}}function s$e(t,n){if(1&t){const e=kn();I(0,"div",1),yr(1,o$e,2,3,"button",2,Sr),ze(3,"async"),I(4,"cc-color-picker",3),We("onColorChange",function(r){const o=Ft(e);return kt(He().markFolder(o.path,r))}),O()()}if(2&t){const e=He(),i=Co(3);H(),wr(tt(3,2,e.markFolderItems$)),H(3),ue("hexColor","#ff0000")("triggerTemplate",i)}}function a$e(t,n){1&t&&_e(0,"div",6)}let l$e=(()=>{class t{constructor(e){this.store=e,this.markFolderItems$=this.store.select(i$e),this.codeMapNode$=this.store.select(A6)}markFolder(e,i){this.store.dispatch(t1({packages:[{path:e,color:i}]}))}unmarkFolder(e){this.store.dispatch(EM({path:e}))}static{this.\u0275fac=function(i){return new(i||t)(W(Wt))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-mark-folder-row"]],decls:4,vars:3,consts:[["colorPickerTriggerTemplate",""],[1,"row"],["title","Colorize folder",1,"colorButton",3,"background-color"],[3,"onColorChange","hexColor","triggerTemplate"],["title","Colorize folder",1,"colorButton",3,"click"],[1,"fa","fa-times"],[1,"cc-color-picker-trigger","fa","fa-paint-brush"]],template:function(i,r){if(1&i&&(ft(0,s$e,5,4,"div",1),ze(1,"async"),ft(2,a$e,1,0,"ng-template",null,0,Mf)),2&i){let o;yt(0,(o=tt(1,1,r.codeMapNode$))?0:-1,o)}},dependencies:[YJ,Gn],styles:["cc-mark-folder-row .row{display:flex}cc-mark-folder-row :hover{cursor:pointer}cc-mark-folder-row .colorButton{width:32px;height:32px}cc-mark-folder-row .colorButton i{font-size:25px;display:block;color:red;text-shadow:-1px 0 white,0 1px white,1px 0 white,0 -1px white}cc-mark-folder-row cc-color-picker{width:32px;height:32px}cc-mark-folder-row cc-color-picker .cc-color-picker-trigger{font-size:25px;margin-top:8px}\n"],encapsulation:2})}}return t})(),c$e=(()=>{class t{constructor(e){this.store=e}excludeNode(){this.store.dispatch(Z4({items:[{path:this.codeMapNode.path,type:"exclude",nodeType:this.codeMapNode.type}]}))}static{this.\u0275fac=function(i){return new(i||t)(W(Wt))}}static{this.\u0275cmp=At({type:t,selectors:[["cc-exclude-button"]],inputs:{codeMapNode:"codeMapNode"},decls:3,vars:0,consts:[["mat-button","","id","exclude-button","title","Exclude node and children-nodes and reorder the CodeMap",3,"click"],[1,"fa","fa-ban"]],template:function(i,r){1&i&&(I(0,"button",0),We("click",function(){return r.excludeNode()}),_e(1,"i",1),ve(2," EXCLUDE\n"),O())},dependencies:[Bs],encapsulation:2})}}return t})(),d$e=(()=>{class t{transform(e){return`${0===e.lastIndexOf("/")?"":"..."}${e.slice(e.lastIndexOf("/"))}`}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275pipe=lr({name:"lastPartOfNodePath",type:t,pure:!0})}}return t})();function u$e(t,n){1&t&&(I(0,"div"),_e(1,"cc-mark-folder-row")(2,"mat-divider"),O())}function h$e(t,n){if(1&t&&(I(0,"mat-card",0),ft(1,u$e,3,0,"div"),I(2,"div",1)(3,"button",2),ve(4),ze(5,"lastPartOfNodePath"),O(),_e(6,"cc-focus-buttons",3)(7,"cc-flatten-buttons",3)(8,"cc-highlight-buttons",3)(9,"cc-exclude-button",3),O()()),2&t){const e=n;H(),yt(1,(null==e||null==e.children?null:e.children.length)>0?1:-1),H(2),wa("title",e.path),H(),an(" ",tt(5,7,e.path)," "),H(2),ue("codeMapNode",e),H(),ue("codeMapNode",e),H(),ue("codeMapNode",e),H(),ue("codeMapNode",e)}}let f$e=(()=>{class t{constructor(e){this.store=e}ngOnInit(){this.codeMapNode$=this.store.select(A6)}static{this.\u0275fac=function(i){return new(i||t)(W(Wt))}}static{this.\u0275cmp=At({type:t,selectors:[["ng-component"]],decls:2,vars:3,consts:[["appearance","outlined","id","codemap-context-menu"],[1,"button-group"],["mat-button","","disabled","true",3,"title"],[3,"codeMapNode"]],template:function(i,r){if(1&i&&(ft(0,h$e,10,9,"mat-card",0),ze(1,"async")),2&i){let o;yt(0,(o=tt(1,1,r.codeMapNode$))?0:-1,o)}},dependencies:[Bs,SN,dx,qWe,ZWe,t$e,l$e,c$e,Gn,d$e],styles:["#codemap-context-menu{padding:12px}#codemap-context-menu .button-group{display:flex;flex-direction:column;gap:6px;width:100%}#codemap-context-menu .png-icon{width:17px;height:17px;margin:5px auto auto;padding:0;display:inline-block;background-repeat:no-repeat no-repeat;pointer-events:none}#codemap-context-menu [mat-button]{width:100%;text-align:left;margin:0;justify-content:left;line-height:30px;min-height:30px}#codemap-context-menu [mat-button] i{min-width:15px}\n"],encapsulation:2})}}return t})(),m$e=(()=>{class t{constructor(e,i){this.overlay=e,this.store=i,this.overlayReference=null,this.close=()=>{document.removeEventListener("click",this.onLeftClickHideNodeContextMenu,!0),document.removeEventListener("mousedown",this.onRightClickHideNodeContextMenu,!0),document.getElementById("codeMap").removeEventListener("wheel",this.close,!0),this.store.dispatch(Ob(null)),this.overlayReference&&this.resetOverlay()},this.onLeftClickHideNodeContextMenu=r=>{this.isEventFromColorPicker(r)||this.close()},this.onRightClickHideNodeContextMenu=r=>{2===r.button&&this.close()}}open(e,i){this.overlayReference&&this.resetOverlay();const r=this.overlay.position().flexibleConnectedTo({x:e,y:i}).withPositions([{originX:"end",originY:"bottom",overlayX:"start",overlayY:"top"}]);this.overlayReference=this.overlay.create({positionStrategy:r,scrollStrategy:this.overlay.scrollStrategies.close()}),this.overlayReference.attach(new f1(f$e)),this.overlayReference.overlayElement.addEventListener("contextmenu",o=>{o.preventDefault()}),document.addEventListener("click",this.onLeftClickHideNodeContextMenu,!1),document.addEventListener("mousedown",this.onRightClickHideNodeContextMenu,!0),document.getElementById("codeMap").addEventListener("wheel",this.close,!0)}resetOverlay(){this.overlayReference.dispose(),this.overlayReference=null}isEventFromColorPicker(e){return e.composedPath().some(r=>"CC-COLOR-PICKER"===r?.nodeName||"COLOR-CHROME"===r?.nodeName)}static{this.\u0275fac=function(i){return new(i||t)(oe(_s),oe(Wt))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})(),p$e=(()=>{class t{constructor(e,i){this.actions$=e,this.nodeContextMenu=i,this.openNodeContextMenu$=Bo(()=>this.actions$.pipe(Dc(Ob),Nr(r=>{r.value&&this.nodeContextMenu.open(r.value.xPositionOfRightClickEvent,r.value.yPositionOfRightClickEvent)})),{dispatch:!1})}static{this.\u0275fac=function(i){return new(i||t)(oe($u),oe(m$e))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac})}}return t})(),A$e=(()=>{class t{constructor(e){this.store=e,this.resetSelectedEdgeMetricWhenItDoesntExistAnymore$=Bo(()=>this.store.select(ks).pipe(Wu(this.store.select(Mh)),Ii(([i,r])=>!i.edgeMetricData.some(o=>o.name===r)),Et(([i])=>i.edgeMetricData[0]?.name),Ly(),Et(i=>Xu({value:i}))))}static{this.\u0275fac=function(i){return new(i||t)(oe(Wt))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac})}}return t})();const _$e=[[CM,t1,EM,J4,tW,nW,j4,K4,$4,X4,Y4,wM,xM],[Vy,Yy,Xy,ste,qN,cte,aO,ju,pM,AM,gM,Zy,G4,fM,Wy,qy,Gy,zy,x0,w0,hx,Uf,mM,hM,uM,$y,jy,Ky,q4,W4,Qy],[C0,yM,Xu,Pd,E0,Hf,a1,bM,e1,_M,vM,Yu,Jy,Lc,Ku],[...OM]].flat();let v$e=(()=>{class t{constructor(e,i){var r=this;this.actions$=e,this.state=i,this.saveCcState$=Bo(()=>this.actions$.pipe(Ii(o=>o.type!==Nb.type),Dc(..._$e),S0(500),Nr(f(function*(){const o=r.state.getValue();yield function q_e(t){return cR.apply(this,arguments)}(o)}))),{dispatch:!1})}static{this.\u0275fac=function(i){return new(i||t)(oe($u),oe(Br))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac})}}return t})(),y$e=(()=>{class t{constructor(e){this.actions$=e,this.setIsLoadingFile$=Bo(()=>this.actions$.pipe(Dc(...OM),Et(()=>Ip({value:!0})))),this.setIsLoadingMap$=Bo(()=>this.actions$.pipe(Dc(...Coe),Et(()=>F0({value:!0}))))}static{this.\u0275fac=function(i){return new(i||t)(oe($u))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac})}}return t})(),w$e=(()=>{class t{constructor(e){this.store=e,this.unfocusNodes$=Bo(()=>this.store.select(Ud).pipe(Et(()=>e1())))}static{this.\u0275fac=function(i){return new(i||t)(oe(Wt))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac})}}return t})(),x$e=(()=>{class t{constructor(e){this.store=e,this.resetIsEdgeMetricVisible$=Bo(()=>this.store.select(Mh).pipe(Wu(this.store.select(t8)),Ii(([,i])=>!i),Et(()=>fM())))}static{this.\u0275fac=function(i){return new(i||t)(oe(Wt))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac})}}return t})();function C$e(t,n){const e=new Map;if(1===t.length)return t[0].settings.fileSettings.edges;for(const i of t)if(i.settings.fileSettings.edges)for(const r of i.settings.fileSettings.edges){const o={fromNodeName:n?Zw(i.fileMeta.fileName,r.fromNodeName):r.fromNodeName,toNodeName:n?Zw(i.fileMeta.fileName,r.toNodeName):r.toNodeName,attributes:Hd(r.attributes),visible:r.visible},s=e.get(`${o.fromNodeName}|${o.toNodeName}`);if(void 0!==s)for(const a of Object.keys(o.attributes))s.attributes[a]=o.attributes[a];else e.set(`${o.fromNodeName}|${o.toNodeName}`,o)}return[...e.values()]}function E$e(t,n){if(1===t.length)return t[0].settings.fileSettings.markedPackages;const e=new Map;for(const i of t)if(i.settings.fileSettings.markedPackages)for(const r of i.settings.fileSettings.markedPackages){const o={path:n?nJ(i.fileMeta.fileName,r.path):r.path,color:r.color};e.set(`${o.path}|${o.color}`,o)}return[...e.values()]}function M$e(t,n){const e=new Map;if(1===t.length)return t[0].settings.fileSettings.blacklist;for(const i of t)if(i.settings.fileSettings.blacklist)for(const r of i.settings.fileSettings.blacklist){const o={path:n?nJ(i.fileMeta.fileName,r.path):r.path,type:r.type};e.set(`${o.path}|${o.type}`,o)}return[...e.values()]}function S$e(t){const n={},e={};for(const i of t){for(const r of Object.keys(i.nodes))n[r]||(n[r]=i.nodes[r]);for(const r of Object.keys(i.edges))e[r]||(e[r]=i.edges[r])}return{nodes:n,edges:e}}function T$e(t){const n={};for(const e of t)for(const i of Object.keys(e))n[i]||(n[i]=e[i]);return n}let F$e=(()=>{class t{constructor(e,i){this.actions$=e,this.state=i,this.updateFileSettings$=Bo(()=>this.actions$.pipe(Dc(...OM),Et(()=>{const r=this.state.getValue(),o=function Y_e(t){return TM(t).map(n=>n.file)}(r.files),s=pW(r.files),a=Ud(r).map(({file:c})=>c.settings.fileSettings.attributeTypes),l=Ud(r).map(({file:c})=>c.settings.fileSettings.attributeDescriptors);return MA({value:{fileSettings:{edges:C$e(o,s),markedPackages:E$e(o,s),blacklist:M$e(o,s),attributeTypes:S$e(a),attributeDescriptors:T$e(l)}}})})))}static{this.\u0275fac=function(i){return new(i||t)(oe($u),oe(Br))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac})}}return t})(),k$e=(()=>{class t{constructor(e,i){this.store=e,this.state=i,this.updateMapColors$=Bo(()=>this.store.select(mm).pipe(Et(r=>{const o=this.state.getValue();if(1===o.fileSettings.attributeDescriptors[r]?.direction){const a=JSON.parse(Rc(o.appSettings.mapColors)),l=a.negative;return a.negative=a.positive,a.positive=l,ju({value:a})}return ju({value:iu})})))}static{this.\u0275fac=function(i){return new(i||t)(oe(Wt),oe(Br))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac})}}return t})(),I$e=(()=>{class t{constructor(e,i){this.store=e,this.state=i,this.updateVisibleTopLabels$=Bo(()=>this.store.select(Ud).pipe(Pie(),Wu(this.store.select(bF)),Et(([[r,o],s])=>{const l=Rc(r)===Rc(o)?this.state.getValue().appSettings.amountOfTopLabels:_N(s);return Uf({value:l})})))}static{this.\u0275fac=function(i){return new(i||t)(oe(Wt),oe(Br))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac})}}return t})(),B$e=(()=>{class t{constructor(e,i){this.actions$=e,this.store=i,this.resetColorRange$=Bo(()=>this.actions$.pipe(Dc(...OM),Bf(()=>this.store.select(Ch).pipe(b1(1),qo(1))),Et(r=>Pd({value:wF(r)})))),this.resetColorRangeOnColorMetricChange$=Bo(()=>this.actions$.pipe(Dc(Lc),Bf(()=>this.store.select(Ch).pipe(qo(1))),Et(r=>Pd({value:wF(r)}))))}static{this.\u0275fac=function(i){return new(i||t)(oe($u),oe(Wt))}}static{this.\u0275prov=Mt({token:t,factory:t.\u0275fac})}}return t})(),D$e=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t})}static{this.\u0275inj=Tt({imports:[An,Oi]})}}return t})(),R$e=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=Bt({type:t,bootstrap:[Y9e]})}static{this.\u0275inj=Tt({providers:[xoe,{provide:RV,useFactory:e=>()=>e.synchronizeLocalCodeChartaVersion(),deps:[xoe],multi:!0}],imports:[gz,Zz,s_e.forRoot(_5e,{metaReducers:[v5e]}),T_e.forRoot([w$e,Zre,p$e,CGe,B$e,n9e,x$e,Eoe,PWe,I$e,NWe,A$e,F$e,y$e,v$e,Uve,k$e]),Oi,Bc,Dy,D$e,uWe,QWe]})}}return t})();typeof window<"u"&&!window.__TEST_ENVIRONMENT__&&FAe().bootstrapModule(R$e)},7172:(st,be,p)=>{"use strict";var U=p(6685),Q=p(5841),f=p(8493),z=p(2420),k=p(8861),F=p(7741),V=p(8930),T=p(2615),N=p(1677);st.exports=Z,Z.prototype.validate=function xe(Ye,St){var qt;if("string"==typeof Ye){if(!(qt=this.getSchema(Ye)))throw new Error('no schema with key or ref "'+Ye+'"')}else{var En=this._addSchema(Ye);qt=En.validate||this._compile(En)}var Gt=qt(St);return!0!==qt.$async&&(this.errors=qt.errors),Gt},Z.prototype.compile=function Oe(Ye,St){var qt=this._addSchema(Ye,void 0,St);return qt.validate||this._compile(qt)},Z.prototype.addSchema=function Ee(Ye,St,qt,En){if(Array.isArray(Ye)){for(var Gt=0;Gt{"use strict";var be=st.exports=function(){this._cache={}};be.prototype.put=function(U,Q){this._cache[U]=Q},be.prototype.get=function(U){return this._cache[U]},be.prototype.del=function(U){delete this._cache[U]},be.prototype.clear=function(){this._cache={}}},4442:(st,be,p)=>{"use strict";var U=p(8892).MissingRef;st.exports=function Q(f,z,k){var F=this;if("function"!=typeof this._opts.loadSchema)throw new Error("options.loadSchema should be a function");"function"==typeof z&&(k=z,z=void 0);var V=T(f).then(function(){var R=F._addSchema(f,void 0,z);return R.validate||N(R)});return k&&V.then(function(R){k(null,R)},k),V;function T(R){var G=R.$schema;return G&&!F.getSchema(G)?Q.call(F,{$ref:G},!0):Promise.resolve()}function N(R){try{return F._compile(R)}catch(D){if(D instanceof U)return function G(D){var q=D.missingSchema;if(xe(q))throw new Error("Schema "+q+" is loaded but "+D.missingRef+" cannot be resolved");var J=F._loadingSchemas[q];return J||(J=F._loadingSchemas[q]=F._opts.loadSchema(q)).then(Z,Z),J.then(function(Oe){if(!xe(q))return T(Oe).then(function(){xe(q)||F.addSchema(Oe,q,void 0,z)})}).then(function(){return N(R)});function Z(){delete F._loadingSchemas[q]}function xe(Oe){return F._refs[Oe]||F._schemas[Oe]}}(D);throw D}}}},8892:(st,be,p)=>{"use strict";var U=p(5841);function f(k,F,V){this.message=V||f.message(k,F),this.missingRef=U.url(k,F),this.missingSchema=U.normalizeId(U.fullPath(this.missingRef))}function z(k){return k.prototype=Object.create(Error.prototype),k.prototype.constructor=k,k}st.exports={Validation:z(function Q(k){this.message="validation failed",this.errors=k,this.ajv=this.validation=!0}),MissingRef:z(f)},f.message=function(k,F){return"can't resolve reference "+F+" from id "+k}},7741:(st,be,p)=>{"use strict";var U=p(1677),Q=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,f=[0,31,28,31,30,31,30,31,31,30,31,30,31],z=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d(?::?\d\d)?)?$/i,k=/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,F=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,T=/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,N=/^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i,R=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,G=/^(?:\/(?:[^~/]|~0|~1)*)*$/,D=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,q=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;function J(Ue){return U.copy(J[Ue="full"==Ue?"full":"fast"])}function xe(Ue){var et=Ue.match(Q);if(!et)return!1;var Te=+et[2],le=+et[3];return Te>=1&&Te<=12&&le>=1&&le<=(2==Te&&function Z(Ue){return Ue%4==0&&(Ue%100!=0||Ue%400==0)}(+et[1])?29:f[Te])}function Oe(Ue,et){var Ge=Ue.match(z);if(!Ge)return!1;var Te=Ge[1],le=Ge[2],Pe=Ge[3];return(Te<=23&&le<=59&&Pe<=59||23==Te&&59==le&&60==Pe)&&(!et||Ge[5])}st.exports=J,J.fast={date:/^\d\d\d\d-[0-1]\d-[0-3]\d$/,time:/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,"date-time":/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,"uri-template":T,url:N,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,hostname:k,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:Xe,uuid:R,"json-pointer":G,"json-pointer-uri-fragment":D,"relative-json-pointer":q},J.full={date:xe,time:Oe,"date-time":function $e(Ue){var et=Ue.split(Ee);return 2==et.length&&xe(et[0])&&Oe(et[1],!0)},uri:function Ie(Ue){return Ke.test(Ue)&&F.test(Ue)},"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":T,url:N,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:k,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:Xe,uuid:R,"json-pointer":G,"json-pointer-uri-fragment":D,"relative-json-pointer":q};var Ee=/t|\s/i,Ke=/\/|:/,at=/[^\\]\\Z/;function Xe(Ue){if(at.test(Ue))return!1;try{return new RegExp(Ue),!0}catch{return!1}}},6685:(st,be,p)=>{"use strict";var U=p(5841),Q=p(1677),f=p(8892),z=p(8861),k=p(604),F=Q.ucs2length,V=p(362),T=f.Validation;function R(Ee,$e,Ke){var Ie=D.call(this,Ee,$e,Ke);return Ie>=0?{index:Ie,compiling:!0}:(this._compilations[Ie=this._compilations.length]={schema:Ee,root:$e,baseId:Ke},{index:Ie,compiling:!1})}function G(Ee,$e,Ke){var Ie=D.call(this,Ee,$e,Ke);Ie>=0&&this._compilations.splice(Ie,1)}function D(Ee,$e,Ke){for(var Ie=0;Ie{"use strict";var U=p(5568),Q=p(362),f=p(1677),z=p(2420),k=p(4331);function F(Ie,at,Xe){var Ue=this._refs[Xe];if("string"==typeof Ue){if(!this._refs[Ue])return F.call(this,Ie,at,Ue);Ue=this._refs[Ue]}if((Ue=Ue||this._schemas[Xe])instanceof z)return D(Ue.schema,this._opts.inlineRefs)?Ue.schema:Ue.validate||this._compile(Ue);var Ge,Te,le,et=V.call(this,at,Xe);return et&&(Ge=et.schema,at=et.root,le=et.baseId),Ge instanceof z?Te=Ge.validate||Ie.call(this,Ge.schema,at,void 0,le):void 0!==Ge&&(Te=D(Ge,this._opts.inlineRefs)?Ge:Ie.call(this,Ge,at,void 0,le)),Te}function V(Ie,at){var Xe=U.parse(at),Ue=xe(Xe),et=Z(this._getId(Ie.schema));if(0===Object.keys(Ie.schema).length||Ue!==et){var Ge=Ee(Ue),Te=this._refs[Ge];if("string"==typeof Te)return T.call(this,Ie,Te,Xe);if(Te instanceof z)Te.validate||this._compile(Te),Ie=Te;else{if(!((Te=this._schemas[Ge])instanceof z))return;if(Te.validate||this._compile(Te),Ge==Ee(at))return{schema:Te,root:Ie,baseId:et};Ie=Te}if(!Ie.schema)return;et=Z(this._getId(Ie.schema))}return R.call(this,Xe,et,Ie.schema,Ie)}function T(Ie,at,Xe){var Ue=V.call(this,Ie,at);if(Ue){var et=Ue.schema,Ge=Ue.baseId;Ie=Ue.root;var Te=this._getId(et);return Te&&(Ge=$e(Ge,Te)),R.call(this,Xe,Ge,et,Ie)}}st.exports=F,F.normalizeId=Ee,F.fullPath=Z,F.url=$e,F.ids=function Ke(Ie){var at=Ee(this._getId(Ie)),Xe={"":at},Ue={"":Z(at,!1)},et={},Ge=this;return k(Ie,{allKeys:!0},function(Te,le,Pe,Ze,Le,lt,gt){if(""!==le){var Lt=Ge._getId(Te),Qt=Xe[Ze],vn=Ue[Ze]+"/"+Le;if(void 0!==gt&&(vn+="/"+("number"==typeof gt?gt:f.escapeFragment(gt))),"string"==typeof Lt){Lt=Qt=Ee(Qt?U.resolve(Qt,Lt):Lt);var Pn=Ge._refs[Lt];if("string"==typeof Pn&&(Pn=Ge._refs[Pn]),Pn&&Pn.schema){if(!Q(Te,Pn.schema))throw new Error('id "'+Lt+'" resolves to more than one schema')}else if(Lt!=Ee(vn))if("#"==Lt[0]){if(et[Lt]&&!Q(Te,et[Lt]))throw new Error('id "'+Lt+'" resolves to more than one schema');et[Lt]=Te}else Ge._refs[Lt]=vn}Xe[le]=Qt,Ue[le]=vn}}),et},F.inlineRef=D,F.schema=V;var N=f.toHash(["properties","patternProperties","enum","dependencies","definitions"]);function R(Ie,at,Xe,Ue){if(Ie.fragment=Ie.fragment||"","/"==Ie.fragment.slice(0,1)){for(var et=Ie.fragment.split("/"),Ge=1;Ge{"use strict";var U=p(2956),Q=p(1677).toHash;st.exports=function(){var z=[{type:"number",rules:[{maximum:["exclusiveMaximum"]},{minimum:["exclusiveMinimum"]},"multipleOf","format"]},{type:"string",rules:["maxLength","minLength","pattern","format"]},{type:"array",rules:["maxItems","minItems","items","contains","uniqueItems"]},{type:"object",rules:["maxProperties","minProperties","required","dependencies","propertyNames",{properties:["additionalProperties","patternProperties"]}]},{rules:["$ref","const","enum","not","anyOf","oneOf","allOf","if"]}],k=["type","$comment"];return z.all=Q(k),z.types=Q(["number","integer","string","array","object","boolean","null"]),z.forEach(function(T){T.rules=T.rules.map(function(N){var R;if("object"==typeof N){var G=Object.keys(N)[0];R=N[G],N=G,R.forEach(function(q){k.push(q),z.all[q]=!0})}return k.push(N),z.all[N]={keyword:N,code:U[N],implements:R}}),z.all.$comment={keyword:"$comment",code:U.$comment},T.type&&(z.types[T.type]=T)}),z.keywords=Q(k.concat(["$schema","$id","id","$data","$async","title","description","default","definitions","examples","readOnly","writeOnly","contentMediaType","contentEncoding","additionalItems","then","else"])),z.custom={},z}},2420:(st,be,p)=>{"use strict";var U=p(1677);st.exports=function Q(f){U.copy(f,this)}},1132:st=>{"use strict";st.exports=function(p){for(var z,U=0,Q=p.length,f=0;f=55296&&z<=56319&&f{"use strict";function Q(Te,le,Pe,Ze){var Le=Ze?" !== ":" === ",lt=Ze?" || ":" && ",gt=Ze?"!":"",Lt=Ze?"":"!";switch(Te){case"null":return le+Le+"null";case"array":return gt+"Array.isArray("+le+")";case"object":return"("+gt+le+lt+"typeof "+le+Le+'"object"'+lt+Lt+"Array.isArray("+le+"))";case"integer":return"(typeof "+le+Le+'"number"'+lt+Lt+"("+le+" % 1)"+lt+le+Le+le+(Pe?lt+gt+"isFinite("+le+")":"")+")";case"number":return"(typeof "+le+Le+'"'+Te+'"'+(Pe?lt+gt+"isFinite("+le+")":"")+")";default:return"typeof "+le+Le+'"'+Te+'"'}}st.exports={copy:function U(Te,le){for(var Pe in le=le||{},Te)le[Pe]=Te[Pe];return le},checkDataType:Q,checkDataTypes:function f(Te,le,Pe){if(1===Te.length)return Q(Te[0],le,Pe,!0);var Ze="",Le=F(Te);for(var lt in Le.array&&Le.object&&(Ze=Le.null?"(":"(!"+le+" || ",Ze+="typeof "+le+' !== "object")',delete Le.null,delete Le.array,delete Le.object),Le.number&&delete Le.integer,Le)Ze+=(Ze?" && ":"")+Q(lt,le,Pe,!0);return Ze},coerceToTypes:function k(Te,le){if(Array.isArray(le)){for(var Pe=[],Ze=0;Ze=le)throw new Error("Cannot access property/index "+Ze+" levels up, current level is "+le);return Pe[le-Ze]}if(Ze>le)throw new Error("Cannot access data "+Ze+" levels up, current level is "+le);if(lt="data"+(le-Ze||""),!Le)return lt}for(var Lt=lt,Qt=Le.split("/"),vn=0;vn{"use strict";var be=["multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","additionalItems","maxItems","minItems","uniqueItems","maxProperties","minProperties","required","additionalProperties","enum","format","const"];st.exports=function(p,U){for(var Q=0;Q{"use strict";var U=p(8198);st.exports={$id:"https://github.com/ajv-validator/ajv/blob/master/lib/definition_schema.js",definitions:{simpleTypes:U.definitions.simpleTypes},type:"object",dependencies:{schema:["validate"],$data:["validate"],statements:["inline"],valid:{not:{required:["macro"]}}},properties:{type:U.properties.type,schema:{type:"boolean"},statements:{type:"boolean"},dependencies:{type:"array",items:{type:"string"}},metaSchema:{type:"object"},modifying:{type:"boolean"},valid:{type:"boolean"},$data:{type:"boolean"},async:{type:"boolean"},errors:{anyOf:[{type:"boolean"},{const:"full"}]}}}},9402:st=>{"use strict";st.exports=function(p,U,Q){var D,f=" ",z=p.level,k=p.dataLevel,F=p.schema[U],V=p.schemaPath+p.util.getProperty(U),T=p.errSchemaPath+"/"+U,N=!p.opts.allErrors,R="data"+(k||""),G=p.opts.$data&&F&&F.$data;G?(f+=" var schema"+z+" = "+p.util.getData(F.$data,k,p.dataPathArr)+"; ",D="schema"+z):D=F;var q="maximum"==U,J=q?"exclusiveMaximum":"exclusiveMinimum",Z=p.schema[J],xe=p.opts.$data&&Z&&Z.$data,Oe=q?"<":">",Ee=q?">":"<",$e=void 0;if(!G&&"number"!=typeof F&&void 0!==F)throw new Error(U+" must be number");if(!xe&&void 0!==Z&&"number"!=typeof Z&&"boolean"!=typeof Z)throw new Error(J+" must be number or boolean");if(xe){var Ge,Ke=p.util.getData(Z.$data,k,p.dataPathArr),Ie="exclusive"+z,at="exclType"+z,Xe="exclIsNumber"+z,et="' + "+(Ue="op"+z)+" + '";f+=" var schemaExcl"+z+" = "+Ke+"; ",$e=J,(Ge=Ge||[]).push(f+=" var "+Ie+"; var "+at+" = typeof "+(Ke="schemaExcl"+z)+"; if ("+at+" != 'boolean' && "+at+" != 'undefined' && "+at+" != 'number') { "),f="",!1!==p.createErrors?(f+=" { keyword: '"+($e||"_exclusiveLimit")+"' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: {} ",!1!==p.opts.messages&&(f+=" , message: '"+J+" should be boolean' "),p.opts.verbose&&(f+=" , schema: validate.schema"+V+" , parentSchema: validate.schema"+p.schemaPath+" , data: "+R+" "),f+=" } "):f+=" {} ";var Te=f;f=Ge.pop(),f+=!p.compositeRule&&N?p.async?" throw new ValidationError(["+Te+"]); ":" validate.errors = ["+Te+"]; return false; ":" var err = "+Te+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",f+=" } else if ( ",G&&(f+=" ("+D+" !== undefined && typeof "+D+" != 'number') || "),f+=" "+at+" == 'number' ? ( ("+Ie+" = "+D+" === undefined || "+Ke+" "+Oe+"= "+D+") ? "+R+" "+Ee+"= "+Ke+" : "+R+" "+Ee+" "+D+" ) : ( ("+Ie+" = "+Ke+" === true) ? "+R+" "+Ee+"= "+D+" : "+R+" "+Ee+" "+D+" ) || "+R+" !== "+R+") { var op"+z+" = "+Ie+" ? '"+Oe+"' : '"+Oe+"='; ",void 0===F&&($e=J,T=p.errSchemaPath+"/"+J,D=Ke,G=xe)}else if(et=Oe,(Xe="number"==typeof Z)&&G){var Ue="'"+et+"'";f+=" if ( ",G&&(f+=" ("+D+" !== undefined && typeof "+D+" != 'number') || "),f+=" ( "+D+" === undefined || "+Z+" "+Oe+"= "+D+" ? "+R+" "+Ee+"= "+Z+" : "+R+" "+Ee+" "+D+" ) || "+R+" !== "+R+") { "}else Xe&&void 0===F?(Ie=!0,$e=J,T=p.errSchemaPath+"/"+J,D=Z,Ee+="="):(Xe&&(D=Math[q?"min":"max"](Z,F)),Z===(!Xe||D)?(Ie=!0,$e=J,T=p.errSchemaPath+"/"+J,Ee+="="):(Ie=!1,et+="=")),Ue="'"+et+"'",f+=" if ( ",G&&(f+=" ("+D+" !== undefined && typeof "+D+" != 'number') || "),f+=" "+R+" "+Ee+" "+D+" || "+R+" !== "+R+") { ";return $e=$e||U,(Ge=Ge||[]).push(f),f="",!1!==p.createErrors?(f+=" { keyword: '"+($e||"_limit")+"' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { comparison: "+Ue+", limit: "+D+", exclusive: "+Ie+" } ",!1!==p.opts.messages&&(f+=" , message: 'should be "+et+" ",f+=G?"' + "+D:D+"'"),p.opts.verbose&&(f+=" , schema: ",f+=G?"validate.schema"+V:""+F,f+=" , parentSchema: validate.schema"+p.schemaPath+" , data: "+R+" "),f+=" } "):f+=" {} ",Te=f,f=Ge.pop(),f+=!p.compositeRule&&N?p.async?" throw new ValidationError(["+Te+"]); ":" validate.errors = ["+Te+"]; return false; ":" var err = "+Te+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",f+=" } ",N&&(f+=" else { "),f}},3792:st=>{"use strict";st.exports=function(p,U,Q){var D,f=" ",z=p.level,k=p.dataLevel,F=p.schema[U],V=p.schemaPath+p.util.getProperty(U),T=p.errSchemaPath+"/"+U,N=!p.opts.allErrors,R="data"+(k||""),G=p.opts.$data&&F&&F.$data;if(G?(f+=" var schema"+z+" = "+p.util.getData(F.$data,k,p.dataPathArr)+"; ",D="schema"+z):D=F,!G&&"number"!=typeof F)throw new Error(U+" must be number");f+="if ( ",G&&(f+=" ("+D+" !== undefined && typeof "+D+" != 'number') || ");var J=U,Z=Z||[];Z.push(f+=" "+R+".length "+("maxItems"==U?">":"<")+" "+D+") { "),f="",!1!==p.createErrors?(f+=" { keyword: '"+(J||"_limitItems")+"' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { limit: "+D+" } ",!1!==p.opts.messages&&(f+=" , message: 'should NOT have ",f+="maxItems"==U?"more":"fewer",f+=" than ",f+=G?"' + "+D+" + '":""+F,f+=" items' "),p.opts.verbose&&(f+=" , schema: ",f+=G?"validate.schema"+V:""+F,f+=" , parentSchema: validate.schema"+p.schemaPath+" , data: "+R+" "),f+=" } "):f+=" {} ";var xe=f;return f=Z.pop(),f+=!p.compositeRule&&N?p.async?" throw new ValidationError(["+xe+"]); ":" validate.errors = ["+xe+"]; return false; ":" var err = "+xe+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",f+="} ",N&&(f+=" else { "),f}},3226:st=>{"use strict";st.exports=function(p,U,Q){var D,f=" ",z=p.level,k=p.dataLevel,F=p.schema[U],V=p.schemaPath+p.util.getProperty(U),T=p.errSchemaPath+"/"+U,N=!p.opts.allErrors,R="data"+(k||""),G=p.opts.$data&&F&&F.$data;if(G?(f+=" var schema"+z+" = "+p.util.getData(F.$data,k,p.dataPathArr)+"; ",D="schema"+z):D=F,!G&&"number"!=typeof F)throw new Error(U+" must be number");f+="if ( ",G&&(f+=" ("+D+" !== undefined && typeof "+D+" != 'number') || "),f+=!1===p.opts.unicode?" "+R+".length ":" ucs2length("+R+") ";var J=U,Z=Z||[];Z.push(f+=" "+("maxLength"==U?">":"<")+" "+D+") { "),f="",!1!==p.createErrors?(f+=" { keyword: '"+(J||"_limitLength")+"' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { limit: "+D+" } ",!1!==p.opts.messages&&(f+=" , message: 'should NOT be ",f+="maxLength"==U?"longer":"shorter",f+=" than ",f+=G?"' + "+D+" + '":""+F,f+=" characters' "),p.opts.verbose&&(f+=" , schema: ",f+=G?"validate.schema"+V:""+F,f+=" , parentSchema: validate.schema"+p.schemaPath+" , data: "+R+" "),f+=" } "):f+=" {} ";var xe=f;return f=Z.pop(),f+=!p.compositeRule&&N?p.async?" throw new ValidationError(["+xe+"]); ":" validate.errors = ["+xe+"]; return false; ":" var err = "+xe+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",f+="} ",N&&(f+=" else { "),f}},2119:st=>{"use strict";st.exports=function(p,U,Q){var D,f=" ",z=p.level,k=p.dataLevel,F=p.schema[U],V=p.schemaPath+p.util.getProperty(U),T=p.errSchemaPath+"/"+U,N=!p.opts.allErrors,R="data"+(k||""),G=p.opts.$data&&F&&F.$data;if(G?(f+=" var schema"+z+" = "+p.util.getData(F.$data,k,p.dataPathArr)+"; ",D="schema"+z):D=F,!G&&"number"!=typeof F)throw new Error(U+" must be number");f+="if ( ",G&&(f+=" ("+D+" !== undefined && typeof "+D+" != 'number') || ");var J=U,Z=Z||[];Z.push(f+=" Object.keys("+R+").length "+("maxProperties"==U?">":"<")+" "+D+") { "),f="",!1!==p.createErrors?(f+=" { keyword: '"+(J||"_limitProperties")+"' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { limit: "+D+" } ",!1!==p.opts.messages&&(f+=" , message: 'should NOT have ",f+="maxProperties"==U?"more":"fewer",f+=" than ",f+=G?"' + "+D+" + '":""+F,f+=" properties' "),p.opts.verbose&&(f+=" , schema: ",f+=G?"validate.schema"+V:""+F,f+=" , parentSchema: validate.schema"+p.schemaPath+" , data: "+R+" "),f+=" } "):f+=" {} ";var xe=f;return f=Z.pop(),f+=!p.compositeRule&&N?p.async?" throw new ValidationError(["+xe+"]); ":" validate.errors = ["+xe+"]; return false; ":" var err = "+xe+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",f+="} ",N&&(f+=" else { "),f}},9218:st=>{"use strict";st.exports=function(p,U,Q){var f=" ",z=p.schema[U],k=p.schemaPath+p.util.getProperty(U),F=p.errSchemaPath+"/"+U,V=!p.opts.allErrors,T=p.util.copy(p),N="";T.level++;var R="valid"+T.level,G=T.baseId,D=!0,q=z;if(q)for(var J,Z=-1,xe=q.length-1;Z0||!1===J:p.util.schemaHasRules(J,p.RULES.all))&&(D=!1,T.schema=J,T.schemaPath=k+"["+Z+"]",T.errSchemaPath=F+"/"+Z,f+=" "+p.validate(T)+" ",T.baseId=G,V&&(f+=" if ("+R+") { ",N+="}"));return V&&(f+=D?" if (true) { ":" "+N.slice(0,-1)+" "),f}},3883:st=>{"use strict";st.exports=function(p,U,Q){var f=" ",z=p.level,k=p.dataLevel,F=p.schema[U],V=p.schemaPath+p.util.getProperty(U),T=p.errSchemaPath+"/"+U,N=!p.opts.allErrors,R="data"+(k||""),G="valid"+z,D="errs__"+z,q=p.util.copy(p),J="";q.level++;var Z="valid"+q.level;if(F.every(function(Xe){return p.opts.strictKeywords?"object"==typeof Xe&&Object.keys(Xe).length>0||!1===Xe:p.util.schemaHasRules(Xe,p.RULES.all)})){var Oe=q.baseId;f+=" var "+D+" = errors; var "+G+" = false; ";var Ee=p.compositeRule;p.compositeRule=q.compositeRule=!0;var $e=F;if($e)for(var Ke,Ie=-1,at=$e.length-1;Ie{"use strict";st.exports=function(p,U,Q){var f=" ",k=p.errSchemaPath+"/"+U,V=p.util.toQuotedString(p.schema[U]);return!0===p.opts.$comment?f+=" console.log("+V+");":"function"==typeof p.opts.$comment&&(f+=" self._opts.$comment("+V+", "+p.util.toQuotedString(k)+", validate.root.schema);"),f}},439:st=>{"use strict";st.exports=function(p,U,Q){var f=" ",z=p.level,k=p.dataLevel,F=p.schema[U],V=p.schemaPath+p.util.getProperty(U),T=p.errSchemaPath+"/"+U,N=!p.opts.allErrors,R="data"+(k||""),G="valid"+z,D=p.opts.$data&&F&&F.$data;D&&(f+=" var schema"+z+" = "+p.util.getData(F.$data,k,p.dataPathArr)+"; "),D||(f+=" var schema"+z+" = validate.schema"+V+";");var J=J||[];J.push(f+="var "+G+" = equal("+R+", schema"+z+"); if (!"+G+") { "),f="",!1!==p.createErrors?(f+=" { keyword: 'const' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { allowedValue: schema"+z+" } ",!1!==p.opts.messages&&(f+=" , message: 'should be equal to constant' "),p.opts.verbose&&(f+=" , schema: validate.schema"+V+" , parentSchema: validate.schema"+p.schemaPath+" , data: "+R+" "),f+=" } "):f+=" {} ";var Z=f;return f=J.pop(),f+=!p.compositeRule&&N?p.async?" throw new ValidationError(["+Z+"]); ":" validate.errors = ["+Z+"]; return false; ":" var err = "+Z+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",f+=" }",N&&(f+=" else { "),f}},7939:st=>{"use strict";st.exports=function(p,U,Q){var f=" ",z=p.level,k=p.dataLevel,F=p.schema[U],V=p.schemaPath+p.util.getProperty(U),T=p.errSchemaPath+"/"+U,N=!p.opts.allErrors,R="data"+(k||""),G="valid"+z,D="errs__"+z,q=p.util.copy(p);q.level++;var Z="valid"+q.level,xe="i"+z,Oe=q.dataLevel=p.dataLevel+1,Ee="data"+Oe,$e=p.baseId,Ke=p.opts.strictKeywords?"object"==typeof F&&Object.keys(F).length>0||!1===F:p.util.schemaHasRules(F,p.RULES.all);if(f+="var "+D+" = errors;var "+G+";",Ke){var Ie=p.compositeRule;p.compositeRule=q.compositeRule=!0,q.schema=F,q.schemaPath=V,q.errSchemaPath=T,f+=" var "+Z+" = false; for (var "+xe+" = 0; "+xe+" < "+R+".length; "+xe+"++) { ",q.errorPath=p.util.getPathExpr(p.errorPath,xe,p.opts.jsonPointers,!0);var at=R+"["+xe+"]";q.dataPathArr[Oe]=xe;var Xe=p.validate(q);q.baseId=$e,p.util.varOccurences(Xe,Ee)<2?f+=" "+p.util.varReplace(Xe,Ee,at)+" ":f+=" var "+Ee+" = "+at+"; "+Xe+" ",f+=" if ("+Z+") break; } ",p.compositeRule=q.compositeRule=Ie,f+=" if (!"+Z+") {"}else f+=" if ("+R+".length == 0) {";var Ue=Ue||[];Ue.push(f),f="",!1!==p.createErrors?(f+=" { keyword: 'contains' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: {} ",!1!==p.opts.messages&&(f+=" , message: 'should contain a valid item' "),p.opts.verbose&&(f+=" , schema: validate.schema"+V+" , parentSchema: validate.schema"+p.schemaPath+" , data: "+R+" "),f+=" } "):f+=" {} ";var et=f;return f=Ue.pop(),f+=!p.compositeRule&&N?p.async?" throw new ValidationError(["+et+"]); ":" validate.errors = ["+et+"]; return false; ":" var err = "+et+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",f+=" } else { ",Ke&&(f+=" errors = "+D+"; if (vErrors !== null) { if ("+D+") vErrors.length = "+D+"; else vErrors = null; } "),p.opts.allErrors&&(f+=" } "),f}},5237:st=>{"use strict";st.exports=function(p,U,Q){var R,Z,f=" ",z=p.level,k=p.dataLevel,F=p.schema[U],V=p.schemaPath+p.util.getProperty(U),T=p.errSchemaPath+"/"+U,N=!p.opts.allErrors,G="data"+(k||""),D="valid"+z,q="errs__"+z,J=p.opts.$data&&F&&F.$data;J?(f+=" var schema"+z+" = "+p.util.getData(F.$data,k,p.dataPathArr)+"; ",Z="schema"+z):Z=F;var Ke,Ie,at,Xe,Ue,xe=this,Oe="definition"+z,Ee=xe.definition,$e="";if(J&&Ee.$data){var et=Ee.validateSchema;f+=" var "+Oe+" = RULES.custom['"+U+"'].definition; var "+(Ue="keywordValidate"+z)+" = "+Oe+".validate;"}else{if(!(Xe=p.useCustomRule(xe,F,p.schema,p)))return;Z="validate.schema"+V,Ue=Xe.code,Ke=Ee.compile,Ie=Ee.inline,at=Ee.macro}var Ge=Ue+".errors",Te="i"+z,le="ruleErr"+z,Pe=Ee.async;if(Pe&&!p.async)throw new Error("async keyword in sync schema");if(Ie||at||(f+=Ge+" = null;"),f+="var "+q+" = errors;var "+D+";",J&&Ee.$data&&($e+="}",f+=" if ("+Z+" === undefined) { "+D+" = true; } else { ",et&&($e+="}",f+=" "+D+" = "+Oe+".validateSchema("+Z+"); if ("+D+") { ")),Ie)f+=Ee.statements?" "+Xe.validate+" ":" "+D+" = "+Xe.validate+"; ";else if(at){var Ze=p.util.copy(p);$e="",Ze.level++;var Le="valid"+Ze.level;Ze.schema=Xe.validate,Ze.schemaPath="";var lt=p.compositeRule;p.compositeRule=Ze.compositeRule=!0;var gt=p.validate(Ze).replace(/validate\.schema/g,Ue);p.compositeRule=Ze.compositeRule=lt,f+=" "+gt}else{(Lt=Lt||[]).push(f),f="",f+=" "+Ue+".call( ",f+=p.opts.passContext?"this":"self",f+=Ke||!1===Ee.schema?" , "+G+" ":" , "+Z+" , "+G+" , validate.schema"+p.schemaPath+" ",f+=" , (dataPath || '')",'""'!=p.errorPath&&(f+=" + "+p.errorPath);var Qt=k?"data"+(k-1||""):"parentData",vn=k?p.dataPathArr[k]:"parentDataProperty",Pn=f+=" , "+Qt+" , "+vn+" , rootData ) ";f=Lt.pop(),!1===Ee.errors?(f+=" "+D+" = ",Pe&&(f+="await "),f+=Pn+"; "):f+=Pe?" var "+(Ge="customErrors"+z)+" = null; try { "+D+" = await "+Pn+"; } catch (e) { "+D+" = false; if (e instanceof ValidationError) "+Ge+" = e.errors; else throw e; } ":" "+Ge+" = null; "+D+" = "+Pn+"; "}if(Ee.modifying&&(f+=" if ("+Qt+") "+G+" = "+Qt+"["+vn+"];"),f+=""+$e,Ee.valid)N&&(f+=" if (true) { ");else{var Lt;f+=" if ( ",void 0===Ee.valid?(f+=" !",f+=at?""+Le:""+D):f+=" "+!Ee.valid+" ",R=xe.keyword,(Lt=Lt||[]).push(f+=") { "),(Lt=Lt||[]).push(f=""),f="",!1!==p.createErrors?(f+=" { keyword: '"+(R||"custom")+"' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { keyword: '"+xe.keyword+"' } ",!1!==p.opts.messages&&(f+=" , message: 'should pass \""+xe.keyword+"\" keyword validation' "),p.opts.verbose&&(f+=" , schema: validate.schema"+V+" , parentSchema: validate.schema"+p.schemaPath+" , data: "+G+" "),f+=" } "):f+=" {} ";var Kn=f;f=Lt.pop();var Qn=f+=!p.compositeRule&&N?p.async?" throw new ValidationError(["+Kn+"]); ":" validate.errors = ["+Kn+"]; return false; ":" var err = "+Kn+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";f=Lt.pop(),Ie?Ee.errors?"full"!=Ee.errors&&(f+=" for (var "+Te+"="+q+"; "+Te+"{"use strict";st.exports=function(p,U,Q){var f=" ",z=p.level,k=p.dataLevel,F=p.schema[U],V=p.schemaPath+p.util.getProperty(U),T=p.errSchemaPath+"/"+U,N=!p.opts.allErrors,R="data"+(k||""),G="errs__"+z,D=p.util.copy(p),q="";D.level++;var J="valid"+D.level,Z={},xe={},Oe=p.opts.ownProperties;for(Ie in F)if("__proto__"!=Ie){var Ee=F[Ie],$e=Array.isArray(Ee)?xe:Z;$e[Ie]=Ee}f+="var "+G+" = errors;";var Ke=p.errorPath;for(var Ie in f+="var missing"+z+";",xe)if(($e=xe[Ie]).length){if(f+=" if ( "+R+p.util.getProperty(Ie)+" !== undefined ",Oe&&(f+=" && Object.prototype.hasOwnProperty.call("+R+", '"+p.util.escapeQuotes(Ie)+"') "),N){f+=" && ( ";var at=$e;if(at)for(var Ue=-1,et=at.length-1;Ue0||!1===Ee:p.util.schemaHasRules(Ee,p.RULES.all))&&(f+=" "+J+" = true; if ( "+R+p.util.getProperty(Ie)+" !== undefined ",Oe&&(f+=" && Object.prototype.hasOwnProperty.call("+R+", '"+p.util.escapeQuotes(Ie)+"') "),f+=") { ",D.schema=Ee,D.schemaPath=V+p.util.getProperty(Ie),D.errSchemaPath=T+"/"+p.util.escapeFragment(Ie),f+=" "+p.validate(D)+" ",D.baseId=Qt,f+=" } ",N&&(f+=" if ("+J+") { ",q+="}"));return N&&(f+=" "+q+" if ("+G+" == errors) {"),f}},4299:st=>{"use strict";st.exports=function(p,U,Q){var f=" ",z=p.level,k=p.dataLevel,F=p.schema[U],V=p.schemaPath+p.util.getProperty(U),T=p.errSchemaPath+"/"+U,N=!p.opts.allErrors,R="data"+(k||""),G="valid"+z,D=p.opts.$data&&F&&F.$data;D&&(f+=" var schema"+z+" = "+p.util.getData(F.$data,k,p.dataPathArr)+"; ");var J="i"+z,Z="schema"+z;D||(f+=" var "+Z+" = validate.schema"+V+";"),f+="var "+G+";",D&&(f+=" if (schema"+z+" === undefined) "+G+" = true; else if (!Array.isArray(schema"+z+")) "+G+" = false; else {"),f+=G+" = false;for (var "+J+"=0; "+J+"<"+Z+".length; "+J+"++) if (equal("+R+", "+Z+"["+J+"])) { "+G+" = true; break; }",D&&(f+=" } ");var xe=xe||[];xe.push(f+=" if (!"+G+") { "),f="",!1!==p.createErrors?(f+=" { keyword: 'enum' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { allowedValues: schema"+z+" } ",!1!==p.opts.messages&&(f+=" , message: 'should be equal to one of the allowed values' "),p.opts.verbose&&(f+=" , schema: validate.schema"+V+" , parentSchema: validate.schema"+p.schemaPath+" , data: "+R+" "),f+=" } "):f+=" {} ";var Oe=f;return f=xe.pop(),f+=!p.compositeRule&&N?p.async?" throw new ValidationError(["+Oe+"]); ":" validate.errors = ["+Oe+"]; return false; ":" var err = "+Oe+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",f+=" }",N&&(f+=" else { "),f}},4097:st=>{"use strict";st.exports=function(p,U,Q){var f=" ",z=p.level,k=p.dataLevel,F=p.schema[U],V=p.schemaPath+p.util.getProperty(U),T=p.errSchemaPath+"/"+U,N=!p.opts.allErrors,R="data"+(k||"");if(!1===p.opts.format)return N&&(f+=" if (true) { "),f;var D,G=p.opts.$data&&F&&F.$data;G?(f+=" var schema"+z+" = "+p.util.getData(F.$data,k,p.dataPathArr)+"; ",D="schema"+z):D=F;var q=p.opts.unknownFormats,J=Array.isArray(q);if(G)f+=" var "+(Z="format"+z)+" = formats["+D+"]; var "+(xe="isObject"+z)+" = typeof "+Z+" == 'object' && !("+Z+" instanceof RegExp) && "+Z+".validate; var "+(Oe="formatType"+z)+" = "+xe+" && "+Z+".type || 'string'; if ("+xe+") { ",p.async&&(f+=" var async"+z+" = "+Z+".async; "),f+=" "+Z+" = "+Z+".validate; } if ( ",G&&(f+=" ("+D+" !== undefined && typeof "+D+" != 'string') || "),f+=" (","ignore"!=q&&(f+=" ("+D+" && !"+Z+" ",J&&(f+=" && self._opts.unknownFormats.indexOf("+D+") == -1 "),f+=") || "),f+=" ("+Z+" && "+Oe+" == '"+Q+"' && !(typeof "+Z+" == 'function' ? ",f+=p.async?" (async"+z+" ? await "+Z+"("+R+") : "+Z+"("+R+")) ":" "+Z+"("+R+") ",f+=" : "+Z+".test("+R+"))))) {";else{var Z;if(!(Z=p.formats[F])){if("ignore"==q)return p.logger.warn('unknown format "'+F+'" ignored in schema at path "'+p.errSchemaPath+'"'),N&&(f+=" if (true) { "),f;if(J&&q.indexOf(F)>=0)return N&&(f+=" if (true) { "),f;throw new Error('unknown format "'+F+'" is used in schema at path "'+p.errSchemaPath+'"')}var xe,Oe=(xe="object"==typeof Z&&!(Z instanceof RegExp)&&Z.validate)&&Z.type||"string";if(xe){var Ee=!0===Z.async;Z=Z.validate}if(Oe!=Q)return N&&(f+=" if (true) { "),f;if(Ee){if(!p.async)throw new Error("async format in sync schema");f+=" if (!(await "+($e="formats"+p.util.getProperty(F)+".validate")+"("+R+"))) { "}else{f+=" if (! ";var $e="formats"+p.util.getProperty(F);xe&&($e+=".validate"),f+="function"==typeof Z?" "+$e+"("+R+") ":" "+$e+".test("+R+") ",f+=") { "}}var Ke=Ke||[];Ke.push(f),f="",!1!==p.createErrors?(f+=" { keyword: 'format' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { format: ",f+=G?""+D:""+p.util.toQuotedString(F),f+=" } ",!1!==p.opts.messages&&(f+=" , message: 'should match format \"",f+=G?"' + "+D+" + '":""+p.util.escapeQuotes(F),f+="\"' "),p.opts.verbose&&(f+=" , schema: ",f+=G?"validate.schema"+V:""+p.util.toQuotedString(F),f+=" , parentSchema: validate.schema"+p.schemaPath+" , data: "+R+" "),f+=" } "):f+=" {} ";var Ie=f;return f=Ke.pop(),f+=!p.compositeRule&&N?p.async?" throw new ValidationError(["+Ie+"]); ":" validate.errors = ["+Ie+"]; return false; ":" var err = "+Ie+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",f+=" } ",N&&(f+=" else { "),f}},2061:st=>{"use strict";st.exports=function(p,U,Q){var f=" ",z=p.level,k=p.dataLevel,F=p.schema[U],V=p.schemaPath+p.util.getProperty(U),T=p.errSchemaPath+"/"+U,N=!p.opts.allErrors,R="data"+(k||""),G="valid"+z,D="errs__"+z,q=p.util.copy(p);q.level++;var J="valid"+q.level,Z=p.schema.then,xe=p.schema.else,Oe=void 0!==Z&&(p.opts.strictKeywords?"object"==typeof Z&&Object.keys(Z).length>0||!1===Z:p.util.schemaHasRules(Z,p.RULES.all)),Ee=void 0!==xe&&(p.opts.strictKeywords?"object"==typeof xe&&Object.keys(xe).length>0||!1===xe:p.util.schemaHasRules(xe,p.RULES.all)),$e=q.baseId;if(Oe||Ee){var Ke;q.createErrors=!1,q.schema=F,q.schemaPath=V,q.errSchemaPath=T,f+=" var "+D+" = errors; var "+G+" = true; ";var Ie=p.compositeRule;p.compositeRule=q.compositeRule=!0,f+=" "+p.validate(q)+" ",q.baseId=$e,q.createErrors=!0,f+=" errors = "+D+"; if (vErrors !== null) { if ("+D+") vErrors.length = "+D+"; else vErrors = null; } ",p.compositeRule=q.compositeRule=Ie,Oe?(f+=" if ("+J+") { ",q.schema=p.schema.then,q.schemaPath=p.schemaPath+".then",q.errSchemaPath=p.errSchemaPath+"/then",f+=" "+p.validate(q)+" ",q.baseId=$e,f+=" "+G+" = "+J+"; ",Oe&&Ee?f+=" var "+(Ke="ifClause"+z)+" = 'then'; ":Ke="'then'",f+=" } ",Ee&&(f+=" else { ")):f+=" if (!"+J+") { ",Ee&&(q.schema=p.schema.else,q.schemaPath=p.schemaPath+".else",q.errSchemaPath=p.errSchemaPath+"/else",f+=" "+p.validate(q)+" ",q.baseId=$e,f+=" "+G+" = "+J+"; ",Oe&&Ee?f+=" var "+(Ke="ifClause"+z)+" = 'else'; ":Ke="'else'",f+=" } "),f+=" if (!"+G+") { var err = ",!1!==p.createErrors?(f+=" { keyword: 'if' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { failingKeyword: "+Ke+" } ",!1!==p.opts.messages&&(f+=" , message: 'should match \"' + "+Ke+" + '\" schema' "),p.opts.verbose&&(f+=" , schema: validate.schema"+V+" , parentSchema: validate.schema"+p.schemaPath+" , data: "+R+" "),f+=" } "):f+=" {} ",f+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!p.compositeRule&&N&&(f+=p.async?" throw new ValidationError(vErrors); ":" validate.errors = vErrors; return false; "),f+=" } ",N&&(f+=" else { ")}else N&&(f+=" if (true) { ");return f}},2956:(st,be,p)=>{"use strict";st.exports={$ref:p(3953),allOf:p(9218),anyOf:p(3883),$comment:p(757),const:p(439),contains:p(7939),dependencies:p(3899),enum:p(4299),format:p(4097),if:p(2061),items:p(9240),maximum:p(9402),minimum:p(9402),maxItems:p(3792),minItems:p(3792),maxLength:p(3226),minLength:p(3226),maxProperties:p(2119),minProperties:p(2119),multipleOf:p(9095),not:p(8457),oneOf:p(7681),pattern:p(9438),properties:p(6319),propertyNames:p(6611),required:p(5051),uniqueItems:p(5329),validate:p(604)}},9240:st=>{"use strict";st.exports=function(p,U,Q){var f=" ",z=p.level,k=p.dataLevel,F=p.schema[U],V=p.schemaPath+p.util.getProperty(U),T=p.errSchemaPath+"/"+U,N=!p.opts.allErrors,R="data"+(k||""),G="valid"+z,D="errs__"+z,q=p.util.copy(p),J="";q.level++;var Z="valid"+q.level,xe="i"+z,Oe=q.dataLevel=p.dataLevel+1,Ee="data"+Oe,$e=p.baseId;if(f+="var "+D+" = errors;var "+G+";",Array.isArray(F)){var Ke=p.schema.additionalItems;if(!1===Ke){f+=" "+G+" = "+R+".length <= "+F.length+"; ";var Ie=T;T=p.errSchemaPath+"/additionalItems";var at=at||[];at.push(f+=" if (!"+G+") { "),f="",!1!==p.createErrors?(f+=" { keyword: 'additionalItems' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { limit: "+F.length+" } ",!1!==p.opts.messages&&(f+=" , message: 'should NOT have more than "+F.length+" items' "),p.opts.verbose&&(f+=" , schema: false , parentSchema: validate.schema"+p.schemaPath+" , data: "+R+" "),f+=" } "):f+=" {} ";var Xe=f;f=at.pop(),f+=!p.compositeRule&&N?p.async?" throw new ValidationError(["+Xe+"]); ":" validate.errors = ["+Xe+"]; return false; ":" var err = "+Xe+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",f+=" } ",T=Ie,N&&(J+="}",f+=" else { ")}var Ue=F;if(Ue)for(var et,Ge=-1,Te=Ue.length-1;Ge0||!1===et:p.util.schemaHasRules(et,p.RULES.all)){f+=" "+Z+" = true; if ("+R+".length > "+Ge+") { ";var le=R+"["+Ge+"]";q.schema=et,q.schemaPath=V+"["+Ge+"]",q.errSchemaPath=T+"/"+Ge,q.errorPath=p.util.getPathExpr(p.errorPath,Ge,p.opts.jsonPointers,!0),q.dataPathArr[Oe]=Ge;var Pe=p.validate(q);q.baseId=$e,p.util.varOccurences(Pe,Ee)<2?f+=" "+p.util.varReplace(Pe,Ee,le)+" ":f+=" var "+Ee+" = "+le+"; "+Pe+" ",f+=" } ",N&&(f+=" if ("+Z+") { ",J+="}")}"object"==typeof Ke&&(p.opts.strictKeywords?"object"==typeof Ke&&Object.keys(Ke).length>0||!1===Ke:p.util.schemaHasRules(Ke,p.RULES.all))&&(q.schema=Ke,q.schemaPath=p.schemaPath+".additionalItems",q.errSchemaPath=p.errSchemaPath+"/additionalItems",f+=" "+Z+" = true; if ("+R+".length > "+F.length+") { for (var "+xe+" = "+F.length+"; "+xe+" < "+R+".length; "+xe+"++) { ",q.errorPath=p.util.getPathExpr(p.errorPath,xe,p.opts.jsonPointers,!0),le=R+"["+xe+"]",q.dataPathArr[Oe]=xe,Pe=p.validate(q),q.baseId=$e,p.util.varOccurences(Pe,Ee)<2?f+=" "+p.util.varReplace(Pe,Ee,le)+" ":f+=" var "+Ee+" = "+le+"; "+Pe+" ",N&&(f+=" if (!"+Z+") break; "),f+=" } } ",N&&(f+=" if ("+Z+") { ",J+="}"))}else(p.opts.strictKeywords?"object"==typeof F&&Object.keys(F).length>0||!1===F:p.util.schemaHasRules(F,p.RULES.all))&&(q.schema=F,q.schemaPath=V,q.errSchemaPath=T,f+=" for (var "+xe+" = 0; "+xe+" < "+R+".length; "+xe+"++) { ",q.errorPath=p.util.getPathExpr(p.errorPath,xe,p.opts.jsonPointers,!0),le=R+"["+xe+"]",q.dataPathArr[Oe]=xe,Pe=p.validate(q),q.baseId=$e,p.util.varOccurences(Pe,Ee)<2?f+=" "+p.util.varReplace(Pe,Ee,le)+" ":f+=" var "+Ee+" = "+le+"; "+Pe+" ",N&&(f+=" if (!"+Z+") break; "),f+=" }");return N&&(f+=" "+J+" if ("+D+" == errors) {"),f}},9095:st=>{"use strict";st.exports=function(p,U,Q){var D,f=" ",z=p.level,k=p.dataLevel,F=p.schema[U],V=p.schemaPath+p.util.getProperty(U),T=p.errSchemaPath+"/"+U,N=!p.opts.allErrors,R="data"+(k||""),G=p.opts.$data&&F&&F.$data;if(G?(f+=" var schema"+z+" = "+p.util.getData(F.$data,k,p.dataPathArr)+"; ",D="schema"+z):D=F,!G&&"number"!=typeof F)throw new Error(U+" must be number");f+="var division"+z+";if (",G&&(f+=" "+D+" !== undefined && ( typeof "+D+" != 'number' || "),f+=" (division"+z+" = "+R+" / "+D+", ",f+=p.opts.multipleOfPrecision?" Math.abs(Math.round(division"+z+") - division"+z+") > 1e-"+p.opts.multipleOfPrecision+" ":" division"+z+" !== parseInt(division"+z+") ",f+=" ) ",G&&(f+=" ) ");var q=q||[];q.push(f+=" ) { "),f="",!1!==p.createErrors?(f+=" { keyword: 'multipleOf' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { multipleOf: "+D+" } ",!1!==p.opts.messages&&(f+=" , message: 'should be multiple of ",f+=G?"' + "+D:D+"'"),p.opts.verbose&&(f+=" , schema: ",f+=G?"validate.schema"+V:""+F,f+=" , parentSchema: validate.schema"+p.schemaPath+" , data: "+R+" "),f+=" } "):f+=" {} ";var J=f;return f=q.pop(),f+=!p.compositeRule&&N?p.async?" throw new ValidationError(["+J+"]); ":" validate.errors = ["+J+"]; return false; ":" var err = "+J+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",f+="} ",N&&(f+=" else { "),f}},8457:st=>{"use strict";st.exports=function(p,U,Q){var f=" ",z=p.level,k=p.dataLevel,F=p.schema[U],V=p.schemaPath+p.util.getProperty(U),T=p.errSchemaPath+"/"+U,N=!p.opts.allErrors,R="data"+(k||""),G="errs__"+z,D=p.util.copy(p);D.level++;var q="valid"+D.level;if(p.opts.strictKeywords?"object"==typeof F&&Object.keys(F).length>0||!1===F:p.util.schemaHasRules(F,p.RULES.all)){D.schema=F,D.schemaPath=V,D.errSchemaPath=T,f+=" var "+G+" = errors; ";var Z,J=p.compositeRule;p.compositeRule=D.compositeRule=!0,D.createErrors=!1,D.opts.allErrors&&(Z=D.opts.allErrors,D.opts.allErrors=!1),f+=" "+p.validate(D)+" ",D.createErrors=!0,Z&&(D.opts.allErrors=Z),p.compositeRule=D.compositeRule=J;var xe=xe||[];xe.push(f+=" if ("+q+") { "),f="",!1!==p.createErrors?(f+=" { keyword: 'not' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: {} ",!1!==p.opts.messages&&(f+=" , message: 'should NOT be valid' "),p.opts.verbose&&(f+=" , schema: validate.schema"+V+" , parentSchema: validate.schema"+p.schemaPath+" , data: "+R+" "),f+=" } "):f+=" {} ";var Oe=f;f=xe.pop(),f+=!p.compositeRule&&N?p.async?" throw new ValidationError(["+Oe+"]); ":" validate.errors = ["+Oe+"]; return false; ":" var err = "+Oe+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",f+=" } else { errors = "+G+"; if (vErrors !== null) { if ("+G+") vErrors.length = "+G+"; else vErrors = null; } ",p.opts.allErrors&&(f+=" } ")}else f+=" var err = ",!1!==p.createErrors?(f+=" { keyword: 'not' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: {} ",!1!==p.opts.messages&&(f+=" , message: 'should NOT be valid' "),p.opts.verbose&&(f+=" , schema: validate.schema"+V+" , parentSchema: validate.schema"+p.schemaPath+" , data: "+R+" "),f+=" } "):f+=" {} ",f+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",N&&(f+=" if (false) { ");return f}},7681:st=>{"use strict";st.exports=function(p,U,Q){var f=" ",z=p.level,k=p.dataLevel,F=p.schema[U],V=p.schemaPath+p.util.getProperty(U),T=p.errSchemaPath+"/"+U,N=!p.opts.allErrors,R="data"+(k||""),G="valid"+z,D="errs__"+z,q=p.util.copy(p),J="";q.level++;var Z="valid"+q.level,xe=q.baseId,Oe="prevValid"+z,Ee="passingSchemas"+z;f+="var "+D+" = errors , "+Oe+" = false , "+G+" = false , "+Ee+" = null; ";var $e=p.compositeRule;p.compositeRule=q.compositeRule=!0;var Ke=F;if(Ke)for(var Ie,at=-1,Xe=Ke.length-1;at0||!1===Ie:p.util.schemaHasRules(Ie,p.RULES.all))?(q.schema=Ie,q.schemaPath=V+"["+at+"]",q.errSchemaPath=T+"/"+at,f+=" "+p.validate(q)+" ",q.baseId=xe):f+=" var "+Z+" = true; ",at&&(f+=" if ("+Z+" && "+Oe+") { "+G+" = false; "+Ee+" = ["+Ee+", "+at+"]; } else { ",J+="}"),f+=" if ("+Z+") { "+G+" = "+Oe+" = true; "+Ee+" = "+at+"; }";return p.compositeRule=q.compositeRule=$e,f+=J+"if (!"+G+") { var err = ",!1!==p.createErrors?(f+=" { keyword: 'oneOf' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { passingSchemas: "+Ee+" } ",!1!==p.opts.messages&&(f+=" , message: 'should match exactly one schema in oneOf' "),p.opts.verbose&&(f+=" , schema: validate.schema"+V+" , parentSchema: validate.schema"+p.schemaPath+" , data: "+R+" "),f+=" } "):f+=" {} ",f+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!p.compositeRule&&N&&(f+=p.async?" throw new ValidationError(vErrors); ":" validate.errors = vErrors; return false; "),f+="} else { errors = "+D+"; if (vErrors !== null) { if ("+D+") vErrors.length = "+D+"; else vErrors = null; }",p.opts.allErrors&&(f+=" } "),f}},9438:st=>{"use strict";st.exports=function(p,U,Q){var D,f=" ",z=p.level,k=p.dataLevel,F=p.schema[U],V=p.schemaPath+p.util.getProperty(U),T=p.errSchemaPath+"/"+U,N=!p.opts.allErrors,R="data"+(k||""),G=p.opts.$data&&F&&F.$data;G?(f+=" var schema"+z+" = "+p.util.getData(F.$data,k,p.dataPathArr)+"; ",D="schema"+z):D=F;var q=G?"(new RegExp("+D+"))":p.usePattern(F);f+="if ( ",G&&(f+=" ("+D+" !== undefined && typeof "+D+" != 'string') || ");var J=J||[];J.push(f+=" !"+q+".test("+R+") ) { "),f="",!1!==p.createErrors?(f+=" { keyword: 'pattern' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { pattern: ",f+=G?""+D:""+p.util.toQuotedString(F),f+=" } ",!1!==p.opts.messages&&(f+=" , message: 'should match pattern \"",f+=G?"' + "+D+" + '":""+p.util.escapeQuotes(F),f+="\"' "),p.opts.verbose&&(f+=" , schema: ",f+=G?"validate.schema"+V:""+p.util.toQuotedString(F),f+=" , parentSchema: validate.schema"+p.schemaPath+" , data: "+R+" "),f+=" } "):f+=" {} ";var Z=f;return f=J.pop(),f+=!p.compositeRule&&N?p.async?" throw new ValidationError(["+Z+"]); ":" validate.errors = ["+Z+"]; return false; ":" var err = "+Z+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",f+="} ",N&&(f+=" else { "),f}},6319:st=>{"use strict";st.exports=function(p,U,Q){var f=" ",z=p.level,k=p.dataLevel,F=p.schema[U],V=p.schemaPath+p.util.getProperty(U),T=p.errSchemaPath+"/"+U,N=!p.opts.allErrors,R="data"+(k||""),G="errs__"+z,D=p.util.copy(p),q="";D.level++;var J="valid"+D.level,Z="key"+z,xe="idx"+z,Oe=D.dataLevel=p.dataLevel+1,Ee="data"+Oe,$e="dataProperties"+z,Ke=Object.keys(F||{}).filter(gt),Ie=p.schema.patternProperties||{},at=Object.keys(Ie).filter(gt),Xe=p.schema.additionalProperties,Ue=Ke.length||at.length,et=!1===Xe,Ge="object"==typeof Xe&&Object.keys(Xe).length,Te=p.opts.removeAdditional,le=et||Ge||Te,Pe=p.opts.ownProperties,Ze=p.baseId,Le=p.schema.required;if(Le&&(!p.opts.$data||!Le.$data)&&Le.length8)f+=" || validate.schema"+V+".hasOwnProperty("+Z+") ";else{var Lt=Ke;if(Lt)for(var vn=-1,Pn=Lt.length-1;vn0||!1===on:p.util.schemaHasRules(on,p.RULES.all)){var eo=p.util.getProperty(Qt),Dr=(nn=R+eo,fn&&void 0!==on.default);if(D.schema=on,D.schemaPath=V+eo,D.errSchemaPath=T+"/"+p.util.escapeFragment(Qt),D.errorPath=p.util.getPath(p.errorPath,Qt,p.opts.jsonPointers),D.dataPathArr[Oe]=p.util.toQuotedString(Qt),On=p.validate(D),D.baseId=Ze,p.util.varOccurences(On,Ee)<2){On=p.util.varReplace(On,Ee,nn);var Wi=nn}else Wi=Ee,f+=" var "+Ee+" = "+nn+"; ";if(Dr)f+=" "+On+" ";else{if(lt&<[Qt]){f+=" if ( "+Wi+" === undefined ",Pe&&(f+=" || ! Object.prototype.hasOwnProperty.call("+R+", '"+p.util.escapeQuotes(Qt)+"') "),f+=") { "+J+" = false; ",Wn=p.errorPath,St=T;var qt,pt=p.util.escapeQuotes(Qt);p.opts._errorDataPathProperty&&(p.errorPath=p.util.getPath(Wn,Qt,p.opts.jsonPointers)),T=p.errSchemaPath+"/required",(qt=qt||[]).push(f),f="",!1!==p.createErrors?(f+=" { keyword: 'required' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { missingProperty: '"+pt+"' } ",!1!==p.opts.messages&&(f+=" , message: '",f+=p.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+pt+"\\'",f+="' "),p.opts.verbose&&(f+=" , schema: validate.schema"+V+" , parentSchema: validate.schema"+p.schemaPath+" , data: "+R+" "),f+=" } "):f+=" {} ",En=f,f=qt.pop(),f+=!p.compositeRule&&N?p.async?" throw new ValidationError(["+En+"]); ":" validate.errors = ["+En+"]; return false; ":" var err = "+En+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",T=St,p.errorPath=Wn,f+=" } else { "}else N?(f+=" if ( "+Wi+" === undefined ",Pe&&(f+=" || ! Object.prototype.hasOwnProperty.call("+R+", '"+p.util.escapeQuotes(Qt)+"') "),f+=") { "+J+" = true; } else { "):(f+=" if ("+Wi+" !== undefined ",Pe&&(f+=" && Object.prototype.hasOwnProperty.call("+R+", '"+p.util.escapeQuotes(Qt)+"') "),f+=" ) { ");f+=" "+On+" } "}}N&&(f+=" if ("+J+") { ",q+="}")}}if(at.length){var fi=at;if(fi)for(var Qn,Qr=-1,zr=fi.length-1;Qr0||!1===on:p.util.schemaHasRules(on,p.RULES.all))&&(D.schema=on,D.schemaPath=p.schemaPath+".patternProperties"+p.util.getProperty(Qn),D.errSchemaPath=p.errSchemaPath+"/patternProperties/"+p.util.escapeFragment(Qn),f+=Pe?" "+$e+" = "+$e+" || Object.keys("+R+"); for (var "+xe+"=0; "+xe+"<"+$e+".length; "+xe+"++) { var "+Z+" = "+$e+"["+xe+"]; ":" for (var "+Z+" in "+R+") { ",f+=" if ("+p.usePattern(Qn)+".test("+Z+")) { ",D.errorPath=p.util.getPathExpr(p.errorPath,Z,p.opts.jsonPointers),nn=R+"["+Z+"]",D.dataPathArr[Oe]=Z,On=p.validate(D),D.baseId=Ze,p.util.varOccurences(On,Ee)<2?f+=" "+p.util.varReplace(On,Ee,nn)+" ":f+=" var "+Ee+" = "+nn+"; "+On+" ",N&&(f+=" if (!"+J+") break; "),f+=" } ",N&&(f+=" else "+J+" = true; "),f+=" } ",N&&(f+=" if ("+J+") { ",q+="}"))}return N&&(f+=" "+q+" if ("+G+" == errors) {"),f}},6611:st=>{"use strict";st.exports=function(p,U,Q){var f=" ",z=p.level,k=p.dataLevel,F=p.schema[U],V=p.schemaPath+p.util.getProperty(U),T=p.errSchemaPath+"/"+U,N=!p.opts.allErrors,R="data"+(k||""),G="errs__"+z,D=p.util.copy(p);D.level++;var J="valid"+D.level;if(f+="var "+G+" = errors;",p.opts.strictKeywords?"object"==typeof F&&Object.keys(F).length>0||!1===F:p.util.schemaHasRules(F,p.RULES.all)){D.schema=F,D.schemaPath=V,D.errSchemaPath=T;var Z="key"+z,xe="idx"+z,Oe="i"+z,Ee="' + "+Z+" + '",Ke="data"+(D.dataLevel=p.dataLevel+1),Ie="dataProperties"+z,at=p.opts.ownProperties,Xe=p.baseId;at&&(f+=" var "+Ie+" = undefined; "),f+=at?" "+Ie+" = "+Ie+" || Object.keys("+R+"); for (var "+xe+"=0; "+xe+"<"+Ie+".length; "+xe+"++) { var "+Z+" = "+Ie+"["+xe+"]; ":" for (var "+Z+" in "+R+") { ",f+=" var startErrs"+z+" = errors; ";var Ue=Z,et=p.compositeRule;p.compositeRule=D.compositeRule=!0;var Ge=p.validate(D);D.baseId=Xe,p.util.varOccurences(Ge,Ke)<2?f+=" "+p.util.varReplace(Ge,Ke,Ue)+" ":f+=" var "+Ke+" = "+Ue+"; "+Ge+" ",p.compositeRule=D.compositeRule=et,f+=" if (!"+J+") { for (var "+Oe+"=startErrs"+z+"; "+Oe+"{"use strict";st.exports=function(p,U,Q){var G,D,f=" ",k=p.dataLevel,F=p.schema[U],V=p.errSchemaPath+"/"+U,T=!p.opts.allErrors,N="data"+(k||""),R="valid"+p.level;if("#"==F||"#/"==F)p.isRoot?(G=p.async,D="validate"):(G=!0===p.root.schema.$async,D="root.refVal[0]");else{var q=p.resolveRef(p.baseId,F,p.isRoot);if(void 0===q){var J=p.MissingRefError.message(p.baseId,F);if("fail"==p.opts.missingRefs){p.logger.error(J),(Z=Z||[]).push(f),f="",!1!==p.createErrors?(f+=" { keyword: '$ref' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(V)+" , params: { ref: '"+p.util.escapeQuotes(F)+"' } ",!1!==p.opts.messages&&(f+=" , message: 'can\\'t resolve reference "+p.util.escapeQuotes(F)+"' "),p.opts.verbose&&(f+=" , schema: "+p.util.toQuotedString(F)+" , parentSchema: validate.schema"+p.schemaPath+" , data: "+N+" "),f+=" } "):f+=" {} ";var xe=f;f=Z.pop(),f+=!p.compositeRule&&T?p.async?" throw new ValidationError(["+xe+"]); ":" validate.errors = ["+xe+"]; return false; ":" var err = "+xe+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",T&&(f+=" if (false) { ")}else{if("ignore"!=p.opts.missingRefs)throw new p.MissingRefError(p.baseId,F,J);p.logger.warn(J),T&&(f+=" if (true) { ")}}else if(q.inline){var Oe=p.util.copy(p);Oe.level++;var Ee="valid"+Oe.level;Oe.schema=q.schema,Oe.schemaPath="",Oe.errSchemaPath=F,f+=" "+p.validate(Oe).replace(/validate\.schema/g,q.code)+" ",T&&(f+=" if ("+Ee+") { ")}else G=!0===q.$async||p.async&&!1!==q.$async,D=q.code}if(D){var Z;(Z=Z||[]).push(f),f="",f+=p.opts.passContext?" "+D+".call(this, ":" "+D+"( ",f+=" "+N+", (dataPath || '')",'""'!=p.errorPath&&(f+=" + "+p.errorPath);var at=f+=" , "+(k?"data"+(k-1||""):"parentData")+" , "+(k?p.dataPathArr[k]:"parentDataProperty")+", rootData) ";if(f=Z.pop(),G){if(!p.async)throw new Error("async schema referenced by sync schema");T&&(f+=" var "+R+"; "),f+=" try { await "+at+"; ",T&&(f+=" "+R+" = true; "),f+=" } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ",T&&(f+=" "+R+" = false; "),f+=" } ",T&&(f+=" if ("+R+") { ")}else f+=" if (!"+at+") { if (vErrors === null) vErrors = "+D+".errors; else vErrors = vErrors.concat("+D+".errors); errors = vErrors.length; } ",T&&(f+=" else { ")}return f}},5051:st=>{"use strict";st.exports=function(p,U,Q){var f=" ",z=p.level,k=p.dataLevel,F=p.schema[U],V=p.schemaPath+p.util.getProperty(U),T=p.errSchemaPath+"/"+U,N=!p.opts.allErrors,R="data"+(k||""),G="valid"+z,D=p.opts.$data&&F&&F.$data;D&&(f+=" var schema"+z+" = "+p.util.getData(F.$data,k,p.dataPathArr)+"; ");var J="schema"+z;if(!D)if(F.length0||!1===Ke:p.util.schemaHasRules(Ke,p.RULES.all))||(Z[Z.length]=Oe)}}else Z=F;if(D||Z.length){var Ie=p.errorPath,at=D||Z.length>=p.opts.loopRequired,Xe=p.opts.ownProperties;if(N)if(f+=" var missing"+z+"; ",at){D||(f+=" var "+J+" = validate.schema"+V+"; ");var Ge="' + "+(et="schema"+z+"["+(Ue="i"+z)+"]")+" + '";p.opts._errorDataPathProperty&&(p.errorPath=p.util.getPathExpr(Ie,et,p.opts.jsonPointers)),f+=" var "+G+" = true; ",D&&(f+=" if (schema"+z+" === undefined) "+G+" = true; else if (!Array.isArray(schema"+z+")) "+G+" = false; else {"),f+=" for (var "+Ue+" = 0; "+Ue+" < "+J+".length; "+Ue+"++) { "+G+" = "+R+"["+J+"["+Ue+"]] !== undefined ",Xe&&(f+=" && Object.prototype.hasOwnProperty.call("+R+", "+J+"["+Ue+"]) "),f+="; if (!"+G+") break; } ",D&&(f+=" } "),(Te=Te||[]).push(f+=" if (!"+G+") { "),f="",!1!==p.createErrors?(f+=" { keyword: 'required' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { missingProperty: '"+Ge+"' } ",!1!==p.opts.messages&&(f+=" , message: '",f+=p.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+Ge+"\\'",f+="' "),p.opts.verbose&&(f+=" , schema: validate.schema"+V+" , parentSchema: validate.schema"+p.schemaPath+" , data: "+R+" "),f+=" } "):f+=" {} ";var le=f;f=Te.pop(),f+=!p.compositeRule&&N?p.async?" throw new ValidationError(["+le+"]); ":" validate.errors = ["+le+"]; return false; ":" var err = "+le+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",f+=" } else { "}else{f+=" if ( ";var Te,Pe=Z;if(Pe)for(var Ue=-1,Le=Pe.length-1;Ue{"use strict";st.exports=function(p,U,Q){var q,f=" ",z=p.level,k=p.dataLevel,F=p.schema[U],V=p.schemaPath+p.util.getProperty(U),T=p.errSchemaPath+"/"+U,N=!p.opts.allErrors,R="data"+(k||""),G="valid"+z,D=p.opts.$data&&F&&F.$data;if(D?(f+=" var schema"+z+" = "+p.util.getData(F.$data,k,p.dataPathArr)+"; ",q="schema"+z):q=F,(F||D)&&!1!==p.opts.uniqueItems){D&&(f+=" var "+G+"; if ("+q+" === false || "+q+" === undefined) "+G+" = true; else if (typeof "+q+" != 'boolean') "+G+" = false; else { "),f+=" var i = "+R+".length , "+G+" = true , j; if (i > 1) { ";var J=p.schema.items&&p.schema.items.type,Z=Array.isArray(J);!J||"object"==J||"array"==J||Z&&(J.indexOf("object")>=0||J.indexOf("array")>=0)?f+=" outer: for (;i--;) { for (j = i; j--;) { if (equal("+R+"[i], "+R+"[j])) { "+G+" = false; break outer; } } } ":(f+=" var itemIndices = {}, item; for (;i--;) { var item = "+R+"[i]; ",f+=" if ("+p.util["checkDataType"+(Z?"s":"")](J,"item",p.opts.strictNumbers,!0)+") continue; ",Z&&(f+=" if (typeof item == 'string') item = '\"' + item; "),f+=" if (typeof itemIndices[item] == 'number') { "+G+" = false; j = itemIndices[item]; break; } itemIndices[item] = i; } "),f+=" } ",D&&(f+=" } ");var Oe=Oe||[];Oe.push(f+=" if (!"+G+") { "),f="",!1!==p.createErrors?(f+=" { keyword: 'uniqueItems' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { i: i, j: j } ",!1!==p.opts.messages&&(f+=" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' "),p.opts.verbose&&(f+=" , schema: ",f+=D?"validate.schema"+V:""+F,f+=" , parentSchema: validate.schema"+p.schemaPath+" , data: "+R+" "),f+=" } "):f+=" {} ";var Ee=f;f=Oe.pop(),f+=!p.compositeRule&&N?p.async?" throw new ValidationError(["+Ee+"]); ":" validate.errors = ["+Ee+"]; return false; ":" var err = "+Ee+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",f+=" } ",N&&(f+=" else { ")}else N&&(f+=" if (true) { ");return f}},604:st=>{"use strict";st.exports=function(p,U,Q){var f="",z=!0===p.schema.$async,k=p.util.schemaHasRulesExcept(p.schema,p.RULES.all,"$ref"),F=p.self._getId(p.schema);if(p.opts.strictKeywords){var V=p.util.schemaUnknownRules(p.schema,p.RULES.keywords);if(V){var T="unknown keyword: "+V;if("log"!==p.opts.strictKeywords)throw new Error(T);p.logger.warn(T)}}if(p.isTop&&(f+=" var validate = ",z&&(p.async=!0,f+="async "),f+="function(data, dataPath, parentData, parentDataProperty, rootData) { 'use strict'; ",F&&(p.opts.sourceCode||p.opts.processCode)&&(f+=" /*# sourceURL="+F+" */ ")),"boolean"==typeof p.schema||!k&&!p.schema.$ref){var N=p.level,R=p.dataLevel,G=p.schema[U="false schema"],D=p.schemaPath+p.util.getProperty(U),q=p.errSchemaPath+"/"+U,Ke=!p.opts.allErrors,J="data"+(R||""),$e="valid"+N;if(!1===p.schema){p.isTop?Ke=!0:f+=" var "+$e+" = false; ",(Z=Z||[]).push(f),f="",!1!==p.createErrors?(f+=" { keyword: 'false schema' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(q)+" , params: {} ",!1!==p.opts.messages&&(f+=" , message: 'boolean schema is false' "),p.opts.verbose&&(f+=" , schema: false , parentSchema: validate.schema"+p.schemaPath+" , data: "+J+" "),f+=" } "):f+=" {} ";var xe=f;f=Z.pop(),f+=!p.compositeRule&&Ke?p.async?" throw new ValidationError(["+xe+"]); ":" validate.errors = ["+xe+"]; return false; ":" var err = "+xe+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}else f+=p.isTop?z?" return data; ":" validate.errors = null; return true; ":" var "+$e+" = true; ";return p.isTop&&(f+=" }; return validate; "),f}if(p.isTop){var Oe=p.isTop;if(N=p.level=0,R=p.dataLevel=0,J="data",p.rootId=p.resolve.fullPath(p.self._getId(p.root.schema)),p.baseId=p.baseId||p.rootId,delete p.isTop,p.dataPathArr=[""],void 0!==p.schema.default&&p.opts.useDefaults&&p.opts.strictDefaults){var Ee="default is ignored in the schema root";if("log"!==p.opts.strictDefaults)throw new Error(Ee);p.logger.warn(Ee)}f+=" var vErrors = null; ",f+=" var errors = 0; ",f+=" if (rootData === undefined) rootData = data; "}else{if(N=p.level,J="data"+((R=p.dataLevel)||""),F&&(p.baseId=p.resolve.url(p.baseId,F)),z&&!p.async)throw new Error("async schema in sync schema");f+=" var errs_"+N+" = errors;"}$e="valid"+N,Ke=!p.opts.allErrors;var Ie="",at="",Ue=p.schema.type,et=Array.isArray(Ue);if(Ue&&p.opts.nullable&&!0===p.schema.nullable&&(et?-1==Ue.indexOf("null")&&(Ue=Ue.concat("null")):"null"!=Ue&&(Ue=[Ue,"null"],et=!0)),et&&1==Ue.length&&(Ue=Ue[0],et=!1),p.schema.$ref&&k){if("fail"==p.opts.extendRefs)throw new Error('$ref: validation keywords used in schema at path "'+p.errSchemaPath+'" (see option extendRefs)');!0!==p.opts.extendRefs&&(k=!1,p.logger.warn('$ref: keywords ignored in schema at path "'+p.errSchemaPath+'"'))}if(p.schema.$comment&&p.opts.$comment&&(f+=" "+p.RULES.all.$comment.code(p,"$comment")),Ue){if(p.opts.coerceTypes)var Ge=p.util.coerceToTypes(p.opts.coerceTypes,Ue);var Te=p.RULES.types[Ue];if(Ge||et||!0===Te||Te&&!on(Te)){if(D=p.schemaPath+".type",q=p.errSchemaPath+"/type",D=p.schemaPath+".type",q=p.errSchemaPath+"/type",f+=" if ("+p.util[et?"checkDataTypes":"checkDataType"](Ue,J,p.opts.strictNumbers,!0)+") { ",Ge){var Pe="dataType"+N,Ze="coerced"+N;f+=" var "+Pe+" = typeof "+J+"; var "+Ze+" = undefined; ","array"==p.opts.coerceTypes&&(f+=" if ("+Pe+" == 'object' && Array.isArray("+J+") && "+J+".length == 1) { "+J+" = "+J+"[0]; "+Pe+" = typeof "+J+"; if ("+p.util.checkDataType(p.schema.type,J,p.opts.strictNumbers)+") "+Ze+" = "+J+"; } "),f+=" if ("+Ze+" !== undefined) ; ";var Le=Ge;if(Le)for(var lt,gt=-1,Lt=Le.length-1;gt{"use strict";var U=/^[a-z_$][a-z0-9_$-]*$/i,Q=p(5237),f=p(8606);st.exports={add:function z(T,N){var R=this.RULES;if(R.keywords[T])throw new Error("Keyword "+T+" is already defined");if(!U.test(T))throw new Error("Keyword "+T+" is not a valid identifier");if(N){this.validateKeyword(N,!0);var G=N.type;if(Array.isArray(G))for(var D=0;D{var be={utf8:{stringToBytes:function(p){return be.bin.stringToBytes(unescape(encodeURIComponent(p)))},bytesToString:function(p){return decodeURIComponent(escape(be.bin.bytesToString(p)))}},bin:{stringToBytes:function(p){for(var U=[],Q=0;Q{const U=p(4605),Q={};for(const k of Object.keys(U))Q[U[k]]=k;const f={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};st.exports=f;for(const k of Object.keys(f)){if(!("channels"in f[k]))throw new Error("missing channels property: "+k);if(!("labels"in f[k]))throw new Error("missing channel labels property: "+k);if(f[k].labels.length!==f[k].channels)throw new Error("channel and label counts mismatch: "+k);const{channels:F,labels:V}=f[k];delete f[k].channels,delete f[k].labels,Object.defineProperty(f[k],"channels",{value:F}),Object.defineProperty(f[k],"labels",{value:V})}function z(k,F){return(k[0]-F[0])**2+(k[1]-F[1])**2+(k[2]-F[2])**2}f.rgb.hsl=function(k){const F=k[0]/255,V=k[1]/255,T=k[2]/255,N=Math.min(F,V,T),R=Math.max(F,V,T),G=R-N;let D,q;R===N?D=0:F===R?D=(V-T)/G:V===R?D=2+(T-F)/G:T===R&&(D=4+(F-V)/G),D=Math.min(60*D,360),D<0&&(D+=360);const J=(N+R)/2;return q=R===N?0:J<=.5?G/(R+N):G/(2-R-N),[D,100*q,100*J]},f.rgb.hsv=function(k){let F,V,T,N,R;const G=k[0]/255,D=k[1]/255,q=k[2]/255,J=Math.max(G,D,q),Z=J-Math.min(G,D,q),xe=function(Oe){return(J-Oe)/6/Z+.5};return 0===Z?(N=0,R=0):(R=Z/J,F=xe(G),V=xe(D),T=xe(q),G===J?N=T-V:D===J?N=1/3+F-T:q===J&&(N=2/3+V-F),N<0?N+=1:N>1&&(N-=1)),[360*N,100*R,100*J]},f.rgb.hwb=function(k){const F=k[0],V=k[1];let T=k[2];const N=f.rgb.hsl(k)[0],R=1/255*Math.min(F,Math.min(V,T));return T=1-1/255*Math.max(F,Math.max(V,T)),[N,100*R,100*T]},f.rgb.cmyk=function(k){const F=k[0]/255,V=k[1]/255,T=k[2]/255,N=Math.min(1-F,1-V,1-T);return[100*((1-F-N)/(1-N)||0),100*((1-V-N)/(1-N)||0),100*((1-T-N)/(1-N)||0),100*N]},f.rgb.keyword=function(k){const F=Q[k];if(F)return F;let T,V=1/0;for(const N of Object.keys(U)){const G=z(k,U[N]);G.04045?((F+.055)/1.055)**2.4:F/12.92,V=V>.04045?((V+.055)/1.055)**2.4:V/12.92,T=T>.04045?((T+.055)/1.055)**2.4:T/12.92,[100*(.4124*F+.3576*V+.1805*T),100*(.2126*F+.7152*V+.0722*T),100*(.0193*F+.1192*V+.9505*T)]},f.rgb.lab=function(k){const F=f.rgb.xyz(k);let V=F[0],T=F[1],N=F[2];return V/=95.047,T/=100,N/=108.883,V=V>.008856?V**(1/3):7.787*V+16/116,T=T>.008856?T**(1/3):7.787*T+16/116,N=N>.008856?N**(1/3):7.787*N+16/116,[116*T-16,500*(V-T),200*(T-N)]},f.hsl.rgb=function(k){const F=k[0]/360,V=k[1]/100,T=k[2]/100;let N,R,G;if(0===V)return G=255*T,[G,G,G];N=T<.5?T*(1+V):T+V-T*V;const D=2*T-N,q=[0,0,0];for(let J=0;J<3;J++)R=F+1/3*-(J-1),R<0&&R++,R>1&&R--,G=6*R<1?D+6*(N-D)*R:2*R<1?N:3*R<2?D+(N-D)*(2/3-R)*6:D,q[J]=255*G;return q},f.hsl.hsv=function(k){const F=k[0];let V=k[1]/100,T=k[2]/100,N=V;const R=Math.max(T,.01);return T*=2,V*=T<=1?T:2-T,N*=R<=1?R:2-R,[F,100*(0===T?2*N/(R+N):2*V/(T+V)),(T+V)/2*100]},f.hsv.rgb=function(k){const F=k[0]/60,V=k[1]/100;let T=k[2]/100;const N=Math.floor(F)%6,R=F-Math.floor(F),G=255*T*(1-V),D=255*T*(1-V*R),q=255*T*(1-V*(1-R));switch(T*=255,N){case 0:return[T,q,G];case 1:return[D,T,G];case 2:return[G,T,q];case 3:return[G,D,T];case 4:return[q,G,T];case 5:return[T,G,D]}},f.hsv.hsl=function(k){const F=k[0],V=k[1]/100,T=k[2]/100,N=Math.max(T,.01);let R,G;G=(2-V)*T;const D=(2-V)*N;return R=V*N,R/=D<=1?D:2-D,R=R||0,G/=2,[F,100*R,100*G]},f.hwb.rgb=function(k){const F=k[0]/360;let V=k[1]/100,T=k[2]/100;const N=V+T;let R;N>1&&(V/=N,T/=N);const G=Math.floor(6*F),D=1-T;R=6*F-G,1&G&&(R=1-R);const q=V+R*(D-V);let J,Z,xe;switch(G){default:case 6:case 0:J=D,Z=q,xe=V;break;case 1:J=q,Z=D,xe=V;break;case 2:J=V,Z=D,xe=q;break;case 3:J=V,Z=q,xe=D;break;case 4:J=q,Z=V,xe=D;break;case 5:J=D,Z=V,xe=q}return[255*J,255*Z,255*xe]},f.cmyk.rgb=function(k){const V=k[1]/100,T=k[2]/100,N=k[3]/100;return[255*(1-Math.min(1,k[0]/100*(1-N)+N)),255*(1-Math.min(1,V*(1-N)+N)),255*(1-Math.min(1,T*(1-N)+N))]},f.xyz.rgb=function(k){const F=k[0]/100,V=k[1]/100,T=k[2]/100;let N,R,G;return N=3.2406*F+-1.5372*V+-.4986*T,R=-.9689*F+1.8758*V+.0415*T,G=.0557*F+-.204*V+1.057*T,N=N>.0031308?1.055*N**(1/2.4)-.055:12.92*N,R=R>.0031308?1.055*R**(1/2.4)-.055:12.92*R,G=G>.0031308?1.055*G**(1/2.4)-.055:12.92*G,N=Math.min(Math.max(0,N),1),R=Math.min(Math.max(0,R),1),G=Math.min(Math.max(0,G),1),[255*N,255*R,255*G]},f.xyz.lab=function(k){let F=k[0],V=k[1],T=k[2];return F/=95.047,V/=100,T/=108.883,F=F>.008856?F**(1/3):7.787*F+16/116,V=V>.008856?V**(1/3):7.787*V+16/116,T=T>.008856?T**(1/3):7.787*T+16/116,[116*V-16,500*(F-V),200*(V-T)]},f.lab.xyz=function(k){let N,R,G;R=(k[0]+16)/116,N=k[1]/500+R,G=R-k[2]/200;const D=R**3,q=N**3,J=G**3;return R=D>.008856?D:(R-16/116)/7.787,N=q>.008856?q:(N-16/116)/7.787,G=J>.008856?J:(G-16/116)/7.787,N*=95.047,R*=100,G*=108.883,[N,R,G]},f.lab.lch=function(k){const F=k[0],V=k[1],T=k[2];let N;return N=360*Math.atan2(T,V)/2/Math.PI,N<0&&(N+=360),[F,Math.sqrt(V*V+T*T),N]},f.lch.lab=function(k){const V=k[1],N=k[2]/360*2*Math.PI;return[k[0],V*Math.cos(N),V*Math.sin(N)]},f.rgb.ansi16=function(k,F=null){const[V,T,N]=k;let R=null===F?f.rgb.hsv(k)[2]:F;if(R=Math.round(R/50),0===R)return 30;let G=30+(Math.round(N/255)<<2|Math.round(T/255)<<1|Math.round(V/255));return 2===R&&(G+=60),G},f.hsv.ansi16=function(k){return f.rgb.ansi16(f.hsv.rgb(k),k[2])},f.rgb.ansi256=function(k){const F=k[0],V=k[1],T=k[2];return F===V&&V===T?F<8?16:F>248?231:Math.round((F-8)/247*24)+232:16+36*Math.round(F/255*5)+6*Math.round(V/255*5)+Math.round(T/255*5)},f.ansi16.rgb=function(k){let F=k%10;if(0===F||7===F)return k>50&&(F+=3.5),F=F/10.5*255,[F,F,F];const V=.5*(1+~~(k>50));return[(1&F)*V*255,(F>>1&1)*V*255,(F>>2&1)*V*255]},f.ansi256.rgb=function(k){if(k>=232){const R=10*(k-232)+8;return[R,R,R]}let F;return k-=16,[Math.floor(k/36)/5*255,Math.floor((F=k%36)/6)/5*255,F%6/5*255]},f.rgb.hex=function(k){const V=(((255&Math.round(k[0]))<<16)+((255&Math.round(k[1]))<<8)+(255&Math.round(k[2]))).toString(16).toUpperCase();return"000000".substring(V.length)+V},f.hex.rgb=function(k){const F=k.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!F)return[0,0,0];let V=F[0];3===F[0].length&&(V=V.split("").map(D=>D+D).join(""));const T=parseInt(V,16);return[T>>16&255,T>>8&255,255&T]},f.rgb.hcg=function(k){const F=k[0]/255,V=k[1]/255,T=k[2]/255,N=Math.max(Math.max(F,V),T),R=Math.min(Math.min(F,V),T),G=N-R;let D,q;return D=G<1?R/(1-G):0,q=G<=0?0:N===F?(V-T)/G%6:N===V?2+(T-F)/G:4+(F-V)/G,q/=6,q%=1,[360*q,100*G,100*D]},f.hsl.hcg=function(k){const F=k[1]/100,V=k[2]/100,T=V<.5?2*F*V:2*F*(1-V);let N=0;return T<1&&(N=(V-.5*T)/(1-T)),[k[0],100*T,100*N]},f.hsv.hcg=function(k){const V=k[2]/100,T=k[1]/100*V;let N=0;return T<1&&(N=(V-T)/(1-T)),[k[0],100*T,100*N]},f.hcg.rgb=function(k){const V=k[1]/100,T=k[2]/100;if(0===V)return[255*T,255*T,255*T];const N=[0,0,0],R=k[0]/360%1*6,G=R%1,D=1-G;let q=0;switch(Math.floor(R)){case 0:N[0]=1,N[1]=G,N[2]=0;break;case 1:N[0]=D,N[1]=1,N[2]=0;break;case 2:N[0]=0,N[1]=1,N[2]=G;break;case 3:N[0]=0,N[1]=D,N[2]=1;break;case 4:N[0]=G,N[1]=0,N[2]=1;break;default:N[0]=1,N[1]=0,N[2]=D}return q=(1-V)*T,[255*(V*N[0]+q),255*(V*N[1]+q),255*(V*N[2]+q)]},f.hcg.hsv=function(k){const F=k[1]/100,T=F+k[2]/100*(1-F);let N=0;return T>0&&(N=F/T),[k[0],100*N,100*T]},f.hcg.hsl=function(k){const F=k[1]/100,T=k[2]/100*(1-F)+.5*F;let N=0;return T>0&&T<.5?N=F/(2*T):T>=.5&&T<1&&(N=F/(2*(1-T))),[k[0],100*N,100*T]},f.hcg.hwb=function(k){const F=k[1]/100,T=F+k[2]/100*(1-F);return[k[0],100*(T-F),100*(1-T)]},f.hwb.hcg=function(k){const T=1-k[2]/100,N=T-k[1]/100;let R=0;return N<1&&(R=(T-N)/(1-N)),[k[0],100*N,100*R]},f.apple.rgb=function(k){return[k[0]/65535*255,k[1]/65535*255,k[2]/65535*255]},f.rgb.apple=function(k){return[k[0]/255*65535,k[1]/255*65535,k[2]/255*65535]},f.gray.rgb=function(k){return[k[0]/100*255,k[0]/100*255,k[0]/100*255]},f.gray.hsl=function(k){return[0,0,k[0]]},f.gray.hsv=f.gray.hsl,f.gray.hwb=function(k){return[0,100,k[0]]},f.gray.cmyk=function(k){return[0,0,0,k[0]]},f.gray.lab=function(k){return[k[0],0,0]},f.gray.hex=function(k){const F=255&Math.round(k[0]/100*255),T=((F<<16)+(F<<8)+F).toString(16).toUpperCase();return"000000".substring(T.length)+T},f.rgb.gray=function(k){return[(k[0]+k[1]+k[2])/3/255*100]}},3205:(st,be,p)=>{const U=p(2348),Q=p(8236),f={};Object.keys(U).forEach(V=>{f[V]={},Object.defineProperty(f[V],"channels",{value:U[V].channels}),Object.defineProperty(f[V],"labels",{value:U[V].labels});const T=Q(V);Object.keys(T).forEach(R=>{const G=T[R];f[V][R]=function F(V){const T=function(...N){const R=N[0];if(null==R)return R;R.length>1&&(N=R);const G=V(N);if("object"==typeof G)for(let D=G.length,q=0;q1&&(N=R),V(N))};return"conversion"in V&&(T.conversion=V.conversion),T}(G)})}),st.exports=f},8236:(st,be,p)=>{const U=p(2348);function z(F,V){return function(T){return V(F(T))}}function k(F,V){const T=[V[F].parent,F];let N=U[V[F].parent][F],R=V[F].parent;for(;V[R].parent;)T.unshift(V[R].parent),N=z(U[V[R].parent][R],N),R=V[R].parent;return N.conversion=T,N}st.exports=function(F){const V=function f(F){const V=function Q(){const F={},V=Object.keys(U);for(let T=V.length,N=0;N{"use strict";st.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},9928:st=>{var be,p;be="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",st.exports=p={rotl:function(U,Q){return U<>>32-Q},rotr:function(U,Q){return U<<32-Q|U>>>Q},endian:function(U){if(U.constructor==Number)return 16711935&p.rotl(U,8)|4278255360&p.rotl(U,24);for(var Q=0;Q0;U--)Q.push(Math.floor(256*Math.random()));return Q},bytesToWords:function(U){for(var Q=[],f=0,z=0;f>>5]|=U[f]<<24-z%32;return Q},wordsToBytes:function(U){for(var Q=[],f=0;f<32*U.length;f+=8)Q.push(U[f>>>5]>>>24-f%32&255);return Q},bytesToHex:function(U){for(var Q=[],f=0;f>>4).toString(16)),Q.push((15&U[f]).toString(16));return Q.join("")},hexToBytes:function(U){for(var Q=[],f=0;f>>6*(3-k)&63):"=");return Q.join("")},base64ToBytes:function(U){U=U.replace(/[^A-Z0-9+\/]/gi,"");for(var Q=[],f=0,z=0;f>>6-2*z);return Q}}},243:st=>{"use strict";var be={single_source_shortest_paths:function(p,U,Q){var f={},z={};z[U]=0;var F,V,T,N,R,D,k=be.PriorityQueue.make();for(k.push(U,0);!k.empty();)for(T in N=(F=k.pop()).cost,R=p[V=F.value]||{})R.hasOwnProperty(T)&&(D=N+R[T],(typeof z[T]>"u"||z[T]>D)&&(z[T]=D,k.push(T,D),f[T]=V));if(typeof Q<"u"&&typeof z[Q]>"u"){var Z=["Could not find a path from ",U," to ",Q,"."].join("");throw new Error(Z)}return f},extract_shortest_path_from_predecessor_list:function(p,U){for(var Q=[],f=U;f;)Q.push(f),f=p[f];return Q.reverse(),Q},find_path:function(p,U,Q){var f=be.single_source_shortest_paths(p,U,Q);return be.extract_shortest_path_from_predecessor_list(f,Q)},PriorityQueue:{make:function(p){var f,U=be.PriorityQueue,Q={};for(f in p=p||{},U)U.hasOwnProperty(f)&&(Q[f]=U[f]);return Q.queue=[],Q.sorter=p.sorter||U.default_sorter,Q},default_sorter:function(p,U){return p.cost-U.cost},push:function(p,U){this.queue.push({value:p,cost:U}),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return 0===this.queue.length}}};st.exports=be},3174:st=>{"use strict";st.exports=function(p){for(var U=[],Q=p.length,f=0;f=55296&&z<=56319&&Q>f+1){var k=p.charCodeAt(f+1);k>=56320&&k<=57343&&(z=1024*(z-55296)+k-56320+65536,f+=1)}z<128?U.push(z):z<2048?(U.push(z>>6|192),U.push(63&z|128)):z<55296||z>=57344&&z<65536?(U.push(z>>12|224),U.push(z>>6&63|128),U.push(63&z|128)):z>=65536&&z<=1114111?(U.push(z>>18|240),U.push(z>>12&63|128),U.push(z>>6&63|128),U.push(63&z|128)):U.push(239,191,189)}return new Uint8Array(U).buffer}},362:st=>{"use strict";st.exports=function be(p,U){if(p===U)return!0;if(p&&U&&"object"==typeof p&&"object"==typeof U){if(p.constructor!==U.constructor)return!1;var Q,f,z;if(Array.isArray(p)){if((Q=p.length)!=U.length)return!1;for(f=Q;0!=f--;)if(!be(p[f],U[f]))return!1;return!0}if(p.constructor===RegExp)return p.source===U.source&&p.flags===U.flags;if(p.valueOf!==Object.prototype.valueOf)return p.valueOf()===U.valueOf();if(p.toString!==Object.prototype.toString)return p.toString()===U.toString();if((Q=(z=Object.keys(p)).length)!==Object.keys(U).length)return!1;for(f=Q;0!=f--;)if(!Object.prototype.hasOwnProperty.call(U,z[f]))return!1;for(f=Q;0!=f--;){var k=z[f];if(!be(p[k],U[k]))return!1}return!0}return p!=p&&U!=U}},8861:st=>{"use strict";st.exports=function(be,p){p||(p={}),"function"==typeof p&&(p={cmp:p});var U="boolean"==typeof p.cycles&&p.cycles,Q=p.cmp&&function(z){return function(k){return function(F,V){return z({key:F,value:k[F]},{key:V,value:k[V]})}}}(p.cmp),f=[];return function z(k){if(k&&k.toJSON&&"function"==typeof k.toJSON&&(k=k.toJSON()),void 0!==k){if("number"==typeof k)return isFinite(k)?""+k:"null";if("object"!=typeof k)return JSON.stringify(k);var F,V;if(Array.isArray(k)){for(V="[",F=0;F0&&L[L.length-1])&&(6===Ve[0]||2===Ve[0])){y=0;continue}if(3===Ve[0]&&(!L||Ve[1]>L[0]&&Ve[1]=55296&&E<=56319&&y<_){var L=b.charCodeAt(y++);56320==(64512&L)?g.push(((1023&E)<<10)+(1023&L)+65536):(g.push(E),y--)}else g.push(E)}return g},N=function(){for(var b=[],g=0;g>10),K%1024+56320),(E+1===y||_.length>16384)&&(L+=String.fromCharCode.apply(String,_),_.length=0)}return L},R="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",G=typeof Uint8Array>"u"?[]:new Uint8Array(256),D=0;D<64;D++)G[R.charCodeAt(D)]=D;for(var q="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",J=typeof Uint8Array>"u"?[]:new Uint8Array(256),Z=0;Z<64;Z++)J[q.charCodeAt(Z)]=Z;for(var Lt=function(b,g,y){return b.slice?b.slice(g,y):new Uint16Array(Array.prototype.slice.call(b,g,y))},Pn=function(){function b(g,y,_,E,L,K){this.initialValue=g,this.errorValue=y,this.highStart=_,this.highValueIndex=E,this.index=L,this.data=K}return b.prototype.get=function(g){var y;if(g>=0){if(g<55296||g>56319&&g<=65535)return this.data[y=((y=this.index[g>>5])<<2)+(31&g)];if(g<=65535)return this.data[y=((y=this.index[2048+(g-55296>>5)])<<2)+(31&g)];if(g>11)],this.data[y=((y=this.index[y+=g>>5&63])<<2)+(31&g)];if(g<=1114111)return this.data[this.highValueIndex]}return this.errorValue},b}(),Kn="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Qn=typeof Uint8Array>"u"?[]:new Uint8Array(256),Ai=0;Ai<64;Ai++)Qn[Kn.charCodeAt(Ai)]=Ai;var y,_,E,K,ce,Si=10,on=13,Dr=15,pt=17,fi=18,Qr=19,zr=20,Os=21,Xo=22,ll=24,lo=25,Js=26,ud=27,Vl=28,Na=30,cl=32,fc=33,Bm=34,mu=35,mc=37,cs=38,Rm=39,hd=40,pu=42,f_=[9001,65288],Yt="\xd7",De=(y=function(b){var _,L,K,ce,se,g=.75*b.length,y=b.length,E=0;"="===b[b.length-1]&&(g--,"="===b[b.length-2]&&g--);var Ve=typeof ArrayBuffer<"u"&&typeof Uint8Array<"u"&&typeof Uint8Array.prototype.slice<"u"?new ArrayBuffer(g):new Array(g),je=Array.isArray(Ve)?Ve:new Uint8Array(Ve);for(_=0;_>4,je[E++]=(15&K)<<4|ce>>2,je[E++]=(3&ce)<<6|63&se;return Ve}("KwAAAAAAAAAACA4AUD0AADAgAAACAAAAAAAIABAAGABAAEgAUABYAGAAaABgAGgAYgBqAF8AZwBgAGgAcQB5AHUAfQCFAI0AlQCdAKIAqgCyALoAYABoAGAAaABgAGgAwgDKAGAAaADGAM4A0wDbAOEA6QDxAPkAAQEJAQ8BFwF1AH0AHAEkASwBNAE6AUIBQQFJAVEBWQFhAWgBcAF4ATAAgAGGAY4BlQGXAZ8BpwGvAbUBvQHFAc0B0wHbAeMB6wHxAfkBAQIJAvEBEQIZAiECKQIxAjgCQAJGAk4CVgJeAmQCbAJ0AnwCgQKJApECmQKgAqgCsAK4ArwCxAIwAMwC0wLbAjAA4wLrAvMC+AIAAwcDDwMwABcDHQMlAy0DNQN1AD0DQQNJA0kDSQNRA1EDVwNZA1kDdQB1AGEDdQBpA20DdQN1AHsDdQCBA4kDkQN1AHUAmQOhA3UAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AKYDrgN1AHUAtgO+A8YDzgPWAxcD3gPjA+sD8wN1AHUA+wMDBAkEdQANBBUEHQQlBCoEFwMyBDgEYABABBcDSARQBFgEYARoBDAAcAQzAXgEgASIBJAEdQCXBHUAnwSnBK4EtgS6BMIEyAR1AHUAdQB1AHUAdQCVANAEYABgAGAAYABgAGAAYABgANgEYADcBOQEYADsBPQE/AQEBQwFFAUcBSQFLAU0BWQEPAVEBUsFUwVbBWAAYgVgAGoFcgV6BYIFigWRBWAAmQWfBaYFYABgAGAAYABgAKoFYACxBbAFuQW6BcEFwQXHBcEFwQXPBdMF2wXjBeoF8gX6BQIGCgYSBhoGIgYqBjIGOgZgAD4GRgZMBmAAUwZaBmAAYABgAGAAYABgAGAAYABgAGAAYABgAGIGYABpBnAGYABgAGAAYABgAGAAYABgAGAAYAB4Bn8GhQZgAGAAYAB1AHcDFQSLBmAAYABgAJMGdQA9A3UAmwajBqsGqwaVALMGuwbDBjAAywbSBtIG1QbSBtIG0gbSBtIG0gbdBuMG6wbzBvsGAwcLBxMHAwcbByMHJwcsBywHMQcsB9IGOAdAB0gHTgfSBkgHVgfSBtIG0gbSBtIG0gbSBtIG0gbSBiwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdgAGAALAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdbB2MHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB2kH0gZwB64EdQB1AHUAdQB1AHUAdQB1AHUHfQdgAIUHjQd1AHUAlQedB2AAYAClB6sHYACzB7YHvgfGB3UAzgfWBzMB3gfmB1EB7gf1B/0HlQENAQUIDQh1ABUIHQglCBcDLQg1CD0IRQhNCEEDUwh1AHUAdQBbCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIcAh3CHoIMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIgggwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAALAcsBywHLAcsBywHLAcsBywHLAcsB4oILAcsB44I0gaWCJ4Ipgh1AHUAqgiyCHUAdQB1AHUAdQB1AHUAdQB1AHUAtwh8AXUAvwh1AMUIyQjRCNkI4AjoCHUAdQB1AO4I9gj+CAYJDgkTCS0HGwkjCYIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiAAIAAAAFAAYABgAGIAXwBgAHEAdQBFAJUAogCyAKAAYABgAEIA4ABGANMA4QDxAMEBDwE1AFwBLAE6AQEBUQF4QkhCmEKoQrhCgAHIQsAB0MLAAcABwAHAAeDC6ABoAHDCwMMAAcABwAHAAdDDGMMAAcAB6MM4wwjDWMNow3jDaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAEjDqABWw6bDqABpg6gAaABoAHcDvwOPA+gAaABfA/8DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DpcPAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcAB9cPKwkyCToJMAB1AHUAdQBCCUoJTQl1AFUJXAljCWcJawkwADAAMAAwAHMJdQB2CX4JdQCECYoJjgmWCXUAngkwAGAAYABxAHUApgn3A64JtAl1ALkJdQDACTAAMAAwADAAdQB1AHUAdQB1AHUAdQB1AHUAowYNBMUIMAAwADAAMADICcsJ0wnZCRUE4QkwAOkJ8An4CTAAMAB1AAAKvwh1AAgKDwoXCh8KdQAwACcKLgp1ADYKqAmICT4KRgowADAAdQB1AE4KMAB1AFYKdQBeCnUAZQowADAAMAAwADAAMAAwADAAMAAVBHUAbQowADAAdQC5CXUKMAAwAHwBxAijBogEMgF9CoQKiASMCpQKmgqIBKIKqgquCogEDQG2Cr4KxgrLCjAAMADTCtsKCgHjCusK8Qr5CgELMAAwADAAMAB1AIsECQsRC3UANAEZCzAAMAAwADAAMAB1ACELKQswAHUANAExCzkLdQBBC0kLMABRC1kLMAAwADAAMAAwADAAdQBhCzAAMAAwAGAAYABpC3ELdwt/CzAAMACHC4sLkwubC58Lpwt1AK4Ltgt1APsDMAAwADAAMAAwADAAMAAwAL4LwwvLC9IL1wvdCzAAMADlC+kL8Qv5C/8LSQswADAAMAAwADAAMAAwADAAMAAHDDAAMAAwADAAMAAODBYMHgx1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1ACYMMAAwADAAdQB1AHUALgx1AHUAdQB1AHUAdQA2DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AD4MdQBGDHUAdQB1AHUAdQB1AEkMdQB1AHUAdQB1AFAMMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQBYDHUAdQB1AF8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUA+wMVBGcMMAAwAHwBbwx1AHcMfwyHDI8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAYABgAJcMMAAwADAAdQB1AJ8MlQClDDAAMACtDCwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB7UMLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AA0EMAC9DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAsBywHLAcsBywHLAcsBywHLQcwAMEMyAwsBywHLAcsBywHLAcsBywHLAcsBywHzAwwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1ANQM2QzhDDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMABgAGAAYABgAGAAYABgAOkMYADxDGAA+AwADQYNYABhCWAAYAAODTAAMAAwADAAFg1gAGAAHg37AzAAMAAwADAAYABgACYNYAAsDTQNPA1gAEMNPg1LDWAAYABgAGAAYABgAGAAYABgAGAAUg1aDYsGVglhDV0NcQBnDW0NdQ15DWAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAlQCBDZUAiA2PDZcNMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAnw2nDTAAMAAwADAAMAAwAHUArw23DTAAMAAwADAAMAAwADAAMAAwADAAMAB1AL8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQDHDTAAYABgAM8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA1w11ANwNMAAwAD0B5A0wADAAMAAwADAAMADsDfQN/A0EDgwOFA4wABsOMAAwADAAMAAwADAAMAAwANIG0gbSBtIG0gbSBtIG0gYjDigOwQUuDsEFMw7SBjoO0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGQg5KDlIOVg7SBtIGXg5lDm0OdQ7SBtIGfQ6EDooOjQ6UDtIGmg6hDtIG0gaoDqwO0ga0DrwO0gZgAGAAYADEDmAAYAAkBtIGzA5gANIOYADaDokO0gbSBt8O5w7SBu8O0gb1DvwO0gZgAGAAxA7SBtIG0gbSBtIGYABgAGAAYAAED2AAsAUMD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHJA8sBywHLAcsBywHLAccDywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywPLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAc0D9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHPA/SBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gYUD0QPlQCVAJUAMAAwADAAMACVAJUAlQCVAJUAlQCVAEwPMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA//8EAAQABAAEAAQABAAEAAQABAANAAMAAQABAAIABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQACgATABcAHgAbABoAHgAXABYAEgAeABsAGAAPABgAHABLAEsASwBLAEsASwBLAEsASwBLABgAGAAeAB4AHgATAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABYAGwASAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWAA0AEQAeAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAFAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJABYAGgAbABsAGwAeAB0AHQAeAE8AFwAeAA0AHgAeABoAGwBPAE8ADgBQAB0AHQAdAE8ATwAXAE8ATwBPABYAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAFAATwBAAE8ATwBPAEAATwBQAFAATwBQAB4AHgAeAB4AHgAeAB0AHQAdAB0AHgAdAB4ADgBQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgBQAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAkACQAJAAkACQAJAAkABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAFAAHgAeAB4AKwArAFAAUABQAFAAGABQACsAKwArACsAHgAeAFAAHgBQAFAAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUAAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAYAA0AKwArAB4AHgAbACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAB4ABAAEAB4ABAAEABMABAArACsAKwArACsAKwArACsAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAKwArACsAKwBWAFYAVgBWAB4AHgArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AGgAaABoAGAAYAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQAEwAEACsAEwATAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABLAEsASwBLAEsASwBLAEsASwBLABoAGQAZAB4AUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABMAUAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABABQAFAABAAEAB4ABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUAAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAFAABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQAUABQAB4AHgAYABMAUAArACsABAAbABsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAFAABAAEAAQABAAEAFAABAAEAAQAUAAEAAQABAAEAAQAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArACsAHgArAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAUAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEAA0ADQBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUAArACsAKwBQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABABQACsAKwArACsAKwArACsAKwAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUAAaABoAUABQAFAAUABQAEwAHgAbAFAAHgAEACsAKwAEAAQABAArAFAAUABQAFAAUABQACsAKwArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQACsAUABQACsAKwAEACsABAAEAAQABAAEACsAKwArACsABAAEACsAKwAEAAQABAArACsAKwAEACsAKwArACsAKwArACsAUABQAFAAUAArAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLAAQABABQAFAAUAAEAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAArACsAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AGwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAKwArACsAKwArAAQABAAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAAQAUAArAFAAUABQAFAAUABQACsAKwArAFAAUABQACsAUABQAFAAUAArACsAKwBQAFAAKwBQACsAUABQACsAKwArAFAAUAArACsAKwBQAFAAUAArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArAAQABAAEAAQABAArACsAKwAEAAQABAArAAQABAAEAAQAKwArAFAAKwArACsAKwArACsABAArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAHgAeAB4AHgAeAB4AGwAeACsAKwArACsAKwAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAUABQAFAAKwArACsAKwArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwAOAFAAUABQAFAAUABQAFAAHgBQAAQABAAEAA4AUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAKwArAAQAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAKwArACsAKwArACsAUAArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABABQAB4AKwArACsAKwBQAFAAUAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQABoAUABQAFAAUABQAFAAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQACsAUAArACsAUABQAFAAUABQAFAAUAArACsAKwAEACsAKwArACsABAAEAAQABAAEAAQAKwAEACsABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArAAQABAAeACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAXAAqACoAKgAqACoAKgAqACsAKwArACsAGwBcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAeAEsASwBLAEsASwBLAEsASwBLAEsADQANACsAKwArACsAKwBcAFwAKwBcACsAXABcAFwAXABcACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAXAArAFwAXABcAFwAXABcAFwAXABcAFwAKgBcAFwAKgAqACoAKgAqACoAKgAqACoAXAArACsAXABcAFwAXABcACsAXAArACoAKgAqACoAKgAqACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwBcAFwAXABcAFAADgAOAA4ADgAeAA4ADgAJAA4ADgANAAkAEwATABMAEwATAAkAHgATAB4AHgAeAAQABAAeAB4AHgAeAB4AHgBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQAFAADQAEAB4ABAAeAAQAFgARABYAEQAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAAQABAAEAAQADQAEAAQAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAA0ADQAeAB4AHgAeAB4AHgAEAB4AHgAeAB4AHgAeACsAHgAeAA4ADgANAA4AHgAeAB4AHgAeAAkACQArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgBcAEsASwBLAEsASwBLAEsASwBLAEsADQANAB4AHgAeAB4AXABcAFwAXABcAFwAKgAqACoAKgBcAFwAXABcACoAKgAqAFwAKgAqACoAXABcACoAKgAqACoAKgAqACoAXABcAFwAKgAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqAFwAKgBLAEsASwBLAEsASwBLAEsASwBLACoAKgAqACoAKgAqAFAAUABQAFAAUABQACsAUAArACsAKwArACsAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAKwBQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsABAAEAAQAHgANAB4AHgAeAB4AHgAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUAArACsADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWABEAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQANAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAANAA0AKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUAArAAQABAArACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqAA0ADQAVAFwADQAeAA0AGwBcACoAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwAeAB4AEwATAA0ADQAOAB4AEwATAB4ABAAEAAQACQArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAHgArACsAKwATABMASwBLAEsASwBLAEsASwBLAEsASwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAXABcAFwAXABcACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAXAArACsAKwAqACoAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsAHgAeAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKwAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKwArAAQASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACoAKgAqACoAKgAqACoAXAAqACoAKgAqACoAKgArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABABQAFAAUABQAFAAUABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwANAA0AHgANAA0ADQANAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwAeAB4AHgAeAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArAA0ADQANAA0ADQBLAEsASwBLAEsASwBLAEsASwBLACsAKwArAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUAAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAAQAUABQAFAAUABQAFAABABQAFAABAAEAAQAUAArACsAKwArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQACsAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAFAAUABQACsAHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQACsAKwAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQACsAHgAeAB4AHgAeAB4AHgAOAB4AKwANAA0ADQANAA0ADQANAAkADQANAA0ACAAEAAsABAAEAA0ACQANAA0ADAAdAB0AHgAXABcAFgAXABcAFwAWABcAHQAdAB4AHgAUABQAFAANAAEAAQAEAAQABAAEAAQACQAaABoAGgAaABoAGgAaABoAHgAXABcAHQAVABUAHgAeAB4AHgAeAB4AGAAWABEAFQAVABUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ADQAeAA0ADQANAA0AHgANAA0ADQAHAB4AHgAeAB4AKwAEAAQABAAEAAQABAAEAAQABAAEAFAAUAArACsATwBQAFAAUABQAFAAHgAeAB4AFgARAE8AUABPAE8ATwBPAFAAUABQAFAAUAAeAB4AHgAWABEAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArABsAGwAbABsAGwAbABsAGgAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGgAbABsAGwAbABoAGwAbABoAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAHgAeAFAAGgAeAB0AHgBQAB4AGgAeAB4AHgAeAB4AHgAeAB4AHgBPAB4AUAAbAB4AHgBQAFAAUABQAFAAHgAeAB4AHQAdAB4AUAAeAFAAHgBQAB4AUABPAFAAUAAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgBQAFAAUABQAE8ATwBQAFAAUABQAFAATwBQAFAATwBQAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAUABQAFAATwBPAE8ATwBPAE8ATwBPAE8ATwBQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABPAB4AHgArACsAKwArAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHQAdAB4AHgAeAB0AHQAeAB4AHQAeAB4AHgAdAB4AHQAbABsAHgAdAB4AHgAeAB4AHQAeAB4AHQAdAB0AHQAeAB4AHQAeAB0AHgAdAB0AHQAdAB0AHQAeAB0AHgAeAB4AHgAeAB0AHQAdAB0AHgAeAB4AHgAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeAB0AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAeAB0AHQAdAB0AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAWABEAHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAWABEAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AHQAdAB0AHgAeAB0AHgAeAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlAB4AHQAdAB4AHgAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AJQAlAB0AHQAlAB4AJQAlACUAIAAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAdAB0AHQAeAB0AJQAdAB0AHgAdAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAdAB0AHQAdACUAHgAlACUAJQAdACUAJQAdAB0AHQAlACUAHQAdACUAHQAdACUAJQAlAB4AHQAeAB4AHgAeAB0AHQAlAB0AHQAdAB0AHQAdACUAJQAlACUAJQAdACUAJQAgACUAHQAdACUAJQAlACUAJQAlACUAJQAeAB4AHgAlACUAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AFwAXABcAFwAXABcAHgATABMAJQAeAB4AHgAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARABYAEQAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAEAAQABAAeAB4AKwArACsAKwArABMADQANAA0AUAATAA0AUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUAANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAA0ADQANAA0ADQANAA0ADQAeAA0AFgANAB4AHgAXABcAHgAeABcAFwAWABEAFgARABYAEQAWABEADQANAA0ADQATAFAADQANAB4ADQANAB4AHgAeAB4AHgAMAAwADQANAA0AHgANAA0AFgANAA0ADQANAA0ADQANAA0AHgANAB4ADQANAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArAA0AEQARACUAJQBHAFcAVwAWABEAFgARABYAEQAWABEAFgARACUAJQAWABEAFgARABYAEQAWABEAFQAWABEAEQAlAFcAVwBXAFcAVwBXAFcAVwBXAAQABAAEAAQABAAEACUAVwBXAFcAVwA2ACUAJQBXAFcAVwBHAEcAJQAlACUAKwBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBRAFcAUQBXAFEAVwBXAFcAVwBXAFcAUQBXAFcAVwBXAFcAVwBRAFEAKwArAAQABAAVABUARwBHAFcAFQBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBRAFcAVwBXAFcAVwBXAFEAUQBXAFcAVwBXABUAUQBHAEcAVwArACsAKwArACsAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwAlACUAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACsAKwArACsAKwArACsAKwArACsAKwArAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBPAE8ATwBPAE8ATwBPAE8AJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADQATAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABLAEsASwBLAEsASwBLAEsASwBLAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAABAAEAAQABAAeAAQABAAEAAQABAAEAAQABAAEAAQAHgBQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAeAA0ADQANAA0ADQArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAAQAUABQAFAABABQAFAAUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAeAB4AHgAeAAQAKwArACsAUABQAFAAUABQAFAAHgAeABoAHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADgAOABMAEwArACsAKwArACsAKwArACsABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwANAA0ASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUAAeAB4AHgBQAA4AUABQAAQAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArAB4AWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYACsAKwArAAQAHgAeAB4AHgAeAB4ADQANAA0AHgAeAB4AHgArAFAASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArAB4AHgBcAFwAXABcAFwAKgBcAFwAXABcAFwAXABcAFwAXABcAEsASwBLAEsASwBLAEsASwBLAEsAXABcAFwAXABcACsAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAFAAUABQAAQAUABQAFAAUABQAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAHgANAA0ADQBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAXAAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAKgAqACoAXABcACoAKgBcAFwAXABcAFwAKgAqAFwAKgBcACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcACoAKgBQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAA0ADQBQAFAAUAAEAAQAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQADQAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAVABVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBUAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVACsAKwArACsAKwArACsAKwArACsAKwArAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAKwArACsAKwBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAKwArACsAKwAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAKwArACsAKwArAFYABABWAFYAVgBWAFYAVgBWAFYAVgBWAB4AVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgArAFYAVgBWAFYAVgArAFYAKwBWAFYAKwBWAFYAKwBWAFYAVgBWAFYAVgBWAFYAVgBWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAEQAWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAaAB4AKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAGAARABEAGAAYABMAEwAWABEAFAArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACUAJQAlACUAJQAWABEAFgARABYAEQAWABEAFgARABYAEQAlACUAFgARACUAJQAlACUAJQAlACUAEQAlABEAKwAVABUAEwATACUAFgARABYAEQAWABEAJQAlACUAJQAlACUAJQAlACsAJQAbABoAJQArACsAKwArAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAcAKwATACUAJQAbABoAJQAlABYAEQAlACUAEQAlABEAJQBXAFcAVwBXAFcAVwBXAFcAVwBXABUAFQAlACUAJQATACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXABYAJQARACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAWACUAEQAlABYAEQARABYAEQARABUAVwBRAFEAUQBRAFEAUQBRAFEAUQBRAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcARwArACsAVwBXAFcAVwBXAFcAKwArAFcAVwBXAFcAVwBXACsAKwBXAFcAVwBXAFcAVwArACsAVwBXAFcAKwArACsAGgAbACUAJQAlABsAGwArAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAAQAB0AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsADQANAA0AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAA0AUABQAFAAUAArACsAKwArAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwArAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwBQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAUABQAFAAUABQAAQABAAEACsABAAEACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAKwBQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAA0ADQANAA0ADQANAA0ADQAeACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAArACsAKwArAFAAUABQAFAAUAANAA0ADQANAA0ADQAUACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsADQANAA0ADQANAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArAAQABAANACsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAB4AHgAeAB4AHgArACsAKwArACsAKwAEAAQABAAEAAQABAAEAA0ADQAeAB4AHgAeAB4AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsASwBLAEsASwBLAEsASwBLAEsASwANAA0ADQANAFAABAAEAFAAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAeAA4AUAArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAADQANAB4ADQAEAAQABAAEAB4ABAAEAEsASwBLAEsASwBLAEsASwBLAEsAUAAOAFAADQANAA0AKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAANAA0AHgANAA0AHgAEACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAA0AKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsABAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsABAAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAUAArACsAKwArACsAKwAEACsAKwArACsAKwBQAFAAUABQAFAABAAEACsAKwAEAAQABAAEAAQABAAEACsAKwArAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABABQAFAAUABQAA0ADQANAA0AHgBLAEsASwBLAEsASwBLAEsASwBLAA0ADQArAB4ABABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUAAeAFAAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABAAEAAQADgANAA0AEwATAB4AHgAeAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAFAAUABQAFAABAAEACsAKwAEAA0ADQAeAFAAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKwArACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBcAFwADQANAA0AKgBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAKwArAFAAKwArAFAAUABQAFAAUABQAFAAUAArAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQAKwAEAAQAKwArAAQABAAEAAQAUAAEAFAABAAEAA0ADQANACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABABQAA4AUAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAFAABAAEAAQABAAOAB4ADQANAA0ADQAOAB4ABAArACsAKwArACsAKwArACsAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAA0ADQANAFAADgAOAA4ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAAQABAAEAFAADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAOABMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAArACsAKwAEACsABAAEACsABAAEAAQABAAEAAQABABQAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAaABoAGgAaAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABIAEgAQwBDAEMAUABQAFAAUABDAFAAUABQAEgAQwBIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABDAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAJAAkACQAJAAkACQAJABYAEQArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwANAA0AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAANACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAA0ADQANAB4AHgAeAB4AHgAeAFAAUABQAFAADQAeACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAA0AHgAeACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAARwBHABUARwAJACsAKwArACsAKwArACsAKwArACsAKwAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUQBRAFEAKwArACsAKwArACsAKwArACsAKwArACsAKwBRAFEAUQBRACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAHgAEAAQADQAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQABAAEAAQABAAeAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQAHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAKwArAFAAKwArAFAAUAArACsAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUAArAFAAUABQAFAAUABQAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAHgAeAFAAUABQAFAAUAArAFAAKwArACsAUABQAFAAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeACsAKwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4ABAAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAHgAeAA0ADQANAA0AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArAAQABAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwBQAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArABsAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAB4AHgAeAB4ABAAEAAQABAAEAAQABABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArABYAFgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAGgBQAFAAUAAaAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUAArACsAKwArACsAKwBQACsAKwArACsAUAArAFAAKwBQACsAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUAArAFAAKwBQACsAUAArAFAAUAArAFAAKwArAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAKwBQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8AJQAlACUAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB4AHgAeACUAJQAlAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAlACUAJQAlACUAHgAlACUAJQAlACUAIAAgACAAJQAlACAAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACEAIQAhACEAIQAlACUAIAAgACUAJQAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAIAAlACUAJQAlACAAIAAgACUAIAAgACAAJQAlACUAJQAlACUAJQAgACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAlAB4AJQAeACUAJQAlACUAJQAgACUAJQAlACUAHgAlAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACAAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABcAFwAXABUAFQAVAB4AHgAeAB4AJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAgACUAJQAgACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAIAAgACUAJQAgACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACAAIAAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACAAIAAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAA=="),_=Array.isArray(y)?function(b){for(var g=b.length,y=[],_=0;_0;){var ce=_[--L];if(Array.isArray(b)?-1!==b.indexOf(ce):b===ce)for(var se=y;se<=_.length;){var K;if((K=_[++se])===g)return!0;if(K!==Si)break}if(ce!==Si)break}return!1},wi=function(b,g){for(var y=b;y>=0;){var _=g[y];if(_!==Si)return _;y--}return 0},Fr=function(b,g,y,_,E){if(0===y[_])return Yt;var L=_-1;if(Array.isArray(E)&&!0===E[L])return Yt;var K=L-1,ce=L+1,se=g[L],Ve=K>=0?g[K]:0,je=g[ce];if(2===se&&3===je)return Yt;if(-1!==Be.indexOf(se))return"!";if(-1!==Be.indexOf(je)||-1!==Je.indexOf(je))return Yt;if(8===wi(L,g))return"\xf7";if(11===De.get(b[L])||(se===cl||se===fc)&&11===De.get(b[ce])||7===se||7===je||9===se||-1===[Si,on,Dr].indexOf(se)&&9===je||-1!==[pt,fi,Qr,ll,Vl].indexOf(je)||wi(L,g)===Xo||hr(23,Xo,L,g)||hr([pt,fi],Os,L,g)||hr(12,12,L,g))return Yt;if(se===Si)return"\xf7";if(23===se||23===je)return Yt;if(16===je||16===se)return"\xf7";if(-1!==[on,Dr,Os].indexOf(je)||14===se||36===Ve&&-1!==Li.indexOf(se)||se===Vl&&36===je||je===zr||-1!==he.indexOf(je)&&se===lo||-1!==he.indexOf(se)&&je===lo||se===ud&&-1!==[mc,cl,fc].indexOf(je)||-1!==[mc,cl,fc].indexOf(se)&&je===Js||-1!==he.indexOf(se)&&-1!==_t.indexOf(je)||-1!==_t.indexOf(se)&&-1!==he.indexOf(je)||-1!==[ud,Js].indexOf(se)&&(je===lo||-1!==[Xo,Dr].indexOf(je)&&g[ce+1]===lo)||-1!==[Xo,Dr].indexOf(se)&&je===lo||se===lo&&-1!==[lo,Vl,ll].indexOf(je))return Yt;if(-1!==[lo,Vl,ll,pt,fi].indexOf(je))for(var it=L;it>=0;){if((Ct=g[it])===lo)return Yt;if(-1===[Vl,ll].indexOf(Ct))break;it--}if(-1!==[ud,Js].indexOf(je))for(it=-1!==[pt,fi].indexOf(se)?K:L;it>=0;){var Ct;if((Ct=g[it])===lo)return Yt;if(-1===[Vl,ll].indexOf(Ct))break;it--}if(cs===se&&-1!==[cs,Rm,Bm,mu].indexOf(je)||-1!==[Rm,Bm].indexOf(se)&&-1!==[Rm,hd].indexOf(je)||-1!==[hd,mu].indexOf(se)&&je===hd||-1!==mi.indexOf(se)&&-1!==[zr,Js].indexOf(je)||-1!==mi.indexOf(je)&&se===ud||-1!==he.indexOf(se)&&-1!==he.indexOf(je)||se===ll&&-1!==he.indexOf(je)||-1!==he.concat(lo).indexOf(se)&&je===Xo&&-1===f_.indexOf(b[ce])||-1!==he.concat(lo).indexOf(je)&&se===fi)return Yt;if(41===se&&41===je){for(var tn=y[L],Jt=1;tn>0&&41===g[--tn];)Jt++;if(Jt%2!=0)return Yt}return se===cl&&je===fc?Yt:"\xf7"},vo=function(b,g){g||(g={lineBreak:"normal",wordBreak:"normal"});var y=function(b,g){void 0===g&&(g="strict");var y=[],_=[],E=[];return b.forEach(function(L,K){var ce=De.get(L);if(ce>50?(E.push(!0),ce-=50):E.push(!1),-1!==["normal","auto","loose"].indexOf(g)&&-1!==[8208,8211,12316,12448].indexOf(L))return _.push(K),y.push(16);if(4===ce||11===ce){if(0===K)return _.push(K),y.push(Na);var se=y[K-1];return-1===Et.indexOf(se)?(_.push(_[K-1]),y.push(se)):(_.push(K),y.push(Na))}return _.push(K),31===ce?y.push("strict"===g?Os:mc):ce===pu||29===ce?y.push(Na):43===ce?y.push(L>=131072&&L<=196605||L>=196608&&L<=262141?mc:Na):void y.push(ce)}),[_,y,E]}(b,g.lineBreak),_=y[0],E=y[1],L=y[2];return("break-all"===g.wordBreak||"break-word"===g.wordBreak)&&(E=E.map(function(ce){return-1!==[lo,Na,pu].indexOf(ce)?mc:ce})),[_,E,"keep-all"===g.wordBreak?L.map(function(ce,se){return ce&&b[se]>=19968&&b[se]<=40959}):void 0]},Rr=function(){function b(g,y,_,E){this.codePoints=g,this.required="!"===y,this.start=_,this.end=E}return b.prototype.slice=function(){return N.apply(void 0,this.codePoints.slice(this.start,this.end))},b}(),xs=function(b){return b>=48&&b<=57},Um=function(b){return xs(b)||b>=65&&b<=70||b>=97&&b<=102},pd=function(b){return 10===b||9===b||32===b},qh=function(b){return function(b){return function(b){return b>=97&&b<=122}(b)||function(b){return b>=65&&b<=90}(b)}(b)||function(b){return b>=128}(b)||95===b},ZA=function(b){return qh(b)||xs(b)||45===b},aC=function(b){return b>=0&&b<=8||11===b||b>=14&&b<=31||127===b},Cs=function(b,g){return 92===b&&10!==g},Ad=function(b,g,y){return 45===b?qh(g)||Cs(g,y):!!qh(b)||!(92!==b||!Cs(b,g))},JA=function(b,g,y){return 43===b||45===b?!!xs(g)||46===g&&xs(y):xs(46===b?g:b)},li=function(b){var g=0,y=1;(43===b[g]||45===b[g])&&(45===b[g]&&(y=-1),g++);for(var _=[];xs(b[g]);)_.push(b[g++]);var E=_.length?parseInt(N.apply(void 0,_),10):0;46===b[g]&&g++;for(var L=[];xs(b[g]);)L.push(b[g++]);var K=L.length,ce=K?parseInt(N.apply(void 0,L),10):0;(69===b[g]||101===b[g])&&g++;var se=1;(43===b[g]||45===b[g])&&(45===b[g]&&(se=-1),g++);for(var Ve=[];xs(b[g]);)Ve.push(b[g++]);var je=Ve.length?parseInt(N.apply(void 0,Ve),10):0;return y*(E+ce*Math.pow(10,-K))*Math.pow(10,se*je)},sr={type:2},w6={type:3},X3={type:4},Y3={type:13},x6={type:8},Z3={type:21},y_={type:9},Qi={type:10},w_={type:11},lC={type:12},na={type:14},Hm={type:23},C6={type:1},E6={type:25},Vm={type:24},x_={type:26},eg={type:27},J3={type:28},ek={type:29},tk={type:31},tg={type:32},bu=function(){function b(){this._value=[]}return b.prototype.write=function(g){this._value=this._value.concat(T(g))},b.prototype.read=function(){for(var g=[],y=this.consumeToken();y!==tg;)g.push(y),y=this.consumeToken();return g},b.prototype.consumeToken=function(){var g=this.consumeCodePoint();switch(g){case 34:return this.consumeStringToken(34);case 35:var y=this.peekCodePoint(0),_=this.peekCodePoint(1),E=this.peekCodePoint(2);if(ZA(y)||Cs(_,E)){var L=Ad(y,_,E)?2:1;return{type:5,value:this.consumeName(),flags:L}}break;case 36:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),Y3;break;case 39:return this.consumeStringToken(39);case 40:return sr;case 41:return w6;case 42:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),na;break;case 43:if(JA(g,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(g),this.consumeNumericToken();break;case 44:return X3;case 45:var ce=g,se=this.peekCodePoint(0),Ve=this.peekCodePoint(1);if(JA(ce,se,Ve))return this.reconsumeCodePoint(g),this.consumeNumericToken();if(Ad(ce,se,Ve))return this.reconsumeCodePoint(g),this.consumeIdentLikeToken();if(45===se&&62===Ve)return this.consumeCodePoint(),this.consumeCodePoint(),Vm;break;case 46:if(JA(g,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(g),this.consumeNumericToken();break;case 47:if(42===this.peekCodePoint(0))for(this.consumeCodePoint();;){var je=this.consumeCodePoint();if(42===je&&47===(je=this.consumeCodePoint()))return this.consumeToken();if(-1===je)return this.consumeToken()}break;case 58:return x_;case 59:return eg;case 60:if(33===this.peekCodePoint(0)&&45===this.peekCodePoint(1)&&45===this.peekCodePoint(2))return this.consumeCodePoint(),this.consumeCodePoint(),E6;break;case 64:var it=this.peekCodePoint(0),Ct=this.peekCodePoint(1),tn=this.peekCodePoint(2);if(Ad(it,Ct,tn))return{type:7,value:this.consumeName()};break;case 91:return J3;case 92:if(Cs(g,this.peekCodePoint(0)))return this.reconsumeCodePoint(g),this.consumeIdentLikeToken();break;case 93:return ek;case 61:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),x6;break;case 123:return w_;case 125:return lC;case 117:case 85:var Jt=this.peekCodePoint(0),cn=this.peekCodePoint(1);return 43===Jt&&(Um(cn)||63===cn)&&(this.consumeCodePoint(),this.consumeUnicodeRangeToken()),this.reconsumeCodePoint(g),this.consumeIdentLikeToken();case 124:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),y_;if(124===this.peekCodePoint(0))return this.consumeCodePoint(),Z3;break;case 126:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),Qi;break;case-1:return tg}return pd(g)?(this.consumeWhiteSpace(),tk):xs(g)?(this.reconsumeCodePoint(g),this.consumeNumericToken()):qh(g)?(this.reconsumeCodePoint(g),this.consumeIdentLikeToken()):{type:6,value:N(g)}},b.prototype.consumeCodePoint=function(){var g=this._value.shift();return typeof g>"u"?-1:g},b.prototype.reconsumeCodePoint=function(g){this._value.unshift(g)},b.prototype.peekCodePoint=function(g){return g>=this._value.length?-1:this._value[g]},b.prototype.consumeUnicodeRangeToken=function(){for(var g=[],y=this.consumeCodePoint();Um(y)&&g.length<6;)g.push(y),y=this.consumeCodePoint();for(var _=!1;63===y&&g.length<6;)g.push(y),y=this.consumeCodePoint(),_=!0;if(_)return{type:30,start:parseInt(N.apply(void 0,g.map(function(se){return 63===se?48:se})),16),end:parseInt(N.apply(void 0,g.map(function(se){return 63===se?70:se})),16)};var K=parseInt(N.apply(void 0,g),16);if(45===this.peekCodePoint(0)&&Um(this.peekCodePoint(1))){this.consumeCodePoint(),y=this.consumeCodePoint();for(var ce=[];Um(y)&&ce.length<6;)ce.push(y),y=this.consumeCodePoint();return{type:30,start:K,end:parseInt(N.apply(void 0,ce),16)}}return{type:30,start:K,end:K}},b.prototype.consumeIdentLikeToken=function(){var g=this.consumeName();return"url"===g.toLowerCase()&&40===this.peekCodePoint(0)?(this.consumeCodePoint(),this.consumeUrlToken()):40===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:19,value:g}):{type:20,value:g}},b.prototype.consumeUrlToken=function(){var g=[];if(this.consumeWhiteSpace(),-1===this.peekCodePoint(0))return{type:22,value:""};var y=this.peekCodePoint(0);if(39===y||34===y){var _=this.consumeStringToken(this.consumeCodePoint());return 0===_.type&&(this.consumeWhiteSpace(),-1===this.peekCodePoint(0)||41===this.peekCodePoint(0))?(this.consumeCodePoint(),{type:22,value:_.value}):(this.consumeBadUrlRemnants(),Hm)}for(;;){var E=this.consumeCodePoint();if(-1===E||41===E)return{type:22,value:N.apply(void 0,g)};if(pd(E))return this.consumeWhiteSpace(),-1===this.peekCodePoint(0)||41===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:22,value:N.apply(void 0,g)}):(this.consumeBadUrlRemnants(),Hm);if(34===E||39===E||40===E||aC(E))return this.consumeBadUrlRemnants(),Hm;if(92===E){if(!Cs(E,this.peekCodePoint(0)))return this.consumeBadUrlRemnants(),Hm;g.push(this.consumeEscapedCodePoint())}else g.push(E)}},b.prototype.consumeWhiteSpace=function(){for(;pd(this.peekCodePoint(0));)this.consumeCodePoint()},b.prototype.consumeBadUrlRemnants=function(){for(;;){var g=this.consumeCodePoint();if(41===g||-1===g)return;Cs(g,this.peekCodePoint(0))&&this.consumeEscapedCodePoint()}},b.prototype.consumeStringSlice=function(g){for(var _="";g>0;){var E=Math.min(5e4,g);_+=N.apply(void 0,this._value.splice(0,E)),g-=E}return this._value.shift(),_},b.prototype.consumeStringToken=function(g){for(var y="",_=0;;){var E=this._value[_];if(-1===E||void 0===E||E===g)return{type:0,value:y+=this.consumeStringSlice(_)};if(10===E)return this._value.splice(0,_),C6;if(92===E){var L=this._value[_+1];-1!==L&&void 0!==L&&(10===L?(y+=this.consumeStringSlice(_),_=-1,this._value.shift()):Cs(E,L)&&(y+=this.consumeStringSlice(_),y+=N(this.consumeEscapedCodePoint()),_=-1))}_++}},b.prototype.consumeNumber=function(){var g=[],y=4,_=this.peekCodePoint(0);for((43===_||45===_)&&g.push(this.consumeCodePoint());xs(this.peekCodePoint(0));)g.push(this.consumeCodePoint());_=this.peekCodePoint(0);var E=this.peekCodePoint(1);if(46===_&&xs(E))for(g.push(this.consumeCodePoint(),this.consumeCodePoint()),y=8;xs(this.peekCodePoint(0));)g.push(this.consumeCodePoint());_=this.peekCodePoint(0),E=this.peekCodePoint(1);var L=this.peekCodePoint(2);if((69===_||101===_)&&((43===E||45===E)&&xs(L)||xs(E)))for(g.push(this.consumeCodePoint(),this.consumeCodePoint()),y=8;xs(this.peekCodePoint(0));)g.push(this.consumeCodePoint());return[li(g),y]},b.prototype.consumeNumericToken=function(){var g=this.consumeNumber(),y=g[0],_=g[1],E=this.peekCodePoint(0),L=this.peekCodePoint(1),K=this.peekCodePoint(2);return Ad(E,L,K)?{type:15,number:y,flags:_,unit:this.consumeName()}:37===E?(this.consumeCodePoint(),{type:16,number:y,flags:_}):{type:17,number:y,flags:_}},b.prototype.consumeEscapedCodePoint=function(){var g=this.consumeCodePoint();if(Um(g)){for(var y=N(g);Um(this.peekCodePoint(0))&&y.length<6;)y+=N(this.consumeCodePoint());pd(this.peekCodePoint(0))&&this.consumeCodePoint();var _=parseInt(y,16);return 0===_||function(b){return b>=55296&&b<=57343}(_)||_>1114111?65533:_}return-1===g?65533:g},b.prototype.consumeName=function(){for(var g="";;){var y=this.consumeCodePoint();if(ZA(y))g+=N(y);else{if(!Cs(y,this.peekCodePoint(0)))return this.reconsumeCodePoint(y),g;g+=N(this.consumeEscapedCodePoint())}}},b}(),cC=function(){function b(g){this._tokens=g}return b.create=function(g){var y=new bu;return y.write(g),new b(y.read())},b.parseValue=function(g){return b.create(g).parseComponentValue()},b.parseValues=function(g){return b.create(g).parseComponentValues()},b.prototype.parseComponentValue=function(){for(var g=this.consumeToken();31===g.type;)g=this.consumeToken();if(32===g.type)throw new SyntaxError("Error parsing CSS component value, unexpected EOF");this.reconsumeToken(g);var y=this.consumeComponentValue();do{g=this.consumeToken()}while(31===g.type);if(32===g.type)return y;throw new SyntaxError("Error parsing CSS component value, multiple values found when expecting only one")},b.prototype.parseComponentValues=function(){for(var g=[];;){var y=this.consumeComponentValue();if(32===y.type)return g;g.push(y),g.push()}},b.prototype.consumeComponentValue=function(){var g=this.consumeToken();switch(g.type){case 11:case 28:case 2:return this.consumeSimpleBlock(g.type);case 19:return this.consumeFunction(g)}return g},b.prototype.consumeSimpleBlock=function(g){for(var y={type:g,values:[]},_=this.consumeToken();;){if(32===_.type||nk(_,g))return y;this.reconsumeToken(_),y.values.push(this.consumeComponentValue()),_=this.consumeToken()}},b.prototype.consumeFunction=function(g){for(var y={name:g.value,values:[],type:18};;){var _=this.consumeToken();if(32===_.type||3===_.type)return y;this.reconsumeToken(_),y.values.push(this.consumeComponentValue())}},b.prototype.consumeToken=function(){var g=this._tokens.shift();return typeof g>"u"?tg:g},b.prototype.reconsumeToken=function(g){this._tokens.unshift(g)},b}(),Va=function(b){return 15===b.type},Wh=function(b){return 17===b.type},oe=function(b){return 20===b.type},dC=function(b){return 0===b.type},Ut=function(b,g){return oe(b)&&b.value===g},Qm=function(b){return 31!==b.type},gd=function(b){return 31!==b.type&&4!==b.type},ia=function(b){var g=[],y=[];return b.forEach(function(_){if(4===_.type){if(0===y.length)throw new Error("Error parsing function args, zero tokens for arg");return g.push(y),void(y=[])}31!==_.type&&y.push(_)}),y.length&&g.push(y),g},nk=function(b,g){return 11===g&&12===b.type||28===g&&29===b.type||2===g&&3===b.type},bd=function(b){return 17===b.type||15===b.type},ko=function(b){return 16===b.type||bd(b)},ng=function(b){return b.length>1?[b[0],b[1]]:[b[0]]},co={type:17,number:0,flags:4},C_={type:16,number:50,flags:4},ul={type:16,number:100,flags:4},zm=function(b,g,y){var _=b[0],E=b[1];return[ir(_,g),ir(typeof E<"u"?E:_,y)]},ir=function(b,g){if(16===b.type)return b.number/100*g;if(Va(b))switch(b.unit){case"rem":case"em":return 16*b.number;default:return b.number}return b.number},vu_parse=function(b,g){if(15===g.type)switch(g.unit){case"deg":return Math.PI*g.number/180;case"grad":return Math.PI/200*g.number;case"rad":return g.number;case"turn":return 2*Math.PI*g.number}throw new Error("Unsupported angle type")},Gm=function(b){return 15===b.type&&("deg"===b.unit||"grad"===b.unit||"rad"===b.unit||"turn"===b.unit)},ig=function(b){switch(b.filter(oe).map(function(y){return y.value}).join(" ")){case"to bottom right":case"to right bottom":case"left top":case"top left":return[co,co];case"to top":case"bottom":return hl(0);case"to bottom left":case"to left bottom":case"right top":case"top right":return[co,ul];case"to right":case"left":return hl(90);case"to top left":case"to left top":case"right bottom":case"bottom right":return[ul,ul];case"to bottom":case"top":return hl(180);case"to top right":case"to right top":case"left bottom":case"bottom left":return[ul,co];case"to left":case"right":return hl(270)}return 0},hl=function(b){return Math.PI*b/180},pc_parse=function(b,g){if(18===g.type){var y=Zi[g.name];if(typeof y>"u")throw new Error('Attempting to parse an unsupported color function "'+g.name+'"');return y(b,g.values)}if(5===g.type){if(3===g.value.length){var _=g.value.substring(0,1),E=g.value.substring(1,2),L=g.value.substring(2,3);return Gl(parseInt(_+_,16),parseInt(E+E,16),parseInt(L+L,16),1)}if(4===g.value.length){_=g.value.substring(0,1),E=g.value.substring(1,2),L=g.value.substring(2,3);var K=g.value.substring(3,4);return Gl(parseInt(_+_,16),parseInt(E+E,16),parseInt(L+L,16),parseInt(K+K,16)/255)}if(6===g.value.length)return _=g.value.substring(0,2),E=g.value.substring(2,4),L=g.value.substring(4,6),Gl(parseInt(_,16),parseInt(E,16),parseInt(L,16),1);if(8===g.value.length)return _=g.value.substring(0,2),E=g.value.substring(2,4),L=g.value.substring(4,6),K=g.value.substring(6,8),Gl(parseInt(_,16),parseInt(E,16),parseInt(L,16),parseInt(K,16)/255)}if(20===g.type){var ce=ql[g.value.toUpperCase()];if(typeof ce<"u")return ce}return ql.TRANSPARENT},yu=function(b){return!(255&b)},ar=function(b){var g=255&b,y=255&b>>8,_=255&b>>16,E=255&b>>24;return g<255?"rgba("+E+","+_+","+y+","+g/255+")":"rgb("+E+","+_+","+y+")"},Gl=function(b,g,y,_){return(b<<24|g<<16|y<<8|Math.round(255*_))>>>0},wu=function(b,g){if(17===b.type)return b.number;if(16===b.type){var y=3===g?1:255;return 3===g?b.number/100*y:Math.round(b.number/100*y)}return 0},ik=function(b,g){var y=g.filter(gd);if(3===y.length){var _=y.map(wu);return Gl(_[0],_[1],_[2],1)}if(4===y.length){var ce=y.map(wu);return Gl(ce[0],ce[1],ce[2],ce[3])}return 0};function rg(b,g,y){return y<0&&(y+=1),y>=1&&(y-=1),y<1/6?(g-b)*y*6+b:y<.5?g:y<2/3?6*(g-b)*(2/3-y)+b:b}var fl=function(b,g){var y=g.filter(gd),_=y[0],E=y[1],L=y[2],K=y[3],ce=(17===_.type?hl(_.number):vu_parse(b,_))/(2*Math.PI),se=ko(E)?E.number/100:0,Ve=ko(L)?L.number/100:0,je=typeof K<"u"&&ko(K)?ir(K,1):1;if(0===se)return Gl(255*Ve,255*Ve,255*Ve,1);var it=Ve<=.5?Ve*(se+1):Ve+se-Ve*se,Ct=2*Ve-it,tn=rg(Ct,it,ce+1/3),Jt=rg(Ct,it,ce),cn=rg(Ct,it,ce-1/3);return Gl(255*tn,255*Jt,255*cn,je)},Zi={hsl:fl,hsla:fl,rgb:ik,rgba:ik},Qa=function(b,g){return pc_parse(b,cC.create(g).parseComponentValue())},ql={ALICEBLUE:4042850303,ANTIQUEWHITE:4209760255,AQUA:16777215,AQUAMARINE:2147472639,AZURE:4043309055,BEIGE:4126530815,BISQUE:4293182719,BLACK:255,BLANCHEDALMOND:4293643775,BLUE:65535,BLUEVIOLET:2318131967,BROWN:2771004159,BURLYWOOD:3736635391,CADETBLUE:1604231423,CHARTREUSE:2147418367,CHOCOLATE:3530104575,CORAL:4286533887,CORNFLOWERBLUE:1687547391,CORNSILK:4294499583,CRIMSON:3692313855,CYAN:16777215,DARKBLUE:35839,DARKCYAN:9145343,DARKGOLDENROD:3095837695,DARKGRAY:2846468607,DARKGREEN:6553855,DARKGREY:2846468607,DARKKHAKI:3182914559,DARKMAGENTA:2332068863,DARKOLIVEGREEN:1433087999,DARKORANGE:4287365375,DARKORCHID:2570243327,DARKRED:2332033279,DARKSALMON:3918953215,DARKSEAGREEN:2411499519,DARKSLATEBLUE:1211993087,DARKSLATEGRAY:793726975,DARKSLATEGREY:793726975,DARKTURQUOISE:13554175,DARKVIOLET:2483082239,DEEPPINK:4279538687,DEEPSKYBLUE:12582911,DIMGRAY:1768516095,DIMGREY:1768516095,DODGERBLUE:512819199,FIREBRICK:2988581631,FLORALWHITE:4294635775,FORESTGREEN:579543807,FUCHSIA:4278255615,GAINSBORO:3705462015,GHOSTWHITE:4177068031,GOLD:4292280575,GOLDENROD:3668254975,GRAY:2155905279,GREEN:8388863,GREENYELLOW:2919182335,GREY:2155905279,HONEYDEW:4043305215,HOTPINK:4285117695,INDIANRED:3445382399,INDIGO:1258324735,IVORY:4294963455,KHAKI:4041641215,LAVENDER:3873897215,LAVENDERBLUSH:4293981695,LAWNGREEN:2096890111,LEMONCHIFFON:4294626815,LIGHTBLUE:2916673279,LIGHTCORAL:4034953471,LIGHTCYAN:3774873599,LIGHTGOLDENRODYELLOW:4210742015,LIGHTGRAY:3553874943,LIGHTGREEN:2431553791,LIGHTGREY:3553874943,LIGHTPINK:4290167295,LIGHTSALMON:4288707327,LIGHTSEAGREEN:548580095,LIGHTSKYBLUE:2278488831,LIGHTSLATEGRAY:2005441023,LIGHTSLATEGREY:2005441023,LIGHTSTEELBLUE:2965692159,LIGHTYELLOW:4294959359,LIME:16711935,LIMEGREEN:852308735,LINEN:4210091775,MAGENTA:4278255615,MAROON:2147483903,MEDIUMAQUAMARINE:1724754687,MEDIUMBLUE:52735,MEDIUMORCHID:3126187007,MEDIUMPURPLE:2473647103,MEDIUMSEAGREEN:1018393087,MEDIUMSLATEBLUE:2070474495,MEDIUMSPRINGGREEN:16423679,MEDIUMTURQUOISE:1221709055,MEDIUMVIOLETRED:3340076543,MIDNIGHTBLUE:421097727,MINTCREAM:4127193855,MISTYROSE:4293190143,MOCCASIN:4293178879,NAVAJOWHITE:4292783615,NAVY:33023,OLDLACE:4260751103,OLIVE:2155872511,OLIVEDRAB:1804477439,ORANGE:4289003775,ORANGERED:4282712319,ORCHID:3664828159,PALEGOLDENROD:4008225535,PALEGREEN:2566625535,PALETURQUOISE:2951671551,PALEVIOLETRED:3681588223,PAPAYAWHIP:4293907967,PEACHPUFF:4292524543,PERU:3448061951,PINK:4290825215,PLUM:3718307327,POWDERBLUE:2967529215,PURPLE:2147516671,REBECCAPURPLE:1714657791,RED:4278190335,ROSYBROWN:3163525119,ROYALBLUE:1097458175,SADDLEBROWN:2336560127,SALMON:4202722047,SANDYBROWN:4104413439,SEAGREEN:780883967,SEASHELL:4294307583,SIENNA:2689740287,SILVER:3233857791,SKYBLUE:2278484991,SLATEBLUE:1784335871,SLATEGRAY:1887473919,SLATEGREY:1887473919,SNOW:4294638335,SPRINGGREEN:16744447,STEELBLUE:1182971135,TAN:3535047935,TEAL:8421631,THISTLE:3636451583,TOMATO:4284696575,TRANSPARENT:0,TURQUOISE:1088475391,VIOLET:4001558271,WHEAT:4125012991,WHITE:4294967295,WHITESMOKE:4126537215,YELLOW:4294902015,YELLOWGREEN:2597139199},M_={name:"background-clip",initialValue:"border-box",prefix:!1,type:1,parse:function(b,g){return g.map(function(y){if(oe(y))switch(y.value){case"padding-box":return 1;case"content-box":return 2}return 0})}},og={name:"background-color",initialValue:"transparent",prefix:!1,type:3,format:"color"},xu=function(b,g){var y=pc_parse(b,g[0]),_=g[1];return _&&ko(_)?{color:y,stop:_}:{color:y,stop:null}},za=function(b,g){var y=b[0],_=b[b.length-1];null===y.stop&&(y.stop=co),null===_.stop&&(_.stop=ul);for(var E=[],L=0,K=0;KL?se:L),L=se}else E.push(null)}var Ve=null;for(K=0;KK.optimumDistance)?{optimumCorner:ce,optimumDistance:je}:K},{optimumDistance:E?1/0:-1/0,optimumCorner:null}).optimumCorner},Wm=function(b,g){var y=hl(180),_=[];return ia(g).forEach(function(E,L){if(0===L){var K=E[0];if(20===K.type&&-1!==["top","left","right","bottom"].indexOf(K.value))return void(y=ig(E));if(Gm(K))return void(y=(vu_parse(b,K)+hl(270))%hl(360))}var ce=xu(b,E);_.push(ce)}),{angle:y,stops:_,type:1}},mC="closest-side",sg="farthest-side",pC="closest-corner",AC="farthest-corner",gC="ellipse",bC="contain",ag=function(b,g){var y=0,_=3,E=[],L=[];return ia(g).forEach(function(K,ce){var se=!0;if(0===ce?se=K.reduce(function(je,it){if(oe(it))switch(it.value){case"center":return L.push(C_),!1;case"top":case"left":return L.push(co),!1;case"right":case"bottom":return L.push(ul),!1}else if(ko(it)||bd(it))return L.push(it),!1;return je},se):1===ce&&(se=K.reduce(function(je,it){if(oe(it))switch(it.value){case"circle":return y=0,!1;case gC:return y=1,!1;case bC:case mC:return _=0,!1;case sg:return _=1,!1;case pC:return _=2,!1;case"cover":case AC:return _=3,!1}else if(bd(it)||ko(it))return Array.isArray(_)||(_=[]),_.push(it),!1;return je},se)),se){var Ve=xu(b,K);E.push(Ve)}}),{size:_,shape:y,stops:E,position:L,type:2}},F__parse=function(b,g){if(22===g.type){var y={url:g.value,type:0};return b.cache.addImage(g.value),y}if(18===g.type){var _=vC[g.name];if(typeof _>"u")throw new Error('Attempting to parse an unsupported image function "'+g.name+'"');return _(b,g.values)}throw new Error("Unsupported image type "+g.type)};for(var vC={"linear-gradient":function(b,g){var y=hl(180),_=[];return ia(g).forEach(function(E,L){if(0===L){var K=E[0];if(20===K.type&&"to"===K.value)return void(y=ig(E));if(Gm(K))return void(y=vu_parse(b,K))}var ce=xu(b,E);_.push(ce)}),{angle:y,stops:_,type:1}},"-moz-linear-gradient":Wm,"-ms-linear-gradient":Wm,"-o-linear-gradient":Wm,"-webkit-linear-gradient":Wm,"radial-gradient":function(b,g){var y=0,_=3,E=[],L=[];return ia(g).forEach(function(K,ce){var se=!0;if(0===ce){var Ve=!1;se=K.reduce(function(it,Ct){if(Ve)if(oe(Ct))switch(Ct.value){case"center":return L.push(C_),it;case"top":case"left":return L.push(co),it;case"right":case"bottom":return L.push(ul),it}else(ko(Ct)||bd(Ct))&&L.push(Ct);else if(oe(Ct))switch(Ct.value){case"circle":return y=0,!1;case gC:return y=1,!1;case"at":return Ve=!0,!1;case mC:return _=0,!1;case"cover":case sg:return _=1,!1;case bC:case pC:return _=2,!1;case AC:return _=3,!1}else if(bd(Ct)||ko(Ct))return Array.isArray(_)||(_=[]),_.push(Ct),!1;return it},se)}if(se){var je=xu(b,K);E.push(je)}}),{size:_,shape:y,stops:E,position:L,type:2}},"-moz-radial-gradient":ag,"-ms-radial-gradient":ag,"-o-radial-gradient":ag,"-webkit-radial-gradient":ag,"-webkit-gradient":function(b,g){var y=hl(180),_=[],E=1;return ia(g).forEach(function(se,Ve){var je=se[0];if(0===Ve){if(oe(je)&&"linear"===je.value)return void(E=1);if(oe(je)&&"radial"===je.value)return void(E=2)}if(18===je.type)if("from"===je.name){var it=pc_parse(b,je.values[0]);_.push({stop:co,color:it})}else if("to"===je.name)it=pc_parse(b,je.values[0]),_.push({stop:ul,color:it});else if("color-stop"===je.name){var Ct=je.values.filter(gd);if(2===Ct.length){it=pc_parse(b,Ct[1]);var tn=Ct[0];Wh(tn)&&_.push({stop:{type:16,number:100*tn.number,flags:tn.flags},color:it})}}}),1===E?{angle:(y+hl(180))%hl(360),stops:_,type:E}:{size:3,shape:0,stops:_,position:[],type:E}}},At={name:"background-image",initialValue:"none",type:1,prefix:!1,parse:function(b,g){if(0===g.length)return[];var y=g[0];return 20===y.type&&"none"===y.value?[]:g.filter(function(_){return gd(_)&&function ak(b){return!(20===b.type&&"none"===b.value||18===b.type&&!vC[b.name])}(_)}).map(function(_){return F__parse(b,_)})}},lk={name:"background-origin",initialValue:"border-box",prefix:!1,type:1,parse:function(b,g){return g.map(function(y){if(oe(y))switch(y.value){case"padding-box":return 1;case"content-box":return 2}return 0})}},ck={name:"background-position",initialValue:"0% 0%",type:1,prefix:!1,parse:function(b,g){return ia(g).map(function(y){return y.filter(ko)}).map(ng)}},Bt={name:"background-repeat",initialValue:"repeat",prefix:!1,type:1,parse:function(b,g){return ia(g).map(function(y){return y.filter(oe).map(function(_){return _.value}).join(" ")}).map(yC)}},yC=function(b){switch(b){case"no-repeat":return 1;case"repeat-x":case"repeat no-repeat":return 2;case"repeat-y":case"no-repeat repeat":return 3;default:return 0}},zt=function(b){return b.AUTO="auto",b.CONTAIN="contain",b.COVER="cover",b}(zt||{}),lr={name:"background-size",initialValue:"0",prefix:!1,type:1,parse:function(b,g){return ia(g).map(function(y){return y.filter(Ti)})}},Ti=function(b){return oe(b)||ko(b)},uo=function(b){return{name:"border-"+b+"-color",initialValue:"transparent",prefix:!1,type:3,format:"color"}},ds=uo("top"),Cu=uo("right"),Es=uo("bottom"),wC=uo("left"),$m=function(b){return{name:"border-radius-"+b,initialValue:"0 0",prefix:!1,type:1,parse:function(g,y){return ng(y.filter(ko))}}},lg=$m("top-left"),dk=$m("top-right"),uk=$m("bottom-right"),jm=$m("bottom-left"),cg=function(b){return{name:"border-"+b+"-style",initialValue:"solid",prefix:!1,type:2,parse:function(g,y){switch(y){case"none":return 0;case"dashed":return 2;case"dotted":return 3;case"double":return 4}return 1}}},k_=cg("top"),xC=cg("right"),dg=cg("bottom"),M6=cg("left"),$h=function(b){return{name:"border-"+b+"-width",initialValue:"0",type:0,prefix:!1,parse:function(g,y){return Va(y)?y.number:0}}},hk=$h("top"),I_=$h("right"),CC=$h("bottom"),EC=$h("left"),Eu={name:"color",initialValue:"transparent",prefix:!1,type:3,format:"color"},fk={name:"direction",initialValue:"ltr",prefix:!1,type:2,parse:function(b,g){return"rtl"===g?1:0}},B_={name:"display",initialValue:"inline-block",prefix:!1,type:1,parse:function(b,g){return g.filter(oe).reduce(function(y,_){return y|ug(_.value)},0)}},ug=function(b){switch(b){case"block":case"-webkit-box":return 2;case"inline":return 4;case"run-in":return 8;case"flow":return 16;case"flow-root":return 32;case"table":return 64;case"flex":case"-webkit-flex":return 128;case"grid":case"-ms-grid":return 256;case"ruby":return 512;case"subgrid":return 1024;case"list-item":return 2048;case"table-row-group":return 4096;case"table-header-group":return 8192;case"table-footer-group":return 16384;case"table-row":return 32768;case"table-cell":return 65536;case"table-column-group":return 131072;case"table-column":return 262144;case"table-caption":return 524288;case"ruby-base":return 1048576;case"ruby-text":return 2097152;case"ruby-base-container":return 4194304;case"ruby-text-container":return 8388608;case"contents":return 16777216;case"inline-block":return 33554432;case"inline-list-item":return 67108864;case"inline-table":return 134217728;case"inline-flex":return 268435456;case"inline-grid":return 536870912}return 0},mk={name:"float",initialValue:"none",prefix:!1,type:2,parse:function(b,g){switch(g){case"left":return 1;case"right":return 2;case"inline-start":return 3;case"inline-end":return 4}return 0}},D_={name:"letter-spacing",initialValue:"0",prefix:!1,type:0,parse:function(b,g){return 20===g.type&&"normal"===g.value?0:17===g.type||15===g.type?g.number:0}},jh=function(b){return b.NORMAL="normal",b.STRICT="strict",b}(jh||{}),ml={name:"line-break",initialValue:"normal",prefix:!1,type:2,parse:function(b,g){return"strict"===g?jh.STRICT:jh.NORMAL}},Kh={name:"line-height",initialValue:"normal",prefix:!1,type:4},hg=function(b,g){return oe(b)&&"normal"===b.value?1.2*g:17===b.type?g*b.number:ko(b)?ir(b,g):g},pk={name:"list-style-image",initialValue:"none",type:0,prefix:!1,parse:function(b,g){return 20===g.type&&"none"===g.value?null:F__parse(b,g)}},Ak={name:"list-style-position",initialValue:"outside",prefix:!1,type:2,parse:function(b,g){return"inside"===g?0:1}},fg={name:"list-style-type",initialValue:"none",prefix:!1,type:2,parse:function(b,g){switch(g){case"disc":return 0;case"circle":return 1;case"square":return 2;case"decimal":return 3;case"cjk-decimal":return 4;case"decimal-leading-zero":return 5;case"lower-roman":return 6;case"upper-roman":return 7;case"lower-greek":return 8;case"lower-alpha":return 9;case"upper-alpha":return 10;case"arabic-indic":return 11;case"armenian":return 12;case"bengali":return 13;case"cambodian":return 14;case"cjk-earthly-branch":return 15;case"cjk-heavenly-stem":return 16;case"cjk-ideographic":return 17;case"devanagari":return 18;case"ethiopic-numeric":return 19;case"georgian":return 20;case"gujarati":return 21;case"gurmukhi":case"hebrew":return 22;case"hiragana":return 23;case"hiragana-iroha":return 24;case"japanese-formal":return 25;case"japanese-informal":return 26;case"kannada":return 27;case"katakana":return 28;case"katakana-iroha":return 29;case"khmer":return 30;case"korean-hangul-formal":return 31;case"korean-hanja-formal":return 32;case"korean-hanja-informal":return 33;case"lao":return 34;case"lower-armenian":return 35;case"malayalam":return 36;case"mongolian":return 37;case"myanmar":return 38;case"oriya":return 39;case"persian":return 40;case"simp-chinese-formal":return 41;case"simp-chinese-informal":return 42;case"tamil":return 43;case"telugu":return 44;case"thai":return 45;case"tibetan":return 46;case"trad-chinese-formal":return 47;case"trad-chinese-informal":return 48;case"upper-armenian":return 49;case"disclosure-open":return 50;case"disclosure-closed":return 51;default:return-1}}},Ac=function(b){return{name:"margin-"+b,initialValue:"0",prefix:!1,type:4}},gk=Ac("top"),bk=Ac("right"),_k=Ac("bottom"),R_=Ac("left"),L_={name:"overflow",initialValue:"visible",prefix:!1,type:1,parse:function(b,g){return g.filter(oe).map(function(y){switch(y.value){case"hidden":return 1;case"scroll":return 2;case"clip":return 3;case"auto":return 4;default:return 0}})}},MC={name:"overflow-wrap",initialValue:"normal",prefix:!1,type:2,parse:function(b,g){return"break-word"===g?"break-word":"normal"}},_d=function(b){return{name:"padding-"+b,initialValue:"0",prefix:!1,type:3,format:"length-percentage"}},Xh=_d("top"),vk=_d("right"),yk=_d("bottom"),Oo=_d("left"),SC={name:"text-align",initialValue:"left",prefix:!1,type:2,parse:function(b,g){switch(g){case"right":return 2;case"center":case"justify":return 1;default:return 0}}},wk={name:"position",initialValue:"static",prefix:!1,type:2,parse:function(b,g){switch(g){case"relative":return 1;case"absolute":return 2;case"fixed":return 3;case"sticky":return 4}return 0}},Km={name:"text-shadow",initialValue:"none",type:1,prefix:!1,parse:function(b,g){return 1===g.length&&Ut(g[0],"none")?[]:ia(g).map(function(y){for(var _={color:ql.TRANSPARENT,offsetX:co,offsetY:co,blur:co},E=0,L=0;L"u")throw new Error('Attempting to parse an unsupported transform function "'+g.name+'"');return y(g.values)}return null}},Sk={matrix:function(b){var g=b.filter(function(y){return 17===y.type}).map(function(y){return y.number});return 6===g.length?g:null},matrix3d:function(b){var g=b.filter(function(se){return 17===se.type}).map(function(se){return se.number});return 16===g.length?[g[0],g[1],g[4],g[5],g[12],g[13]]:null}},TC={type:16,number:50,flags:4},P_=[TC,TC],mg={name:"transform-origin",initialValue:"50% 50%",prefix:!0,type:1,parse:function(b,g){var y=g.filter(ko);return 2!==y.length?P_:[y[0],y[1]]}},Wr={name:"visible",initialValue:"none",prefix:!1,type:2,parse:function(b,g){switch(g){case"hidden":return 1;case"collapse":return 2;default:return 0}}},Zt=function(b){return b.NORMAL="normal",b.BREAK_ALL="break-all",b.KEEP_ALL="keep-all",b}(Zt||{}),Vn={name:"word-break",initialValue:"normal",prefix:!1,type:2,parse:function(b,g){switch(g){case"break-all":return Zt.BREAK_ALL;case"keep-all":return Zt.KEEP_ALL;default:return Zt.NORMAL}}},wo={name:"z-index",initialValue:"auto",prefix:!1,type:0,parse:function(b,g){if(20===g.type)return{auto:!0,order:0};if(Wh(g))return{auto:!1,order:g.number};throw new Error("Invalid z-index number parsed")}},qa={name:"time",parse:function(b,g){if(15===g.type)switch(g.unit.toLowerCase()){case"s":return 1e3*g.number;case"ms":return g.number}throw new Error("Unsupported time type")}},Ms={name:"opacity",initialValue:"1",type:0,prefix:!1,parse:function(b,g){return Wh(g)?g.number:1}},ga={name:"text-decoration-color",initialValue:"transparent",prefix:!1,type:3,format:"color"},Yh={name:"text-decoration-line",initialValue:"none",prefix:!1,type:1,parse:function(b,g){return g.filter(oe).map(function(y){switch(y.value){case"underline":return 1;case"overline":return 2;case"line-through":return 3;case"none":return 4}return 0}).filter(function(y){return 0!==y})}},kr={name:"font-family",initialValue:"",prefix:!1,type:1,parse:function(b,g){var y=[],_=[];return g.forEach(function(E){switch(E.type){case 20:case 0:y.push(E.value);break;case 17:y.push(E.number.toString());break;case 4:_.push(y.join(" ")),y.length=0}}),y.length&&_.push(y.join(" ")),_.map(function(E){return-1===E.indexOf(" ")?E:"'"+E+"'"})}},us={name:"font-size",initialValue:"0",prefix:!1,type:3,format:"length"},pl={name:"font-weight",initialValue:"normal",type:0,prefix:!1,parse:function(b,g){return Wh(g)?g.number:oe(g)&&"bold"===g.value?700:400}},Yn={name:"font-variant",initialValue:"none",type:1,prefix:!1,parse:function(b,g){return g.filter(oe).map(function(y){return y.value})}},Xm={name:"font-style",initialValue:"normal",prefix:!1,type:2,parse:function(b,g){switch(g){case"oblique":return"oblique";case"italic":return"italic";default:return"normal"}}},Io=function(b,g){return!!(b&g)},Zh={name:"content",initialValue:"none",type:1,prefix:!1,parse:function(b,g){if(0===g.length)return[];var y=g[0];return 20===y.type&&"none"===y.value?[]:g}},to={name:"counter-increment",initialValue:"none",prefix:!0,type:1,parse:function(b,g){if(0===g.length)return null;var y=g[0];if(20===y.type&&"none"===y.value)return null;for(var _=[],E=g.filter(Qm),L=0;L1?1:0],this.overflowWrap=sn(g,MC,y.overflowWrap),this.paddingTop=sn(g,Xh,y.paddingTop),this.paddingRight=sn(g,vk,y.paddingRight),this.paddingBottom=sn(g,yk,y.paddingBottom),this.paddingLeft=sn(g,Oo,y.paddingLeft),this.paintOrder=sn(g,vd,y.paintOrder),this.position=sn(g,wk,y.position),this.textAlign=sn(g,SC,y.textAlign),this.textDecorationColor=sn(g,ga,null!==(_=y.textDecorationColor)&&void 0!==_?_:y.color),this.textDecorationLine=sn(g,Yh,null!==(E=y.textDecorationLine)&&void 0!==E?E:y.textDecoration),this.textShadow=sn(g,Km,y.textShadow),this.textTransform=sn(g,xk,y.textTransform),this.transform=sn(g,Ck,y.transform),this.transformOrigin=sn(g,mg,y.transformOrigin),this.visibility=sn(g,Wr,y.visibility),this.webkitTextStrokeColor=sn(g,pg,y.webkitTextStrokeColor),this.webkitTextStrokeWidth=sn(g,Mu,y.webkitTextStrokeWidth),this.wordBreak=sn(g,Vn,y.wordBreak),this.zIndex=sn(g,wo,y.zIndex)}return b.prototype.isVisible=function(){return this.display>0&&this.opacity>0&&0===this.visibility},b.prototype.isTransparent=function(){return yu(this.backgroundColor)},b.prototype.isTransformed=function(){return null!==this.transform},b.prototype.isPositioned=function(){return 0!==this.position},b.prototype.isPositionedWithZIndex=function(){return this.isPositioned()&&!this.zIndex.auto},b.prototype.isFloating=function(){return 0!==this.float},b.prototype.isInlineLevel=function(){return Io(this.display,4)||Io(this.display,33554432)||Io(this.display,268435456)||Io(this.display,536870912)||Io(this.display,67108864)||Io(this.display,134217728)},b}(),N_=function(){return function b(g,y){this.content=sn(g,Zh,y.content),this.quotes=sn(g,gc,y.quotes)}}(),tf=function(){return function b(g,y){this.counterIncrement=sn(g,to,y.counterIncrement),this.counterReset=sn(g,Ym,y.counterReset)}}(),sn=function(b,g,y){var _=new bu,E=null!==y&&typeof y<"u"?y.toString():g.initialValue;_.write(E);var L=new cC(_.read());switch(g.type){case 2:var K=L.parseComponentValue();return g.parse(b,oe(K)?K.value:g.initialValue);case 0:return g.parse(b,L.parseComponentValue());case 1:return g.parse(b,L.parseComponentValues());case 4:return L.parseComponentValue();case 3:switch(g.format){case"angle":return vu_parse(b,L.parseComponentValue());case"color":return pc_parse(b,L.parseComponentValue());case"image":return F__parse(b,L.parseComponentValue());case"length":var ce=L.parseComponentValue();return bd(ce)?ce:co;case"length-percentage":var se=L.parseComponentValue();return ko(se)?se:co;case"time":return qa.parse(b,L.parseComponentValue())}}},no=function(b,g){var y=function(b){switch(b.getAttribute("data-html2canvas-debug")){case"all":return 1;case"clone":return 2;case"parse":return 3;case"render":return 4;default:return 0}}(b);return 1===y||g===y},Wa=function(){return function b(g,y){this.context=g,this.textNodes=[],this.elements=[],this.flags=0,no(y,3),this.styles=new ci(g,window.getComputedStyle(y,null)),iv(y)&&(this.styles.animationDuration.some(function(_){return _>0})&&(y.style.animationDuration="0s"),null!==this.styles.transform&&(y.style.transform="none")),this.bounds=F(this.context,y),no(y,4)&&(this.flags|=16)}}(),hs="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Su=typeof Uint8Array>"u"?[]:new Uint8Array(256),Wl=0;Wl<64;Wl++)Su[hs.charCodeAt(Wl)]=Wl;for(var Tk=function(b,g,y){return b.slice?b.slice(g,y):new Uint16Array(Array.prototype.slice.call(b,g,y))},DC=function(){function b(g,y,_,E,L,K){this.initialValue=g,this.errorValue=y,this.highStart=_,this.highValueIndex=E,this.index=L,this.data=K}return b.prototype.get=function(g){var y;if(g>=0){if(g<55296||g>56319&&g<=65535)return this.data[y=((y=this.index[g>>5])<<2)+(31&g)];if(g<=65535)return this.data[y=((y=this.index[2048+(g-55296>>5)])<<2)+(31&g)];if(g>11)],this.data[y=((y=this.index[y+=g>>5&63])<<2)+(31&g)];if(g<=1114111)return this.data[this.highValueIndex]}return this.errorValue},b}(),V_="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",N6=typeof Uint8Array>"u"?[]:new Uint8Array(256),Q_=0;Q_<64;Q_++)N6[V_.charCodeAt(Q_)]=Q_;var PC=8,q_=9,W_=11,NC=12,HC=function(){for(var b=[],g=0;g>10),K%1024+56320),(E+1===y||_.length>16384)&&(L+=String.fromCharCode.apply(String,_),_.length=0)}return L},VC=function(b,g){var y=function(b){var _,L,K,ce,se,g=.75*b.length,y=b.length,E=0;"="===b[b.length-1]&&(g--,"="===b[b.length-2]&&g--);var Ve=typeof ArrayBuffer<"u"&&typeof Uint8Array<"u"&&typeof Uint8Array.prototype.slice<"u"?new ArrayBuffer(g):new Array(g),je=Array.isArray(Ve)?Ve:new Uint8Array(Ve);for(_=0;_>4,je[E++]=(15&K)<<4|ce>>2,je[E++]=(3&ce)<<6|63&se;return Ve}(b),_=Array.isArray(y)?function(b){for(var g=b.length,y=[],_=0;_=55296&&E<=56319&&y<_){var L=b.charCodeAt(y++);56320==(64512&L)?g.push(((1023&E)<<10)+(1023&L)+65536):(g.push(E),y--)}else g.push(E)}return g}(b),y=g.length,_=0,E=0,L=g.map(br);return{next:function(){if(_>=y)return{done:!0,value:null};for(var K="\xd7";_K.x||je.y>K.y;return K=je,0===Ve||it});return b.body.removeChild(g),ce}(document);return Object.defineProperty(fs,"SUPPORT_WORD_BREAKING",{value:b}),b},get SUPPORT_SVG_DRAWING(){var b=function(b){var g=new Image,y=b.createElement("canvas"),_=y.getContext("2d");if(!_)return!1;g.src="data:image/svg+xml,";try{_.drawImage(g,0,0),y.toDataURL()}catch{return!1}return!0}(document);return Object.defineProperty(fs,"SUPPORT_SVG_DRAWING",{value:b}),b},get SUPPORT_FOREIGNOBJECT_DRAWING(){var b="function"==typeof Array.from&&"function"==typeof window.fetch?function(b){var g=b.createElement("canvas"),y=100;g.width=y,g.height=y;var _=g.getContext("2d");if(!_)return Promise.reject(!1);_.fillStyle="rgb(0, 255, 0)",_.fillRect(0,0,y,y);var E=new Image,L=g.toDataURL();E.src=L;var K=Ka(y,y,0,0,E);return _.fillStyle="red",_.fillRect(0,0,y,y),j_(K).then(function(ce){_.drawImage(ce,0,0);var se=_.getImageData(0,0,y,y).data;_.fillStyle="red",_.fillRect(0,0,y,y);var Ve=b.createElement("div");return Ve.style.backgroundImage="url("+L+")",Ve.style.height=y+"px",vg(se)?j_(Ka(y,y,0,0,Ve)):Promise.reject(!1)}).then(function(ce){return _.drawImage(ce,0,0),vg(_.getImageData(0,0,y,y).data)}).catch(function(){return!1})}(document):Promise.resolve(!1);return Object.defineProperty(fs,"SUPPORT_FOREIGNOBJECT_DRAWING",{value:b}),b},get SUPPORT_CORS_IMAGES(){var b=typeof(new Image).crossOrigin<"u";return Object.defineProperty(fs,"SUPPORT_CORS_IMAGES",{value:b}),b},get SUPPORT_RESPONSE_TYPE(){var b="string"==typeof(new XMLHttpRequest).responseType;return Object.defineProperty(fs,"SUPPORT_RESPONSE_TYPE",{value:b}),b},get SUPPORT_CORS_XHR(){var b="withCredentials"in new XMLHttpRequest;return Object.defineProperty(fs,"SUPPORT_CORS_XHR",{value:b}),b},get SUPPORT_NATIVE_TEXT_SEGMENTATION(){var b=!!(typeof Intl<"u"&&Intl.Segmenter);return Object.defineProperty(fs,"SUPPORT_NATIVE_TEXT_SEGMENTATION",{value:b}),b}},sf=function(){return function b(g,y){this.text=g,this.bounds=y}}(),X_=function(b,g){var y=g.ownerDocument;if(y){var _=y.createElement("html2canvaswrapper");_.appendChild(g.cloneNode(!0));var E=g.parentNode;if(E){E.replaceChild(_,g);var L=F(b,_);return _.firstChild&&E.replaceChild(_.firstChild,_),L}}return k.EMPTY},af=function(b,g,y){var _=b.ownerDocument;if(!_)throw new Error("Node has no owner document");var E=_.createRange();return E.setStart(b,g),E.setEnd(b,g+y),E},lf=function(b){if(fs.SUPPORT_NATIVE_TEXT_SEGMENTATION){var g=new Intl.Segmenter(void 0,{granularity:"grapheme"});return Array.from(g.segment(b)).map(function(y){return y.segment})}return function(b){for(var _,g=Jm(b),y=[];!(_=g.next()).done;)_.value&&y.push(_.value.slice());return y}(b)},Fu=function(b,g){return 0!==g.letterSpacing?lf(b):function(b,g){if(fs.SUPPORT_NATIVE_TEXT_SEGMENTATION){var y=new Intl.Segmenter(void 0,{granularity:"word"});return Array.from(y.segment(b)).map(function(_){return _.segment})}return zC(b,g)}(b,g)},Zn=[32,160,4961,65792,65793,4153,4241],zC=function(b,g){for(var E,y=function(b,g){var y=T(b),_=vo(y,g),E=_[0],L=_[1],K=_[2],ce=y.length,se=0,Ve=0;return{next:function(){if(Ve>=ce)return{done:!0,value:null};for(var je=Yt;Ve0)if(fs.SUPPORT_RANGE_BOUNDS){var se=af(_,K,ce.length).getClientRects();if(se.length>1){var Ve=lf(ce),je=0;Ve.forEach(function(Ct){L.push(new sf(Ct,k.fromDOMRectList(b,af(_,je+K,Ct.length).getClientRects()))),je+=Ct.length})}else L.push(new sf(ce,k.fromDOMRectList(b,se)))}else{var it=_.splitText(ce.length);L.push(new sf(ce,X_(b,_))),_=it}else fs.SUPPORT_RANGE_BOUNDS||(_=_.splitText(ce.length));K+=ce.length}),L}(g,this.text,_,y)}}(),Bk=function(b,g){switch(g){case 1:return b.toLowerCase();case 3:return b.replace(Dk,Rk);case 2:return b.toUpperCase();default:return b}},Dk=/(^|\s|:|-|\(|\))([a-z])/g,Rk=function(b,g,y){return b.length>0?g+y.toUpperCase():b},Z_=function(b){function g(y,_){var E=b.call(this,y,_)||this;return E.src=_.currentSrc||_.src,E.intrinsicWidth=_.naturalWidth,E.intrinsicHeight=_.naturalHeight,E.context.cache.addImage(E.src),E}return p(g,b),g}(Wa),ku=function(b){function g(y,_){var E=b.call(this,y,_)||this;return E.canvas=_,E.intrinsicWidth=_.width,E.intrinsicHeight=_.height,E}return p(g,b),g}(Wa),GC=function(b){function g(y,_){var E=b.call(this,y,_)||this,L=new XMLSerializer,K=F(y,_);return _.setAttribute("width",K.width+"px"),_.setAttribute("height",K.height+"px"),E.svg="data:image/svg+xml,"+encodeURIComponent(L.serializeToString(_)),E.intrinsicWidth=_.width.baseVal.value,E.intrinsicHeight=_.height.baseVal.value,E.context.cache.addImage(E.svg),E}return p(g,b),g}(Wa),qC=function(b){function g(y,_){var E=b.call(this,y,_)||this;return E.value=_.value,E}return p(g,b),g}(Wa),J_=function(b){function g(y,_){var E=b.call(this,y,_)||this;return E.start=_.start,E.reversed="boolean"==typeof _.reversed&&!0===_.reversed,E}return p(g,b),g}(Wa),Lk=[{type:15,flags:0,unit:"px",number:3}],Pk=[{type:16,flags:0,number:50}],Ft="checkbox",kt="radio",fr="password",ev=707406591,Iu=function(b){function g(y,_){var E=b.call(this,y,_)||this;switch(E.type=_.type.toLowerCase(),E.checked=_.checked,E.value=function(b){var g=b.type===fr?new Array(b.value.length+1).join("\u2022"):b.value;return 0===g.length?b.placeholder||"":g}(_),(E.type===Ft||E.type===kt)&&(E.styles.backgroundColor=3739148031,E.styles.borderTopColor=E.styles.borderRightColor=E.styles.borderBottomColor=E.styles.borderLeftColor=2779096575,E.styles.borderTopWidth=E.styles.borderRightWidth=E.styles.borderBottomWidth=E.styles.borderLeftWidth=1,E.styles.borderTopStyle=E.styles.borderRightStyle=E.styles.borderBottomStyle=E.styles.borderLeftStyle=1,E.styles.backgroundClip=[0],E.styles.backgroundOrigin=[0],E.bounds=function(b){return b.width>b.height?new k(b.left+(b.width-b.height)/2,b.top,b.height,b.height):b.width0)y.textNodes.push(new U6(b,E,y.styles));else if(ra(E))if(KC(E)&&E.assignedNodes)E.assignedNodes().forEach(function(ce){return tv(b,ce,y,_)});else{var K=nv(b,E);K.styles.isVisible()&&(bc(E,K,_)?K.flags|=4:WC(K.styles)&&(K.flags|=2),-1!==Nk.indexOf(E.tagName)&&(K.flags|=8),y.elements.push(K),E.shadowRoot?tv(b,E.shadowRoot,K,_):!ip(E)&&!xg(E)&&!df(E)&&tv(b,E,K,_))}},nv=function(b,g){return np(g)?new Z_(b,g):$C(g)?new ku(b,g):xg(g)?new GC(b,g):Ok(g)?new qC(b,g):Uk(g)?new J_(b,g):rv(g)?new Iu(b,g):df(g)?new gl(b,g):ip(g)?new yg(b,g):av(g)?new wg(b,g):new Wa(b,g)},Ts=function(b,g){var y=nv(b,g);return y.flags|=4,tv(b,g,y,y),y},bc=function(b,g,y){return g.styles.isPositionedWithZIndex()||g.styles.opacity<1||g.styles.isTransformed()||cf(b)&&y.styles.isTransparent()},WC=function(b){return b.isPositioned()||b.isFloating()},Xa=function(b){return b.nodeType===Node.TEXT_NODE},ra=function(b){return b.nodeType===Node.ELEMENT_NODE},iv=function(b){return ra(b)&&typeof b.style<"u"&&!tp(b)},tp=function(b){return"object"==typeof b.className},Ok=function(b){return"LI"===b.tagName},Uk=function(b){return"OL"===b.tagName},rv=function(b){return"INPUT"===b.tagName},xg=function(b){return"svg"===b.tagName},cf=function(b){return"BODY"===b.tagName},$C=function(b){return"CANVAS"===b.tagName},sv=function(b){return"VIDEO"===b.tagName},np=function(b){return"IMG"===b.tagName},av=function(b){return"IFRAME"===b.tagName},lv=function(b){return"STYLE"===b.tagName},ip=function(b){return"TEXTAREA"===b.tagName},df=function(b){return"SELECT"===b.tagName},KC=function(b){return"SLOT"===b.tagName},ms=function(b){return b.tagName.indexOf("-")>0},Bu=function(){function b(){this.counters={}}return b.prototype.getCounterValue=function(g){var y=this.counters[g];return y&&y.length?y[y.length-1]:1},b.prototype.getCounterValues=function(g){return this.counters[g]||[]},b.prototype.pop=function(g){var y=this;g.forEach(function(_){return y.counters[_].pop()})},b.prototype.parse=function(g){var y=this,_=g.counterIncrement,E=g.counterReset,L=!0;null!==_&&_.forEach(function(ce){var se=y.counters[ce.counter];se&&0!==ce.increment&&(L=!1,se.length||se.push(1),se[Math.max(0,se.length-1)]+=ce.increment)});var K=[];return L&&E.forEach(function(ce){var se=y.counters[ce.counter];K.push(ce.counter),se||(se=y.counters[ce.counter]=[]),se.push(ce.reset)}),K},b}(),Mr={integers:[1e3,900,500,400,100,90,50,40,10,9,5,4,1],values:["M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"]},bl={integers:[9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["\u0554","\u0553","\u0552","\u0551","\u0550","\u054f","\u054e","\u054d","\u054c","\u054b","\u054a","\u0549","\u0548","\u0547","\u0546","\u0545","\u0544","\u0543","\u0542","\u0541","\u0540","\u053f","\u053e","\u053d","\u053c","\u053b","\u053a","\u0539","\u0538","\u0537","\u0536","\u0535","\u0534","\u0533","\u0532","\u0531"]},Hk={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,400,300,200,100,90,80,70,60,50,40,30,20,19,18,17,16,15,10,9,8,7,6,5,4,3,2,1],values:["\u05d9\u05f3","\u05d8\u05f3","\u05d7\u05f3","\u05d6\u05f3","\u05d5\u05f3","\u05d4\u05f3","\u05d3\u05f3","\u05d2\u05f3","\u05d1\u05f3","\u05d0\u05f3","\u05ea","\u05e9","\u05e8","\u05e7","\u05e6","\u05e4","\u05e2","\u05e1","\u05e0","\u05de","\u05dc","\u05db","\u05d9\u05d8","\u05d9\u05d7","\u05d9\u05d6","\u05d8\u05d6","\u05d8\u05d5","\u05d9","\u05d8","\u05d7","\u05d6","\u05d5","\u05d4","\u05d3","\u05d2","\u05d1","\u05d0"]},Cg={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["\u10f5","\u10f0","\u10ef","\u10f4","\u10ee","\u10ed","\u10ec","\u10eb","\u10ea","\u10e9","\u10e8","\u10e7","\u10e6","\u10e5","\u10e4","\u10f3","\u10e2","\u10e1","\u10e0","\u10df","\u10de","\u10dd","\u10f2","\u10dc","\u10db","\u10da","\u10d9","\u10d8","\u10d7","\u10f1","\u10d6","\u10d5","\u10d4","\u10d3","\u10d2","\u10d1","\u10d0"]},uf=function(b,g,y,_,E,L){return by?$l(b,E,L.length>0):_.integers.reduce(function(K,ce,se){for(;b>=ce;)b-=ce,K+=_.values[se];return K},"")+L},cv=function(b,g,y,_){var E="";do{y||b--,E=_(b)+E,b/=g}while(b*g>=g);return E},ho=function(b,g,y,_,E){var L=y-g+1;return(b<0?"-":"")+(cv(Math.abs(b),L,_,function(K){return N(Math.floor(K%L)+g)})+E)},_l=function(b,g,y){void 0===y&&(y=". ");var _=g.length;return cv(Math.abs(b),_,!1,function(E){return g[Math.floor(E%_)]})+y},Ya=function(b,g,y,_,E,L){if(b<-9999||b>9999)return $l(b,4,E.length>0);var K=Math.abs(b),ce=E;if(0===K)return g[0]+ce;for(var se=0;K>0&&se<=4;se++){var Ve=K%10;0===Ve&&Io(L,1)&&""!==ce?ce=g[Ve]+ce:Ve>1||1===Ve&&0===se||1===Ve&&1===se&&Io(L,2)||1===Ve&&1===se&&Io(L,4)&&b>100||1===Ve&&se>1&&Io(L,8)?ce=g[Ve]+(se>0?y[se-1]:"")+ce:1===Ve&&se>0&&(ce=y[se-1]+ce),K=Math.floor(K/10)}return(b<0?_:"")+ce},hv="\ub9c8\uc774\ub108\uc2a4",$l=function(b,g,y){var _=y?". ":"",E=y?"\u3001":"",L=y?", ":"",K=y?" ":"";switch(g){case 0:return"\u2022"+K;case 1:return"\u25e6"+K;case 2:return"\u25fe"+K;case 5:var ce=ho(b,48,57,!0,_);return ce.length<4?"0"+ce:ce;case 4:return _l(b,"\u3007\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d",E);case 6:return uf(b,1,3999,Mr,3,_).toLowerCase();case 7:return uf(b,1,3999,Mr,3,_);case 8:return ho(b,945,969,!1,_);case 9:return ho(b,97,122,!1,_);case 10:return ho(b,65,90,!1,_);case 11:return ho(b,1632,1641,!0,_);case 12:case 49:return uf(b,1,9999,bl,3,_);case 35:return uf(b,1,9999,bl,3,_).toLowerCase();case 13:return ho(b,2534,2543,!0,_);case 14:case 30:return ho(b,6112,6121,!0,_);case 15:return _l(b,"\u5b50\u4e11\u5bc5\u536f\u8fb0\u5df3\u5348\u672a\u7533\u9149\u620c\u4ea5",E);case 16:return _l(b,"\u7532\u4e59\u4e19\u4e01\u620a\u5df1\u5e9a\u8f9b\u58ec\u7678",E);case 17:case 48:return Ya(b,"\u96f6\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d","\u5341\u767e\u5343\u842c","\u8ca0",E,14);case 47:return Ya(b,"\u96f6\u58f9\u8cb3\u53c3\u8086\u4f0d\u9678\u67d2\u634c\u7396","\u62fe\u4f70\u4edf\u842c","\u8ca0",E,15);case 42:return Ya(b,"\u96f6\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d","\u5341\u767e\u5343\u842c","\u8d1f",E,14);case 41:return Ya(b,"\u96f6\u58f9\u8d30\u53c1\u8086\u4f0d\u9646\u67d2\u634c\u7396","\u62fe\u4f70\u4edf\u842c","\u8d1f",E,15);case 26:return Ya(b,"\u3007\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d","\u5341\u767e\u5343\u4e07","\u30de\u30a4\u30ca\u30b9",E,0);case 25:return Ya(b,"\u96f6\u58f1\u5f10\u53c2\u56db\u4f0d\u516d\u4e03\u516b\u4e5d","\u62fe\u767e\u5343\u4e07","\u30de\u30a4\u30ca\u30b9",E,7);case 31:return Ya(b,"\uc601\uc77c\uc774\uc0bc\uc0ac\uc624\uc721\uce60\ud314\uad6c","\uc2ed\ubc31\ucc9c\ub9cc",hv,L,7);case 33:return Ya(b,"\u96f6\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d","\u5341\u767e\u5343\u842c",hv,L,0);case 32:return Ya(b,"\u96f6\u58f9\u8cb3\u53c3\u56db\u4e94\u516d\u4e03\u516b\u4e5d","\u62fe\u767e\u5343",hv,L,7);case 18:return ho(b,2406,2415,!0,_);case 20:return uf(b,1,19999,Cg,3,_);case 21:return ho(b,2790,2799,!0,_);case 22:return ho(b,2662,2671,!0,_);case 22:return uf(b,1,10999,Hk,3,_);case 23:return _l(b,"\u3042\u3044\u3046\u3048\u304a\u304b\u304d\u304f\u3051\u3053\u3055\u3057\u3059\u305b\u305d\u305f\u3061\u3064\u3066\u3068\u306a\u306b\u306c\u306d\u306e\u306f\u3072\u3075\u3078\u307b\u307e\u307f\u3080\u3081\u3082\u3084\u3086\u3088\u3089\u308a\u308b\u308c\u308d\u308f\u3090\u3091\u3092\u3093");case 24:return _l(b,"\u3044\u308d\u306f\u306b\u307b\u3078\u3068\u3061\u308a\u306c\u308b\u3092\u308f\u304b\u3088\u305f\u308c\u305d\u3064\u306d\u306a\u3089\u3080\u3046\u3090\u306e\u304a\u304f\u3084\u307e\u3051\u3075\u3053\u3048\u3066\u3042\u3055\u304d\u3086\u3081\u307f\u3057\u3091\u3072\u3082\u305b\u3059");case 27:return ho(b,3302,3311,!0,_);case 28:return _l(b,"\u30a2\u30a4\u30a6\u30a8\u30aa\u30ab\u30ad\u30af\u30b1\u30b3\u30b5\u30b7\u30b9\u30bb\u30bd\u30bf\u30c1\u30c4\u30c6\u30c8\u30ca\u30cb\u30cc\u30cd\u30ce\u30cf\u30d2\u30d5\u30d8\u30db\u30de\u30df\u30e0\u30e1\u30e2\u30e4\u30e6\u30e8\u30e9\u30ea\u30eb\u30ec\u30ed\u30ef\u30f0\u30f1\u30f2\u30f3",E);case 29:return _l(b,"\u30a4\u30ed\u30cf\u30cb\u30db\u30d8\u30c8\u30c1\u30ea\u30cc\u30eb\u30f2\u30ef\u30ab\u30e8\u30bf\u30ec\u30bd\u30c4\u30cd\u30ca\u30e9\u30e0\u30a6\u30f0\u30ce\u30aa\u30af\u30e4\u30de\u30b1\u30d5\u30b3\u30a8\u30c6\u30a2\u30b5\u30ad\u30e6\u30e1\u30df\u30b7\u30f1\u30d2\u30e2\u30bb\u30b9",E);case 34:return ho(b,3792,3801,!0,_);case 37:return ho(b,6160,6169,!0,_);case 38:return ho(b,4160,4169,!0,_);case 39:return ho(b,2918,2927,!0,_);case 40:return ho(b,1776,1785,!0,_);case 43:return ho(b,3046,3055,!0,_);case 44:return ho(b,3174,3183,!0,_);case 45:return ho(b,3664,3673,!0,_);case 46:return ho(b,3872,3881,!0,_);default:return ho(b,48,57,!0,_)}},hf="data-html2canvas-ignore",XC=function(){function b(g,y,_){if(this.context=g,this.options=_,this.scrolledElements=[],this.referenceElement=y,this.counters=new Bu,this.quoteDepth=0,!y.ownerDocument)throw new Error("Cloned element does not have an owner document");this.documentElement=this.cloneNode(y.ownerDocument.documentElement,!1)}return b.prototype.toIFrame=function(g,y){var _=this,E=Vk(g,y);if(!E.contentWindow)return Promise.reject("Unable to find iframe window");var L=g.defaultView.pageXOffset,K=g.defaultView.pageYOffset,ce=E.contentWindow,se=ce.document,Ve=H6(E).then(function(){return Q(_,void 0,void 0,function(){var je,it;return f(this,function(Ct){switch(Ct.label){case 0:return this.scrolledElements.forEach(sp),ce&&(ce.scrollTo(y.left,y.top),/(iPad|iPhone|iPod)/g.test(navigator.userAgent)&&(ce.scrollY!==y.top||ce.scrollX!==y.left)&&(this.context.logger.warn("Unable to restore scroll position for cloned document"),this.context.windowBounds=this.context.windowBounds.add(ce.scrollX-y.left,ce.scrollY-y.top,0,0))),je=this.options.onclone,typeof(it=this.clonedReferenceElement)>"u"?[2,Promise.reject("Error finding the "+this.referenceElement.nodeName+" in the cloned document")]:se.fonts&&se.fonts.ready?[4,se.fonts.ready]:[3,2];case 1:Ct.sent(),Ct.label=2;case 2:return/(AppleWebKit)/g.test(navigator.userAgent)?[4,zk(se)]:[3,4];case 3:Ct.sent(),Ct.label=4;case 4:return"function"==typeof je?[2,Promise.resolve().then(function(){return je(se,it)}).then(function(){return E})]:[2,E]}})})});return se.open(),se.write(op(document.doctype)+""),Gk(this.referenceElement.ownerDocument,L,K),se.replaceChild(se.adoptNode(this.documentElement),se.documentElement),se.close(),Ve},b.prototype.createElementClone=function(g){if(no(g,2),$C(g))return this.createCanvasClone(g);if(sv(g))return this.createVideoClone(g);if(lv(g))return this.createStyleClone(g);var y=g.cloneNode(!1);return np(y)&&(np(g)&&g.currentSrc&&g.currentSrc!==g.src&&(y.src=g.currentSrc,y.srcset=""),"lazy"===y.loading&&(y.loading="eager")),ms(y)?this.createCustomElementClone(y):y},b.prototype.createCustomElementClone=function(g){var y=document.createElement("html2canvascustomelement");return rp(g.style,y),y},b.prototype.createStyleClone=function(g){try{var y=g.sheet;if(y&&y.cssRules){var _=[].slice.call(y.cssRules,0).reduce(function(L,K){return K&&"string"==typeof K.cssText?L+K.cssText:L},""),E=g.cloneNode(!1);return E.textContent=_,E}}catch(L){if(this.context.logger.error("Unable to access cssRules property",L),"SecurityError"!==L.name)throw L}return g.cloneNode(!1)},b.prototype.createCanvasClone=function(g){var y;if(this.options.inlineImages&&g.ownerDocument){var _=g.ownerDocument.createElement("img");try{return _.src=g.toDataURL(),_}catch{this.context.logger.info("Unable to inline canvas contents, canvas is tainted",g)}}var E=g.cloneNode(!1);try{E.width=g.width,E.height=g.height;var L=g.getContext("2d"),K=E.getContext("2d");if(K)if(!this.options.allowTaint&&L)K.putImageData(L.getImageData(0,0,g.width,g.height),0,0);else{var ce=null!==(y=g.getContext("webgl2"))&&void 0!==y?y:g.getContext("webgl");if(ce){var se=ce.getContextAttributes();!1===se?.preserveDrawingBuffer&&this.context.logger.warn("Unable to clone WebGL context as it has preserveDrawingBuffer=false",g)}K.drawImage(g,0,0)}return E}catch{this.context.logger.info("Unable to clone canvas as it is tainted",g)}return E},b.prototype.createVideoClone=function(g){var y=g.ownerDocument.createElement("canvas");y.width=g.offsetWidth,y.height=g.offsetHeight;var _=y.getContext("2d");try{return _&&(_.drawImage(g,0,0,y.width,y.height),this.options.allowTaint||_.getImageData(0,0,y.width,y.height)),y}catch{this.context.logger.info("Unable to clone video as it is tainted",g)}var E=g.ownerDocument.createElement("canvas");return E.width=g.offsetWidth,E.height=g.offsetHeight,E},b.prototype.appendChildNode=function(g,y,_){(!ra(y)||!function(b){return"SCRIPT"===b.tagName}(y)&&!y.hasAttribute(hf)&&("function"!=typeof this.options.ignoreElements||!this.options.ignoreElements(y)))&&(!this.options.copyStyles||!ra(y)||!lv(y))&&g.appendChild(this.cloneNode(y,_))},b.prototype.cloneChildNodes=function(g,y,_){for(var E=this,L=g.shadowRoot?g.shadowRoot.firstChild:g.firstChild;L;L=L.nextSibling)if(ra(L)&&KC(L)&&"function"==typeof L.assignedNodes){var K=L.assignedNodes();K.length&&K.forEach(function(ce){return E.appendChildNode(y,ce,_)})}else this.appendChildNode(y,L,_)},b.prototype.cloneNode=function(g,y){if(Xa(g))return document.createTextNode(g.data);if(!g.ownerDocument)return g.cloneNode(!1);var _=g.ownerDocument.defaultView;if(_&&ra(g)&&(iv(g)||tp(g))){var E=this.createElementClone(g);E.style.transitionProperty="none";var L=_.getComputedStyle(g),K=_.getComputedStyle(g,":before"),ce=_.getComputedStyle(g,":after");this.referenceElement===g&&iv(E)&&(this.clonedReferenceElement=E),cf(E)&&qk(E);var se=this.counters.parse(new tf(this.context,L)),Ve=this.resolvePseudoContent(g,E,K,ff.BEFORE);ms(g)&&(y=!0),sv(g)||this.cloneChildNodes(g,E,y),Ve&&E.insertBefore(Ve,E.firstChild);var je=this.resolvePseudoContent(g,E,ce,ff.AFTER);return je&&E.appendChild(je),this.counters.pop(se),(L&&(this.options.copyStyles||tp(g))&&!av(g)||y)&&rp(L,E),(0!==g.scrollTop||0!==g.scrollLeft)&&this.scrolledElements.push([E,g.scrollLeft,g.scrollTop]),(ip(g)||df(g))&&(ip(E)||df(E))&&(E.value=g.value),E}return g.cloneNode(!1)},b.prototype.resolvePseudoContent=function(g,y,_,E){var L=this;if(_){var K=_.content,ce=y.ownerDocument;if(ce&&K&&"none"!==K&&"-moz-alt-content"!==K&&"none"!==_.display){this.counters.parse(new tf(this.context,_));var se=new N_(this.context,_),Ve=ce.createElement("html2canvaspseudoelement");rp(_,Ve),se.content.forEach(function(it){if(0===it.type)Ve.appendChild(ce.createTextNode(it.value));else if(22===it.type){var Ct=ce.createElement("img");Ct.src=it.value,Ct.style.opacity="1",Ve.appendChild(Ct)}else if(18===it.type){if("attr"===it.name){var tn=it.values.filter(oe);tn.length&&Ve.appendChild(ce.createTextNode(g.getAttribute(tn[0].value)||""))}else if("counter"===it.name){var Jt=it.values.filter(gd),pi=Jt[1];if((cn=Jt[0])&&oe(cn)){var dn=L.counters.getCounterValue(cn.value),Mn=pi&&oe(pi)?fg.parse(L.context,pi.value):3;Ve.appendChild(ce.createTextNode($l(dn,Mn,!1)))}}else if("counters"===it.name){var cn,Ji=it.values.filter(gd),_i=Ji[1];if(pi=Ji[2],(cn=Ji[0])&&oe(cn)){var ei=L.counters.getCounterValues(cn.value),yn=pi&&oe(pi)?fg.parse(L.context,pi.value):3,ji=_i&&0===_i.type?_i.value:"",zi=ei.map(function(oa){return $l(oa,yn,!1)}).join(ji);Ve.appendChild(ce.createTextNode(zi))}}}else if(20===it.type)switch(it.value){case"open-quote":Ve.appendChild(ce.createTextNode(ef(se.quotes,L.quoteDepth++,!0)));break;case"close-quote":Ve.appendChild(ce.createTextNode(ef(se.quotes,--L.quoteDepth,!1)));break;default:Ve.appendChild(ce.createTextNode(it.value))}}),Ve.className=YC+" "+Sg;var je=E===ff.BEFORE?" "+YC:" "+Sg;return tp(y)?y.className.baseValue+=je:y.className+=je,Ve}}},b.destroy=function(g){return!!g.parentNode&&(g.parentNode.removeChild(g),!0)},b}(),ff=function(b){return b[b.BEFORE=0]="BEFORE",b[b.AFTER=1]="AFTER",b}(ff||{}),Vk=function(b,g){var y=b.createElement("iframe");return y.className="html2canvas-container",y.style.visibility="hidden",y.style.position="fixed",y.style.left="-10000px",y.style.top="0px",y.style.border="0",y.width=g.width.toString(),y.height=g.height.toString(),y.scrolling="no",y.setAttribute(hf,"true"),b.body.appendChild(y),y},Qk=function(b){return new Promise(function(g){b.complete?g():b.src?(b.onload=g,b.onerror=g):g()})},zk=function(b){return Promise.all([].slice.call(b.images,0).map(Qk))},H6=function(b){return new Promise(function(g,y){var _=b.contentWindow;if(!_)return y("No window assigned for iframe");var E=_.document;_.onload=b.onload=function(){_.onload=b.onload=null;var L=setInterval(function(){E.body.childNodes.length>0&&"complete"===E.readyState&&(clearInterval(L),g(b))},50)}})},V6=["all","d","content"],rp=function(b,g){for(var y=b.length-1;y>=0;y--){var _=b.item(y);-1===V6.indexOf(_)&&g.style.setProperty(_,b.getPropertyValue(_))}return g},op=function(b){var g="";return b&&(g+=""),g},Gk=function(b,g,y){b&&b.defaultView&&(g!==b.defaultView.pageXOffset||y!==b.defaultView.pageYOffset)&&b.defaultView.scrollTo(g,y)},sp=function(b){var g=b[0],_=b[2];g.scrollLeft=b[1],g.scrollTop=_},YC="___html2canvas___pseudoelement_before",Sg="___html2canvas___pseudoelement_after",mv='{\n content: "" !important;\n display: none !important;\n}',qk=function(b){jl(b,"."+YC+":before"+mv+"\n ."+Sg+":after"+mv)},jl=function(b,g){var y=b.ownerDocument;if(y){var _=y.createElement("style");_.textContent=g,b.appendChild(_)}},ZC=function(){function b(){}return b.getOrigin=function(g){var y=b._link;return y?(y.href=g,y.href=y.href,y.protocol+y.hostname+y.port):"about:blank"},b.isSameOrigin=function(g){return b.getOrigin(g)===b._origin},b.setContext=function(g){b._link=g.document.createElement("a"),b._origin=b.getOrigin(g.location.href)},b._origin="about:blank",b}(),Tg=function(){function b(g,y){this.context=g,this._options=y,this._cache={}}return b.prototype.addImage=function(g){var y=Promise.resolve();return this.has(g)||(kg(g)||Av(g))&&(this._cache[g]=this.loadImage(g)).catch(function(){}),y},b.prototype.match=function(g){return this._cache[g]},b.prototype.loadImage=function(g){return Q(this,void 0,void 0,function(){var y,_,E,L,K=this;return f(this,function(ce){switch(ce.label){case 0:return y=ZC.isSameOrigin(g),_=!gv(g)&&!0===this._options.useCORS&&fs.SUPPORT_CORS_IMAGES&&!y,E=!gv(g)&&!y&&!kg(g)&&"string"==typeof this._options.proxy&&fs.SUPPORT_CORS_XHR&&!_,y||!1!==this._options.allowTaint||gv(g)||kg(g)||E||_?(L=g,E?[4,this.proxy(L)]:[3,2]):[2];case 1:L=ce.sent(),ce.label=2;case 2:return this.context.logger.debug("Added image "+g.substring(0,256)),[4,new Promise(function(se,Ve){var je=new Image;je.onload=function(){return se(je)},je.onerror=Ve,(e2(L)||_)&&(je.crossOrigin="anonymous"),je.src=L,!0===je.complete&&setTimeout(function(){return se(je)},500),K._options.imageTimeout>0&&setTimeout(function(){return Ve("Timed out ("+K._options.imageTimeout+"ms) loading image")},K._options.imageTimeout)})];case 3:return[2,ce.sent()]}})})},b.prototype.has=function(g){return typeof this._cache[g]<"u"},b.prototype.keys=function(){return Promise.resolve(Object.keys(this._cache))},b.prototype.proxy=function(g){var y=this,_=this._options.proxy;if(!_)throw new Error("No proxy defined");var E=g.substring(0,256);return new Promise(function(L,K){var ce=fs.SUPPORT_RESPONSE_TYPE?"blob":"text",se=new XMLHttpRequest;se.onload=function(){if(200===se.status)if("text"===ce)L(se.response);else{var it=new FileReader;it.addEventListener("load",function(){return L(it.result)},!1),it.addEventListener("error",function(Ct){return K(Ct)},!1),it.readAsDataURL(se.response)}else K("Failed to proxy resource "+E+" with status code "+se.status)},se.onerror=K;var Ve=_.indexOf("?")>-1?"&":"?";if(se.open("GET",""+_+Ve+"url="+encodeURIComponent(g)+"&responseType="+ce),"text"!==ce&&se instanceof XMLHttpRequest&&(se.responseType=ce),y._options.imageTimeout){var je=y._options.imageTimeout;se.timeout=je,se.ontimeout=function(){return K("Timed out ("+je+"ms) proxying "+E)}}se.send()})},b}(),pv=/^data:image\/svg\+xml/i,JC=/^data:image\/.*;base64,/i,Fg=/^data:image\/.*/i,Av=function(b){return fs.SUPPORT_SVG_DRAWING||!t2(b)},gv=function(b){return Fg.test(b)},e2=function(b){return JC.test(b)},kg=function(b){return"blob"===b.substr(0,4)},t2=function(b){return"svg"===b.substr(-3).toLowerCase()||pv.test(b)},gn=function(){function b(g,y){this.type=0,this.x=g,this.y=y}return b.prototype.add=function(g,y){return new b(this.x+g,this.y+y)},b}(),mf=function(b,g,y){return new gn(b.x+(g.x-b.x)*y,b.y+(g.y-b.y)*y)},Du=function(){function b(g,y,_,E){this.type=1,this.start=g,this.startControl=y,this.endControl=_,this.end=E}return b.prototype.subdivide=function(g,y){var _=mf(this.start,this.startControl,g),E=mf(this.startControl,this.endControl,g),L=mf(this.endControl,this.end,g),K=mf(_,E,g),ce=mf(E,L,g),se=mf(K,ce,g);return y?new b(this.start,_,K,se):new b(se,ce,L,this.end)},b.prototype.add=function(g,y){return new b(this.start.add(g,y),this.startControl.add(g,y),this.endControl.add(g,y),this.end.add(g,y))},b.prototype.reverse=function(){return new b(this.end,this.endControl,this.startControl,this.start)},b}(),Jo=function(b){return 1===b.type},Wk=function(){return function b(g){var y=g.styles,_=g.bounds,E=zm(y.borderTopLeftRadius,_.width,_.height),L=E[0],K=E[1],ce=zm(y.borderTopRightRadius,_.width,_.height),se=ce[0],Ve=ce[1],je=zm(y.borderBottomRightRadius,_.width,_.height),it=je[0],Ct=je[1],tn=zm(y.borderBottomLeftRadius,_.width,_.height),Jt=tn[0],cn=tn[1],pi=[];pi.push((L+se)/_.width),pi.push((Jt+it)/_.width),pi.push((K+cn)/_.height),pi.push((Ve+Ct)/_.height);var dn=Math.max.apply(Math,pi);dn>1&&(L/=dn,K/=dn,se/=dn,Ve/=dn,it/=dn,Ct/=dn,Jt/=dn,cn/=dn);var Mn=_.width-se,Ji=_.height-Ct,_i=_.width-it,ei=_.height-cn,yn=y.borderTopWidth,ji=y.borderRightWidth,zi=y.borderBottomWidth,ri=y.borderLeftWidth,xo=ir(y.paddingTop,g.bounds.width),oa=ir(y.paddingRight,g.bounds.width),_a=ir(y.paddingBottom,g.bounds.width),vr=ir(y.paddingLeft,g.bounds.width);this.topLeftBorderDoubleOuterBox=L>0||K>0?Lr(_.left+ri/3,_.top+yn/3,L-ri/3,K-yn/3,dr.TOP_LEFT):new gn(_.left+ri/3,_.top+yn/3),this.topRightBorderDoubleOuterBox=L>0||K>0?Lr(_.left+Mn,_.top+yn/3,se-ji/3,Ve-yn/3,dr.TOP_RIGHT):new gn(_.left+_.width-ji/3,_.top+yn/3),this.bottomRightBorderDoubleOuterBox=it>0||Ct>0?Lr(_.left+_i,_.top+Ji,it-ji/3,Ct-zi/3,dr.BOTTOM_RIGHT):new gn(_.left+_.width-ji/3,_.top+_.height-zi/3),this.bottomLeftBorderDoubleOuterBox=Jt>0||cn>0?Lr(_.left+ri/3,_.top+ei,Jt-ri/3,cn-zi/3,dr.BOTTOM_LEFT):new gn(_.left+ri/3,_.top+_.height-zi/3),this.topLeftBorderDoubleInnerBox=L>0||K>0?Lr(_.left+2*ri/3,_.top+2*yn/3,L-2*ri/3,K-2*yn/3,dr.TOP_LEFT):new gn(_.left+2*ri/3,_.top+2*yn/3),this.topRightBorderDoubleInnerBox=L>0||K>0?Lr(_.left+Mn,_.top+2*yn/3,se-2*ji/3,Ve-2*yn/3,dr.TOP_RIGHT):new gn(_.left+_.width-2*ji/3,_.top+2*yn/3),this.bottomRightBorderDoubleInnerBox=it>0||Ct>0?Lr(_.left+_i,_.top+Ji,it-2*ji/3,Ct-2*zi/3,dr.BOTTOM_RIGHT):new gn(_.left+_.width-2*ji/3,_.top+_.height-2*zi/3),this.bottomLeftBorderDoubleInnerBox=Jt>0||cn>0?Lr(_.left+2*ri/3,_.top+ei,Jt-2*ri/3,cn-2*zi/3,dr.BOTTOM_LEFT):new gn(_.left+2*ri/3,_.top+_.height-2*zi/3),this.topLeftBorderStroke=L>0||K>0?Lr(_.left+ri/2,_.top+yn/2,L-ri/2,K-yn/2,dr.TOP_LEFT):new gn(_.left+ri/2,_.top+yn/2),this.topRightBorderStroke=L>0||K>0?Lr(_.left+Mn,_.top+yn/2,se-ji/2,Ve-yn/2,dr.TOP_RIGHT):new gn(_.left+_.width-ji/2,_.top+yn/2),this.bottomRightBorderStroke=it>0||Ct>0?Lr(_.left+_i,_.top+Ji,it-ji/2,Ct-zi/2,dr.BOTTOM_RIGHT):new gn(_.left+_.width-ji/2,_.top+_.height-zi/2),this.bottomLeftBorderStroke=Jt>0||cn>0?Lr(_.left+ri/2,_.top+ei,Jt-ri/2,cn-zi/2,dr.BOTTOM_LEFT):new gn(_.left+ri/2,_.top+_.height-zi/2),this.topLeftBorderBox=L>0||K>0?Lr(_.left,_.top,L,K,dr.TOP_LEFT):new gn(_.left,_.top),this.topRightBorderBox=se>0||Ve>0?Lr(_.left+Mn,_.top,se,Ve,dr.TOP_RIGHT):new gn(_.left+_.width,_.top),this.bottomRightBorderBox=it>0||Ct>0?Lr(_.left+_i,_.top+Ji,it,Ct,dr.BOTTOM_RIGHT):new gn(_.left+_.width,_.top+_.height),this.bottomLeftBorderBox=Jt>0||cn>0?Lr(_.left,_.top+ei,Jt,cn,dr.BOTTOM_LEFT):new gn(_.left,_.top+_.height),this.topLeftPaddingBox=L>0||K>0?Lr(_.left+ri,_.top+yn,Math.max(0,L-ri),Math.max(0,K-yn),dr.TOP_LEFT):new gn(_.left+ri,_.top+yn),this.topRightPaddingBox=se>0||Ve>0?Lr(_.left+Math.min(Mn,_.width-ji),_.top+yn,Mn>_.width+ji?0:Math.max(0,se-ji),Math.max(0,Ve-yn),dr.TOP_RIGHT):new gn(_.left+_.width-ji,_.top+yn),this.bottomRightPaddingBox=it>0||Ct>0?Lr(_.left+Math.min(_i,_.width-ri),_.top+Math.min(Ji,_.height-zi),Math.max(0,it-ji),Math.max(0,Ct-zi),dr.BOTTOM_RIGHT):new gn(_.left+_.width-ji,_.top+_.height-zi),this.bottomLeftPaddingBox=Jt>0||cn>0?Lr(_.left+ri,_.top+Math.min(ei,_.height-zi),Math.max(0,Jt-ri),Math.max(0,cn-zi),dr.BOTTOM_LEFT):new gn(_.left+ri,_.top+_.height-zi),this.topLeftContentBox=L>0||K>0?Lr(_.left+ri+vr,_.top+yn+xo,Math.max(0,L-(ri+vr)),Math.max(0,K-(yn+xo)),dr.TOP_LEFT):new gn(_.left+ri+vr,_.top+yn+xo),this.topRightContentBox=se>0||Ve>0?Lr(_.left+Math.min(Mn,_.width+ri+vr),_.top+yn+xo,Mn>_.width+ri+vr?0:se-ri+vr,Ve-(yn+xo),dr.TOP_RIGHT):new gn(_.left+_.width-(ji+oa),_.top+yn+xo),this.bottomRightContentBox=it>0||Ct>0?Lr(_.left+Math.min(_i,_.width-(ri+vr)),_.top+Math.min(Ji,_.height+yn+xo),Math.max(0,it-(ji+oa)),Ct-(zi+_a),dr.BOTTOM_RIGHT):new gn(_.left+_.width-(ji+oa),_.top+_.height-(zi+_a)),this.bottomLeftContentBox=Jt>0||cn>0?Lr(_.left+ri+vr,_.top+ei,Math.max(0,Jt-(ri+vr)),cn-(zi+_a),dr.BOTTOM_LEFT):new gn(_.left+ri+vr,_.top+_.height-(zi+_a))}}(),dr=function(b){return b[b.TOP_LEFT=0]="TOP_LEFT",b[b.TOP_RIGHT=1]="TOP_RIGHT",b[b.BOTTOM_RIGHT=2]="BOTTOM_RIGHT",b[b.BOTTOM_LEFT=3]="BOTTOM_LEFT",b}(dr||{}),Lr=function(b,g,y,_,E){var L=(Math.sqrt(2)-1)/3*4,K=y*L,ce=_*L,se=b+y,Ve=g+_;switch(E){case dr.TOP_LEFT:return new Du(new gn(b,Ve),new gn(b,Ve-ce),new gn(se-K,g),new gn(se,g));case dr.TOP_RIGHT:return new Du(new gn(b,g),new gn(b+K,g),new gn(se,Ve-ce),new gn(se,Ve));case dr.BOTTOM_RIGHT:return new Du(new gn(se,g),new gn(se,g+ce),new gn(b+K,Ve),new gn(b,Ve));default:return new Du(new gn(se,Ve),new gn(se-K,Ve),new gn(b,g+ce),new gn(b,g))}},_c=function(b){return[b.topLeftBorderBox,b.topRightBorderBox,b.bottomRightBorderBox,b.bottomLeftBorderBox]},fo=function(b){return[b.topLeftPaddingBox,b.topRightPaddingBox,b.bottomRightPaddingBox,b.bottomLeftPaddingBox]},$k=function(){return function b(g,y,_){this.offsetX=g,this.offsetY=y,this.matrix=_,this.type=0,this.target=6}}(),_r=function(){return function b(g,y){this.path=g,this.target=y,this.type=1}}(),bv=function(){return function b(g){this.opacity=g,this.type=2,this.target=6}}(),_v=function(b){return 1===b.type},n2=function(b,g){return b.length===g.length&&b.some(function(y,_){return y===g[_]})},Ig=function(){return function b(g){this.element=g,this.inlineLevel=[],this.nonInlineLevel=[],this.negativeZIndex=[],this.zeroOrAutoZIndexOrTransformedOrOpacity=[],this.positiveZIndex=[],this.nonPositionedFloats=[],this.nonPositionedInlineLevel=[]}}(),ap=function(){function b(g,y){if(this.container=g,this.parent=y,this.effects=[],this.curves=new Wk(this.container),this.container.styles.opacity<1&&this.effects.push(new bv(this.container.styles.opacity)),null!==this.container.styles.transform&&this.effects.push(new $k(this.container.bounds.left+this.container.styles.transformOrigin[0].number,this.container.bounds.top+this.container.styles.transformOrigin[1].number,this.container.styles.transform)),0!==this.container.styles.overflowX){var K=_c(this.curves),ce=fo(this.curves);n2(K,ce)?this.effects.push(new _r(K,6)):(this.effects.push(new _r(K,2)),this.effects.push(new _r(ce,4)))}}return b.prototype.getEffects=function(g){for(var y=-1===[2,3].indexOf(this.container.styles.position),_=this.parent,E=this.effects.slice(0);_;){var L=_.effects.filter(function(se){return!_v(se)});if(y||0!==_.container.styles.position||!_.parent){if(E.unshift.apply(E,L),y=-1===[2,3].indexOf(_.container.styles.position),0!==_.container.styles.overflowX){var K=_c(_.curves),ce=fo(_.curves);n2(K,ce)||E.unshift(new _r(ce,6))}}else E.unshift.apply(E,L);_=_.parent}return E.filter(function(se){return Io(se.target,g)})},b}(),Bg=function(b,g,y,_){b.container.elements.forEach(function(E){var L=Io(E.flags,4),K=Io(E.flags,2),ce=new ap(E,b);Io(E.styles.display,2048)&&_.push(ce);var se=Io(E.flags,8)?[]:_;if(L||K){var Ve=L||E.styles.isPositioned()?y:g,je=new Ig(ce);if(E.styles.isPositioned()||E.styles.opacity<1||E.styles.isTransformed()){var it=E.styles.zIndex.order;if(it<0){var Ct=0;Ve.negativeZIndex.some(function(Jt,cn){return it>Jt.element.container.styles.zIndex.order?(Ct=cn,!1):Ct>0}),Ve.negativeZIndex.splice(Ct,0,je)}else if(it>0){var tn=0;Ve.positiveZIndex.some(function(Jt,cn){return it>=Jt.element.container.styles.zIndex.order?(tn=cn+1,!1):tn>0}),Ve.positiveZIndex.splice(tn,0,je)}else Ve.zeroOrAutoZIndexOrTransformedOrOpacity.push(je)}else E.styles.isFloating()?Ve.nonPositionedFloats.push(je):Ve.nonPositionedInlineLevel.push(je);Bg(ce,je,L?je:y,se)}else E.styles.isInlineLevel()?g.inlineLevel.push(ce):g.nonInlineLevel.push(ce),Bg(ce,g,y,se);Io(E.flags,8)&&o2(E,se)})},o2=function(b,g){for(var y=b instanceof J_?b.start:1,_=b instanceof J_&&b.reversed,E=0;E"u"?b[0]:y},u2=function(b,g,y,_,E){var L=g[0],K=g[1],ce=y[0],se=y[1];switch(b){case 2:return[new gn(Math.round(_.left),Math.round(_.top+K)),new gn(Math.round(_.left+_.width),Math.round(_.top+K)),new gn(Math.round(_.left+_.width),Math.round(se+_.top+K)),new gn(Math.round(_.left),Math.round(se+_.top+K))];case 3:return[new gn(Math.round(_.left+L),Math.round(_.top)),new gn(Math.round(_.left+L+ce),Math.round(_.top)),new gn(Math.round(_.left+L+ce),Math.round(_.height+_.top)),new gn(Math.round(_.left+L),Math.round(_.height+_.top))];case 1:return[new gn(Math.round(_.left+L),Math.round(_.top+K)),new gn(Math.round(_.left+L+ce),Math.round(_.top+K)),new gn(Math.round(_.left+L+ce),Math.round(_.top+K+se)),new gn(Math.round(_.left+L),Math.round(_.top+K+se))];default:return[new gn(Math.round(E.left),Math.round(E.top)),new gn(Math.round(E.left+E.width),Math.round(E.top)),new gn(Math.round(E.left+E.width),Math.round(E.height+E.top)),new gn(Math.round(E.left),Math.round(E.height+E.top))]}},h2="Hidden Text",Zk=function(){function b(g){this._data={},this._document=g}return b.prototype.parseMetrics=function(g,y){var _=this._document.createElement("div"),E=this._document.createElement("img"),L=this._document.createElement("span"),K=this._document.body;_.style.visibility="hidden",_.style.fontFamily=g,_.style.fontSize=y,_.style.margin="0",_.style.padding="0",_.style.whiteSpace="nowrap",K.appendChild(_),E.src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",E.width=1,E.height=1,E.style.margin="0",E.style.padding="0",E.style.verticalAlign="baseline",L.style.fontFamily=g,L.style.fontSize=y,L.style.margin="0",L.style.padding="0",L.appendChild(this._document.createTextNode(h2)),_.appendChild(L),_.appendChild(E);var ce=E.offsetTop-L.offsetTop+2;_.removeChild(L),_.appendChild(this._document.createTextNode(h2)),_.style.lineHeight="normal",E.style.verticalAlign="super";var se=E.offsetTop-_.offsetTop+2;return K.removeChild(_),{baseline:ce,middle:se}},b.prototype.getMetrics=function(g,y){var _=g+" "+y;return typeof this._data[_]>"u"&&(this._data[_]=this.parseMetrics(g,y)),this._data[_]},b}(),wv=function(){return function b(g,y){this.context=g,this.options=y}}(),z6=function(b){function g(y,_){var E=b.call(this,y,_)||this;return E._activeEffects=[],E.canvas=_.canvas?_.canvas:document.createElement("canvas"),E.ctx=E.canvas.getContext("2d"),_.canvas||(E.canvas.width=Math.floor(_.width*_.scale),E.canvas.height=Math.floor(_.height*_.scale),E.canvas.style.width=_.width+"px",E.canvas.style.height=_.height+"px"),E.fontMetrics=new Zk(document),E.ctx.scale(E.options.scale,E.options.scale),E.ctx.translate(-_.x,-_.y),E.ctx.textBaseline="bottom",E._activeEffects=[],E.context.logger.debug("Canvas renderer initialized ("+_.width+"x"+_.height+") with scale "+_.scale),E}return p(g,b),g.prototype.applyEffects=function(y){for(var _=this;this._activeEffects.length;)this.popEffect();y.forEach(function(E){return _.applyEffect(E)})},g.prototype.applyEffect=function(y){this.ctx.save(),function(b){return 2===b.type}(y)&&(this.ctx.globalAlpha=y.opacity),function(b){return 0===b.type}(y)&&(this.ctx.translate(y.offsetX,y.offsetY),this.ctx.transform(y.matrix[0],y.matrix[1],y.matrix[2],y.matrix[3],y.matrix[4],y.matrix[5]),this.ctx.translate(-y.offsetX,-y.offsetY)),_v(y)&&(this.path(y.path),this.ctx.clip()),this._activeEffects.push(y)},g.prototype.popEffect=function(){this._activeEffects.pop(),this.ctx.restore()},g.prototype.renderStack=function(y){return Q(this,void 0,void 0,function(){return f(this,function(E){switch(E.label){case 0:return y.element.container.styles.isVisible()?[4,this.renderStackContent(y)]:[3,2];case 1:E.sent(),E.label=2;case 2:return[2]}})})},g.prototype.renderNode=function(y){return Q(this,void 0,void 0,function(){return f(this,function(_){switch(_.label){case 0:return Io(y.container.flags,16),y.container.styles.isVisible()?[4,this.renderNodeBackgroundAndBorders(y)]:[3,3];case 1:return _.sent(),[4,this.renderNodeContent(y)];case 2:_.sent(),_.label=3;case 3:return[2]}})})},g.prototype.renderTextWithLetterSpacing=function(y,_,E){var L=this;0===_?this.ctx.fillText(y.text,y.bounds.left,y.bounds.top+E):lf(y.text).reduce(function(ce,se){return L.ctx.fillText(se,ce,y.bounds.top+E),ce+L.ctx.measureText(se).width},y.bounds.left)},g.prototype.createFontStyle=function(y){var _=y.fontVariant.filter(function(K){return"normal"===K||"small-caps"===K}).join(""),E=Af(y.fontFamily).join(", "),L=Va(y.fontSize)?""+y.fontSize.number+y.fontSize.unit:y.fontSize.number+"px";return[[y.fontStyle,_,y.fontWeight,L,E].join(" "),E,L]},g.prototype.renderTextNode=function(y,_){return Q(this,void 0,void 0,function(){var E,K,ce,se,Ve,je,it,Ct=this;return f(this,function(tn){return E=this.createFontStyle(_),K=E[1],ce=E[2],this.ctx.font=E[0],this.ctx.direction=1===_.direction?"rtl":"ltr",this.ctx.textAlign="left",this.ctx.textBaseline="alphabetic",se=this.fontMetrics.getMetrics(K,ce),Ve=se.baseline,je=se.middle,it=_.paintOrder,y.textBounds.forEach(function(Jt){it.forEach(function(cn){switch(cn){case 0:Ct.ctx.fillStyle=ar(_.color),Ct.renderTextWithLetterSpacing(Jt,_.letterSpacing,Ve);var pi=_.textShadow;pi.length&&Jt.text.trim().length&&(pi.slice(0).reverse().forEach(function(dn){Ct.ctx.shadowColor=ar(dn.color),Ct.ctx.shadowOffsetX=dn.offsetX.number*Ct.options.scale,Ct.ctx.shadowOffsetY=dn.offsetY.number*Ct.options.scale,Ct.ctx.shadowBlur=dn.blur.number,Ct.renderTextWithLetterSpacing(Jt,_.letterSpacing,Ve)}),Ct.ctx.shadowColor="",Ct.ctx.shadowOffsetX=0,Ct.ctx.shadowOffsetY=0,Ct.ctx.shadowBlur=0),_.textDecorationLine.length&&(Ct.ctx.fillStyle=ar(_.textDecorationColor||_.color),_.textDecorationLine.forEach(function(dn){switch(dn){case 1:Ct.ctx.fillRect(Jt.bounds.left,Math.round(Jt.bounds.top+Ve),Jt.bounds.width,1);break;case 2:Ct.ctx.fillRect(Jt.bounds.left,Math.round(Jt.bounds.top),Jt.bounds.width,1);break;case 3:Ct.ctx.fillRect(Jt.bounds.left,Math.ceil(Jt.bounds.top+je),Jt.bounds.width,1)}}));break;case 1:_.webkitTextStrokeWidth&&Jt.text.trim().length&&(Ct.ctx.strokeStyle=ar(_.webkitTextStrokeColor),Ct.ctx.lineWidth=_.webkitTextStrokeWidth,Ct.ctx.lineJoin=window.chrome?"miter":"round",Ct.ctx.strokeText(Jt.text,Jt.bounds.left,Jt.bounds.top+Ve)),Ct.ctx.strokeStyle="",Ct.ctx.lineWidth=0,Ct.ctx.lineJoin="miter"}})}),[2]})})},g.prototype.renderReplacedElement=function(y,_,E){if(E&&y.intrinsicWidth>0&&y.intrinsicHeight>0){var L=lp(y),K=fo(_);this.path(K),this.ctx.save(),this.ctx.clip(),this.ctx.drawImage(E,0,0,y.intrinsicWidth,y.intrinsicHeight,L.left,L.top,L.width,L.height),this.ctx.restore()}},g.prototype.renderNodeContent=function(y){return Q(this,void 0,void 0,function(){var _,E,L,K,ce,je,it,Ct,Jt,cn,pi,dn,Mn,Ji,_i,ei;return f(this,function(yn){switch(yn.label){case 0:this.applyEffects(y.getEffects(4)),E=y.curves,L=(_=y.container).styles,K=0,ce=_.textNodes,yn.label=1;case 1:return K0&&yc>0&&(Cd=L.ctx.createRadialGradient(oa+Gs,_a+qs,0,oa+Gs,_a+qs,yl),za(je.stops,2*yl).forEach(function(bf){return Cd.addColorStop(bf.stop,ar(bf.color))}),L.path(xo),L.ctx.fillStyle=Cd,yl!==yc?(Ed=y.bounds.left+.5*y.bounds.width,wc=y.bounds.top+.5*y.bounds.height,xc=1/(Pu=yc/yl),L.ctx.save(),L.ctx.translate(Ed,wc),L.ctx.transform(1,0,0,Pu,0,0),L.ctx.translate(-Ed,-wc),L.ctx.fillRect(oa,xc*(_a-wc)+wc,vr,ps*xc),L.ctx.restore()):L.ctx.fill())):(Jt=d2(y,_,[null,null,null]),xo=Jt[0],Gs=Jt[1],qs=Jt[2],cn=rk(je.angle,vr=Jt[3],ps=Jt[4]),pi=cn[0],dn=cn[1],Mn=cn[2],Ji=cn[3],_i=cn[4],(ei=document.createElement("canvas")).width=vr,ei.height=ps,yn=ei.getContext("2d"),ji=yn.createLinearGradient(dn,Ji,Mn,_i),za(je.stops,pi).forEach(function(bf){return ji.addColorStop(bf.stop,ar(bf.color))}),yn.fillStyle=ji,yn.fillRect(0,0,vr,ps),vr>0&&ps>0&&(zi=L.ctx.createPattern(ei,"repeat"),L.renderRepeat(xo,zi,Gs,qs))),gf.label=6;case 6:return _--,[2]}})},L=this,K=0,ce=y.styles.backgroundImage.slice(0).reverse(),Ve.label=1;case 1:return K0?2!==je.style?[3,5]:[4,this.renderDashedDottedBorder(je.color,je.width,ce,y.curves,2)]:[3,11]:[3,13];case 4:return Ct.sent(),[3,11];case 5:return 3!==je.style?[3,7]:[4,this.renderDashedDottedBorder(je.color,je.width,ce,y.curves,3)];case 6:return Ct.sent(),[3,11];case 7:return 4!==je.style?[3,9]:[4,this.renderDoubleBorder(je.color,je.width,ce,y.curves)];case 8:return Ct.sent(),[3,11];case 9:return[4,this.renderSolidBorder(je.color,ce,y.curves)];case 10:Ct.sent(),Ct.label=11;case 11:ce++,Ct.label=12;case 12:return se++,[3,3];case 13:return[2]}})})},g.prototype.renderDashedDottedBorder=function(y,_,E,L,K){return Q(this,void 0,void 0,function(){var ce,se,Ve,je,it,Ct,tn,Jt,cn,pi,dn,Mn,Ji,_i,ei,yn;return f(this,function(ji){return this.ctx.save(),ce=function(b,g){switch(g){case 0:return Dg(b.topLeftBorderStroke,b.topRightBorderStroke);case 1:return Dg(b.topRightBorderStroke,b.bottomRightBorderStroke);case 2:return Dg(b.bottomRightBorderStroke,b.bottomLeftBorderStroke);default:return Dg(b.bottomLeftBorderStroke,b.topLeftBorderStroke)}}(L,E),se=s2(L,E),2===K&&(this.path(se),this.ctx.clip()),Jo(se[0])?(Ve=se[0].start.x,je=se[0].start.y):(Ve=se[0].x,je=se[0].y),Jo(se[1])?(it=se[1].end.x,Ct=se[1].end.y):(it=se[1].x,Ct=se[1].y),tn=0===E||2===E?Math.abs(Ve-it):Math.abs(je-Ct),this.ctx.beginPath(),this.formatPath(3===K?ce:se.slice(0,2)),Jt=_<3?3*_:2*_,cn=_<3?2*_:_,3===K&&(Jt=_,cn=_),pi=!0,tn<=2*Jt?pi=!1:tn<=2*Jt+cn?(Jt*=dn=tn/(2*Jt+cn),cn*=dn):(Mn=Math.floor((tn+cn)/(Jt+cn)),Ji=(tn-Mn*Jt)/(Mn-1),cn=(_i=(tn-(Mn+1)*Jt)/Mn)<=0||Math.abs(cn-Ji){function be(Le){return Array.isArray(Le)?Le:[Le]}const f=/^\s+$/,z=/(?:[^\\]|^)\\$/,k=/^\\!/,F=/^\\#/,V=/\r?\n/g,T=/^\.*\/|^\.+$/;let R="node-ignore";typeof Symbol<"u"&&(R=Symbol.for("node-ignore"));const G=R,q=/([0-z])-([0-z])/g,J=()=>!1,Oe=[[/^\uFEFF/,()=>""],[/\\?\s+$/,Le=>0===Le.indexOf("\\")?" ":""],[/\\\s/g,()=>" "],[/[\\$.|*+(){^]/g,Le=>`\\${Le}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(Le,lt,gt)=>lt+6lt+gt.replace(/\\\*/g,"[^\\/]*")],[/\\\\\\(?=[$.|*+(){^])/g,()=>"\\"],[/\\\\/g,()=>"\\"],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(Le,lt,gt,Lt,Qt)=>"\\"===lt?`\\[${gt}${(Le=>{const{length:lt}=Le;return Le.slice(0,lt-lt%2)})(Lt)}${Qt}`:"]"===Qt&&Lt.length%2==0?`[${(Le=>Le.replace(q,(lt,gt,Lt)=>gt.charCodeAt(0)<=Lt.charCodeAt(0)?lt:""))(gt)}${Lt}]`:"[]"],[/(?:[^*])$/,Le=>/\/$/.test(Le)?`${Le}$`:`${Le}(?=$|\\/$)`],[/(\^|\\\/)?\\\*$/,(Le,lt)=>(lt?`${lt}[^/]+`:"[^/]*")+"(?=$|\\/$)"]],Ee=Object.create(null),Ke=Le=>"string"==typeof Le;class Xe{constructor(lt,gt,Lt,Qt){this.origin=lt,this.pattern=gt,this.negative=Lt,this.regex=Qt}}const et=(Le,lt)=>{throw new lt(Le)},Ge=(Le,lt,gt)=>Ke(Le)?Le?!Ge.isNotRelative(Le)||gt(`path should be a \`path.relative()\`d string, but got "${lt}"`,RangeError):gt("path must not be empty",TypeError):gt(`path must be a string, but got \`${lt}\``,TypeError),Te=Le=>T.test(Le);Ge.isNotRelative=Te,Ge.convert=Le=>Le;class le{constructor({ignorecase:lt=!0,ignoreCase:gt=lt,allowRelativePaths:Lt=!1}={}){((Le,lt,gt)=>{Object.defineProperty(this,lt,{value:!0})})(0,G),this._rules=[],this._ignoreCase=gt,this._allowRelativePaths=Lt,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(lt){if(lt&<[G])return this._rules=this._rules.concat(lt._rules),void(this._added=!0);if((Le=lt)&&Ke(Le)&&!f.test(Le)&&!z.test(Le)&&0!==Le.indexOf("#")){const gt=((Le,lt)=>{const gt=Le;let Lt=!1;0===Le.indexOf("!")&&(Lt=!0,Le=Le.substr(1));const Qt=((Le,lt)=>{let gt=Ee[Le];return gt||(gt=Oe.reduce((Lt,Qt)=>Lt.replace(Qt[0],Qt[1].bind(Le)),Le),Ee[Le]=gt),lt?new RegExp(gt,"i"):new RegExp(gt)})(Le=Le.replace(k,"!").replace(F,"#"),lt);return new Xe(gt,Le,Lt,Qt)})(lt,this._ignoreCase);this._added=!0,this._rules.push(gt)}var Le}add(lt){return this._added=!1,be(Ke(lt)?(Le=lt,Le.split(V)):lt).forEach(this._addPattern,this),this._added&&this._initCache(),this;var Le}addPattern(lt){return this.add(lt)}_testOne(lt,gt){let Lt=!1,Qt=!1;return this._rules.forEach(vn=>{const{negative:Pn}=vn;Qt===Pn&&Lt!==Qt||Pn&&!Lt&&!Qt&&!gt||vn.regex.test(lt)&&(Lt=!Pn,Qt=Pn)}),{ignored:Lt,unignored:Qt}}_test(lt,gt,Lt,Qt){const vn=lt&&Ge.convert(lt);return Ge(vn,lt,this._allowRelativePaths?J:et),this._t(vn,gt,Lt,Qt)}_t(lt,gt,Lt,Qt){if(lt in gt)return gt[lt];if(Qt||(Qt=lt.split("/")),Qt.pop(),!Qt.length)return gt[lt]=this._testOne(lt,Lt);const vn=this._t(Qt.join("/")+"/",gt,Lt,Qt);return gt[lt]=vn.ignored?vn:this._testOne(lt,Lt)}ignores(lt){return this._test(lt,this._ignoreCache,!1).ignored}createFilter(){return lt=>!this.ignores(lt)}filter(lt){return be(lt).filter(this.createFilter())}test(lt){return this._test(lt,this._testCache,!0)}}const Pe=Le=>new le(Le);if(Pe.isPathValid=Le=>Ge(Le&&Ge.convert(Le),Le,J),Pe.default=Pe,st.exports=Pe,typeof process<"u"&&(process.env&&process.env.IGNORE_TEST_WIN32||"win32"===process.platform)){Ge.convert=gt=>/^\\\\\?\\/.test(gt)||/["<>|\u0000-\u001F]+/u.test(gt)?gt:gt.replace(/\\/g,"/");const lt=/^[a-z]:\//i;Ge.isNotRelative=gt=>lt.test(gt)||Te(gt)}},8749:st=>{function be(U){return!!U.constructor&&"function"==typeof U.constructor.isBuffer&&U.constructor.isBuffer(U)}st.exports=function(U){return null!=U&&(be(U)||function p(U){return"function"==typeof U.readFloatLE&&"function"==typeof U.slice&&be(U.slice(0,0))}(U)||!!U._isBuffer)}},4331:st=>{"use strict";var be=st.exports=function(Q,f,z){"function"==typeof f&&(z=f,f={}),p(f,"function"==typeof(z=f.cb||z)?z:z.pre||function(){},z.post||function(){},Q,"",Q)};function p(Q,f,z,k,F,V,T,N,R,G){if(k&&"object"==typeof k&&!Array.isArray(k)){for(var D in f(k,F,V,T,N,R,G),k){var q=k[D];if(Array.isArray(q)){if(D in be.arrayKeywords)for(var J=0;J{var U,Q,f,z,k;U=p(9928),Q=p(7468).utf8,f=p(8749),z=p(7468).bin,(k=function(F,V){F.constructor==String?F=V&&"binary"===V.encoding?z.stringToBytes(F):Q.stringToBytes(F):f(F)?F=Array.prototype.slice.call(F,0):!Array.isArray(F)&&F.constructor!==Uint8Array&&(F=F.toString());for(var T=U.bytesToWords(F),N=8*F.length,R=1732584193,G=-271733879,D=-1732584194,q=271733878,J=0;J>>24)|4278255360&(T[J]<<24|T[J]>>>8);T[N>>>5]|=128<>>9<<4)]=N;var Z=k._ff,xe=k._gg,Oe=k._hh,Ee=k._ii;for(J=0;J>>0,G=G+Ke>>>0,D=D+Ie>>>0,q=q+at>>>0}return U.endian([R,G,D,q])})._ff=function(F,V,T,N,R,G,D){var q=F+(V&T|~V&N)+(R>>>0)+D;return(q<>>32-G)+V},k._gg=function(F,V,T,N,R,G,D){var q=F+(V&N|T&~N)+(R>>>0)+D;return(q<>>32-G)+V},k._hh=function(F,V,T,N,R,G,D){var q=F+(V^T^N)+(R>>>0)+D;return(q<>>32-G)+V},k._ii=function(F,V,T,N,R,G,D){var q=F+(T^(V|~N))+(R>>>0)+D;return(q<>>32-G)+V},k._blocksize=16,k._digestsize=16,st.exports=function(F,V){if(null==F)throw new Error("Illegal argument "+F);var T=U.wordsToBytes(k(F,V));return V&&V.asBytes?T:V&&V.asString?z.bytesToString(T):U.bytesToHex(T)}},8314:(st,be,p)=>{const Q=p(2836),f=p(9460),z=p(7030),k=p(6511);function F(V,T,N,R,G){const D=[].slice.call(arguments,1),q=D.length,J="function"==typeof D[q-1];if(!J&&!Q())throw new Error("Callback required as last argument");if(!J){if(q<1)throw new Error("Too few arguments provided");return 1===q?(N=T,T=R=void 0):2===q&&!T.getContext&&(R=N,N=T,T=void 0),new Promise(function(Z,xe){try{const Oe=f.create(N,R);Z(V(Oe,T,R))}catch(Oe){xe(Oe)}})}if(q<2)throw new Error("Too few arguments provided");2===q?(G=N,N=T,T=R=void 0):3===q&&(T.getContext&&typeof G>"u"?(G=R,R=void 0):(G=R,R=N,N=T,T=void 0));try{const Z=f.create(N,R);G(null,V(Z,T,R))}catch(Z){G(Z)}}be.mo=F.bind(null,z.render),F.bind(null,z.renderToDataURL),F.bind(null,function(V,T,N){return k.render(V,N)})},2836:st=>{st.exports=function(){return"function"==typeof Promise&&Promise.prototype&&Promise.prototype.then}},6214:(st,be,p)=>{const U=p(9089).getSymbolSize;be.getRowColCoords=function(f){if(1===f)return[];const z=Math.floor(f/7)+2,k=U(f),F=145===k?26:2*Math.ceil((k-13)/(2*z-2)),V=[k-7];for(let T=1;T{const U=p(4058),Q=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function f(z){this.mode=U.ALPHANUMERIC,this.data=z}f.getBitsLength=function(k){return 11*Math.floor(k/2)+k%2*6},f.prototype.getLength=function(){return this.data.length},f.prototype.getBitsLength=function(){return f.getBitsLength(this.data.length)},f.prototype.write=function(k){let F;for(F=0;F+2<=this.data.length;F+=2){let V=45*Q.indexOf(this.data[F]);V+=Q.indexOf(this.data[F+1]),k.put(V,11)}this.data.length%2&&k.put(Q.indexOf(this.data[F]),6)},st.exports=f},4662:st=>{function be(){this.buffer=[],this.length=0}be.prototype={get:function(p){const U=Math.floor(p/8);return 1==(this.buffer[U]>>>7-p%8&1)},put:function(p,U){for(let Q=0;Q>>U-Q-1&1))},getLengthInBits:function(){return this.length},putBit:function(p){const U=Math.floor(this.length/8);this.buffer.length<=U&&this.buffer.push(0),p&&(this.buffer[U]|=128>>>this.length%8),this.length++}},st.exports=be},5941:st=>{function be(p){if(!p||p<1)throw new Error("BitMatrix size must be defined and greater than 0");this.size=p,this.data=new Uint8Array(p*p),this.reservedBit=new Uint8Array(p*p)}be.prototype.set=function(p,U,Q,f){const z=p*this.size+U;this.data[z]=Q,f&&(this.reservedBit[z]=!0)},be.prototype.get=function(p,U){return this.data[p*this.size+U]},be.prototype.xor=function(p,U,Q){this.data[p*this.size+U]^=Q},be.prototype.isReserved=function(p,U){return this.reservedBit[p*this.size+U]},st.exports=be},4969:(st,be,p)=>{const U=p(3174),Q=p(4058);function f(z){this.mode=Q.BYTE,"string"==typeof z&&(z=U(z)),this.data=new Uint8Array(z)}f.getBitsLength=function(k){return 8*k},f.prototype.getLength=function(){return this.data.length},f.prototype.getBitsLength=function(){return f.getBitsLength(this.data.length)},f.prototype.write=function(z){for(let k=0,F=this.data.length;k{const U=p(7424),Q=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],f=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];be.getBlocksCount=function(k,F){switch(F){case U.L:return Q[4*(k-1)+0];case U.M:return Q[4*(k-1)+1];case U.Q:return Q[4*(k-1)+2];case U.H:return Q[4*(k-1)+3];default:return}},be.getTotalCodewordsCount=function(k,F){switch(F){case U.L:return f[4*(k-1)+0];case U.M:return f[4*(k-1)+1];case U.Q:return f[4*(k-1)+2];case U.H:return f[4*(k-1)+3];default:return}}},7424:(st,be)=>{be.L={bit:1},be.M={bit:0},be.Q={bit:3},be.H={bit:2},be.isValid=function(Q){return Q&&typeof Q.bit<"u"&&Q.bit>=0&&Q.bit<4},be.from=function(Q,f){if(be.isValid(Q))return Q;try{return function p(U){if("string"!=typeof U)throw new Error("Param is not a string");switch(U.toLowerCase()){case"l":case"low":return be.L;case"m":case"medium":return be.M;case"q":case"quartile":return be.Q;case"h":case"high":return be.H;default:throw new Error("Unknown EC Level: "+U)}}(Q)}catch{return f}}},6269:(st,be,p)=>{const U=p(9089).getSymbolSize;be.getPositions=function(z){const k=U(z);return[[0,0],[k-7,0],[0,k-7]]}},6254:(st,be,p)=>{const U=p(9089),z=U.getBCHDigit(1335);be.getEncodedBits=function(F,V){const T=F.bit<<3|V;let N=T<<10;for(;U.getBCHDigit(N)-z>=0;)N^=1335<{const p=new Uint8Array(512),U=new Uint8Array(256);(function(){let f=1;for(let z=0;z<255;z++)p[z]=f,U[f]=z,f<<=1,256&f&&(f^=285);for(let z=255;z<512;z++)p[z]=p[z-255]})(),be.log=function(f){if(f<1)throw new Error("log("+f+")");return U[f]},be.exp=function(f){return p[f]},be.mul=function(f,z){return 0===f||0===z?0:p[U[f]+U[z]]}},3264:(st,be,p)=>{const U=p(4058),Q=p(9089);function f(z){this.mode=U.KANJI,this.data=z}f.getBitsLength=function(k){return 13*k},f.prototype.getLength=function(){return this.data.length},f.prototype.getBitsLength=function(){return f.getBitsLength(this.data.length)},f.prototype.write=function(z){let k;for(k=0;k=33088&&F<=40956)F-=33088;else{if(!(F>=57408&&F<=60351))throw new Error("Invalid SJIS character: "+this.data[k]+"\nMake sure your charset is UTF-8");F-=49472}F=192*(F>>>8&255)+(255&F),z.put(F,13)}},st.exports=f},3361:(st,be)=>{be.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};function U(Q,f,z){switch(Q){case be.Patterns.PATTERN000:return(f+z)%2==0;case be.Patterns.PATTERN001:return f%2==0;case be.Patterns.PATTERN010:return z%3==0;case be.Patterns.PATTERN011:return(f+z)%3==0;case be.Patterns.PATTERN100:return(Math.floor(f/2)+Math.floor(z/3))%2==0;case be.Patterns.PATTERN101:return f*z%2+f*z%3==0;case be.Patterns.PATTERN110:return(f*z%2+f*z%3)%2==0;case be.Patterns.PATTERN111:return(f*z%3+(f+z)%2)%2==0;default:throw new Error("bad maskPattern:"+Q)}}be.isValid=function(f){return null!=f&&""!==f&&!isNaN(f)&&f>=0&&f<=7},be.from=function(f){return be.isValid(f)?parseInt(f,10):void 0},be.getPenaltyN1=function(f){const z=f.size;let k=0,F=0,V=0,T=null,N=null;for(let R=0;R=5&&(k+=F-5+3),T=D,F=1),D=f.get(G,R),D===N?V++:(V>=5&&(k+=V-5+3),N=D,V=1)}F>=5&&(k+=F-5+3),V>=5&&(k+=V-5+3)}return k},be.getPenaltyN2=function(f){const z=f.size;let k=0;for(let F=0;F=10&&(1488===F||93===F)&&k++,V=V<<1&2047|f.get(N,T),N>=10&&(1488===V||93===V)&&k++}return 40*k},be.getPenaltyN4=function(f){let z=0;const k=f.data.length;for(let V=0;V{const U=p(377),Q=p(9359);be.NUMERIC={id:"Numeric",bit:1,ccBits:[10,12,14]},be.ALPHANUMERIC={id:"Alphanumeric",bit:2,ccBits:[9,11,13]},be.BYTE={id:"Byte",bit:4,ccBits:[8,16,16]},be.KANJI={id:"Kanji",bit:8,ccBits:[8,10,12]},be.MIXED={bit:-1},be.getCharCountIndicator=function(k,F){if(!k.ccBits)throw new Error("Invalid mode: "+k);if(!U.isValid(F))throw new Error("Invalid version: "+F);return F>=1&&F<10?k.ccBits[0]:F<27?k.ccBits[1]:k.ccBits[2]},be.getBestModeForData=function(k){return Q.testNumeric(k)?be.NUMERIC:Q.testAlphanumeric(k)?be.ALPHANUMERIC:Q.testKanji(k)?be.KANJI:be.BYTE},be.toString=function(k){if(k&&k.id)return k.id;throw new Error("Invalid mode")},be.isValid=function(k){return k&&k.bit&&k.ccBits},be.from=function(k,F){if(be.isValid(k))return k;try{return function f(z){if("string"!=typeof z)throw new Error("Param is not a string");switch(z.toLowerCase()){case"numeric":return be.NUMERIC;case"alphanumeric":return be.ALPHANUMERIC;case"kanji":return be.KANJI;case"byte":return be.BYTE;default:throw new Error("Unknown mode: "+z)}}(k)}catch{return F}}},6628:(st,be,p)=>{const U=p(4058);function Q(f){this.mode=U.NUMERIC,this.data=f.toString()}Q.getBitsLength=function(z){return 10*Math.floor(z/3)+(z%3?z%3*3+1:0)},Q.prototype.getLength=function(){return this.data.length},Q.prototype.getBitsLength=function(){return Q.getBitsLength(this.data.length)},Q.prototype.write=function(z){let k,F,V;for(k=0;k+3<=this.data.length;k+=3)F=this.data.substr(k,3),V=parseInt(F,10),z.put(V,10);const T=this.data.length-k;T>0&&(F=this.data.substr(k),V=parseInt(F,10),z.put(V,3*T+1))},st.exports=Q},1744:(st,be,p)=>{const U=p(6686);be.mul=function(f,z){const k=new Uint8Array(f.length+z.length-1);for(let F=0;F=0;){const F=k[0];for(let T=0;T{const U=p(9089),Q=p(7424),f=p(4662),z=p(5941),k=p(6214),F=p(6269),V=p(3361),T=p(3677),N=p(6289),R=p(1252),G=p(6254),D=p(4058),q=p(2868);function Ee(Xe,Ue,et){const Ge=Xe.size,Te=G.getEncodedBits(Ue,et);let le,Pe;for(le=0;le<15;le++)Pe=1==(Te>>le&1),Xe.set(le<6?le:le<8?le+1:Ge-15+le,8,Pe,!0),Xe.set(8,le<8?Ge-le-1:le<9?15-le-1+1:15-le-1,Pe,!0);Xe.set(Ge-8,8,1,!0)}function at(Xe,Ue,et,Ge){let Te;if(Array.isArray(Xe))Te=q.fromArray(Xe);else{if("string"!=typeof Xe)throw new Error("Invalid data");{let lt=Ue;if(!lt){const gt=q.rawSplit(Xe);lt=R.getBestVersionForData(gt,et)}Te=q.fromString(Xe,lt||40)}}const le=R.getBestVersionForData(Te,et);if(!le)throw new Error("The amount of data is too big to be stored in a QR Code");if(Ue){if(Ue=0&&Ze<=6&&(0===Le||6===Le)||Le>=0&&Le<=6&&(0===Ze||6===Ze)||Ze>=2&&Ze<=4&&Le>=2&&Le<=4,!0)}}(Le,Ue),function Z(Xe){const Ue=Xe.size;for(let et=8;et=7&&function Oe(Xe,Ue){const et=Xe.size,Ge=R.getEncodedBits(Ue);let Te,le,Pe;for(let Ze=0;Ze<18;Ze++)Te=Math.floor(Ze/3),le=Ze%3+et-8-3,Pe=1==(Ge>>Ze&1),Xe.set(Te,le,Pe,!0),Xe.set(le,Te,Pe,!0)}(Le,Ue),function $e(Xe,Ue){const et=Xe.size;let Ge=-1,Te=et-1,le=7,Pe=0;for(let Ze=et-1;Ze>0;Ze-=2)for(6===Ze&&Ze--;;){for(let Le=0;Le<2;Le++)if(!Xe.isReserved(Te,Ze-Le)){let lt=!1;Pe>>le&1)),Xe.set(Te,Ze-Le,lt),le--,-1===le&&(Pe++,le=7)}if(Te+=Ge,Te<0||et<=Te){Te-=Ge,Ge=-Ge;break}}}(Le,Pe),isNaN(Ge)&&(Ge=V.getBestMask(Le,Ee.bind(null,Le,et))),V.applyMask(Ge,Le),Ee(Le,et,Ge),{modules:Le,version:Ue,errorCorrectionLevel:et,maskPattern:Ge,segments:Te}}be.create=function(Ue,et){if(typeof Ue>"u"||""===Ue)throw new Error("No input text");let Te,le,Ge=Q.M;return typeof et<"u"&&(Ge=Q.from(et.errorCorrectionLevel,Q.M),Te=R.from(et.version),le=V.from(et.maskPattern),et.toSJISFunc&&U.setToSJISFunction(et.toSJISFunc)),at(Ue,Te,Ge,le)}},6289:(st,be,p)=>{const U=p(1744);function Q(f){this.genPoly=void 0,this.degree=f,this.degree&&this.initialize(this.degree)}Q.prototype.initialize=function(z){this.degree=z,this.genPoly=U.generateECPolynomial(this.degree)},Q.prototype.encode=function(z){if(!this.genPoly)throw new Error("Encoder not initialized");const k=new Uint8Array(z.length+this.degree);k.set(z);const F=U.mod(k,this.genPoly),V=this.degree-F.length;if(V>0){const T=new Uint8Array(this.degree);return T.set(F,V),T}return F},st.exports=Q},9359:(st,be)=>{const p="[0-9]+";let Q="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+";Q=Q.replace(/u/g,"\\u");const f="(?:(?![A-Z0-9 $%*+\\-./:]|"+Q+")(?:.|[\r\n]))+";be.KANJI=new RegExp(Q,"g"),be.BYTE_KANJI=new RegExp("[^A-Z0-9 $%*+\\-./:]+","g"),be.BYTE=new RegExp(f,"g"),be.NUMERIC=new RegExp(p,"g"),be.ALPHANUMERIC=new RegExp("[A-Z $%*+\\-./:]+","g");const z=new RegExp("^"+Q+"$"),k=new RegExp("^"+p+"$"),F=new RegExp("^[A-Z0-9 $%*+\\-./:]+$");be.testKanji=function(T){return z.test(T)},be.testNumeric=function(T){return k.test(T)},be.testAlphanumeric=function(T){return F.test(T)}},2868:(st,be,p)=>{const U=p(4058),Q=p(6628),f=p(1018),z=p(4969),k=p(3264),F=p(9359),V=p(9089),T=p(243);function N(Oe){return unescape(encodeURIComponent(Oe)).length}function R(Oe,Ee,$e){const Ke=[];let Ie;for(;null!==(Ie=Oe.exec($e));)Ke.push({data:Ie[0],index:Ie.index,mode:Ee,length:Ie[0].length});return Ke}function G(Oe){const Ee=R(F.NUMERIC,U.NUMERIC,Oe),$e=R(F.ALPHANUMERIC,U.ALPHANUMERIC,Oe);let Ke,Ie;return V.isKanjiModeEnabled()?(Ke=R(F.BYTE,U.BYTE,Oe),Ie=R(F.KANJI,U.KANJI,Oe)):(Ke=R(F.BYTE_KANJI,U.BYTE,Oe),Ie=[]),Ee.concat($e,Ke,Ie).sort(function(Xe,Ue){return Xe.index-Ue.index}).map(function(Xe){return{data:Xe.data,mode:Xe.mode,length:Xe.length}})}function D(Oe,Ee){switch(Ee){case U.NUMERIC:return Q.getBitsLength(Oe);case U.ALPHANUMERIC:return f.getBitsLength(Oe);case U.KANJI:return k.getBitsLength(Oe);case U.BYTE:return z.getBitsLength(Oe)}}function xe(Oe,Ee){let $e;const Ke=U.getBestModeForData(Oe);if($e=U.from(Ee,Ke),$e!==U.BYTE&&$e.bit=0?Ee[Ee.length-1]:null;return Ke&&Ke.mode===$e.mode?(Ee[Ee.length-1].data+=$e.data,Ee):(Ee.push($e),Ee)},[])}(Ue))},be.rawSplit=function(Ee){return be.fromArray(G(Ee,V.isKanjiModeEnabled()))}},9089:(st,be)=>{let p;const U=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];be.getSymbolSize=function(f){if(!f)throw new Error('"version" cannot be null or undefined');if(f<1||f>40)throw new Error('"version" should be in range from 1 to 40');return 4*f+17},be.getSymbolTotalCodewords=function(f){return U[f]},be.getBCHDigit=function(Q){let f=0;for(;0!==Q;)f++,Q>>>=1;return f},be.setToSJISFunction=function(f){if("function"!=typeof f)throw new Error('"toSJISFunc" is not a valid function.');p=f},be.isKanjiModeEnabled=function(){return typeof p<"u"},be.toSJIS=function(f){return p(f)}},377:(st,be)=>{be.isValid=function(U){return!isNaN(U)&&U>=1&&U<=40}},1252:(st,be,p)=>{const U=p(9089),Q=p(3677),f=p(7424),z=p(4058),k=p(377),V=U.getBCHDigit(7973);function N(D,q){return z.getCharCountIndicator(D,q)+4}function R(D,q){let J=0;return D.forEach(function(Z){const xe=N(Z.mode,q);J+=xe+Z.getBitsLength()}),J}be.from=function(q,J){return k.isValid(q)?parseInt(q,10):J},be.getCapacity=function(q,J,Z){if(!k.isValid(q))throw new Error("Invalid QR Code version");typeof Z>"u"&&(Z=z.BYTE);const Ee=8*(U.getSymbolTotalCodewords(q)-Q.getTotalCodewordsCount(q,J));if(Z===z.MIXED)return Ee;const $e=Ee-N(Z,q);switch(Z){case z.NUMERIC:return Math.floor($e/10*3);case z.ALPHANUMERIC:return Math.floor($e/11*2);case z.KANJI:return Math.floor($e/13);default:return Math.floor($e/8)}},be.getBestVersionForData=function(q,J){let Z;const xe=f.from(J,f.M);if(Array.isArray(q)){if(q.length>1)return function G(D,q){for(let J=1;J<=40;J++)if(R(D,J)<=be.getCapacity(J,q,z.MIXED))return J}(q,xe);if(0===q.length)return 1;Z=q[0]}else Z=q;return function T(D,q,J){for(let Z=1;Z<=40;Z++)if(q<=be.getCapacity(Z,J,D))return Z}(Z.mode,Z.getLength(),xe)},be.getEncodedBits=function(q){if(!k.isValid(q)||q<7)throw new Error("Invalid QR Code version");let J=q<<12;for(;U.getBCHDigit(J)-V>=0;)J^=7973<{const U=p(7077);be.render=function(k,F,V){let T=V,N=F;typeof T>"u"&&(!F||!F.getContext)&&(T=F,F=void 0),F||(N=function f(){try{return document.createElement("canvas")}catch{throw new Error("You need to specify a canvas element")}}()),T=U.getOptions(T);const R=U.getImageWidth(k.modules.size,T),G=N.getContext("2d"),D=G.createImageData(R,R);return U.qrToImageData(D.data,k,T),function Q(z,k,F){z.clearRect(0,0,k.width,k.height),k.style||(k.style={}),k.height=F,k.width=F,k.style.height=F+"px",k.style.width=F+"px"}(G,N,R),G.putImageData(D,0,0),N},be.renderToDataURL=function(k,F,V){let T=V;return typeof T>"u"&&(!F||!F.getContext)&&(T=F,F=void 0),T||(T={}),be.render(k,F,T).toDataURL(T.type||"image/png",(T.rendererOpts||{}).quality)}},6511:(st,be,p)=>{const U=p(7077);function Q(k,F){const V=k.a/255,T=F+'="'+k.hex+'"';return V<1?T+" "+F+'-opacity="'+V.toFixed(2).slice(1)+'"':T}function f(k,F,V){let T=k+F;return typeof V<"u"&&(T+=" "+V),T}be.render=function(F,V,T){const N=U.getOptions(V),R=F.modules.size,G=F.modules.data,D=R+2*N.margin,q=N.color.light.a?"':"",J="0&&q>0&&k[D-1]||(T+=R?f("M",q+V,.5+J+V):f("m",N,0),N=0,R=!1),q+1',Oe=''+q+J+"\n";return"function"==typeof T&&T(null,Oe),Oe}},7077:(st,be)=>{function p(U){if("number"==typeof U&&(U=U.toString()),"string"!=typeof U)throw new Error("Color should be defined as hex string");let Q=U.slice().replace("#","").split("");if(Q.length<3||5===Q.length||Q.length>8)throw new Error("Invalid hex color: "+U);(3===Q.length||4===Q.length)&&(Q=Array.prototype.concat.apply([],Q.map(function(z){return[z,z]}))),6===Q.length&&Q.push("F","F");const f=parseInt(Q.join(""),16);return{r:f>>24&255,g:f>>16&255,b:f>>8&255,a:255&f,hex:"#"+Q.slice(0,6).join("")}}be.getOptions=function(Q){Q||(Q={}),Q.color||(Q.color={});const z=Q.width&&Q.width>=21?Q.width:void 0;return{width:z,scale:z?4:Q.scale||4,margin:typeof Q.margin>"u"||null===Q.margin||Q.margin<0?4:Q.margin,color:{dark:p(Q.color.dark||"#000000ff"),light:p(Q.color.light||"#ffffffff")},type:Q.type,rendererOpts:Q.rendererOpts||{}}},be.getScale=function(Q,f){return f.width&&f.width>=Q+2*f.margin?f.width/(Q+2*f.margin):f.scale},be.getImageWidth=function(Q,f){const z=be.getScale(Q,f);return Math.floor((Q+2*f.margin)*z)},be.qrToImageData=function(Q,f,z){const k=f.modules.size,F=f.modules.data,V=be.getScale(k,z),T=Math.floor((k+2*z.margin)*V),N=z.margin*V,R=[z.color.light,z.color.dark];for(let G=0;G=N&&D>=N&&G{"use strict";const{hasOwnProperty:p}=Object.prototype,U=J();U.configure=J,U.stringify=U,U.default=U,be.stringify=U,be.configure=J,st.exports=U;const Q=/[\u0000-\u001f\u0022\u005c\ud800-\udfff]|[\ud800-\udbff](?![\udc00-\udfff])|(?:[^\ud800-\udbff]|^)[\udc00-\udfff]/;function f(Z){return Z.length<5e3&&!Q.test(Z)?`"${Z}"`:JSON.stringify(Z)}function z(Z){if(Z.length>200)return Z.sort();for(let xe=1;xeOe;)Z[Ee]=Z[Ee-1],Ee--;Z[Ee]=Oe}return Z}const k=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Object.getPrototypeOf(new Int8Array)),Symbol.toStringTag).get;function F(Z){return void 0!==k.call(Z)&&0!==Z.length}function V(Z,xe,Oe){Z.length= 1`)}return void 0===Oe?1/0:Oe}function G(Z){return 1===Z?"1 item":`${Z} items`}function J(Z){const xe=function q(Z){if(p.call(Z,"strict")){const xe=Z.strict;if("boolean"!=typeof xe)throw new TypeError('The "strict" argument must be of type boolean');if(xe)return Oe=>{let Ee="Object can not safely be stringified. Received type "+typeof Oe;throw"function"!=typeof Oe&&(Ee+=` (${Oe.toString()})`),new Error(Ee)}}}(Z={...Z});xe&&(void 0===Z.bigint&&(Z.bigint=!1),"circularValue"in Z||(Z.circularValue=Error));const Oe=function T(Z){if(p.call(Z,"circularValue")){const xe=Z.circularValue;if("string"==typeof xe)return`"${xe}"`;if(null==xe)return xe;if(xe===Error||xe===TypeError)return{toString(){throw new TypeError("Converting circular structure to JSON")}};throw new TypeError('The "circularValue" argument must be of type string or the value null or undefined')}return'"[Circular]"'}(Z),Ee=N(Z,"bigint"),$e=N(Z,"deterministic"),Ke=R(Z,"maximumDepth"),Ie=R(Z,"maximumBreadth");function at(Te,le,Pe,Ze,Le,lt){let gt=le[Te];switch("object"==typeof gt&&null!==gt&&"function"==typeof gt.toJSON&&(gt=gt.toJSON(Te)),gt=Ze.call(le,Te,gt),typeof gt){case"string":return f(gt);case"object":{if(null===gt)return"null";if(-1!==Pe.indexOf(gt))return Oe;let Lt="",Qt=",";const vn=lt;if(Array.isArray(gt)){if(0===gt.length)return"[]";if(KeIe&&(Lt+=`${Qt}"... ${G(gt.length-Ie-1)} not stringified"`),""!==Le&&(Lt+=`\n${vn}`),Pe.pop(),`[${Lt}]`}let Pn=Object.keys(gt);const Kn=Pn.length;if(0===Kn)return"{}";if(KeIe&&(Lt+=`${Ai}"...":${Qn}"${G(Kn-Ie)} not stringified"`,Ai=Qt),""!==Le&&Ai.length>1&&(Lt=`\n${lt}${Lt}\n${vn}`),Pe.pop(),`{${Lt}}`}case"number":return isFinite(gt)?String(gt):xe?xe(gt):"null";case"boolean":return!0===gt?"true":"false";case"undefined":return;case"bigint":if(Ee)return String(gt);default:return xe?xe(gt):void 0}}function Xe(Te,le,Pe,Ze,Le,lt){switch("object"==typeof le&&null!==le&&"function"==typeof le.toJSON&&(le=le.toJSON(Te)),typeof le){case"string":return f(le);case"object":{if(null===le)return"null";if(-1!==Pe.indexOf(le))return Oe;const gt=lt;let Lt="",Qt=",";if(Array.isArray(le)){if(0===le.length)return"[]";if(KeIe&&(Lt+=`${Qt}"... ${G(le.length-Ie-1)} not stringified"`),""!==Le&&(Lt+=`\n${gt}`),Pe.pop(),`[${Lt}]`}Pe.push(le);let vn="";""!==Le&&(Qt=`,\n${lt+=Le}`,vn=" ");let Pn="";for(const Kn of Ze){const Qn=Xe(Kn,le[Kn],Pe,Ze,Le,lt);void 0!==Qn&&(Lt+=`${Pn}${f(Kn)}:${vn}${Qn}`,Pn=Qt)}return""!==Le&&Pn.length>1&&(Lt=`\n${lt}${Lt}\n${gt}`),Pe.pop(),`{${Lt}}`}case"number":return isFinite(le)?String(le):xe?xe(le):"null";case"boolean":return!0===le?"true":"false";case"undefined":return;case"bigint":if(Ee)return String(le);default:return xe?xe(le):void 0}}function Ue(Te,le,Pe,Ze,Le){switch(typeof le){case"string":return f(le);case"object":{if(null===le)return"null";if("function"==typeof le.toJSON){if("object"!=typeof(le=le.toJSON(Te)))return Ue(Te,le,Pe,Ze,Le);if(null===le)return"null"}if(-1!==Pe.indexOf(le))return Oe;const lt=Le;if(Array.isArray(le)){if(0===le.length)return"[]";if(KeIe&&(Qn+=`${Ai}"... ${G(le.length-Ie-1)} not stringified"`),Qn+=`\n${lt}`,Pe.pop(),`[${Qn}]`}let gt=Object.keys(le);const Lt=gt.length;if(0===Lt)return"{}";if(KeIe&&(vn+=`${Pn}"...": "${G(Lt-Ie)} not stringified"`,Pn=Qt),""!==Pn&&(vn=`\n${Le}${vn}\n${lt}`),Pe.pop(),`{${vn}}`}case"number":return isFinite(le)?String(le):xe?xe(le):"null";case"boolean":return!0===le?"true":"false";case"undefined":return;case"bigint":if(Ee)return String(le);default:return xe?xe(le):void 0}}function et(Te,le,Pe){switch(typeof le){case"string":return f(le);case"object":{if(null===le)return"null";if("function"==typeof le.toJSON){if("object"!=typeof(le=le.toJSON(Te)))return et(Te,le,Pe);if(null===le)return"null"}if(-1!==Pe.indexOf(le))return Oe;let Ze="";if(Array.isArray(le)){if(0===le.length)return"[]";if(KeIe&&(Ze+=`,"... ${G(le.length-Ie-1)} not stringified"`),Pe.pop(),`[${Ze}]`}let Le=Object.keys(le);const lt=Le.length;if(0===lt)return"{}";if(KeIe&&(Ze+=`${gt}"...":"${G(lt-Ie)} not stringified"`),Pe.pop(),`{${Ze}}`}case"number":return isFinite(le)?String(le):xe?xe(le):"null";case"boolean":return!0===le?"true":"false";case"undefined":return;case"bigint":if(Ee)return String(le);default:return xe?xe(le):void 0}}return function Ge(Te,le,Pe){if(arguments.length>1){let Ze="";if("number"==typeof Pe?Ze=" ".repeat(Math.min(Pe,10)):"string"==typeof Pe&&(Ze=Pe.slice(0,10)),null!=le){if("function"==typeof le)return at("",{"":Te},[],le,Ze,"");if(Array.isArray(le))return Xe("",Te,[],function D(Z){const xe=new Set;for(const Oe of Z)("string"==typeof Oe||"number"==typeof Oe)&&xe.add(String(Oe));return xe}(le),Ze,"")}if(0!==Ze.length)return Ue("",Te,[],Ze,"")}return et("",Te,[])}}},9146:st=>{st.exports=function(be){function p(U,Q){var pt,fi,Qr,zr,Os;this.object=U,this.domElement=void 0!==Q?Q:document,this.enabled=!0,this.target=new be.Vector3,this.minDistance=0,this.maxDistance=1/0,this.minZoom=0,this.maxZoom=1/0,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.minAzimuthAngle=-1/0,this.maxAzimuthAngle=1/0,this.enableDamping=!1,this.dampingFactor=.25,this.enableZoom=!0,this.zoomSpeed=1,this.enableRotate=!0,this.rotateSpeed=1,this.enablePan=!0,this.keyPanSpeed=7,this.autoRotate=!1,this.autoRotateSpeed=2,this.enableKeys=!0,this.keys={LEFT:37,UP:38,RIGHT:39,BOTTOM:40},this.mouseButtons={ORBIT:be.MOUSE.LEFT,ZOOM:be.MOUSE.MIDDLE,PAN:be.MOUSE.RIGHT},this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this.getPolarAngle=function(){return R.phi},this.getAzimuthalAngle=function(){return R.theta},this.reset=function(){f.target.copy(f.target0),f.object.position.copy(f.position0),f.object.zoom=f.zoom0,f.object.updateProjectionMatrix(),f.dispatchEvent(z),f.update(),T=V.NONE},this.update=(pt=new be.Vector3,fi=(new be.Quaternion).setFromUnitVectors(U.up,new be.Vector3(0,1,0)),Qr=fi.clone().inverse(),zr=new be.Vector3,Os=new be.Quaternion,function(){var ws=f.object.position;return pt.copy(ws).sub(f.target),pt.applyQuaternion(fi),R.setFromVector3(pt),f.autoRotate&&T===V.NONE&&Ge(function Ue(){return 2*Math.PI/60/60*f.autoRotateSpeed}()),R.theta+=G.theta,R.phi+=G.phi,R.theta=Math.max(f.minAzimuthAngle,Math.min(f.maxAzimuthAngle,R.theta)),R.phi=Math.max(f.minPolarAngle,Math.min(f.maxPolarAngle,R.phi)),R.makeSafe(),R.radius*=D,R.radius=Math.max(f.minDistance,Math.min(f.maxDistance,R.radius)),f.target.add(q),pt.setFromSpherical(R),pt.applyQuaternion(Qr),ws.copy(f.target).add(pt),f.object.lookAt(f.target),!0===f.enableDamping?(G.theta*=1-f.dampingFactor,G.phi*=1-f.dampingFactor):G.set(0,0,0),D=1,q.set(0,0,0),!!(J||zr.distanceToSquared(f.object.position)>N||8*(1-Os.dot(f.object.quaternion))>N)&&(f.dispatchEvent(z),zr.copy(f.object.position),Os.copy(f.object.quaternion),J=!1,!0)}),this.dispose=function(){f.domElement.removeEventListener("contextmenu",Wi,!1),f.domElement.removeEventListener("mousedown",On,!1),f.domElement.removeEventListener("wheel",tr,!1),f.domElement.removeEventListener("touchstart",on,!1),f.domElement.removeEventListener("touchend",Dr,!1),f.domElement.removeEventListener("touchmove",eo,!1),document.removeEventListener("mousemove",fn,!1),document.removeEventListener("mouseup",Si,!1),window.removeEventListener("keydown",or,!1)};var f=this,z={type:"change"},k={type:"start"},F={type:"end"},V={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_DOLLY:4,TOUCH_PAN:5},T=V.NONE,N=1e-6,R=new be.Spherical,G=new be.Spherical,D=1,q=new be.Vector3,J=!1,Z=new be.Vector2,xe=new be.Vector2,Oe=new be.Vector2,Ee=new be.Vector2,$e=new be.Vector2,Ke=new be.Vector2,Ie=new be.Vector2,at=new be.Vector2,Xe=new be.Vector2;function et(){return Math.pow(.95,f.zoomSpeed)}function Ge(pt){G.theta-=pt}function Te(pt){G.phi-=pt}var le=function(){var pt=new be.Vector3;return function(Qr,zr){pt.setFromMatrixColumn(zr,0),pt.multiplyScalar(-Qr),q.add(pt)}}(),Pe=function(){var pt=new be.Vector3;return function(Qr,zr){pt.setFromMatrixColumn(zr,1),pt.multiplyScalar(Qr),q.add(pt)}}(),Ze=function(){var pt=new be.Vector3;return function(Qr,zr){var Os=f.domElement===document?f.domElement.body:f.domElement;if(f.object instanceof be.PerspectiveCamera){pt.copy(f.object.position).sub(f.target);var ws=pt.length();ws*=Math.tan(f.object.fov/2*Math.PI/180),le(2*Qr*ws/Os.clientHeight,f.object.matrix),Pe(2*zr*ws/Os.clientHeight,f.object.matrix)}else f.object instanceof be.OrthographicCamera?(le(Qr*(f.object.right-f.object.left)/f.object.zoom/Os.clientWidth,f.object.matrix),Pe(zr*(f.object.top-f.object.bottom)/f.object.zoom/Os.clientHeight,f.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),f.enablePan=!1)}}();function Le(pt){f.object instanceof be.PerspectiveCamera?D/=pt:f.object instanceof be.OrthographicCamera?(f.object.zoom=Math.max(f.minZoom,Math.min(f.maxZoom,f.object.zoom*pt)),f.object.updateProjectionMatrix(),J=!0):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),f.enableZoom=!1)}function lt(pt){f.object instanceof be.PerspectiveCamera?D*=pt:f.object instanceof be.OrthographicCamera?(f.object.zoom=Math.max(f.minZoom,Math.min(f.maxZoom,f.object.zoom/pt)),f.object.updateProjectionMatrix(),J=!0):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),f.enableZoom=!1)}function On(pt){if(!1!==f.enabled){if(pt.preventDefault(),pt.button===f.mouseButtons.ORBIT){if(!1===f.enableRotate)return;(function gt(pt){Z.set(pt.clientX,pt.clientY)})(pt),T=V.ROTATE}else if(pt.button===f.mouseButtons.ZOOM){if(!1===f.enableZoom)return;(function Lt(pt){Ie.set(pt.clientX,pt.clientY)})(pt),T=V.DOLLY}else if(pt.button===f.mouseButtons.PAN){if(!1===f.enablePan)return;(function Qt(pt){Ee.set(pt.clientX,pt.clientY)})(pt),T=V.PAN}T!==V.NONE&&(document.addEventListener("mousemove",fn,!1),document.addEventListener("mouseup",Si,!1),f.dispatchEvent(k))}}function fn(pt){if(!1!==f.enabled)if(pt.preventDefault(),T===V.ROTATE){if(!1===f.enableRotate)return;!function vn(pt){xe.set(pt.clientX,pt.clientY),Oe.subVectors(xe,Z);var fi=f.domElement===document?f.domElement.body:f.domElement;Ge(2*Math.PI*Oe.x/fi.clientWidth*f.rotateSpeed),Te(2*Math.PI*Oe.y/fi.clientHeight*f.rotateSpeed),Z.copy(xe),f.update()}(pt)}else if(T===V.DOLLY){if(!1===f.enableZoom)return;!function Pn(pt){at.set(pt.clientX,pt.clientY),Xe.subVectors(at,Ie),Xe.y>0?Le(et()):Xe.y<0&<(et()),Ie.copy(at),f.update()}(pt)}else if(T===V.PAN){if(!1===f.enablePan)return;!function Kn(pt){$e.set(pt.clientX,pt.clientY),Ke.subVectors($e,Ee),Ze(Ke.x,Ke.y),Ee.copy($e),f.update()}(pt)}}function Si(pt){!1!==f.enabled&&(document.removeEventListener("mousemove",fn,!1),document.removeEventListener("mouseup",Si,!1),f.dispatchEvent(F),T=V.NONE)}function tr(pt){!1===f.enabled||!1===f.enableZoom||T!==V.NONE&&T!==V.ROTATE||(pt.preventDefault(),pt.stopPropagation(),function Ai(pt){pt.deltaY<0?lt(et()):pt.deltaY>0&&Le(et()),f.update()}(pt),f.dispatchEvent(k),f.dispatchEvent(F))}function or(pt){!1===f.enabled||!1===f.enableKeys||!1===f.enablePan||function Mi(pt){switch(pt.keyCode){case f.keys.UP:Ze(0,f.keyPanSpeed),f.update();break;case f.keys.BOTTOM:Ze(0,-f.keyPanSpeed),f.update();break;case f.keys.LEFT:Ze(f.keyPanSpeed,0),f.update();break;case f.keys.RIGHT:Ze(-f.keyPanSpeed,0),f.update()}}(pt)}function on(pt){if(!1!==f.enabled){switch(pt.touches.length){case 1:if(!1===f.enableRotate)return;(function Wn(pt){Z.set(pt.touches[0].pageX,pt.touches[0].pageY)})(pt),T=V.TOUCH_ROTATE;break;case 2:if(!1===f.enableZoom)return;(function Ye(pt){var fi=pt.touches[0].pageX-pt.touches[1].pageX,Qr=pt.touches[0].pageY-pt.touches[1].pageY,zr=Math.sqrt(fi*fi+Qr*Qr);Ie.set(0,zr)})(pt),T=V.TOUCH_DOLLY;break;case 3:if(!1===f.enablePan)return;(function St(pt){Ee.set(pt.touches[0].pageX,pt.touches[0].pageY)})(pt),T=V.TOUCH_PAN;break;default:T=V.NONE}T!==V.NONE&&f.dispatchEvent(k)}}function eo(pt){if(!1!==f.enabled)switch(pt.preventDefault(),pt.stopPropagation(),pt.touches.length){case 1:if(!1===f.enableRotate||T!==V.TOUCH_ROTATE)return;!function qt(pt){xe.set(pt.touches[0].pageX,pt.touches[0].pageY),Oe.subVectors(xe,Z);var fi=f.domElement===document?f.domElement.body:f.domElement;Ge(2*Math.PI*Oe.x/fi.clientWidth*f.rotateSpeed),Te(2*Math.PI*Oe.y/fi.clientHeight*f.rotateSpeed),Z.copy(xe),f.update()}(pt);break;case 2:if(!1===f.enableZoom||T!==V.TOUCH_DOLLY)return;!function En(pt){var fi=pt.touches[0].pageX-pt.touches[1].pageX,Qr=pt.touches[0].pageY-pt.touches[1].pageY,zr=Math.sqrt(fi*fi+Qr*Qr);at.set(0,zr),Xe.subVectors(at,Ie),Xe.y>0?lt(et()):Xe.y<0&&Le(et()),Ie.copy(at),f.update()}(pt);break;case 3:if(!1===f.enablePan||T!==V.TOUCH_PAN)return;!function Gt(pt){$e.set(pt.touches[0].pageX,pt.touches[0].pageY),Ke.subVectors($e,Ee),Ze(Ke.x,Ke.y),Ee.copy($e),f.update()}(pt);break;default:T=V.NONE}}function Dr(pt){!1!==f.enabled&&(f.dispatchEvent(F),T=V.NONE)}function Wi(pt){pt.preventDefault()}f.domElement.addEventListener("contextmenu",Wi,!1),f.domElement.addEventListener("mousedown",On,!1),f.domElement.addEventListener("wheel",tr,!1),f.domElement.addEventListener("touchstart",on,!1),f.domElement.addEventListener("touchend",Dr,!1),f.domElement.addEventListener("touchmove",eo,!1),window.addEventListener("keydown",or,!1),this.update()}return(p.prototype=Object.create(be.EventDispatcher.prototype)).constructor=p,Object.defineProperties(p.prototype,{center:{get:function(){return console.warn("THREE.OrbitControls: .center has been renamed to .target"),this.target}},noZoom:{get:function(){return console.warn("THREE.OrbitControls: .noZoom has been deprecated. Use .enableZoom instead."),!this.enableZoom},set:function(U){console.warn("THREE.OrbitControls: .noZoom has been deprecated. Use .enableZoom instead."),this.enableZoom=!U}},noRotate:{get:function(){return console.warn("THREE.OrbitControls: .noRotate has been deprecated. Use .enableRotate instead."),!this.enableRotate},set:function(U){console.warn("THREE.OrbitControls: .noRotate has been deprecated. Use .enableRotate instead."),this.enableRotate=!U}},noPan:{get:function(){return console.warn("THREE.OrbitControls: .noPan has been deprecated. Use .enablePan instead."),!this.enablePan},set:function(U){console.warn("THREE.OrbitControls: .noPan has been deprecated. Use .enablePan instead."),this.enablePan=!U}},noKeys:{get:function(){return console.warn("THREE.OrbitControls: .noKeys has been deprecated. Use .enableKeys instead."),!this.enableKeys},set:function(U){console.warn("THREE.OrbitControls: .noKeys has been deprecated. Use .enableKeys instead."),this.enableKeys=!U}},staticMoving:{get:function(){return console.warn("THREE.OrbitControls: .staticMoving has been deprecated. Use .enableDamping instead."),!this.enableDamping},set:function(U){console.warn("THREE.OrbitControls: .staticMoving has been deprecated. Use .enableDamping instead."),this.enableDamping=!U}},dynamicDampingFactor:{get:function(){return console.warn("THREE.OrbitControls: .dynamicDampingFactor has been renamed. Use .dampingFactor instead."),this.dampingFactor},set:function(U){console.warn("THREE.OrbitControls: .dynamicDampingFactor has been renamed. Use .dampingFactor instead."),this.dampingFactor=U}}}),p}},5568:function(st,be){!function(p){"use strict";function U(){for(var De=arguments.length,he=Array(De),Be=0;Be1){he[0]=he[0].slice(0,-1);for(var Je=he.length-1,_t=1;_t= 0x80 (not a basic code point)","invalid-input":"Invalid input"},Ge=Math.floor,Te=String.fromCharCode;function le(De){throw new RangeError(Ue[De])}function Ze(De,he){var Be=De.split("@"),Je="";return Be.length>1&&(Je=Be[0]+"@",De=Be[1]),Je+function Pe(De,he){for(var Be=[],Je=De.length;Je--;)Be[Je]=he(De[Je]);return Be}((De=De.replace(Xe,".")).split("."),he).join(".")}function Le(De){for(var he=[],Be=0,Je=De.length;Be=55296&&_t<=56319&&Be>1,he+=Ge(he/Be);he>455;_t+=q)he=Ge(he/35);return Ge(_t+36*he/(he+38))},vn=function(he){var Be=[],Je=he.length,_t=0,Et=128,mi=72,Li=he.lastIndexOf("-");Li<0&&(Li=0);for(var ct=0;ct=128&&le("not-basic"),Be.push(he.charCodeAt(ct));for(var hr=Li>0?Li+1:0;hr=Je&&le("invalid-input");var Rr=gt(he.charCodeAt(hr++));(Rr>=q||Rr>Ge((D-_t)/Fr))&&le("overflow"),_t+=Rr*Fr;var Ui=vo<=mi?1:vo>=mi+26?26:vo-mi;if(RrGe(D/Yi)&&le("overflow"),Fr*=Yi}var Hi=Be.length+1;mi=Qt(_t-wi,Hi,0==wi),Ge(_t/Hi)>D-Et&&le("overflow"),Et+=Ge(_t/Hi),_t%=Hi,Be.splice(_t++,0,Et)}return String.fromCodePoint.apply(String,Be)},Pn=function(he){var Be=[],Je=(he=Le(he)).length,_t=128,Et=0,mi=72,Li=!0,ct=!1,hr=void 0;try{for(var Fr,wi=he[Symbol.iterator]();!(Li=(Fr=wi.next()).done);Li=!0){var vo=Fr.value;vo<128&&Be.push(Te(vo))}}catch(Ua){ct=!0,hr=Ua}finally{try{!Li&&wi.return&&wi.return()}finally{if(ct)throw hr}}var Rr=Be.length,Ui=Rr;for(Rr&&Be.push("-");Ui=_t&&GrGe((D-Et)/ma)&&le("overflow"),Et+=(Yi-_t)*ma,_t=Yi;var bi=!0,dl=!1,ea=void 0;try{for(var Uh,Vi=he[Symbol.iterator]();!(bi=(Uh=Vi.next()).done);bi=!0){var qr=Uh.value;if(qr<_t&&++Et>D&&le("overflow"),qr==_t){for(var pa=Et,Ql=q;;Ql+=q){var Us=Ql<=mi?1:Ql>=mi+26?26:Ql-mi;if(pa>6|192).toString(16).toUpperCase()+"%"+(63&he|128).toString(16).toUpperCase():"%"+(he>>12|224).toString(16).toUpperCase()+"%"+(he>>6&63|128).toString(16).toUpperCase()+"%"+(63&he|128).toString(16).toUpperCase()}function Ye(De){for(var he="",Be=0,Je=De.length;Be=194&&_t<224){if(Je-Be>=6){var Et=parseInt(De.substr(Be+4,2),16);he+=String.fromCharCode((31&_t)<<6|63&Et)}else he+=De.substr(Be,6);Be+=6}else if(_t>=224){if(Je-Be>=9){var mi=parseInt(De.substr(Be+4,2),16),Li=parseInt(De.substr(Be+7,2),16);he+=String.fromCharCode((15&_t)<<12|(63&mi)<<6|63&Li)}else he+=De.substr(Be,9);Be+=9}else he+=De.substr(Be,3),Be+=3}return he}function St(De,he){function Be(Je){var _t=Ye(Je);return _t.match(he.UNRESERVED)?_t:Je}return De.scheme&&(De.scheme=String(De.scheme).replace(he.PCT_ENCODED,Be).toLowerCase().replace(he.NOT_SCHEME,"")),void 0!==De.userinfo&&(De.userinfo=String(De.userinfo).replace(he.PCT_ENCODED,Be).replace(he.NOT_USERINFO,Wn).replace(he.PCT_ENCODED,z)),void 0!==De.host&&(De.host=String(De.host).replace(he.PCT_ENCODED,Be).toLowerCase().replace(he.NOT_HOST,Wn).replace(he.PCT_ENCODED,z)),void 0!==De.path&&(De.path=String(De.path).replace(he.PCT_ENCODED,Be).replace(De.scheme?he.NOT_PATH:he.NOT_PATH_NOSCHEME,Wn).replace(he.PCT_ENCODED,z)),void 0!==De.query&&(De.query=String(De.query).replace(he.PCT_ENCODED,Be).replace(he.NOT_QUERY,Wn).replace(he.PCT_ENCODED,z)),void 0!==De.fragment&&(De.fragment=String(De.fragment).replace(he.PCT_ENCODED,Be).replace(he.NOT_FRAGMENT,Wn).replace(he.PCT_ENCODED,z)),De}function qt(De){return De.replace(/^0*(.*)/,"$1")||"0"}function En(De,he){var Be=De.match(he.IPV4ADDRESS)||[],_t=R(Be,2)[1];return _t?_t.split(".").map(qt).join("."):De}function Gt(De,he){var Be=De.match(he.IPV6ADDRESS)||[],Je=R(Be,3),_t=Je[1],Et=Je[2];if(_t){for(var mi=_t.toLowerCase().split("::").reverse(),Li=R(mi,2),ct=Li[0],hr=Li[1],wi=hr?hr.split(":").map(qt):[],Fr=ct.split(":").map(qt),vo=he.IPV4ADDRESS.test(Fr[Fr.length-1]),Rr=vo?7:8,Ui=Fr.length-Rr,Yi=Array(Rr),Hi=0;Hi1){var nr=Yi.slice(0,yo.index),Gr=Yi.slice(yo.index+yo.length);Zo=nr.join(":")+"::"+Gr.join(":")}else Zo=Yi.join(":");return Et&&(Zo+="%"+Et),Zo}return De}var nn=/^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i,On=void 0==="".match(/(){0}/)[1];function fn(De){var he=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},Be={},Je=!1!==he.iri?N:T;"suffix"===he.reference&&(De=(he.scheme?he.scheme+":":"")+"//"+De);var _t=De.match(nn);if(_t){On?(Be.scheme=_t[1],Be.userinfo=_t[3],Be.host=_t[4],Be.port=parseInt(_t[5],10),Be.path=_t[6]||"",Be.query=_t[7],Be.fragment=_t[8],isNaN(Be.port)&&(Be.port=_t[5])):(Be.scheme=_t[1]||void 0,Be.userinfo=-1!==De.indexOf("@")?_t[3]:void 0,Be.host=-1!==De.indexOf("//")?_t[4]:void 0,Be.port=parseInt(_t[5],10),Be.path=_t[6]||"",Be.query=-1!==De.indexOf("?")?_t[7]:void 0,Be.fragment=-1!==De.indexOf("#")?_t[8]:void 0,isNaN(Be.port)&&(Be.port=De.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/)?_t[4]:void 0)),Be.host&&(Be.host=Gt(En(Be.host,Je),Je)),Be.reference=void 0!==Be.scheme||void 0!==Be.userinfo||void 0!==Be.host||void 0!==Be.port||Be.path||void 0!==Be.query?void 0===Be.scheme?"relative":void 0===Be.fragment?"absolute":"uri":"same-document",he.reference&&"suffix"!==he.reference&&he.reference!==Be.reference&&(Be.error=Be.error||"URI is not a "+he.reference+" reference.");var Et=Mi[(he.scheme||Be.scheme||"").toLowerCase()];if(he.unicodeSupport||Et&&Et.unicodeSupport)St(Be,Je);else{if(Be.host&&(he.domainHost||Et&&Et.domainHost))try{Be.host=Ai.toASCII(Be.host.replace(Je.PCT_ENCODED,Ye).toLowerCase())}catch(mi){Be.error=Be.error||"Host's domain name can not be converted to ASCII via punycode: "+mi}St(Be,T)}Et&&Et.parse&&Et.parse(Be,he)}else Be.error=Be.error||"URI can not be parsed.";return Be}var tr=/^\.\.?\//,or=/^\/\.(\/|$)/,on=/^\/\.\.(\/|$)/,eo=/^\/?(?:.|\n)*?(?=\/|$)/;function Dr(De){for(var he=[];De.length;)if(De.match(tr))De=De.replace(tr,"");else if(De.match(or))De=De.replace(or,"/");else if(De.match(on))De=De.replace(on,"/"),he.pop();else if("."===De||".."===De)De="";else{var Be=De.match(eo);if(!Be)throw new Error("Unexpected dot segment condition");var Je=Be[0];De=De.slice(Je.length),he.push(Je)}return he.join("")}function Wi(De){var he=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},Be=he.iri?N:T,Je=[],_t=Mi[(he.scheme||De.scheme||"").toLowerCase()];if(_t&&_t.serialize&&_t.serialize(De,he),De.host&&!Be.IPV6ADDRESS.test(De.host)&&(he.domainHost||_t&&_t.domainHost))try{De.host=he.iri?Ai.toUnicode(De.host):Ai.toASCII(De.host.replace(Be.PCT_ENCODED,Ye).toLowerCase())}catch(Li){De.error=De.error||"Host's domain name can not be converted to "+(he.iri?"Unicode":"ASCII")+" via punycode: "+Li}St(De,Be),"suffix"!==he.reference&&De.scheme&&(Je.push(De.scheme),Je.push(":"));var Et=function Si(De,he){var Be=!1!==he.iri?N:T,Je=[];return void 0!==De.userinfo&&(Je.push(De.userinfo),Je.push("@")),void 0!==De.host&&Je.push(Gt(En(String(De.host),Be),Be).replace(Be.IPV6ADDRESS,function(_t,Et,mi){return"["+Et+(mi?"%25"+mi:"")+"]"})),("number"==typeof De.port||"string"==typeof De.port)&&(Je.push(":"),Je.push(String(De.port))),Je.length?Je.join(""):void 0}(De,he);if(void 0!==Et&&("suffix"!==he.reference&&Je.push("//"),Je.push(Et),De.path&&"/"!==De.path.charAt(0)&&Je.push("/")),void 0!==De.path){var mi=De.path;!he.absolutePath&&(!_t||!_t.absolutePath)&&(mi=Dr(mi)),void 0===Et&&(mi=mi.replace(/^\/\//,"/%2F")),Je.push(mi)}return void 0!==De.query&&(Je.push("?"),Je.push(De.query)),void 0!==De.fragment&&(Je.push("#"),Je.push(De.fragment)),Je.join("")}function pt(De,he){var Be=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},_t={};return arguments[3]||(De=fn(Wi(De,Be),Be),he=fn(Wi(he,Be),Be)),!(Be=Be||{}).tolerant&&he.scheme?(_t.scheme=he.scheme,_t.userinfo=he.userinfo,_t.host=he.host,_t.port=he.port,_t.path=Dr(he.path||""),_t.query=he.query):(void 0!==he.userinfo||void 0!==he.host||void 0!==he.port?(_t.userinfo=he.userinfo,_t.host=he.host,_t.port=he.port,_t.path=Dr(he.path||""),_t.query=he.query):(he.path?("/"===he.path.charAt(0)?_t.path=Dr(he.path):(_t.path=void 0===De.userinfo&&void 0===De.host&&void 0===De.port||De.path?De.path?De.path.slice(0,De.path.lastIndexOf("/")+1)+he.path:he.path:"/"+he.path,_t.path=Dr(_t.path)),_t.query=he.query):(_t.path=De.path,_t.query=void 0!==he.query?he.query:De.query),_t.userinfo=De.userinfo,_t.host=De.host,_t.port=De.port),_t.scheme=De.scheme),_t.fragment=he.fragment,_t}function Xo(De,he){return De&&De.toString().replace(he&&he.iri?N.PCT_ENCODED:T.PCT_ENCODED,Ye)}var ws={scheme:"http",domainHost:!0,parse:function(he,Be){return he.host||(he.error=he.error||"HTTP URIs must have a host."),he},serialize:function(he,Be){var Je="https"===String(he.scheme).toLowerCase();return(he.port===(Je?443:80)||""===he.port)&&(he.port=void 0),he.path||(he.path="/"),he}},ll={scheme:"https",domainHost:ws.domainHost,parse:ws.parse,serialize:ws.serialize};function lo(De){return"boolean"==typeof De.secure?De.secure:"wss"===String(De.scheme).toLowerCase()}var Js={scheme:"ws",domainHost:!0,parse:function(he,Be){var Je=he;return Je.secure=lo(Je),Je.resourceName=(Je.path||"/")+(Je.query?"?"+Je.query:""),Je.path=void 0,Je.query=void 0,Je},serialize:function(he,Be){if((he.port===(lo(he)?443:80)||""===he.port)&&(he.port=void 0),"boolean"==typeof he.secure&&(he.scheme=he.secure?"wss":"ws",he.secure=void 0),he.resourceName){var Je=he.resourceName.split("?"),_t=R(Je,2),Et=_t[0],mi=_t[1];he.path=Et&&"/"!==Et?Et:void 0,he.query=mi,he.resourceName=void 0}return he.fragment=void 0,he}},ud={scheme:"wss",domainHost:Js.domainHost,parse:Js.parse,serialize:Js.serialize},Vl={},Na="[A-Za-z0-9\\-\\.\\_\\~\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]",Oa="[0-9A-Fa-f]",cl=Q(Q("%[EFef]"+Oa+"%"+Oa+Oa+"%"+Oa+Oa)+"|"+Q("%[89A-Fa-f]"+Oa+"%"+Oa+Oa)+"|"+Q("%"+Oa+Oa)),mu=U("[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]",'[\\"\\\\]'),mc=new RegExp(Na,"g"),cs=new RegExp(cl,"g"),Rm=new RegExp(U("[^]","[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]","[\\.]",'[\\"]',mu),"g"),hd=new RegExp(U("[^]",Na,"[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]"),"g"),$i=hd;function pu(De){var he=Ye(De);return he.match(mc)?he:De}var $A={scheme:"mailto",parse:function(he,Be){var Je=he,_t=Je.to=Je.path?Je.path.split(","):[];if(Je.path=void 0,Je.query){for(var Et=!1,mi={},Li=Je.query.split("&"),ct=0,hr=Li.length;ct{st.exports="varying highp float vDelta;\nvarying vec2 vUV;\nvarying vec4 vOutgoingDiffuseColor;\nvarying vec4 vOutgoingDiffuseDeltaColor;\nvarying vec3 vWorldNormal;\n\nbool normalPointingUp(const in vec3 normal)\n{\n return normal.y > 0.9;\n}\n\nvoid main() {\n const float minDelta = 0.001;\n bool isTop = normalPointingUp(vWorldNormal);\n \n if (abs(vDelta) > minDelta && (vUV.y > 1.0 - abs(vDelta) || isTop))\n {\n gl_FragColor = vOutgoingDiffuseDeltaColor;\n } else {\n gl_FragColor = vOutgoingDiffuseColor;\n }\n}\n"},1812:st=>{st.exports="#define saturate(a) clamp( a, 0.0, 1.0)\n#define RECIPROCAL_PI 0.31830988618\n#define PI 3.14159265359\n\nattribute vec3 color;\nattribute vec3 deltaColor;\nattribute highp float delta;\nattribute lowp float isHeight;\n\nvarying vec3 vWorldNormal;\nvarying highp float vDelta;\nvarying vec2 vUV;\nvarying vec4 vOutgoingDiffuseColor;\nvarying vec4 vOutgoingDiffuseDeltaColor;\n\nuniform vec3 ambientLightColor;\n\nstruct DirectionalLight {\n vec3 direction;\n vec3 color;\n};\nuniform DirectionalLight directionalLights[NUM_DIR_LIGHTS];\n\nstruct IncidentLight {\n vec3 color;\n vec3 direction;\n};\n\nstruct ReflectedLight {\n vec3 directDiffuse;\n vec3 directSpecular;\n vec3 indirectDiffuse;\n vec3 indirectSpecular;\n};\n\nvoid getDirectionalDirectLightIrradiance(const in DirectionalLight directionalLight,out IncidentLight directLight) {\n directLight.color = directionalLight.color;\n directLight.direction = directionalLight.direction;\n}\n\nvec3 BRDF_Diffuse_Lambert (const in vec3 diffuseColor) {\n return RECIPROCAL_PI * diffuseColor;\n}\n\nvec3 getAmbientLightIrradiance() {\n return ambientLightColor*PI;\n}\n\nvec3 getBaseOutgoingLight(const vec3 lightFront) {\n ReflectedLight reflectedLight = ReflectedLight(vec3(0.0), vec3(0.0), vec3(0.0), vec3(0.0));\n reflectedLight.indirectDiffuse = getAmbientLightIrradiance();\n reflectedLight.directDiffuse = lightFront;\n return (reflectedLight.directDiffuse + reflectedLight.indirectDiffuse);\n}\n\n// better to calc the colors in vertex as no color interpolation is used, performance improvements will be noticeable \n// once frustum or occlusion culling is properly used\n\nvoid main() \n{\n vec3 adjustedHeightPos = position;\n \n // height position will be adjusted based on camera position in order to prevent \n // z-fighting in different zoom levels when position is positive.\n // preferred multiplication over if branching of the isHeight variable \n // the same line could be written this way : \n //\n // adjustedHeightPos = position\n // if (isHeight>0.5 && cameraPosition.y>0) {\n // adjustedHeightPos.y = position.y + cameraPosition.y/1000.\n // } \n // \n \n adjustedHeightPos.y = position.y + (isHeight*max(0.,cameraPosition.y/1000.));\n\n\tvec4 modelViewPosition = modelViewMatrix * vec4(adjustedHeightPos, 1.0);\n\tgl_Position = projectionMatrix * modelViewPosition;\n\n vec3 worldNormal = vWorldNormal = normalize((modelMatrix * vec4(normal, 0.0)).xyz);\n vec3 normal= normalize(normalMatrix * normal);\n vec3 lightFront = vec3(0.0);\n\n vUV = uv;\n vDelta = abs(delta);\n\n for (int i=0; i < 2; ++i)\n {\n IncidentLight directLight;\n\n getDirectionalDirectLightIrradiance(directionalLights[i],directLight);\n float dotNL = dot(normal, directLight.direction);\n vec3 directLightColor_Diffuse = PI * directLight.color; \n lightFront += saturate(dotNL) * directLightColor_Diffuse;\n }\n\n vec3 baseOutgoingLight = getBaseOutgoingLight(lightFront);\n \n vOutgoingDiffuseColor = vec4(BRDF_Diffuse_Lambert(color.rgb)*baseOutgoingLight,1.0);\n vOutgoingDiffuseDeltaColor = vec4(BRDF_Diffuse_Lambert(deltaColor)*baseOutgoingLight,1.0);\n}\n"},6655:st=>{st.exports='precision highp float;\n\t\t\nuniform sampler2D tDiffuse;\nuniform vec2 resolution;\n\t\t\nvarying vec2 vUv;\n\t\t\n// FXAA 3.11 implementation by NVIDIA, ported to WebGL by Agost Biro (biro@archilogic.com)\n\n//----------------------------------------------------------------------------------\n// File: es3-kepler\\FXAA\\assets\\shaders/FXAA_DefaultES.frag\n// SDK Version: v3.00\n// Email: gameworks@nvidia.com\n// Site: http://developer.nvidia.com/\n//\n// Copyright (c) 2014-2015, NVIDIA CORPORATION. All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions\n// are met:\n// * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// * Redistributions in binary form must reproduce the above copyright\n// notice, this list of conditions and the following disclaimer in the\n// documentation and/or other materials provided with the distribution.\n// * Neither the name of NVIDIA CORPORATION nor the names of its\n// contributors may be used to endorse or promote products derived\n// from this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS\\\\ AND ANY\n// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR\n// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\n// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\n// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY\n// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n//\n//----------------------------------------------------------------------------------\n\t\t\n#define FXAA_PC 1\n#define FXAA_GLSL_100 1\n#define FXAA_QUALITY_PRESET 15\n#define FXAA_GATHER4_ALPHA 0\n#define FXAA_GREEN_AS_LUMA 1\n#define FXAA_EARLY_EXIT 1\n\n/*--------------------------------------------------------------------------*/\n#ifndef FXAA_GLSL_120\n #define FXAA_GLSL_120 0\n#endif\n/*--------------------------------------------------------------------------*/\n#ifndef FXAA_GLSL_130\n #define FXAA_GLSL_130 0\n#endif\n/*--------------------------------------------------------------------------*/\n#ifndef FXAA_HLSL_3\n #define FXAA_HLSL_3 0\n#endif\n/*--------------------------------------------------------------------------*/\n#ifndef FXAA_HLSL_4\n #define FXAA_HLSL_4 0\n#endif\n/*--------------------------------------------------------------------------*/\n#ifndef FXAA_HLSL_5\n #define FXAA_HLSL_5 0\n#endif\n/*==========================================================================*/\n#ifndef FXAA_GREEN_AS_LUMA\n //\n // For those using non-linear color,\n // and either not able to get luma in alpha, or not wanting to,\n // this enables FXAA to run using green as a proxy for luma.\n // So with this enabled, no need to pack luma in alpha.\n //\n // This will turn off AA on anything which lacks some amount of green.\n // Pure red and blue or combination of only R and B, will get no AA.\n //\n // Might want to lower the settings for both,\n // fxaaConsoleEdgeThresholdMin\n // fxaaQualityEdgeThresholdMin\n // In order to insure AA does not get turned off on colors\n // which contain a minor amount of green.\n //\n // 1 = On.\n // 0 = Off.\n //\n #define FXAA_GREEN_AS_LUMA 0\n#endif\n/*--------------------------------------------------------------------------*/\n#ifndef FXAA_EARLY_EXIT\n //\n // Controls algorithm\\s early exit path.\n // On PS3 turning this ON adds 2 cycles to the shader.\n // On 360 turning this OFF adds 10ths of a millisecond to the shader.\n // Turning this off on console will result in a more blurry image.\n // So this defaults to on.\n //\n // 1 = On.\n // 0 = Off.\n //\n #define FXAA_EARLY_EXIT 1\n#endif\n/*--------------------------------------------------------------------------*/\n#ifndef FXAA_DISCARD\n //\n // Only valid for PC OpenGL currently.\n // Probably will not work when FXAA_GREEN_AS_LUMA = 1.\n //\n // 1 = Use discard on pixels which don\\t need AA.\n // For APIs which enable concurrent TEX+ROP from same surface.\n // 0 = Return unchanged color on pixels which don\\t need AA.\n //\n #define FXAA_DISCARD 0\n#endif\n/*--------------------------------------------------------------------------*/\n#ifndef FXAA_FAST_PIXEL_OFFSET\n //\n // Used for GLSL 120 only.\n //\n // 1 = GL API supports fast pixel offsets\n // 0 = do not use fast pixel offsets\n //\n #ifdef GL_EXT_gpu_shader4\n #define FXAA_FAST_PIXEL_OFFSET 1\n #endif\n #ifdef GL_NV_gpu_shader5\n #define FXAA_FAST_PIXEL_OFFSET 1\n #endif\n #ifdef GL_ARB_gpu_shader5\n #define FXAA_FAST_PIXEL_OFFSET 1\n #endif\n #ifndef FXAA_FAST_PIXEL_OFFSET\n #define FXAA_FAST_PIXEL_OFFSET 0\n #endif\n#endif\n/*--------------------------------------------------------------------------*/\n#ifndef FXAA_GATHER4_ALPHA\n //\n // 1 = API supports gather4 on alpha channel.\n // 0 = API does not support gather4 on alpha channel.\n //\n #if (FXAA_HLSL_5 == 1)\n #define FXAA_GATHER4_ALPHA 1\n #endif\n #ifdef GL_ARB_gpu_shader5\n #define FXAA_GATHER4_ALPHA 1\n #endif\n #ifdef GL_NV_gpu_shader5\n #define FXAA_GATHER4_ALPHA 1\n #endif\n #ifndef FXAA_GATHER4_ALPHA\n #define FXAA_GATHER4_ALPHA 0\n #endif\n#endif\n\n\n/*============================================================================\n FXAA QUALITY - TUNING KNOBS\n------------------------------------------------------------------------------\nNOTE the other tuning knobs are now in the shader function inputs!\n============================================================================*/\n#ifndef FXAA_QUALITY_PRESET\n //\n // Choose the quality preset.\n // This needs to be compiled into the shader as it effects code.\n // Best option to include multiple presets is to\n // in each shader define the preset, then include this file.\n //\n // OPTIONS\n // -----------------------------------------------------------------------\n // 10 to 15 - default medium dither (10=fastest, 15=highest quality)\n // 20 to 29 - less dither, more expensive (20=fastest, 29=highest quality)\n // 39 - no dither, very expensive\n //\n // NOTES\n // -----------------------------------------------------------------------\n // 12 = slightly faster then FXAA 3.9 and higher edge quality (default)\n // 13 = about same speed as FXAA 3.9 and better than 12\n // 23 = closest to FXAA 3.9 visually and performance wise\n // _ = the lowest digit is directly related to performance\n // _ = the highest digit is directly related to style\n //\n #define FXAA_QUALITY_PRESET 12\n#endif\n\n\n/*============================================================================\n\n FXAA QUALITY - PRESETS\n\n============================================================================*/\n\n/*============================================================================\n FXAA QUALITY - MEDIUM DITHER PRESETS\n============================================================================*/\n#if (FXAA_QUALITY_PRESET == 10)\n #define FXAA_QUALITY_PS 3\n #define FXAA_QUALITY_P0 1.5\n #define FXAA_QUALITY_P1 3.0\n #define FXAA_QUALITY_P2 12.0\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_QUALITY_PRESET == 11)\n #define FXAA_QUALITY_PS 4\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.5\n #define FXAA_QUALITY_P2 3.0\n #define FXAA_QUALITY_P3 12.0\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_QUALITY_PRESET == 12)\n #define FXAA_QUALITY_PS 5\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.5\n #define FXAA_QUALITY_P2 2.0\n #define FXAA_QUALITY_P3 4.0\n #define FXAA_QUALITY_P4 12.0\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_QUALITY_PRESET == 13)\n #define FXAA_QUALITY_PS 6\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.5\n #define FXAA_QUALITY_P2 2.0\n #define FXAA_QUALITY_P3 2.0\n #define FXAA_QUALITY_P4 4.0\n #define FXAA_QUALITY_P5 12.0\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_QUALITY_PRESET == 14)\n #define FXAA_QUALITY_PS 7\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.5\n #define FXAA_QUALITY_P2 2.0\n #define FXAA_QUALITY_P3 2.0\n #define FXAA_QUALITY_P4 2.0\n #define FXAA_QUALITY_P5 4.0\n #define FXAA_QUALITY_P6 12.0\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_QUALITY_PRESET == 15)\n #define FXAA_QUALITY_PS 8\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.5\n #define FXAA_QUALITY_P2 2.0\n #define FXAA_QUALITY_P3 2.0\n #define FXAA_QUALITY_P4 2.0\n #define FXAA_QUALITY_P5 2.0\n #define FXAA_QUALITY_P6 4.0\n #define FXAA_QUALITY_P7 12.0\n#endif\n\n/*============================================================================\n FXAA QUALITY - LOW DITHER PRESETS\n============================================================================*/\n#if (FXAA_QUALITY_PRESET == 20)\n #define FXAA_QUALITY_PS 3\n #define FXAA_QUALITY_P0 1.5\n #define FXAA_QUALITY_P1 2.0\n #define FXAA_QUALITY_P2 8.0\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_QUALITY_PRESET == 21)\n #define FXAA_QUALITY_PS 4\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.5\n #define FXAA_QUALITY_P2 2.0\n #define FXAA_QUALITY_P3 8.0\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_QUALITY_PRESET == 22)\n #define FXAA_QUALITY_PS 5\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.5\n #define FXAA_QUALITY_P2 2.0\n #define FXAA_QUALITY_P3 2.0\n #define FXAA_QUALITY_P4 8.0\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_QUALITY_PRESET == 23)\n #define FXAA_QUALITY_PS 6\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.5\n #define FXAA_QUALITY_P2 2.0\n #define FXAA_QUALITY_P3 2.0\n #define FXAA_QUALITY_P4 2.0\n #define FXAA_QUALITY_P5 8.0\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_QUALITY_PRESET == 24)\n #define FXAA_QUALITY_PS 7\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.5\n #define FXAA_QUALITY_P2 2.0\n #define FXAA_QUALITY_P3 2.0\n #define FXAA_QUALITY_P4 2.0\n #define FXAA_QUALITY_P5 3.0\n #define FXAA_QUALITY_P6 8.0\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_QUALITY_PRESET == 25)\n #define FXAA_QUALITY_PS 8\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.5\n #define FXAA_QUALITY_P2 2.0\n #define FXAA_QUALITY_P3 2.0\n #define FXAA_QUALITY_P4 2.0\n #define FXAA_QUALITY_P5 2.0\n #define FXAA_QUALITY_P6 4.0\n #define FXAA_QUALITY_P7 8.0\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_QUALITY_PRESET == 26)\n #define FXAA_QUALITY_PS 9\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.5\n #define FXAA_QUALITY_P2 2.0\n #define FXAA_QUALITY_P3 2.0\n #define FXAA_QUALITY_P4 2.0\n #define FXAA_QUALITY_P5 2.0\n #define FXAA_QUALITY_P6 2.0\n #define FXAA_QUALITY_P7 4.0\n #define FXAA_QUALITY_P8 8.0\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_QUALITY_PRESET == 27)\n #define FXAA_QUALITY_PS 10\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.5\n #define FXAA_QUALITY_P2 2.0\n #define FXAA_QUALITY_P3 2.0\n #define FXAA_QUALITY_P4 2.0\n #define FXAA_QUALITY_P5 2.0\n #define FXAA_QUALITY_P6 2.0\n #define FXAA_QUALITY_P7 2.0\n #define FXAA_QUALITY_P8 4.0\n #define FXAA_QUALITY_P9 8.0\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_QUALITY_PRESET == 28)\n #define FXAA_QUALITY_PS 11\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.5\n #define FXAA_QUALITY_P2 2.0\n #define FXAA_QUALITY_P3 2.0\n #define FXAA_QUALITY_P4 2.0\n #define FXAA_QUALITY_P5 2.0\n #define FXAA_QUALITY_P6 2.0\n #define FXAA_QUALITY_P7 2.0\n #define FXAA_QUALITY_P8 2.0\n #define FXAA_QUALITY_P9 4.0\n #define FXAA_QUALITY_P10 8.0\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_QUALITY_PRESET == 29)\n #define FXAA_QUALITY_PS 12\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.5\n #define FXAA_QUALITY_P2 2.0\n #define FXAA_QUALITY_P3 2.0\n #define FXAA_QUALITY_P4 2.0\n #define FXAA_QUALITY_P5 2.0\n #define FXAA_QUALITY_P6 2.0\n #define FXAA_QUALITY_P7 2.0\n #define FXAA_QUALITY_P8 2.0\n #define FXAA_QUALITY_P9 2.0\n #define FXAA_QUALITY_P10 4.0\n #define FXAA_QUALITY_P11 8.0\n#endif\n\n/*============================================================================\n FXAA QUALITY - EXTREME QUALITY\n============================================================================*/\n#if (FXAA_QUALITY_PRESET == 39)\n #define FXAA_QUALITY_PS 12\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.0\n #define FXAA_QUALITY_P2 1.0\n #define FXAA_QUALITY_P3 1.0\n #define FXAA_QUALITY_P4 1.0\n #define FXAA_QUALITY_P5 1.5\n #define FXAA_QUALITY_P6 2.0\n #define FXAA_QUALITY_P7 2.0\n #define FXAA_QUALITY_P8 2.0\n #define FXAA_QUALITY_P9 2.0\n #define FXAA_QUALITY_P10 4.0\n #define FXAA_QUALITY_P11 8.0\n#endif\n\n\n\n/*============================================================================\n\n API PORTING\n\n============================================================================*/\n#if (FXAA_GLSL_100 == 1) || (FXAA_GLSL_120 == 1) || (FXAA_GLSL_130 == 1)\n #define FxaaBool bool\n #define FxaaDiscard discard\n #define FxaaFloat float\n #define FxaaFloat2 vec2\n #define FxaaFloat3 vec3\n #define FxaaFloat4 vec4\n #define FxaaHalf float\n #define FxaaHalf2 vec2\n #define FxaaHalf3 vec3\n #define FxaaHalf4 vec4\n #define FxaaInt2 ivec2\n #define FxaaSat(x) clamp(x, 0.0, 1.0)\n #define FxaaTex sampler2D\n#else\n #define FxaaBool bool\n #define FxaaDiscard clip(-1)\n #define FxaaFloat float\n #define FxaaFloat2 float2\n #define FxaaFloat3 float3\n #define FxaaFloat4 float4\n #define FxaaHalf half\n #define FxaaHalf2 half2\n #define FxaaHalf3 half3\n #define FxaaHalf4 half4\n #define FxaaSat(x) saturate(x)\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_GLSL_100 == 1)\n #define FxaaTexTop(t, p) texture2D(t, p, 0.0)\n #define FxaaTexOff(t, p, o, r) texture2D(t, p + (o * r), 0.0)\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_GLSL_120 == 1)\n // Requires,\n // #version 120\n // And at least,\n // #extension GL_EXT_gpu_shader4 : enable\n // (or set FXAA_FAST_PIXEL_OFFSET 1 to work like DX9)\n #define FxaaTexTop(t, p) texture2DLod(t, p, 0.0)\n #if (FXAA_FAST_PIXEL_OFFSET == 1)\n #define FxaaTexOff(t, p, o, r) texture2DLodOffset(t, p, 0.0, o)\n #else\n #define FxaaTexOff(t, p, o, r) texture2DLod(t, p + (o * r), 0.0)\n #endif\n #if (FXAA_GATHER4_ALPHA == 1)\n // use #extension GL_ARB_gpu_shader5 : enable\n #define FxaaTexAlpha4(t, p) textureGather(t, p, 3)\n #define FxaaTexOffAlpha4(t, p, o) textureGatherOffset(t, p, o, 3)\n #define FxaaTexGreen4(t, p) textureGather(t, p, 1)\n #define FxaaTexOffGreen4(t, p, o) textureGatherOffset(t, p, o, 1)\n #endif\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_GLSL_130 == 1)\n // Requires "#version 130" or better\n #define FxaaTexTop(t, p) textureLod(t, p, 0.0)\n #define FxaaTexOff(t, p, o, r) textureLodOffset(t, p, 0.0, o)\n #if (FXAA_GATHER4_ALPHA == 1)\n // use #extension GL_ARB_gpu_shader5 : enable\n #define FxaaTexAlpha4(t, p) textureGather(t, p, 3)\n #define FxaaTexOffAlpha4(t, p, o) textureGatherOffset(t, p, o, 3)\n #define FxaaTexGreen4(t, p) textureGather(t, p, 1)\n #define FxaaTexOffGreen4(t, p, o) textureGatherOffset(t, p, o, 1)\n #endif\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_HLSL_3 == 1)\n #define FxaaInt2 float2\n #define FxaaTex sampler2D\n #define FxaaTexTop(t, p) tex2Dlod(t, float4(p, 0.0, 0.0))\n #define FxaaTexOff(t, p, o, r) tex2Dlod(t, float4(p + (o * r), 0, 0))\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_HLSL_4 == 1)\n #define FxaaInt2 int2\n struct FxaaTex { SamplerState smpl; Texture2D tex; };\n #define FxaaTexTop(t, p) t.tex.SampleLevel(t.smpl, p, 0.0)\n #define FxaaTexOff(t, p, o, r) t.tex.SampleLevel(t.smpl, p, 0.0, o)\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_HLSL_5 == 1)\n #define FxaaInt2 int2\n struct FxaaTex { SamplerState smpl; Texture2D tex; };\n #define FxaaTexTop(t, p) t.tex.SampleLevel(t.smpl, p, 0.0)\n #define FxaaTexOff(t, p, o, r) t.tex.SampleLevel(t.smpl, p, 0.0, o)\n #define FxaaTexAlpha4(t, p) t.tex.GatherAlpha(t.smpl, p)\n #define FxaaTexOffAlpha4(t, p, o) t.tex.GatherAlpha(t.smpl, p, o)\n #define FxaaTexGreen4(t, p) t.tex.GatherGreen(t.smpl, p)\n #define FxaaTexOffGreen4(t, p, o) t.tex.GatherGreen(t.smpl, p, o)\n#endif\n\n\n/*============================================================================\n GREEN AS LUMA OPTION SUPPORT FUNCTION\n============================================================================*/\n#if (FXAA_GREEN_AS_LUMA == 0)\n FxaaFloat FxaaLuma(FxaaFloat4 rgba) { return rgba.w; }\n#else\n FxaaFloat FxaaLuma(FxaaFloat4 rgba) { return rgba.y; }\n#endif\n\n/*============================================================================\n\n FXAA3 QUALITY - PC\n\n============================================================================*/\n#if (FXAA_PC == 1)\n/*--------------------------------------------------------------------------*/\nFxaaFloat4 FxaaPixelShader(\n //\n // Use noperspective interpolation here (turn off perspective interpolation).\n // {xy} = center of pixel\n FxaaFloat2 pos,\n //\n // Used only for FXAA Console, and not used on the 360 version.\n // Use noperspective interpolation here (turn off perspective interpolation).\n // {xy_} = upper left of pixel\n // {_zw} = lower right of pixel\n FxaaFloat4 fxaaConsolePosPos,\n //\n // Input color texture.\n // {rgb_} = color in linear or perceptual color space\n // if (FXAA_GREEN_AS_LUMA == 0)\n // {__a} = luma in perceptual color space (not linear)\n FxaaTex tex,\n //\n // Only used on the optimized 360 version of FXAA Console.\n // For everything but 360, just use the same input here as for "tex".\n // For 360, same texture, just alias with a 2nd sampler.\n // This sampler needs to have an exponent bias of -1.\n FxaaTex fxaaConsole360TexExpBiasNegOne,\n //\n // Only used on the optimized 360 version of FXAA Console.\n // For everything but 360, just use the same input here as for "tex".\n // For 360, same texture, just alias with a 3nd sampler.\n // This sampler needs to have an exponent bias of -2.\n FxaaTex fxaaConsole360TexExpBiasNegTwo,\n //\n // Only used on FXAA Quality.\n // This must be from a constant/uniform.\n // {x_} = 1.0/screenWidthInPixels\n // {_y} = 1.0/screenHeightInPixels\n FxaaFloat2 fxaaQualityRcpFrame,\n //\n // Only used on FXAA Console.\n // This must be from a constant/uniform.\n // This effects sub-pixel AA quality and inversely sharpness.\n // Where N ranges between,\n // N = 0.50 (default)\n // N = 0.33 (sharper)\n // {x__} = -N/screenWidthInPixels\n // {_y_} = -N/screenHeightInPixels\n // {_z_} = N/screenWidthInPixels\n // {__w} = N/screenHeightInPixels\n FxaaFloat4 fxaaConsoleRcpFrameOpt,\n //\n // Only used on FXAA Console.\n // Not used on 360, but used on PS3 and PC.\n // This must be from a constant/uniform.\n // {x__} = -2.0/screenWidthInPixels\n // {_y_} = -2.0/screenHeightInPixels\n // {_z_} = 2.0/screenWidthInPixels\n // {__w} = 2.0/screenHeightInPixels\n FxaaFloat4 fxaaConsoleRcpFrameOpt2,\n //\n // Only used on FXAA Console.\n // Only used on 360 in place of fxaaConsoleRcpFrameOpt2.\n // This must be from a constant/uniform.\n // {x__} = 8.0/screenWidthInPixels\n // {_y_} = 8.0/screenHeightInPixels\n // {_z_} = -4.0/screenWidthInPixels\n // {__w} = -4.0/screenHeightInPixels\n FxaaFloat4 fxaaConsole360RcpFrameOpt2,\n //\n // Only used on FXAA Quality.\n // This used to be the FXAA_QUALITY_SUBPIX define.\n // It is here now to allow easier tuning.\n // Choose the amount of sub-pixel aliasing removal.\n // This can effect sharpness.\n // 1.00 - upper limit (softer)\n // 0.75 - default amount of filtering\n // 0.50 - lower limit (sharper, less sub-pixel aliasing removal)\n // 0.25 - almost off\n // 0.00 - completely off\n FxaaFloat fxaaQualitySubpix,\n //\n // Only used on FXAA Quality.\n // This used to be the FXAA_QUALITY_EDGE_THRESHOLD define.\n // It is here now to allow easier tuning.\n // The minimum amount of local contrast required to apply algorithm.\n // 0.333 - too little (faster)\n // 0.250 - low quality\n // 0.166 - default\n // 0.125 - high quality\n // 0.063 - overkill (slower)\n FxaaFloat fxaaQualityEdgeThreshold,\n //\n // Only used on FXAA Quality.\n // This used to be the FXAA_QUALITY_EDGE_THRESHOLD_MIN define.\n // It is here now to allow easier tuning.\n // Trims the algorithm from processing darks.\n // 0.0833 - upper limit (default, the start of visible unfiltered edges)\n // 0.0625 - high quality (faster)\n // 0.0312 - visible limit (slower)\n // Special notes when using FXAA_GREEN_AS_LUMA,\n // Likely want to set this to zero.\n // As colors that are mostly not-green\n // will appear very dark in the green channel!\n // Tune by looking at mostly non-green content,\n // then start at zero and increase until aliasing is a problem.\n FxaaFloat fxaaQualityEdgeThresholdMin,\n //\n // Only used on FXAA Console.\n // This used to be the FXAA_CONSOLE_EDGE_SHARPNESS define.\n // It is here now to allow easier tuning.\n // This does not effect PS3, as this needs to be compiled in.\n // Use FXAA_CONSOLE_PS3_EDGE_SHARPNESS for PS3.\n // Due to the PS3 being ALU bound,\n // there are only three safe values here: 2 and 4 and 8.\n // These options use the shaders ability to a free *|/ by 2|4|8.\n // For all other platforms can be a non-power of two.\n // 8.0 is sharper (default!!!)\n // 4.0 is softer\n // 2.0 is really soft (good only for vector graphics inputs)\n FxaaFloat fxaaConsoleEdgeSharpness,\n //\n // Only used on FXAA Console.\n // This used to be the FXAA_CONSOLE_EDGE_THRESHOLD define.\n // It is here now to allow easier tuning.\n // This does not effect PS3, as this needs to be compiled in.\n // Use FXAA_CONSOLE_PS3_EDGE_THRESHOLD for PS3.\n // Due to the PS3 being ALU bound,\n // there are only two safe values here: 1/4 and 1/8.\n // These options use the shaders ability to a free *|/ by 2|4|8.\n // The console setting has a different mapping than the quality setting.\n // Other platforms can use other values.\n // 0.125 leaves less aliasing, but is softer (default!!!)\n // 0.25 leaves more aliasing, and is sharper\n FxaaFloat fxaaConsoleEdgeThreshold,\n //\n // Only used on FXAA Console.\n // This used to be the FXAA_CONSOLE_EDGE_THRESHOLD_MIN define.\n // It is here now to allow easier tuning.\n // Trims the algorithm from processing darks.\n // The console setting has a different mapping than the quality setting.\n // This only applies when FXAA_EARLY_EXIT is 1.\n // This does not apply to PS3,\n // PS3 was simplified to avoid more shader instructions.\n // 0.06 - faster but more aliasing in darks\n // 0.05 - default\n // 0.04 - slower and less aliasing in darks\n // Special notes when using FXAA_GREEN_AS_LUMA,\n // Likely want to set this to zero.\n // As colors that are mostly not-green\n // will appear very dark in the green channel!\n // Tune by looking at mostly non-green content,\n // then start at zero and increase until aliasing is a problem.\n FxaaFloat fxaaConsoleEdgeThresholdMin,\n //\n // Extra constants for 360 FXAA Console only.\n // Use zeros or anything else for other platforms.\n // These must be in physical constant registers and NOT immediates.\n // Immediates will result in compiler un-optimizing.\n // {xyzw} = float4(1.0, -1.0, 0.25, -0.25)\n FxaaFloat4 fxaaConsole360ConstDir\n) {\n/*--------------------------------------------------------------------------*/\n FxaaFloat2 posM;\n posM.x = pos.x;\n posM.y = pos.y;\n #if (FXAA_GATHER4_ALPHA == 1)\n #if (FXAA_DISCARD == 0)\n FxaaFloat4 rgbyM = FxaaTexTop(tex, posM);\n #if (FXAA_GREEN_AS_LUMA == 0)\n #define lumaM rgbyM.w\n #else\n #define lumaM rgbyM.y\n #endif\n #endif\n #if (FXAA_GREEN_AS_LUMA == 0)\n FxaaFloat4 luma4A = FxaaTexAlpha4(tex, posM);\n FxaaFloat4 luma4B = FxaaTexOffAlpha4(tex, posM, FxaaInt2(-1, -1));\n #else\n FxaaFloat4 luma4A = FxaaTexGreen4(tex, posM);\n FxaaFloat4 luma4B = FxaaTexOffGreen4(tex, posM, FxaaInt2(-1, -1));\n #endif\n #if (FXAA_DISCARD == 1)\n #define lumaM luma4A.w\n #endif\n #define lumaE luma4A.z\n #define lumaS luma4A.x\n #define lumaSE luma4A.y\n #define lumaNW luma4B.w\n #define lumaN luma4B.z\n #define lumaW luma4B.x\n #else\n FxaaFloat4 rgbyM = FxaaTexTop(tex, posM);\n #if (FXAA_GREEN_AS_LUMA == 0)\n #define lumaM rgbyM.w\n #else\n #define lumaM rgbyM.y\n #endif\n #if (FXAA_GLSL_100 == 1)\n FxaaFloat lumaS = FxaaLuma(FxaaTexOff(tex, posM, FxaaFloat2( 0.0, 1.0), fxaaQualityRcpFrame.xy));\n FxaaFloat lumaE = FxaaLuma(FxaaTexOff(tex, posM, FxaaFloat2( 1.0, 0.0), fxaaQualityRcpFrame.xy));\n FxaaFloat lumaN = FxaaLuma(FxaaTexOff(tex, posM, FxaaFloat2( 0.0,-1.0), fxaaQualityRcpFrame.xy));\n FxaaFloat lumaW = FxaaLuma(FxaaTexOff(tex, posM, FxaaFloat2(-1.0, 0.0), fxaaQualityRcpFrame.xy));\n #else\n FxaaFloat lumaS = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 0, 1), fxaaQualityRcpFrame.xy));\n FxaaFloat lumaE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1, 0), fxaaQualityRcpFrame.xy));\n FxaaFloat lumaN = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 0,-1), fxaaQualityRcpFrame.xy));\n FxaaFloat lumaW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 0), fxaaQualityRcpFrame.xy));\n #endif\n #endif\n/*--------------------------------------------------------------------------*/\n FxaaFloat maxSM = max(lumaS, lumaM);\n FxaaFloat minSM = min(lumaS, lumaM);\n FxaaFloat maxESM = max(lumaE, maxSM);\n FxaaFloat minESM = min(lumaE, minSM);\n FxaaFloat maxWN = max(lumaN, lumaW);\n FxaaFloat minWN = min(lumaN, lumaW);\n FxaaFloat rangeMax = max(maxWN, maxESM);\n FxaaFloat rangeMin = min(minWN, minESM);\n FxaaFloat rangeMaxScaled = rangeMax * fxaaQualityEdgeThreshold;\n FxaaFloat range = rangeMax - rangeMin;\n FxaaFloat rangeMaxClamped = max(fxaaQualityEdgeThresholdMin, rangeMaxScaled);\n FxaaBool earlyExit = range < rangeMaxClamped;\n/*--------------------------------------------------------------------------*/\n if(earlyExit)\n #if (FXAA_DISCARD == 1)\n FxaaDiscard;\n #else\n return rgbyM;\n #endif\n/*--------------------------------------------------------------------------*/\n #if (FXAA_GATHER4_ALPHA == 0)\n #if (FXAA_GLSL_100 == 1)\n FxaaFloat lumaNW = FxaaLuma(FxaaTexOff(tex, posM, FxaaFloat2(-1.0,-1.0), fxaaQualityRcpFrame.xy));\n FxaaFloat lumaSE = FxaaLuma(FxaaTexOff(tex, posM, FxaaFloat2( 1.0, 1.0), fxaaQualityRcpFrame.xy));\n FxaaFloat lumaNE = FxaaLuma(FxaaTexOff(tex, posM, FxaaFloat2( 1.0,-1.0), fxaaQualityRcpFrame.xy));\n FxaaFloat lumaSW = FxaaLuma(FxaaTexOff(tex, posM, FxaaFloat2(-1.0, 1.0), fxaaQualityRcpFrame.xy));\n #else\n FxaaFloat lumaNW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1,-1), fxaaQualityRcpFrame.xy));\n FxaaFloat lumaSE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1, 1), fxaaQualityRcpFrame.xy));\n FxaaFloat lumaNE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1,-1), fxaaQualityRcpFrame.xy));\n FxaaFloat lumaSW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 1), fxaaQualityRcpFrame.xy));\n #endif\n #else\n FxaaFloat lumaNE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(1, -1), fxaaQualityRcpFrame.xy));\n FxaaFloat lumaSW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 1), fxaaQualityRcpFrame.xy));\n #endif\n/*--------------------------------------------------------------------------*/\n FxaaFloat lumaNS = lumaN + lumaS;\n FxaaFloat lumaWE = lumaW + lumaE;\n FxaaFloat subpixRcpRange = 1.0/range;\n FxaaFloat subpixNSWE = lumaNS + lumaWE;\n FxaaFloat edgeHorz1 = (-2.0 * lumaM) + lumaNS;\n FxaaFloat edgeVert1 = (-2.0 * lumaM) + lumaWE;\n/*--------------------------------------------------------------------------*/\n FxaaFloat lumaNESE = lumaNE + lumaSE;\n FxaaFloat lumaNWNE = lumaNW + lumaNE;\n FxaaFloat edgeHorz2 = (-2.0 * lumaE) + lumaNESE;\n FxaaFloat edgeVert2 = (-2.0 * lumaN) + lumaNWNE;\n/*--------------------------------------------------------------------------*/\n FxaaFloat lumaNWSW = lumaNW + lumaSW;\n FxaaFloat lumaSWSE = lumaSW + lumaSE;\n FxaaFloat edgeHorz4 = (abs(edgeHorz1) * 2.0) + abs(edgeHorz2);\n FxaaFloat edgeVert4 = (abs(edgeVert1) * 2.0) + abs(edgeVert2);\n FxaaFloat edgeHorz3 = (-2.0 * lumaW) + lumaNWSW;\n FxaaFloat edgeVert3 = (-2.0 * lumaS) + lumaSWSE;\n FxaaFloat edgeHorz = abs(edgeHorz3) + edgeHorz4;\n FxaaFloat edgeVert = abs(edgeVert3) + edgeVert4;\n/*--------------------------------------------------------------------------*/\n FxaaFloat subpixNWSWNESE = lumaNWSW + lumaNESE;\n FxaaFloat lengthSign = fxaaQualityRcpFrame.x;\n FxaaBool horzSpan = edgeHorz >= edgeVert;\n FxaaFloat subpixA = subpixNSWE * 2.0 + subpixNWSWNESE;\n/*--------------------------------------------------------------------------*/\n if(!horzSpan) lumaN = lumaW;\n if(!horzSpan) lumaS = lumaE;\n if(horzSpan) lengthSign = fxaaQualityRcpFrame.y;\n FxaaFloat subpixB = (subpixA * (1.0/12.0)) - lumaM;\n/*--------------------------------------------------------------------------*/\n FxaaFloat gradientN = lumaN - lumaM;\n FxaaFloat gradientS = lumaS - lumaM;\n FxaaFloat lumaNN = lumaN + lumaM;\n FxaaFloat lumaSS = lumaS + lumaM;\n FxaaBool pairN = abs(gradientN) >= abs(gradientS);\n FxaaFloat gradient = max(abs(gradientN), abs(gradientS));\n if(pairN) lengthSign = -lengthSign;\n FxaaFloat subpixC = FxaaSat(abs(subpixB) * subpixRcpRange);\n/*--------------------------------------------------------------------------*/\n FxaaFloat2 posB;\n posB.x = posM.x;\n posB.y = posM.y;\n FxaaFloat2 offNP;\n offNP.x = (!horzSpan) ? 0.0 : fxaaQualityRcpFrame.x;\n offNP.y = ( horzSpan) ? 0.0 : fxaaQualityRcpFrame.y;\n if(!horzSpan) posB.x += lengthSign * 0.5;\n if( horzSpan) posB.y += lengthSign * 0.5;\n/*--------------------------------------------------------------------------*/\n FxaaFloat2 posN;\n posN.x = posB.x - offNP.x * FXAA_QUALITY_P0;\n posN.y = posB.y - offNP.y * FXAA_QUALITY_P0;\n FxaaFloat2 posP;\n posP.x = posB.x + offNP.x * FXAA_QUALITY_P0;\n posP.y = posB.y + offNP.y * FXAA_QUALITY_P0;\n FxaaFloat subpixD = ((-2.0)*subpixC) + 3.0;\n FxaaFloat lumaEndN = FxaaLuma(FxaaTexTop(tex, posN));\n FxaaFloat subpixE = subpixC * subpixC;\n FxaaFloat lumaEndP = FxaaLuma(FxaaTexTop(tex, posP));\n/*--------------------------------------------------------------------------*/\n if(!pairN) lumaNN = lumaSS;\n FxaaFloat gradientScaled = gradient * 1.0/4.0;\n FxaaFloat lumaMM = lumaM - lumaNN * 0.5;\n FxaaFloat subpixF = subpixD * subpixE;\n FxaaBool lumaMLTZero = lumaMM < 0.0;\n/*--------------------------------------------------------------------------*/\n lumaEndN -= lumaNN * 0.5;\n lumaEndP -= lumaNN * 0.5;\n FxaaBool doneN = abs(lumaEndN) >= gradientScaled;\n FxaaBool doneP = abs(lumaEndP) >= gradientScaled;\n if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P1;\n if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P1;\n FxaaBool doneNP = (!doneN) || (!doneP);\n if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P1;\n if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P1;\n/*--------------------------------------------------------------------------*/\n if(doneNP) {\n if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\n if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\n if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\n if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\n doneN = abs(lumaEndN) >= gradientScaled;\n doneP = abs(lumaEndP) >= gradientScaled;\n if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P2;\n if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P2;\n doneNP = (!doneN) || (!doneP);\n if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P2;\n if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P2;\n/*--------------------------------------------------------------------------*/\n #if (FXAA_QUALITY_PS > 3)\n if(doneNP) {\n if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\n if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\n if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\n if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\n doneN = abs(lumaEndN) >= gradientScaled;\n doneP = abs(lumaEndP) >= gradientScaled;\n if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P3;\n if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P3;\n doneNP = (!doneN) || (!doneP);\n if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P3;\n if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P3;\n/*--------------------------------------------------------------------------*/\n #if (FXAA_QUALITY_PS > 4)\n if(doneNP) {\n if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\n if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\n if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\n if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\n doneN = abs(lumaEndN) >= gradientScaled;\n doneP = abs(lumaEndP) >= gradientScaled;\n if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P4;\n if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P4;\n doneNP = (!doneN) || (!doneP);\n if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P4;\n if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P4;\n/*--------------------------------------------------------------------------*/\n #if (FXAA_QUALITY_PS > 5)\n if(doneNP) {\n if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\n if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\n if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\n if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\n doneN = abs(lumaEndN) >= gradientScaled;\n doneP = abs(lumaEndP) >= gradientScaled;\n if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P5;\n if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P5;\n doneNP = (!doneN) || (!doneP);\n if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P5;\n if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P5;\n/*--------------------------------------------------------------------------*/\n #if (FXAA_QUALITY_PS > 6)\n if(doneNP) {\n if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\n if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\n if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\n if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\n doneN = abs(lumaEndN) >= gradientScaled;\n doneP = abs(lumaEndP) >= gradientScaled;\n if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P6;\n if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P6;\n doneNP = (!doneN) || (!doneP);\n if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P6;\n if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P6;\n/*--------------------------------------------------------------------------*/\n #if (FXAA_QUALITY_PS > 7)\n if(doneNP) {\n if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\n if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\n if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\n if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\n doneN = abs(lumaEndN) >= gradientScaled;\n doneP = abs(lumaEndP) >= gradientScaled;\n if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P7;\n if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P7;\n doneNP = (!doneN) || (!doneP);\n if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P7;\n if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P7;\n/*--------------------------------------------------------------------------*/\n #if (FXAA_QUALITY_PS > 8)\n if(doneNP) {\n if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\n if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\n if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\n if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\n doneN = abs(lumaEndN) >= gradientScaled;\n doneP = abs(lumaEndP) >= gradientScaled;\n if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P8;\n if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P8;\n doneNP = (!doneN) || (!doneP);\n if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P8;\n if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P8;\n/*--------------------------------------------------------------------------*/\n #if (FXAA_QUALITY_PS > 9)\n if(doneNP) {\n if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\n if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\n if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\n if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\n doneN = abs(lumaEndN) >= gradientScaled;\n doneP = abs(lumaEndP) >= gradientScaled;\n if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P9;\n if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P9;\n doneNP = (!doneN) || (!doneP);\n if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P9;\n if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P9;\n/*--------------------------------------------------------------------------*/\n #if (FXAA_QUALITY_PS > 10)\n if(doneNP) {\n if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\n if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\n if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\n if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\n doneN = abs(lumaEndN) >= gradientScaled;\n doneP = abs(lumaEndP) >= gradientScaled;\n if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P10;\n if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P10;\n doneNP = (!doneN) || (!doneP);\n if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P10;\n if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P10;\n/*--------------------------------------------------------------------------*/\n #if (FXAA_QUALITY_PS > 11)\n if(doneNP) {\n if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\n if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\n if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\n if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\n doneN = abs(lumaEndN) >= gradientScaled;\n doneP = abs(lumaEndP) >= gradientScaled;\n if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P11;\n if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P11;\n doneNP = (!doneN) || (!doneP);\n if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P11;\n if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P11;\n/*--------------------------------------------------------------------------*/\n #if (FXAA_QUALITY_PS > 12)\n if(doneNP) {\n if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\n if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\n if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\n if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\n doneN = abs(lumaEndN) >= gradientScaled;\n doneP = abs(lumaEndP) >= gradientScaled;\n if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P12;\n if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P12;\n doneNP = (!doneN) || (!doneP);\n if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P12;\n if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P12;\n/*--------------------------------------------------------------------------*/\n }\n #endif\n/*--------------------------------------------------------------------------*/\n }\n #endif\n/*--------------------------------------------------------------------------*/\n }\n #endif\n/*--------------------------------------------------------------------------*/\n }\n #endif\n/*--------------------------------------------------------------------------*/\n }\n #endif\n/*--------------------------------------------------------------------------*/\n }\n #endif\n/*--------------------------------------------------------------------------*/\n }\n #endif\n/*--------------------------------------------------------------------------*/\n }\n #endif\n/*--------------------------------------------------------------------------*/\n }\n #endif\n/*--------------------------------------------------------------------------*/\n }\n #endif\n/*--------------------------------------------------------------------------*/\n }\n/*--------------------------------------------------------------------------*/\n FxaaFloat dstN = posM.x - posN.x;\n FxaaFloat dstP = posP.x - posM.x;\n if(!horzSpan) dstN = posM.y - posN.y;\n if(!horzSpan) dstP = posP.y - posM.y;\n/*--------------------------------------------------------------------------*/\n FxaaBool goodSpanN = (lumaEndN < 0.0) != lumaMLTZero;\n FxaaFloat spanLength = (dstP + dstN);\n FxaaBool goodSpanP = (lumaEndP < 0.0) != lumaMLTZero;\n FxaaFloat spanLengthRcp = 1.0/spanLength;\n/*--------------------------------------------------------------------------*/\n FxaaBool directionN = dstN < dstP;\n FxaaFloat dst = min(dstN, dstP);\n FxaaBool goodSpan = directionN ? goodSpanN : goodSpanP;\n FxaaFloat subpixG = subpixF * subpixF;\n FxaaFloat pixelOffset = (dst * (-spanLengthRcp)) + 0.5;\n FxaaFloat subpixH = subpixG * fxaaQualitySubpix;\n/*--------------------------------------------------------------------------*/\n FxaaFloat pixelOffsetGood = goodSpan ? pixelOffset : 0.0;\n FxaaFloat pixelOffsetSubpix = max(pixelOffsetGood, subpixH);\n if(!horzSpan) posM.x += pixelOffsetSubpix * lengthSign;\n if( horzSpan) posM.y += pixelOffsetSubpix * lengthSign;\n #if (FXAA_DISCARD == 1)\n return FxaaTexTop(tex, posM);\n #else\n return FxaaFloat4(FxaaTexTop(tex, posM).xyz, lumaM);\n #endif\n}\n/*==========================================================================*/\n#endif\n\nvoid main() {\n gl_FragColor = FxaaPixelShader(\n vUv,\n vec4(0.0),\n tDiffuse,\n tDiffuse,\n tDiffuse,\n resolution,\n vec4(0.0),\n vec4(0.0),\n vec4(0.0),\n 0.75,\n 0.166,\n 0.0833,\n 0.0,\n 0.0,\n 0.0,\n vec4(0.0)\n );\n\n // TODO avoid querying texture twice for same texel\n gl_FragColor.a = texture2D(tDiffuse, vUv).a;\n}\n'},889:st=>{st.exports="varying vec2 vUv;\n\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}\n"},3420:st=>{"use strict";st.exports=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#","description":"Meta-schema for $data reference (JSON Schema extension proposal)","type":"object","required":["$data"],"properties":{"$data":{"type":"string","anyOf":[{"format":"relative-json-pointer"},{"format":"json-pointer"}]}},"additionalProperties":false}')},8198:st=>{"use strict";st.exports=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema#","$id":"http://json-schema.org/draft-07/schema#","title":"Core schema meta-schema","definitions":{"schemaArray":{"type":"array","minItems":1,"items":{"$ref":"#"}},"nonNegativeInteger":{"type":"integer","minimum":0},"nonNegativeIntegerDefault0":{"allOf":[{"$ref":"#/definitions/nonNegativeInteger"},{"default":0}]},"simpleTypes":{"enum":["array","boolean","integer","null","number","object","string"]},"stringArray":{"type":"array","items":{"type":"string"},"uniqueItems":true,"default":[]}},"type":["object","boolean"],"properties":{"$id":{"type":"string","format":"uri-reference"},"$schema":{"type":"string","format":"uri"},"$ref":{"type":"string","format":"uri-reference"},"$comment":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"default":true,"readOnly":{"type":"boolean","default":false},"examples":{"type":"array","items":true},"multipleOf":{"type":"number","exclusiveMinimum":0},"maximum":{"type":"number"},"exclusiveMaximum":{"type":"number"},"minimum":{"type":"number"},"exclusiveMinimum":{"type":"number"},"maxLength":{"$ref":"#/definitions/nonNegativeInteger"},"minLength":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"pattern":{"type":"string","format":"regex"},"additionalItems":{"$ref":"#"},"items":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/schemaArray"}],"default":true},"maxItems":{"$ref":"#/definitions/nonNegativeInteger"},"minItems":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"uniqueItems":{"type":"boolean","default":false},"contains":{"$ref":"#"},"maxProperties":{"$ref":"#/definitions/nonNegativeInteger"},"minProperties":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"required":{"$ref":"#/definitions/stringArray"},"additionalProperties":{"$ref":"#"},"definitions":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"properties":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"patternProperties":{"type":"object","additionalProperties":{"$ref":"#"},"propertyNames":{"format":"regex"},"default":{}},"dependencies":{"type":"object","additionalProperties":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/stringArray"}]}},"propertyNames":{"$ref":"#"},"const":true,"enum":{"type":"array","items":true,"minItems":1,"uniqueItems":true},"type":{"anyOf":[{"$ref":"#/definitions/simpleTypes"},{"type":"array","items":{"$ref":"#/definitions/simpleTypes"},"minItems":1,"uniqueItems":true}]},"format":{"type":"string"},"contentMediaType":{"type":"string"},"contentEncoding":{"type":"string"},"if":{"$ref":"#"},"then":{"$ref":"#"},"else":{"$ref":"#"},"allOf":{"$ref":"#/definitions/schemaArray"},"anyOf":{"$ref":"#/definitions/schemaArray"},"oneOf":{"$ref":"#/definitions/schemaArray"},"not":{"$ref":"#"}},"default":true}')}},st=>{st(st.s=4865)}]); \ No newline at end of file diff --git a/gh-pages/visualization/app/main.d70814d22d4fef20.js b/gh-pages/visualization/app/main.d70814d22d4fef20.js new file mode 100644 index 0000000000..c0cf6856cd --- /dev/null +++ b/gh-pages/visualization/app/main.d70814d22d4fef20.js @@ -0,0 +1 @@ +(self.webpackChunkvisualization=self.webpackChunkvisualization||[]).push([[792],{4970:(ht,Fe,p)=>{"use strict";function Q(n,t,e,i,r,o,s){try{var a=n[o](s),l=a.value}catch(c){return void e(c)}a.done?t(l):Promise.resolve(l).then(i,r)}function B(n){return function(){var t=this,e=arguments;return new Promise(function(i,r){var o=n.apply(t,e);function s(l){Q(o,i,r,s,a,"next",l)}function a(l){Q(o,i,r,s,a,"throw",l)}s(void 0)})}}function m(n,t){return Object.is(n,t)}let z=null,D=!1,F=1;const q=Symbol("SIGNAL");function T(n){const t=z;return z=n,t}const L={version:0,lastCleanEpoch:0,dirty:!1,producerNode:void 0,producerLastReadVersion:void 0,producerIndexOfThis:void 0,nextProducerIndex:0,liveConsumerNode:void 0,liveConsumerIndexOfThis:void 0,consumerAllowSignalWrites:!1,consumerIsAlwaysLive:!1,producerMustRecompute:()=>!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{},consumerOnSignalRead:()=>{}};function X(n){if(D)throw new Error("");if(null===z)return;z.consumerOnSignalRead(n);const t=z.nextProducerIndex++;je(z),tn.nextProducerIndex;)n.producerNode.pop(),n.producerLastReadVersion.pop(),n.producerIndexOfThis.pop()}}function Le(n){je(n);for(let t=0;t0}function je(n){n.producerNode??=[],n.producerIndexOfThis??=[],n.producerLastReadVersion??=[]}function ke(n){n.liveConsumerNode??=[],n.liveConsumerIndexOfThis??=[]}const Ue=Symbol("UNSET"),it=Symbol("COMPUTING"),Ne=Symbol("ERRORED"),pt={...L,value:Ue,dirty:!0,error:null,equal:m,producerMustRecompute:n=>n.value===Ue||n.value===it,producerRecomputeValue(n){if(n.value===it)throw new Error("Detected cycle in computations.");const t=n.value;n.value=it;const e=Je(n);let i;try{i=n.computation()}catch(r){i=Ne,n.error=r}finally{tt(n,e)}t!==Ue&&t!==Ne&&i!==Ne&&n.equal(t,i)?n.value=t:(n.value=i,n.version++)}};let Qt=function Et(){throw new Error};function Wt(){Qt()}let Nn=null;function Ri(n,t){qe()||Wt(),n.equal(n.value,t)||(n.value=t,function Lt(n){n.version++,function te(){F++}(),Te(n),Nn?.()}(n))}const et={...L,equal:m,value:void 0};const In=()=>{},Yt={...L,consumerIsAlwaysLive:!0,consumerAllowSignalWrites:!1,consumerMarkedDirty:n=>{null!==n.schedule&&n.schedule(n.ref)},hasRun:!1,cleanupFn:In};function tn(n){return"function"==typeof n}function Di(n){const e=n(i=>{Error.call(i),i.stack=(new Error).stack});return e.prototype=Object.create(Error.prototype),e.prototype.constructor=e,e}const Ji=Di(n=>function(e){n(this),this.message=e?`${e.length} errors occurred during unsubscription:\n${e.map((i,r)=>`${r+1}) ${i.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=e});function vr(n,t){if(n){const e=n.indexOf(t);0<=e&&n.splice(e,1)}}class Kn{constructor(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let t;if(!this.closed){this.closed=!0;const{_parentage:e}=this;if(e)if(this._parentage=null,Array.isArray(e))for(const o of e)o.remove(this);else e.remove(this);const{initialTeardown:i}=this;if(tn(i))try{i()}catch(o){t=o instanceof Ji?o.errors:[o]}const{_finalizers:r}=this;if(r){this._finalizers=null;for(const o of r)try{xo(o)}catch(s){t=t??[],s instanceof Ji?t=[...t,...s.errors]:t.push(s)}}if(t)throw new Ji(t)}}add(t){var e;if(t&&t!==this)if(this.closed)xo(t);else{if(t instanceof Kn){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=null!==(e=this._finalizers)&&void 0!==e?e:[]).push(t)}}_hasParent(t){const{_parentage:e}=this;return e===t||Array.isArray(e)&&e.includes(t)}_addParent(t){const{_parentage:e}=this;this._parentage=Array.isArray(e)?(e.push(t),e):e?[e,t]:t}_removeParent(t){const{_parentage:e}=this;e===t?this._parentage=null:Array.isArray(e)&&vr(e,t)}remove(t){const{_finalizers:e}=this;e&&vr(e,t),t instanceof Kn&&t._removeParent(this)}}Kn.EMPTY=(()=>{const n=new Kn;return n.closed=!0,n})();const ii=Kn.EMPTY;function No(n){return n instanceof Kn||n&&"closed"in n&&tn(n.remove)&&tn(n.add)&&tn(n.unsubscribe)}function xo(n){tn(n)?n():n.unsubscribe()}const Ki={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},Er={setTimeout(n,t,...e){const{delegate:i}=Er;return i?.setTimeout?i.setTimeout(n,t,...e):setTimeout(n,t,...e)},clearTimeout(n){const{delegate:t}=Er;return(t?.clearTimeout||clearTimeout)(n)},delegate:void 0};function Ao(n){Er.setTimeout(()=>{const{onUnhandledError:t}=Ki;if(!t)throw n;t(n)})}function ja(){}const lf=pl("C",void 0,void 0);function pl(n,t,e){return{kind:n,value:t,error:e}}let Ks=null;function jo(n){if(Ki.useDeprecatedSynchronousErrorHandling){const t=!Ks;if(t&&(Ks={errorThrown:!1,error:null}),n(),t){const{errorThrown:e,error:i}=Ks;if(Ks=null,e)throw i}}else n()}class cc extends Kn{constructor(t){super(),this.isStopped=!1,t?(this.destination=t,No(t)&&t.add(this)):this.destination=Wm}static create(t,e,i){return new Ms(t,e,i)}next(t){this.isStopped?ku(function Xs(n){return pl("N",n,void 0)}(t),this):this._next(t)}error(t){this.isStopped?ku(function Du(n){return pl("E",void 0,n)}(t),this):(this.isStopped=!0,this._error(t))}complete(){this.isStopped?ku(lf,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(t){this.destination.next(t)}_error(t){try{this.destination.error(t)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}}const Td=Function.prototype.bind;function Gm(n,t){return Td.call(n,t)}class dc{constructor(t){this.partialObserver=t}next(t){const{partialObserver:e}=this;if(e.next)try{e.next(t)}catch(i){Nc(i)}}error(t){const{partialObserver:e}=this;if(e.error)try{e.error(t)}catch(i){Nc(i)}else Nc(t)}complete(){const{partialObserver:t}=this;if(t.complete)try{t.complete()}catch(e){Nc(e)}}}class Ms extends cc{constructor(t,e,i){let r;if(super(),tn(t)||!t)r={next:t??void 0,error:e??void 0,complete:i??void 0};else{let o;this&&Ki.useDeprecatedNextContext?(o=Object.create(t),o.unsubscribe=()=>this.unsubscribe(),r={next:t.next&&Gm(t.next,o),error:t.error&&Gm(t.error,o),complete:t.complete&&Gm(t.complete,o)}):r=t}this.destination=new dc(r)}}function Nc(n){Ki.useDeprecatedSynchronousErrorHandling?function Al(n){Ki.useDeprecatedSynchronousErrorHandling&&Ks&&(Ks.errorThrown=!0,Ks.error=n)}(n):Ao(n)}function ku(n,t){const{onStoppedNotification:e}=Ki;e&&Er.setTimeout(()=>e(n,t))}const Wm={closed:!0,next:ja,error:function cf(n){throw n},complete:ja},Bu="function"==typeof Symbol&&Symbol.observable||"@@observable";function sa(n){return n}let Yi=(()=>{class n{constructor(e){e&&(this._subscribe=e)}lift(e){const i=new n;return i.source=this,i.operator=e,i}subscribe(e,i,r){const o=function og(n){return n&&n instanceof cc||function uf(n){return n&&tn(n.next)&&tn(n.error)&&tn(n.complete)}(n)&&No(n)}(e)?e:new Ms(e,i,r);return jo(()=>{const{operator:s,source:a}=this;o.add(s?s.call(o,a):a?this._subscribe(o):this._trySubscribe(o))}),o}_trySubscribe(e){try{return this._subscribe(e)}catch(i){e.error(i)}}forEach(e,i){return new(i=df(i))((r,o)=>{const s=new Ms({next:a=>{try{e(a)}catch(l){o(l),s.unsubscribe()}},error:o,complete:r});this.subscribe(s)})}_subscribe(e){var i;return null===(i=this.source)||void 0===i?void 0:i.subscribe(e)}[Bu](){return this}pipe(...e){return function Pu(n){return 0===n.length?sa:1===n.length?n[0]:function(e){return n.reduce((i,r)=>r(i),e)}}(e)(this)}toPromise(e){return new(e=df(e))((i,r)=>{let o;this.subscribe(s=>o=s,s=>r(s),()=>i(o))})}}return n.create=t=>new n(t),n})();function df(n){var t;return null!==(t=n??Ki.Promise)&&void 0!==t?t:Promise}const kb=Di(n=>function(){n(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});let Hn=(()=>{class n extends Yi{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(e){const i=new Li(this,this);return i.operator=e,i}_throwIfClosed(){if(this.closed)throw new kb}next(e){jo(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(const i of this.currentObservers)i.next(e)}})}error(e){jo(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=e;const{observers:i}=this;for(;i.length;)i.shift().error(e)}})}complete(){jo(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;const{observers:e}=this;for(;e.length;)e.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var e;return(null===(e=this.observers)||void 0===e?void 0:e.length)>0}_trySubscribe(e){return this._throwIfClosed(),super._trySubscribe(e)}_subscribe(e){return this._throwIfClosed(),this._checkFinalizedStatuses(e),this._innerSubscribe(e)}_innerSubscribe(e){const{hasError:i,isStopped:r,observers:o}=this;return i||r?ii:(this.currentObservers=null,o.push(e),new Kn(()=>{this.currentObservers=null,vr(o,e)}))}_checkFinalizedStatuses(e){const{hasError:i,thrownError:r,isStopped:o}=this;i?e.error(r):o&&e.complete()}asObservable(){const e=new Yi;return e.source=this,e}}return n.create=(t,e)=>new Li(t,e),n})();class Li extends Hn{constructor(t,e){super(),this.destination=t,this.source=e}next(t){var e,i;null===(i=null===(e=this.destination)||void 0===e?void 0:e.next)||void 0===i||i.call(e,t)}error(t){var e,i;null===(i=null===(e=this.destination)||void 0===e?void 0:e.error)||void 0===i||i.call(e,t)}complete(){var t,e;null===(e=null===(t=this.destination)||void 0===t?void 0:t.complete)||void 0===e||e.call(t)}_subscribe(t){var e,i;return null!==(i=null===(e=this.source)||void 0===e?void 0:e.subscribe(t))&&void 0!==i?i:ii}}class wa extends Hn{constructor(t){super(),this._value=t}get value(){return this.getValue()}_subscribe(t){const e=super._subscribe(t);return!e.closed&&t.next(this._value),e}getValue(){const{hasError:t,thrownError:e,_value:i}=this;if(t)throw e;return this._throwIfClosed(),i}next(t){super.next(this._value=t)}}function le(n){return t=>{if(function Oe(n){return tn(n?.lift)}(t))return t.lift(function(e){try{return n(e,this)}catch(i){this.error(i)}});throw new TypeError("Unable to lift unknown Observable type")}}function Be(n,t,e,i,r){return new wt(n,t,e,i,r)}class wt extends cc{constructor(t,e,i,r,o,s){super(t),this.onFinalize=o,this.shouldUnsubscribe=s,this._next=e?function(a){try{e(a)}catch(l){t.error(l)}}:super._next,this._error=r?function(a){try{r(a)}catch(l){t.error(l)}finally{this.unsubscribe()}}:super._error,this._complete=i?function(){try{i()}catch(a){t.error(a)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var t;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){const{closed:e}=this;super.unsubscribe(),!e&&(null===(t=this.onFinalize)||void 0===t||t.call(this))}}}function Ge(n,t){return le((e,i)=>{let r=0;e.subscribe(Be(i,o=>{i.next(n.call(t,o,r++))}))})}const Ai="https://g.co/ng/security#xss";class dt extends Error{constructor(t,e){super(function qi(n,t){return`NG0${Math.abs(n)}${t?": "+t:""}`}(t,e)),this.code=t}}function Si(n){return{toString:n}.toString()}const er="__parameters__";function tr(n,t,e){return Si(()=>{const i=function Xo(n){return function(...e){if(n){const i=n(...e);for(const r in i)this[r]=i[r]}}}(t);function r(...o){if(this instanceof r)return i.apply(this,o),this;const s=new r(...o);return a.annotation=s,a;function a(l,c,d){const u=l.hasOwnProperty(er)?l[er]:Object.defineProperty(l,er,{value:[]})[er];for(;u.length<=d;)u.push(null);return(u[d]=u[d]||[]).push(s),l}}return e&&(r.prototype=Object.create(e.prototype)),r.prototype.ngMetadataName=n,r.annotationCls=r,r})}const wi=globalThis;function xi(n){for(let t in n)if(n[t]===xi)return t;throw Error("Could not find renamed property on target object.")}function Ru(n,t){for(const e in t)t.hasOwnProperty(e)&&!n.hasOwnProperty(e)&&(n[e]=t[e])}function oo(n){if("string"==typeof n)return n;if(Array.isArray(n))return"["+n.map(oo).join(", ")+"]";if(null==n)return""+n;if(n.overriddenName)return`${n.overriddenName}`;if(n.name)return`${n.name}`;const t=n.toString();if(null==t)return""+t;const e=t.indexOf("\n");return-1===e?t:t.substring(0,e)}function Id(n,t){return null==n||""===n?null===t?"":t:null==t||""===t?n:n+" "+t}const bl=xi({__forward_ref__:xi});function Jn(n){return n.__forward_ref__=Jn,n.toString=function(){return oo(this())},n}function $n(n){return Fo(n)?n():n}function Fo(n){return"function"==typeof n&&n.hasOwnProperty(bl)&&n.__forward_ref__===Jn}function Bt(n){return{token:n.token,providedIn:n.providedIn||null,factory:n.factory,value:void 0}}function kt(n){return{providers:n.providers||[],imports:n.imports||[]}}function jm(n){return Ob(n,Af)||Ob(n,kx)}function Ob(n,t){return n.hasOwnProperty(t)?n[t]:null}function pf(n){return n&&(n.hasOwnProperty(Xm)||n.hasOwnProperty(eF))?n[Xm]:null}const Af=xi({\u0275prov:xi}),Xm=xi({\u0275inj:xi}),kx=xi({ngInjectableDef:xi}),eF=xi({ngInjectorDef:xi});class ut{constructor(t,e){this._desc=t,this.ngMetadataName="InjectionToken",this.\u0275prov=void 0,"number"==typeof e?this.__NG_ELEMENT_ID__=e:void 0!==e&&(this.\u0275prov=Bt({token:this,providedIn:e.providedIn||"root",factory:e.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}}function Hb(n){return n&&!!n.\u0275providers}const Ym=xi({\u0275cmp:xi}),gf=xi({\u0275dir:xi}),_f=xi({\u0275pipe:xi}),Vb=xi({\u0275mod:xi}),Hc=xi({\u0275fac:xi}),Xa=xi({__NG_ELEMENT_ID__:xi}),Zm=xi({__NG_ENV_ID__:xi});function ci(n){return"string"==typeof n?n:null==n?"":String(n)}function Qb(n,t){throw new dt(-201,!1)}var nr=function(n){return n[n.Default=0]="Default",n[n.Host=1]="Host",n[n.Self=2]="Self",n[n.SkipSelf=4]="SkipSelf",n[n.Optional=8]="Optional",n}(nr||{});let zb;function Bx(){return zb}function la(n){const t=zb;return zb=n,t}function Px(n,t,e){const i=jm(n);return i&&"root"==i.providedIn?void 0===i.value?i.value=i.factory():i.value:e&nr.Optional?null:void 0!==t?t:void Qb()}const Jm={},Gb="__NG_DI_FLAG__",cg="ngTempTokenPath",sF=/\n/gm,Rx="__source";let Fd;function Vc(n){const t=Fd;return Fd=n,t}function ep(n,t=nr.Default){if(void 0===Fd)throw new dt(-203,!1);return null===Fd?Px(n,void 0,t):Fd.get(n,t&nr.Optional?null:void 0,t)}function ge(n,t=nr.Default){return(Bx()||ep)($n(n),t)}function qt(n,t=nr.Default){return ge(n,bf(t))}function bf(n){return typeof n>"u"||"number"==typeof n?n:(n.optional&&8)|(n.host&&1)|(n.self&&2)|(n.skipSelf&&4)}function dg(n){const t=[];for(let e=0;e({token:n})),-1),Uu=hc(tr("Optional"),8),vf=hc(tr("SkipSelf"),4);function wl(n,t){return n.hasOwnProperty(Hc)?n[Hc]:null}function Hu(n,t){n.forEach(e=>Array.isArray(e)?Hu(e,t):t(e))}function Wb(n,t,e){t>=n.length?n.push(e):n.splice(t,0,e)}function tp(n,t){return t>=n.length-1?n.pop():n.splice(t,1)[0]}function Uo(n,t,e){let i=Ma(n,t);return i>=0?n[1|i]=e:(i=~i,function Ca(n,t,e,i){let r=n.length;if(r==t)n.push(e,i);else if(1===r)n.push(i,n[0]),n[0]=e;else{for(r--,n.push(n[r-1],n[r]);r>t;)n[r]=n[r-2],r--;n[t]=e,n[t+1]=i}}(n,i,t,e)),i}function Ho(n,t){const e=Ma(n,t);if(e>=0)return n[1|e]}function Ma(n,t){return function $b(n,t,e){let i=0,r=n.length>>e;for(;r!==i;){const o=i+(r-i>>1),s=n[o<t?r=o:i=o+1}return~(r<t){s=o-1;break}}}for(;o-1){let o;for(;++ro?"":r[d+1].toLowerCase(),2&i&&c!==u){if(Za(i))return!1;s=!0}}}}else{if(!s&&!Za(i)&&!Za(l))return!1;if(s&&Za(l))continue;s=!1,i=l|1&i}}return Za(i)||s}function Za(n){return!(1&n)}function Hx(n,t,e,i){if(null===t)return-1;let r=0;if(i||!e){let o=!1;for(;r-1)for(e++;e0?'="'+a+'"':"")+"]"}else 8&i?r+="."+s:4&i&&(r+=" "+s);else""!==r&&!Za(s)&&(t+=zx(o,r),r=""),i=s,o=o||!Za(i);e++}return""!==r&&(t+=zx(o,r)),t}function vt(n){return Si(()=>{const t=Gx(n),e={...t,decls:n.decls,vars:n.vars,template:n.template,consts:n.consts||null,ngContentSelectors:n.ngContentSelectors,onPush:n.changeDetection===fg.OnPush,directiveDefs:null,pipeDefs:null,dependencies:t.standalone&&n.dependencies||null,getStandaloneInjector:null,signals:n.signals??!1,data:n.data||{},encapsulation:n.encapsulation||ca.Emulated,styles:n.styles||cr,_:null,schemas:n.schemas||null,tView:null,id:""};Wx(e);const i=n.dependencies;return e.directiveDefs=qu(i,!1),e.pipeDefs=qu(i,!0),e.id=function bF(n){let t=0;const e=[n.selectors,n.ngContentSelectors,n.hostVars,n.hostAttrs,n.consts,n.vars,n.decls,n.encapsulation,n.standalone,n.signals,n.exportAs,JSON.stringify(n.inputs),JSON.stringify(n.outputs),Object.getOwnPropertyNames(n.type.prototype),!!n.contentQueries,!!n.viewQuery].join("|");for(const r of e)t=Math.imul(31,t)+r.charCodeAt(0)|0;return t+=2147483648,"c"+t}(e),e})}function AF(n){return Oi(n)||Ko(n)}function gF(n){return null!==n}function Rt(n){return Si(()=>({type:n.type,bootstrap:n.bootstrap||cr,declarations:n.declarations||cr,imports:n.imports||cr,exports:n.exports||cr,transitiveCompileScopes:null,schemas:n.schemas||null,id:n.id||null}))}function qx(n,t){if(null==n)return Ka;const e={};for(const i in n)if(n.hasOwnProperty(i)){const r=n[i];let o,s,a=Ct.None;Array.isArray(r)?(a=r[0],o=r[1],s=r[2]??o):(o=r,s=r),t?(e[o]=a!==Ct.None?[i,a]:i,t[o]=s):e[o]=i}return e}function $t(n){return Si(()=>{const t=Gx(n);return Wx(t),t})}function dr(n){return{type:n.type,name:n.name,factory:null,pure:!1!==n.pure,standalone:!0===n.standalone,onDestroy:n.type.prototype.ngOnDestroy||null}}function Oi(n){return n[Ym]||null}function Ko(n){return n[gf]||null}function Vo(n){return n[_f]||null}function Gx(n){const t={};return{type:n.type,providersResolver:null,factory:null,hostBindings:n.hostBindings||null,hostVars:n.hostVars||0,hostAttrs:n.hostAttrs||null,contentQueries:n.contentQueries||null,declaredInputs:t,inputTransforms:null,inputConfig:n.inputs||Ka,exportAs:n.exportAs||null,standalone:!0===n.standalone,signals:!0===n.signals,selectors:n.selectors||cr,viewQuery:n.viewQuery||null,features:n.features||null,setInput:null,findHostDirectiveDefs:null,hostDirectives:null,inputs:qx(n.inputs,t),outputs:qx(n.outputs),debugInfo:null}}function Wx(n){n.features?.forEach(t=>t(n))}function qu(n,t){if(!n)return null;const e=t?Vo:AF;return()=>("function"==typeof n?n():n).map(i=>e(i)).filter(gF)}function vF(...n){return{\u0275providers:wf(0,n),\u0275fromNgModule:!0}}function wf(n,...t){const e=[],i=new Set;let r;const o=s=>{e.push(s)};return Hu(t,s=>{const a=s;Ag(a,o,[],i)&&(r||=[],r.push(a))}),void 0!==r&&$x(r,o),e}function $x(n,t){for(let e=0;e{t(o,i)})}}function Ag(n,t,e,i){if(!(n=$n(n)))return!1;let r=null,o=pf(n);const s=!o&&Oi(n);if(o||s){if(s&&!s.standalone)return!1;r=n}else{const l=n.ngModule;if(o=pf(l),!o)return!1;r=l}const a=i.has(r);if(s){if(a)return!1;if(i.add(r),s.dependencies){const l="function"==typeof s.dependencies?s.dependencies():s.dependencies;for(const c of l)Ag(c,t,e,i)}}else{if(!o)return!1;{if(null!=o.imports&&!a){let c;i.add(r);try{Hu(o.imports,d=>{Ag(d,t,e,i)&&(c||=[],c.push(d))})}finally{}void 0!==c&&$x(c,t)}if(!a){const c=wl(r)||(()=>new r);t({provide:r,useFactory:c,deps:cr},r),t({provide:xl,useValue:r,multi:!0},r),t({provide:Bd,useValue:()=>ge(r),multi:!0},r)}const l=o.providers;if(null!=l&&!a){const c=n;Zb(l,d=>{t(d,c)})}}}return r!==n&&void 0!==n.providers}function Zb(n,t){for(let e of n)Hb(e)&&(e=e.\u0275providers),Array.isArray(e)?Zb(e,t):t(e)}const gg=xi({provide:String,useValue:xi});function Jb(n){return null!==n&&"object"==typeof n&&gg in n}function Gu(n){return"function"==typeof n}const ev=new ut(""),_g={},wF={};let tv;function bg(){return void 0===tv&&(tv=new hg),tv}class Ea{}class xf extends Ea{get destroyed(){return this._destroyed}constructor(t,e,i,r){super(),this.parent=e,this.source=i,this.scopes=r,this.records=new Map,this._ngOnDestroyHooks=new Set,this._onDestroyHooks=[],this._destroyed=!1,iv(t,s=>this.processProvider(s)),this.records.set(yf,Pd(void 0,this)),r.has("environment")&&this.records.set(Ea,Pd(void 0,this));const o=this.records.get(ev);null!=o&&"string"==typeof o.value&&this.scopes.add(o.value),this.injectorDefTypes=new Set(this.get(xl,cr,nr.Self))}destroy(){this.assertNotDestroyed(),this._destroyed=!0;const t=T(null);try{for(const i of this._ngOnDestroyHooks)i.ngOnDestroy();const e=this._onDestroyHooks;this._onDestroyHooks=[];for(const i of e)i()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),T(t)}}onDestroy(t){return this.assertNotDestroyed(),this._onDestroyHooks.push(t),()=>this.removeOnDestroy(t)}runInContext(t){this.assertNotDestroyed();const e=Vc(this),i=la(void 0);try{return t()}finally{Vc(e),la(i)}}get(t,e=Jm,i=nr.Default){if(this.assertNotDestroyed(),t.hasOwnProperty(Zm))return t[Zm](this);i=bf(i);const o=Vc(this),s=la(void 0);try{if(!(i&nr.SkipSelf)){let l=this.records.get(t);if(void 0===l){const c=function MF(n){return"function"==typeof n||"object"==typeof n&&n instanceof ut}(t)&&jm(t);l=c&&this.injectableDefInScope(c)?Pd(nv(t),_g):null,this.records.set(t,l)}if(null!=l)return this.hydrate(t,l)}return(i&nr.Self?bg():this.parent).get(t,e=i&nr.Optional&&e===Jm?null:e)}catch(a){if("NullInjectorError"===a.name){if((a[cg]=a[cg]||[]).unshift(oo(t)),o)throw a;return function lF(n,t,e,i){const r=n[cg];throw t[Rx]&&r.unshift(t[Rx]),n.message=function Dd(n,t,e,i=null){n=n&&"\n"===n.charAt(0)&&"\u0275"==n.charAt(1)?n.slice(2):n;let r=oo(t);if(Array.isArray(t))r=t.map(oo).join(" -> ");else if("object"==typeof t){let o=[];for(let s in t)if(t.hasOwnProperty(s)){let a=t[s];o.push(s+":"+("string"==typeof a?JSON.stringify(a):oo(a)))}r=`{${o.join(", ")}}`}return`${e}${i?"("+i+")":""}[${r}]: ${n.replace(sF,"\n ")}`}("\n"+n.message,r,e,i),n.ngTokenPath=r,n[cg]=null,n}(a,t,"R3InjectorError",this.source)}throw a}finally{la(s),Vc(o)}}resolveInjectorInitializers(){const t=T(null),e=Vc(this),i=la(void 0);try{const o=this.get(Bd,cr,nr.Self);for(const s of o)s()}finally{Vc(e),la(i),T(t)}}toString(){const t=[],e=this.records;for(const i of e.keys())t.push(oo(i));return`R3Injector[${t.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new dt(205,!1)}processProvider(t){let e=Gu(t=$n(t))?t:$n(t&&t.provide);const i=function xF(n){return Jb(n)?Pd(void 0,n.useValue):Pd(Yx(n),_g)}(t);if(!Gu(t)&&!0===t.multi){let r=this.records.get(e);r||(r=Pd(void 0,_g,!0),r.factory=()=>dg(r.multi),this.records.set(e,r)),e=t,r.multi.push(t)}this.records.set(e,i)}hydrate(t,e){const i=T(null);try{return e.value===_g&&(e.value=wF,e.value=e.factory()),"object"==typeof e.value&&e.value&&function CF(n){return null!==n&&"object"==typeof n&&"function"==typeof n.ngOnDestroy}(e.value)&&this._ngOnDestroyHooks.add(e.value),e.value}finally{T(i)}}injectableDefInScope(t){if(!t.providedIn)return!1;const e=$n(t.providedIn);return"string"==typeof e?"any"===e||this.scopes.has(e):this.injectorDefTypes.has(e)}removeOnDestroy(t){const e=this._onDestroyHooks.indexOf(t);-1!==e&&this._onDestroyHooks.splice(e,1)}}function nv(n){const t=jm(n),e=null!==t?t.factory:wl(n);if(null!==e)return e;if(n instanceof ut)throw new dt(204,!1);if(n instanceof Function)return function Kx(n){if(n.length>0)throw new dt(204,!1);const e=function yl(n){return n&&(n[Af]||n[kx])||null}(n);return null!==e?()=>e.factory(n):()=>new n}(n);throw new dt(204,!1)}function Yx(n,t,e){let i;if(Gu(n)){const r=$n(n);return wl(r)||nv(r)}if(Jb(n))i=()=>$n(n.useValue);else if(function Xx(n){return!(!n||!n.useFactory)}(n))i=()=>n.useFactory(...dg(n.deps||[]));else if(function jx(n){return!(!n||!n.useExisting)}(n))i=()=>ge($n(n.useExisting));else{const r=$n(n&&(n.useClass||n.provide));if(!function vg(n){return!!n.deps}(n))return wl(r)||nv(r);i=()=>new r(...dg(n.deps))}return i}function Pd(n,t,e=!1){return{factory:n,value:t,multi:e?[]:void 0}}function iv(n,t){for(const e of n)Array.isArray(e)?iv(e,t):e&&Hb(e)?iv(e.\u0275providers,t):t(e)}function Zx(){return void 0!==Bx()||null!=function Lx(){return Fd}()}function op(n){if(!Zx())throw new dt(-203,!1)}const so=0,rn=1,qn=2,ko=3,Cl=4,Ts=5,Sa=6,Cf=7,Gr=8,Is=9,Ml=10,ri=11,ap=12,eC=13,ao=14,go=15,lp=16,Mf=17,zc=18,cp=19,ov=20,Rd=21,xg=22,Wu=23,gi=25,sv=1,El=7,Ef=9,Bo=10;var up=function(n){return n[n.None=0]="None",n[n.HasTransplantedViews=2]="HasTransplantedViews",n}(up||{});function Kr(n){return Array.isArray(n)&&"object"==typeof n[sv]}function Vs(n){return Array.isArray(n)&&!0===n[sv]}function Cg(n){return!!(4&n.flags)}function Sl(n){return n.componentOffset>-1}function $u(n){return!(1&~n.flags)}function Tl(n){return!!n.template}function av(n){return!!(512&n[qn])}class cv{constructor(t,e,i){this.previousValue=t,this.currentValue=e,this.firstChange=i}isFirstChange(){return this.firstChange}}function Sg(n,t,e,i){null!==t?t.applyValueToInputSignal(t,i):n[e]=i}function wr(){return dv}function dv(n){return n.type.prototype.ngOnChanges&&(n.setInput=rC),UF}function UF(){const n=Ig(this),t=n?.current;if(t){const e=n.previous;if(e===Ka)n.previous=t;else for(let i in t)e[i]=t[i];n.current=null,this.ngOnChanges(t)}}function rC(n,t,e,i,r){const o=this.declaredInputs[i],s=Ig(n)||function oC(n,t){return n[Tg]=t}(n,{previous:Ka,current:null}),a=s.current||(s.current={}),l=s.previous,c=l[o];a[o]=new cv(c&&c.currentValue,e,l===Ka),Sg(n,t,r,e)}wr.ngInherit=!0;const Tg="__ngSimpleChanges__";function Ig(n){return n[Tg]||null}const Il=function(n,t,e){},Dg="svg";let lC=!1;function xr(n){for(;Array.isArray(n);)n=n[so];return n}function fp(n,t){return xr(t[n])}function Zs(n,t){return xr(t[n.index])}function mp(n,t){return n.data[t]}function Sf(n,t){return n[t]}function Ta(n,t){const e=t[n];return Kr(e)?e:e[so]}function hv(n){return!(128&~n[qn])}function mc(n,t){return null==t?null:n[t]}function kg(n){n[Mf]=0}function dC(n){1024&n[qn]||(n[qn]|=1024,hv(n)&&pp(n))}function Xu(n){return!!(9216&n[qn]||n[Wu]?.dirty)}function fv(n){n[Ml].changeDetectionScheduler?.notify(1),Xu(n)?pp(n):64&n[qn]&&(function HF(){return lC}()?(n[qn]|=1024,pp(n)):n[Ml].changeDetectionScheduler?.notify())}function pp(n){n[Ml].changeDetectionScheduler?.notify();let t=Ku(n);for(;null!==t&&!(8192&t[qn])&&(t[qn]|=8192,hv(t));)t=Ku(t)}function Ap(n,t){if(!(256&~n[qn]))throw new dt(911,!1);null===n[Rd]&&(n[Rd]=[]),n[Rd].push(t)}function Ku(n){const t=n[ko];return Vs(t)?t[ko]:t}const oi={lFrame:vv(null),bindingsEnabled:!0,skipHydrationRootTNode:null};function hC(){return oi.bindingsEnabled}function Yu(){return null!==oi.skipHydrationRootTNode}function Pt(){return oi.lFrame.lView}function Gi(){return oi.lFrame.tView}function Vt(n){return oi.lFrame.contextLView=n,n[Gr]}function Ot(n){return oi.lFrame.contextLView=null,n}function gr(){let n=AC();for(;null!==n&&64===n.type;)n=n.parent;return n}function AC(){return oi.lFrame.currentTNode}function Ja(n,t){const e=oi.lFrame;e.currentTNode=n,e.isParent=t}function Bg(){return oi.lFrame.isParent}function Pg(){oi.lFrame.isParent=!1}function Qs(){const n=oi.lFrame;let t=n.bindingRootIndex;return-1===t&&(t=n.bindingRootIndex=n.tView.bindingStartIndex),t}function pc(){return oi.lFrame.bindingIndex}function Dl(){return oi.lFrame.bindingIndex++}function Ac(n){const t=oi.lFrame,e=t.bindingIndex;return t.bindingIndex=t.bindingIndex+n,e}function Lg(n,t){const e=oi.lFrame;e.bindingIndex=e.bindingRootIndex=n,pv(t)}function pv(n){oi.lFrame.currentDirectiveIndex=n}function gv(){return oi.lFrame.currentQueryIndex}function bp(n){oi.lFrame.currentQueryIndex=n}function _v(n){const t=n[rn];return 2===t.type?t.declTNode:1===t.type?n[Ts]:null}function bv(n,t,e){if(e&nr.SkipSelf){let r=t,o=n;for(;!(r=r.parent,null!==r||e&nr.Host||(r=_v(o),null===r||(o=o[ao],10&r.type))););if(null===r)return!1;t=r,n=o}const i=oi.lFrame=Ng();return i.currentTNode=t,i.lView=n,!0}function Og(n){const t=Ng(),e=n[rn];oi.lFrame=t,t.currentTNode=e.firstChild,t.lView=n,t.tView=e,t.contextLView=n,t.bindingIndex=e.bindingStartIndex,t.inI18n=!1}function Ng(){const n=oi.lFrame,t=null===n?null:n.child;return null===t?vv(n):t}function vv(n){const t={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:n,child:null,inI18n:!1};return null!==n&&(n.child=t),t}function yv(){const n=oi.lFrame;return oi.lFrame=n.parent,n.currentTNode=null,n.lView=null,n}const bC=yv;function Ff(){const n=yv();n.isParent=!0,n.tView=null,n.selectedIndex=-1,n.contextLView=null,n.elementDepthCount=0,n.currentDirectiveIndex=-1,n.currentNamespace=null,n.bindingRootIndex=-1,n.bindingIndex=-1,n.currentQueryIndex=0}function Fs(){return oi.lFrame.selectedIndex}function Ld(n){oi.lFrame.selectedIndex=n}function Wr(){const n=oi.lFrame;return mp(n.tView,n.selectedIndex)}function kl(){oi.lFrame.currentNamespace=Dg}function Hg(){!function jF(){oi.lFrame.currentNamespace=null}()}let wv=!0;function Yr(){return wv}function zs(n){wv=n}function Bl(n,t){for(let e=t.directiveStart,i=t.directiveEnd;e=i)break}else t[l]<0&&(n[Mf]+=65536),(a>14>16&&(3&n[qn])===t&&(n[qn]+=16384,Cv(a,o)):Cv(a,o)}const Nd=-1;class qc{constructor(t,e,i){this.factory=t,this.resolving=!1,this.canSeeViewProviders=e,this.injectImpl=i}}function Mv(n){return n!==Nd}function Ju(n){return 32767&n}function vp(n,t){let e=function YF(n){return n>>16}(n),i=t;for(;e>0;)i=i[ao],e--;return i}let Ev=!0;function zg(n){const t=Ev;return Ev=n,t}const qg=255,Gg=5;let xC=0;const gc={};function yp(n,t){const e=CC(n,t);if(-1!==e)return e;const i=t[rn];i.firstCreatePass&&(n.injectorIndex=t.length,Sv(i.data,n),Sv(t,null),Sv(i.blueprint,null));const r=Wg(n,t),o=n.injectorIndex;if(Mv(r)){const s=Ju(r),a=vp(r,t),l=a[rn].data;for(let c=0;c<8;c++)t[o+c]=a[s+c]|l[s+c]}return t[o+8]=r,o}function Sv(n,t){n.push(0,0,0,0,0,0,0,0,t)}function CC(n,t){return-1===n.injectorIndex||n.parent&&n.parent.injectorIndex===n.injectorIndex||null===t[n.injectorIndex+8]?-1:n.injectorIndex}function Wg(n,t){if(n.parent&&-1!==n.parent.injectorIndex)return n.parent.injectorIndex;let e=0,i=null,r=t;for(;null!==r;){if(i=TC(r),null===i)return Nd;if(e++,r=r[ao],-1!==i.injectorIndex)return i.injectorIndex|e<<16}return Nd}function Tv(n,t,e){!function ZF(n,t,e){let i;"string"==typeof e?i=e.charCodeAt(0)||0:e.hasOwnProperty(Xa)&&(i=e[Xa]),null==i&&(i=e[Xa]=xC++);const r=i&qg;t.data[n+(r>>Gg)]|=1<=0?t&qg:Xg:t}(e);if("function"==typeof o){if(!bv(t,n,i))return i&nr.Host?$g(r,0,i):MC(t,e,i,r);try{let s;if(s=o(i),null!=s||i&nr.Optional)return s;Qb()}finally{bC()}}else if("number"==typeof o){let s=null,a=CC(n,t),l=Nd,c=i&nr.Host?t[go][Ts]:null;for((-1===a||i&nr.SkipSelf)&&(l=-1===a?Wg(n,t):t[a+8],l!==Nd&&Cr(i,!1)?(s=t[rn],a=Ju(l),t=vp(l,t)):a=-1);-1!==a;){const d=t[rn];if(SC(o,a,d.data)){const u=wn(a,t,e,s,i,c);if(u!==gc)return u}l=t[a+8],l!==Nd&&Cr(i,t[rn].data[a+8]===c)&&SC(o,a,t)?(s=d,a=Ju(l),t=vp(l,t)):a=-1}}return r}function wn(n,t,e,i,r,o){const s=t[rn],a=s.data[n+8],d=Gc(a,s,e,null==i?Sl(a)&&Ev:i!=s&&!!(3&a.type),r&nr.Host&&o===a);return null!==d?_c(t,s,d,a):gc}function Gc(n,t,e,i,r){const o=n.providerIndexes,s=t.data,a=1048575&o,l=n.directiveStart,d=o>>20,h=r?a+d:n.directiveEnd;for(let f=i?a:a+d;f=l&&A.type===e)return f}if(r){const f=s[l];if(f&&Tl(f)&&f.type===e)return l}return null}function _c(n,t,e,i){let r=n[e];const o=t.data;if(function wC(n){return n instanceof qc}(r)){const s=r;s.resolving&&function iF(n,t){throw t&&t.join(" > "),new dt(-200,n)}(function br(n){return"function"==typeof n?n.name||n.toString():"object"==typeof n&&null!=n&&"function"==typeof n.type?n.type.name||n.type.toString():ci(n)}(o[e]));const a=zg(s.canSeeViewProviders);s.resolving=!0;const c=s.injectImpl?la(s.injectImpl):null;bv(n,i,nr.Default);try{r=n[e]=s.factory(void 0,o,n,i),t.firstCreatePass&&e>=i.directiveStart&&function Df(n,t,e){const{ngOnChanges:i,ngOnInit:r,ngDoCheck:o}=t.type.prototype;if(i){const s=dv(t);(e.preOrderHooks??=[]).push(n,s),(e.preOrderCheckHooks??=[]).push(n,s)}r&&(e.preOrderHooks??=[]).push(0-n,r),o&&((e.preOrderHooks??=[]).push(n,o),(e.preOrderCheckHooks??=[]).push(n,o))}(e,o[e],t)}finally{null!==c&&la(c),zg(a),s.resolving=!1,bC()}}return r}function SC(n,t,e){return!!(e[t+(n>>Gg)]&1<{const t=n.prototype.constructor,e=t[Hc]||kf(t),i=Object.prototype;let r=Object.getPrototypeOf(n.prototype).constructor;for(;r&&r!==i;){const o=r[Hc]||kf(r);if(o&&o!==e)return o;r=Object.getPrototypeOf(r)}return o=>new o})}function kf(n){return Fo(n)?()=>{const t=kf($n(n));return t&&t()}:wl(n)}function TC(n){const t=n[rn],e=t.type;return 2===e?t.declTNode:1===e?n[Ts]:null}function Ll(n){return function JF(n,t){if("class"===t)return n.classes;if("style"===t)return n.styles;const e=n.attrs;if(e){const i=e.length;let r=0;for(;r{class n{static{this.THROW_IF_NOT_FOUND=Jm}static{this.NULL=new hg}static create(e,i){if(Array.isArray(e))return Pv({name:""},i,e,"");{const r=e.name??"";return Pv({name:r},e.parent,e.providers,r)}}static{this.\u0275prov=Bt({token:n,providedIn:"any",factory:()=>ge(yf)})}static{this.__NG_ELEMENT_ID__=-1}}return n})();function Bf(n){return n.ngOriginalError}class Ia{constructor(){this._console=console}handleError(t){const e=this._findOriginalError(t);this._console.error("ERROR",t),e&&this._console.error("ORIGINAL ERROR",e)}_findOriginalError(t){let e=t&&Bf(t);for(;e&&Bf(e);)e=Bf(e);return e||null}}const eh=new ut("",{providedIn:"root",factory:()=>qt(Ia).handleError.bind(void 0)});let Ud=(()=>{class n{static{this.__NG_ELEMENT_ID__=DC}static{this.__NG_ENV_ID__=e=>e}}return n})();class oD extends Ud{constructor(t){super(),this._lView=t}onDestroy(t){return Ap(this._lView,t),()=>function gp(n,t){if(null===n[Rd])return;const e=n[Rd].indexOf(t);-1!==e&&n[Rd].splice(e,1)}(this._lView,t)}}function DC(){return new oD(Pt())}function aD(){return Pf(gr(),Pt())}function Pf(n,t){return new Vn(Zs(n,t))}let Vn=(()=>{class n{constructor(e){this.nativeElement=e}static{this.__NG_ELEMENT_ID__=aD}}return n})();function BC(n){return n instanceof Vn?n.nativeElement:n}function Rv(n){return t=>{setTimeout(n,void 0,t)}}const Bn=class lD extends Hn{constructor(t=!1){super(),this.destroyRef=void 0,this.__isAsync=t,Zx()&&(this.destroyRef=qt(Ud,{optional:!0})??void 0)}emit(t){const e=T(null);try{super.next(t)}finally{T(e)}}subscribe(t,e,i){let r=t,o=e||(()=>null),s=i;if(t&&"object"==typeof t){const l=t;r=l.next?.bind(l),o=l.error?.bind(l),s=l.complete?.bind(l)}this.__isAsync&&(o=Rv(o),r&&(r=Rv(r)),s&&(s=Rv(s)));const a=super.subscribe({next:r,error:o,complete:s});return t instanceof Kn&&t.add(a),a}};function cD(){return this._results[Symbol.iterator]()}class th{get changes(){return this._changes??=new Bn}constructor(t=!1){this._emitDistinctChangesOnly=t,this.dirty=!0,this._onDirty=void 0,this._results=[],this._changesDetected=!1,this._changes=void 0,this.length=0,this.first=void 0,this.last=void 0;const e=th.prototype;e[Symbol.iterator]||(e[Symbol.iterator]=cD)}get(t){return this._results[t]}map(t){return this._results.map(t)}filter(t){return this._results.filter(t)}find(t){return this._results.find(t)}reduce(t,e){return this._results.reduce(t,e)}forEach(t){this._results.forEach(t)}some(t){return this._results.some(t)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(t,e){this.dirty=!1;const i=function Ys(n){return n.flat(Number.POSITIVE_INFINITY)}(t);(this._changesDetected=!function qr(n,t,e){if(n.length!==t.length)return!1;for(let i=0;irre}),rre="ng",KU=new ut(""),Lf=new ut("",{providedIn:"platform",factory:()=>"unknown"}),ps=new ut(""),uD=new ut("",{providedIn:"root",factory:()=>Rf().body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce")||null});let YU=()=>null;function bD(n,t,e=!1){return YU(n,t,e)}const n8=new ut("",{providedIn:"root",factory:()=>!1});let HC,VC;function t0(n){return function xD(){if(void 0===HC&&(HC=null,wi.trustedTypes))try{HC=wi.trustedTypes.createPolicy("angular",{createHTML:n=>n,createScript:n=>n,createScriptURL:n=>n})}catch{}return HC}()?.createHTML(n)||n}function r8(n){return function CD(){if(void 0===VC&&(VC=null,wi.trustedTypes))try{VC=wi.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:n=>n,createScript:n=>n,createScriptURL:n=>n})}catch{}return VC}()?.createHTML(n)||n}class Ep{constructor(t){this.changingThisBreaksApplicationSecurity=t}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${Ai})`}}function Ul(n){return n instanceof Ep?n.changingThisBreaksApplicationSecurity:n}function Qd(n,t){const e=function xre(n){return n instanceof Ep&&n.getTypeName()||null}(n);if(null!=e&&e!==t){if("ResourceURL"===e&&"URL"===t)return!0;throw new Error(`Required a safe ${t}, got a ${e} (see ${Ai})`)}return e===t}class Ire{constructor(t){this.inertDocumentHelper=t}getInertBodyElement(t){t=""+t;try{const e=(new window.DOMParser).parseFromString(t0(t),"text/html").body;return null===e?this.inertDocumentHelper.getInertBodyElement(t):(e.removeChild(e.firstChild),e)}catch{return null}}}class Fre{constructor(t){this.defaultDoc=t,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert")}getInertBodyElement(t){const e=this.inertDocument.createElement("template");return e.innerHTML=t0(t),e}}const kre=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;function QC(n){return(n=String(n)).match(kre)?n:"unsafe:"+n}function oh(n){const t={};for(const e of n.split(","))t[e]=!0;return t}function Vv(...n){const t={};for(const e of n)for(const i in e)e.hasOwnProperty(i)&&(t[i]=!0);return t}const l8=oh("area,br,col,hr,img,wbr"),c8=oh("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),d8=oh("rp,rt"),MD=Vv(l8,Vv(c8,oh("address,article,aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul")),Vv(d8,oh("a,abbr,acronym,audio,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video")),Vv(d8,c8)),ED=oh("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),u8=Vv(ED,oh("abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,scope,scrolling,shape,size,sizes,span,srclang,srcset,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"),oh("aria-activedescendant,aria-atomic,aria-autocomplete,aria-busy,aria-checked,aria-colcount,aria-colindex,aria-colspan,aria-controls,aria-current,aria-describedby,aria-details,aria-disabled,aria-dropeffect,aria-errormessage,aria-expanded,aria-flowto,aria-grabbed,aria-haspopup,aria-hidden,aria-invalid,aria-keyshortcuts,aria-label,aria-labelledby,aria-level,aria-live,aria-modal,aria-multiline,aria-multiselectable,aria-orientation,aria-owns,aria-placeholder,aria-posinset,aria-pressed,aria-readonly,aria-relevant,aria-required,aria-roledescription,aria-rowcount,aria-rowindex,aria-rowspan,aria-selected,aria-setsize,aria-sort,aria-valuemax,aria-valuemin,aria-valuenow,aria-valuetext")),Bre=oh("script,style,template");class Pre{constructor(){this.sanitizedSomething=!1,this.buf=[]}sanitizeChildren(t){let e=t.firstChild,i=!0,r=[];for(;e;)if(e.nodeType===Node.ELEMENT_NODE?i=this.startElement(e):e.nodeType===Node.TEXT_NODE?this.chars(e.nodeValue):this.sanitizedSomething=!0,i&&e.firstChild)r.push(e),e=Ore(e);else for(;e;){e.nodeType===Node.ELEMENT_NODE&&this.endElement(e);let o=Lre(e);if(o){e=o;break}e=r.pop()}return this.buf.join("")}startElement(t){const e=h8(t).toLowerCase();if(!MD.hasOwnProperty(e))return this.sanitizedSomething=!0,!Bre.hasOwnProperty(e);this.buf.push("<"),this.buf.push(e);const i=t.attributes;for(let r=0;r"),!0}endElement(t){const e=h8(t).toLowerCase();MD.hasOwnProperty(e)&&!l8.hasOwnProperty(e)&&(this.buf.push(""))}chars(t){this.buf.push(m8(t))}}function Lre(n){const t=n.nextSibling;if(t&&n!==t.previousSibling)throw f8(t);return t}function Ore(n){const t=n.firstChild;if(t&&function Rre(n,t){return(n.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_CONTAINED_BY)!==Node.DOCUMENT_POSITION_CONTAINED_BY}(n,t))throw f8(t);return t}function h8(n){const t=n.nodeName;return"string"==typeof t?t:"FORM"}function f8(n){return new Error(`Failed to sanitize html because the element is clobbered: ${n.outerHTML}`)}const Nre=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,Ure=/([^\#-~ |!])/g;function m8(n){return n.replace(/&/g,"&").replace(Nre,function(t){return"&#"+(1024*(t.charCodeAt(0)-55296)+(t.charCodeAt(1)-56320)+65536)+";"}).replace(Ure,function(t){return"&#"+t.charCodeAt(0)+";"}).replace(//g,">")}let zC;function p8(n,t){let e=null;try{zC=zC||function a8(n){const t=new Fre(n);return function Dre(){try{return!!(new window.DOMParser).parseFromString(t0(""),"text/html")}catch{return!1}}()?new Ire(t):t}(n);let i=t?String(t):"";e=zC.getInertBodyElement(i);let r=5,o=i;do{if(0===r)throw new Error("Failed to sanitize html because the input is unstable");r--,i=o,o=e.innerHTML,e=zC.getInertBodyElement(i)}while(i!==o);return t0((new Pre).sanitizeChildren(SD(e)||e))}finally{if(e){const i=SD(e)||e;for(;i.firstChild;)i.removeChild(i.firstChild)}}}function SD(n){return"content"in n&&function Hre(n){return n.nodeType===Node.ELEMENT_NODE&&"TEMPLATE"===n.nodeName}(n)?n.content:null}var ea=function(n){return n[n.NONE=0]="NONE",n[n.HTML=1]="HTML",n[n.STYLE=2]="STYLE",n[n.SCRIPT=3]="SCRIPT",n[n.URL=4]="URL",n[n.RESOURCE_URL=5]="RESOURCE_URL",n}(ea||{});function TD(n){const t=Qv();return t?r8(t.sanitize(ea.HTML,n)||""):Qd(n,"HTML")?r8(Ul(n)):p8(Rf(),ci(n))}function Sp(n){const t=Qv();return t?t.sanitize(ea.URL,n)||"":Qd(n,"URL")?Ul(n):QC(ci(n))}function Qv(){const n=Pt();return n&&n[Ml].sanitizer}const $re=/^>|^->||--!>|)/g,Xre="\u200b$1\u200b";function zv(n){return n.ownerDocument.defaultView}function v8(n){return n.ownerDocument}var Nf=function(n){return n[n.Important=1]="Important",n[n.DashCase=2]="DashCase",n}(Nf||{});let kD;function BD(n,t){return kD(n,t)}function r0(n,t,e,i,r){if(null!=i){let o,s=!1;Vs(i)?o=i:Kr(i)&&(s=!0,i=i[so]);const a=xr(i);0===n&&null!==e?null==r?I8(t,e,a):Tp(t,e,a,r||null,!0):1===n&&null!==e?Tp(t,e,a,r||null,!0):2===n?function Wv(n,t,e){const i=jC(n,t);i&&function hoe(n,t,e,i){n.removeChild(t,e,i)}(n,i,t,e)}(t,a,s):3===n&&t.destroyNode(a),null!=o&&function poe(n,t,e,i,r){const o=e[El];o!==xr(e)&&r0(t,n,i,o,r);for(let a=Bo;at.replace(jre,Xre))}(t))}function WC(n,t,e){return n.createElement(t,e)}function E8(n,t){t[Ml].changeDetectionScheduler?.notify(1),KC(n,t,t[ri],2,null,null)}function S8(n,t){const e=n[Ef],i=e.indexOf(t);e.splice(i,1)}function qv(n,t){if(n.length<=Bo)return;const e=Bo+t,i=n[e];if(i){const r=i[lp];null!==r&&r!==n&&S8(r,i),t>0&&(n[e-1][Cl]=i[Cl]);const o=tp(n,Bo+t);!function ooe(n,t){E8(n,t),t[so]=null,t[Ts]=null}(i[rn],i);const s=o[zc];null!==s&&s.detachView(o[rn]),i[ko]=null,i[Cl]=null,i[qn]&=-129}return i}function $C(n,t){if(!(256&t[qn])){const e=t[ri];e.destroyNode&&KC(n,t,e,3,null,null),function aoe(n){let t=n[ap];if(!t)return LD(n[rn],n);for(;t;){let e=null;if(Kr(t))e=t[ap];else{const i=t[Bo];i&&(e=i)}if(!e){for(;t&&!t[Cl]&&t!==n;)Kr(t)&&LD(t[rn],t),t=t[ko];null===t&&(t=n),Kr(t)&&LD(t[rn],t),e=t&&t[Cl]}t=e}}(t)}}function LD(n,t){if(256&t[qn])return;const e=T(null);try{t[qn]&=-129,t[qn]|=256,t[Wu]&>(t[Wu]),function uoe(n,t){let e;if(null!=n&&null!=(e=n.destroyHooks))for(let i=0;i=0?i[s]():i[-s].unsubscribe(),o+=2}else e[o].call(i[e[o+1]]);null!==i&&(t[Cf]=null);const r=t[Rd];if(null!==r){t[Rd]=null;for(let o=0;o-1){const{encapsulation:o}=n.data[i.directiveStart+r];if(o===ca.None||o===ca.Emulated)return null}return Zs(i,e)}}(n,t.parent,e)}function Tp(n,t,e,i,r){n.insertBefore(t,e,i,r)}function I8(n,t,e){n.appendChild(t,e)}function F8(n,t,e,i,r){null!==i?Tp(n,t,e,i,r):I8(n,t,e)}function jC(n,t){return n.parentNode(t)}function D8(n,t,e){return B8(n,t,e)}let ND,B8=function k8(n,t,e){return 40&n.type?Zs(n,e):null};function XC(n,t,e,i){const r=OD(n,i,t),o=t[ri],a=D8(i.parent||t[Ts],i,t);if(null!=r)if(Array.isArray(e))for(let l=0;lgi&&H8(n,t,gi,!1),Il(s?2:0,r),e(i,r)}finally{Ld(o),Il(s?3:1,r)}}function QD(n,t,e){if(Cg(t)){const i=T(null);try{const o=t.directiveEnd;for(let s=t.directiveStart;snull;function W8(n,t,e,i,r){for(let o in t){if(!t.hasOwnProperty(o))continue;const s=t[o];if(void 0===s)continue;i??={};let a,l=Ct.None;Array.isArray(s)?(a=s[0],l=s[1]):a=s;let c=o;if(null!==r){if(!r.hasOwnProperty(o))continue;c=r[o]}0===n?$8(i,e,c,a,l):$8(i,e,c,a)}return i}function $8(n,t,e,i,r){let o;n.hasOwnProperty(e)?(o=n[e]).push(t,i):o=n[e]=[t,i],void 0!==r&&o.push(r)}function tl(n,t,e,i,r,o,s,a){const l=Zs(t,e);let d,c=t.inputs;!a&&null!=c&&(d=c[i])?(KD(n,e,d,i,r),Sl(t)&&function Toe(n,t){const e=Ta(t,n);16&e[qn]||(e[qn]|=64)}(e,t.index)):3&t.type&&(i=function Soe(n){return"class"===n?"className":"for"===n?"htmlFor":"formaction"===n?"formAction":"innerHtml"===n?"innerHTML":"readonly"===n?"readOnly":"tabindex"===n?"tabIndex":n}(i),r=null!=s?s(r,t.value||"",i):r,o.setProperty(l,i,r))}function WD(n,t,e,i){if(hC()){const r=null===i?null:{"":-1},o=function Poe(n,t){const e=n.directiveRegistry;let i=null,r=null;if(e)for(let o=0;o0;){const e=n[--t];if("number"==typeof e&&e<0)return e}return 0})(s)!=a&&s.push(a),s.push(e,i,o)}}(n,t,i,$v(n,e,r.hostVars,Ti),r)}function zd(n,t,e,i,r,o){const s=Zs(n,t);!function jD(n,t,e,i,r,o,s){if(null==o)n.removeAttribute(t,r,e);else{const a=null==s?ci(o):s(o,i||"",r);n.setAttribute(t,r,a,e)}}(t[ri],s,o,n.value,e,i,r)}function Hoe(n,t,e,i,r,o){const s=o[t];if(null!==s)for(let a=0;a0&&(e[r-1][Cl]=t),i{pp(n.lView)},consumerOnSignalRead(){this.lView[Wu]=this}},r6=100;function eM(n,t=!0,e=0){const i=n[Ml],r=i.rendererFactory;r.begin?.();try{!function Xoe(n,t){JD(n,t);let e=0;for(;Xu(n);){if(e===r6)throw new dt(103,!1);e++,JD(n,1)}}(n,e)}catch(s){throw t&&JC(n,s),s}finally{r.end?.(),i.inlineEffectRunner?.flush()}}function Koe(n,t,e,i){const r=t[qn];if(!(256&~r))return;t[Ml].inlineEffectRunner?.flush(),Og(t);let s=null,a=null;(function Yoe(n){return 2!==n.type})(n)&&(a=function Goe(n){return n[Wu]??function Woe(n){const t=i6.pop()??Object.create(joe);return t.lView=n,t}(n)}(t),s=Je(a));try{kg(t),function _C(n){return oi.lFrame.bindingIndex=n}(n.bindingStartIndex),null!==e&&z8(n,t,e,2,i);const l=!(3&~r);if(l){const u=n.preOrderCheckHooks;null!==u&&Pl(t,u,null)}else{const u=n.preOrderHooks;null!==u&&Od(t,u,0,null),Rl(t,0)}if(function Zoe(n){for(let t=ms(n);null!==t;t=$c(t)){if(!(t[qn]&up.HasTransplantedViews))continue;const e=t[Ef];for(let i=0;i-1&&(qv(t,i),tp(e,i))}this._attachedToViewContainer=!1}$C(this._lView[rn],this._lView)}onDestroy(t){Ap(this._lView,t)}markForCheck(){Yv(this._cdRefInjectingView||this._lView)}detach(){this._lView[qn]&=-129}reattach(){fv(this._lView),this._lView[qn]|=128}detectChanges(){this._lView[qn]|=1024,eM(this._lView,this.notifyErrorHandler)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new dt(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null,E8(this._lView[rn],this._lView)}attachToAppRef(t){if(this._attachedToViewContainer)throw new dt(902,!1);this._appRef=t,fv(this._lView)}}let Vl=(()=>{class n{static{this.__NG_ELEMENT_ID__=nse}}return n})();const ese=Vl,tse=class extends ese{constructor(t,e,i){super(),this._declarationLView=t,this._declarationTContainer=e,this.elementRef=i}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(t,e){return this.createEmbeddedViewImpl(t,e)}createEmbeddedViewImpl(t,e,i){const r=jv(this._declarationLView,this._declarationTContainer,t,{embeddedViewInjector:e,dehydratedView:i});return new Zv(r)}};function nse(){return tM(gr(),Pt())}function tM(n,t){return 4&n.type?new tse(t,n,Pf(n,t)):null}let f6=()=>null;function a0(n,t){return f6(n,t)}class sM{}class Ese{}class m6{}class Tse{resolveComponentFactory(t){throw function Sse(n){const t=Error(`No component factory found for ${oo(n)}.`);return t.ngComponent=n,t}(t)}}let l0=(()=>{class n{static{this.NULL=new Tse}}return n})();class ok{}let Ip=(()=>{class n{constructor(){this.destroyNode=null}static{this.__NG_ELEMENT_ID__=()=>function Ise(){const n=Pt(),e=Ta(gr().index,n);return(Kr(e)?e:n)[ri]}()}}return n})(),Fse=(()=>{class n{static{this.\u0275prov=Bt({token:n,providedIn:"root",factory:()=>null})}}return n})();const sk={},A6=new Set;function qd(n){A6.has(n)||(A6.add(n),performance?.mark?.("mark_feature_usage",{detail:{feature:n}}))}function g6(...n){}class kn{constructor({enableLongStackTrace:t=!1,shouldCoalesceEventChangeDetection:e=!1,shouldCoalesceRunChangeDetection:i=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Bn(!1),this.onMicrotaskEmpty=new Bn(!1),this.onStable=new Bn(!1),this.onError=new Bn(!1),typeof Zone>"u")throw new dt(908,!1);Zone.assertZonePatched();const r=this;r._nesting=0,r._outer=r._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(r._inner=r._inner.fork(new Zone.TaskTrackingZoneSpec)),t&&Zone.longStackTraceZoneSpec&&(r._inner=r._inner.fork(Zone.longStackTraceZoneSpec)),r.shouldCoalesceEventChangeDetection=!i&&e,r.shouldCoalesceRunChangeDetection=i,r.lastRequestAnimationFrameId=-1,r.nativeRequestAnimationFrame=function Dse(){const n="function"==typeof wi.requestAnimationFrame;let t=wi[n?"requestAnimationFrame":"setTimeout"],e=wi[n?"cancelAnimationFrame":"clearTimeout"];if(typeof Zone<"u"&&t&&e){const i=t[Zone.__symbol__("OriginalDelegate")];i&&(t=i);const r=e[Zone.__symbol__("OriginalDelegate")];r&&(e=r)}return{nativeRequestAnimationFrame:t,nativeCancelAnimationFrame:e}}().nativeRequestAnimationFrame,function Pse(n){const t=()=>{!function Bse(n){n.isCheckStableRunning||-1!==n.lastRequestAnimationFrameId||(n.lastRequestAnimationFrameId=n.nativeRequestAnimationFrame.call(wi,()=>{n.fakeTopEventTask||(n.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{n.lastRequestAnimationFrameId=-1,lk(n),n.isCheckStableRunning=!0,ak(n),n.isCheckStableRunning=!1},void 0,()=>{},()=>{})),n.fakeTopEventTask.invoke()}),lk(n))}(n)};n._inner=n._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(e,i,r,o,s,a)=>{if(function Rse(n){return!(!Array.isArray(n)||1!==n.length)&&!0===n[0].data?.__ignore_ng_zone__}(a))return e.invokeTask(r,o,s,a);try{return _6(n),e.invokeTask(r,o,s,a)}finally{(n.shouldCoalesceEventChangeDetection&&"eventTask"===o.type||n.shouldCoalesceRunChangeDetection)&&t(),b6(n)}},onInvoke:(e,i,r,o,s,a,l)=>{try{return _6(n),e.invoke(r,o,s,a,l)}finally{n.shouldCoalesceRunChangeDetection&&t(),b6(n)}},onHasTask:(e,i,r,o)=>{e.hasTask(r,o),i===r&&("microTask"==o.change?(n._hasPendingMicrotasks=o.microTask,lk(n),ak(n)):"macroTask"==o.change&&(n.hasPendingMacrotasks=o.macroTask))},onHandleError:(e,i,r,o)=>(e.handleError(r,o),n.runOutsideAngular(()=>n.onError.emit(o)),!1)})}(r)}static isInAngularZone(){return typeof Zone<"u"&&!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!kn.isInAngularZone())throw new dt(909,!1)}static assertNotInAngularZone(){if(kn.isInAngularZone())throw new dt(909,!1)}run(t,e,i){return this._inner.run(t,e,i)}runTask(t,e,i,r){const o=this._inner,s=o.scheduleEventTask("NgZoneEvent: "+r,t,kse,g6,g6);try{return o.runTask(s,e,i)}finally{o.cancelTask(s)}}runGuarded(t,e,i){return this._inner.runGuarded(t,e,i)}runOutsideAngular(t){return this._outer.run(t)}}const kse={};function ak(n){if(0==n._nesting&&!n.hasPendingMicrotasks&&!n.isStable)try{n._nesting++,n.onMicrotaskEmpty.emit(null)}finally{if(n._nesting--,!n.hasPendingMicrotasks)try{n.runOutsideAngular(()=>n.onStable.emit(null))}finally{n.isStable=!0}}}function lk(n){n.hasPendingMicrotasks=!!(n._hasPendingMicrotasks||(n.shouldCoalesceEventChangeDetection||n.shouldCoalesceRunChangeDetection)&&-1!==n.lastRequestAnimationFrameId)}function _6(n){n._nesting++,n.isStable&&(n.isStable=!1,n.onUnstable.emit(null))}function b6(n){n._nesting--,ak(n)}class v6{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Bn,this.onMicrotaskEmpty=new Bn,this.onStable=new Bn,this.onError=new Bn}run(t,e,i){return t.apply(e,i)}runGuarded(t,e,i){return t.apply(e,i)}runOutsideAngular(t){return t()}runTask(t,e,i,r){return t.apply(e,i)}}let iy=(()=>{class n{constructor(){this.handler=null,this.internalCallbacks=[]}execute(){this.executeInternalCallbacks(),this.handler?.execute()}executeInternalCallbacks(){const e=[...this.internalCallbacks];this.internalCallbacks.length=0;for(const i of e)i()}ngOnDestroy(){this.handler?.destroy(),this.handler=null,this.internalCallbacks.length=0}static{this.\u0275prov=Bt({token:n,providedIn:"root",factory:()=>new n})}}return n})();function lM(n,t,e){let i=e?n.styles:null,r=e?n.classes:null,o=0;if(null!==t)for(let s=0;s0&&N8(n,e,o.join(" "))}}(f,V,y,i),void 0!==e&&function jse(n,t,e){const i=n.projection=[];for(let r=0;r{class n{static{this.__NG_ELEMENT_ID__=Kse}}return n})();function Kse(){return F6(gr(),Pt())}const Yse=ua,T6=class extends Yse{constructor(t,e,i){super(),this._lContainer=t,this._hostTNode=e,this._hostLView=i}get element(){return Pf(this._hostTNode,this._hostLView)}get injector(){return new Zo(this._hostTNode,this._hostLView)}get parentInjector(){const t=Wg(this._hostTNode,this._hostLView);if(Mv(t)){const e=vp(t,this._hostLView),i=Ju(t);return new Zo(e[rn].data[i+8],e)}return new Zo(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(t){const e=I6(this._lContainer);return null!==e&&e[t]||null}get length(){return this._lContainer.length-Bo}createEmbeddedView(t,e,i){let r,o;"number"==typeof i?r=i:null!=i&&(r=i.index,o=i.injector);const s=a0(this._lContainer,t.ssrId),a=t.createEmbeddedViewImpl(e||{},o,s);return this.insertImpl(a,r,s0(this._hostTNode,s)),a}createComponent(t,e,i,r,o){const s=t&&!function sp(n){return"function"==typeof n}(t);let a;if(s)a=e;else{const A=e||{};a=A.index,i=A.injector,r=A.projectableNodes,o=A.environmentInjector||A.ngModuleRef}const l=s?t:new sy(Oi(t)),c=i||this.parentInjector;if(!o&&null==l.ngModule){const y=(s?c:this.parentInjector).get(Ea,null);y&&(o=y)}const d=Oi(l.componentType??{}),u=a0(this._lContainer,d?.id??null),f=l.create(c,r,u?.firstChild??null,o);return this.insertImpl(f.hostView,a,s0(this._hostTNode,u)),f}insert(t,e){return this.insertImpl(t,e,!0)}insertImpl(t,e,i){const r=t._lView;if(function cC(n){return Vs(n[ko])}(r)){const a=this.indexOf(t);if(-1!==a)this.detach(a);else{const l=r[ko],c=new T6(l,l[Ts],l[ko]);c.detach(c.indexOf(t))}}const o=this._adjustIndex(e),s=this._lContainer;return Xv(s,r,o,i),t.attachToViewContainerRef(),Wb(hk(s),o,t),t}move(t,e){return this.insert(t,e)}indexOf(t){const e=I6(this._lContainer);return null!==e?e.indexOf(t):-1}remove(t){const e=this._adjustIndex(t,-1),i=qv(this._lContainer,e);i&&(tp(hk(this._lContainer),e),$C(i[rn],i))}detach(t){const e=this._adjustIndex(t,-1),i=qv(this._lContainer,e);return i&&null!=tp(hk(this._lContainer),e)?new Zv(i):null}_adjustIndex(t,e=0){return t??this.length+e}};function I6(n){return n[8]}function hk(n){return n[8]||(n[8]=[])}function F6(n,t){let e;const i=t[n.index];return Vs(i)?e=i:(e=K8(i,t,null,n),t[n.index]=e,ZC(t,e)),D6(e,t,n,i),new T6(e,n,t)}let D6=function B6(n,t,e,i){if(n[El])return;let r;r=8&e.type?xr(i):function Zse(n,t){const e=n[ri],i=e.createComment(""),r=Zs(t,n);return Tp(e,jC(e,r),i,function foe(n,t){return n.nextSibling(t)}(e,r),!1),i}(t,e),n[El]=r},fk=()=>!1;class mk{constructor(t){this.queryList=t,this.matches=null}clone(){return new mk(this.queryList)}setDirty(){this.queryList.setDirty()}}class pk{constructor(t=[]){this.queries=t}createEmbeddedView(t){const e=t.queries;if(null!==e){const i=null!==t.contentQueries?t.contentQueries[0]:e.length,r=[];for(let o=0;ot.trim())}(t):t}}class Ak{constructor(t=[]){this.queries=t}elementStart(t,e){for(let i=0;i0)i.push(s[a/2]);else{const c=o[a+1],d=t[-l];for(let u=Bo;u(X(t),t.value);return e[q]=t,e}(n),i=e[q];return t?.equal&&(i.equal=t.equal),e.set=r=>Ri(i,r),e.update=r=>function li(n,t){qe()||Wt(),Ri(n,t(n.value))}(i,r),e.asReadonly=V6.bind(e),e}function V6(){const n=this[q];if(void 0===n.readonlyFn){const t=()=>this();t[q]=n,n.readonlyFn=t}return n.readonlyFn}function Q6(n){return dM(n)&&"function"==typeof n.set}function _i(n){let t=function J6(n){return Object.getPrototypeOf(n.prototype).constructor}(n.type),e=!0;const i=[n];for(;t;){let r;if(Tl(n))r=t.\u0275cmp||t.\u0275dir;else{if(t.\u0275cmp)throw new dt(903,!1);r=t.\u0275dir}if(r){if(e){i.push(r);const s=n;s.inputs=hM(n.inputs),s.inputTransforms=hM(n.inputTransforms),s.declaredInputs=hM(n.declaredInputs),s.outputs=hM(n.outputs);const a=r.hostBindings;a&&yae(n,a);const l=r.viewQuery,c=r.contentQueries;if(l&&bae(n,l),c&&vae(n,c),gae(n,r),Ru(n.outputs,r.outputs),Tl(r)&&r.data.animation){const d=n.data;d.animation=(d.animation||[]).concat(r.data.animation)}}const o=r.features;if(o)for(let s=0;s=0;i--){const r=n[i];r.hostVars=t+=r.hostVars,r.hostAttrs=np(r.hostAttrs,e=np(e,r.hostAttrs))}}(i)}function gae(n,t){for(const e in t.inputs){if(!t.inputs.hasOwnProperty(e)||n.inputs.hasOwnProperty(e))continue;const i=t.inputs[e];if(void 0!==i&&(n.inputs[e]=i,n.declaredInputs[e]=t.declaredInputs[e],null!==t.inputTransforms)){const r=Array.isArray(i)?i[0]:i;if(!t.inputTransforms.hasOwnProperty(r))continue;n.inputTransforms??={},n.inputTransforms[r]=t.inputTransforms[r]}}}function hM(n){return n===Ka?{}:n===cr?[]:n}function bae(n,t){const e=n.viewQuery;n.viewQuery=e?(i,r)=>{t(i,r),e(i,r)}:t}function vae(n,t){const e=n.contentQueries;n.contentQueries=e?(i,r,o)=>{t(i,r,o),e(i,r,o)}:t}function yae(n,t){const e=n.hostBindings;n.hostBindings=e?(i,r)=>{t(i,r),e(i,r)}:t}function es(n){const t=n.inputConfig,e={};for(const i in t)if(t.hasOwnProperty(i)){const r=t[i];Array.isArray(r)&&r[3]&&(e[i]=r[3])}n.inputTransforms=e}class kp{}class Sae{}class xk extends kp{constructor(t,e,i){super(),this._parent=e,this._bootstrapComponents=[],this.destroyCbs=[],this.componentFactoryResolver=new E6(this);const r=function Hs(n,t){const e=n[Vb]||null;if(!e&&!0===t)throw new Error(`Type ${oo(n)} does not have '\u0275mod' property.`);return e}(t);this._bootstrapComponents=function Hl(n){return n instanceof Function?n():n}(r.bootstrap),this._r3Injector=xp(t,e,[{provide:kp,useValue:this},{provide:l0,useValue:this.componentFactoryResolver},...i],oo(t),new Set(["environment"])),this._r3Injector.resolveInjectorInitializers(),this.instance=this._r3Injector.get(t)}get injector(){return this._r3Injector}destroy(){const t=this._r3Injector;!t.destroyed&&t.destroy(),this.destroyCbs.forEach(e=>e()),this.destroyCbs=null}onDestroy(t){this.destroyCbs.push(t)}}class Ck extends Sae{constructor(t){super(),this.moduleType=t}create(t){return new xk(this.moduleType,t,[])}}class i7 extends kp{constructor(t){super(),this.componentFactoryResolver=new E6(this),this.instance=null;const e=new xf([...t.providers,{provide:kp,useValue:this},{provide:l0,useValue:this.componentFactoryResolver}],t.parent||bg(),t.debugName,new Set(["environment"]));this.injector=e,t.runEnvironmentInitializers&&e.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(t){this.injector.onDestroy(t)}}let Bp=(()=>{class n{constructor(){this.taskId=0,this.pendingTasks=new Set,this.hasPendingTasks=new wa(!1)}get _hasPendingTasks(){return this.hasPendingTasks.value}add(){this._hasPendingTasks||this.hasPendingTasks.next(!0);const e=this.taskId++;return this.pendingTasks.add(e),e}remove(e){this.pendingTasks.delete(e),0===this.pendingTasks.size&&this._hasPendingTasks&&this.hasPendingTasks.next(!1)}ngOnDestroy(){this.pendingTasks.clear(),this._hasPendingTasks&&this.hasPendingTasks.next(!1)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();function Mk(n){return null!==n&&("function"==typeof n||"object"==typeof n)}function Gd(n,t,e){return n[t]=e}function ts(n,t,e){return!Object.is(n[t],e)&&(n[t]=e,!0)}function Pp(n,t,e,i){const r=ts(n,t,e);return ts(n,t+1,i)||r}function bc(n,t,e,i,r,o){const s=Pp(n,t,e,i);return Pp(n,t+2,r,o)||s}function At(n,t,e,i,r,o,s,a){const l=Pt(),c=Gi(),d=n+gi,u=c.firstCreatePass?function Rae(n,t,e,i,r,o,s,a,l){const c=t.consts,d=o0(t,n,4,s||null,mc(c,a));WD(t,e,d,mc(c,l)),Bl(t,d);const u=d.tView=GD(2,d,i,r,o,t.directiveRegistry,t.pipeRegistry,null,t.schemas,c,null);return null!==t.queries&&(t.queries.template(t,d),u.queries=t.queries.embeddedTView(d)),d}(d,c,l,t,e,i,r,o,s):c.data[d];Ja(u,!1);const h=o7(c,l,u,n);Yr()&&XC(c,l,h,u),jn(h,l);const f=K8(h,l,h,u);return l[d]=f,ZC(l,f),function k6(n,t,e){return fk(n,t,e)}(f,u,l),$u(u)&&zD(c,l,u),null!=s&&qD(l,u,a),At}let o7=function s7(n,t,e,i){return zs(!0),t[ri].createComment("")};function fi(n,t,e,i){const r=Pt();return ts(r,Dl(),t)&&(Gi(),zd(Wr(),r,n,t,e,i)),fi}function g0(n,t,e,i){return ts(n,Dl(),e)?t+ci(e)+i:Ti}function _0(n,t,e,i,r,o){const a=Pp(n,pc(),e,r);return Ac(2),a?t+ci(e)+i+ci(r)+o:Ti}function yM(n,t){return n<<17|t<<2}function Vf(n){return n>>17&32767}function Rk(n){return 2|n}function Lp(n){return(131068&n)>>2}function Lk(n,t){return-131069&n|t<<2}function Ok(n){return 1|n}function O7(n,t,e,i){const r=n[e+1],o=null===t;let s=i?Vf(r):Lp(r),a=!1;for(;0!==s&&(!1===a||o);){const c=n[s+1];vle(n[s],t)&&(a=!0,n[s+1]=i?Ok(c):Rk(c)),s=i?Vf(c):Lp(c)}a&&(n[e+1]=i?Rk(r):Ok(r))}function vle(n,t){return null===n||null==t||(Array.isArray(n)?n[1]:n)===t||!(!Array.isArray(n)||"string"!=typeof t)&&Ma(n,t)>=0}const ks={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function N7(n){return n.substring(ks.key,ks.keyEnd)}function yle(n){return n.substring(ks.value,ks.valueEnd)}function U7(n,t){const e=ks.textEnd;return e===t?-1:(t=ks.keyEnd=function Cle(n,t,e){for(;t32;)t++;return t}(n,ks.key=t,e),M0(n,t,e))}function H7(n,t){const e=ks.textEnd;let i=ks.key=M0(n,t,e);return e===i?-1:(i=ks.keyEnd=function Mle(n,t,e){let i;for(;t=65&&(-33&i)<=90||i>=48&&i<=57);)t++;return t}(n,i,e),i=Q7(n,i,e),i=ks.value=M0(n,i,e),i=ks.valueEnd=function Ele(n,t,e){let i=-1,r=-1,o=-1,s=t,a=s;for(;s32&&(a=s),o=r,r=i,i=-33&l}return a}(n,i,e),Q7(n,i,e))}function V7(n){ks.key=0,ks.keyEnd=0,ks.value=0,ks.valueEnd=0,ks.textEnd=n.length}function M0(n,t,e){for(;t=0;e=H7(t,e))W7(n,N7(t),yle(t))}function nl(n){Zc(Ble,Wd,n,!0)}function Wd(n,t){for(let e=function wle(n){return V7(n),U7(n,M0(n,0,ks.textEnd))}(t);e>=0;e=U7(t,e))Uo(n,N7(t),!0)}function Yc(n,t,e,i){const r=Pt(),o=Gi(),s=Ac(2);o.firstUpdatePass&&G7(o,n,s,i),t!==Ti&&ts(r,s,t)&&$7(o,o.data[Fs()],r,r[ri],n,r[s+1]=function Rle(n,t){return null==n||""===n||("string"==typeof t?n+=t:"object"==typeof n&&(n=oo(Ul(n)))),n}(t,e),i,s)}function Zc(n,t,e,i){const r=Gi(),o=Ac(2);r.firstUpdatePass&&G7(r,null,o,i);const s=Pt();if(e!==Ti&&ts(s,o,e)){const a=r.data[Fs()];if(X7(a,i)&&!q7(r,o)){let l=i?a.classesWithoutHost:a.stylesWithoutHost;null!==l&&(e=Id(l,e||"")),Nk(r,a,s,e,i)}else!function Ple(n,t,e,i,r,o,s,a){r===Ti&&(r=cr);let l=0,c=0,d=0=n.expandoStartIndex}function G7(n,t,e,i){const r=n.data;if(null===r[e+1]){const o=r[Fs()],s=q7(n,e);X7(o,i)&&null===t&&!s&&(t=!1),t=function Tle(n,t,e,i){const r=function Av(n){const t=oi.lFrame.currentDirectiveIndex;return-1===t?null:n[t]}(n);let o=i?t.residualClasses:t.residualStyles;if(null===r)0===(i?t.classBindings:t.styleBindings)&&(e=fy(e=Uk(null,n,t,e,i),t.attrs,i),o=null);else{const s=t.directiveStylingLast;if(-1===s||n[s]!==r)if(e=Uk(r,n,t,e,i),null===o){let l=function Ile(n,t,e){const i=e?t.classBindings:t.styleBindings;if(0!==Lp(i))return n[Vf(i)]}(n,t,i);void 0!==l&&Array.isArray(l)&&(l=Uk(null,n,t,l[1],i),l=fy(l,t.attrs,i),function Fle(n,t,e,i){n[Vf(e?t.classBindings:t.styleBindings)]=i}(n,t,i,l))}else o=function Dle(n,t,e){let i;const r=t.directiveEnd;for(let o=1+t.directiveStylingLast;o0)&&(c=!0)):d=e,r)if(0!==l){const h=Vf(n[a+1]);n[i+1]=yM(h,a),0!==h&&(n[h+1]=Lk(n[h+1],i)),n[a+1]=function Ale(n,t){return 131071&n|t<<17}(n[a+1],i)}else n[i+1]=yM(a,0),0!==a&&(n[a+1]=Lk(n[a+1],i)),a=i;else n[i+1]=yM(l,0),0===a?a=i:n[l+1]=Lk(n[l+1],i),l=i;c&&(n[i+1]=Rk(n[i+1])),O7(n,d,i,!0),O7(n,d,i,!1),function ble(n,t,e,i,r){const o=r?n.residualClasses:n.residualStyles;null!=o&&"string"==typeof t&&Ma(o,t)>=0&&(e[i+1]=Ok(e[i+1]))}(t,d,n,i,o),s=yM(a,l),o?t.classBindings=s:t.styleBindings=s}(r,o,t,e,s,i)}}function Uk(n,t,e,i,r){let o=null;const s=e.directiveEnd;let a=e.directiveStylingLast;for(-1===a?a=e.directiveStart:a++;a0;){const l=n[r],c=Array.isArray(l),d=c?l[1]:l,u=null===d;let h=e[r+1];h===Ti&&(h=u?cr:void 0);let f=u?Ho(h,i):d===i?h:void 0;if(c&&!wM(f)&&(f=Ho(l,i)),wM(f)&&(a=f,s))return a;const A=n[r+1];r=s?Vf(A):Lp(A)}if(null!==t){let l=o?t.residualClasses:t.residualStyles;null!=l&&(a=Ho(l,i))}return a}function wM(n){return void 0!==n}function X7(n,t){return!!(n.flags&(t?8:16))}function ah(n,t,e){Zc(Uo,Wd,g0(Pt(),n,t,e),!0)}class zle{destroy(t){}updateValue(t,e){}swap(t,e){const i=Math.min(t,e),r=Math.max(t,e),o=this.detach(r);if(r-i>1){const s=this.detach(i);this.attach(i,o),this.attach(r,s)}else this.attach(i,o)}move(t,e){this.attach(e,this.detach(t))}}function Hk(n,t,e,i,r){return n===e&&Object.is(t,i)?1:Object.is(r(n,t),r(e,i))?-1:0}function Vk(n,t,e,i){return!(void 0===t||!t.has(i)||(n.attach(e,t.get(i)),t.delete(i),0))}function Z7(n,t,e,i,r){if(Vk(n,t,i,e(i,r)))n.updateValue(i,r);else{const o=n.create(i,r);n.attach(i,o)}}function J7(n,t,e,i){const r=new Set;for(let o=t;o<=e;o++)r.add(i(o,n.at(o)));return r}class eH{constructor(){this.kvMap=new Map,this._vMap=void 0}has(t){return this.kvMap.has(t)}delete(t){if(!this.has(t))return!1;const e=this.kvMap.get(t);return void 0!==this._vMap&&this._vMap.has(e)?(this.kvMap.set(t,this._vMap.get(e)),this._vMap.delete(e)):this.kvMap.delete(t),!0}get(t){return this.kvMap.get(t)}set(t,e){if(this.kvMap.has(t)){let i=this.kvMap.get(t);void 0===this._vMap&&(this._vMap=new Map);const r=this._vMap;for(;r.has(i);)i=r.get(i);r.set(i,e)}else this.kvMap.set(t,e)}forEach(t){for(let[e,i]of this.kvMap)if(t(i,e),void 0!==this._vMap){const r=this._vMap;for(;r.has(i);)i=r.get(i),t(i,e)}}}function It(n,t,e){qd("NgControlFlow");const i=Pt(),r=Dl(),o=Qk(i,gi+n);if(ts(i,r,t)){const a=T(null);try{if(ZD(o,0),-1!==t){const l=zk(i[rn],gi+t),c=a0(o,l.tView.ssrId);Xv(o,jv(i,l,e,{dehydratedView:c}),0,s0(l,c))}}finally{T(a)}}else{const a=t6(o,0);void 0!==a&&(a[Gr]=e)}}class Gle{constructor(t,e,i){this.lContainer=t,this.$implicit=e,this.$index=i}get $count(){return this.lContainer.length-Bo}}function Hr(n,t){return t}class $le{constructor(t,e,i){this.hasEmptyBlock=t,this.trackByFn=e,this.liveCollection=i}}function Rr(n,t,e,i,r,o,s,a,l,c,d,u,h){qd("NgControlFlow");const f=void 0!==l,A=Pt(),y=a?s.bind(A[go][Gr]):s,_=new $le(f,y);A[gi+n]=_,At(n+1,t,e,i,r,o),f&&At(n+2,l,c,d,u,h)}class jle extends zle{constructor(t,e,i){super(),this.lContainer=t,this.hostLView=e,this.templateTNode=i,this.needsIndexUpdate=!1}get length(){return this.lContainer.length-Bo}at(t){return this.getLView(t)[Gr].$implicit}attach(t,e){const i=e[Sa];this.needsIndexUpdate||=t!==this.length,Xv(this.lContainer,e,t,s0(this.templateTNode,i))}detach(t){return this.needsIndexUpdate||=t!==this.length-1,function Xle(n,t){return qv(n,t)}(this.lContainer,t)}create(t,e){const i=a0(this.lContainer,this.templateTNode.tView.ssrId);return jv(this.hostLView,this.templateTNode,new Gle(this.lContainer,e,t),{dehydratedView:i})}destroy(t){$C(t[rn],t)}updateValue(t,e){this.getLView(t)[Gr].$implicit=e}reset(){this.needsIndexUpdate=!1}updateIndexes(){if(this.needsIndexUpdate)for(let t=0;t{n.destroy(a)})}(s,n,o.trackByFn),s.updateIndexes(),o.hasEmptyBlock){const a=Dl(),l=0===s.length;if(ts(i,a,l)){const c=e+2,d=Qk(i,c);if(l){const u=zk(r,c),h=a0(d,u.tView.ssrId);Xv(d,jv(i,u,void 0,{dehydratedView:h}),0,s0(u,h))}else ZD(d,0)}}}finally{T(t)}}function Qk(n,t){return n[t]}function zk(n,t){return mp(n,t)}function P(n,t,e,i){const r=Pt(),o=Gi(),s=gi+n,a=r[ri],l=o.firstCreatePass?function Yle(n,t,e,i,r,o){const s=t.consts,l=o0(t,n,2,i,mc(s,r));return WD(t,e,l,mc(s,o)),null!==l.attrs&&lM(l,l.attrs,!1),null!==l.mergedAttrs&&lM(l,l.mergedAttrs,!0),null!==t.queries&&t.queries.elementStart(t,l),l}(s,o,r,t,e,i):o.data[s],c=tH(o,r,l,a,t,n);r[s]=c;const d=$u(l);return Ja(l,!0),U8(a,c,l),!function cy(n){return!(32&~n.flags)}(l)&&Yr()&&XC(o,r,c,l),0===function zF(){return oi.lFrame.elementDepthCount}()&&jn(c,r),function qF(){oi.lFrame.elementDepthCount++}(),d&&(zD(o,r,l),QD(o,l,r)),null!==i&&qD(r,l),P}function H(){let n=gr();Bg()?Pg():(n=n.parent,Ja(n,!1));const t=n;(function fC(n){return oi.skipHydrationRootTNode===n})(t)&&function WF(){oi.skipHydrationRootTNode=null}(),function GF(){oi.lFrame.elementDepthCount--}();const e=Gi();return e.firstCreatePass&&(Bl(e,n),Cg(n)&&e.queries.elementEnd(n)),null!=t.classesWithoutHost&&function XF(n){return!!(8&n.flags)}(t)&&Nk(e,t,Pt(),t.classesWithoutHost,!0),null!=t.stylesWithoutHost&&function KF(n){return!!(16&n.flags)}(t)&&Nk(e,t,Pt(),t.stylesWithoutHost,!1),H}function xe(n,t,e,i){return P(n,t,e,i),H(),xe}let tH=(n,t,e,i,r,o)=>(zs(!0),WC(i,r,function Zu(){return oi.lFrame.currentNamespace}()));function xM(n,t,e){const i=Pt(),r=Gi(),o=n+gi,s=r.firstCreatePass?function ece(n,t,e,i,r){const o=t.consts,s=mc(o,i),a=o0(t,n,8,"ng-container",s);return null!==s&&lM(a,s,!0),WD(t,e,a,mc(o,r)),null!==t.queries&&t.queries.elementStart(t,a),a}(o,r,i,t,e):r.data[o];Ja(s,!0);const a=nH(r,i,s,n);return i[o]=a,Yr()&&XC(r,i,a,s),jn(a,i),$u(s)&&(zD(r,i,s),QD(r,s,i)),null!=e&&qD(i,s),xM}function CM(){let n=gr();const t=Gi();return Bg()?Pg():(n=n.parent,Ja(n,!1)),t.firstCreatePass&&(Bl(t,n),Cg(n)&&t.queries.elementEnd(n)),CM}function E0(n,t,e){return xM(n,t,e),CM(),E0}let nH=(n,t,e,i)=>(zs(!0),RD(t[ri],""));function Pn(){return Pt()}function $d(n,t,e){const i=Pt();return ts(i,Dl(),t)&&tl(Gi(),Wr(),i,n,t,i[ri],e,!0),$d}const Op=void 0;var rce=["en",[["a","p"],["AM","PM"],Op],[["AM","PM"],Op,Op],[["S","M","T","W","T","F","S"],["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],["Su","Mo","Tu","We","Th","Fr","Sa"]],Op,[["J","F","M","A","M","J","J","A","S","O","N","D"],["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],["January","February","March","April","May","June","July","August","September","October","November","December"]],Op,[["B","A"],["BC","AD"],["Before Christ","Anno Domini"]],0,[6,0],["M/d/yy","MMM d, y","MMMM d, y","EEEE, MMMM d, y"],["h:mm a","h:mm:ss a","h:mm:ss a z","h:mm:ss a zzzz"],["{1}, {0}",Op,"{1} 'at' {0}",Op],[".",",",";","%","+","-","E","\xd7","\u2030","\u221e","NaN",":"],["#,##0.###","#,##0%","\xa4#,##0.00","#E0"],"USD","$","US Dollar",{},"ltr",function ice(n){const e=Math.floor(Math.abs(n)),i=n.toString().replace(/^[^.]*\.?/,"").length;return 1===e&&0===i?1:5}];let S0={};function Da(n){const t=function oce(n){return n.toLowerCase().replace(/_/g,"-")}(n);let e=oH(t);if(e)return e;const i=t.split("-")[0];if(e=oH(i),e)return e;if("en"===i)return rce;throw new dt(701,!1)}function oH(n){return n in S0||(S0[n]=wi.ng&&wi.ng.common&&wi.ng.common.locales&&wi.ng.common.locales[n]),S0[n]}var lo=function(n){return n[n.LocaleId=0]="LocaleId",n[n.DayPeriodsFormat=1]="DayPeriodsFormat",n[n.DayPeriodsStandalone=2]="DayPeriodsStandalone",n[n.DaysFormat=3]="DaysFormat",n[n.DaysStandalone=4]="DaysStandalone",n[n.MonthsFormat=5]="MonthsFormat",n[n.MonthsStandalone=6]="MonthsStandalone",n[n.Eras=7]="Eras",n[n.FirstDayOfWeek=8]="FirstDayOfWeek",n[n.WeekendRange=9]="WeekendRange",n[n.DateFormat=10]="DateFormat",n[n.TimeFormat=11]="TimeFormat",n[n.DateTimeFormat=12]="DateTimeFormat",n[n.NumberSymbols=13]="NumberSymbols",n[n.NumberFormats=14]="NumberFormats",n[n.CurrencyCode=15]="CurrencyCode",n[n.CurrencySymbol=16]="CurrencySymbol",n[n.CurrencyName=17]="CurrencyName",n[n.Currencies=18]="Currencies",n[n.Directionality=19]="Directionality",n[n.PluralCase=20]="PluralCase",n[n.ExtraData=21]="ExtraData",n}(lo||{});const T0="en-US";let sH=T0;function We(n,t,e,i){const r=Pt(),o=Gi(),s=gr();return Wk(o,r,r[ri],s,n,t,i),We}function Wk(n,t,e,i,r,o,s){const a=$u(i),c=n.firstCreatePass&&J8(n),d=t[Gr],u=Z8(t);let h=!0;if(3&i.type||s){const y=Zs(i,t),_=s?s(y):y,b=u.length,M=s?E=>s(xr(E[i.index])):i.index;let C=null;if(!s&&a&&(C=function tde(n,t,e,i){const r=n.cleanup;if(null!=r)for(let o=0;ol?a[l]:null}"string"==typeof s&&(o+=2)}return null}(n,t,r,i.index)),null!==C)(C.__ngLastListenerFn__||C).__ngNextListenerFn__=o,C.__ngLastListenerFn__=o,h=!1;else{o=PH(i,t,d,o,!1);const E=e.listen(_,r,o);u.push(o,E),c&&c.push(r,M,b,b+1)}}else o=PH(i,t,d,o,!1);const f=i.outputs;let A;if(h&&null!==f&&(A=f[r])){const y=A.length;if(y)for(let _=0;_-1?Ta(n.index,t):t);let l=BH(t,e,i,s),c=o.__ngNextListenerFn__;for(;c;)l=BH(t,e,c,s)&&l,c=c.__ngNextListenerFn__;return r&&!1===l&&s.preventDefault(),l}}function He(n=1){return function Ug(n){return(oi.lFrame.contextLView=function fs(n,t){for(;n>0;)t=t[ao],n--;return t}(n,oi.lFrame.contextLView))[Gr]}(n)}function nde(n,t){let e=null;const i=function Vx(n){const t=n.attrs;if(null!=t){const e=t.indexOf(5);if(!(1&e))return t[e+1]}return null}(n);for(let r=0;r(zs(!0),function PD(n,t){return n.createText(t)}(t[ri],i));function Mr(n){return cn("",n,""),Mr}function cn(n,t,e){const i=Pt(),r=g0(i,n,t,e);return r!==Ti&&sh(i,Fs(),r),cn}function lh(n,t,e,i,r){const o=Pt(),s=_0(o,n,t,e,i,r);return s!==Ti&&sh(o,Fs(),s),lh}function $k(n,t,e,i,r,o,s,a,l){const c=Pt(),d=function v0(n,t,e,i,r,o,s,a,l,c){const u=bc(n,pc(),e,r,s,l);return Ac(4),u?t+ci(e)+i+ci(r)+o+ci(s)+a+ci(l)+c:Ti}(c,n,t,e,i,r,o,s,a,l);return d!==Ti&&sh(c,Fs(),d),$k}function ed(n,t,e){Q6(t)&&(t=t());const i=Pt();return ts(i,Dl(),t)&&tl(Gi(),Wr(),i,n,t,i[ri],e,!1),ed}function jd(n,t){const e=Q6(n);return e&&n.set(t),e}function td(n,t){const e=Pt(),i=Gi(),r=gr();return Wk(i,e,e[ri],r,n,t),td}function jk(n,t,e,i,r){if(n=$n(n),Array.isArray(n))for(let o=0;o>20;if(Gu(n)||!n.multi){const f=new qc(c,r,$),A=Kk(l,t,r?d:d+h,u);-1===A?(Tv(yp(a,s),o,l),Xk(o,n,t.length),t.push(l),a.directiveStart++,a.directiveEnd++,r&&(a.providerIndexes+=1048576),e.push(f),s.push(f)):(e[A]=f,s[A]=f)}else{const f=Kk(l,t,d+h,u),A=Kk(l,t,d,d+h),_=A>=0&&e[A];if(r&&!_||!r&&!(f>=0&&e[f])){Tv(yp(a,s),o,l);const b=function yde(n,t,e,i,r){const o=new qc(n,e,$);return o.multi=[],o.index=t,o.componentProviders=0,o9(o,r,i&&!e),o}(r?vde:bde,e.length,r,i,c);!r&&_&&(e[A].providerFactory=b),Xk(o,n,t.length,0),t.push(l),a.directiveStart++,a.directiveEnd++,r&&(a.providerIndexes+=1048576),e.push(b),s.push(b)}else Xk(o,n,f>-1?f:A,o9(e[r?A:f],c,!r&&i));!r&&i&&_&&e[A].componentProviders++}}}function Xk(n,t,e,i){const r=Gu(t),o=function yF(n){return!!n.useClass}(t);if(r||o){const l=(o?$n(t.useClass):t).prototype.ngOnDestroy;if(l){const c=n.destroyHooks||(n.destroyHooks=[]);if(!r&&t.multi){const d=c.indexOf(e);-1===d?c.push(e,[i,l]):c[d+1].push(i,l)}else c.push(e,l)}}}function o9(n,t,e){return e&&n.componentProviders++,n.multi.push(t)-1}function Kk(n,t,e,i){for(let r=e;r{e.providersResolver=(i,r)=>function _de(n,t,e){const i=Gi();if(i.firstCreatePass){const r=Tl(n);jk(e,i.data,i.blueprint,r,!0),jk(t,i.data,i.blueprint,r,!1)}}(i,r?r(n):n,t)}}let wde=(()=>{class n{constructor(e){this._injector=e,this.cachedInjectors=new Map}getOrCreateStandaloneInjector(e){if(!e.standalone)return null;if(!this.cachedInjectors.has(e)){const i=wf(0,e.type),r=i.length>0?function r7(n,t,e=null){return new i7({providers:n,parent:t,debugName:e,runEnvironmentInitializers:!0}).injector}([i],this._injector,`Standalone[${e.type.name}]`):null;this.cachedInjectors.set(e,r)}return this.cachedInjectors.get(e)}ngOnDestroy(){try{for(const e of this.cachedInjectors.values())null!==e&&e.destroy()}finally{this.cachedInjectors.clear()}}static{this.\u0275prov=Bt({token:n,providedIn:"environment",factory:()=>new n(ge(Ea))})}}return n})();function Or(n){qd("NgStandalone"),n.getStandaloneInjector=t=>t.get(wde).getOrCreateStandaloneInjector(n)}function IM(n,t,e){const i=n.\u0275cmp;i.directiveDefs=qu(t,!1),i.pipeDefs=qu(e,!0)}function ch(n,t,e){const i=Qs()+n,r=Pt();return r[i]===Ti?Gd(r,i,e?t.call(e):t()):function ly(n,t){return n[t]}(r,i)}function rl(n,t,e,i,r){return c9(Pt(),Qs(),n,t,e,i,r)}function vy(n,t){const e=n[t];return e===Ti?void 0:e}function l9(n,t,e,i,r,o){const s=t+e;return ts(n,s,r)?Gd(n,s+1,o?i.call(o,r):i(r)):vy(n,s+1)}function c9(n,t,e,i,r,o,s){const a=t+e;return Pp(n,a,r,o)?Gd(n,a+2,s?i.call(s,r,o):i(r,o)):vy(n,a+2)}function $e(n,t){const e=Gi();let i;const r=n+gi;e.firstCreatePass?(i=function Dde(n,t){if(t)for(let e=t.length-1;e>=0;e--){const i=t[e];if(n===i.name)return i}}(t,e.pipeRegistry),e.data[r]=i,i.onDestroy&&(e.destroyHooks??=[]).push(r,i.onDestroy)):i=e.data[r];const o=i.factory||(i.factory=wl(i.type)),a=la($);try{const l=zg(!1),c=o();return zg(l),function sde(n,t,e,i){e>=n.data.length&&(n.data[e]=null,n.blueprint[e]=null),t[e]=i}(e,Pt(),r,c),c}finally{la(a)}}function rt(n,t,e){const i=n+gi,r=Pt(),o=Sf(r,i);return yy(r,i)?l9(r,Qs(),t,o.transform,e,o):o.transform(e)}function Mo(n,t,e,i){const r=n+gi,o=Pt(),s=Sf(o,r);return yy(o,r)?c9(o,Qs(),t,s.transform,e,i,s):s.transform(e,i)}function f9(n,t,e,i,r,o){const s=n+gi,a=Pt(),l=Sf(a,s);return yy(a,s)?function u9(n,t,e,i,r,o,s,a,l){const c=t+e;return bc(n,c,r,o,s,a)?Gd(n,c+4,l?i.call(l,r,o,s,a):i(r,o,s,a)):vy(n,c+4)}(a,Qs(),t,l.transform,e,i,r,o,l):l.transform(e,i,r,o)}function yy(n,t){return n[rn].data[t].pure}function Qf(n,t){return tM(n,t)}const B9=new ut(""),BM=new ut("");let oB,iB=(()=>{class n{constructor(e,i,r){this._ngZone=e,this.registry=i,this._pendingCount=0,this._isZoneStable=!0,this._callbacks=[],this.taskTrackingZone=null,oB||(function Sue(n){oB=n}(r),r.addToWindow(i)),this._watchAngularEvents(),e.run(()=>{this.taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{kn.assertNotInAngularZone(),queueMicrotask(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error("pending async requests below zero");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())queueMicrotask(()=>{for(;0!==this._callbacks.length;){let e=this._callbacks.pop();clearTimeout(e.timeoutId),e.doneCb()}});else{let e=this.getPendingTasks();this._callbacks=this._callbacks.filter(i=>!i.updateCb||!i.updateCb(e)||(clearTimeout(i.timeoutId),!1))}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(e=>({source:e.source,creationLocation:e.creationLocation,data:e.data})):[]}addCallback(e,i,r){let o=-1;i&&i>0&&(o=setTimeout(()=>{this._callbacks=this._callbacks.filter(s=>s.timeoutId!==o),e()},i)),this._callbacks.push({doneCb:e,timeoutId:o,updateCb:r})}whenStable(e,i,r){if(r&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(e,i,r),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}registerApplication(e){this.registry.registerApplication(e,this)}unregisterApplication(e){this.registry.unregisterApplication(e)}findProviders(e,i,r){return[]}static{this.\u0275fac=function(i){return new(i||n)(ge(kn),ge(rB),ge(BM))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac})}}return n})(),rB=(()=>{class n{constructor(){this._applications=new Map}registerApplication(e,i){this._applications.set(e,i)}unregisterApplication(e){this._applications.delete(e)}unregisterAllApplications(){this._applications.clear()}getTestability(e){return this._applications.get(e)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(e,i=!0){return oB?.findTestabilityInTree(this,e,i)??null}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac,providedIn:"platform"})}}return n})();function PM(n){return!!n&&"function"==typeof n.then}function P9(n){return!!n&&"function"==typeof n.subscribe}const R9=new ut("");let sB=(()=>{class n{constructor(){this.initialized=!1,this.done=!1,this.donePromise=new Promise((e,i)=>{this.resolve=e,this.reject=i}),this.appInits=qt(R9,{optional:!0})??[]}runInitializers(){if(this.initialized)return;const e=[];for(const r of this.appInits){const o=r();if(PM(o))e.push(o);else if(P9(o)){const s=new Promise((a,l)=>{o.subscribe({complete:a,error:l})});e.push(s)}}const i=()=>{this.done=!0,this.resolve()};Promise.all(e).then(()=>{i()}).catch(r=>{this.reject(r)}),0===e.length&&i(),this.initialized=!0}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();const L9=new ut("");function U9(n,t){return Array.isArray(t)?t.reduce(U9,n):{...n,...t}}let zf=(()=>{class n{constructor(){this._bootstrapListeners=[],this._runningTick=!1,this._destroyed=!1,this._destroyListeners=[],this._views=[],this.internalErrorHandler=qt(eh),this.afterRenderEffectManager=qt(iy),this.externalTestViews=new Set,this.beforeRender=new Hn,this.afterTick=new Hn,this.componentTypes=[],this.components=[],this.isStable=qt(Bp).hasPendingTasks.pipe(Ge(e=>!e)),this._injector=qt(Ea)}get destroyed(){return this._destroyed}get injector(){return this._injector}bootstrap(e,i){const r=e instanceof m6;if(!this._injector.get(sB).done)throw!r&&function zu(n){const t=Oi(n)||Ko(n)||Vo(n);return null!==t&&t.standalone}(e),new dt(405,!1);let s;s=r?e:this._injector.get(l0).resolveComponentFactory(e),this.componentTypes.push(s.componentType);const a=function Tue(n){return n.isBoundToModule}(s)?void 0:this._injector.get(kp),c=s.create(Jo.NULL,[],i||s.selector,a),d=c.location.nativeElement,u=c.injector.get(B9,null);return u?.registerApplication(d),c.onDestroy(()=>{this.detachView(c.hostView),RM(this.components,c),u?.unregisterApplication(d)}),this._loadComponent(c),c}tick(){this._tick(!0)}_tick(e){if(this._runningTick)throw new dt(101,!1);const i=T(null);try{this._runningTick=!0,this.detectChangesInAttachedViews(e)}catch(r){this.internalErrorHandler(r)}finally{this.afterTick.next(),this._runningTick=!1,T(i)}}detectChangesInAttachedViews(e){let i=0;const r=this.afterRenderEffectManager;for(;;){if(i===r6)throw new dt(103,!1);if(e){const o=0===i;this.beforeRender.next(o);for(let{_lView:s,notifyErrorHandler:a}of this._views)Fue(s,o,a)}if(i++,r.executeInternalCallbacks(),![...this.externalTestViews.keys(),...this._views].some(({_lView:o})=>aB(o))&&(r.execute(),![...this.externalTestViews.keys(),...this._views].some(({_lView:o})=>aB(o))))break}}attachView(e){const i=e;this._views.push(i),i.attachToAppRef(this)}detachView(e){const i=e;RM(this._views,i),i.detachFromAppRef()}_loadComponent(e){this.attachView(e.hostView),this.tick(),this.components.push(e);const i=this._injector.get(L9,[]);[...this._bootstrapListeners,...i].forEach(r=>r(e))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(e=>e()),this._views.slice().forEach(e=>e.destroy())}finally{this._destroyed=!0,this._views=[],this._bootstrapListeners=[],this._destroyListeners=[]}}onDestroy(e){return this._destroyListeners.push(e),()=>RM(this._destroyListeners,e)}destroy(){if(this._destroyed)throw new dt(406,!1);const e=this._injector;e.destroy&&!e.destroyed&&e.destroy()}get viewCount(){return this._views.length}warnIfDestroyed(){}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();function RM(n,t){const e=n.indexOf(t);e>-1&&n.splice(e,1)}function Fue(n,t,e){!t&&!aB(n)||function Due(n,t,e){let i;e?(i=0,n[qn]|=1024):i=64&n[qn]?0:1,eM(n,t,i)}(n,e,t)}function aB(n){return Xu(n)}let Rue=(()=>{class n{constructor(){this.zone=qt(kn),this.applicationRef=qt(zf)}initialize(){this._onMicrotaskEmptySubscription||(this._onMicrotaskEmptySubscription=this.zone.onMicrotaskEmpty.subscribe({next:()=>{this.zone.run(()=>{this.applicationRef.tick()})}}))}ngOnDestroy(){this._onMicrotaskEmptySubscription?.unsubscribe()}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();function Lue(){const n=qt(kn),t=qt(Ia);return e=>n.runOutsideAngular(()=>t.handleError(e))}let Nue=(()=>{class n{constructor(){this.subscription=new Kn,this.initialized=!1,this.zone=qt(kn),this.pendingTasks=qt(Bp)}initialize(){if(this.initialized)return;this.initialized=!0;let e=null;!this.zone.isStable&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(e=this.pendingTasks.add()),this.zone.runOutsideAngular(()=>{this.subscription.add(this.zone.onStable.subscribe(()=>{kn.assertNotInAngularZone(),queueMicrotask(()=>{null!==e&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(this.pendingTasks.remove(e),e=null)})}))}),this.subscription.add(this.zone.onUnstable.subscribe(()=>{kn.assertInAngularZone(),e??=this.pendingTasks.add()}))}ngOnDestroy(){this.subscription.unsubscribe()}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();const Xd=new ut("",{providedIn:"root",factory:()=>qt(Xd,nr.Optional|nr.SkipSelf)||function Uue(){return typeof $localize<"u"&&$localize.locale||T0}()}),lB=new ut("");let z9=(()=>{class n{constructor(e){this._injector=e,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(e,i){const r=function Lse(n="zone.js",t){return"noop"===n?new v6:"zone.js"===n?new kn(t):n}(i?.ngZone,function Q9(n){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:n?.eventCoalescing??!1,shouldCoalesceRunChangeDetection:n?.runCoalescing??!1}}({eventCoalescing:i?.ngZoneEventCoalescing,runCoalescing:i?.ngZoneRunCoalescing}));return r.run(()=>{const o=function Iae(n,t,e){return new xk(n,t,e)}(e.moduleType,this.injector,function V9(n){return[{provide:kn,useFactory:n},{provide:Bd,multi:!0,useFactory:()=>{const t=qt(Rue,{optional:!0});return()=>t.initialize()}},{provide:Bd,multi:!0,useFactory:()=>{const t=qt(Nue);return()=>{t.initialize()}}},{provide:eh,useFactory:Lue}]}(()=>r)),s=o.injector.get(Ia,null);return r.runOutsideAngular(()=>{const a=r.onError.subscribe({next:l=>{s.handleError(l)}});o.onDestroy(()=>{RM(this._modules,o),a.unsubscribe()})}),function N9(n,t,e){try{const i=e();return PM(i)?i.catch(r=>{throw t.runOutsideAngular(()=>n.handleError(r)),r}):i}catch(i){throw t.runOutsideAngular(()=>n.handleError(i)),i}}(s,r,()=>{const a=o.injector.get(sB);return a.runInitializers(),a.donePromise.then(()=>(function aH(n){"string"==typeof n&&(sH=n.toLowerCase().replace(/_/g,"-"))}(o.injector.get(Xd,T0)||T0),this._moduleDoBootstrap(o),o))})})}bootstrapModule(e,i=[]){const r=U9({},i);return function Pue(n,t,e){const i=new Ck(e);return Promise.resolve(i)}(0,0,e).then(o=>this.bootstrapModuleFactory(o,r))}_moduleDoBootstrap(e){const i=e.injector.get(zf);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach(r=>i.bootstrap(r));else{if(!e.instance.ngDoBootstrap)throw new dt(-403,!1);e.instance.ngDoBootstrap(i)}this._modules.push(e)}onDestroy(e){this._destroyListeners.push(e)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new dt(404,!1);this._modules.slice().forEach(i=>i.destroy()),this._destroyListeners.forEach(i=>i());const e=this._injector.get(lB,null);e&&(e.forEach(i=>i()),e.clear()),this._destroyed=!0}get destroyed(){return this._destroyed}static{this.\u0275fac=function(i){return new(i||n)(ge(Jo))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac,providedIn:"platform"})}}return n})(),qf=null;const q9=new ut("");function G9(n,t,e=[]){const i=`Platform: ${t}`,r=new ut(i);return(o=[])=>{let s=cB();if(!s||s.injector.get(q9,!1)){const a=[...e,...o,{provide:r,useValue:!0}];n?n(a):function Que(n){if(qf&&!qf.get(q9,!1))throw new dt(400,!1);(function O9(){!function Sn(n){Qt=n}(()=>{throw new dt(600,!1)})})(),qf=n;const t=n.get(z9);(function $9(n){n.get(KU,null)?.forEach(e=>e())})(n)}(function W9(n=[],t){return Jo.create({name:t,providers:[{provide:ev,useValue:"platform"},{provide:lB,useValue:new Set([()=>qf=null])},...n]})}(a,i))}return function zue(n){const t=cB();if(!t)throw new dt(401,!1);return t}()}}function cB(){return qf?.get(z9)??null}let _o=(()=>{class n{static{this.__NG_ELEMENT_ID__=Gue}}return n})();function Gue(n){return function Wue(n,t,e){if(Sl(n)&&!e){const i=Ta(n.index,t);return new Zv(i,i)}return 47&n.type?new Zv(t[go],t):null}(gr(),Pt(),!(16&~n))}class tV{constructor(){}supports(t){return t instanceof Map||Mk(t)}create(){return new ehe}}class ehe{constructor(){this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}get isDirty(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}forEachItem(t){let e;for(e=this._mapHead;null!==e;e=e._next)t(e)}forEachPreviousItem(t){let e;for(e=this._previousMapHead;null!==e;e=e._nextPrevious)t(e)}forEachChangedItem(t){let e;for(e=this._changesHead;null!==e;e=e._nextChanged)t(e)}forEachAddedItem(t){let e;for(e=this._additionsHead;null!==e;e=e._nextAdded)t(e)}forEachRemovedItem(t){let e;for(e=this._removalsHead;null!==e;e=e._nextRemoved)t(e)}diff(t){if(t){if(!(t instanceof Map||Mk(t)))throw new dt(900,!1)}else t=new Map;return this.check(t)?this:null}onDestroy(){}check(t){this._reset();let e=this._mapHead;if(this._appendAfter=null,this._forEach(t,(i,r)=>{if(e&&e.key===r)this._maybeAddToChanges(e,i),this._appendAfter=e,e=e._next;else{const o=this._getOrCreateRecordForKey(r,i);e=this._insertBeforeOrAppend(e,o)}}),e){e._prev&&(e._prev._next=null),this._removalsHead=e;for(let i=e;null!==i;i=i._nextRemoved)i===this._mapHead&&(this._mapHead=null),this._records.delete(i.key),i._nextRemoved=i._next,i.previousValue=i.currentValue,i.currentValue=null,i._prev=null,i._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(t,e){if(t){const i=t._prev;return e._next=t,e._prev=i,t._prev=e,i&&(i._next=e),t===this._mapHead&&(this._mapHead=e),this._appendAfter=t,t}return this._appendAfter?(this._appendAfter._next=e,e._prev=this._appendAfter):this._mapHead=e,this._appendAfter=e,null}_getOrCreateRecordForKey(t,e){if(this._records.has(t)){const r=this._records.get(t);this._maybeAddToChanges(r,e);const o=r._prev,s=r._next;return o&&(o._next=s),s&&(s._prev=o),r._next=null,r._prev=null,r}const i=new the(t);return this._records.set(t,i),i.currentValue=e,this._addToAdditions(i),i}_reset(){if(this.isDirty){let t;for(this._previousMapHead=this._mapHead,t=this._previousMapHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._changesHead;null!==t;t=t._nextChanged)t.previousValue=t.currentValue;for(t=this._additionsHead;null!=t;t=t._nextAdded)t.previousValue=t.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(t,e){Object.is(e,t.currentValue)||(t.previousValue=t.currentValue,t.currentValue=e,this._addToChanges(t))}_addToAdditions(t){null===this._additionsHead?this._additionsHead=this._additionsTail=t:(this._additionsTail._nextAdded=t,this._additionsTail=t)}_addToChanges(t){null===this._changesHead?this._changesHead=this._changesTail=t:(this._changesTail._nextChanged=t,this._changesTail=t)}_forEach(t,e){t instanceof Map?t.forEach(e):Object.keys(t).forEach(i=>e(t[i],i))}}class the{constructor(t){this.key=t,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}function iV(){return new UM([new tV])}let UM=(()=>{class n{static{this.\u0275prov=Bt({token:n,providedIn:"root",factory:iV})}constructor(e){this.factories=e}static create(e,i){if(i){const r=i.factories.slice();e=e.concat(r)}return new n(e)}static extend(e){return{provide:n,useFactory:i=>n.create(e,i||iV()),deps:[[n,new vf,new Uu]]}}find(e){const i=this.factories.find(r=>r.supports(e));if(i)return i;throw new dt(901,!1)}}return n})();const rhe=G9(null,"core",[]);let ohe=(()=>{class n{constructor(e){}static{this.\u0275fac=function(i){return new(i||n)(ge(zf))}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({})}}return n})();function Zn(n){return"boolean"==typeof n?n:null!=n&&"false"!==n}function ha(n,t=NaN){return isNaN(parseFloat(n))||isNaN(Number(n))?t:Number(n)}function MV(n,t){qd("NgSignals");const e=function he(n){const t=Object.create(pt);t.computation=n;const e=()=>{if(ee(t),X(t),t.value===Ne)throw t.error;return t.value};return e[q]=t,e}(n);return t?.equal&&(e[q].equal=t.equal),e}function EV(n){const t=T(null);try{return n()}finally{T(t)}}const Rhe=new ut("",{providedIn:"root",factory:()=>qt(Lhe)});let Lhe=(()=>{class n{static{this.\u0275prov=Bt({token:n,providedIn:"root",factory:()=>new Ohe})}}return n})();class Ohe{constructor(){this.queuedEffectCount=0,this.queues=new Map,this.pendingTasks=qt(Bp),this.taskId=null}scheduleEffect(t){if(this.enqueue(t),null===this.taskId){const e=this.taskId=this.pendingTasks.add();queueMicrotask(()=>{this.flush(),this.pendingTasks.remove(e),this.taskId=null})}}enqueue(t){const e=t.creationZone;this.queues.has(e)||this.queues.set(e,new Set);const i=this.queues.get(e);i.has(t)||(this.queuedEffectCount++,i.add(t))}flush(){for(;this.queuedEffectCount>0;)for(const[t,e]of this.queues)null===t?this.flushQueue(e):t.run(()=>this.flushQueue(e))}flushQueue(t){for(const e of t)t.delete(e),this.queuedEffectCount--,e.run()}}class Nhe{constructor(t,e,i,r,o,s){this.scheduler=t,this.effectFn=e,this.creationZone=i,this.injector=o,this.watcher=function Kt(n,t,e){const i=Object.create(Yt);e&&(i.consumerAllowSignalWrites=!0),i.fn=n,i.schedule=t;const r=l=>{i.cleanupFn=l};return i.ref={notify:()=>De(i),run:()=>{if(null===i.fn)return;if(function N(){return D}())throw new Error("Schedulers cannot synchronously execute watches while scheduling.");if(i.dirty=!1,i.hasRun&&!Le(i))return;i.hasRun=!0;const l=Je(i);try{i.cleanupFn(),i.cleanupFn=In,i.fn(r)}finally{tt(i,l)}},cleanup:()=>i.cleanupFn(),destroy:()=>function s(l){(function o(l){return null===l.fn&&null===l.schedule})(l)||(gt(l),l.cleanupFn(),l.fn=null,l.schedule=null,l.cleanupFn=In)}(i),[q]:i},i.ref}(a=>this.runEffect(a),()=>this.schedule(),s),this.unregisterOnDestroy=r?.onDestroy(()=>this.destroy())}runEffect(t){try{this.effectFn(t)}catch(e){this.injector.get(Ia,null,{optional:!0})?.handleError(e)}}run(){this.watcher.run()}schedule(){this.scheduler.scheduleEffect(this)}destroy(){this.watcher.destroy(),this.unregisterOnDestroy?.()}}let TV=null;function Gf(){return TV}class Hhe{}const Bi=new ut("");let IV=(()=>{class n{historyGo(e){throw new Error("")}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Bt({token:n,factory:()=>qt(Vhe),providedIn:"platform"})}}return n})(),Vhe=(()=>{class n extends IV{constructor(){super(),this._doc=qt(Bi),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return Gf().getBaseHref(this._doc)}onPopState(e){const i=Gf().getGlobalEventTarget(this._doc,"window");return i.addEventListener("popstate",e,!1),()=>i.removeEventListener("popstate",e)}onHashChange(e){const i=Gf().getGlobalEventTarget(this._doc,"window");return i.addEventListener("hashchange",e,!1),()=>i.removeEventListener("hashchange",e)}get href(){return this._location.href}get protocol(){return this._location.protocol}get hostname(){return this._location.hostname}get port(){return this._location.port}get pathname(){return this._location.pathname}get search(){return this._location.search}get hash(){return this._location.hash}set pathname(e){this._location.pathname=e}pushState(e,i,r){this._history.pushState(e,i,r)}replaceState(e,i,r){this._history.replaceState(e,i,r)}forward(){this._history.forward()}back(){this._history.back()}historyGo(e=0){this._history.go(e)}getState(){return this._history.state}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Bt({token:n,factory:()=>new n,providedIn:"platform"})}}return n})();function FV(n,t){if(0==n.length)return t;if(0==t.length)return n;let e=0;return n.endsWith("/")&&e++,t.startsWith("/")&&e++,2==e?n+t.substring(1):1==e?n+t:n+"/"+t}function DV(n){const t=n.match(/#|\?|$/),e=t&&t.index||n.length;return n.slice(0,e-("/"===n[e-1]?1:0))+n.slice(e)}function Up(n){return n&&"?"!==n[0]?"?"+n:n}let _B=(()=>{class n{historyGo(e){throw new Error("")}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Bt({token:n,factory:()=>qt(zhe),providedIn:"root"})}}return n})();const Qhe=new ut("");let zhe=(()=>{class n extends _B{constructor(e,i){super(),this._platformLocation=e,this._removeListenerFns=[],this._baseHref=i??this._platformLocation.getBaseHrefFromDOM()??qt(Bi).location?.origin??""}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(e){this._removeListenerFns.push(this._platformLocation.onPopState(e),this._platformLocation.onHashChange(e))}getBaseHref(){return this._baseHref}prepareExternalUrl(e){return FV(this._baseHref,e)}path(e=!1){const i=this._platformLocation.pathname+Up(this._platformLocation.search),r=this._platformLocation.hash;return r&&e?`${i}${r}`:i}pushState(e,i,r,o){const s=this.prepareExternalUrl(r+Up(o));this._platformLocation.pushState(e,i,s)}replaceState(e,i,r,o){const s=this.prepareExternalUrl(r+Up(o));this._platformLocation.replaceState(e,i,s)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(e=0){this._platformLocation.historyGo?.(e)}static{this.\u0275fac=function(i){return new(i||n)(ge(IV),ge(Qhe,8))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),bB=(()=>{class n{constructor(e){this._subject=new Bn,this._urlChangeListeners=[],this._urlChangeSubscription=null,this._locationStrategy=e;const i=this._locationStrategy.getBaseHref();this._basePath=function Whe(n){if(new RegExp("^(https?:)?//").test(n)){const[,e]=n.split(/\/\/[^\/]+/);return e}return n}(DV(kV(i))),this._locationStrategy.onPopState(r=>{this._subject.emit({url:this.path(!0),pop:!0,state:r.state,type:r.type})})}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(e=!1){return this.normalize(this._locationStrategy.path(e))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(e,i=""){return this.path()==this.normalize(e+Up(i))}normalize(e){return n.stripTrailingSlash(function Ghe(n,t){if(!n||!t.startsWith(n))return t;const e=t.substring(n.length);return""===e||["/",";","?","#"].includes(e[0])?e:t}(this._basePath,kV(e)))}prepareExternalUrl(e){return e&&"/"!==e[0]&&(e="/"+e),this._locationStrategy.prepareExternalUrl(e)}go(e,i="",r=null){this._locationStrategy.pushState(r,"",e,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+Up(i)),r)}replaceState(e,i="",r=null){this._locationStrategy.replaceState(r,"",e,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+Up(i)),r)}forward(){this._locationStrategy.forward()}back(){this._locationStrategy.back()}historyGo(e=0){this._locationStrategy.historyGo?.(e)}onUrlChange(e){return this._urlChangeListeners.push(e),this._urlChangeSubscription??=this.subscribe(i=>{this._notifyUrlChangeListeners(i.url,i.state)}),()=>{const i=this._urlChangeListeners.indexOf(e);this._urlChangeListeners.splice(i,1),0===this._urlChangeListeners.length&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(e="",i){this._urlChangeListeners.forEach(r=>r(e,i))}subscribe(e,i,r){return this._subject.subscribe({next:e,error:i,complete:r})}static{this.normalizeQueryParams=Up}static{this.joinWithSlash=FV}static{this.stripTrailingSlash=DV}static{this.\u0275fac=function(i){return new(i||n)(ge(_B))}}static{this.\u0275prov=Bt({token:n,factory:()=>function qhe(){return new bB(ge(_B))}(),providedIn:"root"})}}return n})();function kV(n){return n.replace(/\/index.html$/,"")}var GM=function(n){return n[n.Decimal=0]="Decimal",n[n.Percent=1]="Percent",n[n.Currency=2]="Currency",n[n.Scientific=3]="Scientific",n}(GM||{}),B0=function(n){return n[n.Zero=0]="Zero",n[n.One=1]="One",n[n.Two=2]="Two",n[n.Few=3]="Few",n[n.Many=4]="Many",n[n.Other=5]="Other",n}(B0||{});const As={Decimal:0,Group:1,List:2,PercentSign:3,PlusSign:4,MinusSign:5,Exponential:6,SuperscriptingExponent:7,PerMille:8,Infinity:9,NaN:10,TimeSeparator:11,CurrencyDecimal:12,CurrencyGroup:13};function vc(n,t){const e=Da(n),i=e[lo.NumberSymbols][t];if(typeof i>"u"){if(t===As.CurrencyDecimal)return e[lo.NumberSymbols][As.Decimal];if(t===As.CurrencyGroup)return e[lo.NumberSymbols][As.Group]}return i}const efe=function rH(n){return Da(n)[lo.PluralCase]},bfe=/^(\d+)?\.((\d+)(-(\d+))?)?$/;function SB(n){const t=parseInt(n);if(isNaN(t))throw new Error("Invalid integer literal when parsing "+n);return t}let TB=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Bt({token:n,factory:function(i){let r=null;return i?r=new i:(o=ge(Xd),r=new Ife(o)),r;var o},providedIn:"root"})}}return n})();let Ife=(()=>{class n extends TB{constructor(e){super(),this.locale=e}getPluralCategory(e,i){switch(efe(i||this.locale)(e)){case B0.Zero:return"zero";case B0.One:return"one";case B0.Two:return"two";case B0.Few:return"few";case B0.Many:return"many";default:return"other"}}static{this.\u0275fac=function(i){return new(i||n)(ge(Xd))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac})}}return n})();function VV(n,t){t=encodeURIComponent(t);for(const e of n.split(";")){const i=e.indexOf("="),[r,o]=-1==i?[e,""]:[e.slice(0,i),e.slice(i+1)];if(r.trim()===t)return decodeURIComponent(o)}return null}const IB=/\s+/,QV=[];let Kd=(()=>{class n{constructor(e,i){this._ngEl=e,this._renderer=i,this.initialClasses=QV,this.stateMap=new Map}set klass(e){this.initialClasses=null!=e?e.trim().split(IB):QV}set ngClass(e){this.rawClass="string"==typeof e?e.trim().split(IB):e}ngDoCheck(){for(const i of this.initialClasses)this._updateState(i,!0);const e=this.rawClass;if(Array.isArray(e)||e instanceof Set)for(const i of e)this._updateState(i,!0);else if(null!=e)for(const i of Object.keys(e))this._updateState(i,!!e[i]);this._applyStateDiff()}_updateState(e,i){const r=this.stateMap.get(e);void 0!==r?(r.enabled!==i&&(r.changed=!0,r.enabled=i),r.touched=!0):this.stateMap.set(e,{enabled:i,changed:!0,touched:!0})}_applyStateDiff(){for(const e of this.stateMap){const i=e[0],r=e[1];r.changed?(this._toggleClass(i,r.enabled),r.changed=!1):r.touched||(r.enabled&&this._toggleClass(i,!1),this.stateMap.delete(i)),r.touched=!1}}_toggleClass(e,i){(e=e.trim()).length>0&&e.split(IB).forEach(r=>{i?this._renderer.addClass(this._ngEl.nativeElement,r):this._renderer.removeClass(this._ngEl.nativeElement,r)})}static{this.\u0275fac=function(i){return new(i||n)($(Vn),$(Ip))}}static{this.\u0275dir=$t({type:n,selectors:[["","ngClass",""]],inputs:{klass:[Ct.None,"class","klass"],ngClass:"ngClass"},standalone:!0})}}return n})(),Hp=(()=>{class n{constructor(e,i){this._viewContainer=e,this._context=new Bfe,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=i}set ngIf(e){this._context.$implicit=this._context.ngIf=e,this._updateView()}set ngIfThen(e){GV("ngIfThen",e),this._thenTemplateRef=e,this._thenViewRef=null,this._updateView()}set ngIfElse(e){GV("ngIfElse",e),this._elseTemplateRef=e,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngTemplateContextGuard(e,i){return!0}static{this.\u0275fac=function(i){return new(i||n)($(ua),$(Vl))}}static{this.\u0275dir=$t({type:n,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"},standalone:!0})}}return n})();class Bfe{constructor(){this.$implicit=null,this.ngIf=null}}function GV(n,t){if(t&&!t.createEmbeddedView)throw new Error(`${n} must be a TemplateRef, but received '${oo(t)}'.`)}class FB{constructor(t,e){this._viewContainerRef=t,this._templateRef=e,this._created=!1}create(){this._created=!0,this._viewContainerRef.createEmbeddedView(this._templateRef)}destroy(){this._created=!1,this._viewContainerRef.clear()}enforceState(t){t&&!this._created?this.create():!t&&this._created&&this.destroy()}}let kB=(()=>{class n{constructor(e){this._localization=e,this._caseViews={}}set ngPlural(e){this._updateView(e)}addCase(e,i){this._caseViews[e]=i}_updateView(e){this._clearViews();const r=function HV(n,t,e,i){let r=`=${n}`;if(t.indexOf(r)>-1||(r=e.getPluralCategory(n,i),t.indexOf(r)>-1))return r;if(t.indexOf("other")>-1)return"other";throw new Error(`No plural message found for value "${n}"`)}(e,Object.keys(this._caseViews),this._localization);this._activateView(this._caseViews[r])}_clearViews(){this._activeView&&this._activeView.destroy()}_activateView(e){e&&(this._activeView=e,this._activeView.create())}static{this.\u0275fac=function(i){return new(i||n)($(TB))}}static{this.\u0275dir=$t({type:n,selectors:[["","ngPlural",""]],inputs:{ngPlural:"ngPlural"},standalone:!0})}}return n})(),WV=(()=>{class n{constructor(e,i,r,o){this.value=e;const s=!isNaN(Number(e));o.addCase(s?`=${e}`:e,new FB(r,i))}static{this.\u0275fac=function(i){return new(i||n)(Ll("ngPluralCase"),$(Vl),$(ua),$(kB,1))}}static{this.\u0275dir=$t({type:n,selectors:[["","ngPluralCase",""]],standalone:!0})}}return n})(),P0=(()=>{class n{constructor(e,i,r){this._ngEl=e,this._differs=i,this._renderer=r,this._ngStyle=null,this._differ=null}set ngStyle(e){this._ngStyle=e,!this._differ&&e&&(this._differ=this._differs.find(e).create())}ngDoCheck(){if(this._differ){const e=this._differ.diff(this._ngStyle);e&&this._applyChanges(e)}}_setStyle(e,i){const[r,o]=e.split("."),s=-1===r.indexOf("-")?void 0:Nf.DashCase;null!=i?this._renderer.setStyle(this._ngEl.nativeElement,r,o?`${i}${o}`:i,s):this._renderer.removeStyle(this._ngEl.nativeElement,r,s)}_applyChanges(e){e.forEachRemovedItem(i=>this._setStyle(i.key,null)),e.forEachAddedItem(i=>this._setStyle(i.key,i.currentValue)),e.forEachChangedItem(i=>this._setStyle(i.key,i.currentValue))}static{this.\u0275fac=function(i){return new(i||n)($(Vn),$(UM),$(Ip))}}static{this.\u0275dir=$t({type:n,selectors:[["","ngStyle",""]],inputs:{ngStyle:"ngStyle"},standalone:!0})}}return n})(),Sy=(()=>{class n{constructor(e){this._viewContainerRef=e,this._viewRef=null,this.ngTemplateOutletContext=null,this.ngTemplateOutlet=null,this.ngTemplateOutletInjector=null}ngOnChanges(e){if(this._shouldRecreateView(e)){const i=this._viewContainerRef;if(this._viewRef&&i.remove(i.indexOf(this._viewRef)),!this.ngTemplateOutlet)return void(this._viewRef=null);const r=this._createContextForwardProxy();this._viewRef=i.createEmbeddedView(this.ngTemplateOutlet,r,{injector:this.ngTemplateOutletInjector??void 0})}}_shouldRecreateView(e){return!!e.ngTemplateOutlet||!!e.ngTemplateOutletInjector}_createContextForwardProxy(){return new Proxy({},{set:(e,i,r)=>!!this.ngTemplateOutletContext&&Reflect.set(this.ngTemplateOutletContext,i,r),get:(e,i,r)=>{if(this.ngTemplateOutletContext)return Reflect.get(this.ngTemplateOutletContext,i,r)}})}static{this.\u0275fac=function(i){return new(i||n)($(ua))}}static{this.\u0275dir=$t({type:n,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet",ngTemplateOutletInjector:"ngTemplateOutletInjector"},standalone:!0,features:[wr]})}}return n})();function id(n,t){return new dt(2100,!1)}class Ofe{createSubscription(t,e){return EV(()=>t.subscribe({next:e,error:i=>{throw i}}))}dispose(t){EV(()=>t.unsubscribe())}}class Nfe{createSubscription(t,e){return t.then(e,i=>{throw i})}dispose(t){}}const Ufe=new Nfe,Hfe=new Ofe;let Yn=(()=>{class n{constructor(e){this._latestValue=null,this.markForCheckOnValueUpdate=!0,this._subscription=null,this._obj=null,this._strategy=null,this._ref=e}ngOnDestroy(){this._subscription&&this._dispose(),this._ref=null}transform(e){if(!this._obj){if(e)try{this.markForCheckOnValueUpdate=!1,this._subscribe(e)}finally{this.markForCheckOnValueUpdate=!0}return this._latestValue}return e!==this._obj?(this._dispose(),this.transform(e)):this._latestValue}_subscribe(e){this._obj=e,this._strategy=this._selectStrategy(e),this._subscription=this._strategy.createSubscription(e,i=>this._updateLatestValue(e,i))}_selectStrategy(e){if(PM(e))return Ufe;if(P9(e))return Hfe;throw id()}_dispose(){this._strategy.dispose(this._subscription),this._latestValue=null,this._subscription=null,this._obj=null}_updateLatestValue(e,i){e===this._obj&&(this._latestValue=i,this.markForCheckOnValueUpdate&&this._ref?.markForCheck())}static{this.\u0275fac=function(i){return new(i||n)($(_o,16))}}static{this.\u0275pipe=dr({name:"async",type:n,pure:!1,standalone:!0})}}return n})();const Qfe=/(?:[0-9A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF38\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A])\S*/g;let $V=(()=>{class n{transform(e){if(null==e)return null;if("string"!=typeof e)throw id();return e.replace(Qfe,i=>i[0].toUpperCase()+i.slice(1).toLowerCase())}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=dr({name:"titlecase",type:n,pure:!0,standalone:!0})}}return n})(),nE=(()=>{class n{constructor(e){this.differs=e,this.keyValues=[],this.compareFn=jV}transform(e,i=jV){if(!e||!(e instanceof Map)&&"object"!=typeof e)return null;this.differ??=this.differs.find(e).create();const r=this.differ.diff(e),o=i!==this.compareFn;return r&&(this.keyValues=[],r.forEachItem(s=>{this.keyValues.push(function Zfe(n,t){return{key:n,value:t}}(s.key,s.currentValue))})),(r||o)&&(this.keyValues.sort(i),this.compareFn=i),this.keyValues}static{this.\u0275fac=function(i){return new(i||n)($(UM,16))}}static{this.\u0275pipe=dr({name:"keyvalue",type:n,pure:!1,standalone:!0})}}return n})();function jV(n,t){const e=n.key,i=t.key;if(e===i)return 0;if(void 0===e)return 1;if(void 0===i)return-1;if(null===e)return 1;if(null===i)return-1;if("string"==typeof e&&"string"==typeof i)return e{class n{constructor(e){this._locale=e}transform(e,i,r){if(!function BB(n){return!(null==n||""===n||n!=n)}(e))return null;r||=this._locale;try{return function Mfe(n,t,e){return function MB(n,t,e,i,r,o,s=!1){let a="",l=!1;if(isFinite(n)){let c=function Sfe(n){let i,r,o,s,a,t=Math.abs(n)+"",e=0;for((r=t.indexOf("."))>-1&&(t=t.replace(".","")),(o=t.search(/e/i))>0?(r<0&&(r=o),r+=+t.slice(o+1),t=t.substring(0,o)):r<0&&(r=t.length),o=0;"0"===t.charAt(o);o++);if(o===(a=t.length))i=[0],r=1;else{for(a--;"0"===t.charAt(a);)a--;for(r-=o,i=[],s=0;o<=a;o++,s++)i[s]=Number(t.charAt(o))}return r>22&&(i=i.splice(0,21),e=r-1,r=1),{digits:i,exponent:e,integerLen:r}}(n);s&&(c=function Efe(n){if(0===n.digits[0])return n;const t=n.digits.length-n.integerLen;return n.exponent?n.exponent+=2:(0===t?n.digits.push(0,0):1===t&&n.digits.push(0),n.integerLen+=2),n}(c));let d=t.minInt,u=t.minFrac,h=t.maxFrac;if(o){const M=o.match(bfe);if(null===M)throw new Error(`${o} is not a valid digit info`);const C=M[1],E=M[3],I=M[5];null!=C&&(d=SB(C)),null!=E&&(u=SB(E)),null!=I?h=SB(I):null!=E&&u>h&&(h=u)}!function Tfe(n,t,e){if(t>e)throw new Error(`The minimum number of digits after fraction (${t}) is higher than the maximum (${e}).`);let i=n.digits,r=i.length-n.integerLen;const o=Math.min(Math.max(t,r),e);let s=o+n.integerLen,a=i[s];if(s>0){i.splice(Math.max(n.integerLen,s));for(let u=s;u=5)if(s-1<0){for(let u=0;u>s;u--)i.unshift(0),n.integerLen++;i.unshift(1),n.integerLen++}else i[s-1]++;for(;r=c?A.pop():l=!1),h>=10?1:0},0);d&&(i.unshift(d),n.integerLen++)}(c,u,h);let f=c.digits,A=c.integerLen;const y=c.exponent;let _=[];for(l=f.every(M=>!M);A0?_=f.splice(A,f.length):(_=f,f=[0]);const b=[];for(f.length>=t.lgSize&&b.unshift(f.splice(-t.lgSize,f.length).join(""));f.length>t.gSize;)b.unshift(f.splice(-t.gSize,f.length).join(""));f.length&&b.unshift(f.join("")),a=b.join(vc(e,i)),_.length&&(a+=vc(e,r)+_.join("")),y&&(a+=vc(e,As.Exponential)+"+"+y)}else a=vc(e,As.Infinity);return a=n<0&&!l?t.negPre+a+t.negSuf:t.posPre+a+t.posSuf,a}(n,function EB(n,t="-"){const e={minInt:1,minFrac:0,maxFrac:0,posPre:"",posSuf:"",negPre:"",negSuf:"",gSize:0,lgSize:0},i=n.split(";"),r=i[0],o=i[1],s=-1!==r.indexOf(".")?r.split("."):[r.substring(0,r.lastIndexOf("0")+1),r.substring(r.lastIndexOf("0")+1)],a=s[0],l=s[1]||"";e.posPre=a.substring(0,a.indexOf("#"));for(let d=0;d{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({})}}return n})();const XV="browser";function KV(n){return"server"===n}class YV{}class Bme extends Hhe{constructor(){super(...arguments),this.supportsDOMEvents=!0}}class LB extends Bme{static makeCurrent(){!function Uhe(n){TV??=n}(new LB)}onAndCancel(t,e,i){return t.addEventListener(e,i),()=>{t.removeEventListener(e,i)}}dispatchEvent(t,e){t.dispatchEvent(e)}remove(t){t.parentNode&&t.parentNode.removeChild(t)}createElement(t,e){return(e=e||this.getDefaultDocument()).createElement(t)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(t){return t.nodeType===Node.ELEMENT_NODE}isShadowRoot(t){return t instanceof DocumentFragment}getGlobalEventTarget(t,e){return"window"===e?window:"document"===e?t:"body"===e?t.body:null}getBaseHref(t){const e=function Pme(){return Dy=Dy||document.querySelector("base"),Dy?Dy.getAttribute("href"):null}();return null==e?null:function Rme(n){return new URL(n,document.baseURI).pathname}(e)}resetBaseElement(){Dy=null}getUserAgent(){return window.navigator.userAgent}getCookie(t){return VV(document.cookie,t)}}let Dy=null,Ome=(()=>{class n{build(){return new XMLHttpRequest}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac})}}return n})();const OB=new ut("");let sQ=(()=>{class n{constructor(e,i){this._zone=i,this._eventNameToPlugin=new Map,e.forEach(r=>{r.manager=this}),this._plugins=e.slice().reverse()}addEventListener(e,i,r){return this._findPluginFor(i).addEventListener(e,i,r)}getZone(){return this._zone}_findPluginFor(e){let i=this._eventNameToPlugin.get(e);if(i)return i;if(i=this._plugins.find(o=>o.supports(e)),!i)throw new dt(5101,!1);return this._eventNameToPlugin.set(e,i),i}static{this.\u0275fac=function(i){return new(i||n)(ge(OB),ge(kn))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac})}}return n})();class aQ{constructor(t){this._doc=t}}const NB="ng-app-id";let lQ=(()=>{class n{constructor(e,i,r,o={}){this.doc=e,this.appId=i,this.nonce=r,this.platformId=o,this.styleRef=new Map,this.hostNodes=new Set,this.styleNodesInDOM=this.collectServerRenderedStyles(),this.platformIsServer=KV(o),this.resetHostNodes()}addStyles(e){for(const i of e)1===this.changeUsageCount(i,1)&&this.onStyleAdded(i)}removeStyles(e){for(const i of e)this.changeUsageCount(i,-1)<=0&&this.onStyleRemoved(i)}ngOnDestroy(){const e=this.styleNodesInDOM;e&&(e.forEach(i=>i.remove()),e.clear());for(const i of this.getAllStyles())this.onStyleRemoved(i);this.resetHostNodes()}addHost(e){this.hostNodes.add(e);for(const i of this.getAllStyles())this.addStyleToHost(e,i)}removeHost(e){this.hostNodes.delete(e)}getAllStyles(){return this.styleRef.keys()}onStyleAdded(e){for(const i of this.hostNodes)this.addStyleToHost(i,e)}onStyleRemoved(e){const i=this.styleRef;i.get(e)?.elements?.forEach(r=>r.remove()),i.delete(e)}collectServerRenderedStyles(){const e=this.doc.head?.querySelectorAll(`style[${NB}="${this.appId}"]`);if(e?.length){const i=new Map;return e.forEach(r=>{null!=r.textContent&&i.set(r.textContent,r)}),i}return null}changeUsageCount(e,i){const r=this.styleRef;if(r.has(e)){const o=r.get(e);return o.usage+=i,o.usage}return r.set(e,{usage:i,elements:[]}),i}getStyleElement(e,i){const r=this.styleNodesInDOM,o=r?.get(i);if(o?.parentNode===e)return r.delete(i),o.removeAttribute(NB),o;{const s=this.doc.createElement("style");return this.nonce&&s.setAttribute("nonce",this.nonce),s.textContent=i,this.platformIsServer&&s.setAttribute(NB,this.appId),e.appendChild(s),s}}addStyleToHost(e,i){const r=this.getStyleElement(e,i),o=this.styleRef,s=o.get(i)?.elements;s?s.push(r):o.set(i,{elements:[r],usage:1})}resetHostNodes(){const e=this.hostNodes;e.clear(),e.add(this.doc.head)}static{this.\u0275fac=function(i){return new(i||n)(ge(Bi),ge(Lv),ge(uD,8),ge(Lf))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac})}}return n})();const UB={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",math:"http://www.w3.org/1998/MathML/"},HB=/%COMP%/g,Vme=new ut("",{providedIn:"root",factory:()=>!0});function dQ(n,t){return t.map(e=>e.replace(HB,n))}let VB=(()=>{class n{constructor(e,i,r,o,s,a,l,c=null){this.eventManager=e,this.sharedStylesHost=i,this.appId=r,this.removeStylesOnCompDestroy=o,this.doc=s,this.platformId=a,this.ngZone=l,this.nonce=c,this.rendererByCompId=new Map,this.platformIsServer=KV(a),this.defaultRenderer=new QB(e,s,l,this.platformIsServer)}createRenderer(e,i){if(!e||!i)return this.defaultRenderer;this.platformIsServer&&i.encapsulation===ca.ShadowDom&&(i={...i,encapsulation:ca.Emulated});const r=this.getOrCreateRenderer(e,i);return r instanceof hQ?r.applyToHost(e):r instanceof zB&&r.applyStyles(),r}getOrCreateRenderer(e,i){const r=this.rendererByCompId;let o=r.get(i.id);if(!o){const s=this.doc,a=this.ngZone,l=this.eventManager,c=this.sharedStylesHost,d=this.removeStylesOnCompDestroy,u=this.platformIsServer;switch(i.encapsulation){case ca.Emulated:o=new hQ(l,c,i,this.appId,d,s,a,u);break;case ca.ShadowDom:return new Gme(l,c,e,i,s,a,this.nonce,u);default:o=new zB(l,c,i,d,s,a,u)}r.set(i.id,o)}return o}ngOnDestroy(){this.rendererByCompId.clear()}static{this.\u0275fac=function(i){return new(i||n)(ge(sQ),ge(lQ),ge(Lv),ge(Vme),ge(Bi),ge(Lf),ge(kn),ge(uD))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac})}}return n})();class QB{constructor(t,e,i,r){this.eventManager=t,this.doc=e,this.ngZone=i,this.platformIsServer=r,this.data=Object.create(null),this.throwOnSyntheticProps=!0,this.destroyNode=null}destroy(){}createElement(t,e){return e?this.doc.createElementNS(UB[e]||e,t):this.doc.createElement(t)}createComment(t){return this.doc.createComment(t)}createText(t){return this.doc.createTextNode(t)}appendChild(t,e){(uQ(t)?t.content:t).appendChild(e)}insertBefore(t,e,i){t&&(uQ(t)?t.content:t).insertBefore(e,i)}removeChild(t,e){t&&t.removeChild(e)}selectRootElement(t,e){let i="string"==typeof t?this.doc.querySelector(t):t;if(!i)throw new dt(-5104,!1);return e||(i.textContent=""),i}parentNode(t){return t.parentNode}nextSibling(t){return t.nextSibling}setAttribute(t,e,i,r){if(r){e=r+":"+e;const o=UB[r];o?t.setAttributeNS(o,e,i):t.setAttribute(e,i)}else t.setAttribute(e,i)}removeAttribute(t,e,i){if(i){const r=UB[i];r?t.removeAttributeNS(r,e):t.removeAttribute(`${i}:${e}`)}else t.removeAttribute(e)}addClass(t,e){t.classList.add(e)}removeClass(t,e){t.classList.remove(e)}setStyle(t,e,i,r){r&(Nf.DashCase|Nf.Important)?t.style.setProperty(e,i,r&Nf.Important?"important":""):t.style[e]=i}removeStyle(t,e,i){i&Nf.DashCase?t.style.removeProperty(e):t.style[e]=""}setProperty(t,e,i){null!=t&&(t[e]=i)}setValue(t,e){t.nodeValue=e}listen(t,e,i){if("string"==typeof t&&!(t=Gf().getGlobalEventTarget(this.doc,t)))throw new Error(`Unsupported event target ${t} for event ${e}`);return this.eventManager.addEventListener(t,e,this.decoratePreventDefault(i))}decoratePreventDefault(t){return e=>{if("__ngUnwrap__"===e)return t;!1===(this.platformIsServer?this.ngZone.runGuarded(()=>t(e)):t(e))&&e.preventDefault()}}}function uQ(n){return"TEMPLATE"===n.tagName&&void 0!==n.content}class Gme extends QB{constructor(t,e,i,r,o,s,a,l){super(t,o,s,l),this.sharedStylesHost=e,this.hostEl=i,this.shadowRoot=i.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const c=dQ(r.id,r.styles);for(const d of c){const u=document.createElement("style");a&&u.setAttribute("nonce",a),u.textContent=d,this.shadowRoot.appendChild(u)}}nodeOrShadowRoot(t){return t===this.hostEl?this.shadowRoot:t}appendChild(t,e){return super.appendChild(this.nodeOrShadowRoot(t),e)}insertBefore(t,e,i){return super.insertBefore(this.nodeOrShadowRoot(t),e,i)}removeChild(t,e){return super.removeChild(this.nodeOrShadowRoot(t),e)}parentNode(t){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(t)))}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}}class zB extends QB{constructor(t,e,i,r,o,s,a,l){super(t,o,s,a),this.sharedStylesHost=e,this.removeStylesOnCompDestroy=r,this.styles=l?dQ(l,i.styles):i.styles}applyStyles(){this.sharedStylesHost.addStyles(this.styles)}destroy(){this.removeStylesOnCompDestroy&&this.sharedStylesHost.removeStyles(this.styles)}}class hQ extends zB{constructor(t,e,i,r,o,s,a,l){const c=r+"-"+i.id;super(t,e,i,o,s,a,l,c),this.contentAttr=function Qme(n){return"_ngcontent-%COMP%".replace(HB,n)}(c),this.hostAttr=function zme(n){return"_nghost-%COMP%".replace(HB,n)}(c)}applyToHost(t){this.applyStyles(),this.setAttribute(t,this.hostAttr,"")}createElement(t,e){const i=super.createElement(t,e);return super.setAttribute(i,this.contentAttr,""),i}}let Wme=(()=>{class n extends aQ{constructor(e){super(e)}supports(e){return!0}addEventListener(e,i,r){return e.addEventListener(i,r,!1),()=>this.removeEventListener(e,i,r)}removeEventListener(e,i,r){return e.removeEventListener(i,r)}static{this.\u0275fac=function(i){return new(i||n)(ge(Bi))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac})}}return n})();const fQ=["alt","control","meta","shift"],$me={"\b":"Backspace","\t":"Tab","\x7f":"Delete","\x1b":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},jme={alt:n=>n.altKey,control:n=>n.ctrlKey,meta:n=>n.metaKey,shift:n=>n.shiftKey};let Xme=(()=>{class n extends aQ{constructor(e){super(e)}supports(e){return null!=n.parseEventName(e)}addEventListener(e,i,r){const o=n.parseEventName(i),s=n.eventCallback(o.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Gf().onAndCancel(e,o.domEventName,s))}static parseEventName(e){const i=e.toLowerCase().split("."),r=i.shift();if(0===i.length||"keydown"!==r&&"keyup"!==r)return null;const o=n._normalizeKey(i.pop());let s="",a=i.indexOf("code");if(a>-1&&(i.splice(a,1),s="code."),fQ.forEach(c=>{const d=i.indexOf(c);d>-1&&(i.splice(d,1),s+=c+".")}),s+=o,0!=i.length||0===o.length)return null;const l={};return l.domEventName=r,l.fullKey=s,l}static matchEventFullKeyCode(e,i){let r=$me[e.key]||e.key,o="";return i.indexOf("code.")>-1&&(r=e.code,o="code."),!(null==r||!r)&&(r=r.toLowerCase()," "===r?r="space":"."===r&&(r="dot"),fQ.forEach(s=>{s!==r&&(0,jme[s])(e)&&(o+=s+".")}),o+=r,o===i)}static eventCallback(e,i,r){return o=>{n.matchEventFullKeyCode(o,e)&&r.runGuarded(()=>i(o))}}static _normalizeKey(e){return"esc"===e?"escape":e}static{this.\u0275fac=function(i){return new(i||n)(ge(Bi))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac})}}return n})();const Jme=G9(rhe,"browser",[{provide:Lf,useValue:XV},{provide:KU,useValue:function Kme(){LB.makeCurrent()},multi:!0},{provide:Bi,useFactory:function Zme(){return function ire(n){dD=n}(document),document},deps:[]}]),epe=new ut(""),AQ=[{provide:BM,useClass:class Lme{addToWindow(t){wi.getAngularTestability=(i,r=!0)=>{const o=t.findTestabilityInTree(i,r);if(null==o)throw new dt(5103,!1);return o},wi.getAllAngularTestabilities=()=>t.getAllTestabilities(),wi.getAllAngularRootElements=()=>t.getAllRootElements(),wi.frameworkStabilizers||(wi.frameworkStabilizers=[]),wi.frameworkStabilizers.push(i=>{const r=wi.getAllAngularTestabilities();let o=r.length;const s=function(){o--,0==o&&i()};r.forEach(a=>{a.whenStable(s)})})}findTestabilityInTree(t,e,i){return null==e?null:t.getTestability(e)??(i?Gf().isShadowRoot(e)?this.findTestabilityInTree(t,e.host,!0):this.findTestabilityInTree(t,e.parentElement,!0):null)}},deps:[]},{provide:B9,useClass:iB,deps:[kn,rB,BM]},{provide:iB,useClass:iB,deps:[kn,rB,BM]}],gQ=[{provide:ev,useValue:"root"},{provide:Ia,useFactory:function Yme(){return new Ia},deps:[]},{provide:OB,useClass:Wme,multi:!0,deps:[Bi,kn,Lf]},{provide:OB,useClass:Xme,multi:!0,deps:[Bi]},VB,lQ,sQ,{provide:ok,useExisting:VB},{provide:YV,useClass:Ome,deps:[]},[]];let _Q=(()=>{class n{constructor(e){}static withServerTransition(e){return{ngModule:n,providers:[{provide:Lv,useValue:e.appId}]}}static{this.\u0275fac=function(i){return new(i||n)(ge(epe,12))}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({providers:[...gQ,...AQ],imports:[gn,ohe]})}}return n})();function wQ(n){return n&&tn(n.schedule)}function GB(n){return n[n.length-1]}function WB(n){return tn(GB(n))?n.pop():void 0}function By(n){return wQ(GB(n))?n.pop():void 0}function Wf(n){return this instanceof Wf?(this.v=n,this):new Wf(n)}function EQ(n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e,t=n[Symbol.asyncIterator];return t?t.call(n):(n=function KB(n){var t="function"==typeof Symbol&&Symbol.iterator,e=t&&n[t],i=0;if(e)return e.call(n);if(n&&"number"==typeof n.length)return{next:function(){return n&&i>=n.length&&(n=void 0),{value:n&&n[i++],done:!n}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}(n),e={},i("next"),i("throw"),i("return"),e[Symbol.asyncIterator]=function(){return this},e);function i(o){e[o]=n[o]&&function(s){return new Promise(function(a,l){!function r(o,s,a,l){Promise.resolve(l).then(function(c){o({value:c,done:a})},s)}(a,l,(s=n[o](s)).done,s.value)})}}}"function"==typeof SuppressedError&&SuppressedError;const YB=n=>n&&"number"==typeof n.length&&"function"!=typeof n;function SQ(n){return tn(n?.then)}function TQ(n){return tn(n[Bu])}function IQ(n){return Symbol.asyncIterator&&tn(n?.[Symbol.asyncIterator])}function FQ(n){return new TypeError(`You provided ${null!==n&&"object"==typeof n?"an invalid object":`'${n}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`)}const DQ=function Spe(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}();function kQ(n){return tn(n?.[DQ])}function BQ(n){return function MQ(n,t,e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,i=e.apply(n,t||[]),o=[];return r={},s("next"),s("throw"),s("return"),r[Symbol.asyncIterator]=function(){return this},r;function s(h){i[h]&&(r[h]=function(f){return new Promise(function(A,y){o.push([h,f,A,y])>1||a(h,f)})})}function a(h,f){try{!function l(h){h.value instanceof Wf?Promise.resolve(h.value.v).then(c,d):u(o[0][2],h)}(i[h](f))}catch(A){u(o[0][3],A)}}function c(h){a("next",h)}function d(h){a("throw",h)}function u(h,f){h(f),o.shift(),o.length&&a(o[0][0],o[0][1])}}(this,arguments,function*(){const e=n.getReader();try{for(;;){const{value:i,done:r}=yield Wf(e.read());if(r)return yield Wf(void 0);yield yield Wf(i)}}finally{e.releaseLock()}})}function PQ(n){return tn(n?.getReader)}function rs(n){if(n instanceof Yi)return n;if(null!=n){if(TQ(n))return function Tpe(n){return new Yi(t=>{const e=n[Bu]();if(tn(e.subscribe))return e.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}(n);if(YB(n))return function Ipe(n){return new Yi(t=>{for(let e=0;e{n.then(e=>{t.closed||(t.next(e),t.complete())},e=>t.error(e)).then(null,Ao)})}(n);if(IQ(n))return RQ(n);if(kQ(n))return function Dpe(n){return new Yi(t=>{for(const e of n)if(t.next(e),t.closed)return;t.complete()})}(n);if(PQ(n))return function kpe(n){return RQ(BQ(n))}(n)}throw FQ(n)}function RQ(n){return new Yi(t=>{(function Bpe(n,t){var e,i,r,o;return function xQ(n,t,e,i){return new(e||(e=Promise))(function(o,s){function a(d){try{c(i.next(d))}catch(u){s(u)}}function l(d){try{c(i.throw(d))}catch(u){s(u)}}function c(d){d.done?o(d.value):function r(o){return o instanceof e?o:new e(function(s){s(o)})}(d.value).then(a,l)}c((i=i.apply(n,t||[])).next())})}(this,void 0,void 0,function*(){try{for(e=EQ(n);!(i=yield e.next()).done;)if(t.next(i.value),t.closed)return}catch(s){r={error:s}}finally{try{i&&!i.done&&(o=e.return)&&(yield o.call(e))}finally{if(r)throw r.error}}t.complete()})})(n,t).catch(e=>t.error(e))})}function hh(n,t,e,i=0,r=!1){const o=t.schedule(function(){e(),r?n.add(this.schedule(null,i)):this.unsubscribe()},i);if(n.add(o),!r)return o}function ZB(n,t=0){return le((e,i)=>{e.subscribe(Be(i,r=>hh(i,n,()=>i.next(r),t),()=>hh(i,n,()=>i.complete(),t),r=>hh(i,n,()=>i.error(r),t)))})}function LQ(n,t=0){return le((e,i)=>{i.add(n.schedule(()=>e.subscribe(i),t))})}function OQ(n,t){if(!n)throw new Error("Iterable cannot be null");return new Yi(e=>{hh(e,t,()=>{const i=n[Symbol.asyncIterator]();hh(e,t,()=>{i.next().then(r=>{r.done?e.complete():e.next(r.value)})},0,!0)})})}function Vp(n,t){return t?function Upe(n,t){if(null!=n){if(TQ(n))return function Ppe(n,t){return rs(n).pipe(LQ(t),ZB(t))}(n,t);if(YB(n))return function Lpe(n,t){return new Yi(e=>{let i=0;return t.schedule(function(){i===n.length?e.complete():(e.next(n[i++]),e.closed||this.schedule())})})}(n,t);if(SQ(n))return function Rpe(n,t){return rs(n).pipe(LQ(t),ZB(t))}(n,t);if(IQ(n))return OQ(n,t);if(kQ(n))return function Ope(n,t){return new Yi(e=>{let i;return hh(e,t,()=>{i=n[DQ](),hh(e,t,()=>{let r,o;try{({value:r,done:o}=i.next())}catch(s){return void e.error(s)}o?e.complete():e.next(r)},0,!0)}),()=>tn(i?.return)&&i.return()})}(n,t);if(PQ(n))return function Npe(n,t){return OQ(BQ(n),t)}(n,t)}throw FQ(n)}(n,t):rs(n)}function ol(...n){return Vp(n,By(n))}function $f(n,t,e=1/0){return tn(t)?$f((i,r)=>Ge((o,s)=>t(i,o,r,s))(rs(n(i,r))),e):("number"==typeof t&&(e=t),le((i,r)=>function Hpe(n,t,e,i,r,o,s,a){const l=[];let c=0,d=0,u=!1;const h=()=>{u&&!l.length&&!c&&t.complete()},f=y=>c{o&&t.next(y),c++;let _=!1;rs(e(y,d++)).subscribe(Be(t,b=>{r?.(b),o?f(b):t.next(b)},()=>{_=!0},void 0,()=>{if(_)try{for(c--;l.length&&cA(b)):A(b)}h()}catch(b){t.error(b)}}))};return n.subscribe(Be(t,f,()=>{u=!0,h()})),()=>{a?.()}}(i,r,n,e)))}function Vi(n,t){return le((e,i)=>{let r=0;e.subscribe(Be(i,o=>n.call(t,o,r++)&&i.next(o)))})}function JB(n){return le((t,e)=>{try{t.subscribe(e)}finally{e.add(n)}})}function fh(n,t){return le((e,i)=>{let r=null,o=0,s=!1;const a=()=>s&&!r&&i.complete();e.subscribe(Be(i,l=>{r?.unsubscribe();let c=0;const d=o++;rs(n(l,d)).subscribe(r=Be(i,u=>i.next(t?t(l,u,d,c++):u),()=>{r=null,a()}))},()=>{s=!0,a()}))})}class sE{}class aE{}class wc{constructor(t){this.normalizedNames=new Map,this.lazyUpdate=null,t?"string"==typeof t?this.lazyInit=()=>{this.headers=new Map,t.split("\n").forEach(e=>{const i=e.indexOf(":");if(i>0){const r=e.slice(0,i),o=r.toLowerCase(),s=e.slice(i+1).trim();this.maybeSetNormalizedName(r,o),this.headers.has(o)?this.headers.get(o).push(s):this.headers.set(o,[s])}})}:typeof Headers<"u"&&t instanceof Headers?(this.headers=new Map,t.forEach((e,i)=>{this.setHeaderEntries(i,e)})):this.lazyInit=()=>{this.headers=new Map,Object.entries(t).forEach(([e,i])=>{this.setHeaderEntries(e,i)})}:this.headers=new Map}has(t){return this.init(),this.headers.has(t.toLowerCase())}get(t){this.init();const e=this.headers.get(t.toLowerCase());return e&&e.length>0?e[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(t){return this.init(),this.headers.get(t.toLowerCase())||null}append(t,e){return this.clone({name:t,value:e,op:"a"})}set(t,e){return this.clone({name:t,value:e,op:"s"})}delete(t,e){return this.clone({name:t,value:e,op:"d"})}maybeSetNormalizedName(t,e){this.normalizedNames.has(e)||this.normalizedNames.set(e,t)}init(){this.lazyInit&&(this.lazyInit instanceof wc?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(t=>this.applyUpdate(t)),this.lazyUpdate=null))}copyFrom(t){t.init(),Array.from(t.headers.keys()).forEach(e=>{this.headers.set(e,t.headers.get(e)),this.normalizedNames.set(e,t.normalizedNames.get(e))})}clone(t){const e=new wc;return e.lazyInit=this.lazyInit&&this.lazyInit instanceof wc?this.lazyInit:this,e.lazyUpdate=(this.lazyUpdate||[]).concat([t]),e}applyUpdate(t){const e=t.name.toLowerCase();switch(t.op){case"a":case"s":let i=t.value;if("string"==typeof i&&(i=[i]),0===i.length)return;this.maybeSetNormalizedName(t.name,e);const r=("a"===t.op?this.headers.get(e):void 0)||[];r.push(...i),this.headers.set(e,r);break;case"d":const o=t.value;if(o){let s=this.headers.get(e);if(!s)return;s=s.filter(a=>-1===o.indexOf(a)),0===s.length?(this.headers.delete(e),this.normalizedNames.delete(e)):this.headers.set(e,s)}else this.headers.delete(e),this.normalizedNames.delete(e)}}setHeaderEntries(t,e){const i=(Array.isArray(e)?e:[e]).map(o=>o.toString()),r=t.toLowerCase();this.headers.set(r,i),this.maybeSetNormalizedName(t,r)}forEach(t){this.init(),Array.from(this.normalizedNames.keys()).forEach(e=>t(this.normalizedNames.get(e),this.headers.get(e)))}}class Qpe{encodeKey(t){return NQ(t)}encodeValue(t){return NQ(t)}decodeKey(t){return decodeURIComponent(t)}decodeValue(t){return decodeURIComponent(t)}}const qpe=/%(\d[a-f0-9])/gi,Gpe={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function NQ(n){return encodeURIComponent(n).replace(qpe,(t,e)=>Gpe[e]??t)}function lE(n){return`${n}`}class jf{constructor(t={}){if(this.updates=null,this.cloneFrom=null,this.encoder=t.encoder||new Qpe,t.fromString){if(t.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=function zpe(n,t){const e=new Map;return n.length>0&&n.replace(/^\?/,"").split("&").forEach(r=>{const o=r.indexOf("="),[s,a]=-1==o?[t.decodeKey(r),""]:[t.decodeKey(r.slice(0,o)),t.decodeValue(r.slice(o+1))],l=e.get(s)||[];l.push(a),e.set(s,l)}),e}(t.fromString,this.encoder)}else t.fromObject?(this.map=new Map,Object.keys(t.fromObject).forEach(e=>{const i=t.fromObject[e],r=Array.isArray(i)?i.map(lE):[lE(i)];this.map.set(e,r)})):this.map=null}has(t){return this.init(),this.map.has(t)}get(t){this.init();const e=this.map.get(t);return e?e[0]:null}getAll(t){return this.init(),this.map.get(t)||null}keys(){return this.init(),Array.from(this.map.keys())}append(t,e){return this.clone({param:t,value:e,op:"a"})}appendAll(t){const e=[];return Object.keys(t).forEach(i=>{const r=t[i];Array.isArray(r)?r.forEach(o=>{e.push({param:i,value:o,op:"a"})}):e.push({param:i,value:r,op:"a"})}),this.clone(e)}set(t,e){return this.clone({param:t,value:e,op:"s"})}delete(t,e){return this.clone({param:t,value:e,op:"d"})}toString(){return this.init(),this.keys().map(t=>{const e=this.encoder.encodeKey(t);return this.map.get(t).map(i=>e+"="+this.encoder.encodeValue(i)).join("&")}).filter(t=>""!==t).join("&")}clone(t){const e=new jf({encoder:this.encoder});return e.cloneFrom=this.cloneFrom||this,e.updates=(this.updates||[]).concat(t),e}init(){null===this.map&&(this.map=new Map),null!==this.cloneFrom&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(t=>this.map.set(t,this.cloneFrom.map.get(t))),this.updates.forEach(t=>{switch(t.op){case"a":case"s":const e=("a"===t.op?this.map.get(t.param):void 0)||[];e.push(lE(t.value)),this.map.set(t.param,e);break;case"d":if(void 0===t.value){this.map.delete(t.param);break}{let i=this.map.get(t.param)||[];const r=i.indexOf(lE(t.value));-1!==r&&i.splice(r,1),i.length>0?this.map.set(t.param,i):this.map.delete(t.param)}}}),this.cloneFrom=this.updates=null)}}class Wpe{constructor(){this.map=new Map}set(t,e){return this.map.set(t,e),this}get(t){return this.map.has(t)||this.map.set(t,t.defaultValue()),this.map.get(t)}delete(t){return this.map.delete(t),this}has(t){return this.map.has(t)}keys(){return this.map.keys()}}function UQ(n){return typeof ArrayBuffer<"u"&&n instanceof ArrayBuffer}function HQ(n){return typeof Blob<"u"&&n instanceof Blob}function VQ(n){return typeof FormData<"u"&&n instanceof FormData}class Py{constructor(t,e,i,r){let o;if(this.url=e,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=t.toUpperCase(),function $pe(n){switch(n){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}(this.method)||r?(this.body=void 0!==i?i:null,o=r):o=i,o&&(this.reportProgress=!!o.reportProgress,this.withCredentials=!!o.withCredentials,o.responseType&&(this.responseType=o.responseType),o.headers&&(this.headers=o.headers),o.context&&(this.context=o.context),o.params&&(this.params=o.params),this.transferCache=o.transferCache),this.headers??=new wc,this.context??=new Wpe,this.params){const s=this.params.toString();if(0===s.length)this.urlWithParams=e;else{const a=e.indexOf("?");this.urlWithParams=e+(-1===a?"?":ah.set(f,t.setHeaders[f]),c)),t.setParams&&(d=Object.keys(t.setParams).reduce((h,f)=>h.set(f,t.setParams[f]),d)),new Py(e,i,s,{params:d,headers:c,context:u,reportProgress:l,responseType:r,withCredentials:a,transferCache:o})}}var Xf=function(n){return n[n.Sent=0]="Sent",n[n.UploadProgress=1]="UploadProgress",n[n.ResponseHeader=2]="ResponseHeader",n[n.DownloadProgress=3]="DownloadProgress",n[n.Response=4]="Response",n[n.User=5]="User",n}(Xf||{});class e3{constructor(t,e=Ry.Ok,i="OK"){this.headers=t.headers||new wc,this.status=void 0!==t.status?t.status:e,this.statusText=t.statusText||i,this.url=t.url||null,this.ok=this.status>=200&&this.status<300}}class cE extends e3{constructor(t={}){super(t),this.type=Xf.ResponseHeader}clone(t={}){return new cE({headers:t.headers||this.headers,status:void 0!==t.status?t.status:this.status,statusText:t.statusText||this.statusText,url:t.url||this.url||void 0})}}class Qp extends e3{constructor(t={}){super(t),this.type=Xf.Response,this.body=void 0!==t.body?t.body:null}clone(t={}){return new Qp({body:void 0!==t.body?t.body:this.body,headers:t.headers||this.headers,status:void 0!==t.status?t.status:this.status,statusText:t.statusText||this.statusText,url:t.url||this.url||void 0})}}class R0 extends e3{constructor(t){super(t,0,"Unknown Error"),this.name="HttpErrorResponse",this.ok=!1,this.message=this.status>=200&&this.status<300?`Http failure during parsing for ${t.url||"(unknown url)"}`:`Http failure response for ${t.url||"(unknown url)"}: ${t.status} ${t.statusText}`,this.error=t.error||null}}var Ry=function(n){return n[n.Continue=100]="Continue",n[n.SwitchingProtocols=101]="SwitchingProtocols",n[n.Processing=102]="Processing",n[n.EarlyHints=103]="EarlyHints",n[n.Ok=200]="Ok",n[n.Created=201]="Created",n[n.Accepted=202]="Accepted",n[n.NonAuthoritativeInformation=203]="NonAuthoritativeInformation",n[n.NoContent=204]="NoContent",n[n.ResetContent=205]="ResetContent",n[n.PartialContent=206]="PartialContent",n[n.MultiStatus=207]="MultiStatus",n[n.AlreadyReported=208]="AlreadyReported",n[n.ImUsed=226]="ImUsed",n[n.MultipleChoices=300]="MultipleChoices",n[n.MovedPermanently=301]="MovedPermanently",n[n.Found=302]="Found",n[n.SeeOther=303]="SeeOther",n[n.NotModified=304]="NotModified",n[n.UseProxy=305]="UseProxy",n[n.Unused=306]="Unused",n[n.TemporaryRedirect=307]="TemporaryRedirect",n[n.PermanentRedirect=308]="PermanentRedirect",n[n.BadRequest=400]="BadRequest",n[n.Unauthorized=401]="Unauthorized",n[n.PaymentRequired=402]="PaymentRequired",n[n.Forbidden=403]="Forbidden",n[n.NotFound=404]="NotFound",n[n.MethodNotAllowed=405]="MethodNotAllowed",n[n.NotAcceptable=406]="NotAcceptable",n[n.ProxyAuthenticationRequired=407]="ProxyAuthenticationRequired",n[n.RequestTimeout=408]="RequestTimeout",n[n.Conflict=409]="Conflict",n[n.Gone=410]="Gone",n[n.LengthRequired=411]="LengthRequired",n[n.PreconditionFailed=412]="PreconditionFailed",n[n.PayloadTooLarge=413]="PayloadTooLarge",n[n.UriTooLong=414]="UriTooLong",n[n.UnsupportedMediaType=415]="UnsupportedMediaType",n[n.RangeNotSatisfiable=416]="RangeNotSatisfiable",n[n.ExpectationFailed=417]="ExpectationFailed",n[n.ImATeapot=418]="ImATeapot",n[n.MisdirectedRequest=421]="MisdirectedRequest",n[n.UnprocessableEntity=422]="UnprocessableEntity",n[n.Locked=423]="Locked",n[n.FailedDependency=424]="FailedDependency",n[n.TooEarly=425]="TooEarly",n[n.UpgradeRequired=426]="UpgradeRequired",n[n.PreconditionRequired=428]="PreconditionRequired",n[n.TooManyRequests=429]="TooManyRequests",n[n.RequestHeaderFieldsTooLarge=431]="RequestHeaderFieldsTooLarge",n[n.UnavailableForLegalReasons=451]="UnavailableForLegalReasons",n[n.InternalServerError=500]="InternalServerError",n[n.NotImplemented=501]="NotImplemented",n[n.BadGateway=502]="BadGateway",n[n.ServiceUnavailable=503]="ServiceUnavailable",n[n.GatewayTimeout=504]="GatewayTimeout",n[n.HttpVersionNotSupported=505]="HttpVersionNotSupported",n[n.VariantAlsoNegotiates=506]="VariantAlsoNegotiates",n[n.InsufficientStorage=507]="InsufficientStorage",n[n.LoopDetected=508]="LoopDetected",n[n.NotExtended=510]="NotExtended",n[n.NetworkAuthenticationRequired=511]="NetworkAuthenticationRequired",n}(Ry||{});function t3(n,t){return{body:t,headers:n.headers,context:n.context,observe:n.observe,params:n.params,reportProgress:n.reportProgress,responseType:n.responseType,withCredentials:n.withCredentials,transferCache:n.transferCache}}let Ly=(()=>{class n{constructor(e){this.handler=e}request(e,i,r={}){let o;if(e instanceof Py)o=e;else{let l,c;l=r.headers instanceof wc?r.headers:new wc(r.headers),r.params&&(c=r.params instanceof jf?r.params:new jf({fromObject:r.params})),o=new Py(e,i,void 0!==r.body?r.body:null,{headers:l,context:r.context,params:c,reportProgress:r.reportProgress,responseType:r.responseType||"json",withCredentials:r.withCredentials,transferCache:r.transferCache})}const s=ol(o).pipe(function Vpe(n,t){return tn(t)?$f(n,t,1):$f(n,1)}(l=>this.handler.handle(l)));if(e instanceof Py||"events"===r.observe)return s;const a=s.pipe(Vi(l=>l instanceof Qp));switch(r.observe||"body"){case"body":switch(o.responseType){case"arraybuffer":return a.pipe(Ge(l=>{if(null!==l.body&&!(l.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return l.body}));case"blob":return a.pipe(Ge(l=>{if(null!==l.body&&!(l.body instanceof Blob))throw new Error("Response is not a Blob.");return l.body}));case"text":return a.pipe(Ge(l=>{if(null!==l.body&&"string"!=typeof l.body)throw new Error("Response is not a string.");return l.body}));default:return a.pipe(Ge(l=>l.body))}case"response":return a;default:throw new Error(`Unreachable: unhandled observe type ${r.observe}}`)}}delete(e,i={}){return this.request("DELETE",e,i)}get(e,i={}){return this.request("GET",e,i)}head(e,i={}){return this.request("HEAD",e,i)}jsonp(e,i){return this.request("JSONP",e,{params:(new jf).append(i,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(e,i={}){return this.request("OPTIONS",e,i)}patch(e,i,r={}){return this.request("PATCH",e,t3(r,i))}post(e,i,r={}){return this.request("POST",e,t3(r,i))}put(e,i,r={}){return this.request("PUT",e,t3(r,i))}static{this.\u0275fac=function(i){return new(i||n)(ge(sE))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac})}}return n})();function zQ(n,t){return t(n)}function Jpe(n,t){return(e,i)=>t.intercept(e,{handle:r=>n(r,i)})}const tAe=new ut(""),Oy=new ut(""),qQ=new ut(""),GQ=new ut("");function nAe(){let n=null;return(t,e)=>{null===n&&(n=(qt(tAe,{optional:!0})??[]).reduceRight(Jpe,zQ));const i=qt(Bp),r=i.add();return n(t,e).pipe(JB(()=>i.remove(r)))}}let WQ=(()=>{class n extends sE{constructor(e,i){super(),this.backend=e,this.injector=i,this.chain=null,this.pendingTasks=qt(Bp);const r=qt(GQ,{optional:!0});this.backend=r??e}handle(e){if(null===this.chain){const r=Array.from(new Set([...this.injector.get(Oy),...this.injector.get(qQ,[])]));this.chain=r.reduceRight((o,s)=>function eAe(n,t,e){return(i,r)=>function rv(n,t){n instanceof xf&&n.assertNotDestroyed();const i=Vc(n),r=la(void 0);try{return t()}finally{Vc(i),la(r)}}(e,()=>t(i,o=>n(o,r)))}(o,s,this.injector),zQ)}const i=this.pendingTasks.add();return this.chain(e,r=>this.backend.handle(r)).pipe(JB(()=>this.pendingTasks.remove(i)))}static{this.\u0275fac=function(i){return new(i||n)(ge(aE),ge(Ea))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac})}}return n})();const aAe=/^\)\]\}',?\n/;let jQ=(()=>{class n{constructor(e){this.xhrFactory=e}handle(e){if("JSONP"===e.method)throw new dt(-2800,!1);const i=this.xhrFactory;return(i.\u0275loadImpl?Vp(i.\u0275loadImpl()):ol(null)).pipe(fh(()=>new Yi(o=>{const s=i.build();if(s.open(e.method,e.urlWithParams),e.withCredentials&&(s.withCredentials=!0),e.headers.forEach((y,_)=>s.setRequestHeader(y,_.join(","))),e.headers.has("Accept")||s.setRequestHeader("Accept","application/json, text/plain, */*"),!e.headers.has("Content-Type")){const y=e.detectContentTypeHeader();null!==y&&s.setRequestHeader("Content-Type",y)}if(e.responseType){const y=e.responseType.toLowerCase();s.responseType="json"!==y?y:"text"}const a=e.serializeBody();let l=null;const c=()=>{if(null!==l)return l;const y=s.statusText||"OK",_=new wc(s.getAllResponseHeaders()),b=function lAe(n){return"responseURL"in n&&n.responseURL?n.responseURL:/^X-Request-URL:/m.test(n.getAllResponseHeaders())?n.getResponseHeader("X-Request-URL"):null}(s)||e.url;return l=new cE({headers:_,status:s.status,statusText:y,url:b}),l},d=()=>{let{headers:y,status:_,statusText:b,url:M}=c(),C=null;_!==Ry.NoContent&&(C=typeof s.response>"u"?s.responseText:s.response),0===_&&(_=C?Ry.Ok:0);let E=_>=200&&_<300;if("json"===e.responseType&&"string"==typeof C){const I=C;C=C.replace(aAe,"");try{C=""!==C?JSON.parse(C):null}catch(V){C=I,E&&(E=!1,C={error:V,text:C})}}E?(o.next(new Qp({body:C,headers:y,status:_,statusText:b,url:M||void 0})),o.complete()):o.error(new R0({error:C,headers:y,status:_,statusText:b,url:M||void 0}))},u=y=>{const{url:_}=c(),b=new R0({error:y,status:s.status||0,statusText:s.statusText||"Unknown Error",url:_||void 0});o.error(b)};let h=!1;const f=y=>{h||(o.next(c()),h=!0);let _={type:Xf.DownloadProgress,loaded:y.loaded};y.lengthComputable&&(_.total=y.total),"text"===e.responseType&&s.responseText&&(_.partialText=s.responseText),o.next(_)},A=y=>{let _={type:Xf.UploadProgress,loaded:y.loaded};y.lengthComputable&&(_.total=y.total),o.next(_)};return s.addEventListener("load",d),s.addEventListener("error",u),s.addEventListener("timeout",u),s.addEventListener("abort",u),e.reportProgress&&(s.addEventListener("progress",f),null!==a&&s.upload&&s.upload.addEventListener("progress",A)),s.send(a),o.next({type:Xf.Sent}),()=>{s.removeEventListener("error",u),s.removeEventListener("abort",u),s.removeEventListener("load",d),s.removeEventListener("timeout",u),e.reportProgress&&(s.removeEventListener("progress",f),null!==a&&s.upload&&s.upload.removeEventListener("progress",A)),s.readyState!==s.DONE&&s.abort()}})))}static{this.\u0275fac=function(i){return new(i||n)(ge(YV))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac})}}return n})();const r3=new ut(""),XQ=new ut("",{providedIn:"root",factory:()=>"XSRF-TOKEN"}),KQ=new ut("",{providedIn:"root",factory:()=>"X-XSRF-TOKEN"});class YQ{}let uAe=(()=>{class n{constructor(e,i,r){this.doc=e,this.platform=i,this.cookieName=r,this.lastCookieString="",this.lastToken=null,this.parseCount=0}getToken(){if("server"===this.platform)return null;const e=this.doc.cookie||"";return e!==this.lastCookieString&&(this.parseCount++,this.lastToken=VV(e,this.cookieName),this.lastCookieString=e),this.lastToken}static{this.\u0275fac=function(i){return new(i||n)(ge(Bi),ge(Lf),ge(XQ))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac})}}return n})();function hAe(n,t){const e=n.url.toLowerCase();if(!qt(r3)||"GET"===n.method||"HEAD"===n.method||e.startsWith("http://")||e.startsWith("https://"))return t(n);const i=qt(YQ).getToken(),r=qt(KQ);return null!=i&&!n.headers.has(r)&&(n=n.clone({headers:n.headers.set(r,i)})),t(n)}var Kf=function(n){return n[n.Interceptors=0]="Interceptors",n[n.LegacyInterceptors=1]="LegacyInterceptors",n[n.CustomXsrfConfiguration=2]="CustomXsrfConfiguration",n[n.NoXsrfProtection=3]="NoXsrfProtection",n[n.JsonpSupport=4]="JsonpSupport",n[n.RequestsMadeViaParent=5]="RequestsMadeViaParent",n[n.Fetch=6]="Fetch",n}(Kf||{});function zp(n,t){return{\u0275kind:n,\u0275providers:t}}function fAe(...n){const t=[Ly,jQ,WQ,{provide:sE,useExisting:WQ},{provide:aE,useExisting:jQ},{provide:Oy,useValue:hAe,multi:!0},{provide:r3,useValue:!0},{provide:YQ,useClass:uAe}];for(const e of n)t.push(...e.\u0275providers);return function rp(n){return{\u0275providers:n}}(t)}const ZQ=new ut("");let JQ=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({providers:[fAe(zp(Kf.LegacyInterceptors,[{provide:ZQ,useFactory:nAe},{provide:Oy,useExisting:ZQ,multi:!0}]))]})}}return n})();const{isArray:vAe}=Array,{getPrototypeOf:yAe,prototype:wAe,keys:xAe}=Object;function az(n){if(1===n.length){const t=n[0];if(vAe(t))return{args:t,keys:null};if(function CAe(n){return n&&"object"==typeof n&&yAe(n)===wAe}(t)){const e=xAe(t);return{args:e.map(i=>t[i]),keys:e}}}return{args:n,keys:null}}const{isArray:MAe}=Array;function o3(n){return Ge(t=>function EAe(n,t){return MAe(t)?n(...t):n(t)}(n,t))}function lz(n,t){return n.reduce((e,i,r)=>(e[i]=t[r],e),{})}let dz=(()=>{class n{constructor(e,i){this._renderer=e,this._elementRef=i,this.onChange=r=>{},this.onTouched=()=>{}}setProperty(e,i){this._renderer.setProperty(this._elementRef.nativeElement,e,i)}registerOnTouched(e){this.onTouched=e}registerOnChange(e){this.onChange=e}setDisabledState(e){this.setProperty("disabled",e)}static{this.\u0275fac=function(i){return new(i||n)($(Ip),$(Vn))}}static{this.\u0275dir=$t({type:n})}}return n})(),qp=(()=>{class n extends dz{static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=Zr(n)))(r||n)}})()}static{this.\u0275dir=$t({type:n,features:[_i]})}}return n})();const qs=new ut(""),TAe={provide:qs,useExisting:Jn(()=>Yf),multi:!0},FAe=new ut("");let Yf=(()=>{class n extends dz{constructor(e,i,r){super(e,i),this._compositionMode=r,this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function IAe(){const n=Gf()?Gf().getUserAgent():"";return/android (\d+)/.test(n.toLowerCase())}())}writeValue(e){this.setProperty("value",e??"")}_handleInput(e){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(e)}_compositionStart(){this._composing=!0}_compositionEnd(e){this._composing=!1,this._compositionMode&&this.onChange(e)}static{this.\u0275fac=function(i){return new(i||n)($(Ip),$(Vn),$(FAe,8))}}static{this.\u0275dir=$t({type:n,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(i,r){1&i&&We("input",function(s){return r._handleInput(s.target.value)})("blur",function(){return r.onTouched()})("compositionstart",function(){return r._compositionStart()})("compositionend",function(s){return r._compositionEnd(s.target.value)})},features:[ui([TAe]),_i]})}}return n})();function Zf(n){return null==n||("string"==typeof n||Array.isArray(n))&&0===n.length}function hz(n){return null!=n&&"number"==typeof n.length}const _s=new ut(""),Jf=new ut(""),DAe=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;class s3{static min(t){return function fz(n){return t=>{if(Zf(t.value)||Zf(n))return null;const e=parseFloat(t.value);return!isNaN(e)&&e{if(Zf(t.value)||Zf(n))return null;const e=parseFloat(t.value);return!isNaN(e)&&e>n?{max:{max:n,actual:t.value}}:null}}(t)}static required(t){return pz(t)}static requiredTrue(t){return function Az(n){return!0===n.value?null:{required:!0}}(t)}static email(t){return function gz(n){return Zf(n.value)||DAe.test(n.value)?null:{email:!0}}(t)}static minLength(t){return function _z(n){return t=>Zf(t.value)||!hz(t.value)?null:t.value.lengthhz(t.value)&&t.value.length>n?{maxlength:{requiredLength:n,actualLength:t.value.length}}:null}(t)}static pattern(t){return function vz(n){if(!n)return uE;let t,e;return"string"==typeof n?(e="","^"!==n.charAt(0)&&(e+="^"),e+=n,"$"!==n.charAt(n.length-1)&&(e+="$"),t=new RegExp(e)):(e=n.toString(),t=n),i=>{if(Zf(i.value))return null;const r=i.value;return t.test(r)?null:{pattern:{requiredPattern:e,actualValue:r}}}}(t)}static nullValidator(t){return null}static compose(t){return Ez(t)}static composeAsync(t){return Sz(t)}}function pz(n){return Zf(n.value)?{required:!0}:null}function uE(n){return null}function yz(n){return null!=n}function wz(n){return PM(n)?Vp(n):n}function xz(n){let t={};return n.forEach(e=>{t=null!=e?{...t,...e}:t}),0===Object.keys(t).length?null:t}function Cz(n,t){return t.map(e=>e(n))}function Mz(n){return n.map(t=>function kAe(n){return!n.validate}(t)?t:e=>t.validate(e))}function Ez(n){if(!n)return null;const t=n.filter(yz);return 0==t.length?null:function(e){return xz(Cz(e,t))}}function a3(n){return null!=n?Ez(Mz(n)):null}function Sz(n){if(!n)return null;const t=n.filter(yz);return 0==t.length?null:function(e){return function cz(...n){const t=WB(n),{args:e,keys:i}=az(n),r=new Yi(o=>{const{length:s}=e;if(!s)return void o.complete();const a=new Array(s);let l=s,c=s;for(let d=0;d{u||(u=!0,c--),a[d]=h},()=>l--,void 0,()=>{(!l||!u)&&(c||o.next(i?lz(i,a):a),o.complete())}))}});return t?r.pipe(o3(t)):r}(Cz(e,t).map(wz)).pipe(Ge(xz))}}function l3(n){return null!=n?Sz(Mz(n)):null}function Tz(n,t){return null===n?[t]:Array.isArray(n)?[...n,t]:[n,t]}function Iz(n){return n._rawValidators}function Fz(n){return n._rawAsyncValidators}function c3(n){return n?Array.isArray(n)?n:[n]:[]}function hE(n,t){return Array.isArray(n)?n.includes(t):n===t}function Dz(n,t){const e=c3(t);return c3(n).forEach(r=>{hE(e,r)||e.push(r)}),e}function kz(n,t){return c3(t).filter(e=>!hE(n,e))}class Bz{constructor(){this._rawValidators=[],this._rawAsyncValidators=[],this._onDestroyCallbacks=[]}get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_setValidators(t){this._rawValidators=t||[],this._composedValidatorFn=a3(this._rawValidators)}_setAsyncValidators(t){this._rawAsyncValidators=t||[],this._composedAsyncValidatorFn=l3(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_registerOnDestroy(t){this._onDestroyCallbacks.push(t)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(t=>t()),this._onDestroyCallbacks=[]}reset(t=void 0){this.control&&this.control.reset(t)}hasError(t,e){return!!this.control&&this.control.hasError(t,e)}getError(t,e){return this.control?this.control.getError(t,e):null}}class Ra extends Bz{get formDirective(){return null}get path(){return null}}class Yd extends Bz{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null}}class Pz{constructor(t){this._cd=t}get isTouched(){return!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return!!this._cd?.submitted}}let L0=(()=>{class n extends Pz{constructor(e){super(e)}static{this.\u0275fac=function(i){return new(i||n)($(Yd,2))}}static{this.\u0275dir=$t({type:n,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(i,r){2&i&&Qn("ng-untouched",r.isUntouched)("ng-touched",r.isTouched)("ng-pristine",r.isPristine)("ng-dirty",r.isDirty)("ng-valid",r.isValid)("ng-invalid",r.isInvalid)("ng-pending",r.isPending)},features:[_i]})}}return n})();const Ny="VALID",mE="INVALID",O0="PENDING",Uy="DISABLED";function h3(n){return(pE(n)?n.validators:n)||null}function f3(n,t){return(pE(t)?t.asyncValidators:n)||null}function pE(n){return null!=n&&!Array.isArray(n)&&"object"==typeof n}class m3{constructor(t,e){this._pendingDirty=!1,this._hasOwnPendingAsyncValidator=!1,this._pendingTouched=!1,this._onCollectionChange=()=>{},this._parent=null,this.pristine=!0,this.touched=!1,this._onDisabledChange=[],this._assignValidators(t),this._assignAsyncValidators(e)}get validator(){return this._composedValidatorFn}set validator(t){this._rawValidators=this._composedValidatorFn=t}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(t){this._rawAsyncValidators=this._composedAsyncValidatorFn=t}get parent(){return this._parent}get valid(){return this.status===Ny}get invalid(){return this.status===mE}get pending(){return this.status==O0}get disabled(){return this.status===Uy}get enabled(){return this.status!==Uy}get dirty(){return!this.pristine}get untouched(){return!this.touched}get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(t){this._assignValidators(t)}setAsyncValidators(t){this._assignAsyncValidators(t)}addValidators(t){this.setValidators(Dz(t,this._rawValidators))}addAsyncValidators(t){this.setAsyncValidators(Dz(t,this._rawAsyncValidators))}removeValidators(t){this.setValidators(kz(t,this._rawValidators))}removeAsyncValidators(t){this.setAsyncValidators(kz(t,this._rawAsyncValidators))}hasValidator(t){return hE(this._rawValidators,t)}hasAsyncValidator(t){return hE(this._rawAsyncValidators,t)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(t={}){this.touched=!0,this._parent&&!t.onlySelf&&this._parent.markAsTouched(t)}markAllAsTouched(){this.markAsTouched({onlySelf:!0}),this._forEachChild(t=>t.markAllAsTouched())}markAsUntouched(t={}){this.touched=!1,this._pendingTouched=!1,this._forEachChild(e=>{e.markAsUntouched({onlySelf:!0})}),this._parent&&!t.onlySelf&&this._parent._updateTouched(t)}markAsDirty(t={}){this.pristine=!1,this._parent&&!t.onlySelf&&this._parent.markAsDirty(t)}markAsPristine(t={}){this.pristine=!0,this._pendingDirty=!1,this._forEachChild(e=>{e.markAsPristine({onlySelf:!0})}),this._parent&&!t.onlySelf&&this._parent._updatePristine(t)}markAsPending(t={}){this.status=O0,!1!==t.emitEvent&&this.statusChanges.emit(this.status),this._parent&&!t.onlySelf&&this._parent.markAsPending(t)}disable(t={}){const e=this._parentMarkedDirty(t.onlySelf);this.status=Uy,this.errors=null,this._forEachChild(i=>{i.disable({...t,onlySelf:!0})}),this._updateValue(),!1!==t.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors({...t,skipPristineCheck:e}),this._onDisabledChange.forEach(i=>i(!0))}enable(t={}){const e=this._parentMarkedDirty(t.onlySelf);this.status=Ny,this._forEachChild(i=>{i.enable({...t,onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent}),this._updateAncestors({...t,skipPristineCheck:e}),this._onDisabledChange.forEach(i=>i(!1))}_updateAncestors(t){this._parent&&!t.onlySelf&&(this._parent.updateValueAndValidity(t),t.skipPristineCheck||this._parent._updatePristine(),this._parent._updateTouched())}setParent(t){this._parent=t}getRawValue(){return this.value}updateValueAndValidity(t={}){this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===Ny||this.status===O0)&&this._runAsyncValidator(t.emitEvent)),!1!==t.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!t.onlySelf&&this._parent.updateValueAndValidity(t)}_updateTreeValidity(t={emitEvent:!0}){this._forEachChild(e=>e._updateTreeValidity(t)),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?Uy:Ny}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(t){if(this.asyncValidator){this.status=O0,this._hasOwnPendingAsyncValidator=!0;const e=wz(this.asyncValidator(this));this._asyncValidationSubscription=e.subscribe(i=>{this._hasOwnPendingAsyncValidator=!1,this.setErrors(i,{emitEvent:t})})}}_cancelExistingSubscription(){this._asyncValidationSubscription&&(this._asyncValidationSubscription.unsubscribe(),this._hasOwnPendingAsyncValidator=!1)}setErrors(t,e={}){this.errors=t,this._updateControlsErrors(!1!==e.emitEvent)}get(t){let e=t;return null==e||(Array.isArray(e)||(e=e.split(".")),0===e.length)?null:e.reduce((i,r)=>i&&i._find(r),this)}getError(t,e){const i=e?this.get(e):this;return i&&i.errors?i.errors[t]:null}hasError(t,e){return!!this.getError(t,e)}get root(){let t=this;for(;t._parent;)t=t._parent;return t}_updateControlsErrors(t){this.status=this._calculateStatus(),t&&this.statusChanges.emit(this.status),this._parent&&this._parent._updateControlsErrors(t)}_initObservables(){this.valueChanges=new Bn,this.statusChanges=new Bn}_calculateStatus(){return this._allControlsDisabled()?Uy:this.errors?mE:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(O0)?O0:this._anyControlsHaveStatus(mE)?mE:Ny}_anyControlsHaveStatus(t){return this._anyControls(e=>e.status===t)}_anyControlsDirty(){return this._anyControls(t=>t.dirty)}_anyControlsTouched(){return this._anyControls(t=>t.touched)}_updatePristine(t={}){this.pristine=!this._anyControlsDirty(),this._parent&&!t.onlySelf&&this._parent._updatePristine(t)}_updateTouched(t={}){this.touched=this._anyControlsTouched(),this._parent&&!t.onlySelf&&this._parent._updateTouched(t)}_registerOnCollectionChange(t){this._onCollectionChange=t}_setUpdateStrategy(t){pE(t)&&null!=t.updateOn&&(this._updateOn=t.updateOn)}_parentMarkedDirty(t){return!t&&!(!this._parent||!this._parent.dirty)&&!this._parent._anyControlsDirty()}_find(t){return null}_assignValidators(t){this._rawValidators=Array.isArray(t)?t.slice():t,this._composedValidatorFn=function OAe(n){return Array.isArray(n)?a3(n):n||null}(this._rawValidators)}_assignAsyncValidators(t){this._rawAsyncValidators=Array.isArray(t)?t.slice():t,this._composedAsyncValidatorFn=function NAe(n){return Array.isArray(n)?l3(n):n||null}(this._rawAsyncValidators)}}class p3 extends m3{constructor(t,e,i){super(h3(e),f3(i,e)),this.controls=t,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}registerControl(t,e){return this.controls[t]?this.controls[t]:(this.controls[t]=e,e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange),e)}addControl(t,e,i={}){this.registerControl(t,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}removeControl(t,e={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],this.updateValueAndValidity({emitEvent:e.emitEvent}),this._onCollectionChange()}setControl(t,e,i={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],e&&this.registerControl(t,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}contains(t){return this.controls.hasOwnProperty(t)&&this.controls[t].enabled}setValue(t,e={}){(function Oz(n,t,e){n._forEachChild((i,r)=>{if(void 0===e[r])throw new dt(1002,"")})})(this,0,t),Object.keys(t).forEach(i=>{(function Lz(n,t,e){const i=n.controls;if(!(t?Object.keys(i):i).length)throw new dt(1e3,"");if(!i[e])throw new dt(1001,"")})(this,!0,i),this.controls[i].setValue(t[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(t,e={}){null!=t&&(Object.keys(t).forEach(i=>{const r=this.controls[i];r&&r.patchValue(t[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e))}reset(t={},e={}){this._forEachChild((i,r)=>{i.reset(t?t[r]:null,{onlySelf:!0,emitEvent:e.emitEvent})}),this._updatePristine(e),this._updateTouched(e),this.updateValueAndValidity(e)}getRawValue(){return this._reduceChildren({},(t,e,i)=>(t[i]=e.getRawValue(),t))}_syncPendingControls(){let t=this._reduceChildren(!1,(e,i)=>!!i._syncPendingControls()||e);return t&&this.updateValueAndValidity({onlySelf:!0}),t}_forEachChild(t){Object.keys(this.controls).forEach(e=>{const i=this.controls[e];i&&t(i,e)})}_setUpControls(){this._forEachChild(t=>{t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(t){for(const[e,i]of Object.entries(this.controls))if(this.contains(e)&&t(i))return!0;return!1}_reduceValue(){return this._reduceChildren({},(e,i,r)=>((i.enabled||this.disabled)&&(e[r]=i.value),e))}_reduceChildren(t,e){let i=t;return this._forEachChild((r,o)=>{i=e(i,r,o)}),i}_allControlsDisabled(){for(const t of Object.keys(this.controls))if(this.controls[t].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_find(t){return this.controls.hasOwnProperty(t)?this.controls[t]:null}}const Gp=new ut("CallSetDisabledState",{providedIn:"root",factory:()=>Hy}),Hy="always";function Vy(n,t,e=Hy){A3(n,t),t.valueAccessor.writeValue(n.value),(n.disabled||"always"===e)&&t.valueAccessor.setDisabledState?.(n.disabled),function VAe(n,t){t.valueAccessor.registerOnChange(e=>{n._pendingValue=e,n._pendingChange=!0,n._pendingDirty=!0,"change"===n.updateOn&&Nz(n,t)})}(n,t),function zAe(n,t){const e=(i,r)=>{t.valueAccessor.writeValue(i),r&&t.viewToModelUpdate(i)};n.registerOnChange(e),t._registerOnDestroy(()=>{n._unregisterOnChange(e)})}(n,t),function QAe(n,t){t.valueAccessor.registerOnTouched(()=>{n._pendingTouched=!0,"blur"===n.updateOn&&n._pendingChange&&Nz(n,t),"submit"!==n.updateOn&&n.markAsTouched()})}(n,t),function HAe(n,t){if(t.valueAccessor.setDisabledState){const e=i=>{t.valueAccessor.setDisabledState(i)};n.registerOnDisabledChange(e),t._registerOnDestroy(()=>{n._unregisterOnDisabledChange(e)})}}(n,t)}function gE(n,t,e=!0){const i=()=>{};t.valueAccessor&&(t.valueAccessor.registerOnChange(i),t.valueAccessor.registerOnTouched(i)),bE(n,t),n&&(t._invokeOnDestroyCallbacks(),n._registerOnCollectionChange(()=>{}))}function _E(n,t){n.forEach(e=>{e.registerOnValidatorChange&&e.registerOnValidatorChange(t)})}function A3(n,t){const e=Iz(n);null!==t.validator?n.setValidators(Tz(e,t.validator)):"function"==typeof e&&n.setValidators([e]);const i=Fz(n);null!==t.asyncValidator?n.setAsyncValidators(Tz(i,t.asyncValidator)):"function"==typeof i&&n.setAsyncValidators([i]);const r=()=>n.updateValueAndValidity();_E(t._rawValidators,r),_E(t._rawAsyncValidators,r)}function bE(n,t){let e=!1;if(null!==n){if(null!==t.validator){const r=Iz(n);if(Array.isArray(r)&&r.length>0){const o=r.filter(s=>s!==t.validator);o.length!==r.length&&(e=!0,n.setValidators(o))}}if(null!==t.asyncValidator){const r=Fz(n);if(Array.isArray(r)&&r.length>0){const o=r.filter(s=>s!==t.asyncValidator);o.length!==r.length&&(e=!0,n.setAsyncValidators(o))}}}const i=()=>{};return _E(t._rawValidators,i),_E(t._rawAsyncValidators,i),e}function Nz(n,t){n._pendingDirty&&n.markAsDirty(),n.setValue(n._pendingValue,{emitModelToViewChange:!1}),t.viewToModelUpdate(n._pendingValue),n._pendingChange=!1}function Uz(n,t){A3(n,t)}function _3(n,t){if(!n.hasOwnProperty("model"))return!1;const e=n.model;return!!e.isFirstChange()||!Object.is(t,e.currentValue)}function Hz(n,t){n._syncPendingControls(),t.forEach(e=>{const i=e.control;"submit"===i.updateOn&&i._pendingChange&&(e.viewToModelUpdate(i._pendingValue),i._pendingChange=!1)})}function b3(n,t){if(!t)return null;let e,i,r;return Array.isArray(t),t.forEach(o=>{o.constructor===Yf?e=o:function WAe(n){return Object.getPrototypeOf(n.constructor)===qp}(o)?i=o:r=o}),r||i||e||null}const jAe={provide:Ra,useExisting:Jn(()=>zy)},Qy=Promise.resolve();let zy=(()=>{class n extends Ra{constructor(e,i,r){super(),this.callSetDisabledState=r,this.submitted=!1,this._directives=new Set,this.ngSubmit=new Bn,this.form=new p3({},a3(e),l3(i))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(e){Qy.then(()=>{const i=this._findContainer(e.path);e.control=i.registerControl(e.name,e.control),Vy(e.control,e,this.callSetDisabledState),e.control.updateValueAndValidity({emitEvent:!1}),this._directives.add(e)})}getControl(e){return this.form.get(e.path)}removeControl(e){Qy.then(()=>{const i=this._findContainer(e.path);i&&i.removeControl(e.name),this._directives.delete(e)})}addFormGroup(e){Qy.then(()=>{const i=this._findContainer(e.path),r=new p3({});Uz(r,e),i.registerControl(e.name,r),r.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(e){Qy.then(()=>{const i=this._findContainer(e.path);i&&i.removeControl(e.name)})}getFormGroup(e){return this.form.get(e.path)}updateModel(e,i){Qy.then(()=>{this.form.get(e.path).setValue(i)})}setValue(e){this.control.setValue(e)}onSubmit(e){return this.submitted=!0,Hz(this.form,this._directives),this.ngSubmit.emit(e),"dialog"===e?.target?.method}onReset(){this.resetForm()}resetForm(e=void 0){this.form.reset(e),this.submitted=!1}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.form._updateOn=this.options.updateOn)}_findContainer(e){return e.pop(),e.length?this.form.get(e):this.form}static{this.\u0275fac=function(i){return new(i||n)($(_s,10),$(Jf,10),$(Gp,8))}}static{this.\u0275dir=$t({type:n,selectors:[["form",3,"ngNoForm","",3,"formGroup",""],["ng-form"],["","ngForm",""]],hostBindings:function(i,r){1&i&&We("submit",function(s){return r.onSubmit(s)})("reset",function(){return r.onReset()})},inputs:{options:[Ct.None,"ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[ui([jAe]),_i]})}}return n})();function Vz(n,t){const e=n.indexOf(t);e>-1&&n.splice(e,1)}function Qz(n){return"object"==typeof n&&null!==n&&2===Object.keys(n).length&&"value"in n&&"disabled"in n}const v3=class extends m3{constructor(t=null,e,i){super(h3(e),f3(i,e)),this.defaultValue=null,this._onChange=[],this._pendingChange=!1,this._applyFormState(t),this._setUpdateStrategy(e),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),pE(e)&&(e.nonNullable||e.initialValueIsDefault)&&(this.defaultValue=Qz(t)?t.value:t)}setValue(t,e={}){this.value=this._pendingValue=t,this._onChange.length&&!1!==e.emitModelToViewChange&&this._onChange.forEach(i=>i(this.value,!1!==e.emitViewToModelChange)),this.updateValueAndValidity(e)}patchValue(t,e={}){this.setValue(t,e)}reset(t=this.defaultValue,e={}){this._applyFormState(t),this.markAsPristine(e),this.markAsUntouched(e),this.setValue(this.value,e),this._pendingChange=!1}_updateValue(){}_anyControls(t){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(t){this._onChange.push(t)}_unregisterOnChange(t){Vz(this._onChange,t)}registerOnDisabledChange(t){this._onDisabledChange.push(t)}_unregisterOnDisabledChange(t){Vz(this._onDisabledChange,t)}_forEachChild(t){}_syncPendingControls(){return!("submit"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange)||(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),0))}_applyFormState(t){Qz(t)?(this.value=this._pendingValue=t.value,t.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=t}},zz=v3,YAe={provide:Yd,useExisting:Jn(()=>N0)},Wz=Promise.resolve();let N0=(()=>{class n extends Yd{constructor(e,i,r,o,s,a){super(),this._changeDetectorRef=s,this.callSetDisabledState=a,this.control=new v3,this._registered=!1,this.name="",this.update=new Bn,this._parent=e,this._setValidators(i),this._setAsyncValidators(r),this.valueAccessor=b3(0,o)}ngOnChanges(e){if(this._checkForErrors(),!this._registered||"name"in e){if(this._registered&&(this._checkName(),this.formDirective)){const i=e.name.previousValue;this.formDirective.removeControl({name:i,path:this._getPath(i)})}this._setUpControl()}"isDisabled"in e&&this._updateDisabled(e),_3(e,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._getPath(this.name)}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!(!this.options||!this.options.standalone)}_setUpStandalone(){Vy(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._isStandalone()||this._checkParentType(),this._checkName()}_checkParentType(){}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()}_updateValue(e){Wz.then(()=>{this.control.setValue(e,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(e){const i=e.isDisabled.currentValue,r=0!==i&&Zn(i);Wz.then(()=>{r&&!this.control.disabled?this.control.disable():!r&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(e){return this._parent?function AE(n,t){return[...t.path,n]}(e,this._parent):[e]}static{this.\u0275fac=function(i){return new(i||n)($(Ra,9),$(_s,10),$(Jf,10),$(qs,10),$(_o,8),$(Gp,8))}}static{this.\u0275dir=$t({type:n,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:[Ct.None,"disabled","isDisabled"],model:[Ct.None,"ngModel","model"],options:[Ct.None,"ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],features:[ui([YAe]),_i,wr]})}}return n})();const y3=new ut(""),ige={provide:Yd,useExisting:Jn(()=>vE)};let vE=(()=>{class n extends Yd{set isDisabled(e){}static{this._ngModelWarningSentOnce=!1}constructor(e,i,r,o,s){super(),this._ngModelWarningConfig=o,this.callSetDisabledState=s,this.update=new Bn,this._ngModelWarningSent=!1,this._setValidators(e),this._setAsyncValidators(i),this.valueAccessor=b3(0,r)}ngOnChanges(e){if(this._isControlChanged(e)){const i=e.form.previousValue;i&&gE(i,this,!1),Vy(this.form,this,this.callSetDisabledState),this.form.updateValueAndValidity({emitEvent:!1})}_3(e,this.viewModel)&&(this.form.setValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.form&&gE(this.form,this,!1)}get path(){return[]}get control(){return this.form}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}_isControlChanged(e){return e.hasOwnProperty("form")}static{this.\u0275fac=function(i){return new(i||n)($(_s,10),$(Jf,10),$(qs,10),$(y3,8),$(Gp,8))}}static{this.\u0275dir=$t({type:n,selectors:[["","formControl",""]],inputs:{form:[Ct.None,"formControl","form"],isDisabled:[Ct.None,"disabled","isDisabled"],model:[Ct.None,"ngModel","model"]},outputs:{update:"ngModelChange"},exportAs:["ngForm"],features:[ui([ige]),_i,wr]})}}return n})();const rge={provide:Ra,useExisting:Jn(()=>qy)};let qy=(()=>{class n extends Ra{constructor(e,i,r){super(),this.callSetDisabledState=r,this.submitted=!1,this._onCollectionChange=()=>this._updateDomValue(),this.directives=[],this.form=null,this.ngSubmit=new Bn,this._setValidators(e),this._setAsyncValidators(i)}ngOnChanges(e){this._checkFormPresent(),e.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}ngOnDestroy(){this.form&&(bE(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get control(){return this.form}get path(){return[]}addControl(e){const i=this.form.get(e.path);return Vy(i,e,this.callSetDisabledState),i.updateValueAndValidity({emitEvent:!1}),this.directives.push(e),i}getControl(e){return this.form.get(e.path)}removeControl(e){gE(e.control||null,e,!1),function $Ae(n,t){const e=n.indexOf(t);e>-1&&n.splice(e,1)}(this.directives,e)}addFormGroup(e){this._setUpFormContainer(e)}removeFormGroup(e){this._cleanUpFormContainer(e)}getFormGroup(e){return this.form.get(e.path)}addFormArray(e){this._setUpFormContainer(e)}removeFormArray(e){this._cleanUpFormContainer(e)}getFormArray(e){return this.form.get(e.path)}updateModel(e,i){this.form.get(e.path).setValue(i)}onSubmit(e){return this.submitted=!0,Hz(this.form,this.directives),this.ngSubmit.emit(e),"dialog"===e?.target?.method}onReset(){this.resetForm()}resetForm(e=void 0){this.form.reset(e),this.submitted=!1}_updateDomValue(){this.directives.forEach(e=>{const i=e.control,r=this.form.get(e.path);i!==r&&(gE(i||null,e),(n=>n instanceof v3)(r)&&(Vy(r,e,this.callSetDisabledState),e.control=r))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(e){const i=this.form.get(e.path);Uz(i,e),i.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(e){if(this.form){const i=this.form.get(e.path);i&&function qAe(n,t){return bE(n,t)}(i,e)&&i.updateValueAndValidity({emitEvent:!1})}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{})}_updateValidators(){A3(this.form,this),this._oldForm&&bE(this._oldForm,this)}_checkFormPresent(){}static{this.\u0275fac=function(i){return new(i||n)($(_s,10),$(Jf,10),$(Gp,8))}}static{this.\u0275dir=$t({type:n,selectors:[["","formGroup",""]],hostBindings:function(i,r){1&i&&We("submit",function(s){return r.onSubmit(s)})("reset",function(){return r.onReset()})},inputs:{form:[Ct.None,"formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[ui([rge]),_i,wr]})}}return n})(),Wp=(()=>{class n{constructor(){this._validator=uE}ngOnChanges(e){if(this.inputName in e){const i=this.normalizeInput(e[this.inputName].currentValue);this._enabled=this.enabled(i),this._validator=this._enabled?this.createValidator(i):uE,this._onChange&&this._onChange()}}validate(e){return this._validator(e)}registerOnValidatorChange(e){this._onChange=e}enabled(e){return null!=e}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=$t({type:n,features:[wr]})}}return n})();const Age={provide:_s,useExisting:Jn(()=>yE),multi:!0};let yE=(()=>{class n extends Wp{constructor(){super(...arguments),this.inputName="required",this.normalizeInput=Zn,this.createValidator=e=>pz}enabled(e){return e}static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=Zr(n)))(r||n)}})()}static{this.\u0275dir=$t({type:n,selectors:[["","required","","formControlName","",3,"type","checkbox"],["","required","","formControl","",3,"type","checkbox"],["","required","","ngModel","",3,"type","checkbox"]],hostVars:1,hostBindings:function(i,r){2&i&&fi("required",r._enabled?"":null)},inputs:{required:"required"},features:[ui([Age]),_i]})}}return n})(),lq=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({})}}return n})(),rd=(()=>{class n{static withConfig(e){return{ngModule:n,providers:[{provide:Gp,useValue:e.callSetDisabledState??Hy}]}}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[lq]})}}return n})(),Gy=(()=>{class n{static withConfig(e){return{ngModule:n,providers:[{provide:y3,useValue:e.warnOnNgModelWithFormControl??"always"},{provide:Gp,useValue:e.callSetDisabledState??Hy}]}}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[lq]})}}return n})();function cq(n=1/0){return $f(sa,n)}const U0=new Yi(n=>n.complete());function ql(...n){const t=By(n),e=function ope(n,t){return"number"==typeof GB(n)?n.pop():t}(n,1/0),i=n;return i.length?1===i.length?rs(i[0]):cq(e)(Vp(i,t)):U0}function dq(){return le((n,t)=>{n.subscribe(Be(t,ja))})}class mh{constructor(t,e,i){this.kind=t,this.value=e,this.error=i,this.hasValue="N"===t}observe(t){return hq(this,t)}do(t,e,i){const{kind:r,value:o,error:s}=this;return"N"===r?t?.(o):"E"===r?e?.(s):i?.()}accept(t,e,i){var r;return tn(null===(r=t)||void 0===r?void 0:r.next)?this.observe(t):this.do(t,e,i)}toObservable(){const{kind:t,value:e,error:i}=this,r="N"===t?ol(e):"E"===t?function uq(n,t){const e=tn(n)?n:()=>n,i=r=>r.error(e());return new Yi(t?r=>t.schedule(i,0,r):i)}(()=>i):"C"===t?U0:0;if(!r)throw new TypeError(`Unexpected notification kind ${t}`);return r}static createNext(t){return new mh("N",t)}static createError(t){return new mh("E",void 0,t)}static createComplete(){return mh.completeNotification}}function hq(n,t){var e,i,r;const{kind:o,value:s,error:a}=n;if("string"!=typeof o)throw new TypeError('Invalid notification, missing "kind"');"N"===o?null===(e=t.next)||void 0===e||e.call(t,s):"E"===o?null===(i=t.error)||void 0===i||i.call(t,a):null===(r=t.complete)||void 0===r||r.call(t)}function E3(n){return le((t,e)=>{let o,i=null,r=!1;i=t.subscribe(Be(e,void 0,void 0,s=>{o=rs(n(s,E3(n)(t))),i?(i.unsubscribe(),i=null,o.subscribe(e)):r=!0})),r&&(i.unsubscribe(),i=null,o.subscribe(e))})}function fq(n,t,e,i){return le((r,o)=>{let s;t&&"function"!=typeof t?({duration:e,element:s,connector:i}=t):s=t;const a=new Map,l=A=>{a.forEach(A),A(o)},c=A=>l(y=>y.error(A));let d=0,u=!1;const h=new wt(o,A=>{try{const y=n(A);let _=a.get(y);if(!_){a.set(y,_=i?i():new Hn);const b=function f(A,y){const _=new Yi(b=>{d++;const M=y.subscribe(b);return()=>{M.unsubscribe(),0==--d&&u&&h.unsubscribe()}});return _.key=A,_}(y,_);if(o.next(b),e){const M=Be(_,()=>{_.complete(),M?.unsubscribe()},void 0,void 0,()=>a.delete(y));h.add(rs(e(b)).subscribe(M))}}_.next(s?s(A):A)}catch(y){c(y)}},()=>l(A=>A.complete()),c,()=>a.clear(),()=>(u=!0,0===d));r.subscribe(h)})}function mq(n,t){return t?e=>e.pipe(mq((i,r)=>rs(n(i,r)).pipe(Ge((o,s)=>t(i,o,r,s))))):le((e,i)=>{let r=0,o=null,s=!1;e.subscribe(Be(i,a=>{o||(o=Be(i,void 0,()=>{o=null,s&&i.complete()}),rs(n(a,r++)).subscribe(o))},()=>{s=!0,!o&&i.complete()}))})}function zo(n){return n<=0?()=>U0:le((t,e)=>{let i=0;t.subscribe(Be(e,r=>{++i<=n&&(e.next(r),n<=i&&e.complete())}))})}mh.completeNotification=new mh("C");class Sge extends Kn{constructor(t,e){super()}schedule(t,e=0){return this}}const xE={setInterval(n,t,...e){const{delegate:i}=xE;return i?.setInterval?i.setInterval(n,t,...e):setInterval(n,t,...e)},clearInterval(n){const{delegate:t}=xE;return(t?.clearInterval||clearInterval)(n)},delegate:void 0};class CE extends Sge{constructor(t,e){super(t,e),this.scheduler=t,this.work=e,this.pending=!1}schedule(t,e=0){var i;if(this.closed)return this;this.state=t;const r=this.id,o=this.scheduler;return null!=r&&(this.id=this.recycleAsyncId(o,r,e)),this.pending=!0,this.delay=e,this.id=null!==(i=this.id)&&void 0!==i?i:this.requestAsyncId(o,this.id,e),this}requestAsyncId(t,e,i=0){return xE.setInterval(t.flush.bind(t,this),i)}recycleAsyncId(t,e,i=0){if(null!=i&&this.delay===i&&!1===this.pending)return e;null!=e&&xE.clearInterval(e)}execute(t,e){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;const i=this._execute(t,e);if(i)return i;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))}_execute(t,e){let r,i=!1;try{this.work(t)}catch(o){i=!0,r=o||new Error("Scheduled action threw falsy error")}if(i)return this.unsubscribe(),r}unsubscribe(){if(!this.closed){const{id:t,scheduler:e}=this,{actions:i}=e;this.work=this.state=this.scheduler=null,this.pending=!1,vr(i,this),null!=t&&(this.id=this.recycleAsyncId(e,t,null)),this.delay=null,super.unsubscribe()}}}const S3={now:()=>(S3.delegate||Date).now(),delegate:void 0};class Wy{constructor(t,e=Wy.now){this.schedulerActionCtor=t,this.now=e}schedule(t,e=0,i){return new this.schedulerActionCtor(this,t).schedule(i,e)}}Wy.now=S3.now;class ME extends Wy{constructor(t,e=Wy.now){super(t,e),this.actions=[],this._active=!1}flush(t){const{actions:e}=this;if(this._active)return void e.push(t);let i;this._active=!0;do{if(i=t.execute(t.state,t.delay))break}while(t=e.shift());if(this._active=!1,i){for(;t=e.shift();)t.unsubscribe();throw i}}}const Fge=new class Ige extends ME{}(class Tge extends CE{constructor(t,e){super(t,e),this.scheduler=t,this.work=e}schedule(t,e=0){return e>0?super.schedule(t,e):(this.delay=e,this.state=t,this.scheduler.flush(this),this)}execute(t,e){return e>0||this.closed?super.execute(t,e):this._execute(t,e)}requestAsyncId(t,e,i=0){return null!=i&&i>0||null==i&&this.delay>0?super.requestAsyncId(t,e,i):(t.flush(this),0)}});function od(...n){const t=WB(n);return le((e,i)=>{const r=n.length,o=new Array(r);let s=n.map(()=>!1),a=!1;for(let l=0;l{o[l]=c,!a&&!s[l]&&(s[l]=!0,(a=s.every(sa))&&(s=null))},ja));e.subscribe(Be(i,l=>{if(a){const c=[l,...o];i.next(t?t(...c):c)}}))})}function $y(n,t=sa){return n=n??Pge,le((e,i)=>{let r,o=!0;e.subscribe(Be(i,s=>{const a=t(s);(o||!n(r,a))&&(o=!1,r=a,i.next(s))}))})}function Pge(n,t){return n===t}const jy={};function pn(n,t){if(jy[n]=(jy[n]||0)+1,"function"==typeof t)return T3(n,(...i)=>({...t(...i),type:n}));switch(t?t._as:"empty"){case"empty":return T3(n,()=>({type:n}));case"props":return T3(n,i=>({...i,type:n}));default:throw new Error("Unexpected config.")}}function T3(n,t){return Object.defineProperty(t,"type",{value:n,writable:!1})}const gq="@ngrx/store/init";let $p=(()=>{class n extends wa{constructor(){super({type:gq})}next(e){if("function"==typeof e)throw new TypeError("\n Dispatch expected an object, instead it received a function.\n If you're using the createAction function, make sure to invoke the function\n before dispatching the action. For example, someAction should be someAction().");if(typeof e>"u")throw new TypeError("Actions must be objects");if(typeof e.type>"u")throw new TypeError("Actions must have a type property");super.next(e)}complete(){}ngOnDestroy(){super.complete()}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac})}}return n})();const Hge=[$p],F3=new ut("@ngrx/store Internal Root Guard"),_q=new ut("@ngrx/store Internal Initial State"),D3=new ut("@ngrx/store Initial State"),bq=new ut("@ngrx/store Reducer Factory"),vq=new ut("@ngrx/store Internal Reducer Factory Provider"),yq=new ut("@ngrx/store Initial Reducers"),k3=new ut("@ngrx/store Internal Initial Reducers"),wq=new ut("@ngrx/store Store Features"),xq=new ut("@ngrx/store Internal Store Reducers"),B3=new ut("@ngrx/store Internal Feature Reducers"),Cq=new ut("@ngrx/store Internal Feature Configs"),P3=new ut("@ngrx/store Internal Store Features"),Mq=new ut("@ngrx/store Internal Feature Reducers Token"),R3=new ut("@ngrx/store Feature Reducers"),Eq=new ut("@ngrx/store User Provided Meta Reducers"),EE=new ut("@ngrx/store Meta Reducers"),Sq=new ut("@ngrx/store Internal Resolved Meta Reducers"),Tq=new ut("@ngrx/store User Runtime Checks Config"),Iq=new ut("@ngrx/store Internal User Runtime Checks Config"),Xy=new ut("@ngrx/store Internal Runtime Checks"),Ky=new ut("@ngrx/store Check if Action types are unique");function jp(n,t={}){const e=Object.keys(n),i={};for(let o=0;oo(r),e(t))}}function kq(n,t){return Array.isArray(t)&&t.length>0&&(n=Dq.apply(null,[...t,n])),(e,i)=>{const r=n(e);return(o,s)=>r(o=void 0===o?i:o,s)}}new ut("@ngrx/store Root Store Provider"),new ut("@ngrx/store Feature State Provider");class SE extends Yi{}class Bq extends $p{}let Yy=(()=>{class n extends wa{get currentReducers(){return this.reducers}constructor(e,i,r,o){super(o(r,i)),this.dispatcher=e,this.initialState=i,this.reducers=r,this.reducerFactory=o}addFeature(e){this.addFeatures([e])}addFeatures(e){const i=e.reduce((r,{reducers:o,reducerFactory:s,metaReducers:a,initialState:l,key:c})=>{const d="function"==typeof o?function Qge(n){const t=Array.isArray(n)&&n.length>0?Dq(...n):e=>e;return(e,i)=>(e=t(e),(r,o)=>e(r=void 0===r?i:r,o))}(a)(o,l):kq(s,a)(o,l);return r[c]=d,r},{});this.addReducers(i)}removeFeature(e){this.removeFeatures([e])}removeFeatures(e){this.removeReducers(e.map(i=>i.key))}addReducer(e,i){this.addReducers({[e]:i})}addReducers(e){this.reducers={...this.reducers,...e},this.updateReducers(Object.keys(e))}removeReducer(e){this.removeReducers([e])}removeReducers(e){e.forEach(i=>{this.reducers=function Vge(n,t){return Object.keys(n).filter(e=>e!==t).reduce((e,i)=>Object.assign(e,{[i]:n[i]}),{})}(this.reducers,i)}),this.updateReducers(e)}updateReducers(e){this.next(this.reducerFactory(this.reducers,this.initialState)),this.dispatcher.next({type:"@ngrx/store/update-reducers",features:e})}ngOnDestroy(){this.complete()}static{this.\u0275fac=function(i){return new(i||n)(ge(Bq),ge(D3),ge(yq),ge(bq))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac})}}return n})();const qge=[Yy,{provide:SE,useExisting:Yy},{provide:Bq,useExisting:$p}];let Zy=(()=>{class n extends Hn{ngOnDestroy(){this.complete()}static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=Zr(n)))(r||n)}})()}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac})}}return n})();const Gge=[Zy];class Pq extends Yi{}let jr=(()=>{class n extends wa{static{this.INIT=gq}constructor(e,i,r,o){super(o);const c=e.pipe(ZB(Fge)).pipe(od(i)).pipe(function kge(n,t){return le(function Dge(n,t,e,i,r){return(o,s)=>{let a=e,l=t,c=0;o.subscribe(Be(s,d=>{const u=c++;l=a?n(l,d,u):(a=!0,d),i&&s.next(l)},r&&(()=>{a&&s.next(l),s.complete()})))}}(n,t,arguments.length>=2,!0))}(Wge,{state:o}));this.stateSubscription=c.subscribe(({state:d,action:u})=>{this.next(d),r.next(u)}),this.state=function Aq(n,t){const e=!t?.manualCleanup;e&&!t?.injector&&op();const i=e?t?.injector?.get(Ud)??qt(Ud):null;let r;r=yk(t?.requireSync?{kind:0}:{kind:1,value:t?.initialValue});const o=n.subscribe({next:s=>r.set({kind:1,value:s}),error:s=>{if(t?.rejectErrors)throw s;r.set({kind:2,error:s})}});return i?.onDestroy(o.unsubscribe.bind(o)),MV(()=>{const s=r();switch(s.kind){case 1:return s.value;case 2:throw s.error;case 0:throw new dt(601,"`toSignal()` called with `requireSync` but `Observable` did not emit synchronously.")}})}(this,{manualCleanup:!0,requireSync:!0})}ngOnDestroy(){this.stateSubscription.unsubscribe(),this.complete()}static{this.\u0275fac=function(i){return new(i||n)(ge($p),ge(SE),ge(Zy),ge(D3))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac})}}return n})();function Wge(n={state:void 0},[t,e]){const{state:i}=n;return{state:e(i,t),action:t}}const $ge=[jr,{provide:Pq,useExisting:jr}];let Xt=(()=>{class n extends Yi{constructor(e,i,r){super(),this.actionsObserver=i,this.reducerManager=r,this.source=e,this.state=e.state}select(e,...i){return Xge.call(null,e,...i)(this)}selectSignal(e,i){return MV(()=>e(this.state()),i)}lift(e){const i=new n(this,this.actionsObserver,this.reducerManager);return i.operator=e,i}dispatch(e){this.actionsObserver.next(e)}next(e){this.actionsObserver.next(e)}error(e){this.actionsObserver.error(e)}complete(){this.actionsObserver.complete()}addReducer(e,i){this.reducerManager.addReducer(e,i)}removeReducer(e){this.reducerManager.removeReducer(e)}static{this.\u0275fac=function(i){return new(i||n)(ge(Pq),ge($p),ge(Yy))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac})}}return n})();const jge=[Xt];function Xge(n,t,...e){return function(r){let o;if("string"==typeof n){const s=[t,...e].filter(Boolean);o=r.pipe(function Bge(...n){const t=n.length;if(0===t)throw new Error("list of properties cannot be empty.");return Ge(e=>{let i=e;for(let r=0;rn(s,t)))}return o.pipe($y())}}const O3="https://ngrx.io/guide/store/configuration/runtime-checks";function Rq(n){return void 0===n}function Lq(n){return null===n}function Oq(n){return Array.isArray(n)}function Nq(n){return"object"==typeof n&&null!==n}function N3(n){return"function"==typeof n}function U3(n,t){return n===t}function H3(n,t=U3,e=U3){let o,i=null,r=null;return{memoized:function c(){if(void 0!==o)return o.result;if(!i)return r=n.apply(null,arguments),i=arguments,r;if(!function i0e(n,t,e){for(let i=0;i"function"==typeof t)}(i[0])&&(i=function l0e(n){const t=Object.values(n),e=Object.keys(n);return[...t,(...r)=>e.reduce((o,s,a)=>({...o,[s]:r[a]}),{})]}(i[0]));const r=i.slice(0,i.length-1),o=i[i.length-1],s=r.filter(d=>d.release&&"function"==typeof d.release),a=n(function(...d){return o.apply(null,d)}),l=H3(function(d,u){return t.stateFn.apply(null,[d,r,u,a])});return Object.assign(l.memoized,{release:function c(){l.reset(),a.reset(),s.forEach(d=>d.release())},projector:a.memoized,setResult:l.setResult,clearResult:l.clearResult})}}(H3)(...n)}function r0e(n,t,e,i){if(void 0===e){const o=t.map(s=>s(n));return i.memoized.apply(null,o)}const r=t.map(o=>o(n,e));return i.memoized.apply(null,[...r,e])}function u0e(n){return n instanceof ut?qt(n):n}function h0e(n,t){return t.map((e,i)=>{if(n[i]instanceof ut){const r=qt(n[i]);return{key:e.key,reducerFactory:r.reducerFactory?r.reducerFactory:jp,metaReducers:r.metaReducers?r.metaReducers:[],initialState:r.initialState}}return e})}function f0e(n){return n.map(t=>t instanceof ut?qt(t):t)}function V3(n){return"function"==typeof n?n():n}function m0e(n,t){return n.concat(t)}function p0e(){if(qt(Xt,{optional:!0,skipSelf:!0}))throw new TypeError("The root Store has been provided more than once. Feature modules should provide feature states instead.");return"guarded"}function Q3(n){Object.freeze(n);const t=N3(n);return Object.getOwnPropertyNames(n).forEach(e=>{if(!e.startsWith("\u0275")&&function t0e(n,t){return Object.prototype.hasOwnProperty.call(n,t)}(n,e)&&(!t||"caller"!==e&&"callee"!==e&&"arguments"!==e)){const i=n[e];(Nq(i)||N3(i))&&!Object.isFrozen(i)&&Q3(i)}}),n}function z3(n,t=[]){return(Rq(n)||Lq(n))&&0===t.length?{path:["root"],value:n}:Object.keys(n).reduce((i,r)=>{if(i)return i;const o=n[r];return function e0e(n){return N3(n)&&n.hasOwnProperty("\u0275cmp")}(o)?i:!(Rq(o)||Lq(o)||function Zge(n){return"number"==typeof n}(o)||function Yge(n){return"boolean"==typeof n}(o)||function Kge(n){return"string"==typeof n}(o)||Oq(o))&&(function Uq(n){if(!function Jge(n){return Nq(n)&&!Oq(n)}(n))return!1;const t=Object.getPrototypeOf(n);return t===Object.prototype||null===t}(o)?z3(o,[...t,r]):{path:[...t,r],value:o})},!1)}function Vq(n,t){if(!1===n)return;const e=n.path.join("."),i=new Error(`Detected unserializable ${t} at "${e}". ${O3}#strict${t}serializability`);throw i.value=n.value,i.unserializablePath=e,i}function b0e(n){return{strictStateSerializability:!1,strictActionSerializability:!1,strictStateImmutability:!1,strictActionImmutability:!1,strictActionWithinNgZone:!1,strictActionTypeUniqueness:!1}}function v0e({strictActionSerializability:n,strictStateSerializability:t}){return e=>n||t?function g0e(n,t){return function(e,i){t.action(i)&&Vq(z3(i),"action");const r=n(e,i);return t.state()&&Vq(z3(r),"state"),r}}(e,{action:i=>n&&!q3(i),state:()=>t}):e}function y0e({strictActionImmutability:n,strictStateImmutability:t}){return e=>n||t?function A0e(n,t){return function(e,i){const r=t.action(i)?Q3(i):i,o=n(e,r);return t.state()?Q3(o):o}}(e,{action:i=>n&&!q3(i),state:()=>t}):e}function q3(n){return n.type.startsWith("@ngrx")}function w0e({strictActionWithinNgZone:n}){return t=>n?function _0e(n,t){return function(e,i){if(t.action(i)&&!kn.isInAngularZone())throw new Error(`Action '${i.type}' running outside NgZone. ${O3}#strictactionwithinngzone`);return n(e,i)}}(t,{action:e=>n&&!q3(e)}):t}function x0e(n){return[{provide:Iq,useValue:n},{provide:Tq,useFactory:C0e,deps:[Iq]},{provide:Xy,deps:[Tq],useFactory:b0e},{provide:EE,multi:!0,deps:[Xy],useFactory:y0e},{provide:EE,multi:!0,deps:[Xy],useFactory:v0e},{provide:EE,multi:!0,deps:[Xy],useFactory:w0e}]}function Qq(){return[{provide:Ky,multi:!0,deps:[Xy],useFactory:M0e}]}function C0e(n){return n}function M0e(n){if(!n.strictActionTypeUniqueness)return;const t=Object.entries(jy).filter(([,e])=>e>1).map(([e])=>e);if(t.length)throw new Error(`Action types are registered more than once, ${t.map(e=>`"${e}"`).join(", ")}. ${O3}#strictactiontypeuniqueness`)}function zq(n={},t={}){return[{provide:F3,useFactory:p0e},{provide:_q,useValue:t.initialState},{provide:D3,useFactory:V3,deps:[_q]},{provide:k3,useValue:n},{provide:xq,useExisting:n instanceof ut?n:k3},{provide:yq,deps:[k3,[new Co(xq)]],useFactory:u0e},{provide:Eq,useValue:t.metaReducers?t.metaReducers:[]},{provide:Sq,deps:[EE,Eq],useFactory:m0e},{provide:vq,useValue:t.reducerFactory?t.reducerFactory:jp},{provide:bq,deps:[vq,Sq],useFactory:kq},Hge,qge,Gge,$ge,jge,x0e(t.runtimeChecks),Qq()]}function qq(n,t,e={}){return[{provide:Cq,multi:!0,useValue:n instanceof Object?{}:e},{provide:wq,multi:!0,useValue:{key:n instanceof Object?n.name:n,reducerFactory:e instanceof ut||!e.reducerFactory?jp:e.reducerFactory,metaReducers:e instanceof ut||!e.metaReducers?[]:e.metaReducers,initialState:e instanceof ut||!e.initialState?void 0:e.initialState}},{provide:P3,deps:[Cq,wq],useFactory:h0e},{provide:B3,multi:!0,useValue:n instanceof Object?n.reducer:t},{provide:Mq,multi:!0,useExisting:t instanceof ut?t:B3},{provide:R3,multi:!0,deps:[B3,[new Co(Mq)]],useFactory:f0e},Qq()]}let TE=(()=>{class n{constructor(e,i,r,o,s,a){}static{this.\u0275fac=function(i){return new(i||n)(ge($p),ge(SE),ge(Zy),ge(Xt),ge(F3,8),ge(Ky,8))}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({})}}return n})(),G3=(()=>{class n{constructor(e,i,r,o,s){this.features=e,this.featureReducers=i,this.reducerManager=r;const a=e.map((l,c)=>{const u=i.shift()[c];return{...l,reducers:u,initialState:V3(l.initialState)}});r.addFeatures(a)}ngOnDestroy(){this.reducerManager.removeFeatures(this.features)}static{this.\u0275fac=function(i){return new(i||n)(ge(P3),ge(R3),ge(Yy),ge(TE),ge(Ky,8))}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({})}}return n})(),F0e=(()=>{class n{static forRoot(e,i){return{ngModule:TE,providers:[...zq(e,i)]}}static forFeature(e,i,r={}){return{ngModule:G3,providers:[...qq(e,i,r)]}}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({})}}return n})();function _n(...n){return{reducer:n.pop(),types:n.map(i=>i.type)}}function bi(n,...t){const e=new Map;for(const i of t)for(const r of i.types){const o=e.get(r);e.set(r,o?(a,l)=>i.reducer(o(a,l),l):i.reducer)}return function(i=n,r){const o=e.get(r.type);return o?o(i,r):i}}const D0e={dispatch:!0,functional:!1,useEffectsErrorHandler:!0},IE="__@ngrx/effects_create__";function ho(n,t={}){const e=t.functional?n:n(),i={...D0e,...t};return Object.defineProperty(e,IE,{value:i}),e}function Wq(n){return Object.getPrototypeOf(n)}function W3(n){return"function"==typeof n}function $3(n){return n.filter(W3)}function R0e(n,t,e){const i=Wq(n),o=i&&"Object"!==i.constructor.name?i.constructor.name:null,s=function Gq(n){return function k0e(n){return Object.getOwnPropertyNames(n).filter(i=>!(!n[i]||!n[i].hasOwnProperty(IE))&&n[i][IE].hasOwnProperty("dispatch")).map(i=>({propertyName:i,...n[i][IE]}))}(n)}(n).map(({propertyName:a,dispatch:l,useEffectsErrorHandler:c})=>{const d="function"==typeof n[a]?n[a]():n[a],u=c?e(d,t):d;return!1===l?u.pipe(dq()):u.pipe(function Mge(){return le((n,t)=>{n.subscribe(Be(t,e=>{t.next(mh.createNext(e))},()=>{t.next(mh.createComplete()),t.complete()},e=>{t.next(mh.createError(e)),t.complete()}))})}()).pipe(Ge(f=>({effect:n[a],notification:f,propertyName:a,sourceName:o,sourceInstance:n})))});return ql(...s)}function $q(n,t,e=10){return n.pipe(E3(i=>(t&&t.handleError(i),e<=1?n:$q(n,t,e-1))))}let sd=(()=>{class n extends Yi{constructor(e){super(),e&&(this.source=e)}lift(e){const i=new n;return i.source=this,i.operator=e,i}static{this.\u0275fac=function(i){return new(i||n)(ge(Zy))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();function La(...n){return Vi(t=>n.some(e=>"string"==typeof e?e===t.type:e.type===t.type))}const jq=new ut("@ngrx/effects Internal Root Guard"),FE=new ut("@ngrx/effects User Provided Effects"),j3=new ut("@ngrx/effects Internal Root Effects"),Xq=new ut("@ngrx/effects Internal Root Effects Instances"),Kq=new ut("@ngrx/effects Internal Feature Effects"),Yq=new ut("@ngrx/effects Internal Feature Effects Instance Groups"),O0e=new ut("@ngrx/effects Effects Error Handler",{providedIn:"root",factory:()=>$q}),Zq="@ngrx/effects/init";pn(Zq);function j0e(n){return X3(n,"ngrxOnInitEffects")}function X3(n,t){return n&&t in n&&"function"==typeof n[t]}let K3=(()=>{class n extends Hn{constructor(e,i){super(),this.errorHandler=e,this.effectsErrorHandler=i}addEffects(e){this.next(e)}toActions(){return this.pipe(fq(e=>function B0e(n){return!!n.constructor&&"Object"!==n.constructor.name&&"Function"!==n.constructor.name}(e)?Wq(e):e),$f(e=>e.pipe(fq(X0e))),$f(e=>{const i=e.pipe(mq(o=>function K0e(n,t){return e=>{const i=R0e(e,n,t);return function W0e(n){return X3(n,"ngrxOnRunEffects")}(e)?e.ngrxOnRunEffects(i):i}}(this.errorHandler,this.effectsErrorHandler)(o)),Ge(o=>(function U0e(n,t){if("N"===n.notification.kind){const e=n.notification.value;!function H0e(n){return"function"!=typeof n&&n&&n.type&&"string"==typeof n.type}(e)&&t.handleError(new Error(`Effect ${function V0e({propertyName:n,sourceInstance:t,sourceName:e}){const i="function"==typeof t[n];return e?`"${e}.${String(n)}${i?"()":""}"`:`"${String(n)}()"`}(n)} dispatched an invalid action: ${function Q0e(n){try{return JSON.stringify(n)}catch{return n}}(e)}`))}}(o,this.errorHandler),o.notification)),Vi(o=>"N"===o.kind&&null!=o.value),function Ege(){return le((n,t)=>{n.subscribe(Be(t,e=>hq(e,t)))})}());return ql(i,e.pipe(zo(1),Vi(j0e),Ge(o=>o.ngrxOnInitEffects())))}))}static{this.\u0275fac=function(i){return new(i||n)(ge(Ia),ge(O0e))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();function X0e(n){return function q0e(n){return X3(n,"ngrxOnIdentifyEffects")}(n)?n.ngrxOnIdentifyEffects():""}let Y3=(()=>{class n{get isStarted(){return!!this.effectsSubscription}constructor(e,i){this.effectSources=e,this.store=i,this.effectsSubscription=null}start(){this.effectsSubscription||(this.effectsSubscription=this.effectSources.toActions().subscribe(this.store))}ngOnDestroy(){this.effectsSubscription&&(this.effectsSubscription.unsubscribe(),this.effectsSubscription=null)}static{this.\u0275fac=function(i){return new(i||n)(ge(K3),ge(Xt))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),Jq=(()=>{class n{constructor(e,i,r,o,s,a,l){this.sources=e,i.start();for(const c of o)e.addEffects(c);r.dispatch({type:Zq})}addEffects(e){this.sources.addEffects(e)}static{this.\u0275fac=function(i){return new(i||n)(ge(K3),ge(Y3),ge(Xt),ge(Xq),ge(TE,8),ge(G3,8),ge(jq,8))}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({})}}return n})(),Y0e=(()=>{class n{constructor(e,i,r,o){const s=i.flat();for(const a of s)e.addEffects(a)}static{this.\u0275fac=function(i){return new(i||n)(ge(Jq),ge(Yq),ge(TE,8),ge(G3,8))}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({})}}return n})(),Z0e=(()=>{class n{static forFeature(...e){const i=e.flat(),r=$3(i);return{ngModule:Y0e,providers:[r,{provide:Kq,multi:!0,useValue:i},{provide:FE,multi:!0,useValue:[]},{provide:Yq,multi:!0,useFactory:eG,deps:[Kq,FE]}]}}static forRoot(...e){const i=e.flat(),r=$3(i);return{ngModule:Jq,providers:[r,{provide:j3,useValue:[i]},{provide:jq,useFactory:J0e},{provide:FE,multi:!0,useValue:[]},{provide:Xq,useFactory:eG,deps:[j3,FE]}]}}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({})}}return n})();function eG(n,t){const e=[];for(const i of n)e.push(...i);for(const i of t)e.push(...i);return e.map(i=>function P0e(n){return n instanceof ut||W3(n)}(i)?qt(i):i)}function J0e(){const n=qt(Y3,{optional:!0,skipSelf:!0}),t=qt(j3,{self:!0});if((1!==t.length||0!==t[0].length)&&n)throw new TypeError("EffectsModule.forRoot() called twice. Feature modules should use EffectsModule.forFeature() instead.");return"guarded"}const Xp=pn("SET_IS_LOADING_FILE",{_as:"props",_p:void 0});const ad=p(4999),em=pn("SET_AMOUNT_OF_TOP_LABELS",{_as:"props",_p:void 0}),Jy=pn("SET_COLOR_LABELS",{_as:"props",_p:void 0}),H0=pn("SET_EDGE_HEIGHT",{_as:"props",_p:void 0}),DE=pn("SET_SCREENSHOT_TO_CLIPBOARD_ENABLED",{_as:"props",_p:void 0}),kE=pn("SET_EXPERIMENTAL_FEATURES_ENABLED",{_as:"props",_p:void 0}),e1=pn("SET_ENABLE_FLOOR_LABELS",{_as:"props",_p:void 0}),t1=pn("SET_HIDE_FLAT_BUILDINGS",{_as:"props",_p:void 0}),n1=pn("SET_INVERT_AREA",{_as:"props",_p:void 0}),r1=pn("SET_INVERT_HEIGHT",{_as:"props",_p:void 0}),Z3=pn("SET_IS_EDGE_METRIC_VISIBLE",{_as:"props",_p:void 0}),BE=pn("TOGGLE_IS_EDGE_METRIC_VISIBLE"),J3=pn("SET_IS_COLOR_METRIC_LINKED_TO_HEIGHT_METRIC",{_as:"props",_p:void 0}),eP=pn("TOGGLE_IS_COLOR_METRIC_LINKED_TO_HEIGHT_METRIC"),PE=pn("SET_PRESENTATION_MODE",{_as:"props",_p:void 0}),o1=pn("SET_IS_WHITE_BACKGROUND",{_as:"props",_p:void 0}),s1=pn("SET_LAYOUT_ALGORITHM",{_as:"props",_p:void 0}),ph=pn("SET_MAP_COLORS",{_as:"props",_p:void 0}),RE=pn("INVERT_COLOR_RANGE"),LE=pn("INVERT_DELTA_COLORS"),a1=pn("SET_MAX_TREE_MAP_FILES",{_as:"props",_p:void 0}),OE=pn("SET_RESET_CAMERA_IF_NEW_FILE_IS_LOADED",{_as:"props",_p:void 0}),V0=pn("SET_SCALING",{_as:"props",_p:void 0}),l1=pn("SET_SHARPNESS_MODE",{_as:"props",_p:void 0}),c1=pn("SET_SHOW_METRIC_LABEL_NAME_VALUE",{_as:"props",_p:void 0}),d1=pn("SET_SHOW_METRIC_LABEL_NODE_NAME",{_as:"props",_p:void 0}),u1=pn("SET_SHOW_ONLY_BUILDINGS_WITH_EDGES",{_as:"props",_p:void 0}),Ah=pn("SET_AREA_METRIC",{_as:"props",_p:void 0}),ld=pn("SET_COLOR_METRIC",{_as:"props",_p:void 0}),Q0=pn("SET_COLOR_MODE",{_as:"props",_p:void 0}),Zd=pn("SET_COLOR_RANGE",{_as:"props",_p:void 0}),h1=pn("SET_DISTRIBUTION_METRIC",{_as:"props",_p:void 0}),gh=pn("SET_EDGE_METRIC",{_as:"props",_p:void 0}),_h=pn("SET_HEIGHT_METRIC",{_as:"props",_p:void 0}),z0=pn("SET_MARGIN",{_as:"props",_p:void 0}),tm=pn("SET_SEARCH_PATTERN",{_as:"props",_p:void 0}),NE=pn("SET_SORTING_OPTION",{_as:"props",_p:void 0}),tP=pn("SET_ATTRIBUTE_DESCRIPTORS",{_as:"props",_p:void 0}),nP=pn("SET_ATTRIBUTE_TYPES",{_as:"props",_p:void 0}),iP=pn("UPDATE_ATTRIBUTE_TYPE",{_as:"props",_p:void 0}),rP=pn("SET_BLACKLIST",{_as:"props",_p:void 0}),oP=pn("ADD_BLACKLIST_ITEM",{_as:"props",_p:void 0}),UE=pn("ADD_BLACKLIST_ITEMS",{_as:"props",_p:void 0}),HE=pn("REMOVE_BLACKLIST_ITEM",{_as:"props",_p:void 0}),sP=pn("ADD_BLACKLIST_ITEMS_IF_NOT_RESULTS_IN_EMPTY_MAP",{_as:"props",_p:void 0}),aP=pn("SET_EDGES",{_as:"props",_p:void 0}),nG=pn("ADD_EDGE",{_as:"props",_p:void 0}),iG=pn("REMOVE_EDGE",{_as:"props",_p:void 0}),VE=pn("SET_MARKED_PACKAGES",{_as:"props",_p:void 0}),f1=pn("MARK_PACKAGES",{_as:"props",_p:void 0}),QE=pn("UNMARK_PACKAGE",{_as:"props",_p:void 0});function rG(n,t){this.v=n,this.k=t}function oG(n){return new rG(n,0)}function m1(n){var t,e;function i(o,s){try{var a=n[o](s),l=a.value,c=l instanceof rG;Promise.resolve(c?l.v:l).then(function(d){if(c){var u="return"===o?"return":"next";if(!l.k||d.done)return i(u,d);d=n[u](d).value}r(a.done?"return":"normal",d)},function(d){i("throw",d)})}catch(d){r("throw",d)}}function r(o,s){switch(o){case"return":t.resolve({value:s,done:!0});break;case"throw":t.reject(s);break;default:t.resolve({value:s,done:!1})}(t=t.next)?i(t.key,t.arg):e=null}this._invoke=function(o,s){return new Promise(function(a,l){var c={key:o,arg:s,resolve:a,reject:l,next:null};e?e=e.next=c:(t=e=c,i(o,s))})},"function"!=typeof n.return&&(this.return=void 0)}m1.prototype["function"==typeof Symbol&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},m1.prototype.next=function(n){return this._invoke("next",n)},m1.prototype.throw=function(n){return this._invoke("throw",n)},m1.prototype.return=function(n){return this._invoke("return",n)};const lP=(n,t)=>t.some(e=>n instanceof e);let sG,aG;const cP=new WeakMap,dP=new WeakMap,zE=new WeakMap;let uP={get(n,t,e){if(n instanceof IDBTransaction){if("done"===t)return cP.get(n);if("store"===t)return e.objectStoreNames[1]?void 0:e.objectStore(e.objectStoreNames[0])}return nm(n[t])},set:(n,t,e)=>(n[t]=e,!0),has:(n,t)=>n instanceof IDBTransaction&&("done"===t||"store"===t)||t in n};function lG(n){uP=n(uP)}function s_e(n){return"function"==typeof n?function o_e(n){return function n_e(){return aG||(aG=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}().includes(n)?function(...t){return n.apply(hP(this),t),nm(this.request)}:function(...t){return nm(n.apply(hP(this),t))}}(n):(n instanceof IDBTransaction&&function r_e(n){if(cP.has(n))return;const t=new Promise((e,i)=>{const r=()=>{n.removeEventListener("complete",o),n.removeEventListener("error",s),n.removeEventListener("abort",s)},o=()=>{e(),r()},s=()=>{i(n.error||new DOMException("AbortError","AbortError")),r()};n.addEventListener("complete",o),n.addEventListener("error",s),n.addEventListener("abort",s)});cP.set(n,t)}(n),lP(n,function t_e(){return sG||(sG=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}())?new Proxy(n,uP):n)}function nm(n){if(n instanceof IDBRequest)return function i_e(n){const t=new Promise((e,i)=>{const r=()=>{n.removeEventListener("success",o),n.removeEventListener("error",s)},o=()=>{e(nm(n.result)),r()},s=()=>{i(n.error),r()};n.addEventListener("success",o),n.addEventListener("error",s)});return zE.set(t,n),t}(n);if(dP.has(n))return dP.get(n);const t=s_e(n);return t!==n&&(dP.set(n,t),zE.set(t,n)),t}const hP=n=>zE.get(n),l_e=["get","getKey","getAll","getAllKeys","count"],c_e=["put","add","delete","clear"],fP=new Map;function cG(n,t){if(!(n instanceof IDBDatabase)||t in n||"string"!=typeof t)return;if(fP.get(t))return fP.get(t);const e=t.replace(/FromIndex$/,""),i=t!==e,r=c_e.includes(e);if(!(e in(i?IDBIndex:IDBObjectStore).prototype)||!r&&!l_e.includes(e))return;const o=function(){var s=B(function*(a,...l){const c=this.transaction(a,r?"readwrite":"readonly");let d=c.store;return i&&(d=d.index(l.shift())),(yield Promise.all([d[e](...l),r&&c.done]))[0]});return function(l){return s.apply(this,arguments)}}();return fP.set(t,o),o}lG(n=>({...n,get:(t,e,i)=>cG(t,e)||n.get(t,e,i),has:(t,e)=>!!cG(t,e)||n.has(t,e)}));const d_e=["continue","continuePrimaryKey","advance"],dG={},mP=new WeakMap,uG=new WeakMap,u_e={get(n,t){if(!d_e.includes(t))return n[t];let e=dG[t];return e||(e=dG[t]=function(...i){mP.set(this,uG.get(this)[t](...i))}),e}};function h_e(){return pP.apply(this,arguments)}function pP(){return pP=function e_e(n){return function(){return new m1(n.apply(this,arguments))}}(function*(...n){let t=this;if(t instanceof IDBCursor||(t=yield oG(t.openCursor(...n))),!t)return;const e=new Proxy(t,u_e);for(uG.set(e,t),zE.set(e,hP(t));t;)yield e,t=yield oG(mP.get(e)||t.continue()),mP.delete(e)}),pP.apply(this,arguments)}function hG(n,t){return t===Symbol.asyncIterator&&lP(n,[IDBIndex,IDBObjectStore,IDBCursor])||"iterate"===t&&lP(n,[IDBIndex,IDBObjectStore])}lG(n=>({...n,get:(t,e,i)=>hG(t,e)?h_e:n.get(t,e,i),has:(t,e)=>hG(t,e)||n.has(t,e)}));const f_e="CodeCharta",m_e=1,p1="ccstate",fG="id",AP=1001;function gP(){return(gP=B(function*(n){const e=(yield yP()).transaction(p1,"readwrite");yield e.store.put({[fG]:AP,state:n}),yield e.done})).apply(this,arguments)}function _P(){return bP.apply(this,arguments)}function bP(){return(bP=B(function*(){return(yield(yield yP()).get(p1,AP))?.state||null})).apply(this,arguments)}function vP(){return(vP=B(function*(){const t=(yield yP()).transaction(p1,"readwrite");yield t.store.delete(AP),yield t.done})).apply(this,arguments)}function yP(){return wP.apply(this,arguments)}function wP(){return(wP=B(function*(){return function a_e(n,t,{blocked:e,upgrade:i,blocking:r,terminated:o}={}){const s=indexedDB.open(n,t),a=nm(s);return i&&s.addEventListener("upgradeneeded",l=>{i(nm(s.result),l.oldVersion,l.newVersion,nm(s.transaction),l)}),e&&s.addEventListener("blocked",l=>e(l.oldVersion,l.newVersion,l)),a.then(l=>{o&&l.addEventListener("close",()=>o()),r&&l.addEventListener("versionchange",c=>r(c.oldVersion,c.newVersion,c))}).catch(()=>{}),a}(f_e,m_e,{upgrade(n){n.objectStoreNames.contains(p1)||n.createObjectStore(p1,{keyPath:fG})}})})).apply(this,arguments)}const g_e=JSON.parse('{"projectName":"Sample Project with Edges","apiVersion":"1.2","fileChecksum":"valid-md5-sample1","nodes":[{"name":"root","type":"Folder","attributes":{},"children":[{"name":"sample1OnlyLeaf.scss","type":"File","attributes":{"rloc":400,"functions":10,"complexity":100,"pairingRate":32,"avgCommits":17},"link":"http://www.google.de"},{"name":"bigLeaf.ts","type":"File","attributes":{"rloc":100,"functions":10,"complexity":1,"pairingRate":77,"avgCommits":56},"link":"http://www.google.de"},{"name":"ParentLeaf","type":"Folder","attributes":{},"children":[{"name":"smallLeaf.html","type":"File","attributes":{"rloc":30,"functions":100,"complexity":100,"pairingRate":60,"avgCommits":51}},{"name":"otherSmallLeaf.ts","type":"File","attributes":{"rloc":70,"functions":1000,"complexity":10,"pairingRate":65,"avgCommits":22}}]}]}],"edges":[{"fromNodeName":"/root/bigLeaf.ts","toNodeName":"/root/ParentLeaf/smallLeaf.html","attributes":{"pairingRate":89,"avgCommits":34}},{"fromNodeName":"/root/sample1OnlyLeaf.scss","toNodeName":"/root/ParentLeaf/smallLeaf.html","attributes":{"pairingRate":32,"avgCommits":17}},{"fromNodeName":"/root/ParentLeaf/otherSmallLeaf.ts","toNodeName":"/root/bigLeaf.ts","attributes":{"pairingRate":65,"avgCommits":22}}],"attributeTypes":{"nodes":{"rloc":"absolute","functions":"absolute","complexity":"absolute","pairingRate":"relative"},"edges":{"pairingRate":"relative","avgCommits":"absolute"}}}'),__e=JSON.parse('{"projectName":"Sample Project","apiVersion":"1.2","fileChecksum":"valid-md5-sample2","nodes":[{"name":"root","type":"Folder","attributes":{},"children":[{"name":"bigLeaf.ts","type":"File","attributes":{"rloc":120,"functions":10,"complexity":1},"link":"http://www.google.de"},{"name":"ParentLeaf","type":"Folder","attributes":{},"children":[{"name":"smallLeaf.html","type":"File","attributes":{"rloc":30,"functions":101,"complexity":80}},{"name":"otherSmallLeaf.ts","type":"File","attributes":{"rloc":70,"functions":10,"complexity":100}},{"name":"sample2LeafMergedIn.kt","type":"File","attributes":{"rloc":600,"functions":10,"complexity":1},"link":"http://www.google.de"}]}]}],"attributeTypes":{"nodes":{"rloc":"absolute","functions":"absolute","complexity":"absolute"}}}');var Zi=function(n){return n.Reference="Reference",n.Comparison="Comparison",n.Partial="Partial",n.None="None",n}(Zi||{});const xP=".png",mG="~",qE="_";function pG(n){return n.some(t=>t.selectedAs!==Zi.None)}function GE(n){return n.filter(t=>t.selectedAs!==Zi.None)}function Jd(n){return n.some(t=>t.selectedAs===Zi.Reference)}function AG(n){return n.some(t=>t.selectedAs===Zi.Partial)}function WE(n,t){return n.fileMeta.fileChecksum===t.fileMeta.fileChecksum}const q0=new ME(CE),E_e=q0;function G0(n,t=q0){return le((e,i)=>{let r=null,o=null,s=null;const a=()=>{if(r){r.unsubscribe(),r=null;const c=o;o=null,i.next(c)}};function l(){const c=s+n,d=t.now();if(d{o=c,s=t.now(),r||(r=t.schedule(l,n),i.add(r))},()=>{a(),i.complete()},void 0,()=>{o=r=null}))})}function Dr(n,t,e){const i=tn(n)||t||e?{next:n,error:t,complete:e}:n;return i?le((r,o)=>{var s;null===(s=i.subscribe)||void 0===s||s.call(i);let a=!0;r.subscribe(Be(o,l=>{var c;null===(c=i.next)||void 0===c||c.call(i,l),o.next(l)},()=>{var l;a=!1,null===(l=i.complete)||void 0===l||l.call(i),o.complete()},l=>{var c;a=!1,null===(c=i.error)||void 0===c||c.call(i,l),o.error(l)},()=>{var l,c;a&&(null===(l=i.unsubscribe)||void 0===l||l.call(i)),null===(c=i.finalize)||void 0===c||c.call(i)}))}):sa}const A1=n=>n.fileSettings,eu=Zt(A1,n=>n.blacklist),bh=n=>n.files,tu=Zt(bh,GE);function S_e(n){var t=0,e=n.children,i=e&&e.length;if(i)for(;--i>=0;)t+=e[i].value;else t=1;n.value=t}function bo(n,t){n instanceof Map?(n=[void 0,n],void 0===t&&(t=q_e)):void 0===t&&(t=z_e);for(var i,o,s,a,l,e=new $E(n),r=[e];i=r.pop();)if((s=t(i.data))&&(l=(s=Array.from(s)).length))for(i.children=s,a=l-1;a>=0;--a)r.push(o=s[a]=new $E(s[a])),o.parent=i,o.depth=i.depth+1;return e.eachBefore(W_e)}function z_e(n){return n.children}function q_e(n){return Array.isArray(n)?n[1]:null}function G_e(n){void 0!==n.data.value&&(n.value=n.data.value),n.data=n.data.data}function W_e(n){var t=0;do{n.height=t}while((n=n.parent)&&n.height<++t)}function $E(n){this.data=n,this.depth=this.height=0,this.parent=null}$E.prototype=bo.prototype={constructor:$E,count:function T_e(){return this.eachAfter(S_e)},each:function I_e(n,t){let e=-1;for(const i of this)n.call(t,i,++e,this);return this},eachAfter:function D_e(n,t){for(var o,s,a,e=this,i=[e],r=[],l=-1;e=i.pop();)if(r.push(e),o=e.children)for(s=0,a=o.length;s=0;--o)i.push(r[o]);return this},find:function k_e(n,t){let e=-1;for(const i of this)if(n.call(t,i,++e,this))return i},sum:function B_e(n){return this.eachAfter(function(t){for(var e=+n(t.data)||0,i=t.children,r=i&&i.length;--r>=0;)e+=i[r].value;t.value=e})},sort:function P_e(n){return this.eachBefore(function(t){t.children&&t.children.sort(n)})},path:function R_e(n){for(var t=this,e=function L_e(n,t){if(n===t)return n;var e=n.ancestors(),i=t.ancestors(),r=null;for(n=e.pop(),t=i.pop();n===t;)r=n,n=e.pop(),t=i.pop();return r}(t,n),i=[t];t!==e;)i.push(t=t.parent);for(var r=i.length;n!==e;)i.splice(r,0,n),n=n.parent;return i},ancestors:function O_e(){for(var n=this,t=[n];n=n.parent;)t.push(n);return t},descendants:function N_e(){return Array.from(this)},leaves:function U_e(){var n=[];return this.eachBefore(function(t){t.children||n.push(t)}),n},links:function H_e(){var n=this,t=[];return n.each(function(e){e!==n&&t.push({source:e.parent,target:e})}),t},copy:function Q_e(){return bo(this).eachBefore(G_e)},[Symbol.iterator]:function*V_e(){var t,i,r,o,n=this,e=[n];do{for(t=e.reverse(),e=[];n=t.pop();)if(yield n,i=n.children)for(r=0,o=i.length;r=7340032:return YE.BIG_MAP;case e>=2097152:return YE.MEDIUM_MAP;default:return YE.SMALL_MAP}}const yG=n=>{n.sort((t,e)=>{const i=t.name.toLowerCase(),r=e.name.toLowerCase();return i>r?1:r>i?-1:0})};function ibe(n,t){const e=new Map,i=new Set;for(const{file:o}of n)for(const{data:s}of bo(o.map))i.add(s.path);for(const o of n)for(const s of o.file.settings.fileSettings.edges)if(rbe(s,i,t))for(const a of Object.keys(s.attributes))sbe(obe(e,a),s.fromNodeName,s.toNodeName);const r=function abe(n){const t=[];for(const[e,i]of n){const r=[];let o=0,s=Number.MAX_SAFE_INTEGER;for(const a of i.values()){const l=a.incoming+a.outgoing;r.push(l),l>o&&(o=l),l<=s&&(s=l)}t.push({name:e,values:r,maxValue:o,minValue:s})}return t}(e);return yG(r),{edgeMetricData:r,nodeEdgeMetricsMap:e}}function rbe(n,t,e){return!(!t.has(n.fromNodeName)||!t.has(n.toNodeName)||vh(n.fromNodeName,e,"exclude")||vh(n.toNodeName,e,"exclude"))}function obe(n,t){let e=n.get(t);return e||(e=new Map,n.set(t,e)),e}function sbe(n,t,e){const i=n.get(t);void 0===i?n.set(t,{incoming:0,outgoing:1}):i.outgoing+=1;const r=n.get(e);void 0===r?n.set(e,{incoming:1,outgoing:0}):r.incoming+=1}const JE="unary",wG=(n,t)=>{if(0===n.length)return[];const e=new Map,i=new Map,r=new Map;for(const{file:s}of n)for(const a of bo(s.map))if(Ro(a)&&a.data.path&&!vh(a.data.path,t,"exclude"))for(const l of Object.keys(a.data.attributes)){const c=i.get(l),d=r.get(l);e.get(l)||e.set(l,[]),e.get(l).push(a.data.attributes[l]),(void 0===d||d>=a.data.attributes[l])&&r.set(l,a.data.attributes[l]),(void 0===c||c<=a.data.attributes[l])&&i.set(l,a.data.attributes[l])}const o=[];i.set(JE,1),r.set(JE,1);for(const[s,a]of i)o.push({name:s,values:e.get(s),maxValue:a,minValue:r.get(s)});return yG(o),o},Gs=Zt(tu,eu,(n,t)=>({nodeMetricData:wG(n,t),...ibe(n,t)})),lbe=[gh,_h,ld,Ah];var iu=function(n){return n.areaMetric="area",n.heightMetric="height",n.colorMetric="color",n.edgeMetric="edge",n}(iu||{});let cbe=(()=>{class n{constructor(e,i,r,o){this.loadInitialFileService=e,this.actions$=i,this.state=r,this.store=o,this.saveMetricsInQueryParameters$=ho(()=>this.actions$.pipe(La(...lbe),od(this.store.select(Gs)),Ge(s=>s[1].edgeMetricData&&s[1].edgeMetricData.length>0),G0(100),Dr(s=>{this.updateMetricQueryParameters(s)})),{dispatch:!1})}updateMetricQueryParameters(e){const i=this.state.getValue(),{edgeMetric:r,heightMetric:o,colorMetric:s,areaMetric:a}=i.dynamicSettings;this.loadInitialFileService.checkFileQueryParameterPresent()&&(this.addOrUpdateQueryParameter(iu.areaMetric,a),this.addOrUpdateQueryParameter(iu.heightMetric,o),this.addOrUpdateQueryParameter(iu.colorMetric,s),e?this.addOrUpdateQueryParameter(iu.edgeMetric,r):this.deleteQueryParameterIfExists(iu.edgeMetric))}addOrUpdateQueryParameter(e,i){const r=new URL(window.location.href),o=r.search.slice(1),s=o.length>0?o.split("&"):[],a=[];let l=!1;for(const c of s)c.split("=")[0]===e?(a.push(`${e}=${encodeURIComponent(i)}`),l=!0):a.push(c);l||a.push(`${e}=${encodeURIComponent(i)}`),r.search=a.join("&"),window.history.replaceState(null,"",r.toString())}deleteQueryParameterIfExists(e){const i=new URL(window.location.href),r=i.search.slice(1),o=r.length>0?r.split("&"):[],s=[];for(const a of o){const[l,c]=a.split("=");l!==e&&s.push(`${l}=${c}`)}i.search=s.join("&"),window.history.replaceState(null,"",i.toString())}static{this.\u0275fac=function(i){return new(i||n)(ge(YR),ge(sd),ge(jr),ge(Xt))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac})}}return n})();const $0=pn("SET_IS_LOADING_MAP",{_as:"props",_p:void 0}),g1=pn("SET_FILES",{_as:"props",_p:void 0}),xG=pn("ADD_FILE",{_as:"props",_p:void 0}),MP=pn("REMOVE_FILE",{_as:"props",_p:void 0}),_1=pn("SET_STANDARD",{_as:"props",_p:void 0}),EP=pn("SET_STANDARD_BY_NAMES",{_as:"props",_p:void 0}),SP=pn("SET_ALL"),TP=pn("INVERT_STANDARD"),IP=pn("SWITCH_REFERENCE_AND_COMPARISON"),FP=pn("SET_DELTA_COMPARISON",{_as:"props",_p:void 0}),DP=pn("SET_DELTA_REFERENCE",{_as:"props",_p:void 0}),e2=pn("SET_DELTA",{_as:"props",_p:void 0}),t2=[g1,xG,MP,_1,EP,SP,TP,IP,FP,DP,e2];function ta(n){return null!=n&&"false"!=`${n}`}function im(n,t=0){return function dbe(n){return!isNaN(parseFloat(n))&&!isNaN(Number(n))}(n)?Number(n):t}function n2(n){return Array.isArray(n)?n:[n]}function bs(n){return null==n?"":"string"==typeof n?n:`${n}px`}function yh(n){return n instanceof Vn?n.nativeElement:n}const ube=["addListener","removeListener"],hbe=["addEventListener","removeEventListener"],fbe=["on","off"];function j0(n,t,e,i){if(tn(e)&&(i=e,e=void 0),i)return j0(n,t,e).pipe(o3(i));const[r,o]=function Abe(n){return tn(n.addEventListener)&&tn(n.removeEventListener)}(n)?hbe.map(s=>a=>n[s](t,a,e)):function mbe(n){return tn(n.addListener)&&tn(n.removeListener)}(n)?ube.map(CG(n,t)):function pbe(n){return tn(n.on)&&tn(n.off)}(n)?fbe.map(CG(n,t)):[];if(!r&&YB(n))return $f(s=>j0(s,t,e))(rs(n));if(!r)throw new TypeError("Invalid event target");return new Yi(s=>{const a=(...l)=>s.next(1o(a)})}function CG(n,t){return e=>i=>n[e](t,i)}const b1={schedule(n){let t=requestAnimationFrame,e=cancelAnimationFrame;const{delegate:i}=b1;i&&(t=i.requestAnimationFrame,e=i.cancelAnimationFrame);const r=t(o=>{e=void 0,n(o)});return new Kn(()=>e?.(r))},requestAnimationFrame(...n){const{delegate:t}=b1;return(t?.requestAnimationFrame||requestAnimationFrame)(...n)},cancelAnimationFrame(...n){const{delegate:t}=b1;return(t?.cancelAnimationFrame||cancelAnimationFrame)(...n)},delegate:void 0};new class _be extends ME{flush(t){this._active=!0;const e=this._scheduled;this._scheduled=void 0;const{actions:i}=this;let r;t=t||i.shift();do{if(r=t.execute(t.state,t.delay))break}while((t=i[0])&&t.id===e&&i.shift());if(this._active=!1,r){for(;(t=i[0])&&t.id===e&&i.shift();)t.unsubscribe();throw r}}}(class gbe extends CE{constructor(t,e){super(t,e),this.scheduler=t,this.work=e}requestAsyncId(t,e,i=0){return null!==i&&i>0?super.requestAsyncId(t,e,i):(t.actions.push(this),t._scheduled||(t._scheduled=b1.requestAnimationFrame(()=>t.flush(void 0))))}recycleAsyncId(t,e,i=0){var r;if(null!=i?i>0:this.delay>0)return super.recycleAsyncId(t,e,i);const{actions:o}=t;null!=e&&(null===(r=o[o.length-1])||void 0===r?void 0:r.id)!==e&&(b1.cancelAnimationFrame(e),t._scheduled=void 0)}});let kP,vbe=1;const r2={};function MG(n){return n in r2&&(delete r2[n],!0)}const ybe={setImmediate(n){const t=vbe++;return r2[t]=!0,kP||(kP=Promise.resolve()),kP.then(()=>MG(t)&&n()),t},clearImmediate(n){MG(n)}},{setImmediate:wbe,clearImmediate:xbe}=ybe,o2={setImmediate(...n){const{delegate:t}=o2;return(t?.setImmediate||wbe)(...n)},clearImmediate(n){const{delegate:t}=o2;return(t?.clearImmediate||xbe)(n)},delegate:void 0},BP=new class Mbe extends ME{flush(t){this._active=!0;const e=this._scheduled;this._scheduled=void 0;const{actions:i}=this;let r;t=t||i.shift();do{if(r=t.execute(t.state,t.delay))break}while((t=i[0])&&t.id===e&&i.shift());if(this._active=!1,r){for(;(t=i[0])&&t.id===e&&i.shift();)t.unsubscribe();throw r}}}(class Cbe extends CE{constructor(t,e){super(t,e),this.scheduler=t,this.work=e}requestAsyncId(t,e,i=0){return null!==i&&i>0?super.requestAsyncId(t,e,i):(t.actions.push(this),t._scheduled||(t._scheduled=o2.setImmediate(t.flush.bind(t,void 0))))}recycleAsyncId(t,e,i=0){var r;if(null!=i?i>0:this.delay>0)return super.recycleAsyncId(t,e,i);const{actions:o}=t;null!=e&&(null===(r=o[o.length-1])||void 0===r?void 0:r.id)!==e&&(o2.clearImmediate(e),t._scheduled===e&&(t._scheduled=void 0))}});function PP(n=0,t,e=E_e){let i=-1;return null!=t&&(wQ(t)?e=t:i=t),new Yi(r=>{let o=function Sbe(n){return n instanceof Date&&!isNaN(n)}(n)?+n-e.now():n;o<0&&(o=0);let s=0;return e.schedule(function(){r.closed||(r.next(s++),0<=i?this.schedule(void 0,i):r.complete())},o)})}function RP(n,t=q0){return function Ebe(n){return le((t,e)=>{let i=!1,r=null,o=null,s=!1;const a=()=>{if(o?.unsubscribe(),o=null,i){i=!1;const c=r;r=null,e.next(c)}s&&e.complete()},l=()=>{o=null,s&&e.complete()};t.subscribe(Be(e,c=>{i=!0,r=c,o||rs(n(c)).subscribe(o=Be(e,a,l))},()=>{s=!0,(!i||!o||o.closed)&&e.complete()}))})}(()=>PP(n,t))}let LP;try{LP=typeof Intl<"u"&&Intl.v8BreakIterator}catch{LP=!1}let X0,eo=(()=>{class n{constructor(e){this._platformId=e,this.isBrowser=this._platformId?function rme(n){return n===XV}(this._platformId):"object"==typeof document&&!!document,this.EDGE=this.isBrowser&&/(edge)/i.test(navigator.userAgent),this.TRIDENT=this.isBrowser&&/(msie|trident)/i.test(navigator.userAgent),this.BLINK=this.isBrowser&&!(!window.chrome&&!LP)&&typeof CSS<"u"&&!this.EDGE&&!this.TRIDENT,this.WEBKIT=this.isBrowser&&/AppleWebKit/i.test(navigator.userAgent)&&!this.BLINK&&!this.EDGE&&!this.TRIDENT,this.IOS=this.isBrowser&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!("MSStream"in window),this.FIREFOX=this.isBrowser&&/(firefox|minefield)/i.test(navigator.userAgent),this.ANDROID=this.isBrowser&&/android/i.test(navigator.userAgent)&&!this.TRIDENT,this.SAFARI=this.isBrowser&&/safari/i.test(navigator.userAgent)&&this.WEBKIT}static{this.\u0275fac=function(i){return new(i||n)(ge(Lf))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();const EG=["color","button","checkbox","date","datetime-local","email","file","hidden","image","month","number","password","radio","range","reset","search","submit","tel","text","time","url","week"];function SG(){if(X0)return X0;if("object"!=typeof document||!document)return X0=new Set(EG),X0;let n=document.createElement("input");return X0=new Set(EG.filter(t=>(n.setAttribute("type",t),n.type===t))),X0}let v1,Yp,OP;function Kp(n){return function Tbe(){if(null==v1&&typeof window<"u")try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:()=>v1=!0}))}finally{v1=v1||!1}return v1}()?n:!!n.capture}function Ibe(){if(null==Yp){if("object"!=typeof document||!document||"function"!=typeof Element||!Element)return Yp=!1,Yp;if("scrollBehavior"in document.documentElement.style)Yp=!0;else{const n=Element.prototype.scrollTo;Yp=!!n&&!/\{\s*\[native code\]\s*\}/.test(n.toString())}}return Yp}function a2(){let n=typeof document<"u"&&document?document.activeElement:null;for(;n&&n.shadowRoot;){const t=n.shadowRoot.activeElement;if(t===n)break;n=t}return n}function rm(n){return n.composedPath?n.composedPath()[0]:n.target}function NP(){return typeof __karma__<"u"&&!!__karma__||typeof jasmine<"u"&&!!jasmine||typeof jest<"u"&&!!jest||typeof Mocha<"u"&&!!Mocha}const kbe=new ut("cdk-dir-doc",{providedIn:"root",factory:function Bbe(){return qt(Bi)}}),Pbe=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;let wh=(()=>{class n{constructor(e){this.value="ltr",this.change=new Bn,e&&(this.value=function Rbe(n){const t=n?.toLowerCase()||"";return"auto"===t&&typeof navigator<"u"&&navigator?.language?Pbe.test(navigator.language)?"rtl":"ltr":"rtl"===t?"rtl":"ltr"}((e.body?e.body.dir:null)||(e.documentElement?e.documentElement.dir:null)||"ltr"))}ngOnDestroy(){this.change.complete()}static{this.\u0275fac=function(i){return new(i||n)(ge(kbe,8))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),w1=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({})}}return n})(),TG=(()=>{class n{constructor(e,i,r){this._ngZone=e,this._platform=i,this._scrolled=new Hn,this._globalSubscription=null,this._scrolledCount=0,this.scrollContainers=new Map,this._document=r}register(e){this.scrollContainers.has(e)||this.scrollContainers.set(e,e.elementScrolled().subscribe(()=>this._scrolled.next(e)))}deregister(e){const i=this.scrollContainers.get(e);i&&(i.unsubscribe(),this.scrollContainers.delete(e))}scrolled(e=20){return this._platform.isBrowser?new Yi(i=>{this._globalSubscription||this._addGlobalListener();const r=e>0?this._scrolled.pipe(RP(e)).subscribe(i):this._scrolled.subscribe(i);return this._scrolledCount++,()=>{r.unsubscribe(),this._scrolledCount--,this._scrolledCount||this._removeGlobalListener()}}):ol()}ngOnDestroy(){this._removeGlobalListener(),this.scrollContainers.forEach((e,i)=>this.deregister(i)),this._scrolled.complete()}ancestorScrolled(e,i){const r=this.getAncestorScrollContainers(e);return this.scrolled(i).pipe(Vi(o=>!o||r.indexOf(o)>-1))}getAncestorScrollContainers(e){const i=[];return this.scrollContainers.forEach((r,o)=>{this._scrollableContainsElement(o,e)&&i.push(o)}),i}_getWindow(){return this._document.defaultView||window}_scrollableContainsElement(e,i){let r=yh(i),o=e.getElementRef().nativeElement;do{if(r==o)return!0}while(r=r.parentElement);return!1}_addGlobalListener(){this._globalSubscription=this._ngZone.runOutsideAngular(()=>j0(this._getWindow().document,"scroll").subscribe(()=>this._scrolled.next()))}_removeGlobalListener(){this._globalSubscription&&(this._globalSubscription.unsubscribe(),this._globalSubscription=null)}static{this.\u0275fac=function(i){return new(i||n)(ge(kn),ge(eo),ge(Bi,8))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),UP=(()=>{class n{constructor(e,i,r){this._platform=e,this._change=new Hn,this._changeListener=o=>{this._change.next(o)},this._document=r,i.runOutsideAngular(()=>{if(e.isBrowser){const o=this._getWindow();o.addEventListener("resize",this._changeListener),o.addEventListener("orientationchange",this._changeListener)}this.change().subscribe(()=>this._viewportSize=null)})}ngOnDestroy(){if(this._platform.isBrowser){const e=this._getWindow();e.removeEventListener("resize",this._changeListener),e.removeEventListener("orientationchange",this._changeListener)}this._change.complete()}getViewportSize(){this._viewportSize||this._updateViewportSize();const e={width:this._viewportSize.width,height:this._viewportSize.height};return this._platform.isBrowser||(this._viewportSize=null),e}getViewportRect(){const e=this.getViewportScrollPosition(),{width:i,height:r}=this.getViewportSize();return{top:e.top,left:e.left,bottom:e.top+r,right:e.left+i,height:r,width:i}}getViewportScrollPosition(){if(!this._platform.isBrowser)return{top:0,left:0};const e=this._document,i=this._getWindow(),r=e.documentElement,o=r.getBoundingClientRect();return{top:-o.top||e.body.scrollTop||i.scrollY||r.scrollTop||0,left:-o.left||e.body.scrollLeft||i.scrollX||r.scrollLeft||0}}change(e=20){return e>0?this._change.pipe(RP(e)):this._change}_getWindow(){return this._document.defaultView||window}_updateViewportSize(){const e=this._getWindow();this._viewportSize=this._platform.isBrowser?{width:e.innerWidth,height:e.innerHeight}:{width:0,height:0}}static{this.\u0275fac=function(i){return new(i||n)(ge(eo),ge(kn),ge(Bi,8))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),x1=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({})}}return n})(),IG=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[w1,x1,w1,x1]})}}return n})();function to(n){return le((t,e)=>{rs(n).subscribe(Be(e,()=>e.complete(),ja)),!e.closed&&t.subscribe(e)})}class HP{attach(t){return this._attachedHost=t,t.attach(this)}detach(){let t=this._attachedHost;null!=t&&(this._attachedHost=null,t.detach())}get isAttached(){return null!=this._attachedHost}setAttachedHost(t){this._attachedHost=t}}class C1 extends HP{constructor(t,e,i,r,o){super(),this.component=t,this.viewContainerRef=e,this.injector=i,this.componentFactoryResolver=r,this.projectableNodes=o}}class M1 extends HP{constructor(t,e,i,r){super(),this.templateRef=t,this.viewContainerRef=e,this.context=i,this.injector=r}get origin(){return this.templateRef.elementRef}attach(t,e=this.context){return this.context=e,super.attach(t)}detach(){return this.context=void 0,super.detach()}}class Ube extends HP{constructor(t){super(),this.element=t instanceof Vn?t.nativeElement:t}}class VP{constructor(){this._isDisposed=!1,this.attachDomPortal=null}hasAttached(){return!!this._attachedPortal}attach(t){return t instanceof C1?(this._attachedPortal=t,this.attachComponentPortal(t)):t instanceof M1?(this._attachedPortal=t,this.attachTemplatePortal(t)):this.attachDomPortal&&t instanceof Ube?(this._attachedPortal=t,this.attachDomPortal(t)):void 0}detach(){this._attachedPortal&&(this._attachedPortal.setAttachedHost(null),this._attachedPortal=null),this._invokeDisposeFn()}dispose(){this.hasAttached()&&this.detach(),this._invokeDisposeFn(),this._isDisposed=!0}setDisposeFn(t){this._disposeFn=t}_invokeDisposeFn(){this._disposeFn&&(this._disposeFn(),this._disposeFn=null)}}class Hbe extends VP{constructor(t,e,i,r,o){super(),this.outletElement=t,this._componentFactoryResolver=e,this._appRef=i,this._defaultInjector=r,this.attachDomPortal=s=>{const a=s.element,l=this._document.createComment("dom-portal");a.parentNode.insertBefore(l,a),this.outletElement.appendChild(a),this._attachedPortal=s,super.setDisposeFn(()=>{l.parentNode&&l.parentNode.replaceChild(a,l)})},this._document=o}attachComponentPortal(t){const i=(t.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(t.component);let r;return t.viewContainerRef?(r=t.viewContainerRef.createComponent(i,t.viewContainerRef.length,t.injector||t.viewContainerRef.injector,t.projectableNodes||void 0),this.setDisposeFn(()=>r.destroy())):(r=i.create(t.injector||this._defaultInjector||Jo.NULL),this._appRef.attachView(r.hostView),this.setDisposeFn(()=>{this._appRef.viewCount>0&&this._appRef.detachView(r.hostView),r.destroy()})),this.outletElement.appendChild(this._getComponentRootNode(r)),this._attachedPortal=t,r}attachTemplatePortal(t){let e=t.viewContainerRef,i=e.createEmbeddedView(t.templateRef,t.context,{injector:t.injector});return i.rootNodes.forEach(r=>this.outletElement.appendChild(r)),i.detectChanges(),this.setDisposeFn(()=>{let r=e.indexOf(i);-1!==r&&e.remove(r)}),this._attachedPortal=t,i}dispose(){super.dispose(),this.outletElement.remove()}_getComponentRootNode(t){return t.hostView.rootNodes[0]}}let l2=(()=>{class n extends VP{constructor(e,i,r){super(),this._componentFactoryResolver=e,this._viewContainerRef=i,this._isInitialized=!1,this.attached=new Bn,this.attachDomPortal=o=>{const s=o.element,a=this._document.createComment("dom-portal");o.setAttachedHost(this),s.parentNode.insertBefore(a,s),this._getRootNode().appendChild(s),this._attachedPortal=o,super.setDisposeFn(()=>{a.parentNode&&a.parentNode.replaceChild(s,a)})},this._document=r}get portal(){return this._attachedPortal}set portal(e){this.hasAttached()&&!e&&!this._isInitialized||(this.hasAttached()&&super.detach(),e&&super.attach(e),this._attachedPortal=e||null)}get attachedRef(){return this._attachedRef}ngOnInit(){this._isInitialized=!0}ngOnDestroy(){super.dispose(),this._attachedRef=this._attachedPortal=null}attachComponentPortal(e){e.setAttachedHost(this);const i=null!=e.viewContainerRef?e.viewContainerRef:this._viewContainerRef,o=(e.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(e.component),s=i.createComponent(o,i.length,e.injector||i.injector,e.projectableNodes||void 0);return i!==this._viewContainerRef&&this._getRootNode().appendChild(s.hostView.rootNodes[0]),super.setDisposeFn(()=>s.destroy()),this._attachedPortal=e,this._attachedRef=s,this.attached.emit(s),s}attachTemplatePortal(e){e.setAttachedHost(this);const i=this._viewContainerRef.createEmbeddedView(e.templateRef,e.context,{injector:e.injector});return super.setDisposeFn(()=>this._viewContainerRef.clear()),this._attachedPortal=e,this._attachedRef=i,this.attached.emit(i),i}_getRootNode(){const e=this._viewContainerRef.element.nativeElement;return e.nodeType===e.ELEMENT_NODE?e:e.parentNode}static{this.\u0275fac=function(i){return new(i||n)($(l0),$(ua),$(Bi))}}static{this.\u0275dir=$t({type:n,selectors:[["","cdkPortalOutlet",""]],inputs:{portal:[Ct.None,"cdkPortalOutlet","portal"]},outputs:{attached:"attached"},exportAs:["cdkPortalOutlet"],standalone:!0,features:[_i]})}}return n})(),E1=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({})}}return n})();function cd(n,...t){return t.length?t.some(e=>n[e]):n.altKey||n.shiftKey||n.ctrlKey||n.metaKey}const FG=Ibe();class eve{constructor(t,e){this._viewportRuler=t,this._previousHTMLStyles={top:"",left:""},this._isEnabled=!1,this._document=e}attach(){}enable(){if(this._canBeEnabled()){const t=this._document.documentElement;this._previousScrollPosition=this._viewportRuler.getViewportScrollPosition(),this._previousHTMLStyles.left=t.style.left||"",this._previousHTMLStyles.top=t.style.top||"",t.style.left=bs(-this._previousScrollPosition.left),t.style.top=bs(-this._previousScrollPosition.top),t.classList.add("cdk-global-scrollblock"),this._isEnabled=!0}}disable(){if(this._isEnabled){const t=this._document.documentElement,i=t.style,r=this._document.body.style,o=i.scrollBehavior||"",s=r.scrollBehavior||"";this._isEnabled=!1,i.left=this._previousHTMLStyles.left,i.top=this._previousHTMLStyles.top,t.classList.remove("cdk-global-scrollblock"),FG&&(i.scrollBehavior=r.scrollBehavior="auto"),window.scroll(this._previousScrollPosition.left,this._previousScrollPosition.top),FG&&(i.scrollBehavior=o,r.scrollBehavior=s)}}_canBeEnabled(){if(this._document.documentElement.classList.contains("cdk-global-scrollblock")||this._isEnabled)return!1;const e=this._document.body,i=this._viewportRuler.getViewportSize();return e.scrollHeight>i.height||e.scrollWidth>i.width}}class tve{constructor(t,e,i,r){this._scrollDispatcher=t,this._ngZone=e,this._viewportRuler=i,this._config=r,this._scrollSubscription=null,this._detach=()=>{this.disable(),this._overlayRef.hasAttached()&&this._ngZone.run(()=>this._overlayRef.detach())}}attach(t){this._overlayRef=t}enable(){if(this._scrollSubscription)return;const t=this._scrollDispatcher.scrolled(0).pipe(Vi(e=>!e||!this._overlayRef.overlayElement.contains(e.getElementRef().nativeElement)));this._config&&this._config.threshold&&this._config.threshold>1?(this._initialScrollPosition=this._viewportRuler.getViewportScrollPosition().top,this._scrollSubscription=t.subscribe(()=>{const e=this._viewportRuler.getViewportScrollPosition().top;Math.abs(e-this._initialScrollPosition)>this._config.threshold?this._detach():this._overlayRef.updatePosition()})):this._scrollSubscription=t.subscribe(this._detach)}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}}class DG{enable(){}disable(){}attach(){}}function zP(n,t){return t.some(e=>n.bottome.bottom||n.righte.right)}function kG(n,t){return t.some(e=>n.tope.bottom||n.lefte.right)}class nve{constructor(t,e,i,r){this._scrollDispatcher=t,this._viewportRuler=e,this._ngZone=i,this._config=r,this._scrollSubscription=null}attach(t){this._overlayRef=t}enable(){this._scrollSubscription||(this._scrollSubscription=this._scrollDispatcher.scrolled(this._config?this._config.scrollThrottle:0).subscribe(()=>{if(this._overlayRef.updatePosition(),this._config&&this._config.autoClose){const e=this._overlayRef.overlayElement.getBoundingClientRect(),{width:i,height:r}=this._viewportRuler.getViewportSize();zP(e,[{width:i,height:r,bottom:r,right:i,top:0,left:0}])&&(this.disable(),this._ngZone.run(()=>this._overlayRef.detach()))}}))}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}}let ive=(()=>{class n{constructor(e,i,r,o){this._scrollDispatcher=e,this._viewportRuler=i,this._ngZone=r,this.noop=()=>new DG,this.close=s=>new tve(this._scrollDispatcher,this._ngZone,this._viewportRuler,s),this.block=()=>new eve(this._viewportRuler,this._document),this.reposition=s=>new nve(this._scrollDispatcher,this._viewportRuler,this._ngZone,s),this._document=o}static{this.\u0275fac=function(i){return new(i||n)(ge(TG),ge(UP),ge(kn),ge(Bi))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();class f2{constructor(t){if(this.scrollStrategy=new DG,this.panelClass="",this.hasBackdrop=!1,this.backdropClass="cdk-overlay-dark-backdrop",this.disposeOnNavigation=!1,t){const e=Object.keys(t);for(const i of e)void 0!==t[i]&&(this[i]=t[i])}}}class rve{constructor(t,e){this.connectionPair=t,this.scrollableViewProperties=e}}let BG=(()=>{class n{constructor(e){this._attachedOverlays=[],this._document=e}ngOnDestroy(){this.detach()}add(e){this.remove(e),this._attachedOverlays.push(e)}remove(e){const i=this._attachedOverlays.indexOf(e);i>-1&&this._attachedOverlays.splice(i,1),0===this._attachedOverlays.length&&this.detach()}static{this.\u0275fac=function(i){return new(i||n)(ge(Bi))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),ove=(()=>{class n extends BG{constructor(e,i){super(e),this._ngZone=i,this._keydownListener=r=>{const o=this._attachedOverlays;for(let s=o.length-1;s>-1;s--)if(o[s]._keydownEvents.observers.length>0){const a=o[s]._keydownEvents;this._ngZone?this._ngZone.run(()=>a.next(r)):a.next(r);break}}}add(e){super.add(e),this._isAttached||(this._ngZone?this._ngZone.runOutsideAngular(()=>this._document.body.addEventListener("keydown",this._keydownListener)):this._document.body.addEventListener("keydown",this._keydownListener),this._isAttached=!0)}detach(){this._isAttached&&(this._document.body.removeEventListener("keydown",this._keydownListener),this._isAttached=!1)}static{this.\u0275fac=function(i){return new(i||n)(ge(Bi),ge(kn,8))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),sve=(()=>{class n extends BG{constructor(e,i,r){super(e),this._platform=i,this._ngZone=r,this._cursorStyleIsSet=!1,this._pointerDownListener=o=>{this._pointerDownEventTarget=rm(o)},this._clickListener=o=>{const s=rm(o),a="click"===o.type&&this._pointerDownEventTarget?this._pointerDownEventTarget:s;this._pointerDownEventTarget=null;const l=this._attachedOverlays.slice();for(let c=l.length-1;c>-1;c--){const d=l[c];if(d._outsidePointerEvents.observers.length<1||!d.hasAttached())continue;if(d.overlayElement.contains(s)||d.overlayElement.contains(a))break;const u=d._outsidePointerEvents;this._ngZone?this._ngZone.run(()=>u.next(o)):u.next(o)}}}add(e){if(super.add(e),!this._isAttached){const i=this._document.body;this._ngZone?this._ngZone.runOutsideAngular(()=>this._addEventListeners(i)):this._addEventListeners(i),this._platform.IOS&&!this._cursorStyleIsSet&&(this._cursorOriginalValue=i.style.cursor,i.style.cursor="pointer",this._cursorStyleIsSet=!0),this._isAttached=!0}}detach(){if(this._isAttached){const e=this._document.body;e.removeEventListener("pointerdown",this._pointerDownListener,!0),e.removeEventListener("click",this._clickListener,!0),e.removeEventListener("auxclick",this._clickListener,!0),e.removeEventListener("contextmenu",this._clickListener,!0),this._platform.IOS&&this._cursorStyleIsSet&&(e.style.cursor=this._cursorOriginalValue,this._cursorStyleIsSet=!1),this._isAttached=!1}}_addEventListeners(e){e.addEventListener("pointerdown",this._pointerDownListener,!0),e.addEventListener("click",this._clickListener,!0),e.addEventListener("auxclick",this._clickListener,!0),e.addEventListener("contextmenu",this._clickListener,!0)}static{this.\u0275fac=function(i){return new(i||n)(ge(Bi),ge(eo),ge(kn,8))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),m2=(()=>{class n{constructor(e,i){this._platform=i,this._document=e}ngOnDestroy(){this._containerElement?.remove()}getContainerElement(){return this._containerElement||this._createContainer(),this._containerElement}_createContainer(){const e="cdk-overlay-container";if(this._platform.isBrowser||NP()){const r=this._document.querySelectorAll(`.${e}[platform="server"], .${e}[platform="test"]`);for(let o=0;othis._backdropClick.next(u),this._backdropTransitionendHandler=u=>{this._disposeBackdrop(u.target)},this._keydownEvents=new Hn,this._outsidePointerEvents=new Hn,r.scrollStrategy&&(this._scrollStrategy=r.scrollStrategy,this._scrollStrategy.attach(this)),this._positionStrategy=r.positionStrategy}get overlayElement(){return this._pane}get backdropElement(){return this._backdropElement}get hostElement(){return this._host}attach(t){!this._host.parentElement&&this._previousHostParent&&this._previousHostParent.appendChild(this._host);const e=this._portalOutlet.attach(t);return this._positionStrategy&&this._positionStrategy.attach(this),this._updateStackingOrder(),this._updateElementSize(),this._updateElementDirection(),this._scrollStrategy&&this._scrollStrategy.enable(),this._ngZone.onStable.pipe(zo(1)).subscribe(()=>{this.hasAttached()&&this.updatePosition()}),this._togglePointerEvents(!0),this._config.hasBackdrop&&this._attachBackdrop(),this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!0),this._attachments.next(),this._keyboardDispatcher.add(this),this._config.disposeOnNavigation&&(this._locationChanges=this._location.subscribe(()=>this.dispose())),this._outsideClickDispatcher.add(this),"function"==typeof e?.onDestroy&&e.onDestroy(()=>{this.hasAttached()&&this._ngZone.runOutsideAngular(()=>Promise.resolve().then(()=>this.detach()))}),e}detach(){if(!this.hasAttached())return;this.detachBackdrop(),this._togglePointerEvents(!1),this._positionStrategy&&this._positionStrategy.detach&&this._positionStrategy.detach(),this._scrollStrategy&&this._scrollStrategy.disable();const t=this._portalOutlet.detach();return this._detachments.next(),this._keyboardDispatcher.remove(this),this._detachContentWhenStable(),this._locationChanges.unsubscribe(),this._outsideClickDispatcher.remove(this),t}dispose(){const t=this.hasAttached();this._positionStrategy&&this._positionStrategy.dispose(),this._disposeScrollStrategy(),this._disposeBackdrop(this._backdropElement),this._locationChanges.unsubscribe(),this._keyboardDispatcher.remove(this),this._portalOutlet.dispose(),this._attachments.complete(),this._backdropClick.complete(),this._keydownEvents.complete(),this._outsidePointerEvents.complete(),this._outsideClickDispatcher.remove(this),this._host?.remove(),this._previousHostParent=this._pane=this._host=null,t&&this._detachments.next(),this._detachments.complete()}hasAttached(){return this._portalOutlet.hasAttached()}backdropClick(){return this._backdropClick}attachments(){return this._attachments}detachments(){return this._detachments}keydownEvents(){return this._keydownEvents}outsidePointerEvents(){return this._outsidePointerEvents}getConfig(){return this._config}updatePosition(){this._positionStrategy&&this._positionStrategy.apply()}updatePositionStrategy(t){t!==this._positionStrategy&&(this._positionStrategy&&this._positionStrategy.dispose(),this._positionStrategy=t,this.hasAttached()&&(t.attach(this),this.updatePosition()))}updateSize(t){this._config={...this._config,...t},this._updateElementSize()}setDirection(t){this._config={...this._config,direction:t},this._updateElementDirection()}addPanelClass(t){this._pane&&this._toggleClasses(this._pane,t,!0)}removePanelClass(t){this._pane&&this._toggleClasses(this._pane,t,!1)}getDirection(){const t=this._config.direction;return t?"string"==typeof t?t:t.value:"ltr"}updateScrollStrategy(t){t!==this._scrollStrategy&&(this._disposeScrollStrategy(),this._scrollStrategy=t,this.hasAttached()&&(t.attach(this),t.enable()))}_updateElementDirection(){this._host.setAttribute("dir",this.getDirection())}_updateElementSize(){if(!this._pane)return;const t=this._pane.style;t.width=bs(this._config.width),t.height=bs(this._config.height),t.minWidth=bs(this._config.minWidth),t.minHeight=bs(this._config.minHeight),t.maxWidth=bs(this._config.maxWidth),t.maxHeight=bs(this._config.maxHeight)}_togglePointerEvents(t){this._pane.style.pointerEvents=t?"":"none"}_attachBackdrop(){const t="cdk-overlay-backdrop-showing";this._backdropElement=this._document.createElement("div"),this._backdropElement.classList.add("cdk-overlay-backdrop"),this._animationsDisabled&&this._backdropElement.classList.add("cdk-overlay-backdrop-noop-animation"),this._config.backdropClass&&this._toggleClasses(this._backdropElement,this._config.backdropClass,!0),this._host.parentElement.insertBefore(this._backdropElement,this._host),this._backdropElement.addEventListener("click",this._backdropClickHandler),!this._animationsDisabled&&typeof requestAnimationFrame<"u"?this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>{this._backdropElement&&this._backdropElement.classList.add(t)})}):this._backdropElement.classList.add(t)}_updateStackingOrder(){this._host.nextSibling&&this._host.parentNode.appendChild(this._host)}detachBackdrop(){const t=this._backdropElement;if(t){if(this._animationsDisabled)return void this._disposeBackdrop(t);t.classList.remove("cdk-overlay-backdrop-showing"),this._ngZone.runOutsideAngular(()=>{t.addEventListener("transitionend",this._backdropTransitionendHandler)}),t.style.pointerEvents="none",this._backdropTimeout=this._ngZone.runOutsideAngular(()=>setTimeout(()=>{this._disposeBackdrop(t)},500))}}_toggleClasses(t,e,i){const r=n2(e||[]).filter(o=>!!o);r.length&&(i?t.classList.add(...r):t.classList.remove(...r))}_detachContentWhenStable(){this._ngZone.runOutsideAngular(()=>{const t=this._ngZone.onStable.pipe(to(ql(this._attachments,this._detachments))).subscribe(()=>{(!this._pane||!this._host||0===this._pane.children.length)&&(this._pane&&this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!1),this._host&&this._host.parentElement&&(this._previousHostParent=this._host.parentElement,this._host.remove()),t.unsubscribe())})})}_disposeScrollStrategy(){const t=this._scrollStrategy;t&&(t.disable(),t.detach&&t.detach())}_disposeBackdrop(t){t&&(t.removeEventListener("click",this._backdropClickHandler),t.removeEventListener("transitionend",this._backdropTransitionendHandler),t.remove(),this._backdropElement===t&&(this._backdropElement=null)),this._backdropTimeout&&(clearTimeout(this._backdropTimeout),this._backdropTimeout=void 0)}}const PG="cdk-overlay-connected-position-bounding-box",ave=/([A-Za-z%]+)$/;class lve{get positions(){return this._preferredPositions}constructor(t,e,i,r,o){this._viewportRuler=e,this._document=i,this._platform=r,this._overlayContainer=o,this._lastBoundingBoxSize={width:0,height:0},this._isPushed=!1,this._canPush=!0,this._growAfterOpen=!1,this._hasFlexibleDimensions=!0,this._positionLocked=!1,this._viewportMargin=0,this._scrollables=[],this._preferredPositions=[],this._positionChanges=new Hn,this._resizeSubscription=Kn.EMPTY,this._offsetX=0,this._offsetY=0,this._appliedPanelClasses=[],this.positionChanges=this._positionChanges,this.setOrigin(t)}attach(t){this._validatePositions(),t.hostElement.classList.add(PG),this._overlayRef=t,this._boundingBox=t.hostElement,this._pane=t.overlayElement,this._isDisposed=!1,this._isInitialRender=!0,this._lastPosition=null,this._resizeSubscription.unsubscribe(),this._resizeSubscription=this._viewportRuler.change().subscribe(()=>{this._isInitialRender=!0,this.apply()})}apply(){if(this._isDisposed||!this._platform.isBrowser)return;if(!this._isInitialRender&&this._positionLocked&&this._lastPosition)return void this.reapplyLastPosition();this._clearPanelClasses(),this._resetOverlayElementStyles(),this._resetBoundingBoxStyles(),this._viewportRect=this._getNarrowedViewportRect(),this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();const t=this._originRect,e=this._overlayRect,i=this._viewportRect,r=this._containerRect,o=[];let s;for(let a of this._preferredPositions){let l=this._getOriginPoint(t,r,a),c=this._getOverlayPoint(l,e,a),d=this._getOverlayFit(c,e,i,a);if(d.isCompletelyWithinViewport)return this._isPushed=!1,void this._applyPosition(a,l);this._canFitWithFlexibleDimensions(d,c,i)?o.push({position:a,origin:l,overlayRect:e,boundingBoxRect:this._calculateBoundingBoxRect(l,a)}):(!s||s.overlayFit.visibleAreal&&(l=d,a=c)}return this._isPushed=!1,void this._applyPosition(a.position,a.origin)}if(this._canPush)return this._isPushed=!0,void this._applyPosition(s.position,s.originPoint);this._applyPosition(s.position,s.originPoint)}detach(){this._clearPanelClasses(),this._lastPosition=null,this._previousPushAmount=null,this._resizeSubscription.unsubscribe()}dispose(){this._isDisposed||(this._boundingBox&&Zp(this._boundingBox.style,{top:"",left:"",right:"",bottom:"",height:"",width:"",alignItems:"",justifyContent:""}),this._pane&&this._resetOverlayElementStyles(),this._overlayRef&&this._overlayRef.hostElement.classList.remove(PG),this.detach(),this._positionChanges.complete(),this._overlayRef=this._boundingBox=null,this._isDisposed=!0)}reapplyLastPosition(){if(this._isDisposed||!this._platform.isBrowser)return;const t=this._lastPosition;if(t){this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._viewportRect=this._getNarrowedViewportRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();const e=this._getOriginPoint(this._originRect,this._containerRect,t);this._applyPosition(t,e)}else this.apply()}withScrollableContainers(t){return this._scrollables=t,this}withPositions(t){return this._preferredPositions=t,-1===t.indexOf(this._lastPosition)&&(this._lastPosition=null),this._validatePositions(),this}withViewportMargin(t){return this._viewportMargin=t,this}withFlexibleDimensions(t=!0){return this._hasFlexibleDimensions=t,this}withGrowAfterOpen(t=!0){return this._growAfterOpen=t,this}withPush(t=!0){return this._canPush=t,this}withLockedPosition(t=!0){return this._positionLocked=t,this}setOrigin(t){return this._origin=t,this}withDefaultOffsetX(t){return this._offsetX=t,this}withDefaultOffsetY(t){return this._offsetY=t,this}withTransformOriginOn(t){return this._transformOriginSelector=t,this}_getOriginPoint(t,e,i){let r,o;if("center"==i.originX)r=t.left+t.width/2;else{const s=this._isRtl()?t.right:t.left,a=this._isRtl()?t.left:t.right;r="start"==i.originX?s:a}return e.left<0&&(r-=e.left),o="center"==i.originY?t.top+t.height/2:"top"==i.originY?t.top:t.bottom,e.top<0&&(o-=e.top),{x:r,y:o}}_getOverlayPoint(t,e,i){let r,o;return r="center"==i.overlayX?-e.width/2:"start"===i.overlayX?this._isRtl()?-e.width:0:this._isRtl()?0:-e.width,o="center"==i.overlayY?-e.height/2:"top"==i.overlayY?0:-e.height,{x:t.x+r,y:t.y+o}}_getOverlayFit(t,e,i,r){const o=LG(e);let{x:s,y:a}=t,l=this._getOffset(r,"x"),c=this._getOffset(r,"y");l&&(s+=l),c&&(a+=c);let h=0-a,f=a+o.height-i.height,A=this._subtractOverflows(o.width,0-s,s+o.width-i.width),y=this._subtractOverflows(o.height,h,f),_=A*y;return{visibleArea:_,isCompletelyWithinViewport:o.width*o.height===_,fitsInViewportVertically:y===o.height,fitsInViewportHorizontally:A==o.width}}_canFitWithFlexibleDimensions(t,e,i){if(this._hasFlexibleDimensions){const r=i.bottom-e.y,o=i.right-e.x,s=RG(this._overlayRef.getConfig().minHeight),a=RG(this._overlayRef.getConfig().minWidth);return(t.fitsInViewportVertically||null!=s&&s<=r)&&(t.fitsInViewportHorizontally||null!=a&&a<=o)}return!1}_pushOverlayOnScreen(t,e,i){if(this._previousPushAmount&&this._positionLocked)return{x:t.x+this._previousPushAmount.x,y:t.y+this._previousPushAmount.y};const r=LG(e),o=this._viewportRect,s=Math.max(t.x+r.width-o.width,0),a=Math.max(t.y+r.height-o.height,0),l=Math.max(o.top-i.top-t.y,0),c=Math.max(o.left-i.left-t.x,0);let d=0,u=0;return d=r.width<=o.width?c||-s:t.xA&&!this._isInitialRender&&!this._growAfterOpen&&(s=t.y-A/2)}if("end"===e.overlayX&&!r||"start"===e.overlayX&&r)h=i.width-t.x+2*this._viewportMargin,d=t.x-this._viewportMargin;else if("start"===e.overlayX&&!r||"end"===e.overlayX&&r)u=t.x,d=i.right-t.x;else{const f=Math.min(i.right-t.x+i.left,t.x),A=this._lastBoundingBoxSize.width;d=2*f,u=t.x-f,d>A&&!this._isInitialRender&&!this._growAfterOpen&&(u=t.x-A/2)}return{top:s,left:u,bottom:a,right:h,width:d,height:o}}_setBoundingBoxStyles(t,e){const i=this._calculateBoundingBoxRect(t,e);!this._isInitialRender&&!this._growAfterOpen&&(i.height=Math.min(i.height,this._lastBoundingBoxSize.height),i.width=Math.min(i.width,this._lastBoundingBoxSize.width));const r={};if(this._hasExactPosition())r.top=r.left="0",r.bottom=r.right=r.maxHeight=r.maxWidth="",r.width=r.height="100%";else{const o=this._overlayRef.getConfig().maxHeight,s=this._overlayRef.getConfig().maxWidth;r.height=bs(i.height),r.top=bs(i.top),r.bottom=bs(i.bottom),r.width=bs(i.width),r.left=bs(i.left),r.right=bs(i.right),r.alignItems="center"===e.overlayX?"center":"end"===e.overlayX?"flex-end":"flex-start",r.justifyContent="center"===e.overlayY?"center":"bottom"===e.overlayY?"flex-end":"flex-start",o&&(r.maxHeight=bs(o)),s&&(r.maxWidth=bs(s))}this._lastBoundingBoxSize=i,Zp(this._boundingBox.style,r)}_resetBoundingBoxStyles(){Zp(this._boundingBox.style,{top:"0",left:"0",right:"0",bottom:"0",height:"",width:"",alignItems:"",justifyContent:""})}_resetOverlayElementStyles(){Zp(this._pane.style,{top:"",left:"",bottom:"",right:"",position:"",transform:""})}_setOverlayElementStyles(t,e){const i={},r=this._hasExactPosition(),o=this._hasFlexibleDimensions,s=this._overlayRef.getConfig();if(r){const d=this._viewportRuler.getViewportScrollPosition();Zp(i,this._getExactOverlayY(e,t,d)),Zp(i,this._getExactOverlayX(e,t,d))}else i.position="static";let a="",l=this._getOffset(e,"x"),c=this._getOffset(e,"y");l&&(a+=`translateX(${l}px) `),c&&(a+=`translateY(${c}px)`),i.transform=a.trim(),s.maxHeight&&(r?i.maxHeight=bs(s.maxHeight):o&&(i.maxHeight="")),s.maxWidth&&(r?i.maxWidth=bs(s.maxWidth):o&&(i.maxWidth="")),Zp(this._pane.style,i)}_getExactOverlayY(t,e,i){let r={top:"",bottom:""},o=this._getOverlayPoint(e,this._overlayRect,t);return this._isPushed&&(o=this._pushOverlayOnScreen(o,this._overlayRect,i)),"bottom"===t.overlayY?r.bottom=this._document.documentElement.clientHeight-(o.y+this._overlayRect.height)+"px":r.top=bs(o.y),r}_getExactOverlayX(t,e,i){let s,r={left:"",right:""},o=this._getOverlayPoint(e,this._overlayRect,t);return this._isPushed&&(o=this._pushOverlayOnScreen(o,this._overlayRect,i)),s=this._isRtl()?"end"===t.overlayX?"left":"right":"end"===t.overlayX?"right":"left","right"===s?r.right=this._document.documentElement.clientWidth-(o.x+this._overlayRect.width)+"px":r.left=bs(o.x),r}_getScrollVisibility(){const t=this._getOriginRect(),e=this._pane.getBoundingClientRect(),i=this._scrollables.map(r=>r.getElementRef().nativeElement.getBoundingClientRect());return{isOriginClipped:kG(t,i),isOriginOutsideView:zP(t,i),isOverlayClipped:kG(e,i),isOverlayOutsideView:zP(e,i)}}_subtractOverflows(t,...e){return e.reduce((i,r)=>i-Math.max(r,0),t)}_getNarrowedViewportRect(){const t=this._document.documentElement.clientWidth,e=this._document.documentElement.clientHeight,i=this._viewportRuler.getViewportScrollPosition();return{top:i.top+this._viewportMargin,left:i.left+this._viewportMargin,right:i.left+t-this._viewportMargin,bottom:i.top+e-this._viewportMargin,width:t-2*this._viewportMargin,height:e-2*this._viewportMargin}}_isRtl(){return"rtl"===this._overlayRef.getDirection()}_hasExactPosition(){return!this._hasFlexibleDimensions||this._isPushed}_getOffset(t,e){return"x"===e?null==t.offsetX?this._offsetX:t.offsetX:null==t.offsetY?this._offsetY:t.offsetY}_validatePositions(){}_addPanelClasses(t){this._pane&&n2(t).forEach(e=>{""!==e&&-1===this._appliedPanelClasses.indexOf(e)&&(this._appliedPanelClasses.push(e),this._pane.classList.add(e))})}_clearPanelClasses(){this._pane&&(this._appliedPanelClasses.forEach(t=>{this._pane.classList.remove(t)}),this._appliedPanelClasses=[])}_getOriginRect(){const t=this._origin;if(t instanceof Vn)return t.nativeElement.getBoundingClientRect();if(t instanceof Element)return t.getBoundingClientRect();const e=t.width||0,i=t.height||0;return{top:t.y,bottom:t.y+i,left:t.x,right:t.x+e,height:i,width:e}}}function Zp(n,t){for(let e in t)t.hasOwnProperty(e)&&(n[e]=t[e]);return n}function RG(n){if("number"!=typeof n&&null!=n){const[t,e]=n.split(ave);return e&&"px"!==e?null:parseFloat(t)}return n||null}function LG(n){return{top:Math.floor(n.top),right:Math.floor(n.right),bottom:Math.floor(n.bottom),left:Math.floor(n.left),width:Math.floor(n.width),height:Math.floor(n.height)}}const OG="cdk-global-overlay-wrapper";class dve{constructor(){this._cssPosition="static",this._topOffset="",this._bottomOffset="",this._alignItems="",this._xPosition="",this._xOffset="",this._width="",this._height="",this._isDisposed=!1}attach(t){const e=t.getConfig();this._overlayRef=t,this._width&&!e.width&&t.updateSize({width:this._width}),this._height&&!e.height&&t.updateSize({height:this._height}),t.hostElement.classList.add(OG),this._isDisposed=!1}top(t=""){return this._bottomOffset="",this._topOffset=t,this._alignItems="flex-start",this}left(t=""){return this._xOffset=t,this._xPosition="left",this}bottom(t=""){return this._topOffset="",this._bottomOffset=t,this._alignItems="flex-end",this}right(t=""){return this._xOffset=t,this._xPosition="right",this}start(t=""){return this._xOffset=t,this._xPosition="start",this}end(t=""){return this._xOffset=t,this._xPosition="end",this}width(t=""){return this._overlayRef?this._overlayRef.updateSize({width:t}):this._width=t,this}height(t=""){return this._overlayRef?this._overlayRef.updateSize({height:t}):this._height=t,this}centerHorizontally(t=""){return this.left(t),this._xPosition="center",this}centerVertically(t=""){return this.top(t),this._alignItems="center",this}apply(){if(!this._overlayRef||!this._overlayRef.hasAttached())return;const t=this._overlayRef.overlayElement.style,e=this._overlayRef.hostElement.style,i=this._overlayRef.getConfig(),{width:r,height:o,maxWidth:s,maxHeight:a}=i,l=!("100%"!==r&&"100vw"!==r||s&&"100%"!==s&&"100vw"!==s),c=!("100%"!==o&&"100vh"!==o||a&&"100%"!==a&&"100vh"!==a),d=this._xPosition,u=this._xOffset,h="rtl"===this._overlayRef.getConfig().direction;let f="",A="",y="";l?y="flex-start":"center"===d?(y="center",h?A=u:f=u):h?"left"===d||"end"===d?(y="flex-end",f=u):("right"===d||"start"===d)&&(y="flex-start",A=u):"left"===d||"start"===d?(y="flex-start",f=u):("right"===d||"end"===d)&&(y="flex-end",A=u),t.position=this._cssPosition,t.marginLeft=l?"0":f,t.marginTop=c?"0":this._topOffset,t.marginBottom=this._bottomOffset,t.marginRight=l?"0":A,e.justifyContent=y,e.alignItems=c?"flex-start":this._alignItems}dispose(){if(this._isDisposed||!this._overlayRef)return;const t=this._overlayRef.overlayElement.style,e=this._overlayRef.hostElement,i=e.style;e.classList.remove(OG),i.justifyContent=i.alignItems=t.marginTop=t.marginBottom=t.marginLeft=t.marginRight=t.position="",this._overlayRef=null,this._isDisposed=!0}}let uve=(()=>{class n{constructor(e,i,r,o){this._viewportRuler=e,this._document=i,this._platform=r,this._overlayContainer=o}global(){return new dve}flexibleConnectedTo(e){return new lve(e,this._viewportRuler,this._document,this._platform,this._overlayContainer)}static{this.\u0275fac=function(i){return new(i||n)(ge(UP),ge(Bi),ge(eo),ge(m2))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),hve=0,Rs=(()=>{class n{constructor(e,i,r,o,s,a,l,c,d,u,h,f){this.scrollStrategies=e,this._overlayContainer=i,this._componentFactoryResolver=r,this._positionBuilder=o,this._keyboardDispatcher=s,this._injector=a,this._ngZone=l,this._document=c,this._directionality=d,this._location=u,this._outsideClickDispatcher=h,this._animationsModuleType=f}create(e){const i=this._createHostElement(),r=this._createPaneElement(i),o=this._createPortalOutlet(r),s=new f2(e);return s.direction=s.direction||this._directionality.value,new p2(o,i,r,s,this._ngZone,this._keyboardDispatcher,this._document,this._location,this._outsideClickDispatcher,"NoopAnimations"===this._animationsModuleType)}position(){return this._positionBuilder}_createPaneElement(e){const i=this._document.createElement("div");return i.id="cdk-overlay-"+hve++,i.classList.add("cdk-overlay-pane"),e.appendChild(i),i}_createHostElement(){const e=this._document.createElement("div");return this._overlayContainer.getContainerElement().appendChild(e),e}_createPortalOutlet(e){return this._appRef||(this._appRef=this._injector.get(zf)),new Hbe(e,this._componentFactoryResolver,this._appRef,this._injector,this._document)}static{this.\u0275fac=function(i){return new(i||n)(ge(ive),ge(m2),ge(l0),ge(uve),ge(ove),ge(Jo),ge(kn),ge(Bi),ge(wh),ge(bB),ge(sve),ge(ps,8))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();const fve=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"}],NG=new ut("cdk-connected-overlay-scroll-strategy",{providedIn:"root",factory:()=>{const n=qt(Rs);return()=>n.scrollStrategies.reposition()}});let qP=(()=>{class n{constructor(e){this.elementRef=e}static{this.\u0275fac=function(i){return new(i||n)($(Vn))}}static{this.\u0275dir=$t({type:n,selectors:[["","cdk-overlay-origin",""],["","overlay-origin",""],["","cdkOverlayOrigin",""]],exportAs:["cdkOverlayOrigin"],standalone:!0})}}return n})(),UG=(()=>{class n{get offsetX(){return this._offsetX}set offsetX(e){this._offsetX=e,this._position&&this._updatePositionStrategy(this._position)}get offsetY(){return this._offsetY}set offsetY(e){this._offsetY=e,this._position&&this._updatePositionStrategy(this._position)}get disposeOnNavigation(){return this._disposeOnNavigation}set disposeOnNavigation(e){this._disposeOnNavigation=e}constructor(e,i,r,o,s){this._overlay=e,this._dir=s,this._backdropSubscription=Kn.EMPTY,this._attachSubscription=Kn.EMPTY,this._detachSubscription=Kn.EMPTY,this._positionSubscription=Kn.EMPTY,this._disposeOnNavigation=!1,this._ngZone=qt(kn),this.viewportMargin=0,this.open=!1,this.disableClose=!1,this.hasBackdrop=!1,this.lockPosition=!1,this.flexibleDimensions=!1,this.growAfterOpen=!1,this.push=!1,this.backdropClick=new Bn,this.positionChange=new Bn,this.attach=new Bn,this.detach=new Bn,this.overlayKeydown=new Bn,this.overlayOutsideClick=new Bn,this._templatePortal=new M1(i,r),this._scrollStrategyFactory=o,this.scrollStrategy=this._scrollStrategyFactory()}get overlayRef(){return this._overlayRef}get dir(){return this._dir?this._dir.value:"ltr"}ngOnDestroy(){this._attachSubscription.unsubscribe(),this._detachSubscription.unsubscribe(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this._overlayRef&&this._overlayRef.dispose()}ngOnChanges(e){this._position&&(this._updatePositionStrategy(this._position),this._overlayRef.updateSize({width:this.width,minWidth:this.minWidth,height:this.height,minHeight:this.minHeight}),e.origin&&this.open&&this._position.apply()),e.open&&(this.open?this._attachOverlay():this._detachOverlay())}_createOverlay(){(!this.positions||!this.positions.length)&&(this.positions=fve);const e=this._overlayRef=this._overlay.create(this._buildConfig());this._attachSubscription=e.attachments().subscribe(()=>this.attach.emit()),this._detachSubscription=e.detachments().subscribe(()=>this.detach.emit()),e.keydownEvents().subscribe(i=>{this.overlayKeydown.next(i),27===i.keyCode&&!this.disableClose&&!cd(i)&&(i.preventDefault(),this._detachOverlay())}),this._overlayRef.outsidePointerEvents().subscribe(i=>{this.overlayOutsideClick.next(i)})}_buildConfig(){const e=this._position=this.positionStrategy||this._createPositionStrategy(),i=new f2({direction:this._dir,positionStrategy:e,scrollStrategy:this.scrollStrategy,hasBackdrop:this.hasBackdrop,disposeOnNavigation:this.disposeOnNavigation});return(this.width||0===this.width)&&(i.width=this.width),(this.height||0===this.height)&&(i.height=this.height),(this.minWidth||0===this.minWidth)&&(i.minWidth=this.minWidth),(this.minHeight||0===this.minHeight)&&(i.minHeight=this.minHeight),this.backdropClass&&(i.backdropClass=this.backdropClass),this.panelClass&&(i.panelClass=this.panelClass),i}_updatePositionStrategy(e){const i=this.positions.map(r=>({originX:r.originX,originY:r.originY,overlayX:r.overlayX,overlayY:r.overlayY,offsetX:r.offsetX||this.offsetX,offsetY:r.offsetY||this.offsetY,panelClass:r.panelClass||void 0}));return e.setOrigin(this._getFlexibleConnectedPositionStrategyOrigin()).withPositions(i).withFlexibleDimensions(this.flexibleDimensions).withPush(this.push).withGrowAfterOpen(this.growAfterOpen).withViewportMargin(this.viewportMargin).withLockedPosition(this.lockPosition).withTransformOriginOn(this.transformOriginSelector)}_createPositionStrategy(){const e=this._overlay.position().flexibleConnectedTo(this._getFlexibleConnectedPositionStrategyOrigin());return this._updatePositionStrategy(e),e}_getFlexibleConnectedPositionStrategyOrigin(){return this.origin instanceof qP?this.origin.elementRef:this.origin}_attachOverlay(){this._overlayRef?this._overlayRef.getConfig().hasBackdrop=this.hasBackdrop:this._createOverlay(),this._overlayRef.hasAttached()||this._overlayRef.attach(this._templatePortal),this.hasBackdrop?this._backdropSubscription=this._overlayRef.backdropClick().subscribe(e=>{this.backdropClick.emit(e)}):this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this.positionChange.observers.length>0&&(this._positionSubscription=this._position.positionChanges.pipe(function Nbe(n,t=!1){return le((e,i)=>{let r=0;e.subscribe(Be(i,o=>{const s=n(o,r++);(s||t)&&i.next(o),!s&&i.complete()}))})}(()=>this.positionChange.observers.length>0)).subscribe(e=>{this._ngZone.run(()=>this.positionChange.emit(e)),0===this.positionChange.observers.length&&this._positionSubscription.unsubscribe()}))}_detachOverlay(){this._overlayRef&&this._overlayRef.detach(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe()}static{this.\u0275fac=function(i){return new(i||n)($(Rs),$(Vl),$(ua),$(NG),$(wh,8))}}static{this.\u0275dir=$t({type:n,selectors:[["","cdk-connected-overlay",""],["","connected-overlay",""],["","cdkConnectedOverlay",""]],inputs:{origin:[Ct.None,"cdkConnectedOverlayOrigin","origin"],positions:[Ct.None,"cdkConnectedOverlayPositions","positions"],positionStrategy:[Ct.None,"cdkConnectedOverlayPositionStrategy","positionStrategy"],offsetX:[Ct.None,"cdkConnectedOverlayOffsetX","offsetX"],offsetY:[Ct.None,"cdkConnectedOverlayOffsetY","offsetY"],width:[Ct.None,"cdkConnectedOverlayWidth","width"],height:[Ct.None,"cdkConnectedOverlayHeight","height"],minWidth:[Ct.None,"cdkConnectedOverlayMinWidth","minWidth"],minHeight:[Ct.None,"cdkConnectedOverlayMinHeight","minHeight"],backdropClass:[Ct.None,"cdkConnectedOverlayBackdropClass","backdropClass"],panelClass:[Ct.None,"cdkConnectedOverlayPanelClass","panelClass"],viewportMargin:[Ct.None,"cdkConnectedOverlayViewportMargin","viewportMargin"],scrollStrategy:[Ct.None,"cdkConnectedOverlayScrollStrategy","scrollStrategy"],open:[Ct.None,"cdkConnectedOverlayOpen","open"],disableClose:[Ct.None,"cdkConnectedOverlayDisableClose","disableClose"],transformOriginSelector:[Ct.None,"cdkConnectedOverlayTransformOriginOn","transformOriginSelector"],hasBackdrop:[Ct.HasDecoratorInputTransform,"cdkConnectedOverlayHasBackdrop","hasBackdrop",Zn],lockPosition:[Ct.HasDecoratorInputTransform,"cdkConnectedOverlayLockPosition","lockPosition",Zn],flexibleDimensions:[Ct.HasDecoratorInputTransform,"cdkConnectedOverlayFlexibleDimensions","flexibleDimensions",Zn],growAfterOpen:[Ct.HasDecoratorInputTransform,"cdkConnectedOverlayGrowAfterOpen","growAfterOpen",Zn],push:[Ct.HasDecoratorInputTransform,"cdkConnectedOverlayPush","push",Zn],disposeOnNavigation:[Ct.HasDecoratorInputTransform,"cdkConnectedOverlayDisposeOnNavigation","disposeOnNavigation",Zn]},outputs:{backdropClick:"backdropClick",positionChange:"positionChange",attach:"attach",detach:"detach",overlayKeydown:"overlayKeydown",overlayOutsideClick:"overlayOutsideClick"},exportAs:["cdkConnectedOverlay"],standalone:!0,features:[es,wr]})}}return n})();const pve={provide:NG,deps:[Rs],useFactory:function mve(n){return()=>n.scrollStrategies.reposition()}};let T1=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({providers:[Rs,pve],imports:[w1,E1,IG,IG]})}}return n})();function I1(n){return Vi((t,e)=>n<=e)}let HG=(()=>{class n{create(e){return typeof MutationObserver>"u"?null:new MutationObserver(e)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),Ave=(()=>{class n{constructor(e){this._mutationObserverFactory=e,this._observedElements=new Map}ngOnDestroy(){this._observedElements.forEach((e,i)=>this._cleanupObserver(i))}observe(e){const i=yh(e);return new Yi(r=>{const s=this._observeElement(i).subscribe(r);return()=>{s.unsubscribe(),this._unobserveElement(i)}})}_observeElement(e){if(this._observedElements.has(e))this._observedElements.get(e).count++;else{const i=new Hn,r=this._mutationObserverFactory.create(o=>i.next(o));r&&r.observe(e,{characterData:!0,childList:!0,subtree:!0}),this._observedElements.set(e,{observer:r,stream:i,count:1})}return this._observedElements.get(e).stream}_unobserveElement(e){this._observedElements.has(e)&&(this._observedElements.get(e).count--,this._observedElements.get(e).count||this._cleanupObserver(e))}_cleanupObserver(e){if(this._observedElements.has(e)){const{observer:i,stream:r}=this._observedElements.get(e);i&&i.disconnect(),r.complete(),this._observedElements.delete(e)}}static{this.\u0275fac=function(i){return new(i||n)(ge(HG))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),VG=(()=>{class n{get disabled(){return this._disabled}set disabled(e){this._disabled=e,this._disabled?this._unsubscribe():this._subscribe()}get debounce(){return this._debounce}set debounce(e){this._debounce=im(e),this._subscribe()}constructor(e,i,r){this._contentObserver=e,this._elementRef=i,this._ngZone=r,this.event=new Bn,this._disabled=!1,this._currentSubscription=null}ngAfterContentInit(){!this._currentSubscription&&!this.disabled&&this._subscribe()}ngOnDestroy(){this._unsubscribe()}_subscribe(){this._unsubscribe();const e=this._contentObserver.observe(this._elementRef);this._ngZone.runOutsideAngular(()=>{this._currentSubscription=(this.debounce?e.pipe(G0(this.debounce)):e).subscribe(this.event)})}_unsubscribe(){this._currentSubscription?.unsubscribe()}static{this.\u0275fac=function(i){return new(i||n)($(Ave),$(Vn),$(kn))}}static{this.\u0275dir=$t({type:n,selectors:[["","cdkObserveContent",""]],inputs:{disabled:[Ct.HasDecoratorInputTransform,"cdkObserveContentDisabled","disabled",Zn],debounce:"debounce"},outputs:{event:"cdkObserveContent"},exportAs:["cdkObserveContent"],standalone:!0,features:[es]})}}return n})(),GP=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({providers:[HG]})}}return n})();function xh(...n){const t=By(n),e=WB(n),{args:i,keys:r}=az(n);if(0===i.length)return Vp([],t);const o=new Yi(function gve(n,t,e=sa){return i=>{QG(t,()=>{const{length:r}=n,o=new Array(r);let s=r,a=r;for(let l=0;l{const c=Vp(n[l],t);let d=!1;c.subscribe(Be(i,u=>{o[l]=u,d||(d=!0,a--),a||i.next(e(o.slice()))},()=>{--s||i.complete()}))},i)},i)}}(i,t,r?s=>lz(r,s):sa));return e?o.pipe(o3(e)):o}function QG(n,t,e){n?hh(e,n,t):t()}function A2(...n){return function _ve(){return cq(1)}()(Vp(n,By(n)))}function dd(...n){const t=By(n);return le((e,i)=>{(t?A2(n,e,t):A2(n,e)).subscribe(i)})}const zG=new Set;let Jp,bve=(()=>{class n{constructor(e,i){this._platform=e,this._nonce=i,this._matchMedia=this._platform.isBrowser&&window.matchMedia?window.matchMedia.bind(window):yve}matchMedia(e){return(this._platform.WEBKIT||this._platform.BLINK)&&function vve(n,t){if(!zG.has(n))try{Jp||(Jp=document.createElement("style"),t&&Jp.setAttribute("nonce",t),Jp.setAttribute("type","text/css"),document.head.appendChild(Jp)),Jp.sheet&&(Jp.sheet.insertRule(`@media ${n} {body{ }}`,0),zG.add(n))}catch(e){console.error(e)}}(e,this._nonce),this._matchMedia(e)}static{this.\u0275fac=function(i){return new(i||n)(ge(eo),ge(uD,8))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();function yve(n){return{matches:"all"===n||""===n,media:n,addListener:()=>{},removeListener:()=>{}}}let wve=(()=>{class n{constructor(e,i){this._mediaMatcher=e,this._zone=i,this._queries=new Map,this._destroySubject=new Hn}ngOnDestroy(){this._destroySubject.next(),this._destroySubject.complete()}isMatched(e){return qG(n2(e)).some(r=>this._registerQuery(r).mql.matches)}observe(e){let o=xh(qG(n2(e)).map(s=>this._registerQuery(s).observable));return o=A2(o.pipe(zo(1)),o.pipe(I1(1),G0(0))),o.pipe(Ge(s=>{const a={matches:!1,breakpoints:{}};return s.forEach(({matches:l,query:c})=>{a.matches=a.matches||l,a.breakpoints[c]=l}),a}))}_registerQuery(e){if(this._queries.has(e))return this._queries.get(e);const i=this._mediaMatcher.matchMedia(e),o={observable:new Yi(s=>{const a=l=>this._zone.run(()=>s.next(l));return i.addListener(a),()=>{i.removeListener(a)}}).pipe(dd(i),Ge(({matches:s})=>({query:e,matches:s})),to(this._destroySubject)),mql:i};return this._queries.set(e,o),o}static{this.\u0275fac=function(i){return new(i||n)(ge(bve),ge(kn))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();function qG(n){return n.map(t=>t.split(",")).reduce((t,e)=>t.concat(e)).map(t=>t.trim())}function WG(n,t,e){const i=g2(n,t);e=e.trim(),!i.some(r=>r.trim()===e)&&(i.push(e),n.setAttribute(t,i.join(" ")))}function WP(n,t,e){const i=g2(n,t);e=e.trim();const r=i.filter(o=>o!==e);r.length?n.setAttribute(t,r.join(" ")):n.removeAttribute(t)}function g2(n,t){return n.getAttribute(t)?.match(/\S+/g)??[]}const $G="cdk-describedby-message",_2="cdk-describedby-host";let $P=0,xve=(()=>{class n{constructor(e,i){this._platform=i,this._messageRegistry=new Map,this._messagesContainer=null,this._id=""+$P++,this._document=e,this._id=qt(Lv)+"-"+$P++}describe(e,i,r){if(!this._canBeDescribed(e,i))return;const o=jP(i,r);"string"!=typeof i?(jG(i,this._id),this._messageRegistry.set(o,{messageElement:i,referenceCount:0})):this._messageRegistry.has(o)||this._createMessageElement(i,r),this._isElementDescribedByMessage(e,o)||this._addMessageReference(e,o)}removeDescription(e,i,r){if(!i||!this._isElementNode(e))return;const o=jP(i,r);if(this._isElementDescribedByMessage(e,o)&&this._removeMessageReference(e,o),"string"==typeof i){const s=this._messageRegistry.get(o);s&&0===s.referenceCount&&this._deleteMessageElement(o)}0===this._messagesContainer?.childNodes.length&&(this._messagesContainer.remove(),this._messagesContainer=null)}ngOnDestroy(){const e=this._document.querySelectorAll(`[${_2}="${this._id}"]`);for(let i=0;i0!=r.indexOf($G));e.setAttribute("aria-describedby",i.join(" "))}_addMessageReference(e,i){const r=this._messageRegistry.get(i);WG(e,"aria-describedby",r.messageElement.id),e.setAttribute(_2,this._id),r.referenceCount++}_removeMessageReference(e,i){const r=this._messageRegistry.get(i);r.referenceCount--,WP(e,"aria-describedby",r.messageElement.id),e.removeAttribute(_2)}_isElementDescribedByMessage(e,i){const r=g2(e,"aria-describedby"),o=this._messageRegistry.get(i),s=o&&o.messageElement.id;return!!s&&-1!=r.indexOf(s)}_canBeDescribed(e,i){if(!this._isElementNode(e))return!1;if(i&&"object"==typeof i)return!0;const r=null==i?"":`${i}`.trim(),o=e.getAttribute("aria-label");return!(!r||o&&o.trim()===r)}_isElementNode(e){return e.nodeType===this._document.ELEMENT_NODE}static{this.\u0275fac=function(i){return new(i||n)(ge(Bi),ge(eo))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();function jP(n,t){return"string"==typeof n?`${t||""}/${n}`:n}function jG(n,t){n.id||(n.id=`${$G}-${t}-${$P++}`)}class XG{constructor(t,e){this._items=t,this._activeItemIndex=-1,this._activeItem=null,this._wrap=!1,this._letterKeyStream=new Hn,this._typeaheadSubscription=Kn.EMPTY,this._vertical=!0,this._allowedModifierKeys=[],this._homeAndEnd=!1,this._pageUpAndDown={enabled:!1,delta:10},this._skipPredicateFn=i=>i.disabled,this._pressedLetters=[],this.tabOut=new Hn,this.change=new Hn,t instanceof th?this._itemChangesSubscription=t.changes.subscribe(i=>this._itemsChanged(i.toArray())):dM(t)&&(this._effectRef=function SV(n,t){qd("NgSignals"),!t?.injector&&op();const e=t?.injector??qt(Jo),i=!0!==t?.manualCleanup?e.get(Ud):null,r=new Nhe(e.get(Rhe),n,typeof Zone>"u"?null:Zone.current,i,e,t?.allowSignalWrites??!1),o=e.get(_o,null,{optional:!0});return o&&8&o._lView[qn]?(o._lView[xg]??=[]).push(r.watcher.notify):r.watcher.notify(),r}(()=>this._itemsChanged(t()),{injector:e}))}skipPredicate(t){return this._skipPredicateFn=t,this}withWrap(t=!0){return this._wrap=t,this}withVerticalOrientation(t=!0){return this._vertical=t,this}withHorizontalOrientation(t){return this._horizontal=t,this}withAllowedModifierKeys(t){return this._allowedModifierKeys=t,this}withTypeAhead(t=200){return this._typeaheadSubscription.unsubscribe(),this._typeaheadSubscription=this._letterKeyStream.pipe(Dr(e=>this._pressedLetters.push(e)),G0(t),Vi(()=>this._pressedLetters.length>0),Ge(()=>this._pressedLetters.join(""))).subscribe(e=>{const i=this._getItemsArray();for(let r=1;r!t[o]||this._allowedModifierKeys.indexOf(o)>-1);switch(e){case 9:return void this.tabOut.next();case 40:if(this._vertical&&r){this.setNextItemActive();break}return;case 38:if(this._vertical&&r){this.setPreviousItemActive();break}return;case 39:if(this._horizontal&&r){"rtl"===this._horizontal?this.setPreviousItemActive():this.setNextItemActive();break}return;case 37:if(this._horizontal&&r){"rtl"===this._horizontal?this.setNextItemActive():this.setPreviousItemActive();break}return;case 36:if(this._homeAndEnd&&r){this.setFirstItemActive();break}return;case 35:if(this._homeAndEnd&&r){this.setLastItemActive();break}return;case 33:if(this._pageUpAndDown.enabled&&r){const o=this._activeItemIndex-this._pageUpAndDown.delta;this._setActiveItemByIndex(o>0?o:0,1);break}return;case 34:if(this._pageUpAndDown.enabled&&r){const o=this._activeItemIndex+this._pageUpAndDown.delta,s=this._getItemsArray().length;this._setActiveItemByIndex(o=65&&e<=90||e>=48&&e<=57)&&this._letterKeyStream.next(String.fromCharCode(e))))}this._pressedLetters=[],t.preventDefault()}get activeItemIndex(){return this._activeItemIndex}get activeItem(){return this._activeItem}isTyping(){return this._pressedLetters.length>0}setFirstItemActive(){this._setActiveItemByIndex(0,1)}setLastItemActive(){this._setActiveItemByIndex(this._items.length-1,-1)}setNextItemActive(){this._activeItemIndex<0?this.setFirstItemActive():this._setActiveItemByDelta(1)}setPreviousItemActive(){this._activeItemIndex<0&&this._wrap?this.setLastItemActive():this._setActiveItemByDelta(-1)}updateActiveItem(t){const e=this._getItemsArray(),i="number"==typeof t?t:e.indexOf(t);this._activeItem=e[i]??null,this._activeItemIndex=i}destroy(){this._typeaheadSubscription.unsubscribe(),this._itemChangesSubscription?.unsubscribe(),this._effectRef?.destroy(),this._letterKeyStream.complete(),this.tabOut.complete(),this.change.complete(),this._pressedLetters=[]}_setActiveItemByDelta(t){this._wrap?this._setActiveInWrapMode(t):this._setActiveInDefaultMode(t)}_setActiveInWrapMode(t){const e=this._getItemsArray();for(let i=1;i<=e.length;i++){const r=(this._activeItemIndex+t*i+e.length)%e.length;if(!this._skipPredicateFn(e[r]))return void this.setActiveItem(r)}}_setActiveInDefaultMode(t){this._setActiveItemByIndex(this._activeItemIndex+t,t)}_setActiveItemByIndex(t,e){const i=this._getItemsArray();if(i[t]){for(;this._skipPredicateFn(i[t]);)if(!i[t+=e])return;this.setActiveItem(t)}}_getItemsArray(){return dM(this._items)?this._items():this._items instanceof th?this._items.toArray():this._items}_itemsChanged(t){if(this._activeItem){const e=t.indexOf(this._activeItem);e>-1&&e!==this._activeItemIndex&&(this._activeItemIndex=e)}}}class Cve extends XG{setActiveItem(t){this.activeItem&&this.activeItem.setInactiveStyles(),super.setActiveItem(t),this.activeItem&&this.activeItem.setActiveStyles()}}class XP extends XG{constructor(){super(...arguments),this._origin="program"}setFocusOrigin(t){return this._origin=t,this}setActiveItem(t){super.setActiveItem(t),this.activeItem&&this.activeItem.focus(this._origin)}}let KP=(()=>{class n{constructor(e){this._platform=e}isDisabled(e){return e.hasAttribute("disabled")}isVisible(e){return function Eve(n){return!!(n.offsetWidth||n.offsetHeight||"function"==typeof n.getClientRects&&n.getClientRects().length)}(e)&&"visible"===getComputedStyle(e).visibility}isTabbable(e){if(!this._platform.isBrowser)return!1;const i=function Mve(n){try{return n.frameElement}catch{return null}}(function Pve(n){return n.ownerDocument&&n.ownerDocument.defaultView||window}(e));if(i&&(-1===YG(i)||!this.isVisible(i)))return!1;let r=e.nodeName.toLowerCase(),o=YG(e);return e.hasAttribute("contenteditable")?-1!==o:!("iframe"===r||"object"===r||this._platform.WEBKIT&&this._platform.IOS&&!function kve(n){let t=n.nodeName.toLowerCase(),e="input"===t&&n.type;return"text"===e||"password"===e||"select"===t||"textarea"===t}(e))&&("audio"===r?!!e.hasAttribute("controls")&&-1!==o:"video"===r?-1!==o&&(null!==o||this._platform.FIREFOX||e.hasAttribute("controls")):e.tabIndex>=0)}isFocusable(e,i){return function Bve(n){return!function Tve(n){return function Fve(n){return"input"==n.nodeName.toLowerCase()}(n)&&"hidden"==n.type}(n)&&(function Sve(n){let t=n.nodeName.toLowerCase();return"input"===t||"select"===t||"button"===t||"textarea"===t}(n)||function Ive(n){return function Dve(n){return"a"==n.nodeName.toLowerCase()}(n)&&n.hasAttribute("href")}(n)||n.hasAttribute("contenteditable")||KG(n))}(e)&&!this.isDisabled(e)&&(i?.ignoreVisibility||this.isVisible(e))}static{this.\u0275fac=function(i){return new(i||n)(ge(eo))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();function KG(n){if(!n.hasAttribute("tabindex")||void 0===n.tabIndex)return!1;let t=n.getAttribute("tabindex");return!(!t||isNaN(parseInt(t,10)))}function YG(n){if(!KG(n))return null;const t=parseInt(n.getAttribute("tabindex")||"",10);return isNaN(t)?-1:t}class ZG{get enabled(){return this._enabled}set enabled(t){this._enabled=t,this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(t,this._startAnchor),this._toggleAnchorTabIndex(t,this._endAnchor))}constructor(t,e,i,r,o=!1){this._element=t,this._checker=e,this._ngZone=i,this._document=r,this._hasAttached=!1,this.startAnchorListener=()=>this.focusLastTabbableElement(),this.endAnchorListener=()=>this.focusFirstTabbableElement(),this._enabled=!0,o||this.attachAnchors()}destroy(){const t=this._startAnchor,e=this._endAnchor;t&&(t.removeEventListener("focus",this.startAnchorListener),t.remove()),e&&(e.removeEventListener("focus",this.endAnchorListener),e.remove()),this._startAnchor=this._endAnchor=null,this._hasAttached=!1}attachAnchors(){return!!this._hasAttached||(this._ngZone.runOutsideAngular(()=>{this._startAnchor||(this._startAnchor=this._createAnchor(),this._startAnchor.addEventListener("focus",this.startAnchorListener)),this._endAnchor||(this._endAnchor=this._createAnchor(),this._endAnchor.addEventListener("focus",this.endAnchorListener))}),this._element.parentNode&&(this._element.parentNode.insertBefore(this._startAnchor,this._element),this._element.parentNode.insertBefore(this._endAnchor,this._element.nextSibling),this._hasAttached=!0),this._hasAttached)}focusInitialElementWhenReady(t){return new Promise(e=>{this._executeOnStable(()=>e(this.focusInitialElement(t)))})}focusFirstTabbableElementWhenReady(t){return new Promise(e=>{this._executeOnStable(()=>e(this.focusFirstTabbableElement(t)))})}focusLastTabbableElementWhenReady(t){return new Promise(e=>{this._executeOnStable(()=>e(this.focusLastTabbableElement(t)))})}_getRegionBoundary(t){const e=this._element.querySelectorAll(`[cdk-focus-region-${t}], [cdkFocusRegion${t}], [cdk-focus-${t}]`);return"start"==t?e.length?e[0]:this._getFirstTabbableElement(this._element):e.length?e[e.length-1]:this._getLastTabbableElement(this._element)}focusInitialElement(t){const e=this._element.querySelector("[cdk-focus-initial], [cdkFocusInitial]");if(e){if(!this._checker.isFocusable(e)){const i=this._getFirstTabbableElement(e);return i?.focus(t),!!i}return e.focus(t),!0}return this.focusFirstTabbableElement(t)}focusFirstTabbableElement(t){const e=this._getRegionBoundary("start");return e&&e.focus(t),!!e}focusLastTabbableElement(t){const e=this._getRegionBoundary("end");return e&&e.focus(t),!!e}hasAttached(){return this._hasAttached}_getFirstTabbableElement(t){if(this._checker.isFocusable(t)&&this._checker.isTabbable(t))return t;const e=t.children;for(let i=0;i=0;i--){const r=e[i].nodeType===this._document.ELEMENT_NODE?this._getLastTabbableElement(e[i]):null;if(r)return r}return null}_createAnchor(){const t=this._document.createElement("div");return this._toggleAnchorTabIndex(this._enabled,t),t.classList.add("cdk-visually-hidden"),t.classList.add("cdk-focus-trap-anchor"),t.setAttribute("aria-hidden","true"),t}_toggleAnchorTabIndex(t,e){t?e.setAttribute("tabindex","0"):e.removeAttribute("tabindex")}toggleAnchors(t){this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(t,this._startAnchor),this._toggleAnchorTabIndex(t,this._endAnchor))}_executeOnStable(t){this._ngZone.isStable?t():this._ngZone.onStable.pipe(zo(1)).subscribe(t)}}let JG=(()=>{class n{constructor(e,i,r){this._checker=e,this._ngZone=i,this._document=r}create(e,i=!1){return new ZG(e,this._checker,this._ngZone,this._document,i)}static{this.\u0275fac=function(i){return new(i||n)(ge(KP),ge(kn),ge(Bi))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();function YP(n){return 0===n.buttons||0===n.detail}function ZP(n){const t=n.touches&&n.touches[0]||n.changedTouches&&n.changedTouches[0];return!(!t||-1!==t.identifier||null!=t.radiusX&&1!==t.radiusX||null!=t.radiusY&&1!==t.radiusY)}const Rve=new ut("cdk-input-modality-detector-options"),Lve={ignoreKeys:[18,17,224,91,16]},Z0=Kp({passive:!0,capture:!0});let Ove=(()=>{class n{get mostRecentModality(){return this._modality.value}constructor(e,i,r,o){this._platform=e,this._mostRecentTarget=null,this._modality=new wa(null),this._lastTouchMs=0,this._onKeydown=s=>{this._options?.ignoreKeys?.some(a=>a===s.keyCode)||(this._modality.next("keyboard"),this._mostRecentTarget=rm(s))},this._onMousedown=s=>{Date.now()-this._lastTouchMs<650||(this._modality.next(YP(s)?"keyboard":"mouse"),this._mostRecentTarget=rm(s))},this._onTouchstart=s=>{ZP(s)?this._modality.next("keyboard"):(this._lastTouchMs=Date.now(),this._modality.next("touch"),this._mostRecentTarget=rm(s))},this._options={...Lve,...o},this.modalityDetected=this._modality.pipe(I1(1)),this.modalityChanged=this.modalityDetected.pipe($y()),e.isBrowser&&i.runOutsideAngular(()=>{r.addEventListener("keydown",this._onKeydown,Z0),r.addEventListener("mousedown",this._onMousedown,Z0),r.addEventListener("touchstart",this._onTouchstart,Z0)})}ngOnDestroy(){this._modality.complete(),this._platform.isBrowser&&(document.removeEventListener("keydown",this._onKeydown,Z0),document.removeEventListener("mousedown",this._onMousedown,Z0),document.removeEventListener("touchstart",this._onTouchstart,Z0))}static{this.\u0275fac=function(i){return new(i||n)(ge(eo),ge(kn),ge(Bi),ge(Rve,8))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();const Nve=new ut("liveAnnouncerElement",{providedIn:"root",factory:function Uve(){return null}}),Hve=new ut("LIVE_ANNOUNCER_DEFAULT_OPTIONS");let Vve=0,Qve=(()=>{class n{constructor(e,i,r,o){this._ngZone=i,this._defaultOptions=o,this._document=r,this._liveElement=e||this._createLiveElement()}announce(e,...i){const r=this._defaultOptions;let o,s;return 1===i.length&&"number"==typeof i[0]?s=i[0]:[o,s]=i,this.clear(),clearTimeout(this._previousTimeout),o||(o=r&&r.politeness?r.politeness:"polite"),null==s&&r&&(s=r.duration),this._liveElement.setAttribute("aria-live",o),this._liveElement.id&&this._exposeAnnouncerToModals(this._liveElement.id),this._ngZone.runOutsideAngular(()=>(this._currentPromise||(this._currentPromise=new Promise(a=>this._currentResolve=a)),clearTimeout(this._previousTimeout),this._previousTimeout=setTimeout(()=>{this._liveElement.textContent=e,"number"==typeof s&&(this._previousTimeout=setTimeout(()=>this.clear(),s)),this._currentResolve?.(),this._currentPromise=this._currentResolve=void 0},100),this._currentPromise))}clear(){this._liveElement&&(this._liveElement.textContent="")}ngOnDestroy(){clearTimeout(this._previousTimeout),this._liveElement?.remove(),this._liveElement=null,this._currentResolve?.(),this._currentPromise=this._currentResolve=void 0}_createLiveElement(){const e="cdk-live-announcer-element",i=this._document.getElementsByClassName(e),r=this._document.createElement("div");for(let o=0;o .cdk-overlay-container [aria-modal="true"]');for(let r=0;r{class n{constructor(e,i,r,o,s){this._ngZone=e,this._platform=i,this._inputModalityDetector=r,this._origin=null,this._windowFocused=!1,this._originFromTouchInteraction=!1,this._elementInfo=new Map,this._monitoredElementCount=0,this._rootNodeFocusListenerCount=new Map,this._windowFocusListener=()=>{this._windowFocused=!0,this._windowFocusTimeoutId=window.setTimeout(()=>this._windowFocused=!1)},this._stopInputModalityDetector=new Hn,this._rootNodeFocusAndBlurListener=a=>{for(let c=rm(a);c;c=c.parentElement)"focus"===a.type?this._onFocus(a,c):this._onBlur(a,c)},this._document=o,this._detectionMode=s?.detectionMode||b2.IMMEDIATE}monitor(e,i=!1){const r=yh(e);if(!this._platform.isBrowser||1!==r.nodeType)return ol();const o=function Dbe(n){if(function Fbe(){if(null==OP){const n=typeof document<"u"?document.head:null;OP=!(!n||!n.createShadowRoot&&!n.attachShadow)}return OP}()){const t=n.getRootNode?n.getRootNode():null;if(typeof ShadowRoot<"u"&&ShadowRoot&&t instanceof ShadowRoot)return t}return null}(r)||this._getDocument(),s=this._elementInfo.get(r);if(s)return i&&(s.checkChildren=!0),s.subject;const a={checkChildren:i,subject:new Hn,rootNode:o};return this._elementInfo.set(r,a),this._registerGlobalListeners(a),a.subject}stopMonitoring(e){const i=yh(e),r=this._elementInfo.get(i);r&&(r.subject.complete(),this._setClasses(i),this._elementInfo.delete(i),this._removeGlobalListeners(r))}focusVia(e,i,r){const o=yh(e);o===this._getDocument().activeElement?this._getClosestElementsInfo(o).forEach(([a,l])=>this._originChanged(a,i,l)):(this._setOrigin(i),"function"==typeof o.focus&&o.focus(r))}ngOnDestroy(){this._elementInfo.forEach((e,i)=>this.stopMonitoring(i))}_getDocument(){return this._document||document}_getWindow(){return this._getDocument().defaultView||window}_getFocusOrigin(e){return this._origin?this._originFromTouchInteraction?this._shouldBeAttributedToTouch(e)?"touch":"program":this._origin:this._windowFocused&&this._lastFocusOrigin?this._lastFocusOrigin:e&&this._isLastInteractionFromInputLabel(e)?"mouse":"program"}_shouldBeAttributedToTouch(e){return this._detectionMode===b2.EVENTUAL||!!e?.contains(this._inputModalityDetector._mostRecentTarget)}_setClasses(e,i){e.classList.toggle("cdk-focused",!!i),e.classList.toggle("cdk-touch-focused","touch"===i),e.classList.toggle("cdk-keyboard-focused","keyboard"===i),e.classList.toggle("cdk-mouse-focused","mouse"===i),e.classList.toggle("cdk-program-focused","program"===i)}_setOrigin(e,i=!1){this._ngZone.runOutsideAngular(()=>{this._origin=e,this._originFromTouchInteraction="touch"===e&&i,this._detectionMode===b2.IMMEDIATE&&(clearTimeout(this._originTimeoutId),this._originTimeoutId=setTimeout(()=>this._origin=null,this._originFromTouchInteraction?650:1))})}_onFocus(e,i){const r=this._elementInfo.get(i),o=rm(e);!r||!r.checkChildren&&i!==o||this._originChanged(i,this._getFocusOrigin(o),r)}_onBlur(e,i){const r=this._elementInfo.get(i);!r||r.checkChildren&&e.relatedTarget instanceof Node&&i.contains(e.relatedTarget)||(this._setClasses(i),this._emitOrigin(r,null))}_emitOrigin(e,i){e.subject.observers.length&&this._ngZone.run(()=>e.subject.next(i))}_registerGlobalListeners(e){if(!this._platform.isBrowser)return;const i=e.rootNode,r=this._rootNodeFocusListenerCount.get(i)||0;r||this._ngZone.runOutsideAngular(()=>{i.addEventListener("focus",this._rootNodeFocusAndBlurListener,v2),i.addEventListener("blur",this._rootNodeFocusAndBlurListener,v2)}),this._rootNodeFocusListenerCount.set(i,r+1),1==++this._monitoredElementCount&&(this._ngZone.runOutsideAngular(()=>{this._getWindow().addEventListener("focus",this._windowFocusListener)}),this._inputModalityDetector.modalityDetected.pipe(to(this._stopInputModalityDetector)).subscribe(o=>{this._setOrigin(o,!0)}))}_removeGlobalListeners(e){const i=e.rootNode;if(this._rootNodeFocusListenerCount.has(i)){const r=this._rootNodeFocusListenerCount.get(i);r>1?this._rootNodeFocusListenerCount.set(i,r-1):(i.removeEventListener("focus",this._rootNodeFocusAndBlurListener,v2),i.removeEventListener("blur",this._rootNodeFocusAndBlurListener,v2),this._rootNodeFocusListenerCount.delete(i))}--this._monitoredElementCount||(this._getWindow().removeEventListener("focus",this._windowFocusListener),this._stopInputModalityDetector.next(),clearTimeout(this._windowFocusTimeoutId),clearTimeout(this._originTimeoutId))}_originChanged(e,i,r){this._setClasses(e,i),this._emitOrigin(r,i),this._lastFocusOrigin=i}_getClosestElementsInfo(e){const i=[];return this._elementInfo.forEach((r,o)=>{(o===e||r.checkChildren&&o.contains(e))&&i.push([o,r])}),i}_isLastInteractionFromInputLabel(e){const{_mostRecentTarget:i,mostRecentModality:r}=this._inputModalityDetector;if("mouse"!==r||!i||i===e||"INPUT"!==e.nodeName&&"TEXTAREA"!==e.nodeName||e.disabled)return!1;const o=e.labels;if(o)for(let s=0;s{class n{constructor(e,i){this._platform=e,this._document=i,this._breakpointSubscription=qt(wve).observe("(forced-colors: active)").subscribe(()=>{this._hasCheckedHighContrastMode&&(this._hasCheckedHighContrastMode=!1,this._applyBodyHighContrastModeCssClasses())})}getHighContrastMode(){if(!this._platform.isBrowser)return eA.NONE;const e=this._document.createElement("div");e.style.backgroundColor="rgb(1,2,3)",e.style.position="absolute",this._document.body.appendChild(e);const i=this._document.defaultView||window,r=i&&i.getComputedStyle?i.getComputedStyle(e):null,o=(r&&r.backgroundColor||"").replace(/ /g,"");switch(e.remove(),o){case"rgb(0,0,0)":case"rgb(45,50,54)":case"rgb(32,32,32)":return eA.WHITE_ON_BLACK;case"rgb(255,255,255)":case"rgb(255,250,239)":return eA.BLACK_ON_WHITE}return eA.NONE}ngOnDestroy(){this._breakpointSubscription.unsubscribe()}_applyBodyHighContrastModeCssClasses(){if(!this._hasCheckedHighContrastMode&&this._platform.isBrowser&&this._document.body){const e=this._document.body.classList;e.remove(JP,tW,nW),this._hasCheckedHighContrastMode=!0;const i=this.getHighContrastMode();i===eA.BLACK_ON_WHITE?e.add(JP,tW):i===eA.WHITE_ON_BLACK&&e.add(JP,nW)}}static{this.\u0275fac=function(i){return new(i||n)(ge(eo),ge(Bi))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),eR=(()=>{class n{constructor(e){e._applyBodyHighContrastModeCssClasses()}static{this.\u0275fac=function(i){return new(i||n)(ge(iW))}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[GP]})}}return n})();function tR(n){return new Yi(t=>{rs(n()).subscribe(t)})}function qve(n,t){}class y2{constructor(){this.role="dialog",this.panelClass="",this.hasBackdrop=!0,this.backdropClass="",this.disableClose=!1,this.width="",this.height="",this.data=null,this.ariaDescribedBy=null,this.ariaLabelledBy=null,this.ariaLabel=null,this.ariaModal=!0,this.autoFocus="first-tabbable",this.restoreFocus=!0,this.closeOnNavigation=!0,this.closeOnDestroy=!0,this.closeOnOverlayDetachments=!0}}let rW=(()=>{class n extends VP{constructor(e,i,r,o,s,a,l,c){super(),this._elementRef=e,this._focusTrapFactory=i,this._config=o,this._interactivityChecker=s,this._ngZone=a,this._overlayRef=l,this._focusMonitor=c,this._platform=qt(eo),this._focusTrap=null,this._elementFocusedBeforeDialogWasOpened=null,this._closeInteractionType=null,this._ariaLabelledByQueue=[],this._changeDetectorRef=qt(_o),this.attachDomPortal=d=>{this._portalOutlet.hasAttached();const u=this._portalOutlet.attachDomPortal(d);return this._contentAttached(),u},this._document=r,this._config.ariaLabelledBy&&this._ariaLabelledByQueue.push(this._config.ariaLabelledBy)}_addAriaLabelledBy(e){this._ariaLabelledByQueue.push(e),this._changeDetectorRef.markForCheck()}_removeAriaLabelledBy(e){const i=this._ariaLabelledByQueue.indexOf(e);i>-1&&(this._ariaLabelledByQueue.splice(i,1),this._changeDetectorRef.markForCheck())}_contentAttached(){this._initializeFocusTrap(),this._handleBackdropClicks(),this._captureInitialFocus()}_captureInitialFocus(){this._trapFocus()}ngOnDestroy(){this._restoreFocus()}attachComponentPortal(e){this._portalOutlet.hasAttached();const i=this._portalOutlet.attachComponentPortal(e);return this._contentAttached(),i}attachTemplatePortal(e){this._portalOutlet.hasAttached();const i=this._portalOutlet.attachTemplatePortal(e);return this._contentAttached(),i}_recaptureFocus(){this._containsFocus()||this._trapFocus()}_forceFocus(e,i){this._interactivityChecker.isFocusable(e)||(e.tabIndex=-1,this._ngZone.runOutsideAngular(()=>{const r=()=>{e.removeEventListener("blur",r),e.removeEventListener("mousedown",r),e.removeAttribute("tabindex")};e.addEventListener("blur",r),e.addEventListener("mousedown",r)})),e.focus(i)}_focusByCssSelector(e,i){let r=this._elementRef.nativeElement.querySelector(e);r&&this._forceFocus(r,i)}_trapFocus(){const e=this._elementRef.nativeElement;switch(this._config.autoFocus){case!1:case"dialog":this._containsFocus()||e.focus();break;case!0:case"first-tabbable":this._focusTrap?.focusInitialElementWhenReady().then(i=>{i||this._focusDialogContainer()});break;case"first-heading":this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role="heading"]');break;default:this._focusByCssSelector(this._config.autoFocus)}}_restoreFocus(){const e=this._config.restoreFocus;let i=null;if("string"==typeof e?i=this._document.querySelector(e):"boolean"==typeof e?i=e?this._elementFocusedBeforeDialogWasOpened:null:e&&(i=e),this._config.restoreFocus&&i&&"function"==typeof i.focus){const r=a2(),o=this._elementRef.nativeElement;(!r||r===this._document.body||r===o||o.contains(r))&&(this._focusMonitor?(this._focusMonitor.focusVia(i,this._closeInteractionType),this._closeInteractionType=null):i.focus())}this._focusTrap&&this._focusTrap.destroy()}_focusDialogContainer(){this._elementRef.nativeElement.focus&&this._elementRef.nativeElement.focus()}_containsFocus(){const e=this._elementRef.nativeElement,i=a2();return e===i||e.contains(i)}_initializeFocusTrap(){this._platform.isBrowser&&(this._focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement),this._document&&(this._elementFocusedBeforeDialogWasOpened=a2()))}_handleBackdropClicks(){this._overlayRef.backdropClick().subscribe(()=>{this._config.disableClose&&this._recaptureFocus()})}static{this.\u0275fac=function(i){return new(i||n)($(Vn),$(JG),$(Bi,8),$(y2),$(KP),$(kn),$(p2),$(Ch))}}static{this.\u0275cmp=vt({type:n,selectors:[["cdk-dialog-container"]],viewQuery:function(i,r){if(1&i&&ei(l2,7),2&i){let o;un(o=hn())&&(r._portalOutlet=o.first)}},hostAttrs:["tabindex","-1",1,"cdk-dialog-container"],hostVars:6,hostBindings:function(i,r){2&i&&fi("id",r._config.id||null)("role",r._config.role)("aria-modal",r._config.ariaModal)("aria-labelledby",r._config.ariaLabel?null:r._ariaLabelledByQueue[0])("aria-label",r._config.ariaLabel)("aria-describedby",r._config.ariaDescribedBy||null)},standalone:!0,features:[_i,Or],decls:1,vars:0,consts:[["cdkPortalOutlet",""]],template:function(i,r){1&i&&At(0,qve,0,0,"ng-template",0)},dependencies:[l2],styles:[".cdk-dialog-container{display:block;width:100%;height:100%;min-height:inherit;max-height:inherit}"],encapsulation:2})}}return n})();class nR{constructor(t,e){this.overlayRef=t,this.config=e,this.closed=new Hn,this.disableClose=e.disableClose,this.backdropClick=t.backdropClick(),this.keydownEvents=t.keydownEvents(),this.outsidePointerEvents=t.outsidePointerEvents(),this.id=e.id,this.keydownEvents.subscribe(i=>{27===i.keyCode&&!this.disableClose&&!cd(i)&&(i.preventDefault(),this.close(void 0,{focusOrigin:"keyboard"}))}),this.backdropClick.subscribe(()=>{this.disableClose||this.close(void 0,{focusOrigin:"mouse"})}),this._detachSubscription=t.detachments().subscribe(()=>{!1!==e.closeOnOverlayDetachments&&this.close()})}close(t,e){if(this.containerInstance){const i=this.closed;this.containerInstance._closeInteractionType=e?.focusOrigin||"program",this._detachSubscription.unsubscribe(),this.overlayRef.dispose(),i.next(t),i.complete(),this.componentInstance=this.containerInstance=null}}updatePosition(){return this.overlayRef.updatePosition(),this}updateSize(t="",e=""){return this.overlayRef.updateSize({width:t,height:e}),this}addPanelClass(t){return this.overlayRef.addPanelClass(t),this}removePanelClass(t){return this.overlayRef.removePanelClass(t),this}}const oW=new ut("DialogScrollStrategy",{providedIn:"root",factory:()=>{const n=qt(Rs);return()=>n.scrollStrategies.block()}}),Gve=new ut("DialogData"),Wve=new ut("DefaultDialogConfig");let jve=0,sW=(()=>{class n{get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}constructor(e,i,r,o,s,a){this._overlay=e,this._injector=i,this._defaultOptions=r,this._parentDialog=o,this._overlayContainer=s,this._openDialogsAtThisLevel=[],this._afterAllClosedAtThisLevel=new Hn,this._afterOpenedAtThisLevel=new Hn,this._ariaHiddenElements=new Map,this.afterAllClosed=tR(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(dd(void 0))),this._scrollStrategy=a}open(e,i){(i={...this._defaultOptions||new y2,...i}).id=i.id||"cdk-dialog-"+jve++,i.id&&this.getDialogById(i.id);const o=this._getOverlayConfig(i),s=this._overlay.create(o),a=new nR(s,i),l=this._attachContainer(s,a,i);return a.containerInstance=l,this._attachDialogContent(e,a,l,i),this.openDialogs.length||this._hideNonDialogContentFromAssistiveTechnology(),this.openDialogs.push(a),a.closed.subscribe(()=>this._removeOpenDialog(a,!0)),this.afterOpened.next(a),a}closeAll(){iR(this.openDialogs,e=>e.close())}getDialogById(e){return this.openDialogs.find(i=>i.id===e)}ngOnDestroy(){iR(this._openDialogsAtThisLevel,e=>{!1===e.config.closeOnDestroy&&this._removeOpenDialog(e,!1)}),iR(this._openDialogsAtThisLevel,e=>e.close()),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete(),this._openDialogsAtThisLevel=[]}_getOverlayConfig(e){const i=new f2({positionStrategy:e.positionStrategy||this._overlay.position().global().centerHorizontally().centerVertically(),scrollStrategy:e.scrollStrategy||this._scrollStrategy(),panelClass:e.panelClass,hasBackdrop:e.hasBackdrop,direction:e.direction,minWidth:e.minWidth,minHeight:e.minHeight,maxWidth:e.maxWidth,maxHeight:e.maxHeight,width:e.width,height:e.height,disposeOnNavigation:e.closeOnNavigation});return e.backdropClass&&(i.backdropClass=e.backdropClass),i}_attachContainer(e,i,r){const o=r.injector||r.viewContainerRef?.injector,s=[{provide:y2,useValue:r},{provide:nR,useValue:i},{provide:p2,useValue:e}];let a;r.container?"function"==typeof r.container?a=r.container:(a=r.container.type,s.push(...r.container.providers(r))):a=rW;const l=new C1(a,r.viewContainerRef,Jo.create({parent:o||this._injector,providers:s}),r.componentFactoryResolver);return e.attach(l).instance}_attachDialogContent(e,i,r,o){if(e instanceof Vl){const s=this._createInjector(o,i,r,void 0);let a={$implicit:o.data,dialogRef:i};o.templateContext&&(a={...a,..."function"==typeof o.templateContext?o.templateContext():o.templateContext}),r.attachTemplatePortal(new M1(e,null,a,s))}else{const s=this._createInjector(o,i,r,this._injector),a=r.attachComponentPortal(new C1(e,o.viewContainerRef,s,o.componentFactoryResolver));i.componentRef=a,i.componentInstance=a.instance}}_createInjector(e,i,r,o){const s=e.injector||e.viewContainerRef?.injector,a=[{provide:Gve,useValue:e.data},{provide:nR,useValue:i}];return e.providers&&("function"==typeof e.providers?a.push(...e.providers(i,e,r)):a.push(...e.providers)),e.direction&&(!s||!s.get(wh,null,{optional:!0}))&&a.push({provide:wh,useValue:{value:e.direction,change:ol()}}),Jo.create({parent:s||o,providers:a})}_removeOpenDialog(e,i){const r=this.openDialogs.indexOf(e);r>-1&&(this.openDialogs.splice(r,1),this.openDialogs.length||(this._ariaHiddenElements.forEach((o,s)=>{o?s.setAttribute("aria-hidden",o):s.removeAttribute("aria-hidden")}),this._ariaHiddenElements.clear(),i&&this._getAfterAllClosed().next()))}_hideNonDialogContentFromAssistiveTechnology(){const e=this._overlayContainer.getContainerElement();if(e.parentElement){const i=e.parentElement.children;for(let r=i.length-1;r>-1;r--){const o=i[r];o!==e&&"SCRIPT"!==o.nodeName&&"STYLE"!==o.nodeName&&!o.hasAttribute("aria-live")&&(this._ariaHiddenElements.set(o,o.getAttribute("aria-hidden")),o.setAttribute("aria-hidden","true"))}}}_getAfterAllClosed(){const e=this._parentDialog;return e?e._getAfterAllClosed():this._afterAllClosedAtThisLevel}static{this.\u0275fac=function(i){return new(i||n)(ge(Rs),ge(Jo),ge(Wve,8),ge(n,12),ge(m2),ge(oW))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();function iR(n,t){let e=n.length;for(;e--;)t(n[e])}let Xve=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({providers:[sW],imports:[T1,E1,eR,E1]})}}return n})();const Kve=["text"],Yve=[[["mat-icon"]],"*"],Zve=["mat-icon","*"];function Jve(n,t){if(1&n&&xe(0,"mat-pseudo-checkbox",1),2&n){const e=He();pe("disabled",e.disabled)("state",e.selected?"checked":"unchecked")}}function eye(n,t){1&n&&xe(0,"mat-pseudo-checkbox",3),2&n&&pe("disabled",He().disabled)}function tye(n,t){if(1&n&&(P(0,"span",4),we(1),H()),2&n){const e=He();U(),cn("(",e.group.label,")")}}const nye=["mat-internal-form-field",""],iye=["*"],oye=new ut("mat-sanity-checks",{providedIn:"root",factory:function rye(){return!0}});let hr=(()=>{class n{constructor(e,i,r){this._sanityChecks=i,this._document=r,this._hasDoneGlobalChecks=!1,e._applyBodyHighContrastModeCssClasses(),this._hasDoneGlobalChecks||(this._hasDoneGlobalChecks=!0)}_checkIsEnabled(e){return!NP()&&("boolean"==typeof this._sanityChecks?this._sanityChecks:!!this._sanityChecks[e])}static{this.\u0275fac=function(i){return new(i||n)(ge(iW),ge(oye,8),ge(Bi))}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[w1,w1]})}}return n})();class rR{constructor(t,e,i,r,o){this._defaultMatcher=t,this.ngControl=e,this._parentFormGroup=i,this._parentForm=r,this._stateChanges=o,this.errorState=!1}updateErrorState(){const t=this.errorState,e=this._parentFormGroup||this._parentForm,i=this.matcher||this._defaultMatcher,r=this.ngControl?this.ngControl.control:null,o=i?.isErrorState(r,e)??!1;o!==t&&(this.errorState=o,this._stateChanges.next())}}let cW=(()=>{class n{isErrorState(e,i){return!!(e&&e.invalid&&(e.touched||i&&i.submitted))}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();var sl=function(n){return n[n.FADING_IN=0]="FADING_IN",n[n.VISIBLE=1]="VISIBLE",n[n.FADING_OUT=2]="FADING_OUT",n[n.HIDDEN=3]="HIDDEN",n}(sl||{});class uye{constructor(t,e,i,r=!1){this._renderer=t,this.element=e,this.config=i,this._animationForciblyDisabledThroughCss=r,this.state=sl.HIDDEN}fadeOut(){this._renderer.fadeOutRipple(this)}}const dW=Kp({passive:!0,capture:!0});class hye{constructor(){this._events=new Map,this._delegateEventHandler=t=>{const e=rm(t);e&&this._events.get(t.type)?.forEach((i,r)=>{(r===e||r.contains(e))&&i.forEach(o=>o.handleEvent(t))})}}addHandler(t,e,i,r){const o=this._events.get(e);if(o){const s=o.get(i);s?s.add(r):o.set(i,new Set([r]))}else this._events.set(e,new Map([[i,new Set([r])]])),t.runOutsideAngular(()=>{document.addEventListener(e,this._delegateEventHandler,dW)})}removeHandler(t,e,i){const r=this._events.get(t);if(!r)return;const o=r.get(e);o&&(o.delete(i),0===o.size&&r.delete(e),0===r.size&&(this._events.delete(t),document.removeEventListener(t,this._delegateEventHandler,dW)))}}const uW={enterDuration:225,exitDuration:150},hW=Kp({passive:!0,capture:!0}),fW=["mousedown","touchstart"],mW=["mouseup","mouseleave","touchend","touchcancel"];class D1{static{this._eventManager=new hye}constructor(t,e,i,r){this._target=t,this._ngZone=e,this._platform=r,this._isPointerDown=!1,this._activeRipples=new Map,this._pointerUpEventsRegistered=!1,r.isBrowser&&(this._containerElement=yh(i))}fadeInRipple(t,e,i={}){const r=this._containerRect=this._containerRect||this._containerElement.getBoundingClientRect(),o={...uW,...i.animation};i.centered&&(t=r.left+r.width/2,e=r.top+r.height/2);const s=i.radius||function mye(n,t,e){const i=Math.max(Math.abs(n-e.left),Math.abs(n-e.right)),r=Math.max(Math.abs(t-e.top),Math.abs(t-e.bottom));return Math.sqrt(i*i+r*r)}(t,e,r),a=t-r.left,l=e-r.top,c=o.enterDuration,d=document.createElement("div");d.classList.add("mat-ripple-element"),d.style.left=a-s+"px",d.style.top=l-s+"px",d.style.height=2*s+"px",d.style.width=2*s+"px",null!=i.color&&(d.style.backgroundColor=i.color),d.style.transitionDuration=`${c}ms`,this._containerElement.appendChild(d);const u=window.getComputedStyle(d),f=u.transitionDuration,A="none"===u.transitionProperty||"0s"===f||"0s, 0s"===f||0===r.width&&0===r.height,y=new uye(this,d,i,A);d.style.transform="scale3d(1, 1, 1)",y.state=sl.FADING_IN,i.persistent||(this._mostRecentTransientRipple=y);let _=null;return!A&&(c||o.exitDuration)&&this._ngZone.runOutsideAngular(()=>{const b=()=>this._finishRippleTransition(y),M=()=>this._destroyRipple(y);d.addEventListener("transitionend",b),d.addEventListener("transitioncancel",M),_={onTransitionEnd:b,onTransitionCancel:M}}),this._activeRipples.set(y,_),(A||!c)&&this._finishRippleTransition(y),y}fadeOutRipple(t){if(t.state===sl.FADING_OUT||t.state===sl.HIDDEN)return;const e=t.element,i={...uW,...t.config.animation};e.style.transitionDuration=`${i.exitDuration}ms`,e.style.opacity="0",t.state=sl.FADING_OUT,(t._animationForciblyDisabledThroughCss||!i.exitDuration)&&this._finishRippleTransition(t)}fadeOutAll(){this._getActiveRipples().forEach(t=>t.fadeOut())}fadeOutAllNonPersistent(){this._getActiveRipples().forEach(t=>{t.config.persistent||t.fadeOut()})}setupTriggerEvents(t){const e=yh(t);!this._platform.isBrowser||!e||e===this._triggerElement||(this._removeTriggerEvents(),this._triggerElement=e,fW.forEach(i=>{D1._eventManager.addHandler(this._ngZone,i,e,this)}))}handleEvent(t){"mousedown"===t.type?this._onMousedown(t):"touchstart"===t.type?this._onTouchStart(t):this._onPointerUp(),this._pointerUpEventsRegistered||(this._ngZone.runOutsideAngular(()=>{mW.forEach(e=>{this._triggerElement.addEventListener(e,this,hW)})}),this._pointerUpEventsRegistered=!0)}_finishRippleTransition(t){t.state===sl.FADING_IN?this._startFadeOutTransition(t):t.state===sl.FADING_OUT&&this._destroyRipple(t)}_startFadeOutTransition(t){const e=t===this._mostRecentTransientRipple,{persistent:i}=t.config;t.state=sl.VISIBLE,!i&&(!e||!this._isPointerDown)&&t.fadeOut()}_destroyRipple(t){const e=this._activeRipples.get(t)??null;this._activeRipples.delete(t),this._activeRipples.size||(this._containerRect=null),t===this._mostRecentTransientRipple&&(this._mostRecentTransientRipple=null),t.state=sl.HIDDEN,null!==e&&(t.element.removeEventListener("transitionend",e.onTransitionEnd),t.element.removeEventListener("transitioncancel",e.onTransitionCancel)),t.element.remove()}_onMousedown(t){const e=YP(t),i=this._lastTouchStartEvent&&Date.now(){!t.config.persistent&&(t.state===sl.VISIBLE||t.config.terminateOnPointerUp&&t.state===sl.FADING_IN)&&t.fadeOut()}))}_getActiveRipples(){return Array.from(this._activeRipples.keys())}_removeTriggerEvents(){const t=this._triggerElement;t&&(fW.forEach(e=>D1._eventManager.removeHandler(e,t,this)),this._pointerUpEventsRegistered&&mW.forEach(e=>t.removeEventListener(e,this,hW)))}}const J0=new ut("mat-ripple-global-options");let Mh=(()=>{class n{get disabled(){return this._disabled}set disabled(e){e&&this.fadeOutAllNonPersistent(),this._disabled=e,this._setupTriggerEventsIfEnabled()}get trigger(){return this._trigger||this._elementRef.nativeElement}set trigger(e){this._trigger=e,this._setupTriggerEventsIfEnabled()}constructor(e,i,r,o,s){this._elementRef=e,this._animationMode=s,this.radius=0,this._disabled=!1,this._isInitialized=!1,this._globalOptions=o||{},this._rippleRenderer=new D1(this,i,e,r)}ngOnInit(){this._isInitialized=!0,this._setupTriggerEventsIfEnabled()}ngOnDestroy(){this._rippleRenderer._removeTriggerEvents()}fadeOutAll(){this._rippleRenderer.fadeOutAll()}fadeOutAllNonPersistent(){this._rippleRenderer.fadeOutAllNonPersistent()}get rippleConfig(){return{centered:this.centered,radius:this.radius,color:this.color,animation:{...this._globalOptions.animation,..."NoopAnimations"===this._animationMode?{enterDuration:0,exitDuration:0}:{},...this.animation},terminateOnPointerUp:this._globalOptions.terminateOnPointerUp}}get rippleDisabled(){return this.disabled||!!this._globalOptions.disabled}_setupTriggerEventsIfEnabled(){!this.disabled&&this._isInitialized&&this._rippleRenderer.setupTriggerEvents(this.trigger)}launch(e,i=0,r){return"number"==typeof e?this._rippleRenderer.fadeInRipple(e,i,{...this.rippleConfig,...r}):this._rippleRenderer.fadeInRipple(0,0,{...this.rippleConfig,...e})}static{this.\u0275fac=function(i){return new(i||n)($(Vn),$(kn),$(eo),$(J0,8),$(ps,8))}}static{this.\u0275dir=$t({type:n,selectors:[["","mat-ripple",""],["","matRipple",""]],hostAttrs:[1,"mat-ripple"],hostVars:2,hostBindings:function(i,r){2&i&&Qn("mat-ripple-unbounded",r.unbounded)},inputs:{color:[Ct.None,"matRippleColor","color"],unbounded:[Ct.None,"matRippleUnbounded","unbounded"],centered:[Ct.None,"matRippleCentered","centered"],radius:[Ct.None,"matRippleRadius","radius"],animation:[Ct.None,"matRippleAnimation","animation"],disabled:[Ct.None,"matRippleDisabled","disabled"],trigger:[Ct.None,"matRippleTrigger","trigger"]},exportAs:["matRipple"],standalone:!0})}}return n})(),e_=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[hr,hr]})}}return n})(),pW=(()=>{class n{constructor(e){this._animationMode=e,this.state="unchecked",this.disabled=!1,this.appearance="full"}static{this.\u0275fac=function(i){return new(i||n)($(ps,8))}}static{this.\u0275cmp=vt({type:n,selectors:[["mat-pseudo-checkbox"]],hostAttrs:[1,"mat-pseudo-checkbox"],hostVars:12,hostBindings:function(i,r){2&i&&Qn("mat-pseudo-checkbox-indeterminate","indeterminate"===r.state)("mat-pseudo-checkbox-checked","checked"===r.state)("mat-pseudo-checkbox-disabled",r.disabled)("mat-pseudo-checkbox-minimal","minimal"===r.appearance)("mat-pseudo-checkbox-full","full"===r.appearance)("_mat-animation-noopable","NoopAnimations"===r._animationMode)},inputs:{state:"state",disabled:"disabled",appearance:"appearance"},standalone:!0,features:[Or],decls:0,vars:0,template:function(i,r){},styles:['.mat-pseudo-checkbox{border-radius:2px;cursor:pointer;display:inline-block;vertical-align:middle;box-sizing:border-box;position:relative;flex-shrink:0;transition:border-color 90ms cubic-bezier(0, 0, 0.2, 0.1),background-color 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox::after{position:absolute;opacity:0;content:"";border-bottom:2px solid currentColor;transition:opacity 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox._mat-animation-noopable{transition:none !important;animation:none !important}.mat-pseudo-checkbox._mat-animation-noopable::after{transition:none}.mat-pseudo-checkbox-disabled{cursor:default}.mat-pseudo-checkbox-indeterminate::after{left:1px;opacity:1;border-radius:2px}.mat-pseudo-checkbox-checked::after{left:1px;border-left:2px solid currentColor;transform:rotate(-45deg);opacity:1;box-sizing:content-box}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked::after,.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate::after{color:var(--mat-minimal-pseudo-checkbox-selected-checkmark-color)}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled::after,.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled::after{color:var(--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color)}.mat-pseudo-checkbox-full{border-color:var(--mat-full-pseudo-checkbox-unselected-icon-color);border-width:2px;border-style:solid}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-disabled{border-color:var(--mat-full-pseudo-checkbox-disabled-unselected-icon-color)}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate{background-color:var(--mat-full-pseudo-checkbox-selected-icon-color);border-color:rgba(0,0,0,0)}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked::after,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate::after{color:var(--mat-full-pseudo-checkbox-selected-checkmark-color)}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background-color:var(--mat-full-pseudo-checkbox-disabled-selected-icon-color)}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled::after,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled::after{color:var(--mat-full-pseudo-checkbox-disabled-selected-checkmark-color)}.mat-pseudo-checkbox{width:18px;height:18px}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked::after{width:14px;height:6px;transform-origin:center;top:-4.2426406871px;left:0;bottom:0;right:0;margin:auto}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate::after{top:8px;width:16px}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked::after{width:10px;height:4px;transform-origin:center;top:-2.8284271247px;left:0;bottom:0;right:0;margin:auto}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate::after{top:6px;width:12px}'],encapsulation:2,changeDetection:0})}}return n})(),AW=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[hr]})}}return n})();const gW=new ut("MAT_OPTION_PARENT_COMPONENT"),_W=new ut("MatOptgroup");let pye=0;class Aye{constructor(t,e=!1){this.source=t,this.isUserInput=e}}let ru=(()=>{class n{get multiple(){return this._parent&&this._parent.multiple}get selected(){return this._selected}get disabled(){return this.group&&this.group.disabled||this._disabled}set disabled(e){this._disabled=e}get disableRipple(){return!(!this._parent||!this._parent.disableRipple)}get hideSingleSelectionIndicator(){return!(!this._parent||!this._parent.hideSingleSelectionIndicator)}constructor(e,i,r,o){this._element=e,this._changeDetectorRef=i,this._parent=r,this.group=o,this._selected=!1,this._active=!1,this._disabled=!1,this._mostRecentViewValue="",this.id="mat-option-"+pye++,this.onSelectionChange=new Bn,this._stateChanges=new Hn}get active(){return this._active}get viewValue(){return(this._text?.nativeElement.textContent||"").trim()}select(e=!0){this._selected||(this._selected=!0,this._changeDetectorRef.markForCheck(),e&&this._emitSelectionChangeEvent())}deselect(e=!0){this._selected&&(this._selected=!1,this._changeDetectorRef.markForCheck(),e&&this._emitSelectionChangeEvent())}focus(e,i){const r=this._getHostElement();"function"==typeof r.focus&&r.focus(i)}setActiveStyles(){this._active||(this._active=!0,this._changeDetectorRef.markForCheck())}setInactiveStyles(){this._active&&(this._active=!1,this._changeDetectorRef.markForCheck())}getLabel(){return this.viewValue}_handleKeydown(e){(13===e.keyCode||32===e.keyCode)&&!cd(e)&&(this._selectViaInteraction(),e.preventDefault())}_selectViaInteraction(){this.disabled||(this._selected=!this.multiple||!this._selected,this._changeDetectorRef.markForCheck(),this._emitSelectionChangeEvent(!0))}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._element.nativeElement}ngAfterViewChecked(){if(this._selected){const e=this.viewValue;e!==this._mostRecentViewValue&&(this._mostRecentViewValue&&this._stateChanges.next(),this._mostRecentViewValue=e)}}ngOnDestroy(){this._stateChanges.complete()}_emitSelectionChangeEvent(e=!1){this.onSelectionChange.emit(new Aye(this,e))}static{this.\u0275fac=function(i){return new(i||n)($(Vn),$(_o),$(gW,8),$(_W,8))}}static{this.\u0275cmp=vt({type:n,selectors:[["mat-option"]],viewQuery:function(i,r){if(1&i&&ei(Kve,7),2&i){let o;un(o=hn())&&(r._text=o.first)}},hostAttrs:["role","option",1,"mat-mdc-option","mdc-list-item"],hostVars:11,hostBindings:function(i,r){1&i&&We("click",function(){return r._selectViaInteraction()})("keydown",function(s){return r._handleKeydown(s)}),2&i&&($d("id",r.id),fi("aria-selected",r.selected)("aria-disabled",r.disabled.toString()),Qn("mdc-list-item--selected",r.selected)("mat-mdc-option-multiple",r.multiple)("mat-mdc-option-active",r.active)("mdc-list-item--disabled",r.disabled))},inputs:{value:"value",id:"id",disabled:[Ct.HasDecoratorInputTransform,"disabled","disabled",Zn]},outputs:{onSelectionChange:"onSelectionChange"},exportAs:["matOption"],standalone:!0,features:[es,Or],ngContentSelectors:Zve,decls:8,vars:5,consts:[["text",""],["aria-hidden","true",1,"mat-mdc-option-pseudo-checkbox",3,"disabled","state"],[1,"mdc-list-item__primary-text"],["state","checked","aria-hidden","true","appearance","minimal",1,"mat-mdc-option-pseudo-checkbox",3,"disabled"],[1,"cdk-visually-hidden"],["aria-hidden","true","mat-ripple","",1,"mat-mdc-option-ripple","mat-mdc-focus-indicator",3,"matRippleTrigger","matRippleDisabled"]],template:function(i,r){1&i&&($r(Yve),At(0,Jve,1,2,"mat-pseudo-checkbox",1),Gn(1),P(2,"span",2,0),Gn(4,1),H(),At(5,eye,1,1,"mat-pseudo-checkbox",3)(6,tye,2,1,"span",4),xe(7,"div",5)),2&i&&(It(0,r.multiple?0:-1),U(5),It(5,r.multiple||!r.selected||r.hideSingleSelectionIndicator?-1:5),U(),It(6,r.group&&r.group._inert?6:-1),U(),pe("matRippleTrigger",r._getHostElement())("matRippleDisabled",r.disabled||r.disableRipple))},dependencies:[pW,Mh],styles:['.mat-mdc-option{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;padding-left:16px;padding-right:16px;-webkit-user-select:none;user-select:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0);color:var(--mat-option-label-text-color);font-family:var(--mat-option-label-text-font);line-height:var(--mat-option-label-text-line-height);font-size:var(--mat-option-label-text-size);letter-spacing:var(--mat-option-label-text-tracking);font-weight:var(--mat-option-label-text-weight);min-height:48px}.mat-mdc-option:focus{outline:none}[dir=rtl] .mat-mdc-option,.mat-mdc-option[dir=rtl]{padding-left:16px;padding-right:16px}.mat-mdc-option:hover:not(.mdc-list-item--disabled){background-color:var(--mat-option-hover-state-layer-color)}.mat-mdc-option:focus.mdc-list-item,.mat-mdc-option.mat-mdc-option-active.mdc-list-item{background-color:var(--mat-option-focus-state-layer-color)}.mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled) .mdc-list-item__primary-text{color:var(--mat-option-selected-state-label-text-color)}.mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled):not(.mat-mdc-option-multiple){background-color:var(--mat-option-selected-state-layer-color)}.mat-mdc-option.mdc-list-item{align-items:center;background:rgba(0,0,0,0)}.mat-mdc-option.mdc-list-item--disabled{cursor:default;pointer-events:none}.mat-mdc-option.mdc-list-item--disabled .mat-mdc-option-pseudo-checkbox,.mat-mdc-option.mdc-list-item--disabled .mdc-list-item__primary-text,.mat-mdc-option.mdc-list-item--disabled>mat-icon{opacity:.38}.mat-mdc-optgroup .mat-mdc-option:not(.mat-mdc-option-multiple){padding-left:32px}[dir=rtl] .mat-mdc-optgroup .mat-mdc-option:not(.mat-mdc-option-multiple){padding-left:16px;padding-right:32px}.mat-mdc-option .mat-icon,.mat-mdc-option .mat-pseudo-checkbox-full{margin-right:16px;flex-shrink:0}[dir=rtl] .mat-mdc-option .mat-icon,[dir=rtl] .mat-mdc-option .mat-pseudo-checkbox-full{margin-right:0;margin-left:16px}.mat-mdc-option .mat-pseudo-checkbox-minimal{margin-left:16px;flex-shrink:0}[dir=rtl] .mat-mdc-option .mat-pseudo-checkbox-minimal{margin-right:16px;margin-left:0}.mat-mdc-option .mat-mdc-option-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-mdc-option .mdc-list-item__primary-text{white-space:normal;font-size:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;font-family:inherit;text-decoration:inherit;text-transform:inherit;margin-right:auto}[dir=rtl] .mat-mdc-option .mdc-list-item__primary-text{margin-right:0;margin-left:auto}.cdk-high-contrast-active .mat-mdc-option.mdc-list-item--selected:not(.mat-mdc-option-multiple)::after{content:"";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}[dir=rtl] .cdk-high-contrast-active .mat-mdc-option.mdc-list-item--selected:not(.mat-mdc-option-multiple)::after{right:auto;left:16px}.mat-mdc-option-multiple{--mdc-list-list-item-selected-container-color:var(--mdc-list-list-item-container-color, transparent)}.mat-mdc-option-active .mat-mdc-focus-indicator::before{content:""}'],encapsulation:2,changeDetection:0})}}return n})(),bW=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[e_,hr,AW]})}}return n})();const vW={capture:!0},yW=["focus","click","mouseenter","touchstart"],oR="mat-ripple-loader-uninitialized",sR="mat-ripple-loader-class-name",wW="mat-ripple-loader-centered",w2="mat-ripple-loader-disabled";let bye=(()=>{class n{constructor(){this._document=qt(Bi,{optional:!0}),this._animationMode=qt(ps,{optional:!0}),this._globalRippleOptions=qt(J0,{optional:!0}),this._platform=qt(eo),this._ngZone=qt(kn),this._hosts=new Map,this._onInteraction=e=>{if(!(e.target instanceof HTMLElement))return;const r=e.target.closest(`[${oR}]`);r&&this._createRipple(r)},this._ngZone.runOutsideAngular(()=>{for(const e of yW)this._document?.addEventListener(e,this._onInteraction,vW)})}ngOnDestroy(){const e=this._hosts.keys();for(const i of e)this.destroyRipple(i);for(const i of yW)this._document?.removeEventListener(i,this._onInteraction,vW)}configureRipple(e,i){e.setAttribute(oR,""),(i.className||!e.hasAttribute(sR))&&e.setAttribute(sR,i.className||""),i.centered&&e.setAttribute(wW,""),i.disabled&&e.setAttribute(w2,"")}getRipple(e){return this._hosts.get(e)||this._createRipple(e)}setDisabled(e,i){const r=this._hosts.get(e);r?r.disabled=i:i?e.setAttribute(w2,""):e.removeAttribute(w2)}_createRipple(e){if(!this._document)return;const i=this._hosts.get(e);if(i)return i;e.querySelector(".mat-ripple")?.remove();const r=this._document.createElement("span");r.classList.add("mat-ripple",e.getAttribute(sR)),e.append(r);const o=new Mh(new Vn(r),this._ngZone,this._platform,this._globalRippleOptions?this._globalRippleOptions:void 0,this._animationMode?this._animationMode:void 0);return o._isInitialized=!0,o.trigger=e,o.centered=e.hasAttribute(wW),o.disabled=e.hasAttribute(w2),this.attachRipple(e,o),o}attachRipple(e,i){e.removeAttribute(oR),this._hosts.set(e,i)}destroyRipple(e){const i=this._hosts.get(e);i&&(i.ngOnDestroy(),this._hosts.delete(e))}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),xW=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=vt({type:n,selectors:[["div","mat-internal-form-field",""]],hostAttrs:[1,"mdc-form-field","mat-internal-form-field"],hostVars:2,hostBindings:function(i,r){2&i&&Qn("mdc-form-field--align-end","before"===r.labelPosition)},inputs:{labelPosition:"labelPosition"},standalone:!0,features:[Or],attrs:nye,ngContentSelectors:iye,decls:1,vars:0,template:function(i,r){1&i&&($r(),Gn(0))},styles:[".mdc-form-field{display:inline-flex;align-items:center;vertical-align:middle}.mdc-form-field[hidden]{display:none}.mdc-form-field>label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0;order:0}[dir=rtl] .mdc-form-field>label,.mdc-form-field>label[dir=rtl]{margin-left:auto;margin-right:0}[dir=rtl] .mdc-form-field>label,.mdc-form-field>label[dir=rtl]{padding-left:0;padding-right:4px}.mdc-form-field--nowrap>label{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.mdc-form-field--align-end>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px;order:-1}[dir=rtl] .mdc-form-field--align-end>label,.mdc-form-field--align-end>label[dir=rtl]{margin-left:0;margin-right:auto}[dir=rtl] .mdc-form-field--align-end>label,.mdc-form-field--align-end>label[dir=rtl]{padding-left:4px;padding-right:0}.mdc-form-field--space-between{justify-content:space-between}.mdc-form-field--space-between>label{margin:0}[dir=rtl] .mdc-form-field--space-between>label,.mdc-form-field--space-between>label[dir=rtl]{margin:0}.mdc-form-field{font-family:var(--mdc-form-field-label-text-font);line-height:var(--mdc-form-field-label-text-line-height);font-size:var(--mdc-form-field-label-text-size);font-weight:var(--mdc-form-field-label-text-weight);letter-spacing:var(--mdc-form-field-label-text-tracking);color:var(--mdc-form-field-label-text-color)}.mat-internal-form-field{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}"],encapsulation:2,changeDetection:0})}}return n})();var mi=function(n){return n[n.State=0]="State",n[n.Transition=1]="Transition",n[n.Sequence=2]="Sequence",n[n.Group=3]="Group",n[n.Animate=4]="Animate",n[n.Keyframes=5]="Keyframes",n[n.Style=6]="Style",n[n.Trigger=7]="Trigger",n[n.Reference=8]="Reference",n[n.AnimateChild=9]="AnimateChild",n[n.AnimateRef=10]="AnimateRef",n[n.Query=11]="Query",n[n.Stagger=12]="Stagger",n}(mi||{});const Eh="*";function Sh(n,t){return{type:mi.Trigger,name:n,definitions:t,options:{}}}function xc(n,t=null){return{type:mi.Animate,styles:t,timings:n}}function qo(n){return{type:mi.Style,styles:n,offset:null}}function Cc(n,t,e){return{type:mi.State,name:n,styles:t,options:e}}function Gl(n,t,e=null){return{type:mi.Transition,expr:n,animation:t,options:e}}function aR(n=null){return{type:mi.AnimateChild,options:n}}function lR(n,t,e=null){return{type:mi.Query,selector:n,animation:t,options:e}}class k1{constructor(t=0,e=0){this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._originalOnDoneFns=[],this._originalOnStartFns=[],this._started=!1,this._destroyed=!1,this._finished=!1,this._position=0,this.parentPlayer=null,this.totalTime=t+e}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(t=>t()),this._onDoneFns=[])}onStart(t){this._originalOnStartFns.push(t),this._onStartFns.push(t)}onDone(t){this._originalOnDoneFns.push(t),this._onDoneFns.push(t)}onDestroy(t){this._onDestroyFns.push(t)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){queueMicrotask(()=>this._onFinish())}_onStart(){this._onStartFns.forEach(t=>t()),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(t=>t()),this._onDestroyFns=[])}reset(){this._started=!1,this._finished=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}setPosition(t){this._position=this.totalTime?t*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(t){const e="start"==t?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}}class MW{constructor(t){this._onDoneFns=[],this._onStartFns=[],this._finished=!1,this._started=!1,this._destroyed=!1,this._onDestroyFns=[],this.parentPlayer=null,this.totalTime=0,this.players=t;let e=0,i=0,r=0;const o=this.players.length;0==o?queueMicrotask(()=>this._onFinish()):this.players.forEach(s=>{s.onDone(()=>{++e==o&&this._onFinish()}),s.onDestroy(()=>{++i==o&&this._onDestroy()}),s.onStart(()=>{++r==o&&this._onStart()})}),this.totalTime=this.players.reduce((s,a)=>Math.max(s,a.totalTime),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(t=>t()),this._onDoneFns=[])}init(){this.players.forEach(t=>t.init())}onStart(t){this._onStartFns.push(t)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(t=>t()),this._onStartFns=[])}onDone(t){this._onDoneFns.push(t)}onDestroy(t){this._onDestroyFns.push(t)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(t=>t.play())}pause(){this.players.forEach(t=>t.pause())}restart(){this.players.forEach(t=>t.restart())}finish(){this._onFinish(),this.players.forEach(t=>t.finish())}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(t=>t.destroy()),this._onDestroyFns.forEach(t=>t()),this._onDestroyFns=[])}reset(){this.players.forEach(t=>t.reset()),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(t){const e=t*this.totalTime;this.players.forEach(i=>{const r=i.totalTime?Math.min(1,e/i.totalTime):1;i.setPosition(r)})}getPosition(){const t=this.players.reduce((e,i)=>null===e||i.totalTime>e.totalTime?i:e,null);return null!=t?t.getPosition():0}beforeDestroy(){this.players.forEach(t=>{t.beforeDestroy&&t.beforeDestroy()})}triggerCallback(t){const e="start"==t?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}}function Mye(n,t){}class dR{constructor(){this.role="dialog",this.panelClass="",this.hasBackdrop=!0,this.backdropClass="",this.disableClose=!1,this.width="",this.height="",this.data=null,this.ariaDescribedBy=null,this.ariaLabelledBy=null,this.ariaLabel=null,this.ariaModal=!0,this.autoFocus="first-tabbable",this.restoreFocus=!0,this.delayFocusTrap=!0,this.closeOnNavigation=!0}}const uR="mdc-dialog--open",EW="mdc-dialog--opening",SW="mdc-dialog--closing";let TW=(()=>{class n extends rW{constructor(e,i,r,o,s,a,l,c,d){super(e,i,r,o,s,a,l,d),this._animationMode=c,this._animationStateChanged=new Bn,this._animationsEnabled="NoopAnimations"!==this._animationMode,this._actionSectionCount=0,this._hostElement=this._elementRef.nativeElement,this._enterAnimationDuration=this._animationsEnabled?FW(this._config.enterAnimationDuration)??150:0,this._exitAnimationDuration=this._animationsEnabled?FW(this._config.exitAnimationDuration)??75:0,this._animationTimer=null,this._finishDialogOpen=()=>{this._clearAnimationClasses(),this._openAnimationDone(this._enterAnimationDuration)},this._finishDialogClose=()=>{this._clearAnimationClasses(),this._animationStateChanged.emit({state:"closed",totalTime:this._exitAnimationDuration})}}_contentAttached(){super._contentAttached(),this._startOpenAnimation()}_startOpenAnimation(){this._animationStateChanged.emit({state:"opening",totalTime:this._enterAnimationDuration}),this._animationsEnabled?(this._hostElement.style.setProperty(IW,`${this._enterAnimationDuration}ms`),this._requestAnimationFrame(()=>this._hostElement.classList.add(EW,uR)),this._waitForAnimationToComplete(this._enterAnimationDuration,this._finishDialogOpen)):(this._hostElement.classList.add(uR),Promise.resolve().then(()=>this._finishDialogOpen()))}_startExitAnimation(){this._animationStateChanged.emit({state:"closing",totalTime:this._exitAnimationDuration}),this._hostElement.classList.remove(uR),this._animationsEnabled?(this._hostElement.style.setProperty(IW,`${this._exitAnimationDuration}ms`),this._requestAnimationFrame(()=>this._hostElement.classList.add(SW)),this._waitForAnimationToComplete(this._exitAnimationDuration,this._finishDialogClose)):Promise.resolve().then(()=>this._finishDialogClose())}_updateActionSectionCount(e){this._actionSectionCount+=e,this._changeDetectorRef.markForCheck()}_clearAnimationClasses(){this._hostElement.classList.remove(EW,SW)}_waitForAnimationToComplete(e,i){null!==this._animationTimer&&clearTimeout(this._animationTimer),this._animationTimer=setTimeout(i,e)}_requestAnimationFrame(e){this._ngZone.runOutsideAngular(()=>{"function"==typeof requestAnimationFrame?requestAnimationFrame(e):e()})}_captureInitialFocus(){this._config.delayFocusTrap||this._trapFocus()}_openAnimationDone(e){this._config.delayFocusTrap&&this._trapFocus(),this._animationStateChanged.next({state:"opened",totalTime:e})}ngOnDestroy(){super.ngOnDestroy(),null!==this._animationTimer&&clearTimeout(this._animationTimer)}attachComponentPortal(e){const i=super.attachComponentPortal(e);return i.location.nativeElement.classList.add("mat-mdc-dialog-component-host"),i}static{this.\u0275fac=function(i){return new(i||n)($(Vn),$(JG),$(Bi,8),$(dR),$(KP),$(kn),$(p2),$(ps,8),$(Ch))}}static{this.\u0275cmp=vt({type:n,selectors:[["mat-dialog-container"]],hostAttrs:["tabindex","-1",1,"mat-mdc-dialog-container","mdc-dialog"],hostVars:10,hostBindings:function(i,r){2&i&&($d("id",r._config.id),fi("aria-modal",r._config.ariaModal)("role",r._config.role)("aria-labelledby",r._config.ariaLabel?null:r._ariaLabelledByQueue[0])("aria-label",r._config.ariaLabel)("aria-describedby",r._config.ariaDescribedBy||null),Qn("_mat-animation-noopable",!r._animationsEnabled)("mat-mdc-dialog-container-with-actions",r._actionSectionCount>0))},standalone:!0,features:[_i,Or],decls:3,vars:0,consts:[[1,"mdc-dialog__container"],[1,"mat-mdc-dialog-surface","mdc-dialog__surface"],["cdkPortalOutlet",""]],template:function(i,r){1&i&&(P(0,"div",0)(1,"div",1),At(2,Mye,0,0,"ng-template",2),H()())},dependencies:[l2],styles:['.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:var(--mdc-elevation-overlay-opacity, 0);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-dialog,.mdc-dialog__scrim{position:fixed;top:0;left:0;align-items:center;justify-content:center;box-sizing:border-box;width:100%;height:100%}.mdc-dialog{display:none;z-index:var(--mdc-dialog-z-index, 7)}.mdc-dialog .mdc-dialog__content{padding:20px 24px 20px 24px}.mdc-dialog .mdc-dialog__surface{min-width:280px}@media(max-width: 592px){.mdc-dialog .mdc-dialog__surface{max-width:calc(100vw - 32px)}}@media(min-width: 592px){.mdc-dialog .mdc-dialog__surface{max-width:560px}}.mdc-dialog .mdc-dialog__surface{max-height:calc(100% - 32px)}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-width:none}@media(max-width: 960px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-height:560px;width:560px}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{right:-12px}}@media(max-width: 720px)and (max-width: 672px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{width:calc(100vw - 112px)}}@media(max-width: 720px)and (min-width: 672px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{width:560px}}@media(max-width: 720px)and (max-height: 720px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-height:calc(100vh - 160px)}}@media(max-width: 720px)and (min-height: 720px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-height:560px}}@media(max-width: 720px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{right:-12px}}@media(max-width: 720px)and (max-height: 400px),(max-width: 600px),(min-width: 720px)and (max-height: 400px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{height:100%;max-height:100vh;max-width:100vw;width:100vw;border-radius:0}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{order:-1;left:-12px}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__header{padding:0 16px 9px;justify-content:flex-start}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__title{margin-left:calc(16px - 2 * 12px)}}@media(min-width: 960px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{width:calc(100vw - 400px)}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{right:-12px}}.mdc-dialog.mdc-dialog__scrim--hidden .mdc-dialog__scrim{opacity:0}.mdc-dialog__scrim{opacity:0;z-index:-1}.mdc-dialog__container{display:flex;flex-direction:row;align-items:center;justify-content:space-around;box-sizing:border-box;height:100%;opacity:0;pointer-events:none}.mdc-dialog__surface{position:relative;display:flex;flex-direction:column;flex-grow:0;flex-shrink:0;box-sizing:border-box;max-width:100%;max-height:100%;pointer-events:auto;overflow-y:auto;outline:0;transform:scale(0.8)}.mdc-dialog__surface .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}[dir=rtl] .mdc-dialog__surface,.mdc-dialog__surface[dir=rtl]{text-align:right}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mdc-dialog__surface{outline:2px solid windowText}}.mdc-dialog__surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:2px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}@media screen and (forced-colors: active){.mdc-dialog__surface::before{border-color:CanvasText}}@media screen and (-ms-high-contrast: active),screen and (-ms-high-contrast: none){.mdc-dialog__surface::before{content:none}}.mdc-dialog__title{display:block;margin-top:0;position:relative;flex-shrink:0;box-sizing:border-box;margin:0 0 1px;padding:0 24px 9px}.mdc-dialog__title::before{display:inline-block;width:0;height:40px;content:"";vertical-align:0}[dir=rtl] .mdc-dialog__title,.mdc-dialog__title[dir=rtl]{text-align:right}.mdc-dialog--scrollable .mdc-dialog__title{margin-bottom:1px;padding-bottom:15px}.mdc-dialog--fullscreen .mdc-dialog__header{align-items:baseline;border-bottom:1px solid rgba(0,0,0,0);display:inline-flex;justify-content:space-between;padding:0 24px 9px;z-index:1}@media screen and (forced-colors: active){.mdc-dialog--fullscreen .mdc-dialog__header{border-bottom-color:CanvasText}}.mdc-dialog--fullscreen .mdc-dialog__header .mdc-dialog__close{right:-12px}.mdc-dialog--fullscreen .mdc-dialog__title{margin-bottom:0;padding:0;border-bottom:0}.mdc-dialog--fullscreen.mdc-dialog--scrollable .mdc-dialog__title{border-bottom:0;margin-bottom:0}.mdc-dialog--fullscreen .mdc-dialog__close{top:5px}.mdc-dialog--fullscreen.mdc-dialog--scrollable .mdc-dialog__actions{border-top:1px solid rgba(0,0,0,0)}@media screen and (forced-colors: active){.mdc-dialog--fullscreen.mdc-dialog--scrollable .mdc-dialog__actions{border-top-color:CanvasText}}.mdc-dialog--fullscreen--titleless .mdc-dialog__close{margin-top:4px}.mdc-dialog--fullscreen--titleless.mdc-dialog--scrollable .mdc-dialog__close{margin-top:0}.mdc-dialog__content{flex-grow:1;box-sizing:border-box;margin:0;overflow:auto}.mdc-dialog__content>:first-child{margin-top:0}.mdc-dialog__content>:last-child{margin-bottom:0}.mdc-dialog__title+.mdc-dialog__content,.mdc-dialog__header+.mdc-dialog__content{padding-top:0}.mdc-dialog--scrollable .mdc-dialog__title+.mdc-dialog__content{padding-top:8px;padding-bottom:8px}.mdc-dialog__content .mdc-deprecated-list:first-child:last-child{padding:6px 0 0}.mdc-dialog--scrollable .mdc-dialog__content .mdc-deprecated-list:first-child:last-child{padding:0}.mdc-dialog__actions{display:flex;position:relative;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;box-sizing:border-box;min-height:52px;margin:0;padding:8px;border-top:1px solid rgba(0,0,0,0)}@media screen and (forced-colors: active){.mdc-dialog__actions{border-top-color:CanvasText}}.mdc-dialog--stacked .mdc-dialog__actions{flex-direction:column;align-items:flex-end}.mdc-dialog__button{margin-left:8px;margin-right:0;max-width:100%;text-align:right}[dir=rtl] .mdc-dialog__button,.mdc-dialog__button[dir=rtl]{margin-left:0;margin-right:8px}.mdc-dialog__button:first-child{margin-left:0;margin-right:0}[dir=rtl] .mdc-dialog__button:first-child,.mdc-dialog__button:first-child[dir=rtl]{margin-left:0;margin-right:0}[dir=rtl] .mdc-dialog__button,.mdc-dialog__button[dir=rtl]{text-align:left}.mdc-dialog--stacked .mdc-dialog__button:not(:first-child){margin-top:12px}.mdc-dialog--open,.mdc-dialog--opening,.mdc-dialog--closing{display:flex}.mdc-dialog--opening .mdc-dialog__scrim{transition:opacity 150ms linear}.mdc-dialog--opening .mdc-dialog__container{transition:opacity 75ms linear,transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-dialog--closing .mdc-dialog__scrim,.mdc-dialog--closing .mdc-dialog__container{transition:opacity 75ms linear}.mdc-dialog--closing .mdc-dialog__container{transform:none}.mdc-dialog--closing .mdc-dialog__surface{transform:none}.mdc-dialog--open .mdc-dialog__scrim{opacity:1}.mdc-dialog--open .mdc-dialog__container{opacity:1}.mdc-dialog--open .mdc-dialog__surface{transform:none}.mdc-dialog--open.mdc-dialog__surface-scrim--shown .mdc-dialog__surface-scrim{opacity:1}.mdc-dialog--open.mdc-dialog__surface-scrim--hiding .mdc-dialog__surface-scrim{transition:opacity 75ms linear}.mdc-dialog--open.mdc-dialog__surface-scrim--showing .mdc-dialog__surface-scrim{transition:opacity 150ms linear}.mdc-dialog__surface-scrim{display:none;opacity:0;position:absolute;width:100%;height:100%;z-index:1}.mdc-dialog__surface-scrim--shown .mdc-dialog__surface-scrim,.mdc-dialog__surface-scrim--showing .mdc-dialog__surface-scrim,.mdc-dialog__surface-scrim--hiding .mdc-dialog__surface-scrim{display:block}.mdc-dialog-scroll-lock{overflow:hidden}.mdc-dialog--no-content-padding .mdc-dialog__content{padding:0}.mdc-dialog--sheet .mdc-dialog__container .mdc-dialog__close{right:12px;top:9px;position:absolute;z-index:1}.mdc-dialog__scrim--removed{pointer-events:none}.mdc-dialog__scrim--removed .mdc-dialog__scrim,.mdc-dialog__scrim--removed .mdc-dialog__surface-scrim{display:none}.mat-mdc-dialog-content{max-height:65vh}.mat-mdc-dialog-container{position:static;display:block}.mat-mdc-dialog-container,.mat-mdc-dialog-container .mdc-dialog__container,.mat-mdc-dialog-container .mdc-dialog__surface{max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit}.mat-mdc-dialog-container .mdc-dialog__surface{width:100%;height:100%}.mat-mdc-dialog-component-host{display:contents}.mat-mdc-dialog-container{--mdc-dialog-container-elevation: var(--mdc-dialog-container-elevation-shadow);outline:0}.mat-mdc-dialog-container .mdc-dialog__surface{background-color:var(--mdc-dialog-container-color, white)}.mat-mdc-dialog-container .mdc-dialog__surface{box-shadow:var(--mdc-dialog-container-elevation, 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12))}.mat-mdc-dialog-container .mdc-dialog__surface{border-radius:var(--mdc-dialog-container-shape, 4px)}.mat-mdc-dialog-container .mdc-dialog__title{font-family:var(--mdc-dialog-subhead-font, Roboto, sans-serif);line-height:var(--mdc-dialog-subhead-line-height, 1.5rem);font-size:var(--mdc-dialog-subhead-size, 1rem);font-weight:var(--mdc-dialog-subhead-weight, 400);letter-spacing:var(--mdc-dialog-subhead-tracking, 0.03125em)}.mat-mdc-dialog-container .mdc-dialog__title{color:var(--mdc-dialog-subhead-color, rgba(0, 0, 0, 0.87))}.mat-mdc-dialog-container .mdc-dialog__content{font-family:var(--mdc-dialog-supporting-text-font, Roboto, sans-serif);line-height:var(--mdc-dialog-supporting-text-line-height, 1.5rem);font-size:var(--mdc-dialog-supporting-text-size, 1rem);font-weight:var(--mdc-dialog-supporting-text-weight, 400);letter-spacing:var(--mdc-dialog-supporting-text-tracking, 0.03125em)}.mat-mdc-dialog-container .mdc-dialog__content{color:var(--mdc-dialog-supporting-text-color, rgba(0, 0, 0, 0.6))}.mat-mdc-dialog-container .mdc-dialog__container{transition:opacity linear var(--mat-dialog-transition-duration, 0ms)}.mat-mdc-dialog-container .mdc-dialog__surface{transition:transform var(--mat-dialog-transition-duration, 0ms) 0ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-dialog-container._mat-animation-noopable .mdc-dialog__container,.mat-mdc-dialog-container._mat-animation-noopable .mdc-dialog__surface{transition:none}.cdk-overlay-pane.mat-mdc-dialog-panel{max-width:var(--mat-dialog-container-max-width, 80vw);min-width:var(--mat-dialog-container-min-width, 0)}@media(max-width: 599px){.cdk-overlay-pane.mat-mdc-dialog-panel{max-width:var(--mat-dialog-container-small-max-width, 80vw)}}.mat-mdc-dialog-title{padding:var(--mat-dialog-headline-padding, 0 24px 9px)}.mat-mdc-dialog-content{display:block}.mat-mdc-dialog-container .mat-mdc-dialog-content{padding:var(--mat-dialog-content-padding, 20px 24px)}.mat-mdc-dialog-container-with-actions .mat-mdc-dialog-content{padding:var(--mat-dialog-with-actions-content-padding, 20px 24px)}.mat-mdc-dialog-container .mat-mdc-dialog-title+.mat-mdc-dialog-content{padding-top:0}.mat-mdc-dialog-actions{padding:var(--mat-dialog-actions-padding, 8px);justify-content:var(--mat-dialog-actions-alignment, start)}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-start,.mat-mdc-dialog-actions[align=start]{justify-content:start}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-center,.mat-mdc-dialog-actions[align=center]{justify-content:center}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-end,.mat-mdc-dialog-actions[align=end]{justify-content:flex-end}.mat-mdc-dialog-actions .mat-button-base+.mat-button-base,.mat-mdc-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-mdc-dialog-actions .mat-button-base+.mat-button-base,[dir=rtl] .mat-mdc-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:0;margin-right:8px}'],encapsulation:2})}}return n})();const IW="--mat-dialog-transition-duration";function FW(n){return null==n?null:"number"==typeof n?n:n.endsWith("ms")?im(n.substring(0,n.length-2)):n.endsWith("s")?1e3*im(n.substring(0,n.length-1)):"0"===n?0:null}var x2=function(n){return n[n.OPEN=0]="OPEN",n[n.CLOSING=1]="CLOSING",n[n.CLOSED=2]="CLOSED",n}(x2||{});class hR{constructor(t,e,i){this._ref=t,this._containerInstance=i,this._afterOpened=new Hn,this._beforeClosed=new Hn,this._state=x2.OPEN,this.disableClose=e.disableClose,this.id=t.id,t.addPanelClass("mat-mdc-dialog-panel"),i._animationStateChanged.pipe(Vi(r=>"opened"===r.state),zo(1)).subscribe(()=>{this._afterOpened.next(),this._afterOpened.complete()}),i._animationStateChanged.pipe(Vi(r=>"closed"===r.state),zo(1)).subscribe(()=>{clearTimeout(this._closeFallbackTimeout),this._finishDialogClose()}),t.overlayRef.detachments().subscribe(()=>{this._beforeClosed.next(this._result),this._beforeClosed.complete(),this._finishDialogClose()}),ql(this.backdropClick(),this.keydownEvents().pipe(Vi(r=>27===r.keyCode&&!this.disableClose&&!cd(r)))).subscribe(r=>{this.disableClose||(r.preventDefault(),DW(this,"keydown"===r.type?"keyboard":"mouse"))})}close(t){this._result=t,this._containerInstance._animationStateChanged.pipe(Vi(e=>"closing"===e.state),zo(1)).subscribe(e=>{this._beforeClosed.next(t),this._beforeClosed.complete(),this._ref.overlayRef.detachBackdrop(),this._closeFallbackTimeout=setTimeout(()=>this._finishDialogClose(),e.totalTime+100)}),this._state=x2.CLOSING,this._containerInstance._startExitAnimation()}afterOpened(){return this._afterOpened}afterClosed(){return this._ref.closed}beforeClosed(){return this._beforeClosed}backdropClick(){return this._ref.backdropClick}keydownEvents(){return this._ref.keydownEvents}updatePosition(t){let e=this._ref.config.positionStrategy;return t&&(t.left||t.right)?t.left?e.left(t.left):e.right(t.right):e.centerHorizontally(),t&&(t.top||t.bottom)?t.top?e.top(t.top):e.bottom(t.bottom):e.centerVertically(),this._ref.updatePosition(),this}updateSize(t="",e=""){return this._ref.updateSize(t,e),this}addPanelClass(t){return this._ref.addPanelClass(t),this}removePanelClass(t){return this._ref.removePanelClass(t),this}getState(){return this._state}_finishDialogClose(){this._state=x2.CLOSED,this._ref.close(this._result,{focusOrigin:this._closeInteractionType}),this.componentInstance=null}}function DW(n,t,e){return n._closeInteractionType=t,n.close(e)}const B1=new ut("MatMdcDialogData"),Tye=new ut("mat-mdc-dialog-default-options"),kW=new ut("mat-mdc-dialog-scroll-strategy",{providedIn:"root",factory:()=>{const n=qt(Rs);return()=>n.scrollStrategies.block()}});let Fye=0,Ws=(()=>{class n{get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}_getAfterAllClosed(){const e=this._parentDialog;return e?e._getAfterAllClosed():this._afterAllClosedAtThisLevel}constructor(e,i,r,o,s,a,l,c){this._overlay=e,this._defaultOptions=o,this._scrollStrategy=s,this._parentDialog=a,this._openDialogsAtThisLevel=[],this._afterAllClosedAtThisLevel=new Hn,this._afterOpenedAtThisLevel=new Hn,this.dialogConfigClass=dR,this.afterAllClosed=tR(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(dd(void 0))),this._dialog=i.get(sW),this._dialogRefConstructor=hR,this._dialogContainerType=TW,this._dialogDataToken=B1}open(e,i){let r;(i={...this._defaultOptions||new dR,...i}).id=i.id||"mat-mdc-dialog-"+Fye++,i.scrollStrategy=i.scrollStrategy||this._scrollStrategy();const o=this._dialog.open(e,{...i,positionStrategy:this._overlay.position().global().centerHorizontally().centerVertically(),disableClose:!0,closeOnDestroy:!1,closeOnOverlayDetachments:!1,container:{type:this._dialogContainerType,providers:()=>[{provide:this.dialogConfigClass,useValue:i},{provide:y2,useValue:i}]},templateContext:()=>({dialogRef:r}),providers:(s,a,l)=>(r=new this._dialogRefConstructor(s,i,l),r.updatePosition(i?.position),[{provide:this._dialogContainerType,useValue:l},{provide:this._dialogDataToken,useValue:a.data},{provide:this._dialogRefConstructor,useValue:r}])});return r.componentRef=o.componentRef,r.componentInstance=o.componentInstance,this.openDialogs.push(r),this.afterOpened.next(r),r.afterClosed().subscribe(()=>{const s=this.openDialogs.indexOf(r);s>-1&&(this.openDialogs.splice(s,1),this.openDialogs.length||this._getAfterAllClosed().next())}),r}closeAll(){this._closeDialogs(this.openDialogs)}getDialogById(e){return this.openDialogs.find(i=>i.id===e)}ngOnDestroy(){this._closeDialogs(this._openDialogsAtThisLevel),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete()}_closeDialogs(e){let i=e.length;for(;i--;)e[i].close()}static{this.\u0275fac=function(i){return new(i||n)(ge(Rs),ge(Jo),ge(bB,8),ge(Tye,8),ge(kW),ge(n,12),ge(m2),ge(ps,8))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),Dye=0,Mc=(()=>{class n{constructor(e,i,r){this.dialogRef=e,this._elementRef=i,this._dialog=r,this.type="button"}ngOnInit(){this.dialogRef||(this.dialogRef=PW(this._elementRef,this._dialog.openDialogs))}ngOnChanges(e){const i=e._matDialogClose||e._matDialogCloseResult;i&&(this.dialogResult=i.currentValue)}_onButtonClick(e){DW(this.dialogRef,0===e.screenX&&0===e.screenY?"keyboard":"mouse",this.dialogResult)}static{this.\u0275fac=function(i){return new(i||n)($(hR,8),$(Vn),$(Ws))}}static{this.\u0275dir=$t({type:n,selectors:[["","mat-dialog-close",""],["","matDialogClose",""]],hostVars:2,hostBindings:function(i,r){1&i&&We("click",function(s){return r._onButtonClick(s)}),2&i&&fi("aria-label",r.ariaLabel||null)("type",r.type)},inputs:{ariaLabel:[Ct.None,"aria-label","ariaLabel"],type:"type",dialogResult:[Ct.None,"mat-dialog-close","dialogResult"],_matDialogClose:[Ct.None,"matDialogClose","_matDialogClose"]},exportAs:["matDialogClose"],standalone:!0,features:[wr]})}}return n})(),BW=(()=>{class n{constructor(e,i,r){this._dialogRef=e,this._elementRef=i,this._dialog=r}ngOnInit(){this._dialogRef||(this._dialogRef=PW(this._elementRef,this._dialog.openDialogs)),this._dialogRef&&Promise.resolve().then(()=>{this._onAdd()})}ngOnDestroy(){this._dialogRef?._containerInstance&&Promise.resolve().then(()=>{this._onRemove()})}static{this.\u0275fac=function(i){return new(i||n)($(hR,8),$(Vn),$(Ws))}}static{this.\u0275dir=$t({type:n,standalone:!0})}}return n})(),C2=(()=>{class n extends BW{constructor(){super(...arguments),this.id="mat-mdc-dialog-title-"+Dye++}_onAdd(){this._dialogRef._containerInstance?._addAriaLabelledBy?.(this.id)}_onRemove(){this._dialogRef?._containerInstance?._removeAriaLabelledBy?.(this.id)}static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=Zr(n)))(r||n)}})()}static{this.\u0275dir=$t({type:n,selectors:[["","mat-dialog-title",""],["","matDialogTitle",""]],hostAttrs:[1,"mat-mdc-dialog-title","mdc-dialog__title"],hostVars:1,hostBindings:function(i,r){2&i&&$d("id",r.id)},inputs:{id:"id"},exportAs:["matDialogTitle"],standalone:!0,features:[_i]})}}return n})(),Ec=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=$t({type:n,selectors:[["","mat-dialog-content",""],["mat-dialog-content"],["","matDialogContent",""]],hostAttrs:[1,"mat-mdc-dialog-content","mdc-dialog__content"],standalone:!0})}}return n})(),ud=(()=>{class n extends BW{_onAdd(){this._dialogRef._containerInstance?._updateActionSectionCount?.(1)}_onRemove(){this._dialogRef._containerInstance?._updateActionSectionCount?.(-1)}static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=Zr(n)))(r||n)}})()}static{this.\u0275dir=$t({type:n,selectors:[["","mat-dialog-actions",""],["mat-dialog-actions"],["","matDialogActions",""]],hostAttrs:[1,"mat-mdc-dialog-actions","mdc-dialog__actions"],hostVars:6,hostBindings:function(i,r){2&i&&Qn("mat-mdc-dialog-actions-align-start","start"===r.align)("mat-mdc-dialog-actions-align-center","center"===r.align)("mat-mdc-dialog-actions-align-end","end"===r.align)},inputs:{align:"align"},standalone:!0,features:[_i]})}}return n})();function PW(n,t){let e=n.nativeElement.parentElement;for(;e&&!e.classList.contains("mat-mdc-dialog-container");)e=e.parentElement;return e?t.find(i=>i.id===e.id):null}let tA=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({providers:[Ws],imports:[Xve,T1,E1,hr,hr]})}}return n})();const kye=["mat-button",""],Bye=[[["",8,"material-icons",3,"iconPositionEnd",""],["mat-icon",3,"iconPositionEnd",""],["","matButtonIcon","",3,"iconPositionEnd",""]],"*",[["","iconPositionEnd","",8,"material-icons"],["mat-icon","iconPositionEnd",""],["","matButtonIcon","","iconPositionEnd",""]]],Pye=[".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])","*",".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"],Rye=new ut("MAT_BUTTON_CONFIG"),Lye=[{attribute:"mat-button",mdcClasses:["mdc-button","mat-mdc-button"]},{attribute:"mat-flat-button",mdcClasses:["mdc-button","mdc-button--unelevated","mat-mdc-unelevated-button"]},{attribute:"mat-raised-button",mdcClasses:["mdc-button","mdc-button--raised","mat-mdc-raised-button"]},{attribute:"mat-stroked-button",mdcClasses:["mdc-button","mdc-button--outlined","mat-mdc-outlined-button"]},{attribute:"mat-fab",mdcClasses:["mdc-fab","mat-mdc-fab"]},{attribute:"mat-mini-fab",mdcClasses:["mdc-fab","mdc-fab--mini","mat-mdc-mini-fab"]},{attribute:"mat-icon-button",mdcClasses:["mdc-icon-button","mat-mdc-icon-button"]}];let Oye=(()=>{class n{get ripple(){return this._rippleLoader?.getRipple(this._elementRef.nativeElement)}set ripple(e){this._rippleLoader?.attachRipple(this._elementRef.nativeElement,e)}get disableRipple(){return this._disableRipple}set disableRipple(e){this._disableRipple=e,this._updateRippleDisabled()}get disabled(){return this._disabled}set disabled(e){this._disabled=e,this._updateRippleDisabled()}constructor(e,i,r,o){this._elementRef=e,this._platform=i,this._ngZone=r,this._animationMode=o,this._focusMonitor=qt(Ch),this._rippleLoader=qt(bye),this._isFab=!1,this._disableRipple=!1,this._disabled=!1;const s=qt(Rye,{optional:!0}),a=e.nativeElement,l=a.classList;this.disabledInteractive=s?.disabledInteractive??!1,this._rippleLoader?.configureRipple(a,{className:"mat-mdc-button-ripple"});for(const{attribute:c,mdcClasses:d}of Lye)a.hasAttribute(c)&&l.add(...d)}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0)}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._rippleLoader?.destroyRipple(this._elementRef.nativeElement)}focus(e="program",i){e?this._focusMonitor.focusVia(this._elementRef.nativeElement,e,i):this._elementRef.nativeElement.focus(i)}_getAriaDisabled(){return null!=this.ariaDisabled?this.ariaDisabled:!(!this.disabled||!this.disabledInteractive)||null}_getDisabledAttribute(){return!(this.disabledInteractive||!this.disabled)||null}_updateRippleDisabled(){this._rippleLoader?.setDisabled(this._elementRef.nativeElement,this.disableRipple||this.disabled)}static{this.\u0275fac=function(i){!function V8(){throw new Error("invalid")}()}}static{this.\u0275dir=$t({type:n,inputs:{color:"color",disableRipple:[Ct.HasDecoratorInputTransform,"disableRipple","disableRipple",Zn],disabled:[Ct.HasDecoratorInputTransform,"disabled","disabled",Zn],ariaDisabled:[Ct.HasDecoratorInputTransform,"aria-disabled","ariaDisabled",Zn],disabledInteractive:[Ct.HasDecoratorInputTransform,"disabledInteractive","disabledInteractive",Zn]},features:[es]})}}return n})(),vs=(()=>{class n extends Oye{constructor(e,i,r,o){super(e,i,r,o)}static{this.\u0275fac=function(i){return new(i||n)($(Vn),$(eo),$(kn),$(ps,8))}}static{this.\u0275cmp=vt({type:n,selectors:[["button","mat-button",""],["button","mat-raised-button",""],["button","mat-flat-button",""],["button","mat-stroked-button",""]],hostVars:14,hostBindings:function(i,r){2&i&&(fi("disabled",r._getDisabledAttribute())("aria-disabled",r._getAriaDisabled()),nl(r.color?"mat-"+r.color:""),Qn("mat-mdc-button-disabled",r.disabled)("mat-mdc-button-disabled-interactive",r.disabledInteractive)("_mat-animation-noopable","NoopAnimations"===r._animationMode)("mat-unthemed",!r.color)("mat-mdc-button-base",!0))},exportAs:["matButton"],standalone:!0,features:[_i,Or],attrs:kye,ngContentSelectors:Pye,decls:7,vars:4,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-mdc-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,r){1&i&&($r(Bye),xe(0,"span",0),Gn(1),P(2,"span",1),Gn(3,1),H(),Gn(4,2),xe(5,"span",2)(6,"span",3)),2&i&&Qn("mdc-button__ripple",!r._isFab)("mdc-fab__ripple",r._isFab)},styles:['.mdc-touch-target-wrapper{display:inline}.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:var(--mdc-elevation-overlay-opacity, 0);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button{position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:64px;border:none;outline:none;line-height:inherit;user-select:none;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:rgba(0,0,0,0)}.mdc-button .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-button::-moz-focus-inner{padding:0;border:0}.mdc-button:active{outline:none}.mdc-button:hover{cursor:pointer}.mdc-button:disabled{cursor:default;pointer-events:none}.mdc-button[hidden]{display:none}.mdc-button .mdc-button__icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top}[dir=rtl] .mdc-button .mdc-button__icon,.mdc-button .mdc-button__icon[dir=rtl]{margin-left:8px;margin-right:0}.mdc-button .mdc-button__progress-indicator{font-size:0;position:absolute;transform:translate(-50%, -50%);top:50%;left:50%;line-height:initial}.mdc-button .mdc-button__label{position:relative}.mdc-button .mdc-button__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px);display:none}@media screen and (forced-colors: active){.mdc-button .mdc-button__focus-ring{border-color:CanvasText}}.mdc-button .mdc-button__focus-ring::after{content:"";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-button .mdc-button__focus-ring::after{border-color:CanvasText}}@media screen and (forced-colors: active){.mdc-button.mdc-ripple-upgraded--background-focused .mdc-button__focus-ring,.mdc-button:not(.mdc-ripple-upgraded):focus .mdc-button__focus-ring{display:block}}.mdc-button .mdc-button__touch{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mdc-button__label+.mdc-button__icon{margin-left:8px;margin-right:0}[dir=rtl] .mdc-button__label+.mdc-button__icon,.mdc-button__label+.mdc-button__icon[dir=rtl]{margin-left:0;margin-right:8px}svg.mdc-button__icon{fill:currentColor}.mdc-button--touch{margin-top:6px;margin-bottom:6px}.mdc-button{padding:0 8px 0 8px}.mdc-button--unelevated{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--unelevated.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--unelevated.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--raised{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--raised.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--raised.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--outlined{border-style:solid;transition:border 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button--outlined .mdc-button__ripple{border-style:solid;border-color:rgba(0,0,0,0)}.mat-mdc-button{font-family:var(--mdc-text-button-label-text-font);font-size:var(--mdc-text-button-label-text-size);letter-spacing:var(--mdc-text-button-label-text-tracking);font-weight:var(--mdc-text-button-label-text-weight);text-transform:var(--mdc-text-button-label-text-transform);height:var(--mdc-text-button-container-height);border-radius:var(--mdc-text-button-container-shape);padding:0 var(--mat-text-button-horizontal-padding, 8px)}.mat-mdc-button:not(:disabled){color:var(--mdc-text-button-label-text-color)}.mat-mdc-button:disabled{color:var(--mdc-text-button-disabled-label-text-color)}.mat-mdc-button .mdc-button__ripple{border-radius:var(--mdc-text-button-container-shape)}.mat-mdc-button:has(.material-icons,mat-icon,[matButtonIcon]){padding:0 var(--mat-text-button-with-icon-horizontal-padding, 8px)}.mat-mdc-button>.mat-icon{margin-right:var(--mat-text-button-icon-spacing, 8px);margin-left:var(--mat-text-button-icon-offset, 0)}[dir=rtl] .mat-mdc-button>.mat-icon{margin-right:var(--mat-text-button-icon-offset, 0);margin-left:var(--mat-text-button-icon-spacing, 8px)}.mat-mdc-button .mdc-button__label+.mat-icon{margin-right:var(--mat-text-button-icon-offset, 0);margin-left:var(--mat-text-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-button .mdc-button__label+.mat-icon{margin-right:var(--mat-text-button-icon-spacing, 8px);margin-left:var(--mat-text-button-icon-offset, 0)}.mat-mdc-button .mat-ripple-element{background-color:var(--mat-text-button-ripple-color)}.mat-mdc-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-text-button-state-layer-color)}.mat-mdc-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-text-button-disabled-state-layer-color)}.mat-mdc-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-hover-state-layer-opacity)}.mat-mdc-button.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-button.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-button.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-focus-state-layer-opacity)}.mat-mdc-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-pressed-state-layer-opacity)}.mat-mdc-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-text-button-touch-target-display)}.mat-mdc-button[disabled],.mat-mdc-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-text-button-disabled-label-text-color)}.mat-mdc-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-unelevated-button{font-family:var(--mdc-filled-button-label-text-font);font-size:var(--mdc-filled-button-label-text-size);letter-spacing:var(--mdc-filled-button-label-text-tracking);font-weight:var(--mdc-filled-button-label-text-weight);text-transform:var(--mdc-filled-button-label-text-transform);height:var(--mdc-filled-button-container-height);border-radius:var(--mdc-filled-button-container-shape);padding:0 var(--mat-filled-button-horizontal-padding, 16px)}.mat-mdc-unelevated-button:not(:disabled){background-color:var(--mdc-filled-button-container-color)}.mat-mdc-unelevated-button:disabled{background-color:var(--mdc-filled-button-disabled-container-color)}.mat-mdc-unelevated-button:not(:disabled){color:var(--mdc-filled-button-label-text-color)}.mat-mdc-unelevated-button:disabled{color:var(--mdc-filled-button-disabled-label-text-color)}.mat-mdc-unelevated-button .mdc-button__ripple{border-radius:var(--mdc-filled-button-container-shape)}.mat-mdc-unelevated-button>.mat-icon{margin-right:var(--mat-filled-button-icon-spacing, 8px);margin-left:var(--mat-filled-button-icon-offset, -4px)}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon{margin-right:var(--mat-filled-button-icon-offset, -4px);margin-left:var(--mat-filled-button-icon-spacing, 8px)}.mat-mdc-unelevated-button .mdc-button__label+.mat-icon{margin-right:var(--mat-filled-button-icon-offset, -4px);margin-left:var(--mat-filled-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-unelevated-button .mdc-button__label+.mat-icon{margin-right:var(--mat-filled-button-icon-spacing, 8px);margin-left:var(--mat-filled-button-icon-offset, -4px)}.mat-mdc-unelevated-button .mat-ripple-element{background-color:var(--mat-filled-button-ripple-color)}.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-filled-button-state-layer-color)}.mat-mdc-unelevated-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-filled-button-disabled-state-layer-color)}.mat-mdc-unelevated-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-hover-state-layer-opacity)}.mat-mdc-unelevated-button.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-focus-state-layer-opacity)}.mat-mdc-unelevated-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-pressed-state-layer-opacity)}.mat-mdc-unelevated-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-filled-button-touch-target-display)}.mat-mdc-unelevated-button[disabled],.mat-mdc-unelevated-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-filled-button-disabled-label-text-color);background-color:var(--mdc-filled-button-disabled-container-color)}.mat-mdc-unelevated-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-raised-button{font-family:var(--mdc-protected-button-label-text-font);font-size:var(--mdc-protected-button-label-text-size);letter-spacing:var(--mdc-protected-button-label-text-tracking);font-weight:var(--mdc-protected-button-label-text-weight);text-transform:var(--mdc-protected-button-label-text-transform);height:var(--mdc-protected-button-container-height);border-radius:var(--mdc-protected-button-container-shape);padding:0 var(--mat-protected-button-horizontal-padding, 16px);box-shadow:var(--mdc-protected-button-container-elevation-shadow)}.mat-mdc-raised-button:not(:disabled){background-color:var(--mdc-protected-button-container-color)}.mat-mdc-raised-button:disabled{background-color:var(--mdc-protected-button-disabled-container-color)}.mat-mdc-raised-button:not(:disabled){color:var(--mdc-protected-button-label-text-color)}.mat-mdc-raised-button:disabled{color:var(--mdc-protected-button-disabled-label-text-color)}.mat-mdc-raised-button .mdc-button__ripple{border-radius:var(--mdc-protected-button-container-shape)}.mat-mdc-raised-button>.mat-icon{margin-right:var(--mat-protected-button-icon-spacing, 8px);margin-left:var(--mat-protected-button-icon-offset, -4px)}[dir=rtl] .mat-mdc-raised-button>.mat-icon{margin-right:var(--mat-protected-button-icon-offset, -4px);margin-left:var(--mat-protected-button-icon-spacing, 8px)}.mat-mdc-raised-button .mdc-button__label+.mat-icon{margin-right:var(--mat-protected-button-icon-offset, -4px);margin-left:var(--mat-protected-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-raised-button .mdc-button__label+.mat-icon{margin-right:var(--mat-protected-button-icon-spacing, 8px);margin-left:var(--mat-protected-button-icon-offset, -4px)}.mat-mdc-raised-button .mat-ripple-element{background-color:var(--mat-protected-button-ripple-color)}.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-protected-button-state-layer-color)}.mat-mdc-raised-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-protected-button-disabled-state-layer-color)}.mat-mdc-raised-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-hover-state-layer-opacity)}.mat-mdc-raised-button.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-focus-state-layer-opacity)}.mat-mdc-raised-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-pressed-state-layer-opacity)}.mat-mdc-raised-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-protected-button-touch-target-display)}.mat-mdc-raised-button:hover{box-shadow:var(--mdc-protected-button-hover-container-elevation-shadow)}.mat-mdc-raised-button:focus{box-shadow:var(--mdc-protected-button-focus-container-elevation-shadow)}.mat-mdc-raised-button:active,.mat-mdc-raised-button:focus:active{box-shadow:var(--mdc-protected-button-pressed-container-elevation-shadow)}.mat-mdc-raised-button[disabled],.mat-mdc-raised-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-protected-button-disabled-label-text-color);background-color:var(--mdc-protected-button-disabled-container-color)}.mat-mdc-raised-button[disabled].mat-mdc-button-disabled,.mat-mdc-raised-button.mat-mdc-button-disabled.mat-mdc-button-disabled{box-shadow:var(--mdc-protected-button-disabled-container-elevation-shadow)}.mat-mdc-raised-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-outlined-button{font-family:var(--mdc-outlined-button-label-text-font);font-size:var(--mdc-outlined-button-label-text-size);letter-spacing:var(--mdc-outlined-button-label-text-tracking);font-weight:var(--mdc-outlined-button-label-text-weight);text-transform:var(--mdc-outlined-button-label-text-transform);height:var(--mdc-outlined-button-container-height);border-radius:var(--mdc-outlined-button-container-shape);padding:0 15px 0 15px;border-width:var(--mdc-outlined-button-outline-width);padding:0 var(--mat-outlined-button-horizontal-padding, 15px)}.mat-mdc-outlined-button:not(:disabled){color:var(--mdc-outlined-button-label-text-color)}.mat-mdc-outlined-button:disabled{color:var(--mdc-outlined-button-disabled-label-text-color)}.mat-mdc-outlined-button .mdc-button__ripple{border-radius:var(--mdc-outlined-button-container-shape)}.mat-mdc-outlined-button:not(:disabled){border-color:var(--mdc-outlined-button-outline-color)}.mat-mdc-outlined-button:disabled{border-color:var(--mdc-outlined-button-disabled-outline-color)}.mat-mdc-outlined-button.mdc-button--icon-trailing{padding:0 11px 0 15px}.mat-mdc-outlined-button.mdc-button--icon-leading{padding:0 15px 0 11px}.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:var(--mdc-outlined-button-outline-width)}.mat-mdc-outlined-button .mdc-button__touch{left:calc(-1 * var(--mdc-outlined-button-outline-width));width:calc(100% + 2 * var(--mdc-outlined-button-outline-width))}.mat-mdc-outlined-button>.mat-icon{margin-right:var(--mat-outlined-button-icon-spacing, 8px);margin-left:var(--mat-outlined-button-icon-offset, -4px)}[dir=rtl] .mat-mdc-outlined-button>.mat-icon{margin-right:var(--mat-outlined-button-icon-offset, -4px);margin-left:var(--mat-outlined-button-icon-spacing, 8px)}.mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-right:var(--mat-outlined-button-icon-offset, -4px);margin-left:var(--mat-outlined-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-right:var(--mat-outlined-button-icon-spacing, 8px);margin-left:var(--mat-outlined-button-icon-offset, -4px)}.mat-mdc-outlined-button .mat-ripple-element{background-color:var(--mat-outlined-button-ripple-color)}.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-outlined-button-state-layer-color)}.mat-mdc-outlined-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-outlined-button-disabled-state-layer-color)}.mat-mdc-outlined-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-hover-state-layer-opacity)}.mat-mdc-outlined-button.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-focus-state-layer-opacity)}.mat-mdc-outlined-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-pressed-state-layer-opacity)}.mat-mdc-outlined-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-outlined-button-touch-target-display)}.mat-mdc-outlined-button[disabled],.mat-mdc-outlined-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-outlined-button-disabled-label-text-color);border-color:var(--mdc-outlined-button-disabled-outline-color)}.mat-mdc-outlined-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-button-base{text-decoration:none}.mat-mdc-button,.mat-mdc-unelevated-button,.mat-mdc-raised-button,.mat-mdc-outlined-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0}.mat-mdc-button .mdc-button__label,.mat-mdc-unelevated-button .mdc-button__label,.mat-mdc-raised-button .mdc-button__label,.mat-mdc-outlined-button .mdc-button__label{z-index:1}.mat-mdc-button .mat-mdc-focus-indicator,.mat-mdc-unelevated-button .mat-mdc-focus-indicator,.mat-mdc-raised-button .mat-mdc-focus-indicator,.mat-mdc-outlined-button .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-unelevated-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-raised-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-outlined-button:focus .mat-mdc-focus-indicator::before{content:""}.mat-mdc-button._mat-animation-noopable,.mat-mdc-unelevated-button._mat-animation-noopable,.mat-mdc-raised-button._mat-animation-noopable,.mat-mdc-outlined-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon,.mat-mdc-raised-button>.mat-icon,.mat-mdc-outlined-button>.mat-icon{display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem}.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:-1px}.mat-mdc-unelevated-button .mat-mdc-focus-indicator::before,.mat-mdc-raised-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 2px)*-1)}.mat-mdc-outlined-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 3px)*-1)}',".cdk-high-contrast-active .mat-mdc-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-unelevated-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-raised-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-outlined-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-icon-button{outline:solid 1px}"],encapsulation:2,changeDetection:0})}}return n})(),fR=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[hr,e_,hr]})}}return n})();function Uye(n,t){if(1&n){const e=Pn();P(0,"button",5),We("click",function(){return Vt(e),Ot(He().data.resolveErrorData.onResolveErrorClick())}),we(1),H()}if(2&n){const e=He();U(),cn(" ",e.data.resolveErrorData.buttonText," ")}}let nA=(()=>{class n{constructor(e){this.data=e}static{this.\u0275fac=function(i){return new(i||n)($(B1))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-error-dialog"]],decls:7,vars:3,consts:[["mat-dialog-title",""],["mat-dialog-content","",3,"innerHTML"],["mat-dialog-actions","","align","end"],["mat-button","","mat-dialog-close","",3,"click",4,"ngIf"],["mat-button","","mat-dialog-close",""],["mat-button","","mat-dialog-close","",3,"click"]],template:function(i,r){1&i&&(P(0,"h1",0),we(1),H(),xe(2,"div",1),P(3,"div",2),At(4,Uye,2,1,"button",3),P(5,"button",4),we(6,"OK"),H()()),2&i&&(U(),Mr(r.data.title),U(),pe("innerHTML",r.data.message,TD),U(2),pe("ngIf",r.data.resolveErrorData))},dependencies:[Hp,vs,Mc,C2,ud,Ec],encapsulation:2})}}return n})();function Hye(n){return{title:"Something is wrong with the loaded file(s)",message:[...Vye(n),...Qye(n)].join("")}}function Vye(n){const t=n.filter(e=>e.errors.length>0);return t.length>0?["

    Errors

    ",...t.map(e=>function zye(n){return`

    ${n.fileName}: ${mR(' ',n.errors)}

    `}(e))]:[]}function Qye(n){const t=n.filter(e=>e.warnings.length>0);return t.length>0?["

    Warnings

    ",...t.map(e=>function qye(n){return`

    ${n.fileName}: ${mR(' ',n.warnings)}

    `}(e))]:[]}function mR(n,t){return`

    ${t.map(e=>n+e).join("
    ")}

    `}var Gye=p(7172),LW=p.n(Gye);const P1=JSON.parse('{"rE":"1.128.0","f4":{"X":"1.3"}}'),Wye=JSON.parse('{"$ref":"#/definitions/ExportCCFile","$schema":"http://json-schema.org/draft-07/schema#","definitions":{"AttributeTypes":{"properties":{"edges":{"additionalProperties":{"enum":["absolute","relative"],"type":"string"},"type":"object"},"nodes":{"additionalProperties":{"enum":["absolute","relative"],"type":"string"},"type":"object"}},"type":"object"},"CodeMapNode":{"properties":{"attributes":{"$ref":"#/definitions/KeyValuePair"},"children":{"items":{"$ref":"#/definitions/CodeMapNode"},"type":"array"},"deltas":{"additionalProperties":{"type":"number"},"type":"object"},"edgeAttributes":{"additionalProperties":{"$ref":"#/definitions/EdgeMetricCount"},"type":"object"},"fixedPosition":{"$ref":"#/definitions/FixedPosition"},"id":{"type":"number"},"isExcluded":{"type":"boolean"},"isFlattened":{"type":"boolean"},"link":{"type":"string"},"name":{"type":"string"},"path":{"type":"string"},"type":{"$ref":"#/definitions/NodeType"}},"required":["name","type"],"type":"object"},"Edge":{"properties":{"attributes":{"$ref":"#/definitions/KeyValuePair"},"fromNodeName":{"type":"string"},"toNodeName":{"type":"string"},"visible":{"$ref":"#/definitions/EdgeVisibility"}},"required":["attributes","fromNodeName","toNodeName"],"type":"object"},"EdgeMetricCount":{"properties":{"incoming":{"type":"number"},"outgoing":{"type":"number"}},"required":["incoming","outgoing"],"type":"object"},"EdgeVisibility":{"enum":["both","from","none","to"],"type":"string"},"ExportBlacklistItem":{"properties":{"path":{"type":"string"},"type":{"$ref":"#/definitions/ExportBlacklistType"}},"required":["path","type"],"type":"object"},"ExportBlacklistType":{"enum":["exclude","hide"],"type":"string"},"ExportCCFile":{"properties":{"apiVersion":{"type":"string"},"attributeTypes":{"anyOf":[{"$ref":"#/definitions/OldAttributeTypes"},{"$ref":"#/definitions/AttributeTypes"}]},"blacklist":{"items":{"$ref":"#/definitions/ExportBlacklistItem"},"type":"array"},"edges":{"items":{"$ref":"#/definitions/Edge"},"type":"array"},"markedPackages":{"items":{"$ref":"#/definitions/MarkedPackage"},"type":"array"},"nodes":{"items":{"$ref":"#/definitions/CodeMapNode"},"type":"array"},"projectName":{"type":"string"}},"required":["apiVersion","nodes","projectName"],"type":"object"},"FixedPosition":{"properties":{"height":{"type":"number"},"left":{"type":"number"},"top":{"type":"number"},"width":{"type":"number"}},"required":["height","left","top","width"],"type":"object"},"KeyValuePair":{"additionalProperties":{"type":"number"},"type":"object"},"MarkedPackage":{"properties":{"color":{"type":"string"},"path":{"type":"string"}},"required":["color","path"],"type":"object"},"NodeType":{"enum":["File","Folder"],"type":"string"},"OldAttributeTypes":{"properties":{"edges":{"additionalItems":{"anyOf":[{"additionalProperties":{"enum":["absolute","relative"],"type":"string"},"type":"object"}]},"items":[{"additionalProperties":{"enum":["absolute","relative"],"type":"string"},"type":"object"}],"minItems":0,"type":"array"},"nodes":{"additionalItems":{"anyOf":[{"additionalProperties":{"enum":["absolute","relative"],"type":"string"},"type":"object"}]},"items":[{"additionalProperties":{"enum":["absolute","relative"],"type":"string"},"type":"object"}],"minItems":0,"type":"array"}},"type":"object"}}}'),OW=P1.f4.X,ou={fileIsInvalid:"File is empty or invalid.",apiVersionIsInvalid:"API Version is empty or invalid.",majorApiVersionIsOutdated:"API Version Outdated: Update CodeCharta API Version to match cc.json.",minorApiVersionOutdated:"Minor API Version Outdated.",nodesNotUnique:"Node names in combination with node types are not unique.",nodesEmpty:"The nodes array is empty. At least one node is required.",notAllFoldersAreFixed:"If at least one direct sub-folder of root is marked as fixed, all direct sub-folders of root must be fixed.",fixedFoldersOutOfBounds:"Coordinates of fixed folders must be within a range of 0 and 100.",fixedFoldersOverlapped:"Folders may not overlap.",fixedFoldersNotAllowed:"Fixated folders may not be defined in API-Version < 1.2.",fileAlreadyExists:"File already exists.",blacklistError:"Excluding all buildings is not possible."};function $ye(n){const t=[];return n&&function Zye(n){return R1(n.apiVersion).minor>R1(OW).minor}(n)&&t.push(`${ou.minorApiVersionOutdated} Found: ${n.apiVersion}`),t}function jye(n){const t=[];switch(!0){case!n:t.push(ou.fileIsInvalid);break;case!function Kye(n){const{apiVersion:t}=n,e=void 0!==t,r=/\d+\.\d+/.test(t);return e&&r}(n):t.push(ou.apiVersionIsInvalid);break;case function Yye(n){return R1(n.apiVersion).major>R1(OW).major}(n):t.push(ou.majorApiVersionIsOutdated)}return 0===t.length&&t.push(...function Xye(n){const t=[];if(0===t.length){const i=new(LW())({allErrors:!0}).compile(Wye);i(n)?0===n.nodes.length?t.push(ou.nodesEmpty):t.push(...function e1e(n){const t=[],e=new Set;return e.add(`${n.name}|${n.type}`),NW(n,t,e,`/${n.name}`),t}(n.nodes[0]),...UW(n)):t.push(...i.errors.map(o=>function Jye(n){return`${n.keyword.charAt(0).toUpperCase()+n.keyword.slice(1)} error: ${n.dataPath.slice(1)} ${n.message}`}(o)))}return t}(n)),t}function R1(n){return{major:Number(n.split(".")[0]),minor:Number(n.split(".")[1])}}function NW(n,t,e,i){if(!Ro(n))for(const r of n.children){const o=`${i}/${r.name}`;e.has(`${o}|${r.type}`)?t.push(`${ou.nodesNotUnique} Found duplicate of ${r.type} with path: ${o}`):(e.add(`${o}|${r.type}`),NW(r,t,e,o))}}function UW(n,t=n.nodes[0].children){const e=[],i=[],r=[],o=new Set;(function t1e(n,t,e,i,r,o){for(const s of n)if(void 0===s.fixedPosition)t.push(`${s.name}`);else{const a=R1(e.apiVersion);if(a.major<1||1===a.major&&a.minor<2)return void i.push(`${ou.fixedFoldersNotAllowed} Found: ${e.apiVersion}`);i1e(s)&&r.push(L1(s));for(const l of n)void 0!==l.fixedPosition&&s!==l&&n1e(s.fixedPosition,l.fixedPosition)&&!o.has(`${L1(l)} and ${L1(s)}`)&&o.add(`${L1(s)} and ${L1(l)}`)}})(t,i,n,e,r,o),i.length>0&&i.length!==t.length&&e.push(`${ou.notAllFoldersAreFixed} Found: ${i.join(", ")}`),r.length>0&&e.push(`${ou.fixedFoldersOutOfBounds} Found: ${r.join(", ")}`),o.size>0&&e.push(`${ou.fixedFoldersOverlapped} Found: ${[...o].join(", ")}`);for(const s of t)s.children&&e.push(...UW(n,s.children));return e}function L1(n){return`${n.name} ${JSON.stringify(n.fixedPosition)}`}function n1e(n,t){return M2(n.left,n.top,t)||M2(n.left,n.top+n.height,t)||M2(n.left+n.width,n.top,t)||M2(n.left+n.width,n.top+n.height,t)}function M2(n,t,e){return n>=e.left&&n<=e.left+e.width&&t>=e.top&&t<=e.top+e.height}function i1e({fixedPosition:{left:n,top:t,width:e,height:i}}){return n<0||t<0||n+e>100||t+i>100||e<0||i<0}var su=function(n){return n.SquarifiedTreeMap="Squarified TreeMap",n.StreetMap="StreetMap",n.TreeMapStreet="TreeMapStreet",n}(su||{}),iA=function(n){return n.Standard="High",n.PixelRatioNoAA="Low",n.PixelRatioFXAA="Medium",n.PixelRatioAA="Best",n}(iA||{}),Oa=function(n){return n.FILE="File",n.FOLDER="Folder",n}(Oa||{}),E2=function(n){return n.NAME="Name",n.NUMBER_OF_FILES="Number of Files",n}(E2||{}),om=function(n){return n.absolute="absolute",n.relative="relative",n}(om||{}),sm=function(n){return n.trueGradient="trueGradient",n.weightedGradient="weightedGradient",n.focusedGradient="focusedGradient",n.absolute="absolute",n}(sm||{}),au=function(n){return n.none="none",n.from="from",n.to="to",n.both="both",n}(au||{});function S2(n,t){return t instanceof Map?{dataType:"Map",value:[...t.entries()]}:t instanceof Set?{dataType:"Set",value:[...t]}:t}function HW(n,t){return"Map"===t?.dataType?new Map(t.value):"Set"===t?.dataType?new Set(t.value):t}const pR={decorateMap(n,t,e){for(const{data:i}of bo(n)){i.isFlattened=!1,i.isExcluded=!1;for(const r of e)"flatten"===r.type?i.isFlattened=i.isFlattened||bG(i,r.path):i.isExcluded=i.isExcluded||bG(i,r.path)&&Ro(i)}n.isExcluded=!1,this.decorateMapWithMetricData(n,t)},decorateMapWithMetricData(n,t){const{nodeMetricData:e,edgeMetricData:i}=t;let r=0;for(const{data:o}of bo(n)){o.id=r,r++,void 0===o.attributes&&(o.attributes={}),Ro(o)&&(o.attributes[JE]=1);for(const s of e)void 0===o.attributes[s.name]&&(o.attributes[s.name]=0),void 0!==o.deltas&&void 0===o.deltas[s.name]&&(o.deltas[s.name]=0);void 0===o.edgeAttributes&&(o.edgeAttributes={});for(const s of i)void 0===o.edgeAttributes[s.name]&&(o.edgeAttributes[s.name]={incoming:0,outgoing:0});r1e(o)}},decorateMapWithPathAttribute(n){for(const t of bo(n.map))t.data.path=t.parent?`${t.parent.data.path}/${t.data.name}`:`/${t.data.name}`;return n},decorateParentNodesWithAggregatedAttributes(n,t,e){const i=new Map,r=Object.keys(n.attributes),o=Object.keys(n.edgeAttributes);bo(n).eachAfter(function({data:a,parent:l}){if(!a.isExcluded&&l){for(const c of r){const u=`${c}${l.data.path}`;e.nodes[c]===om.relative?(s1e(i,`${c}${a.path}`,u,a,c,t),o1e(i,u,a,c,t)):(l.data.attributes[c]+=a.attributes[c],t&&l.data.deltas&&(l.data.deltas[c]=l.data.deltas[c]??0,l.data.deltas[c]+=a.deltas[c]??0))}t&&l.data.fileCount&&(l.data.fileCount.added+=a.fileCount.added,l.data.fileCount.changed+=a.fileCount.changed,l.data.fileCount.removed+=a.fileCount.removed);for(const c of o){const d=a.edgeAttributes[c];if(!d)continue;const u=`${c}${a.path}`,h=`${c}${l.data.path}`;e.edges[c]===om.relative?(QW(i,`INCOMING${u}`,`INCOMING${h}`,a,c,"incoming"),QW(i,`OUTGOING${u}`,`OUTGOING${h}`,a,c,"outgoing"),VW(i,`INCOMING${h}`,a,c,"incoming"),VW(i,`OUTGOING${h}`,a,c,"outgoing")):(l.data.edgeAttributes[c].incoming+=d.incoming,l.data.edgeAttributes[c].outgoing+=d.outgoing)}}});for(const s of o)e.edges[s]===om.relative&&(n.edgeAttributes[s].incoming=rA(i.get(`INCOMING${s}${n.path}`)),n.edgeAttributes[s].outgoing=rA(i.get(`OUTGOING${s}${n.path}`)));for(const s of r)e.nodes[s]===om.relative&&(n.attributes[s]=rA(i.get(`MEDIAN${s}${n.path}`)),t&&n.deltas&&(n.deltas[s]=rA(i.get(`DELTA${s}${n.path}`))))}};function r1e(n){if((1!==n.children?.length||!n.children[0]?.fixedPosition)&&1===n.children?.length&&n.children[0].children?.length>0){const[t]=n.children;n.children=t.children,n.name+=`/${t.name}`,n.path+=`/${t.name}`,t.link&&(n.link=t.link)}}function VW(n,t,e,i,r){0!==e.edgeAttributes[i][r]&&gR(n,t,e,e.edgeAttributes[i][r])}function o1e(n,t,e,i,r){0!==e.attributes[i]&&gR(n,`MEDIAN${t}`,e,e.attributes[i]),r&&e.deltas&&0!==e.deltas[i]&&gR(n,`DELTA${t}`,e,e.deltas[i])}function s1e(n,t,e,i,r,o){if(Ro(i))return;const s=n.get(`MEDIAN${t}`);if(void 0!==s&&(i.attributes[r]=rA(s),AR(n,`MEDIAN${e}`,s)),o&&i.deltas){const a=n.get(`DELTA${t}`);void 0!==a&&(i.deltas[r]=rA(a),AR(n,`DELTA${e}`,a))}}function QW(n,t,e,i,r,o){if(Ro(i))return;const s=n.get(t);void 0!==s&&(i.edgeAttributes[r][o]=rA(s),AR(n,e,s))}function AR(n,t,e){const i=n.get(t);void 0===i?n.set(t,e):function l1e(n,t){let e=0;for(let i=0;it[e]&&(r++,e++,e!==t.length););if(r>0&&(n.splice(i,0,...t.slice(e-r,e)),e===t.length))return}n.push(...t.slice(e))}(i,e)}function gR(n,t,e,i){const r=n.get(t);void 0===r?n.set(t,[i]):Ro(e)&&function a1e(n,t){let e=0,i=n.length-1,r=0;if(i<0||n[i]<=t)n.push(t);else if(n[0]>=t)n.unshift(t);else for(;e<=i;)if(r=Math.floor((e+i)/2),n[r]{switch(t.type){case"flatten":return{path:t.path,type:"hide"};case"exclude":return{path:t.path,type:t.type}}})}}function u1e(n,t,e){const i=function K_e(n){const t=n.content;return{fileMeta:{fileName:n.fileName,fileChecksum:t.fileChecksum,projectName:t.projectName,apiVersion:t.apiVersion,exportedFileSize:n.fileSize,repoCreationDate:t.repoCreationDate||""},settings:{fileSettings:{edges:t.edges||[],attributeTypes:Y_e(t.attributeTypes),attributeDescriptors:Z_e(t.attributeDescriptors),blacklist:J_e(t.blacklist||[]),markedPackages:t.markedPackages||[]}},map:nu(t.nodes[0])}}(e);pR.decorateMapWithPathAttribute(i);const r=i.fileMeta.fileChecksum;let o=i.fileMeta.fileName;const s=new Map(n.map(c=>[c.file.fileMeta.fileName,c.file.fileMeta.fileChecksum])),a=new Map(n.map((c,d)=>[c.file.fileMeta.fileChecksum,d])),l=a.has(r);if(s.has(o)&&(o=function h1e(n,t,e){if(t.get(n)===e)return n;let i=!1,r=1,o=n;for(;!i;){const s=n.indexOf(".");o=s>=0?[n.slice(0,s),"_",r,n.slice(s)].join(""):`${n}_${r}`,(t.get(o)===e||!t.has(o))&&(i=!0),r++}return o}(o,s,r),i.fileMeta.fileName=o),l)return n[a.get(r)].file.fileMeta.fileName=o,t[0]=o,void t.push(o);n.push({file:i,selectedAs:Zi.None}),t.push(o)}const qW=Zt(bh,n=>n.find(t=>t.selectedAs===Zi.Reference)?.file),lu={rootName:"root",rootPath:"/root",updateRoot(n){this.rootName=n,this.rootPath=`/${n}`}},_R="File(s) could not be loaded";let t_=(()=>{class n{static{this.CC_FILE_EXTENSION=".cc.json"}constructor(e,i,r){this.store=e,this.state=i,this.dialog=r,this.referenceFileSubscription=this.store.select(qW).pipe(Dr(o=>{o&&lu.updateRoot(o.map.name)})).subscribe()}ngOnDestroy(){this.referenceFileSubscription.unsubscribe()}loadFiles(e){const i=nu(this.state.getValue().files),r=[],o=[];if(function d1e(n,t,e,i){for(const r of e){const o={fileName:r?.fileName,errors:[],warnings:[]};o.errors.push(...jye(r?.content)),0===o.errors.length&&(o.warnings.push(...$ye(r?.content)),u1e(n,t,r)),(o.errors.length>0||o.warnings.length>0)&&i.push(o)}}(i,r,e,o),o.length>0&&this.dialog.open(nA,{data:Hye(o)}),0===r.length)throw new Error(_R);this.store.dispatch(g1({value:i}));const s=r[0],a=this.state.getValue().files.find(l=>l.file.fileMeta.fileName===s).file.map.name;this.store.dispatch(EP({fileNames:r})),lu.updateRoot(a)}static{this.\u0275fac=function(i){return new(i||n)(ge(Xt),ge(jr),ge(Ws))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();const bR=Di(n=>function(){n(this),this.name="EmptyError",this.message="no elements in sequence"});function GW(n,t){const e="object"==typeof t;return new Promise((i,r)=>{const o=new Ms({next:s=>{i(s),o.unsubscribe()},error:r,complete:()=>{e?i(t.defaultValue):r(new bR)}});n.subscribe(o)})}function n_(n){let t=n.length;for(;--t>=0;)n[t]=0}const CR=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),T2=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),v1e=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),JW=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Th=new Array(576);n_(Th);const U1=new Array(60);n_(U1);const H1=new Array(512);n_(H1);const V1=new Array(256);n_(V1);const MR=new Array(29);n_(MR);const I2=new Array(30);function ER(n,t,e,i,r){this.static_tree=n,this.extra_bits=t,this.extra_base=e,this.elems=i,this.max_length=r,this.has_stree=n&&n.length}let e$,t$,n$;function SR(n,t){this.dyn_tree=n,this.max_code=0,this.stat_desc=t}n_(I2);const i$=n=>n<256?H1[n]:H1[256+(n>>>7)],Q1=(n,t)=>{n.pending_buf[n.pending++]=255&t,n.pending_buf[n.pending++]=t>>>8&255},al=(n,t,e)=>{n.bi_valid>16-e?(n.bi_buf|=t<>16-n.bi_valid,n.bi_valid+=e-16):(n.bi_buf|=t<{al(n,e[2*t],e[2*t+1])},r$=(n,t)=>{let e=0;do{e|=1&n,n>>>=1,e<<=1}while(--t>0);return e>>>1},o$=(n,t,e)=>{const i=new Array(16);let o,s,r=0;for(o=1;o<=15;o++)r=r+e[o-1]<<1,i[o]=r;for(s=0;s<=t;s++){let a=n[2*s+1];0!==a&&(n[2*s]=r$(i[a]++,a))}},s$=n=>{let t;for(t=0;t<286;t++)n.dyn_ltree[2*t]=0;for(t=0;t<30;t++)n.dyn_dtree[2*t]=0;for(t=0;t<19;t++)n.bl_tree[2*t]=0;n.dyn_ltree[512]=1,n.opt_len=n.static_len=0,n.sym_next=n.matches=0},a$=n=>{n.bi_valid>8?Q1(n,n.bi_buf):n.bi_valid>0&&(n.pending_buf[n.pending++]=n.bi_buf),n.bi_buf=0,n.bi_valid=0},l$=(n,t,e,i)=>{const r=2*t,o=2*e;return n[r]{const i=n.heap[e];let r=e<<1;for(;r<=n.heap_len&&(r{let i,r,s,a,o=0;if(0!==n.sym_next)do{i=255&n.pending_buf[n.sym_buf+o++],i+=(255&n.pending_buf[n.sym_buf+o++])<<8,r=n.pending_buf[n.sym_buf+o++],0===i?cu(n,r,t):(s=V1[r],cu(n,s+256+1,t),a=CR[s],0!==a&&(r-=MR[s],al(n,r,a)),i--,s=i$(i),cu(n,s,e),a=T2[s],0!==a&&(i-=I2[s],al(n,i,a)))}while(o{const e=t.dyn_tree,i=t.stat_desc.static_tree,r=t.stat_desc.has_stree,o=t.stat_desc.elems;let s,a,c,l=-1;for(n.heap_len=0,n.heap_max=573,s=0;s>1;s>=1;s--)TR(n,e,s);c=o;do{s=n.heap[1],n.heap[1]=n.heap[n.heap_len--],TR(n,e,1),a=n.heap[1],n.heap[--n.heap_max]=s,n.heap[--n.heap_max]=a,e[2*c]=e[2*s]+e[2*a],n.depth[c]=(n.depth[s]>=n.depth[a]?n.depth[s]:n.depth[a])+1,e[2*s+1]=e[2*a+1]=c,n.heap[1]=c++,TR(n,e,1)}while(n.heap_len>=2);n.heap[--n.heap_max]=n.heap[1],((n,t)=>{const e=t.dyn_tree,i=t.max_code,r=t.stat_desc.static_tree,o=t.stat_desc.has_stree,s=t.stat_desc.extra_bits,a=t.stat_desc.extra_base,l=t.stat_desc.max_length;let c,d,u,h,f,A,y=0;for(h=0;h<=15;h++)n.bl_count[h]=0;for(e[2*n.heap[n.heap_max]+1]=0,c=n.heap_max+1;c<573;c++)d=n.heap[c],h=e[2*e[2*d+1]+1]+1,h>l&&(h=l,y++),e[2*d+1]=h,!(d>i)&&(n.bl_count[h]++,f=0,d>=a&&(f=s[d-a]),A=e[2*d],n.opt_len+=A*(h+f),o&&(n.static_len+=A*(r[2*d+1]+f)));if(0!==y){do{for(h=l-1;0===n.bl_count[h];)h--;n.bl_count[h]--,n.bl_count[h+1]+=2,n.bl_count[l]--,y-=2}while(y>0);for(h=l;0!==h;h--)for(d=n.bl_count[h];0!==d;)u=n.heap[--c],!(u>i)&&(e[2*u+1]!==h&&(n.opt_len+=(h-e[2*u+1])*e[2*u],e[2*u+1]=h),d--)}})(n,t),o$(e,l,n.bl_count)},d$=(n,t,e)=>{let i,o,r=-1,s=t[1],a=0,l=7,c=4;for(0===s&&(l=138,c=3),t[2*(e+1)+1]=65535,i=0;i<=e;i++)o=s,s=t[2*(i+1)+1],!(++a{let i,o,r=-1,s=t[1],a=0,l=7,c=4;for(0===s&&(l=138,c=3),i=0;i<=e;i++)if(o=s,s=t[2*(i+1)+1],!(++a{al(n,0+(i?1:0),3),a$(n),Q1(n,e),Q1(n,~e),e&&n.pending_buf.set(n.window.subarray(t,t+e),n.pending),n.pending+=e};var O1e={_tr_init:n=>{h$||((()=>{let n,t,e,i,r;const o=new Array(16);for(e=0,i=0;i<28;i++)for(MR[i]=e,n=0;n<1<>=7;i<30;i++)for(I2[i]=r<<7,n=0;n<1<{let r,o,s=0;n.level>0?(2===n.strm.data_type&&(n.strm.data_type=(n=>{let e,t=4093624447;for(e=0;e<=31;e++,t>>>=1)if(1&t&&0!==n.dyn_ltree[2*e])return 0;if(0!==n.dyn_ltree[18]||0!==n.dyn_ltree[20]||0!==n.dyn_ltree[26])return 1;for(e=32;e<256;e++)if(0!==n.dyn_ltree[2*e])return 1;return 0})(n)),IR(n,n.l_desc),IR(n,n.d_desc),s=(n=>{let t;for(d$(n,n.dyn_ltree,n.l_desc.max_code),d$(n,n.dyn_dtree,n.d_desc.max_code),IR(n,n.bl_desc),t=18;t>=3&&0===n.bl_tree[2*JW[t]+1];t--);return n.opt_len+=3*(t+1)+5+5+4,t})(n),r=n.opt_len+3+7>>>3,o=n.static_len+3+7>>>3,o<=r&&(r=o)):r=o=e+5,e+4<=r&&-1!==t?f$(n,t,e,i):4===n.strategy||o===r?(al(n,2+(i?1:0),3),c$(n,Th,U1)):(al(n,4+(i?1:0),3),((n,t,e,i)=>{let r;for(al(n,t-257,5),al(n,e-1,5),al(n,i-4,4),r=0;r(n.pending_buf[n.sym_buf+n.sym_next++]=t,n.pending_buf[n.sym_buf+n.sym_next++]=t>>8,n.pending_buf[n.sym_buf+n.sym_next++]=e,0===t?n.dyn_ltree[2*e]++:(n.matches++,t--,n.dyn_ltree[2*(V1[e]+256+1)]++,n.dyn_dtree[2*i$(t)]++),n.sym_next===n.sym_end),_tr_align:n=>{al(n,2,3),cu(n,256,Th),(n=>{16===n.bi_valid?(Q1(n,n.bi_buf),n.bi_buf=0,n.bi_valid=0):n.bi_valid>=8&&(n.pending_buf[n.pending++]=255&n.bi_buf,n.bi_buf>>=8,n.bi_valid-=8)})(n)}},z1=(n,t,e,i)=>{let r=65535&n,o=n>>>16&65535,s=0;for(;0!==e;){s=e>2e3?2e3:e,e-=s;do{r=r+t[i++]|0,o=o+r|0}while(--s);r%=65521,o%=65521}return r|o<<16};const U1e=new Uint32Array((()=>{let n,t=[];for(var e=0;e<256;e++){n=e;for(var i=0;i<8;i++)n=1&n?3988292384^n>>>1:n>>>1;t[e]=n}return t})());var $s=(n,t,e,i)=>{const r=U1e,o=i+e;n^=-1;for(let s=i;s>>8^r[255&(n^t[s])];return~n},sA={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},aA={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:H1e,_tr_stored_block:FR,_tr_flush_block:V1e,_tr_tally:am,_tr_align:Q1e}=O1e,{Z_NO_FLUSH:lm,Z_PARTIAL_FLUSH:z1e,Z_FULL_FLUSH:q1e,Z_FINISH:Sc,Z_BLOCK:m$,Z_OK:na,Z_STREAM_END:p$,Z_STREAM_ERROR:du,Z_DATA_ERROR:G1e,Z_BUF_ERROR:DR,Z_DEFAULT_COMPRESSION:W1e,Z_FILTERED:$1e,Z_HUFFMAN_ONLY:F2,Z_RLE:j1e,Z_FIXED:X1e,Z_DEFAULT_STRATEGY:K1e,Z_UNKNOWN:Y1e,Z_DEFLATED:D2}=aA,uu=262,dA=(n,t)=>(n.msg=sA[t],t),A$=n=>2*n-(n>4?9:0),dm=n=>{let t=n.length;for(;--t>=0;)n[t]=0},awe=n=>{let t,e,i,r=n.w_size;t=n.hash_size,i=t;do{e=n.head[--i],n.head[i]=e>=r?e-r:0}while(--t);t=r,i=t;do{e=n.prev[--i],n.prev[i]=e>=r?e-r:0}while(--t)};let um=(n,t,e)=>(t<{const t=n.state;let e=t.pending;e>n.avail_out&&(e=n.avail_out),0!==e&&(n.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+e),n.next_out),n.next_out+=e,t.pending_out+=e,n.total_out+=e,n.avail_out-=e,t.pending-=e,0===t.pending&&(t.pending_out=0))},$l=(n,t)=>{V1e(n,n.block_start>=0?n.block_start:-1,n.strstart-n.block_start,t),n.block_start=n.strstart,Wl(n.strm)},kr=(n,t)=>{n.pending_buf[n.pending++]=t},G1=(n,t)=>{n.pending_buf[n.pending++]=t>>>8&255,n.pending_buf[n.pending++]=255&t},NR=(n,t,e,i)=>{let r=n.avail_in;return r>i&&(r=i),0===r?0:(n.avail_in-=r,t.set(n.input.subarray(n.next_in,n.next_in+r),e),1===n.state.wrap?n.adler=z1(n.adler,t,r,e):2===n.state.wrap&&(n.adler=$s(n.adler,t,r,e)),n.next_in+=r,n.total_in+=r,r)},g$=(n,t)=>{let r,o,e=n.max_chain_length,i=n.strstart,s=n.prev_length,a=n.nice_match;const l=n.strstart>n.w_size-uu?n.strstart-(n.w_size-uu):0,c=n.window,d=n.w_mask,u=n.prev,h=n.strstart+258;let f=c[i+s-1],A=c[i+s];n.prev_length>=n.good_match&&(e>>=2),a>n.lookahead&&(a=n.lookahead);do{if(r=t,c[r+s]===A&&c[r+s-1]===f&&c[r]===c[i]&&c[++r]===c[i+1]){i+=2,r++;do{}while(c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&is){if(n.match_start=t,s=o,o>=a)break;f=c[i+s-1],A=c[i+s]}}}while((t=u[t&d])>l&&0!=--e);return s<=n.lookahead?s:n.lookahead},a_=n=>{const t=n.w_size;let e,i,r;do{if(i=n.window_size-n.lookahead-n.strstart,n.strstart>=t+(t-uu)&&(n.window.set(n.window.subarray(t,t+t-i),0),n.match_start-=t,n.strstart-=t,n.block_start-=t,n.insert>n.strstart&&(n.insert=n.strstart),awe(n),i+=t),0===n.strm.avail_in)break;if(e=NR(n.strm,n.window,n.strstart+n.lookahead,i),n.lookahead+=e,n.lookahead+n.insert>=3)for(r=n.strstart-n.insert,n.ins_h=n.window[r],n.ins_h=um(n,n.ins_h,n.window[r+1]);n.insert&&(n.ins_h=um(n,n.ins_h,n.window[r+3-1]),n.prev[r&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=r,r++,n.insert--,!(n.lookahead+n.insert<3)););}while(n.lookahead{let i,r,o,e=n.pending_buf_size-5>n.w_size?n.w_size:n.pending_buf_size-5,s=0,a=n.strm.avail_in;do{if(i=65535,o=n.bi_valid+42>>3,n.strm.avail_outr+n.strm.avail_in&&(i=r+n.strm.avail_in),i>o&&(i=o),i>8,n.pending_buf[n.pending-2]=~i,n.pending_buf[n.pending-1]=~i>>8,Wl(n.strm),r&&(r>i&&(r=i),n.strm.output.set(n.window.subarray(n.block_start,n.block_start+r),n.strm.next_out),n.strm.next_out+=r,n.strm.avail_out-=r,n.strm.total_out+=r,n.block_start+=r,i-=r),i&&(NR(n.strm,n.strm.output,n.strm.next_out,i),n.strm.next_out+=i,n.strm.avail_out-=i,n.strm.total_out+=i)}while(0===s);return a-=n.strm.avail_in,a&&(a>=n.w_size?(n.matches=2,n.window.set(n.strm.input.subarray(n.strm.next_in-n.w_size,n.strm.next_in),0),n.strstart=n.w_size,n.insert=n.strstart):(n.window_size-n.strstart<=a&&(n.strstart-=n.w_size,n.window.set(n.window.subarray(n.w_size,n.w_size+n.strstart),0),n.matches<2&&n.matches++,n.insert>n.strstart&&(n.insert=n.strstart)),n.window.set(n.strm.input.subarray(n.strm.next_in-a,n.strm.next_in),n.strstart),n.strstart+=a,n.insert+=a>n.w_size-n.insert?n.w_size-n.insert:a),n.block_start=n.strstart),n.high_watero&&n.block_start>=n.w_size&&(n.block_start-=n.w_size,n.strstart-=n.w_size,n.window.set(n.window.subarray(n.w_size,n.w_size+n.strstart),0),n.matches<2&&n.matches++,o+=n.w_size,n.insert>n.strstart&&(n.insert=n.strstart)),o>n.strm.avail_in&&(o=n.strm.avail_in),o&&(NR(n.strm,n.window,n.strstart,o),n.strstart+=o,n.insert+=o>n.w_size-n.insert?n.w_size-n.insert:o),n.high_water>3,o=n.pending_buf_size-o>65535?65535:n.pending_buf_size-o,e=o>n.w_size?n.w_size:o,r=n.strstart-n.block_start,(r>=e||(r||t===Sc)&&t!==lm&&0===n.strm.avail_in&&r<=o)&&(i=r>o?o:r,s=t===Sc&&0===n.strm.avail_in&&i===r?1:0,FR(n,n.block_start,i,s),n.block_start+=i,Wl(n.strm)),s?3:1)},UR=(n,t)=>{let e,i;for(;;){if(n.lookahead=3&&(n.ins_h=um(n,n.ins_h,n.window[n.strstart+3-1]),e=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart),0!==e&&n.strstart-e<=n.w_size-uu&&(n.match_length=g$(n,e)),n.match_length>=3)if(i=am(n,n.strstart-n.match_start,n.match_length-3),n.lookahead-=n.match_length,n.match_length<=n.max_lazy_match&&n.lookahead>=3){n.match_length--;do{n.strstart++,n.ins_h=um(n,n.ins_h,n.window[n.strstart+3-1]),e=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart}while(0!=--n.match_length);n.strstart++}else n.strstart+=n.match_length,n.match_length=0,n.ins_h=n.window[n.strstart],n.ins_h=um(n,n.ins_h,n.window[n.strstart+1]);else i=am(n,0,n.window[n.strstart]),n.lookahead--,n.strstart++;if(i&&($l(n,!1),0===n.strm.avail_out))return 1}return n.insert=n.strstart<2?n.strstart:2,t===Sc?($l(n,!0),0===n.strm.avail_out?3:4):n.sym_next&&($l(n,!1),0===n.strm.avail_out)?1:2},l_=(n,t)=>{let e,i,r;for(;;){if(n.lookahead=3&&(n.ins_h=um(n,n.ins_h,n.window[n.strstart+3-1]),e=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart),n.prev_length=n.match_length,n.prev_match=n.match_start,n.match_length=2,0!==e&&n.prev_length4096)&&(n.match_length=2)),n.prev_length>=3&&n.match_length<=n.prev_length){r=n.strstart+n.lookahead-3,i=am(n,n.strstart-1-n.prev_match,n.prev_length-3),n.lookahead-=n.prev_length-1,n.prev_length-=2;do{++n.strstart<=r&&(n.ins_h=um(n,n.ins_h,n.window[n.strstart+3-1]),e=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart)}while(0!=--n.prev_length);if(n.match_available=0,n.match_length=2,n.strstart++,i&&($l(n,!1),0===n.strm.avail_out))return 1}else if(n.match_available){if(i=am(n,0,n.window[n.strstart-1]),i&&$l(n,!1),n.strstart++,n.lookahead--,0===n.strm.avail_out)return 1}else n.match_available=1,n.strstart++,n.lookahead--}return n.match_available&&(i=am(n,0,n.window[n.strstart-1]),n.match_available=0),n.insert=n.strstart<2?n.strstart:2,t===Sc?($l(n,!0),0===n.strm.avail_out?3:4):n.sym_next&&($l(n,!1),0===n.strm.avail_out)?1:2};function hu(n,t,e,i,r){this.good_length=n,this.max_lazy=t,this.nice_length=e,this.max_chain=i,this.func=r}const W1=[new hu(0,0,0,0,_$),new hu(4,4,8,4,UR),new hu(4,5,16,8,UR),new hu(4,6,32,32,UR),new hu(4,4,16,16,l_),new hu(8,16,32,32,l_),new hu(8,16,128,128,l_),new hu(8,32,128,256,l_),new hu(32,128,258,1024,l_),new hu(32,258,258,4096,l_)];function uwe(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=D2,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),dm(this.dyn_ltree),dm(this.dyn_dtree),dm(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),dm(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),dm(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const $1=n=>{if(!n)return 1;const t=n.state;return!t||t.strm!==n||42!==t.status&&57!==t.status&&69!==t.status&&73!==t.status&&91!==t.status&&103!==t.status&&113!==t.status&&666!==t.status?1:0},b$=n=>{if($1(n))return dA(n,du);n.total_in=n.total_out=0,n.data_type=Y1e;const t=n.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=2===t.wrap?57:t.wrap?42:113,n.adler=2===t.wrap?0:1,t.last_flush=-2,H1e(t),na},v$=n=>{const t=b$(n);return t===na&&(n=>{n.window_size=2*n.w_size,dm(n.head),n.max_lazy_match=W1[n.level].max_lazy,n.good_match=W1[n.level].good_length,n.nice_match=W1[n.level].nice_length,n.max_chain_length=W1[n.level].max_chain,n.strstart=0,n.block_start=0,n.lookahead=0,n.insert=0,n.match_length=n.prev_length=2,n.match_available=0,n.ins_h=0})(n.state),t},y$=(n,t,e,i,r,o)=>{if(!n)return du;let s=1;if(t===W1e&&(t=6),i<0?(s=0,i=-i):i>15&&(s=2,i-=16),r<1||r>9||e!==D2||i<8||i>15||t<0||t>9||o<0||o>X1e||8===i&&1!==s)return dA(n,du);8===i&&(i=9);const a=new uwe;return n.state=a,a.strm=n,a.status=42,a.wrap=s,a.gzhead=null,a.w_bits=i,a.w_size=1<y$(n,t,D2,15,8,K1e),deflateInit2:y$,deflateReset:v$,deflateResetKeep:b$,deflateSetHeader:(n,t)=>$1(n)||2!==n.state.wrap?du:(n.state.gzhead=t,na),deflate:(n,t)=>{if($1(n)||t>m$||t<0)return n?dA(n,du):du;const e=n.state;if(!n.output||0!==n.avail_in&&!n.input||666===e.status&&t!==Sc)return dA(n,0===n.avail_out?DR:du);const i=e.last_flush;if(e.last_flush=t,0!==e.pending){if(Wl(n),0===n.avail_out)return e.last_flush=-1,na}else if(0===n.avail_in&&A$(t)<=A$(i)&&t!==Sc)return dA(n,DR);if(666===e.status&&0!==n.avail_in)return dA(n,DR);if(42===e.status&&0===e.wrap&&(e.status=113),42===e.status){let r=D2+(e.w_bits-8<<4)<<8,o=-1;if(o=e.strategy>=F2||e.level<2?0:e.level<6?1:6===e.level?2:3,r|=o<<6,0!==e.strstart&&(r|=32),r+=31-r%31,G1(e,r),0!==e.strstart&&(G1(e,n.adler>>>16),G1(e,65535&n.adler)),n.adler=1,e.status=113,Wl(n),0!==e.pending)return e.last_flush=-1,na}if(57===e.status)if(n.adler=0,kr(e,31),kr(e,139),kr(e,8),e.gzhead)kr(e,(e.gzhead.text?1:0)+(e.gzhead.hcrc?2:0)+(e.gzhead.extra?4:0)+(e.gzhead.name?8:0)+(e.gzhead.comment?16:0)),kr(e,255&e.gzhead.time),kr(e,e.gzhead.time>>8&255),kr(e,e.gzhead.time>>16&255),kr(e,e.gzhead.time>>24&255),kr(e,9===e.level?2:e.strategy>=F2||e.level<2?4:0),kr(e,255&e.gzhead.os),e.gzhead.extra&&e.gzhead.extra.length&&(kr(e,255&e.gzhead.extra.length),kr(e,e.gzhead.extra.length>>8&255)),e.gzhead.hcrc&&(n.adler=$s(n.adler,e.pending_buf,e.pending,0)),e.gzindex=0,e.status=69;else if(kr(e,0),kr(e,0),kr(e,0),kr(e,0),kr(e,0),kr(e,9===e.level?2:e.strategy>=F2||e.level<2?4:0),kr(e,3),e.status=113,Wl(n),0!==e.pending)return e.last_flush=-1,na;if(69===e.status){if(e.gzhead.extra){let r=e.pending,o=(65535&e.gzhead.extra.length)-e.gzindex;for(;e.pending+o>e.pending_buf_size;){let a=e.pending_buf_size-e.pending;if(e.pending_buf.set(e.gzhead.extra.subarray(e.gzindex,e.gzindex+a),e.pending),e.pending=e.pending_buf_size,e.gzhead.hcrc&&e.pending>r&&(n.adler=$s(n.adler,e.pending_buf,e.pending-r,r)),e.gzindex+=a,Wl(n),0!==e.pending)return e.last_flush=-1,na;r=0,o-=a}let s=new Uint8Array(e.gzhead.extra);e.pending_buf.set(s.subarray(e.gzindex,e.gzindex+o),e.pending),e.pending+=o,e.gzhead.hcrc&&e.pending>r&&(n.adler=$s(n.adler,e.pending_buf,e.pending-r,r)),e.gzindex=0}e.status=73}if(73===e.status){if(e.gzhead.name){let o,r=e.pending;do{if(e.pending===e.pending_buf_size){if(e.gzhead.hcrc&&e.pending>r&&(n.adler=$s(n.adler,e.pending_buf,e.pending-r,r)),Wl(n),0!==e.pending)return e.last_flush=-1,na;r=0}o=e.gzindexr&&(n.adler=$s(n.adler,e.pending_buf,e.pending-r,r)),e.gzindex=0}e.status=91}if(91===e.status){if(e.gzhead.comment){let o,r=e.pending;do{if(e.pending===e.pending_buf_size){if(e.gzhead.hcrc&&e.pending>r&&(n.adler=$s(n.adler,e.pending_buf,e.pending-r,r)),Wl(n),0!==e.pending)return e.last_flush=-1,na;r=0}o=e.gzindexr&&(n.adler=$s(n.adler,e.pending_buf,e.pending-r,r))}e.status=103}if(103===e.status){if(e.gzhead.hcrc){if(e.pending+2>e.pending_buf_size&&(Wl(n),0!==e.pending))return e.last_flush=-1,na;kr(e,255&n.adler),kr(e,n.adler>>8&255),n.adler=0}if(e.status=113,Wl(n),0!==e.pending)return e.last_flush=-1,na}if(0!==n.avail_in||0!==e.lookahead||t!==lm&&666!==e.status){let r=0===e.level?_$(e,t):e.strategy===F2?((n,t)=>{let e;for(;;){if(0===n.lookahead&&(a_(n),0===n.lookahead)){if(t===lm)return 1;break}if(n.match_length=0,e=am(n,0,n.window[n.strstart]),n.lookahead--,n.strstart++,e&&($l(n,!1),0===n.strm.avail_out))return 1}return n.insert=0,t===Sc?($l(n,!0),0===n.strm.avail_out?3:4):n.sym_next&&($l(n,!1),0===n.strm.avail_out)?1:2})(e,t):e.strategy===j1e?((n,t)=>{let e,i,r,o;const s=n.window;for(;;){if(n.lookahead<=258){if(a_(n),n.lookahead<=258&&t===lm)return 1;if(0===n.lookahead)break}if(n.match_length=0,n.lookahead>=3&&n.strstart>0&&(r=n.strstart-1,i=s[r],i===s[++r]&&i===s[++r]&&i===s[++r])){o=n.strstart+258;do{}while(i===s[++r]&&i===s[++r]&&i===s[++r]&&i===s[++r]&&i===s[++r]&&i===s[++r]&&i===s[++r]&&i===s[++r]&&rn.lookahead&&(n.match_length=n.lookahead)}if(n.match_length>=3?(e=am(n,1,n.match_length-3),n.lookahead-=n.match_length,n.strstart+=n.match_length,n.match_length=0):(e=am(n,0,n.window[n.strstart]),n.lookahead--,n.strstart++),e&&($l(n,!1),0===n.strm.avail_out))return 1}return n.insert=0,t===Sc?($l(n,!0),0===n.strm.avail_out?3:4):n.sym_next&&($l(n,!1),0===n.strm.avail_out)?1:2})(e,t):W1[e.level].func(e,t);if((3===r||4===r)&&(e.status=666),1===r||3===r)return 0===n.avail_out&&(e.last_flush=-1),na;if(2===r&&(t===z1e?Q1e(e):t!==m$&&(FR(e,0,0,!1),t===q1e&&(dm(e.head),0===e.lookahead&&(e.strstart=0,e.block_start=0,e.insert=0))),Wl(n),0===n.avail_out))return e.last_flush=-1,na}return t!==Sc?na:e.wrap<=0?p$:(2===e.wrap?(kr(e,255&n.adler),kr(e,n.adler>>8&255),kr(e,n.adler>>16&255),kr(e,n.adler>>24&255),kr(e,255&n.total_in),kr(e,n.total_in>>8&255),kr(e,n.total_in>>16&255),kr(e,n.total_in>>24&255)):(G1(e,n.adler>>>16),G1(e,65535&n.adler)),Wl(n),e.wrap>0&&(e.wrap=-e.wrap),0!==e.pending?na:p$)},deflateEnd:n=>{if($1(n))return du;const t=n.state.status;return n.state=null,113===t?dA(n,G1e):na},deflateSetDictionary:(n,t)=>{let e=t.length;if($1(n))return du;const i=n.state,r=i.wrap;if(2===r||1===r&&42!==i.status||i.lookahead)return du;if(1===r&&(n.adler=z1(n.adler,t,e,0)),i.wrap=0,e>=i.w_size){0===r&&(dm(i.head),i.strstart=0,i.block_start=0,i.insert=0);let l=new Uint8Array(i.w_size);l.set(t.subarray(e-i.w_size,e),0),t=l,e=i.w_size}const o=n.avail_in,s=n.next_in,a=n.input;for(n.avail_in=e,n.next_in=0,n.input=t,a_(i);i.lookahead>=3;){let l=i.strstart,c=i.lookahead-2;do{i.ins_h=um(i,i.ins_h,i.window[l+3-1]),i.prev[l&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=l,l++}while(--c);i.strstart=l,i.lookahead=2,a_(i)}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=2,i.match_available=0,n.next_in=s,n.input=a,n.avail_in=o,i.wrap=r,na},deflateInfo:"pako deflate (from Nodeca project)"};const Ewe=(n,t)=>Object.prototype.hasOwnProperty.call(n,t);var k2={assign:function(n){const t=Array.prototype.slice.call(arguments,1);for(;t.length;){const e=t.shift();if(e){if("object"!=typeof e)throw new TypeError(e+"must be non-object");for(const i in e)Ewe(e,i)&&(n[i]=e[i])}}return n},flattenChunks:n=>{let t=0;for(let i=0,r=n.length;i=252?6:n>=248?5:n>=240?4:n>=224?3:n>=192?2:1;X1[254]=X1[254]=1;var K1={string2buf:n=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(n);let t,e,i,r,o,s=n.length,a=0;for(r=0;r>>6,t[o++]=128|63&e):e<65536?(t[o++]=224|e>>>12,t[o++]=128|e>>>6&63,t[o++]=128|63&e):(t[o++]=240|e>>>18,t[o++]=128|e>>>12&63,t[o++]=128|e>>>6&63,t[o++]=128|63&e);return t},buf2string:(n,t)=>{const e=t||n.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(n.subarray(0,t));let i,r;const o=new Array(2*e);for(r=0,i=0;i4)o[r++]=65533,i+=a-1;else{for(s&=2===a?31:3===a?15:7;a>1&&i1?o[r++]=65533:s<65536?o[r++]=s:(s-=65536,o[r++]=55296|s>>10&1023,o[r++]=56320|1023&s)}}return((n,t)=>{if(t<65534&&n.subarray&&w$)return String.fromCharCode.apply(null,n.length===t?n:n.subarray(0,t));let e="";for(let i=0;i{(t=t||n.length)>n.length&&(t=n.length);let e=t-1;for(;e>=0&&128==(192&n[e]);)e--;return e<0||0===e?t:e+X1[n[e]]>t?e:t}},x$=function Bwe(){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};const C$=Object.prototype.toString,{Z_NO_FLUSH:Pwe,Z_SYNC_FLUSH:Rwe,Z_FULL_FLUSH:Lwe,Z_FINISH:Owe,Z_OK:B2,Z_STREAM_END:Nwe,Z_DEFAULT_COMPRESSION:Uwe,Z_DEFAULT_STRATEGY:Hwe,Z_DEFLATED:Vwe}=aA;function Y1(n){this.options=k2.assign({level:Uwe,method:Vwe,chunkSize:16384,windowBits:15,memLevel:8,strategy:Hwe},n||{});let t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new x$,this.strm.avail_out=0;let e=j1.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(e!==B2)throw new Error(sA[e]);if(t.header&&j1.deflateSetHeader(this.strm,t.header),t.dictionary){let i;if(i="string"==typeof t.dictionary?K1.string2buf(t.dictionary):"[object ArrayBuffer]"===C$.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,e=j1.deflateSetDictionary(this.strm,i),e!==B2)throw new Error(sA[e]);this._dict_set=!0}}function HR(n,t){const e=new Y1(t);if(e.push(n,!0),e.err)throw e.msg||sA[e.err];return e.result}Y1.prototype.push=function(n,t){const e=this.strm,i=this.options.chunkSize;let r,o;if(this.ended)return!1;for(o=t===~~t?t:!0===t?Owe:Pwe,e.input="string"==typeof n?K1.string2buf(n):"[object ArrayBuffer]"===C$.call(n)?new Uint8Array(n):n,e.next_in=0,e.avail_in=e.input.length;;)if(0===e.avail_out&&(e.output=new Uint8Array(i),e.next_out=0,e.avail_out=i),(o===Rwe||o===Lwe)&&e.avail_out<=6)this.onData(e.output.subarray(0,e.next_out)),e.avail_out=0;else{if(r=j1.deflate(e,o),r===Nwe)return e.next_out>0&&this.onData(e.output.subarray(0,e.next_out)),r=j1.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===B2;if(0!==e.avail_out){if(o>0&&e.next_out>0)this.onData(e.output.subarray(0,e.next_out)),e.avail_out=0;else if(0===e.avail_in)break}else this.onData(e.output)}return!0},Y1.prototype.onData=function(n){this.chunks.push(n)},Y1.prototype.onEnd=function(n){n===B2&&(this.result=k2.flattenChunks(this.chunks)),this.chunks=[],this.err=n,this.msg=this.strm.msg};var Xwe={Deflate:Y1,deflate:HR,deflateRaw:function Qwe(n,t){return(t=t||{}).raw=!0,HR(n,t)},gzip:function zwe(n,t){return(t=t||{}).gzip=!0,HR(n,t)},constants:aA};const P2=16209;var Ywe=function(t,e){let i,r,o,s,a,l,c,d,u,h,f,A,y,_,b,M,C,E,I,V,R,K,k,W;const ue=t.state;i=t.next_in,k=t.input,r=i+(t.avail_in-5),o=t.next_out,W=t.output,s=o-(e-t.avail_out),a=o+(t.avail_out-257),l=ue.dmax,c=ue.wsize,d=ue.whave,u=ue.wnext,h=ue.window,f=ue.hold,A=ue.bits,y=ue.lencode,_=ue.distcode,b=(1<>>24,f>>>=E,A-=E,E=C>>>16&255,0===E)W[o++]=65535&C;else{if(!(16&E)){if(64&E){if(32&E){ue.mode=16191;break e}t.msg="invalid literal/length code",ue.mode=P2;break e}C=y[(65535&C)+(f&(1<>>=E,A-=E),A<15&&(f+=k[i++]<>>24,f>>>=E,A-=E,E=C>>>16&255,16&E){if(V=65535&C,E&=15,Al){t.msg="invalid distance too far back",ue.mode=P2;break e}if(f>>>=E,A-=E,E=o-s,V>E){if(E=V-E,E>d&&ue.sane){t.msg="invalid distance too far back",ue.mode=P2;break e}if(R=0,K=h,0===u){if(R+=c-E,E2;)W[o++]=K[R++],W[o++]=K[R++],W[o++]=K[R++],I-=3;I&&(W[o++]=K[R++],I>1&&(W[o++]=K[R++]))}else{R=o-V;do{W[o++]=W[R++],W[o++]=W[R++],W[o++]=W[R++],I-=3}while(I>2);I&&(W[o++]=W[R++],I>1&&(W[o++]=W[R++]))}break}if(64&E){t.msg="invalid distance code",ue.mode=P2;break e}C=_[(65535&C)+(f&(1<>3,i-=I,A-=I<<3,f&=(1<{const l=a.bits;let C,E,I,V,R,k,c=0,d=0,u=0,h=0,f=0,A=0,y=0,_=0,b=0,M=0,K=null;const W=new Uint16Array(16),ue=new Uint16Array(16);let Me,Z,ve,Se=null;for(c=0;c<=15;c++)W[c]=0;for(d=0;d=1&&0===W[h];h--);if(f>h&&(f=h),0===h)return r[o++]=20971520,r[o++]=20971520,a.bits=1,0;for(u=1;u0&&(0===n||1!==h))return-1;for(ue[1]=0,c=1;c<15;c++)ue[c+1]=ue[c]+W[c];for(d=0;d852||2===n&&b>592)return 1;for(;;){Me=c-y,s[d]+1=k?(Z=Se[s[d]-k],ve=K[s[d]-k]):(Z=96,ve=0),C=1<>y)+E]=Me<<24|Z<<16|ve}while(0!==E);for(C=1<>=1;if(0!==C?(M&=C-1,M+=C):M=0,d++,0==--W[c]){if(c===h)break;c=t[e+s[d]]}if(c>f&&(M&V)!==I){for(0===y&&(y=f),R+=u,A=c-y,_=1<852||2===n&&b>592)return 1;I=M&V,r[I]=f<<24|A<<16|R-o}}return 0!==M&&(r[R+M]=c-y<<24|64<<16),a.bits=f,0};const{Z_FINISH:D$,Z_BLOCK:ixe,Z_TREES:R2,Z_OK:uA,Z_STREAM_END:rxe,Z_NEED_DICT:oxe,Z_STREAM_ERROR:Tc,Z_DATA_ERROR:k$,Z_MEM_ERROR:B$,Z_BUF_ERROR:sxe,Z_DEFLATED:P$}=aA,L2=16180,O2=16190,Ih=16191,N2=16199,U2=16200,Eo=16209,rj=n=>(n>>>24&255)+(n>>>8&65280)+((65280&n)<<8)+((255&n)<<24);function dxe(){this.strm=null,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 Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const hA=n=>{if(!n)return 1;const t=n.state;return!t||t.strm!==n||t.mode16211?1:0},oj=n=>{if(hA(n))return Tc;const t=n.state;return n.total_in=n.total_out=t.total=0,n.msg="",t.wrap&&(n.adler=1&t.wrap),t.mode=L2,t.last=0,t.havedict=0,t.flags=-1,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(852),t.distcode=t.distdyn=new Int32Array(592),t.sane=1,t.back=-1,uA},sj=n=>{if(hA(n))return Tc;const t=n.state;return t.wsize=0,t.whave=0,t.wnext=0,oj(n)},aj=(n,t)=>{let e;if(hA(n))return Tc;const i=n.state;return t<0?(e=0,t=-t):(e=5+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?Tc:(null!==i.window&&i.wbits!==t&&(i.window=null),i.wrap=e,i.wbits=t,sj(n))},lj=(n,t)=>{if(!n)return Tc;const e=new dxe;n.state=e,e.strm=n,e.window=null,e.mode=L2;const i=aj(n,t);return i!==uA&&(n.state=null),i};let GR,WR,cj=!0;const hxe=n=>{if(cj){GR=new Int32Array(512),WR=new Int32Array(32);let t=0;for(;t<144;)n.lens[t++]=8;for(;t<256;)n.lens[t++]=9;for(;t<280;)n.lens[t++]=7;for(;t<288;)n.lens[t++]=8;for(Z1(1,n.lens,0,288,GR,0,n.work,{bits:9}),t=0;t<32;)n.lens[t++]=5;Z1(2,n.lens,0,32,WR,0,n.work,{bits:5}),cj=!1}n.lencode=GR,n.lenbits=9,n.distcode=WR,n.distbits=5},dj=(n,t,e,i)=>{let r;const o=n.state;return null===o.window&&(o.wsize=1<=o.wsize?(o.window.set(t.subarray(e-o.wsize,e),0),o.wnext=0,o.whave=o.wsize):(r=o.wsize-o.wnext,r>i&&(r=i),o.window.set(t.subarray(e-i,e-i+r),o.wnext),(i-=r)?(o.window.set(t.subarray(e-i,e),0),o.wnext=i,o.whave=o.wsize):(o.wnext+=r,o.wnext===o.wsize&&(o.wnext=0),o.whavelj(n,15),inflateInit2:lj,inflate:(n,t)=>{let e,i,r,o,s,a,l,c,d,u,h,f,A,y,b,M,C,E,I,V,R,K,_=0;const k=new Uint8Array(4);let W,ue;const Se=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(hA(n)||!n.output||!n.input&&0!==n.avail_in)return Tc;e=n.state,e.mode===Ih&&(e.mode=16192),s=n.next_out,r=n.output,l=n.avail_out,o=n.next_in,i=n.input,a=n.avail_in,c=e.hold,d=e.bits,u=a,h=l,K=uA;e:for(;;)switch(e.mode){case L2:if(0===e.wrap){e.mode=16192;break}for(;d<16;){if(0===a)break e;a--,c+=i[o++]<>>8&255,e.check=$s(e.check,k,2,0),c=0,d=0,e.mode=16181;break}if(e.head&&(e.head.done=!1),!(1&e.wrap)||(((255&c)<<8)+(c>>8))%31){n.msg="incorrect header check",e.mode=Eo;break}if((15&c)!==P$){n.msg="unknown compression method",e.mode=Eo;break}if(c>>>=4,d-=4,R=8+(15&c),0===e.wbits&&(e.wbits=R),R>15||R>e.wbits){n.msg="invalid window size",e.mode=Eo;break}e.dmax=1<>8&1),512&e.flags&&4&e.wrap&&(k[0]=255&c,k[1]=c>>>8&255,e.check=$s(e.check,k,2,0)),c=0,d=0,e.mode=16182;case 16182:for(;d<32;){if(0===a)break e;a--,c+=i[o++]<>>8&255,k[2]=c>>>16&255,k[3]=c>>>24&255,e.check=$s(e.check,k,4,0)),c=0,d=0,e.mode=16183;case 16183:for(;d<16;){if(0===a)break e;a--,c+=i[o++]<>8),512&e.flags&&4&e.wrap&&(k[0]=255&c,k[1]=c>>>8&255,e.check=$s(e.check,k,2,0)),c=0,d=0,e.mode=16184;case 16184:if(1024&e.flags){for(;d<16;){if(0===a)break e;a--,c+=i[o++]<>>8&255,e.check=$s(e.check,k,2,0)),c=0,d=0}else e.head&&(e.head.extra=null);e.mode=16185;case 16185:if(1024&e.flags&&(f=e.length,f>a&&(f=a),f&&(e.head&&(R=e.head.extra_len-e.length,e.head.extra||(e.head.extra=new Uint8Array(e.head.extra_len)),e.head.extra.set(i.subarray(o,o+f),R)),512&e.flags&&4&e.wrap&&(e.check=$s(e.check,i,f,o)),a-=f,o+=f,e.length-=f),e.length))break e;e.length=0,e.mode=16186;case 16186:if(2048&e.flags){if(0===a)break e;f=0;do{R=i[o+f++],e.head&&R&&e.length<65536&&(e.head.name+=String.fromCharCode(R))}while(R&&f>9&1,e.head.done=!0),n.adler=e.check=0,e.mode=Ih;break;case 16189:for(;d<32;){if(0===a)break e;a--,c+=i[o++]<>>=7&d,d-=7&d,e.mode=16206;break}for(;d<3;){if(0===a)break e;a--,c+=i[o++]<>>=1,d-=1,3&c){case 0:e.mode=16193;break;case 1:if(hxe(e),e.mode=N2,t===R2){c>>>=2,d-=2;break e}break;case 2:e.mode=16196;break;case 3:n.msg="invalid block type",e.mode=Eo}c>>>=2,d-=2;break;case 16193:for(c>>>=7&d,d-=7&d;d<32;){if(0===a)break e;a--,c+=i[o++]<>>16^65535)){n.msg="invalid stored block lengths",e.mode=Eo;break}if(e.length=65535&c,c=0,d=0,e.mode=16194,t===R2)break e;case 16194:e.mode=16195;case 16195:if(f=e.length,f){if(f>a&&(f=a),f>l&&(f=l),0===f)break e;r.set(i.subarray(o,o+f),s),a-=f,o+=f,l-=f,s+=f,e.length-=f;break}e.mode=Ih;break;case 16196:for(;d<14;){if(0===a)break e;a--,c+=i[o++]<>>=5,d-=5,e.ndist=1+(31&c),c>>>=5,d-=5,e.ncode=4+(15&c),c>>>=4,d-=4,e.nlen>286||e.ndist>30){n.msg="too many length or distance symbols",e.mode=Eo;break}e.have=0,e.mode=16197;case 16197:for(;e.have>>=3,d-=3}for(;e.have<19;)e.lens[Se[e.have++]]=0;if(e.lencode=e.lendyn,e.lenbits=7,W={bits:e.lenbits},K=Z1(0,e.lens,0,19,e.lencode,0,e.work,W),e.lenbits=W.bits,K){n.msg="invalid code lengths set",e.mode=Eo;break}e.have=0,e.mode=16198;case 16198:for(;e.have>>24,M=_>>>16&255,C=65535&_,!(b<=d);){if(0===a)break e;a--,c+=i[o++]<>>=b,d-=b,e.lens[e.have++]=C;else{if(16===C){for(ue=b+2;d>>=b,d-=b,0===e.have){n.msg="invalid bit length repeat",e.mode=Eo;break}R=e.lens[e.have-1],f=3+(3&c),c>>>=2,d-=2}else if(17===C){for(ue=b+3;d>>=b,d-=b,R=0,f=3+(7&c),c>>>=3,d-=3}else{for(ue=b+7;d>>=b,d-=b,R=0,f=11+(127&c),c>>>=7,d-=7}if(e.have+f>e.nlen+e.ndist){n.msg="invalid bit length repeat",e.mode=Eo;break}for(;f--;)e.lens[e.have++]=R}}if(e.mode===Eo)break;if(0===e.lens[256]){n.msg="invalid code -- missing end-of-block",e.mode=Eo;break}if(e.lenbits=9,W={bits:e.lenbits},K=Z1(1,e.lens,0,e.nlen,e.lencode,0,e.work,W),e.lenbits=W.bits,K){n.msg="invalid literal/lengths set",e.mode=Eo;break}if(e.distbits=6,e.distcode=e.distdyn,W={bits:e.distbits},K=Z1(2,e.lens,e.nlen,e.ndist,e.distcode,0,e.work,W),e.distbits=W.bits,K){n.msg="invalid distances set",e.mode=Eo;break}if(e.mode=N2,t===R2)break e;case N2:e.mode=U2;case U2:if(a>=6&&l>=258){n.next_out=s,n.avail_out=l,n.next_in=o,n.avail_in=a,e.hold=c,e.bits=d,Ywe(n,h),s=n.next_out,r=n.output,l=n.avail_out,o=n.next_in,i=n.input,a=n.avail_in,c=e.hold,d=e.bits,e.mode===Ih&&(e.back=-1);break}for(e.back=0;_=e.lencode[c&(1<>>24,M=_>>>16&255,C=65535&_,!(b<=d);){if(0===a)break e;a--,c+=i[o++]<>E)],b=_>>>24,M=_>>>16&255,C=65535&_,!(E+b<=d);){if(0===a)break e;a--,c+=i[o++]<>>=E,d-=E,e.back+=E}if(c>>>=b,d-=b,e.back+=b,e.length=C,0===M){e.mode=16205;break}if(32&M){e.back=-1,e.mode=Ih;break}if(64&M){n.msg="invalid literal/length code",e.mode=Eo;break}e.extra=15&M,e.mode=16201;case 16201:if(e.extra){for(ue=e.extra;d>>=e.extra,d-=e.extra,e.back+=e.extra}e.was=e.length,e.mode=16202;case 16202:for(;_=e.distcode[c&(1<>>24,M=_>>>16&255,C=65535&_,!(b<=d);){if(0===a)break e;a--,c+=i[o++]<>E)],b=_>>>24,M=_>>>16&255,C=65535&_,!(E+b<=d);){if(0===a)break e;a--,c+=i[o++]<>>=E,d-=E,e.back+=E}if(c>>>=b,d-=b,e.back+=b,64&M){n.msg="invalid distance code",e.mode=Eo;break}e.offset=C,e.extra=15&M,e.mode=16203;case 16203:if(e.extra){for(ue=e.extra;d>>=e.extra,d-=e.extra,e.back+=e.extra}if(e.offset>e.dmax){n.msg="invalid distance too far back",e.mode=Eo;break}e.mode=16204;case 16204:if(0===l)break e;if(f=h-l,e.offset>f){if(f=e.offset-f,f>e.whave&&e.sane){n.msg="invalid distance too far back",e.mode=Eo;break}f>e.wnext?(f-=e.wnext,A=e.wsize-f):A=e.wnext-f,f>e.length&&(f=e.length),y=e.window}else y=r,A=s-e.offset,f=e.length;f>l&&(f=l),l-=f,e.length-=f;do{r[s++]=y[A++]}while(--f);0===e.length&&(e.mode=U2);break;case 16205:if(0===l)break e;r[s++]=e.length,l--,e.mode=U2;break;case 16206:if(e.wrap){for(;d<32;){if(0===a)break e;a--,c|=i[o++]<{if(hA(n))return Tc;let t=n.state;return t.window&&(t.window=null),n.state=null,uA},inflateGetHeader:(n,t)=>{if(hA(n))return Tc;const e=n.state;return 2&e.wrap?(e.head=t,t.done=!1,uA):Tc},inflateSetDictionary:(n,t)=>{const e=t.length;let i,r,o;return hA(n)||(i=n.state,0!==i.wrap&&i.mode!==O2)?Tc:i.mode===O2&&(r=1,r=z1(r,t,e,0),r!==i.check)?k$:(o=dj(n,t,e,e),o?(i.mode=16210,B$):(i.havedict=1,uA))},inflateInfo:"pako inflate (from Nodeca project)"},Txe=function Sxe(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1};const uj=Object.prototype.toString,{Z_NO_FLUSH:Ixe,Z_FINISH:Fxe,Z_OK:J1,Z_STREAM_END:$R,Z_NEED_DICT:jR,Z_STREAM_ERROR:Dxe,Z_DATA_ERROR:hj,Z_MEM_ERROR:kxe}=aA;function ew(n){this.options=k2.assign({chunkSize:65536,windowBits:15,to:""},n||{});const t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),t.windowBits>=0&&t.windowBits<16&&!(n&&n.windowBits)&&(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(15&t.windowBits||(t.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new x$,this.strm.avail_out=0;let e=Fh.inflateInit2(this.strm,t.windowBits);if(e!==J1)throw new Error(sA[e]);if(this.header=new Txe,Fh.inflateGetHeader(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=K1.string2buf(t.dictionary):"[object ArrayBuffer]"===uj.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(e=Fh.inflateSetDictionary(this.strm,t.dictionary),e!==J1)))throw new Error(sA[e])}function XR(n,t){const e=new ew(t);if(e.push(n),e.err)throw e.msg||sA[e.err];return e.result}ew.prototype.push=function(n,t){const e=this.strm,i=this.options.chunkSize,r=this.options.dictionary;let o,s,a;if(this.ended)return!1;for(s=t===~~t?t:!0===t?Fxe:Ixe,e.input="[object ArrayBuffer]"===uj.call(n)?new Uint8Array(n):n,e.next_in=0,e.avail_in=e.input.length;;){for(0===e.avail_out&&(e.output=new Uint8Array(i),e.next_out=0,e.avail_out=i),o=Fh.inflate(e,s),o===jR&&r&&(o=Fh.inflateSetDictionary(e,r),o===J1?o=Fh.inflate(e,s):o===hj&&(o=jR));e.avail_in>0&&o===$R&&e.state.wrap>0&&0!==n[e.next_in];)Fh.inflateReset(e),o=Fh.inflate(e,s);switch(o){case Dxe:case hj:case jR:case kxe:return this.onEnd(o),this.ended=!0,!1}if(a=e.avail_out,e.next_out&&(0===e.avail_out||o===$R))if("string"===this.options.to){let l=K1.utf8border(e.output,e.next_out),c=e.next_out-l,d=K1.buf2string(e.output,l);e.next_out=c,e.avail_out=i-c,c&&e.output.set(e.output.subarray(l,l+c),0),this.onData(d)}else this.onData(e.output.length===e.next_out?e.output:e.output.subarray(0,e.next_out));if(o!==J1||0!==a){if(o===$R)return o=Fh.inflateEnd(this.strm),this.onEnd(o),this.ended=!0,!0;if(0===e.avail_in)break}}return!0},ew.prototype.onData=function(n){this.chunks.push(n)},ew.prototype.onEnd=function(n){n===J1&&(this.result="string"===this.options.to?this.chunks.join(""):k2.flattenChunks(this.chunks)),this.chunks=[],this.err=n,this.msg=this.strm.msg};var Uxe={Inflate:ew,inflate:XR,inflateRaw:function Bxe(n,t){return(t=t||{}).raw=!0,XR(n,t)},ungzip:XR,constants:aA};const{ungzip:$xe}=Uxe;var KR=$xe;class fj{constructor(t){this.httpClient=t}getParameterByName(t){const e=t.replaceAll(/[[\]]/g,"\\$&"),r=new RegExp(`[?&]${e}(=([^&#]*)|&|#|$)`).exec(window.location.href);return r?r[2]?decodeURIComponent(r[2].replaceAll("+"," ")):"":null}getFileDataFromQueryParam(){var t=this;return B(function*(){const i=new URLSearchParams(window.location.search).getAll("file");if(0===i.length)throw new Error("Filename is missing");return Promise.all(i.map(function(){var r=B(function*(o){return t.getFileDataFromFile(o)});return function(o){return r.apply(this,arguments)}}()))})()}getFileDataFromFile(t){var e=this;return B(function*(){if(!t)throw new Error("Filename is missing");return t.endsWith(".gz")?e.getUnzippedFile(t):e.getFile(t)})()}getUnzippedFile(t){var e=this;return B(function*(){const i=yield GW(e.httpClient.get(t,{responseType:"arraybuffer",observe:"response"}));if(i.status>=200&&i.status<300){const s=CP(KR(i.body,{to:"string"}));return{fileName:e.getFileName(t,s.projectName),fileSize:13,content:s}}throw new Error(`Could not load file "${t}"`)})()}getFile(t){var e=this;return B(function*(){const i=yield GW(e.httpClient.get(t,{observe:"response"}));if(i.status>=200&&i.status<300){const o=CP(i.body);return{fileName:t=e.getFileName(t,o.projectName),fileSize:15,content:o}}throw new Error(`Could not load file "${t}"`)})()}getFileName(t,e){return e?.trim()||t.split("/").pop()}}const H2={fileName:"sample1.cc.json",fileSize:3072,content:g_e},V2={fileName:"sample2.cc.json",fileSize:2048,content:__e};let YR=(()=>{class n{constructor(e,i,r,o,s){this.store=e,this.state=i,this.dialog=r,this.loadFileService=o,this.httpClient=s,this.urlUtils=new fj(this.httpClient)}loadFilesOrSampleFiles(){var e=this;return B(function*(){yield e.checkFileQueryParameterPresent()?e.loadFilesFromQueryParams():e.loadFilesFromIndexedDB()})()}checkFileQueryParameterPresent(){return!!this.urlUtils.getParameterByName("file")}loadFilesFromQueryParams(){var e=this;return B(function*(){try{const i=yield e.urlUtils.getFileDataFromQueryParam(),r=yield _P();if(!r)return e.loadFileService.loadFiles(i),void e.setRenderStateFromUrl();const o=r.files,s=o.map(c=>zW(c.file)),a=i.map(c=>c.content.fileChecksum),l=s.map(c=>c.content.fileChecksum);ad(a)===ad(l)?e.applySettingsAndFilesFromSavedState(o,r,s):e.applySettingsFromSavedState(r,i),e.setRenderStateFromUrl()}catch(i){yield e.handleErrorLoadFilesFromQueryParams(i)}finally{e.setMetricsFromUrl()}})()}applySettingsAndFilesFromSavedState(e,i,r){const o=[];i.appSettings.resetCameraIfNewFileIsLoaded||this.store.dispatch({type:"StartWithGlobalOption:resetCameraIfNewFileIsLoadedSetToFalse"});const s=this.applyAppSettings(i.appSettings);o.push(...s),this.loadFileService.loadFiles(r),this.store.dispatch(g1({value:e}));const a=this.applyFileSettings(i.fileSettings);o.push(...a);const l=this.applyDynamicSettings(i.dynamicSettings);o.push(...l),o.length>0&&this.showErrorDialogForMissingProperties(o)}applySettingsFromSavedState(e,i){this.applyAllSettings(e),this.loadFileService.loadFiles(i)}showErrorDialogForMissingProperties(e){const r=this.buildMissingPropertiesMessage(e);this.showErrorDialog("The previous state could not be fully restored after loading the page. The following properties were not restored.",r)}handleErrorLoadFilesFromQueryParams(e){var i=this;return B(function*(){if(e.message!==_R){const r="File(s) could not be loaded from the given file URL parameter. Loaded sample files instead.",o=i.createTitleUrlErrorDialog(e);i.showErrorDialog(r,o)}yield i.loadSampleFiles()})()}loadFilesFromIndexedDB(){var e=this;return B(function*(){try{const i=yield _P();if(!i)return void(yield e.loadSampleFiles());const r=i.files,o=r.map(s=>zW(s.file));e.applySettingsAndFilesFromSavedState(r,i,o)}catch(i){yield e.handleErrorLoadFilesFromIndexedDB(i)}})()}handleErrorLoadFilesFromIndexedDB(e){var i=this;return B(function*(){e.message!==_R&&i.showErrorDialog("Previously loaded files and settings could not be restored. Loaded sample files instead.",e.message),yield i.loadSampleFiles()})()}applyAllSettings(e){var i=this;return B(function*(){const r=e.fileSettings,o=e.dynamicSettings,s=e.appSettings,a=[];if(r){const l=i.applyFileSettings(r);a.push(...l)}if(o){const l=i.applyDynamicSettings(o);a.push(...l)}if(s){const l=i.applyAppSettings(s);a.push(...l)}a.length>0&&i.showErrorDialogForMissingProperties(a)})()}applyFileSettings(e){const i=this.state.getValue().fileSettings,r=[];for(const[o,s]of Object.entries(i))o in e?ad(s)!==ad(e[o])&&this.mapFileSettingToAction(o,e[o]):r.push(o);return r}applyDynamicSettings(e){const i=this.state.getValue().dynamicSettings,r=[];for(const[o,s]of Object.entries(i))o in e?ad(s)!==ad(e[o])&&this.mapDynamicSettingToAction(o,e[o]):r.push(o);return r}applyAppSettings(e){const i=this.state.getValue().appSettings,r=[];for(const[o,s]of Object.entries(i))o in e?ad(s)!==ad(e[o])&&this.mapAppSettingToAction(o,e[o]):r.push(o);return r}mapFileSettingToAction(e,i){switch(e){case"attributeTypes":this.store.dispatch(nP({value:i}));break;case"attributeDescriptors":this.store.dispatch(tP({value:i}));break;case"blacklist":this.store.dispatch(rP({value:i}));break;case"edges":this.store.dispatch(aP({value:i}));break;case"markedPackages":this.store.dispatch(VE({value:i}));break;default:throw new Error(`Unhandled key: ${e}`)}}mapDynamicSettingToAction(e,i){switch(e){case"areaMetric":this.store.dispatch(Ah({value:i}));break;case"heightMetric":this.store.dispatch(_h({value:i}));break;case"edgeMetric":this.store.dispatch(gh({value:i}));break;case"colorMetric":this.store.dispatch(ld({value:i}));break;case"colorMode":this.store.dispatch(Q0({value:i}));break;case"sortingOption":this.store.dispatch(NE({value:i}));break;case"colorRange":this.store.dispatch(Zd({value:i}));break;case"distributionMetric":this.store.dispatch(h1({value:i}));break;case"focusedNodePath":break;case"searchPattern":this.store.dispatch(tm({value:i}));break;case"margin":this.store.dispatch(z0({value:i}));break;default:throw new Error(`Unhandled key: ${e}`)}}mapAppSettingToAction(e,i){switch(e){case"amountOfTopLabels":case"amountOfEdgePreviews":this.store.dispatch(em({value:i}));break;case"edgeHeight":this.store.dispatch(H0({value:i}));break;case"scaling":this.store.dispatch(V0({value:i}));break;case"hideFlatBuildings":this.store.dispatch(t1({value:i}));break;case"invertHeight":this.store.dispatch(r1({value:i}));break;case"invertArea":this.store.dispatch(n1({value:i}));break;case"isWhiteBackground":this.store.dispatch(o1({value:i}));break;case"mapColors":this.store.dispatch(ph({value:i}));break;case"isPresentationMode":this.store.dispatch(PE({value:i}));break;case"showOnlyBuildingsWithEdges":this.store.dispatch(u1({value:i}));break;case"isEdgeMetricVisible":this.store.dispatch(Z3({value:i}));break;case"resetCameraIfNewFileIsLoaded":this.store.dispatch(OE({value:i}));break;case"isLoadingMap":this.store.dispatch($0({value:i}));break;case"isLoadingFile":this.store.dispatch(Xp({value:i}));break;case"sortingOrderAscending":case"isSearchPanelPinned":break;case"showMetricLabelNameValue":this.store.dispatch(c1({value:i}));break;case"showMetricLabelNodeName":this.store.dispatch(d1({value:i}));break;case"layoutAlgorithm":this.store.dispatch(s1({value:i}));break;case"maxTreeMapFiles":this.store.dispatch(a1({value:i}));break;case"sharpnessMode":this.store.dispatch(l1({value:i}));break;case"experimentalFeaturesEnabled":this.store.dispatch(kE({value:i}));break;case"screenshotToClipboardEnabled":this.store.dispatch(DE({value:i}));break;case"colorLabels":this.store.dispatch(Jy({value:i}));break;case"isColorMetricLinkedToHeightMetric":this.store.dispatch(J3({value:i}));break;case"enableFloorLabels":this.store.dispatch(e1({value:i}));break;default:throw new Error(`Unhandled key: ${e}`)}}buildMissingPropertiesMessage(e){return`${mR(' ',e)}`}loadSampleFiles(){var e=this;return B(function*(){try{const i=yield _P();i&&e.applyAllSettings(i),e.loadFileService.loadFiles([H2,V2])}catch{e.loadFileService.loadFiles([H2,V2])}})()}showErrorDialog(e,i){this.dialog.open(nA,{data:{title:e,message:i}})}createTitleUrlErrorDialog(e){let i="Error";return e.message?i+=` (${e.message})`:e.statusText&&e.status&&(i+=` (${e.status}: ${e.statusText})`),i}setMetricsFromUrl(){const e=this.urlUtils.getParameterByName(iu.areaMetric),i=this.urlUtils.getParameterByName(iu.heightMetric),r=this.urlUtils.getParameterByName(iu.colorMetric),o=this.urlUtils.getParameterByName(iu.edgeMetric),s=this.state.getValue(),a=Gs(s).nodeMetricData,l=Gs(s).edgeMetricData;if(!a)return;const c=new Set(a.map(u=>u.name)),d=l.map(u=>u.name);e&&c.has(e)&&this.store.dispatch(Ah({value:e})),i&&c.has(i)&&this.store.dispatch(_h({value:i})),r&&c.has(r)&&this.store.dispatch(ld({value:r})),o&&d.includes(o)&&this.store.dispatch(gh({value:o}))}setRenderStateFromUrl(){const e=this.urlUtils.getParameterByName("mode"),i=function v_e(n){return n.map(t=>t.file)}(this.state.getValue().files);"Delta"===e&&i.length>=2&&this.store.dispatch(e2({referenceFile:i[0],comparisonFile:i[1]}))}static{this.\u0275fac=function(i){return new(i||n)(ge(Xt),ge(jr),ge(Ws),ge(t_),ge(Ly))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),nCe=(()=>{class n{constructor(){this.version=P1.rE}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-logo"]],decls:5,vars:1,consts:[["id","logo"],["href","https://github.com/MaibornWolff/codecharta","target","_blank","rel","noopener noreferrer"],["src","codeCharta/assets/codecharta_logo.svg","alt","CodeCharta","rel","noopener noreferrer"]],template:function(i,r){1&i&&(P(0,"div",0)(1,"a",1),xe(2,"img",2),H(),P(3,"h2"),we(4),H()()),2&i&&(U(4),cn("Version ",r.version,""))},styles:["#logo[_ngcontent-%COMP%]{display:flex;flex-direction:column;position:absolute;left:2em;bottom:1em;z-index:1}#logo[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{object-fit:contain;max-width:100%;height:auto}#logo[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{color:#5a585a;font-weight:700;font-size:10px;text-align:center;margin:0;z-index:-1}"]})}}return n})();const no=n=>n.appSettings,ZR=Zt(no,n=>n.isLoadingFile),mj=Zt(no,n=>n.sharpnessMode),Aj=1,oCe=2,Dh=3,Q2=0,MCe=1,ECe=2,mm=0,SCe=1,TCe=2,ICe=3,FCe=4,DCe=5,pm=301,fA=302,tw=306,h_=1e3,Ha=1001,ys=1003,os=1006,mA=1008,Am=1009,gm=1014,Ph=1015,f_=1016,pA=1020,jl=1023,AA=1026,m_=1027,gA=3001,fo="srgb",fu="srgb-linear",K2="display-p3",rX="300 es",Rh=2e3;class Lh{addEventListener(t,e){void 0===this._listeners&&(this._listeners={});const i=this._listeners;void 0===i[t]&&(i[t]=[]),-1===i[t].indexOf(e)&&i[t].push(e)}hasEventListener(t,e){if(void 0===this._listeners)return!1;const i=this._listeners;return void 0!==i[t]&&-1!==i[t].indexOf(e)}removeEventListener(t,e){if(void 0===this._listeners)return;const r=this._listeners[t];if(void 0!==r){const o=r.indexOf(e);-1!==o&&r.splice(o,1)}}dispatchEvent(t){if(void 0===this._listeners)return;const i=this._listeners[t.type];if(void 0!==i){t.target=this;const r=i.slice(0);for(let o=0,s=r.length;o>8&255]+fa[n>>16&255]+fa[n>>24&255]+"-"+fa[255&t]+fa[t>>8&255]+"-"+fa[t>>16&15|64]+fa[t>>24&255]+"-"+fa[63&e|128]+fa[e>>8&255]+"-"+fa[e>>16&255]+fa[e>>24&255]+fa[255&i]+fa[i>>8&255]+fa[i>>16&255]+fa[i>>24&255]).toLowerCase()}function Go(n,t,e){return Math.max(t,Math.min(e,n))}function nw(n,t,e){return(1-e)*n+e*t}function m4(n){return!(n&n-1)&&0!==n}function J2(n){return Math.pow(2,Math.floor(Math.log(n)/Math.LN2))}function ll(n,t){switch(t.constructor){case Float32Array:return n;case Uint32Array:return n/4294967295;case Uint16Array:return n/65535;case Uint8Array:return n/255;case Int32Array:return Math.max(n/2147483647,-1);case Int16Array:return Math.max(n/32767,-1);case Int8Array:return Math.max(n/127,-1);default:throw new Error("Invalid component type.")}}function Ni(n,t){switch(t.constructor){case Float32Array:return n;case Uint32Array:return Math.round(4294967295*n);case Uint16Array:return Math.round(65535*n);case Uint8Array:return Math.round(255*n);case Int32Array:return Math.round(2147483647*n);case Int16Array:return Math.round(32767*n);case Int8Array:return Math.round(127*n);default:throw new Error("Invalid component type.")}}const pMe_DEG2RAD=vA;class at{constructor(t=0,e=0){at.prototype.isVector2=!0,this.x=t,this.y=e}get width(){return this.x}set width(t){this.x=t}get height(){return this.y}set height(t){this.y=t}set(t,e){return this.x=t,this.y=e,this}setScalar(t){return this.x=t,this.y=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y)}copy(t){return this.x=t.x,this.y=t.y,this}add(t){return this.x+=t.x,this.y+=t.y,this}addScalar(t){return this.x+=t,this.y+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this}subScalar(t){return this.x-=t,this.y-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this}multiply(t){return this.x*=t.x,this.y*=t.y,this}multiplyScalar(t){return this.x*=t,this.y*=t,this}divide(t){return this.x/=t.x,this.y/=t.y,this}divideScalar(t){return this.multiplyScalar(1/t)}applyMatrix3(t){const e=this.x,i=this.y,r=t.elements;return this.x=r[0]*e+r[3]*i+r[6],this.y=r[1]*e+r[4]*i+r[7],this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this}clampLength(t,e){const i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(t,Math.min(e,i)))}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=Math.trunc(this.x),this.y=Math.trunc(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(t){return this.x*t.x+this.y*t.y}cross(t){return this.x*t.y-this.y*t.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(0===e)return Math.PI/2;const i=this.dot(t)/e;return Math.acos(Go(i,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,i=this.y-t.y;return e*e+i*i}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this}lerpVectors(t,e,i){return this.x=t.x+(e.x-t.x)*i,this.y=t.y+(e.y-t.y)*i,this}equals(t){return t.x===this.x&&t.y===this.y}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this}rotateAround(t,e){const i=Math.cos(e),r=Math.sin(e),o=this.x-t.x,s=this.y-t.y;return this.x=o*i-s*r+t.x,this.y=o*r+s*i+t.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class Ci{constructor(t,e,i,r,o,s,a,l,c){Ci.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],void 0!==t&&this.set(t,e,i,r,o,s,a,l,c)}set(t,e,i,r,o,s,a,l,c){const d=this.elements;return d[0]=t,d[1]=r,d[2]=a,d[3]=e,d[4]=o,d[5]=l,d[6]=i,d[7]=s,d[8]=c,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(t){const e=this.elements,i=t.elements;return e[0]=i[0],e[1]=i[1],e[2]=i[2],e[3]=i[3],e[4]=i[4],e[5]=i[5],e[6]=i[6],e[7]=i[7],e[8]=i[8],this}extractBasis(t,e,i){return t.setFromMatrix3Column(this,0),e.setFromMatrix3Column(this,1),i.setFromMatrix3Column(this,2),this}setFromMatrix4(t){const e=t.elements;return this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]),this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const i=t.elements,r=e.elements,o=this.elements,s=i[0],a=i[3],l=i[6],c=i[1],d=i[4],u=i[7],h=i[2],f=i[5],A=i[8],y=r[0],_=r[3],b=r[6],M=r[1],C=r[4],E=r[7],I=r[2],V=r[5],R=r[8];return o[0]=s*y+a*M+l*I,o[3]=s*_+a*C+l*V,o[6]=s*b+a*E+l*R,o[1]=c*y+d*M+u*I,o[4]=c*_+d*C+u*V,o[7]=c*b+d*E+u*R,o[2]=h*y+f*M+A*I,o[5]=h*_+f*C+A*V,o[8]=h*b+f*E+A*R,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[3]*=t,e[6]*=t,e[1]*=t,e[4]*=t,e[7]*=t,e[2]*=t,e[5]*=t,e[8]*=t,this}determinant(){const t=this.elements,e=t[0],i=t[1],r=t[2],o=t[3],s=t[4],a=t[5],l=t[6],c=t[7],d=t[8];return e*s*d-e*a*c-i*o*d+i*a*l+r*o*c-r*s*l}invert(){const t=this.elements,e=t[0],i=t[1],r=t[2],o=t[3],s=t[4],a=t[5],l=t[6],c=t[7],d=t[8],u=d*s-a*c,h=a*l-d*o,f=c*o-s*l,A=e*u+i*h+r*f;if(0===A)return this.set(0,0,0,0,0,0,0,0,0);const y=1/A;return t[0]=u*y,t[1]=(r*c-d*i)*y,t[2]=(a*i-r*s)*y,t[3]=h*y,t[4]=(d*e-r*l)*y,t[5]=(r*o-a*e)*y,t[6]=f*y,t[7]=(i*l-c*e)*y,t[8]=(s*e-i*o)*y,this}transpose(){let t;const e=this.elements;return t=e[1],e[1]=e[3],e[3]=t,t=e[2],e[2]=e[6],e[6]=t,t=e[5],e[5]=e[7],e[7]=t,this}getNormalMatrix(t){return this.setFromMatrix4(t).invert().transpose()}transposeIntoArray(t){const e=this.elements;return t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],this}setUvTransform(t,e,i,r,o,s,a){const l=Math.cos(o),c=Math.sin(o);return this.set(i*l,i*c,-i*(l*s+c*a)+s+t,-r*c,r*l,-r*(-c*s+l*a)+a+e,0,0,1),this}scale(t,e){return this.premultiply(p4.makeScale(t,e)),this}rotate(t){return this.premultiply(p4.makeRotation(-t)),this}translate(t,e){return this.premultiply(p4.makeTranslation(t,e)),this}makeTranslation(t,e){return t.isVector2?this.set(1,0,t.x,0,1,t.y,0,0,1):this.set(1,0,t,0,1,e,0,0,1),this}makeRotation(t){const e=Math.cos(t),i=Math.sin(t);return this.set(e,-i,0,i,e,0,0,0,1),this}makeScale(t,e){return this.set(t,0,0,0,e,0,0,0,1),this}equals(t){const e=this.elements,i=t.elements;for(let r=0;r<9;r++)if(e[r]!==i[r])return!1;return!0}fromArray(t,e=0){for(let i=0;i<9;i++)this.elements[i]=t[i+e];return this}toArray(t=[],e=0){const i=this.elements;return t[e]=i[0],t[e+1]=i[1],t[e+2]=i[2],t[e+3]=i[3],t[e+4]=i[4],t[e+5]=i[5],t[e+6]=i[6],t[e+7]=i[7],t[e+8]=i[8],t}clone(){return(new this.constructor).fromArray(this.elements)}}const p4=new Ci;function aX(n){for(let t=n.length-1;t>=0;--t)if(n[t]>=65535)return!0;return!1}function iw(n){return document.createElementNS("http://www.w3.org/1999/xhtml",n)}function gMe(){const n=iw("canvas");return n.style.display="block",n}Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array;const lX={};function rw(n){n in lX||(lX[n]=!0,console.warn(n))}function b_(n){return n<.04045?.0773993808*n:Math.pow(.9478672986*n+.0521327014,2.4)}function A4(n){return n<.0031308?12.92*n:1.055*Math.pow(n,.41666)-.055}const _Me=(new Ci).fromArray([.8224621,.0331941,.0170827,.177538,.9668058,.0723974,-1e-7,1e-7,.9105199]),bMe=(new Ci).fromArray([1.2249401,-.0420569,-.0196376,-.2249404,1.0420571,-.0786361,1e-7,0,1.0982735]),wMe={[fu]:n=>n,[fo]:n=>n.convertSRGBToLinear(),[K2]:function vMe(n){return n.convertSRGBToLinear().applyMatrix3(bMe)}},xMe={[fu]:n=>n,[fo]:n=>n.convertLinearToSRGB(),[K2]:function yMe(n){return n.applyMatrix3(_Me).convertLinearToSRGB()}},hd={enabled:!0,get legacyMode(){return console.warn("THREE.ColorManagement: .legacyMode=false renamed to .enabled=true in r150."),!this.enabled},set legacyMode(n){console.warn("THREE.ColorManagement: .legacyMode=false renamed to .enabled=true in r150."),this.enabled=!n},get workingColorSpace(){return fu},set workingColorSpace(n){console.warn("THREE.ColorManagement: .workingColorSpace is readonly.")},convert:function(n,t,e){if(!1===this.enabled||t===e||!t||!e)return n;const i=wMe[t],r=xMe[e];if(void 0===i||void 0===r)throw new Error(`Unsupported color space conversion, "${t}" to "${e}".`);return r(i(n))},fromWorkingColorSpace:function(n,t){return this.convert(n,this.workingColorSpace,t)},toWorkingColorSpace:function(n,t){return this.convert(n,t,this.workingColorSpace)}};let v_;class cX{static getDataURL(t){if(/^data:/i.test(t.src)||typeof HTMLCanvasElement>"u")return t.src;let e;if(t instanceof HTMLCanvasElement)e=t;else{void 0===v_&&(v_=iw("canvas")),v_.width=t.width,v_.height=t.height;const i=v_.getContext("2d");t instanceof ImageData?i.putImageData(t,0,0):i.drawImage(t,0,0,t.width,t.height),e=v_}return e.width>2048||e.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",t),e.toDataURL("image/jpeg",.6)):e.toDataURL("image/png")}static sRGBToLinear(t){if(typeof HTMLImageElement<"u"&&t instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&t instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&t instanceof ImageBitmap){const e=iw("canvas");e.width=t.width,e.height=t.height;const i=e.getContext("2d");i.drawImage(t,0,0,t.width,t.height);const r=i.getImageData(0,0,t.width,t.height),o=r.data;for(let s=0;s{class n extends Lh{constructor(e=n.DEFAULT_IMAGE,i=n.DEFAULT_MAPPING,r=Ha,o=Ha,s=os,a=mA,l=jl,c=Am,d=n.DEFAULT_ANISOTROPY,u=""){super(),this.isTexture=!0,Object.defineProperty(this,"id",{value:MMe++}),this.uuid=Xl(),this.name="",this.source=new y_(e),this.mipmaps=[],this.mapping=i,this.channel=0,this.wrapS=r,this.wrapT=o,this.magFilter=s,this.minFilter=a,this.anisotropy=d,this.format=l,this.internalFormat=null,this.type=c,this.offset=new at(0,0),this.repeat=new at(1,1),this.center=new at(0,0),this.rotation=0,this.matrixAutoUpdate=!0,this.matrix=new Ci,this.generateMipmaps=!0,this.premultiplyAlpha=!1,this.flipY=!0,this.unpackAlignment=4,"string"==typeof u?this.colorSpace=u:(rw("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace=u===gA?fo:""),this.userData={},this.version=0,this.onUpdate=null,this.isRenderTargetTexture=!1,this.needsPMREMUpdate=!1}get image(){return this.source.data}set image(e=null){this.source.data=e}updateMatrix(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)}clone(){return(new this.constructor).copy(this)}copy(e){return this.name=e.name,this.source=e.source,this.mipmaps=e.mipmaps.slice(0),this.mapping=e.mapping,this.channel=e.channel,this.wrapS=e.wrapS,this.wrapT=e.wrapT,this.magFilter=e.magFilter,this.minFilter=e.minFilter,this.anisotropy=e.anisotropy,this.format=e.format,this.internalFormat=e.internalFormat,this.type=e.type,this.offset.copy(e.offset),this.repeat.copy(e.repeat),this.center.copy(e.center),this.rotation=e.rotation,this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrix.copy(e.matrix),this.generateMipmaps=e.generateMipmaps,this.premultiplyAlpha=e.premultiplyAlpha,this.flipY=e.flipY,this.unpackAlignment=e.unpackAlignment,this.colorSpace=e.colorSpace,this.userData=JSON.parse(JSON.stringify(e.userData)),this.needsUpdate=!0,this}toJSON(e){const i=void 0===e||"string"==typeof e;if(!i&&void 0!==e.textures[this.uuid])return e.textures[this.uuid];const r={metadata:{version:4.6,type:"Texture",generator:"Texture.toJSON"},uuid:this.uuid,name:this.name,image:this.source.toJSON(e).uuid,mapping:this.mapping,channel:this.channel,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],format:this.format,internalFormat:this.internalFormat,type:this.type,colorSpace:this.colorSpace,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY,generateMipmaps:this.generateMipmaps,premultiplyAlpha:this.premultiplyAlpha,unpackAlignment:this.unpackAlignment};return Object.keys(this.userData).length>0&&(r.userData=this.userData),i||(e.textures[this.uuid]=r),r}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(e){if(300!==this.mapping)return e;if(e.applyMatrix3(this.matrix),e.x<0||e.x>1)switch(this.wrapS){case h_:e.x=e.x-Math.floor(e.x);break;case Ha:e.x=e.x<0?0:1;break;case 1002:e.x=1===Math.abs(Math.floor(e.x)%2)?Math.ceil(e.x)-e.x:e.x-Math.floor(e.x)}if(e.y<0||e.y>1)switch(this.wrapT){case h_:e.y=e.y-Math.floor(e.y);break;case Ha:e.y=e.y<0?0:1;break;case 1002:e.y=1===Math.abs(Math.floor(e.y)%2)?Math.ceil(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)}get encoding(){return rw("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace===fo?gA:3e3}set encoding(e){rw("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace=e===gA?fo:""}}return n.DEFAULT_IMAGE=null,n.DEFAULT_MAPPING=300,n.DEFAULT_ANISOTROPY=1,n})();class Xr{constructor(t=0,e=0,i=0,r=1){Xr.prototype.isVector4=!0,this.x=t,this.y=e,this.z=i,this.w=r}get width(){return this.z}set width(t){this.z=t}get height(){return this.w}set height(t){this.w=t}set(t,e,i,r){return this.x=t,this.y=e,this.z=i,this.w=r,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this.w=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setW(t){return this.w=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;case 3:this.w=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=void 0!==t.w?t.w:1,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this.w+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this.w=t.w+e.w,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this.w+=t.w*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this.w-=t.w,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this.w-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this.w=t.w-e.w,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this.w*=t.w,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this}applyMatrix4(t){const e=this.x,i=this.y,r=this.z,o=this.w,s=t.elements;return this.x=s[0]*e+s[4]*i+s[8]*r+s[12]*o,this.y=s[1]*e+s[5]*i+s[9]*r+s[13]*o,this.z=s[2]*e+s[6]*i+s[10]*r+s[14]*o,this.w=s[3]*e+s[7]*i+s[11]*r+s[15]*o,this}divideScalar(t){return this.multiplyScalar(1/t)}setAxisAngleFromQuaternion(t){this.w=2*Math.acos(t.w);const e=Math.sqrt(1-t.w*t.w);return e<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=t.x/e,this.y=t.y/e,this.z=t.z/e),this}setAxisAngleFromRotationMatrix(t){let e,i,r,o;const l=t.elements,c=l[0],d=l[4],u=l[8],h=l[1],f=l[5],A=l[9],y=l[2],_=l[6],b=l[10];if(Math.abs(d-h)<.01&&Math.abs(u-y)<.01&&Math.abs(A-_)<.01){if(Math.abs(d+h)<.1&&Math.abs(u+y)<.1&&Math.abs(A+_)<.1&&Math.abs(c+f+b-3)<.1)return this.set(1,0,0,0),this;e=Math.PI;const C=(c+1)/2,E=(f+1)/2,I=(b+1)/2,V=(d+h)/4,R=(u+y)/4,K=(A+_)/4;return C>E&&C>I?C<.01?(i=0,r=.707106781,o=.707106781):(i=Math.sqrt(C),r=V/i,o=R/i):E>I?E<.01?(i=.707106781,r=0,o=.707106781):(r=Math.sqrt(E),i=V/r,o=K/r):I<.01?(i=.707106781,r=.707106781,o=0):(o=Math.sqrt(I),i=R/o,r=K/o),this.set(i,r,o,e),this}let M=Math.sqrt((_-A)*(_-A)+(u-y)*(u-y)+(h-d)*(h-d));return Math.abs(M)<.001&&(M=1),this.x=(_-A)/M,this.y=(u-y)/M,this.z=(h-d)/M,this.w=Math.acos((c+f+b-1)/2),this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this.w=Math.min(this.w,t.w),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this.w=Math.max(this.w,t.w),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this.w=Math.max(t.w,Math.min(e.w,this.w)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this.w=Math.max(t,Math.min(e,this.w)),this}clampLength(t,e){const i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(t,Math.min(e,i)))}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=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this.w=Math.trunc(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z+this.w*t.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this.w+=(t.w-this.w)*e,this}lerpVectors(t,e,i){return this.x=t.x+(e.x-t.x)*i,this.y=t.y+(e.y-t.y)*i,this.z=t.z+(e.z-t.z)*i,this.w=t.w+(e.w-t.w)*i,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z&&t.w===this.w}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this.w=t[e+3],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t[e+3]=this.w,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this.w=t.getW(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}}class EMe extends Lh{constructor(t=1,e=1,i={}){super(),this.isRenderTarget=!0,this.width=t,this.height=e,this.depth=1,this.scissor=new Xr(0,0,t,e),this.scissorTest=!1,this.viewport=new Xr(0,0,t,e);const r={width:t,height:e,depth:1};void 0!==i.encoding&&(rw("THREE.WebGLRenderTarget: option.encoding has been replaced by option.colorSpace."),i.colorSpace=i.encoding===gA?fo:""),this.texture=new cl(r,i.mapping,i.wrapS,i.wrapT,i.magFilter,i.minFilter,i.format,i.type,i.anisotropy,i.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.flipY=!1,this.texture.generateMipmaps=void 0!==i.generateMipmaps&&i.generateMipmaps,this.texture.internalFormat=void 0!==i.internalFormat?i.internalFormat:null,this.texture.minFilter=void 0!==i.minFilter?i.minFilter:os,this.depthBuffer=void 0===i.depthBuffer||i.depthBuffer,this.stencilBuffer=void 0!==i.stencilBuffer&&i.stencilBuffer,this.depthTexture=void 0!==i.depthTexture?i.depthTexture:null,this.samples=void 0!==i.samples?i.samples:0}setSize(t,e,i=1){(this.width!==t||this.height!==e||this.depth!==i)&&(this.width=t,this.height=e,this.depth=i,this.texture.image.width=t,this.texture.image.height=e,this.texture.image.depth=i,this.dispose()),this.viewport.set(0,0,t,e),this.scissor.set(0,0,t,e)}clone(){return(new this.constructor).copy(this)}copy(t){this.width=t.width,this.height=t.height,this.depth=t.depth,this.scissor.copy(t.scissor),this.scissorTest=t.scissorTest,this.viewport.copy(t.viewport),this.texture=t.texture.clone(),this.texture.isRenderTargetTexture=!0;const e=Object.assign({},t.texture.image);return this.texture.source=new y_(e),this.depthBuffer=t.depthBuffer,this.stencilBuffer=t.stencilBuffer,null!==t.depthTexture&&(this.depthTexture=t.depthTexture.clone()),this.samples=t.samples,this}dispose(){this.dispatchEvent({type:"dispose"})}}class Fc extends EMe{constructor(t=1,e=1,i={}){super(t,e,i),this.isWebGLRenderTarget=!0}}class _4 extends cl{constructor(t=null,e=1,i=1,r=1){super(null),this.isDataArrayTexture=!0,this.image={data:t,width:e,height:i,depth:r},this.magFilter=ys,this.minFilter=ys,this.wrapR=Ha,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}class dX extends cl{constructor(t=null,e=1,i=1,r=1){super(null),this.isData3DTexture=!0,this.image={data:t,width:e,height:i,depth:r},this.magFilter=ys,this.minFilter=ys,this.wrapR=Ha,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}class Va{constructor(t=0,e=0,i=0,r=1){this.isQuaternion=!0,this._x=t,this._y=e,this._z=i,this._w=r}static slerpFlat(t,e,i,r,o,s,a){let l=i[r+0],c=i[r+1],d=i[r+2],u=i[r+3];const h=o[s+0],f=o[s+1],A=o[s+2],y=o[s+3];if(0===a)return t[e+0]=l,t[e+1]=c,t[e+2]=d,void(t[e+3]=u);if(1===a)return t[e+0]=h,t[e+1]=f,t[e+2]=A,void(t[e+3]=y);if(u!==y||l!==h||c!==f||d!==A){let _=1-a;const b=l*h+c*f+d*A+u*y,M=b>=0?1:-1,C=1-b*b;if(C>Number.EPSILON){const I=Math.sqrt(C),V=Math.atan2(I,b*M);_=Math.sin(_*V)/I,a=Math.sin(a*V)/I}const E=a*M;if(l=l*_+h*E,c=c*_+f*E,d=d*_+A*E,u=u*_+y*E,_===1-a){const I=1/Math.sqrt(l*l+c*c+d*d+u*u);l*=I,c*=I,d*=I,u*=I}}t[e]=l,t[e+1]=c,t[e+2]=d,t[e+3]=u}static multiplyQuaternionsFlat(t,e,i,r,o,s){const a=i[r],l=i[r+1],c=i[r+2],d=i[r+3],u=o[s],h=o[s+1],f=o[s+2],A=o[s+3];return t[e]=a*A+d*u+l*f-c*h,t[e+1]=l*A+d*h+c*u-a*f,t[e+2]=c*A+d*f+a*h-l*u,t[e+3]=d*A-a*u-l*h-c*f,t}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get w(){return this._w}set w(t){this._w=t,this._onChangeCallback()}set(t,e,i,r){return this._x=t,this._y=e,this._z=i,this._w=r,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(t){return this._x=t.x,this._y=t.y,this._z=t.z,this._w=t.w,this._onChangeCallback(),this}setFromEuler(t,e){const i=t._x,r=t._y,o=t._z,s=t._order,a=Math.cos,l=Math.sin,c=a(i/2),d=a(r/2),u=a(o/2),h=l(i/2),f=l(r/2),A=l(o/2);switch(s){case"XYZ":this._x=h*d*u+c*f*A,this._y=c*f*u-h*d*A,this._z=c*d*A+h*f*u,this._w=c*d*u-h*f*A;break;case"YXZ":this._x=h*d*u+c*f*A,this._y=c*f*u-h*d*A,this._z=c*d*A-h*f*u,this._w=c*d*u+h*f*A;break;case"ZXY":this._x=h*d*u-c*f*A,this._y=c*f*u+h*d*A,this._z=c*d*A+h*f*u,this._w=c*d*u-h*f*A;break;case"ZYX":this._x=h*d*u-c*f*A,this._y=c*f*u+h*d*A,this._z=c*d*A-h*f*u,this._w=c*d*u+h*f*A;break;case"YZX":this._x=h*d*u+c*f*A,this._y=c*f*u+h*d*A,this._z=c*d*A-h*f*u,this._w=c*d*u-h*f*A;break;case"XZY":this._x=h*d*u-c*f*A,this._y=c*f*u-h*d*A,this._z=c*d*A+h*f*u,this._w=c*d*u+h*f*A;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+s)}return!1!==e&&this._onChangeCallback(),this}setFromAxisAngle(t,e){const i=e/2,r=Math.sin(i);return this._x=t.x*r,this._y=t.y*r,this._z=t.z*r,this._w=Math.cos(i),this._onChangeCallback(),this}setFromRotationMatrix(t){const e=t.elements,i=e[0],r=e[4],o=e[8],s=e[1],a=e[5],l=e[9],c=e[2],d=e[6],u=e[10],h=i+a+u;if(h>0){const f=.5/Math.sqrt(h+1);this._w=.25/f,this._x=(d-l)*f,this._y=(o-c)*f,this._z=(s-r)*f}else if(i>a&&i>u){const f=2*Math.sqrt(1+i-a-u);this._w=(d-l)/f,this._x=.25*f,this._y=(r+s)/f,this._z=(o+c)/f}else if(a>u){const f=2*Math.sqrt(1+a-i-u);this._w=(o-c)/f,this._x=(r+s)/f,this._y=.25*f,this._z=(l+d)/f}else{const f=2*Math.sqrt(1+u-i-a);this._w=(s-r)/f,this._x=(o+c)/f,this._y=(l+d)/f,this._z=.25*f}return this._onChangeCallback(),this}setFromUnitVectors(t,e){let i=t.dot(e)+1;return iMath.abs(t.z)?(this._x=-t.y,this._y=t.x,this._z=0,this._w=i):(this._x=0,this._y=-t.z,this._z=t.y,this._w=i)):(this._x=t.y*e.z-t.z*e.y,this._y=t.z*e.x-t.x*e.z,this._z=t.x*e.y-t.y*e.x,this._w=i),this.normalize()}angleTo(t){return 2*Math.acos(Math.abs(Go(this.dot(t),-1,1)))}rotateTowards(t,e){const i=this.angleTo(t);if(0===i)return this;const r=Math.min(1,e/i);return this.slerp(t,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(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let t=this.length();return 0===t?(this._x=0,this._y=0,this._z=0,this._w=1):(t=1/t,this._x=this._x*t,this._y=this._y*t,this._z=this._z*t,this._w=this._w*t),this._onChangeCallback(),this}multiply(t){return this.multiplyQuaternions(this,t)}premultiply(t){return this.multiplyQuaternions(t,this)}multiplyQuaternions(t,e){const i=t._x,r=t._y,o=t._z,s=t._w,a=e._x,l=e._y,c=e._z,d=e._w;return this._x=i*d+s*a+r*c-o*l,this._y=r*d+s*l+o*a-i*c,this._z=o*d+s*c+i*l-r*a,this._w=s*d-i*a-r*l-o*c,this._onChangeCallback(),this}slerp(t,e){if(0===e)return this;if(1===e)return this.copy(t);const i=this._x,r=this._y,o=this._z,s=this._w;let a=s*t._w+i*t._x+r*t._y+o*t._z;if(a<0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,a=-a):this.copy(t),a>=1)return this._w=s,this._x=i,this._y=r,this._z=o,this;const l=1-a*a;if(l<=Number.EPSILON){const f=1-e;return this._w=f*s+e*this._w,this._x=f*i+e*this._x,this._y=f*r+e*this._y,this._z=f*o+e*this._z,this.normalize(),this._onChangeCallback(),this}const c=Math.sqrt(l),d=Math.atan2(c,a),u=Math.sin((1-e)*d)/c,h=Math.sin(e*d)/c;return this._w=s*u+this._w*h,this._x=i*u+this._x*h,this._y=r*u+this._y*h,this._z=o*u+this._z*h,this._onChangeCallback(),this}slerpQuaternions(t,e,i){return this.copy(t).slerp(e,i)}random(){const t=Math.random(),e=Math.sqrt(1-t),i=Math.sqrt(t),r=2*Math.PI*Math.random(),o=2*Math.PI*Math.random();return this.set(e*Math.cos(r),i*Math.sin(o),i*Math.cos(o),e*Math.sin(r))}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w}fromArray(t,e=0){return this._x=t[e],this._y=t[e+1],this._z=t[e+2],this._w=t[e+3],this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._w,t}fromBufferAttribute(t,e){return this._x=t.getX(e),this._y=t.getY(e),this._z=t.getZ(e),this._w=t.getW(e),this}toJSON(){return this.toArray()}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class ie{constructor(t=0,e=0,i=0){ie.prototype.isVector3=!0,this.x=t,this.y=e,this.z=i}set(t,e,i){return void 0===i&&(i=this.z),this.x=t,this.y=e,this.z=i,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this}multiplyVectors(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this}applyEuler(t){return this.applyQuaternion(uX.setFromEuler(t))}applyAxisAngle(t,e){return this.applyQuaternion(uX.setFromAxisAngle(t,e))}applyMatrix3(t){const e=this.x,i=this.y,r=this.z,o=t.elements;return this.x=o[0]*e+o[3]*i+o[6]*r,this.y=o[1]*e+o[4]*i+o[7]*r,this.z=o[2]*e+o[5]*i+o[8]*r,this}applyNormalMatrix(t){return this.applyMatrix3(t).normalize()}applyMatrix4(t){const e=this.x,i=this.y,r=this.z,o=t.elements,s=1/(o[3]*e+o[7]*i+o[11]*r+o[15]);return this.x=(o[0]*e+o[4]*i+o[8]*r+o[12])*s,this.y=(o[1]*e+o[5]*i+o[9]*r+o[13])*s,this.z=(o[2]*e+o[6]*i+o[10]*r+o[14])*s,this}applyQuaternion(t){const e=this.x,i=this.y,r=this.z,o=t.x,s=t.y,a=t.z,l=t.w,c=l*e+s*r-a*i,d=l*i+a*e-o*r,u=l*r+o*i-s*e,h=-o*e-s*i-a*r;return this.x=c*l+h*-o+d*-a-u*-s,this.y=d*l+h*-s+u*-o-c*-a,this.z=u*l+h*-a+c*-s-d*-o,this}project(t){return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix)}unproject(t){return this.applyMatrix4(t.projectionMatrixInverse).applyMatrix4(t.matrixWorld)}transformDirection(t){const e=this.x,i=this.y,r=this.z,o=t.elements;return this.x=o[0]*e+o[4]*i+o[8]*r,this.y=o[1]*e+o[5]*i+o[9]*r,this.z=o[2]*e+o[6]*i+o[10]*r,this.normalize()}divide(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this}divideScalar(t){return this.multiplyScalar(1/t)}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this}clampLength(t,e){const i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(t,Math.min(e,i)))}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=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this}lerpVectors(t,e,i){return this.x=t.x+(e.x-t.x)*i,this.y=t.y+(e.y-t.y)*i,this.z=t.z+(e.z-t.z)*i,this}cross(t){return this.crossVectors(this,t)}crossVectors(t,e){const i=t.x,r=t.y,o=t.z,s=e.x,a=e.y,l=e.z;return this.x=r*l-o*a,this.y=o*s-i*l,this.z=i*a-r*s,this}projectOnVector(t){const e=t.lengthSq();if(0===e)return this.set(0,0,0);const i=t.dot(this)/e;return this.copy(t).multiplyScalar(i)}projectOnPlane(t){return b4.copy(this).projectOnVector(t),this.sub(b4)}reflect(t){return this.sub(b4.copy(t).multiplyScalar(2*this.dot(t)))}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(0===e)return Math.PI/2;const i=this.dot(t)/e;return Math.acos(Go(i,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,i=this.y-t.y,r=this.z-t.z;return e*e+i*i+r*r}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)}setFromSpherical(t){return this.setFromSphericalCoords(t.radius,t.phi,t.theta)}setFromSphericalCoords(t,e,i){const r=Math.sin(e)*t;return this.x=r*Math.sin(i),this.y=Math.cos(e)*t,this.z=r*Math.cos(i),this}setFromCylindrical(t){return this.setFromCylindricalCoords(t.radius,t.theta,t.y)}setFromCylindricalCoords(t,e,i){return this.x=t*Math.sin(e),this.y=i,this.z=t*Math.cos(e),this}setFromMatrixPosition(t){const e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this}setFromMatrixScale(t){const e=this.setFromMatrixColumn(t,0).length(),i=this.setFromMatrixColumn(t,1).length(),r=this.setFromMatrixColumn(t,2).length();return this.x=e,this.y=i,this.z=r,this}setFromMatrixColumn(t,e){return this.fromArray(t.elements,4*e)}setFromMatrix3Column(t,e){return this.fromArray(t.elements,3*e)}setFromEuler(t){return this.x=t._x,this.y=t._y,this.z=t._z,this}setFromColor(t){return this.x=t.r,this.y=t.g,this.z=t.b,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const t=2*(Math.random()-.5),e=Math.random()*Math.PI*2,i=Math.sqrt(1-t**2);return this.x=i*Math.cos(e),this.y=i*Math.sin(e),this.z=t,this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const b4=new ie,uX=new Va;class dl{constructor(t=new ie(1/0,1/0,1/0),e=new ie(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=t,this.max=e}set(t,e){return this.min.copy(t),this.max.copy(e),this}setFromArray(t){this.makeEmpty();for(let e=0,i=t.length;ethis.max.x||t.ythis.max.y||t.zthis.max.z)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y&&this.min.z<=t.min.z&&t.max.z<=this.max.z}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y),(t.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(t){return!(t.max.xthis.max.x||t.max.ythis.max.y||t.max.zthis.max.z)}intersectsSphere(t){return this.clampPoint(t.center,Nh),Nh.distanceToSquared(t.center)<=t.radius*t.radius}intersectsPlane(t){let e,i;return t.normal.x>0?(e=t.normal.x*this.min.x,i=t.normal.x*this.max.x):(e=t.normal.x*this.max.x,i=t.normal.x*this.min.x),t.normal.y>0?(e+=t.normal.y*this.min.y,i+=t.normal.y*this.max.y):(e+=t.normal.y*this.max.y,i+=t.normal.y*this.min.y),t.normal.z>0?(e+=t.normal.z*this.min.z,i+=t.normal.z*this.max.z):(e+=t.normal.z*this.max.z,i+=t.normal.z*this.min.z),e<=-t.constant&&i>=-t.constant}intersectsTriangle(t){if(this.isEmpty())return!1;this.getCenter(ow),eS.subVectors(this.max,ow),x_.subVectors(t.a,ow),C_.subVectors(t.b,ow),M_.subVectors(t.c,ow),_m.subVectors(C_,x_),bm.subVectors(M_,C_),yA.subVectors(x_,M_);let e=[0,-_m.z,_m.y,0,-bm.z,bm.y,0,-yA.z,yA.y,_m.z,0,-_m.x,bm.z,0,-bm.x,yA.z,0,-yA.x,-_m.y,_m.x,0,-bm.y,bm.x,0,-yA.y,yA.x,0];return!(!v4(e,x_,C_,M_,eS)||(e=[1,0,0,0,1,0,0,0,1],!v4(e,x_,C_,M_,eS)))&&(tS.crossVectors(_m,bm),e=[tS.x,tS.y,tS.z],v4(e,x_,C_,M_,eS))}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return this.clampPoint(t,Nh).distanceTo(t)}getBoundingSphere(t){return this.isEmpty()?t.makeEmpty():(this.getCenter(t.center),t.radius=.5*this.getSize(Nh).length()),t}intersect(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}applyMatrix4(t){return this.isEmpty()||(Oh[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t),Oh[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t),Oh[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t),Oh[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t),Oh[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t),Oh[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t),Oh[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t),Oh[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t),this.setFromPoints(Oh)),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}const Oh=[new ie,new ie,new ie,new ie,new ie,new ie,new ie,new ie],Nh=new ie,w_=new dl,x_=new ie,C_=new ie,M_=new ie,_m=new ie,bm=new ie,yA=new ie,ow=new ie,eS=new ie,tS=new ie,wA=new ie;function v4(n,t,e,i,r){for(let o=0,s=n.length-3;o<=s;o+=3){wA.fromArray(n,o);const a=r.x*Math.abs(wA.x)+r.y*Math.abs(wA.y)+r.z*Math.abs(wA.z),l=t.dot(wA),c=e.dot(wA),d=i.dot(wA);if(Math.max(-Math.max(l,c,d),Math.min(l,c,d))>a)return!1}return!0}const SMe=new dl,sw=new ie,y4=new ie;class Kl{constructor(t=new ie,e=-1){this.center=t,this.radius=e}set(t,e){return this.center.copy(t),this.radius=e,this}setFromPoints(t,e){const i=this.center;void 0!==e?i.copy(e):SMe.setFromPoints(t).getCenter(i);let r=0;for(let o=0,s=t.length;othis.radius*this.radius&&(e.sub(this.center).normalize(),e.multiplyScalar(this.radius).add(this.center)),e}getBoundingBox(t){return this.isEmpty()?(t.makeEmpty(),t):(t.set(this.center,this.center),t.expandByScalar(this.radius),t)}applyMatrix4(t){return this.center.applyMatrix4(t),this.radius=this.radius*t.getMaxScaleOnAxis(),this}translate(t){return this.center.add(t),this}expandByPoint(t){if(this.isEmpty())return this.center.copy(t),this.radius=0,this;sw.subVectors(t,this.center);const e=sw.lengthSq();if(e>this.radius*this.radius){const i=Math.sqrt(e),r=.5*(i-this.radius);this.center.addScaledVector(sw,r/i),this.radius+=r}return this}union(t){return t.isEmpty()?this:this.isEmpty()?(this.copy(t),this):(!0===this.center.equals(t.center)?this.radius=Math.max(this.radius,t.radius):(y4.subVectors(t.center,this.center).setLength(t.radius),this.expandByPoint(sw.copy(t.center).add(y4)),this.expandByPoint(sw.copy(t.center).sub(y4))),this)}equals(t){return t.center.equals(this.center)&&t.radius===this.radius}clone(){return(new this.constructor).copy(this)}}const Uh=new ie,w4=new ie,nS=new ie,vm=new ie,x4=new ie,iS=new ie,C4=new ie;class xA{constructor(t=new ie,e=new ie(0,0,-1)){this.origin=t,this.direction=e}set(t,e){return this.origin.copy(t),this.direction.copy(e),this}copy(t){return this.origin.copy(t.origin),this.direction.copy(t.direction),this}at(t,e){return e.copy(this.origin).addScaledVector(this.direction,t)}lookAt(t){return this.direction.copy(t).sub(this.origin).normalize(),this}recast(t){return this.origin.copy(this.at(t,Uh)),this}closestPointToPoint(t,e){e.subVectors(t,this.origin);const i=e.dot(this.direction);return i<0?e.copy(this.origin):e.copy(this.origin).addScaledVector(this.direction,i)}distanceToPoint(t){return Math.sqrt(this.distanceSqToPoint(t))}distanceSqToPoint(t){const e=Uh.subVectors(t,this.origin).dot(this.direction);return e<0?this.origin.distanceToSquared(t):(Uh.copy(this.origin).addScaledVector(this.direction,e),Uh.distanceToSquared(t))}distanceSqToSegment(t,e,i,r){w4.copy(t).add(e).multiplyScalar(.5),nS.copy(e).sub(t).normalize(),vm.copy(this.origin).sub(w4);const o=.5*t.distanceTo(e),s=-this.direction.dot(nS),a=vm.dot(this.direction),l=-vm.dot(nS),c=vm.lengthSq(),d=Math.abs(1-s*s);let u,h,f,A;if(d>0)if(u=s*l-a,h=s*a-l,A=o*d,u>=0)if(h>=-A)if(h<=A){const y=1/d;u*=y,h*=y,f=u*(u+s*h+2*a)+h*(s*u+h+2*l)+c}else h=o,u=Math.max(0,-(s*h+a)),f=-u*u+h*(h+2*l)+c;else h=-o,u=Math.max(0,-(s*h+a)),f=-u*u+h*(h+2*l)+c;else h<=-A?(u=Math.max(0,-(-s*o+a)),h=u>0?-o:Math.min(Math.max(-o,-l),o),f=-u*u+h*(h+2*l)+c):h<=A?(u=0,h=Math.min(Math.max(-o,-l),o),f=h*(h+2*l)+c):(u=Math.max(0,-(s*o+a)),h=u>0?o:Math.min(Math.max(-o,-l),o),f=-u*u+h*(h+2*l)+c);else h=s>0?-o:o,u=Math.max(0,-(s*h+a)),f=-u*u+h*(h+2*l)+c;return i&&i.copy(this.origin).addScaledVector(this.direction,u),r&&r.copy(w4).addScaledVector(nS,h),f}intersectSphere(t,e){Uh.subVectors(t.center,this.origin);const i=Uh.dot(this.direction),r=Uh.dot(Uh)-i*i,o=t.radius*t.radius;if(r>o)return null;const s=Math.sqrt(o-r),a=i-s,l=i+s;return l<0?null:this.at(a<0?l:a,e)}intersectsSphere(t){return this.distanceSqToPoint(t.center)<=t.radius*t.radius}distanceToPlane(t){const e=t.normal.dot(this.direction);if(0===e)return 0===t.distanceToPoint(this.origin)?0:null;const i=-(this.origin.dot(t.normal)+t.constant)/e;return i>=0?i:null}intersectPlane(t,e){const i=this.distanceToPlane(t);return null===i?null:this.at(i,e)}intersectsPlane(t){const e=t.distanceToPoint(this.origin);return 0===e||t.normal.dot(this.direction)*e<0}intersectBox(t,e){let i,r,o,s,a,l;const c=1/this.direction.x,d=1/this.direction.y,u=1/this.direction.z,h=this.origin;return c>=0?(i=(t.min.x-h.x)*c,r=(t.max.x-h.x)*c):(i=(t.max.x-h.x)*c,r=(t.min.x-h.x)*c),d>=0?(o=(t.min.y-h.y)*d,s=(t.max.y-h.y)*d):(o=(t.max.y-h.y)*d,s=(t.min.y-h.y)*d),i>s||o>r||((o>i||isNaN(i))&&(i=o),(s=0?(a=(t.min.z-h.z)*u,l=(t.max.z-h.z)*u):(a=(t.max.z-h.z)*u,l=(t.min.z-h.z)*u),i>l||a>r)||((a>i||i!=i)&&(i=a),(l=0?i:r,e)}intersectsBox(t){return null!==this.intersectBox(t,Uh)}intersectTriangle(t,e,i,r,o){x4.subVectors(e,t),iS.subVectors(i,t),C4.crossVectors(x4,iS);let a,s=this.direction.dot(C4);if(s>0){if(r)return null;a=1}else{if(!(s<0))return null;a=-1,s=-s}vm.subVectors(this.origin,t);const l=a*this.direction.dot(iS.crossVectors(vm,iS));if(l<0)return null;const c=a*this.direction.dot(x4.cross(vm));if(c<0||l+c>s)return null;const d=-a*vm.dot(C4);return d<0?null:this.at(d/s,o)}applyMatrix4(t){return this.origin.applyMatrix4(t),this.direction.transformDirection(t),this}equals(t){return t.origin.equals(this.origin)&&t.direction.equals(this.direction)}clone(){return(new this.constructor).copy(this)}}class Pi{constructor(t,e,i,r,o,s,a,l,c,d,u,h,f,A,y,_){Pi.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],void 0!==t&&this.set(t,e,i,r,o,s,a,l,c,d,u,h,f,A,y,_)}set(t,e,i,r,o,s,a,l,c,d,u,h,f,A,y,_){const b=this.elements;return b[0]=t,b[4]=e,b[8]=i,b[12]=r,b[1]=o,b[5]=s,b[9]=a,b[13]=l,b[2]=c,b[6]=d,b[10]=u,b[14]=h,b[3]=f,b[7]=A,b[11]=y,b[15]=_,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 Pi).fromArray(this.elements)}copy(t){const e=this.elements,i=t.elements;return e[0]=i[0],e[1]=i[1],e[2]=i[2],e[3]=i[3],e[4]=i[4],e[5]=i[5],e[6]=i[6],e[7]=i[7],e[8]=i[8],e[9]=i[9],e[10]=i[10],e[11]=i[11],e[12]=i[12],e[13]=i[13],e[14]=i[14],e[15]=i[15],this}copyPosition(t){const e=this.elements,i=t.elements;return e[12]=i[12],e[13]=i[13],e[14]=i[14],this}setFromMatrix3(t){const e=t.elements;return this.set(e[0],e[3],e[6],0,e[1],e[4],e[7],0,e[2],e[5],e[8],0,0,0,0,1),this}extractBasis(t,e,i){return t.setFromMatrixColumn(this,0),e.setFromMatrixColumn(this,1),i.setFromMatrixColumn(this,2),this}makeBasis(t,e,i){return this.set(t.x,e.x,i.x,0,t.y,e.y,i.y,0,t.z,e.z,i.z,0,0,0,0,1),this}extractRotation(t){const e=this.elements,i=t.elements,r=1/E_.setFromMatrixColumn(t,0).length(),o=1/E_.setFromMatrixColumn(t,1).length(),s=1/E_.setFromMatrixColumn(t,2).length();return e[0]=i[0]*r,e[1]=i[1]*r,e[2]=i[2]*r,e[3]=0,e[4]=i[4]*o,e[5]=i[5]*o,e[6]=i[6]*o,e[7]=0,e[8]=i[8]*s,e[9]=i[9]*s,e[10]=i[10]*s,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromEuler(t){const e=this.elements,i=t.x,r=t.y,o=t.z,s=Math.cos(i),a=Math.sin(i),l=Math.cos(r),c=Math.sin(r),d=Math.cos(o),u=Math.sin(o);if("XYZ"===t.order){const h=s*d,f=s*u,A=a*d,y=a*u;e[0]=l*d,e[4]=-l*u,e[8]=c,e[1]=f+A*c,e[5]=h-y*c,e[9]=-a*l,e[2]=y-h*c,e[6]=A+f*c,e[10]=s*l}else if("YXZ"===t.order){const h=l*d,f=l*u,A=c*d,y=c*u;e[0]=h+y*a,e[4]=A*a-f,e[8]=s*c,e[1]=s*u,e[5]=s*d,e[9]=-a,e[2]=f*a-A,e[6]=y+h*a,e[10]=s*l}else if("ZXY"===t.order){const h=l*d,f=l*u,A=c*d,y=c*u;e[0]=h-y*a,e[4]=-s*u,e[8]=A+f*a,e[1]=f+A*a,e[5]=s*d,e[9]=y-h*a,e[2]=-s*c,e[6]=a,e[10]=s*l}else if("ZYX"===t.order){const h=s*d,f=s*u,A=a*d,y=a*u;e[0]=l*d,e[4]=A*c-f,e[8]=h*c+y,e[1]=l*u,e[5]=y*c+h,e[9]=f*c-A,e[2]=-c,e[6]=a*l,e[10]=s*l}else if("YZX"===t.order){const h=s*l,f=s*c,A=a*l,y=a*c;e[0]=l*d,e[4]=y-h*u,e[8]=A*u+f,e[1]=u,e[5]=s*d,e[9]=-a*d,e[2]=-c*d,e[6]=f*u+A,e[10]=h-y*u}else if("XZY"===t.order){const h=s*l,f=s*c,A=a*l,y=a*c;e[0]=l*d,e[4]=-u,e[8]=c*d,e[1]=h*u+y,e[5]=s*d,e[9]=f*u-A,e[2]=A*u-f,e[6]=a*d,e[10]=y*u+h}return e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromQuaternion(t){return this.compose(TMe,t,IMe)}lookAt(t,e,i){const r=this.elements;return Yl.subVectors(t,e),0===Yl.lengthSq()&&(Yl.z=1),Yl.normalize(),ym.crossVectors(i,Yl),0===ym.lengthSq()&&(1===Math.abs(i.z)?Yl.x+=1e-4:Yl.z+=1e-4,Yl.normalize(),ym.crossVectors(i,Yl)),ym.normalize(),rS.crossVectors(Yl,ym),r[0]=ym.x,r[4]=rS.x,r[8]=Yl.x,r[1]=ym.y,r[5]=rS.y,r[9]=Yl.y,r[2]=ym.z,r[6]=rS.z,r[10]=Yl.z,this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const i=t.elements,r=e.elements,o=this.elements,s=i[0],a=i[4],l=i[8],c=i[12],d=i[1],u=i[5],h=i[9],f=i[13],A=i[2],y=i[6],_=i[10],b=i[14],M=i[3],C=i[7],E=i[11],I=i[15],V=r[0],R=r[4],K=r[8],k=r[12],W=r[1],ue=r[5],Se=r[9],Me=r[13],Z=r[2],ve=r[6],re=r[10],oe=r[14],ae=r[3],Ce=r[7],Qe=r[11],Ie=r[15];return o[0]=s*V+a*W+l*Z+c*ae,o[4]=s*R+a*ue+l*ve+c*Ce,o[8]=s*K+a*Se+l*re+c*Qe,o[12]=s*k+a*Me+l*oe+c*Ie,o[1]=d*V+u*W+h*Z+f*ae,o[5]=d*R+u*ue+h*ve+f*Ce,o[9]=d*K+u*Se+h*re+f*Qe,o[13]=d*k+u*Me+h*oe+f*Ie,o[2]=A*V+y*W+_*Z+b*ae,o[6]=A*R+y*ue+_*ve+b*Ce,o[10]=A*K+y*Se+_*re+b*Qe,o[14]=A*k+y*Me+_*oe+b*Ie,o[3]=M*V+C*W+E*Z+I*ae,o[7]=M*R+C*ue+E*ve+I*Ce,o[11]=M*K+C*Se+E*re+I*Qe,o[15]=M*k+C*Me+E*oe+I*Ie,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[4]*=t,e[8]*=t,e[12]*=t,e[1]*=t,e[5]*=t,e[9]*=t,e[13]*=t,e[2]*=t,e[6]*=t,e[10]*=t,e[14]*=t,e[3]*=t,e[7]*=t,e[11]*=t,e[15]*=t,this}determinant(){const t=this.elements,e=t[0],i=t[4],r=t[8],o=t[12],s=t[1],a=t[5],l=t[9],c=t[13],d=t[2],u=t[6],h=t[10],f=t[14];return t[3]*(+o*l*u-r*c*u-o*a*h+i*c*h+r*a*f-i*l*f)+t[7]*(+e*l*f-e*c*h+o*s*h-r*s*f+r*c*d-o*l*d)+t[11]*(+e*c*u-e*a*f-o*s*u+i*s*f+o*a*d-i*c*d)+t[15]*(-r*a*d-e*l*u+e*a*h+r*s*u-i*s*h+i*l*d)}transpose(){const t=this.elements;let e;return e=t[1],t[1]=t[4],t[4]=e,e=t[2],t[2]=t[8],t[8]=e,e=t[6],t[6]=t[9],t[9]=e,e=t[3],t[3]=t[12],t[12]=e,e=t[7],t[7]=t[13],t[13]=e,e=t[11],t[11]=t[14],t[14]=e,this}setPosition(t,e,i){const r=this.elements;return t.isVector3?(r[12]=t.x,r[13]=t.y,r[14]=t.z):(r[12]=t,r[13]=e,r[14]=i),this}invert(){const t=this.elements,e=t[0],i=t[1],r=t[2],o=t[3],s=t[4],a=t[5],l=t[6],c=t[7],d=t[8],u=t[9],h=t[10],f=t[11],A=t[12],y=t[13],_=t[14],b=t[15],M=u*_*c-y*h*c+y*l*f-a*_*f-u*l*b+a*h*b,C=A*h*c-d*_*c-A*l*f+s*_*f+d*l*b-s*h*b,E=d*y*c-A*u*c+A*a*f-s*y*f-d*a*b+s*u*b,I=A*u*l-d*y*l-A*a*h+s*y*h+d*a*_-s*u*_,V=e*M+i*C+r*E+o*I;if(0===V)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const R=1/V;return t[0]=M*R,t[1]=(y*h*o-u*_*o-y*r*f+i*_*f+u*r*b-i*h*b)*R,t[2]=(a*_*o-y*l*o+y*r*c-i*_*c-a*r*b+i*l*b)*R,t[3]=(u*l*o-a*h*o-u*r*c+i*h*c+a*r*f-i*l*f)*R,t[4]=C*R,t[5]=(d*_*o-A*h*o+A*r*f-e*_*f-d*r*b+e*h*b)*R,t[6]=(A*l*o-s*_*o-A*r*c+e*_*c+s*r*b-e*l*b)*R,t[7]=(s*h*o-d*l*o+d*r*c-e*h*c-s*r*f+e*l*f)*R,t[8]=E*R,t[9]=(A*u*o-d*y*o-A*i*f+e*y*f+d*i*b-e*u*b)*R,t[10]=(s*y*o-A*a*o+A*i*c-e*y*c-s*i*b+e*a*b)*R,t[11]=(d*a*o-s*u*o-d*i*c+e*u*c+s*i*f-e*a*f)*R,t[12]=I*R,t[13]=(d*y*r-A*u*r+A*i*h-e*y*h-d*i*_+e*u*_)*R,t[14]=(A*a*r-s*y*r-A*i*l+e*y*l+s*i*_-e*a*_)*R,t[15]=(s*u*r-d*a*r+d*i*l-e*u*l-s*i*h+e*a*h)*R,this}scale(t){const e=this.elements,i=t.x,r=t.y,o=t.z;return e[0]*=i,e[4]*=r,e[8]*=o,e[1]*=i,e[5]*=r,e[9]*=o,e[2]*=i,e[6]*=r,e[10]*=o,e[3]*=i,e[7]*=r,e[11]*=o,this}getMaxScaleOnAxis(){const t=this.elements;return Math.sqrt(Math.max(t[0]*t[0]+t[1]*t[1]+t[2]*t[2],t[4]*t[4]+t[5]*t[5]+t[6]*t[6],t[8]*t[8]+t[9]*t[9]+t[10]*t[10]))}makeTranslation(t,e,i){return t.isVector3?this.set(1,0,0,t.x,0,1,0,t.y,0,0,1,t.z,0,0,0,1):this.set(1,0,0,t,0,1,0,e,0,0,1,i,0,0,0,1),this}makeRotationX(t){const e=Math.cos(t),i=Math.sin(t);return this.set(1,0,0,0,0,e,-i,0,0,i,e,0,0,0,0,1),this}makeRotationY(t){const e=Math.cos(t),i=Math.sin(t);return this.set(e,0,i,0,0,1,0,0,-i,0,e,0,0,0,0,1),this}makeRotationZ(t){const e=Math.cos(t),i=Math.sin(t);return this.set(e,-i,0,0,i,e,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(t,e){const i=Math.cos(e),r=Math.sin(e),o=1-i,s=t.x,a=t.y,l=t.z,c=o*s,d=o*a;return this.set(c*s+i,c*a-r*l,c*l+r*a,0,c*a+r*l,d*a+i,d*l-r*s,0,c*l-r*a,d*l+r*s,o*l*l+i,0,0,0,0,1),this}makeScale(t,e,i){return this.set(t,0,0,0,0,e,0,0,0,0,i,0,0,0,0,1),this}makeShear(t,e,i,r,o,s){return this.set(1,i,o,0,t,1,s,0,e,r,1,0,0,0,0,1),this}compose(t,e,i){const r=this.elements,o=e._x,s=e._y,a=e._z,l=e._w,c=o+o,d=s+s,u=a+a,h=o*c,f=o*d,A=o*u,y=s*d,_=s*u,b=a*u,M=l*c,C=l*d,E=l*u,I=i.x,V=i.y,R=i.z;return r[0]=(1-(y+b))*I,r[1]=(f+E)*I,r[2]=(A-C)*I,r[3]=0,r[4]=(f-E)*V,r[5]=(1-(h+b))*V,r[6]=(_+M)*V,r[7]=0,r[8]=(A+C)*R,r[9]=(_-M)*R,r[10]=(1-(h+y))*R,r[11]=0,r[12]=t.x,r[13]=t.y,r[14]=t.z,r[15]=1,this}decompose(t,e,i){const r=this.elements;let o=E_.set(r[0],r[1],r[2]).length();const s=E_.set(r[4],r[5],r[6]).length(),a=E_.set(r[8],r[9],r[10]).length();this.determinant()<0&&(o=-o),t.x=r[12],t.y=r[13],t.z=r[14],fd.copy(this);const c=1/o,d=1/s,u=1/a;return fd.elements[0]*=c,fd.elements[1]*=c,fd.elements[2]*=c,fd.elements[4]*=d,fd.elements[5]*=d,fd.elements[6]*=d,fd.elements[8]*=u,fd.elements[9]*=u,fd.elements[10]*=u,e.setFromRotationMatrix(fd),i.x=o,i.y=s,i.z=a,this}makePerspective(t,e,i,r,o,s,a=Rh){const l=this.elements,c=2*o/(e-t),d=2*o/(i-r),u=(e+t)/(e-t),h=(i+r)/(i-r);let f,A;if(a===Rh)f=-(s+o)/(s-o),A=-2*s*o/(s-o);else{if(2001!==a)throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+a);f=-s/(s-o),A=-s*o/(s-o)}return l[0]=c,l[4]=0,l[8]=u,l[12]=0,l[1]=0,l[5]=d,l[9]=h,l[13]=0,l[2]=0,l[6]=0,l[10]=f,l[14]=A,l[3]=0,l[7]=0,l[11]=-1,l[15]=0,this}makeOrthographic(t,e,i,r,o,s,a=Rh){const l=this.elements,c=1/(e-t),d=1/(i-r),u=1/(s-o),h=(e+t)*c,f=(i+r)*d;let A,y;if(a===Rh)A=(s+o)*u,y=-2*u;else{if(2001!==a)throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+a);A=o*u,y=-1*u}return l[0]=2*c,l[4]=0,l[8]=0,l[12]=-h,l[1]=0,l[5]=2*d,l[9]=0,l[13]=-f,l[2]=0,l[6]=0,l[10]=y,l[14]=-A,l[3]=0,l[7]=0,l[11]=0,l[15]=1,this}equals(t){const e=this.elements,i=t.elements;for(let r=0;r<16;r++)if(e[r]!==i[r])return!1;return!0}fromArray(t,e=0){for(let i=0;i<16;i++)this.elements[i]=t[i+e];return this}toArray(t=[],e=0){const i=this.elements;return t[e]=i[0],t[e+1]=i[1],t[e+2]=i[2],t[e+3]=i[3],t[e+4]=i[4],t[e+5]=i[5],t[e+6]=i[6],t[e+7]=i[7],t[e+8]=i[8],t[e+9]=i[9],t[e+10]=i[10],t[e+11]=i[11],t[e+12]=i[12],t[e+13]=i[13],t[e+14]=i[14],t[e+15]=i[15],t}}const E_=new ie,fd=new Pi,TMe=new ie(0,0,0),IMe=new ie(1,1,1),ym=new ie,rS=new ie,Yl=new ie,hX=new Pi,fX=new Va;let FMe=(()=>{class n{constructor(e=0,i=0,r=0,o=n.DEFAULT_ORDER){this.isEuler=!0,this._x=e,this._y=i,this._z=r,this._order=o}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,i,r,o=this._order){return this._x=e,this._y=i,this._z=r,this._order=o,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,i=this._order,r=!0){const o=e.elements,s=o[0],a=o[4],l=o[8],c=o[1],d=o[5],u=o[9],h=o[2],f=o[6],A=o[10];switch(i){case"XYZ":this._y=Math.asin(Go(l,-1,1)),Math.abs(l)<.9999999?(this._x=Math.atan2(-u,A),this._z=Math.atan2(-a,s)):(this._x=Math.atan2(f,d),this._z=0);break;case"YXZ":this._x=Math.asin(-Go(u,-1,1)),Math.abs(u)<.9999999?(this._y=Math.atan2(l,A),this._z=Math.atan2(c,d)):(this._y=Math.atan2(-h,s),this._z=0);break;case"ZXY":this._x=Math.asin(Go(f,-1,1)),Math.abs(f)<.9999999?(this._y=Math.atan2(-h,A),this._z=Math.atan2(-a,d)):(this._y=0,this._z=Math.atan2(c,s));break;case"ZYX":this._y=Math.asin(-Go(h,-1,1)),Math.abs(h)<.9999999?(this._x=Math.atan2(f,A),this._z=Math.atan2(c,s)):(this._x=0,this._z=Math.atan2(-a,d));break;case"YZX":this._z=Math.asin(Go(c,-1,1)),Math.abs(c)<.9999999?(this._x=Math.atan2(-u,d),this._y=Math.atan2(-h,s)):(this._x=0,this._y=Math.atan2(l,A));break;case"XZY":this._z=Math.asin(-Go(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(f,d),this._y=Math.atan2(l,s)):(this._x=Math.atan2(-u,A),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+i)}return this._order=i,!0===r&&this._onChangeCallback(),this}setFromQuaternion(e,i,r){return hX.makeRotationFromQuaternion(e),this.setFromRotationMatrix(hX,i,r)}setFromVector3(e,i=this._order){return this.set(e.x,e.y,e.z,i)}reorder(e){return fX.setFromEuler(this),this.setFromQuaternion(fX,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=[],i=0){return e[i]=this._x,e[i+1]=this._y,e[i+2]=this._z,e[i+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}}return n.DEFAULT_ORDER="XYZ",n})();class M4{constructor(){this.mask=1}set(t){this.mask=1<>>0}enable(t){this.mask|=1<{class n extends Lh{constructor(){super(),this.isObject3D=!0,Object.defineProperty(this,"id",{value:DMe++}),this.uuid=Xl(),this.name="",this.type="Object3D",this.parent=null,this.children=[],this.up=n.DEFAULT_UP.clone();const e=new ie,i=new FMe,r=new Va,o=new ie(1,1,1);i._onChange(function s(){r.setFromEuler(i,!1)}),r._onChange(function a(){i.setFromQuaternion(r,void 0,!1)}),Object.defineProperties(this,{position:{configurable:!0,enumerable:!0,value:e},rotation:{configurable:!0,enumerable:!0,value:i},quaternion:{configurable:!0,enumerable:!0,value:r},scale:{configurable:!0,enumerable:!0,value:o},modelViewMatrix:{value:new Pi},normalMatrix:{value:new Ci}}),this.matrix=new Pi,this.matrixWorld=new Pi,this.matrixAutoUpdate=n.DEFAULT_MATRIX_AUTO_UPDATE,this.matrixWorldNeedsUpdate=!1,this.matrixWorldAutoUpdate=n.DEFAULT_MATRIX_WORLD_AUTO_UPDATE,this.layers=new M4,this.visible=!0,this.castShadow=!1,this.receiveShadow=!1,this.frustumCulled=!0,this.renderOrder=0,this.animations=[],this.userData={}}onBeforeRender(){}onAfterRender(){}applyMatrix4(e){this.matrixAutoUpdate&&this.updateMatrix(),this.matrix.premultiply(e),this.matrix.decompose(this.position,this.quaternion,this.scale)}applyQuaternion(e){return this.quaternion.premultiply(e),this}setRotationFromAxisAngle(e,i){this.quaternion.setFromAxisAngle(e,i)}setRotationFromEuler(e){this.quaternion.setFromEuler(e,!0)}setRotationFromMatrix(e){this.quaternion.setFromRotationMatrix(e)}setRotationFromQuaternion(e){this.quaternion.copy(e)}rotateOnAxis(e,i){return S_.setFromAxisAngle(e,i),this.quaternion.multiply(S_),this}rotateOnWorldAxis(e,i){return S_.setFromAxisAngle(e,i),this.quaternion.premultiply(S_),this}rotateX(e){return this.rotateOnAxis(pX,e)}rotateY(e){return this.rotateOnAxis(AX,e)}rotateZ(e){return this.rotateOnAxis(gX,e)}translateOnAxis(e,i){return mX.copy(e).applyQuaternion(this.quaternion),this.position.add(mX.multiplyScalar(i)),this}translateX(e){return this.translateOnAxis(pX,e)}translateY(e){return this.translateOnAxis(AX,e)}translateZ(e){return this.translateOnAxis(gX,e)}localToWorld(e){return this.updateWorldMatrix(!0,!1),e.applyMatrix4(this.matrixWorld)}worldToLocal(e){return this.updateWorldMatrix(!0,!1),e.applyMatrix4(Hh.copy(this.matrixWorld).invert())}lookAt(e,i,r){e.isVector3?oS.copy(e):oS.set(e,i,r);const o=this.parent;this.updateWorldMatrix(!0,!1),aw.setFromMatrixPosition(this.matrixWorld),this.isCamera||this.isLight?Hh.lookAt(aw,oS,this.up):Hh.lookAt(oS,aw,this.up),this.quaternion.setFromRotationMatrix(Hh),o&&(Hh.extractRotation(o.matrixWorld),S_.setFromRotationMatrix(Hh),this.quaternion.premultiply(S_.invert()))}add(e){if(arguments.length>1){for(let i=0;i1){for(let r=0;r0&&(r=r.concat(a))}return r}getWorldPosition(e){return this.updateWorldMatrix(!0,!1),e.setFromMatrixPosition(this.matrixWorld)}getWorldQuaternion(e){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(aw,e,kMe),e}getWorldScale(e){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(aw,BMe,e),e}getWorldDirection(e){this.updateWorldMatrix(!0,!1);const i=this.matrixWorld.elements;return e.set(i[8],i[9],i[10]).normalize()}raycast(){}traverse(e){e(this);const i=this.children;for(let r=0,o=i.length;r0&&(o.userData=this.userData),o.layers=this.layers.mask,o.matrix=this.matrix.toArray(),o.up=this.up.toArray(),!1===this.matrixAutoUpdate&&(o.matrixAutoUpdate=!1),this.isInstancedMesh&&(o.type="InstancedMesh",o.count=this.count,o.instanceMatrix=this.instanceMatrix.toJSON(),null!==this.instanceColor&&(o.instanceColor=this.instanceColor.toJSON())),this.isScene)this.background&&(this.background.isColor?o.background=this.background.toJSON():this.background.isTexture&&(o.background=this.background.toJSON(e).uuid)),this.environment&&this.environment.isTexture&&!0!==this.environment.isRenderTargetTexture&&(o.environment=this.environment.toJSON(e).uuid);else if(this.isMesh||this.isLine||this.isPoints){o.geometry=s(e.geometries,this.geometry);const l=this.geometry.parameters;if(void 0!==l&&void 0!==l.shapes){const c=l.shapes;if(Array.isArray(c))for(let d=0,u=c.length;d0){o.children=[];for(let l=0;l0){o.animations=[];for(let l=0;l0&&(r.geometries=l),c.length>0&&(r.materials=c),d.length>0&&(r.textures=d),u.length>0&&(r.images=u),h.length>0&&(r.shapes=h),f.length>0&&(r.skeletons=f),A.length>0&&(r.animations=A),y.length>0&&(r.nodes=y)}return r.object=o,r;function a(l){const c=[];for(const d in l){const u=l[d];delete u.metadata,c.push(u)}return c}}clone(e){return(new this.constructor).copy(this,e)}copy(e,i=!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.matrixWorldAutoUpdate=e.matrixWorldAutoUpdate,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.animations=e.animations.slice(),this.userData=JSON.parse(JSON.stringify(e.userData)),!0===i)for(let r=0;r0?r.multiplyScalar(1/Math.sqrt(o)):r.set(0,0,0)}static getBarycoord(t,e,i,r,o){md.subVectors(r,e),Vh.subVectors(i,e),E4.subVectors(t,e);const s=md.dot(md),a=md.dot(Vh),l=md.dot(E4),c=Vh.dot(Vh),d=Vh.dot(E4),u=s*c-a*a;if(0===u)return o.set(-2,-1,-1);const h=1/u,f=(c*l-a*d)*h,A=(s*d-a*l)*h;return o.set(1-f-A,A,f)}static containsPoint(t,e,i,r){return this.getBarycoord(t,e,i,r,Qh),Qh.x>=0&&Qh.y>=0&&Qh.x+Qh.y<=1}static getUV(t,e,i,r,o,s,a,l){return!1===sS&&(console.warn("THREE.Triangle.getUV() has been renamed to THREE.Triangle.getInterpolation()."),sS=!0),this.getInterpolation(t,e,i,r,o,s,a,l)}static getInterpolation(t,e,i,r,o,s,a,l){return this.getBarycoord(t,e,i,r,Qh),l.setScalar(0),l.addScaledVector(o,Qh.x),l.addScaledVector(s,Qh.y),l.addScaledVector(a,Qh.z),l}static isFrontFacing(t,e,i,r){return md.subVectors(i,e),Vh.subVectors(t,e),md.cross(Vh).dot(r)<0}set(t,e,i){return this.a.copy(t),this.b.copy(e),this.c.copy(i),this}setFromPointsAndIndices(t,e,i,r){return this.a.copy(t[e]),this.b.copy(t[i]),this.c.copy(t[r]),this}setFromAttributeAndIndices(t,e,i,r){return this.a.fromBufferAttribute(t,e),this.b.fromBufferAttribute(t,i),this.c.fromBufferAttribute(t,r),this}clone(){return(new this.constructor).copy(this)}copy(t){return this.a.copy(t.a),this.b.copy(t.b),this.c.copy(t.c),this}getArea(){return md.subVectors(this.c,this.b),Vh.subVectors(this.a,this.b),.5*md.cross(Vh).length()}getMidpoint(t){return t.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(t){return Zl.getNormal(this.a,this.b,this.c,t)}getPlane(t){return t.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(t,e){return Zl.getBarycoord(t,this.a,this.b,this.c,e)}getUV(t,e,i,r,o){return!1===sS&&(console.warn("THREE.Triangle.getUV() has been renamed to THREE.Triangle.getInterpolation()."),sS=!0),Zl.getInterpolation(t,this.a,this.b,this.c,e,i,r,o)}getInterpolation(t,e,i,r,o){return Zl.getInterpolation(t,this.a,this.b,this.c,e,i,r,o)}containsPoint(t){return Zl.containsPoint(t,this.a,this.b,this.c)}isFrontFacing(t){return Zl.isFrontFacing(this.a,this.b,this.c,t)}intersectsBox(t){return t.intersectsTriangle(this)}closestPointToPoint(t,e){const i=this.a,r=this.b,o=this.c;let s,a;T_.subVectors(r,i),I_.subVectors(o,i),S4.subVectors(t,i);const l=T_.dot(S4),c=I_.dot(S4);if(l<=0&&c<=0)return e.copy(i);T4.subVectors(t,r);const d=T_.dot(T4),u=I_.dot(T4);if(d>=0&&u<=d)return e.copy(r);const h=l*u-d*c;if(h<=0&&l>=0&&d<=0)return s=l/(l-d),e.copy(i).addScaledVector(T_,s);I4.subVectors(t,o);const f=T_.dot(I4),A=I_.dot(I4);if(A>=0&&f<=A)return e.copy(o);const y=f*c-l*A;if(y<=0&&c>=0&&A<=0)return a=c/(c-A),e.copy(i).addScaledVector(I_,a);const _=d*A-f*u;if(_<=0&&u-d>=0&&f-A>=0)return _X.subVectors(o,r),a=(u-d)/(u-d+(f-A)),e.copy(r).addScaledVector(_X,a);const b=1/(_+y+h);return s=y*b,a=h*b,e.copy(i).addScaledVector(T_,s).addScaledVector(I_,a)}equals(t){return t.a.equals(this.a)&&t.b.equals(this.b)&&t.c.equals(this.c)}}let LMe=0;class Qa extends Lh{constructor(){super(),this.isMaterial=!0,Object.defineProperty(this,"id",{value:LMe++}),this.uuid=Xl(),this.name="",this.type="Material",this.blending=1,this.side=0,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.alphaHash=!1,this.blendSrc=204,this.blendDst=205,this.blendEquation=100,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.depthFunc=3,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=519,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=7680,this.stencilZFail=7680,this.stencilZPass=7680,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.forceSinglePass=!1,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0,this._alphaTest=0}get alphaTest(){return this._alphaTest}set alphaTest(t){this._alphaTest>0!=t>0&&this.version++,this._alphaTest=t}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(t){if(void 0!==t)for(const e in t){const i=t[e];if(void 0===i){console.warn(`THREE.Material: parameter '${e}' has value of undefined.`);continue}const r=this[e];void 0!==r?r&&r.isColor?r.set(i):r&&r.isVector3&&i&&i.isVector3?r.copy(i):this[e]=i:console.warn(`THREE.Material: '${e}' is not a property of THREE.${this.type}.`)}}toJSON(t){const e=void 0===t||"string"==typeof t;e&&(t={textures:{},images:{}});const i={metadata:{version:4.6,type:"Material",generator:"Material.toJSON"}};function r(o){const s=[];for(const a in o){const l=o[a];delete l.metadata,s.push(l)}return s}if(i.uuid=this.uuid,i.type=this.type,""!==this.name&&(i.name=this.name),this.color&&this.color.isColor&&(i.color=this.color.getHex()),void 0!==this.roughness&&(i.roughness=this.roughness),void 0!==this.metalness&&(i.metalness=this.metalness),void 0!==this.sheen&&(i.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(i.sheenColor=this.sheenColor.getHex()),void 0!==this.sheenRoughness&&(i.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(i.emissive=this.emissive.getHex()),this.emissiveIntensity&&1!==this.emissiveIntensity&&(i.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(i.specular=this.specular.getHex()),void 0!==this.specularIntensity&&(i.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(i.specularColor=this.specularColor.getHex()),void 0!==this.shininess&&(i.shininess=this.shininess),void 0!==this.clearcoat&&(i.clearcoat=this.clearcoat),void 0!==this.clearcoatRoughness&&(i.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(i.clearcoatMap=this.clearcoatMap.toJSON(t).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(i.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(t).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(i.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(t).uuid,i.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),void 0!==this.iridescence&&(i.iridescence=this.iridescence),void 0!==this.iridescenceIOR&&(i.iridescenceIOR=this.iridescenceIOR),void 0!==this.iridescenceThicknessRange&&(i.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(i.iridescenceMap=this.iridescenceMap.toJSON(t).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(i.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(t).uuid),void 0!==this.anisotropy&&(i.anisotropy=this.anisotropy),void 0!==this.anisotropyRotation&&(i.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(i.anisotropyMap=this.anisotropyMap.toJSON(t).uuid),this.map&&this.map.isTexture&&(i.map=this.map.toJSON(t).uuid),this.matcap&&this.matcap.isTexture&&(i.matcap=this.matcap.toJSON(t).uuid),this.alphaMap&&this.alphaMap.isTexture&&(i.alphaMap=this.alphaMap.toJSON(t).uuid),this.lightMap&&this.lightMap.isTexture&&(i.lightMap=this.lightMap.toJSON(t).uuid,i.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(i.aoMap=this.aoMap.toJSON(t).uuid,i.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(i.bumpMap=this.bumpMap.toJSON(t).uuid,i.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(i.normalMap=this.normalMap.toJSON(t).uuid,i.normalMapType=this.normalMapType,i.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(i.displacementMap=this.displacementMap.toJSON(t).uuid,i.displacementScale=this.displacementScale,i.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(i.roughnessMap=this.roughnessMap.toJSON(t).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(i.metalnessMap=this.metalnessMap.toJSON(t).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(i.emissiveMap=this.emissiveMap.toJSON(t).uuid),this.specularMap&&this.specularMap.isTexture&&(i.specularMap=this.specularMap.toJSON(t).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(i.specularIntensityMap=this.specularIntensityMap.toJSON(t).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(i.specularColorMap=this.specularColorMap.toJSON(t).uuid),this.envMap&&this.envMap.isTexture&&(i.envMap=this.envMap.toJSON(t).uuid,void 0!==this.combine&&(i.combine=this.combine)),void 0!==this.envMapIntensity&&(i.envMapIntensity=this.envMapIntensity),void 0!==this.reflectivity&&(i.reflectivity=this.reflectivity),void 0!==this.refractionRatio&&(i.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(i.gradientMap=this.gradientMap.toJSON(t).uuid),void 0!==this.transmission&&(i.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(i.transmissionMap=this.transmissionMap.toJSON(t).uuid),void 0!==this.thickness&&(i.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(i.thicknessMap=this.thicknessMap.toJSON(t).uuid),void 0!==this.attenuationDistance&&this.attenuationDistance!==1/0&&(i.attenuationDistance=this.attenuationDistance),void 0!==this.attenuationColor&&(i.attenuationColor=this.attenuationColor.getHex()),void 0!==this.size&&(i.size=this.size),null!==this.shadowSide&&(i.shadowSide=this.shadowSide),void 0!==this.sizeAttenuation&&(i.sizeAttenuation=this.sizeAttenuation),1!==this.blending&&(i.blending=this.blending),0!==this.side&&(i.side=this.side),this.vertexColors&&(i.vertexColors=!0),this.opacity<1&&(i.opacity=this.opacity),!0===this.transparent&&(i.transparent=this.transparent),i.depthFunc=this.depthFunc,i.depthTest=this.depthTest,i.depthWrite=this.depthWrite,i.colorWrite=this.colorWrite,i.stencilWrite=this.stencilWrite,i.stencilWriteMask=this.stencilWriteMask,i.stencilFunc=this.stencilFunc,i.stencilRef=this.stencilRef,i.stencilFuncMask=this.stencilFuncMask,i.stencilFail=this.stencilFail,i.stencilZFail=this.stencilZFail,i.stencilZPass=this.stencilZPass,void 0!==this.rotation&&0!==this.rotation&&(i.rotation=this.rotation),!0===this.polygonOffset&&(i.polygonOffset=!0),0!==this.polygonOffsetFactor&&(i.polygonOffsetFactor=this.polygonOffsetFactor),0!==this.polygonOffsetUnits&&(i.polygonOffsetUnits=this.polygonOffsetUnits),void 0!==this.linewidth&&1!==this.linewidth&&(i.linewidth=this.linewidth),void 0!==this.dashSize&&(i.dashSize=this.dashSize),void 0!==this.gapSize&&(i.gapSize=this.gapSize),void 0!==this.scale&&(i.scale=this.scale),!0===this.dithering&&(i.dithering=!0),this.alphaTest>0&&(i.alphaTest=this.alphaTest),!0===this.alphaHash&&(i.alphaHash=this.alphaHash),!0===this.alphaToCoverage&&(i.alphaToCoverage=this.alphaToCoverage),!0===this.premultipliedAlpha&&(i.premultipliedAlpha=this.premultipliedAlpha),!0===this.forceSinglePass&&(i.forceSinglePass=this.forceSinglePass),!0===this.wireframe&&(i.wireframe=this.wireframe),this.wireframeLinewidth>1&&(i.wireframeLinewidth=this.wireframeLinewidth),"round"!==this.wireframeLinecap&&(i.wireframeLinecap=this.wireframeLinecap),"round"!==this.wireframeLinejoin&&(i.wireframeLinejoin=this.wireframeLinejoin),!0===this.flatShading&&(i.flatShading=this.flatShading),!1===this.visible&&(i.visible=!1),!1===this.toneMapped&&(i.toneMapped=!1),!1===this.fog&&(i.fog=!1),Object.keys(this.userData).length>0&&(i.userData=this.userData),e){const o=r(t.textures),s=r(t.images);o.length>0&&(i.textures=o),s.length>0&&(i.images=s)}return i}clone(){return(new this.constructor).copy(this)}copy(t){this.name=t.name,this.blending=t.blending,this.side=t.side,this.vertexColors=t.vertexColors,this.opacity=t.opacity,this.transparent=t.transparent,this.blendSrc=t.blendSrc,this.blendDst=t.blendDst,this.blendEquation=t.blendEquation,this.blendSrcAlpha=t.blendSrcAlpha,this.blendDstAlpha=t.blendDstAlpha,this.blendEquationAlpha=t.blendEquationAlpha,this.depthFunc=t.depthFunc,this.depthTest=t.depthTest,this.depthWrite=t.depthWrite,this.stencilWriteMask=t.stencilWriteMask,this.stencilFunc=t.stencilFunc,this.stencilRef=t.stencilRef,this.stencilFuncMask=t.stencilFuncMask,this.stencilFail=t.stencilFail,this.stencilZFail=t.stencilZFail,this.stencilZPass=t.stencilZPass,this.stencilWrite=t.stencilWrite;const e=t.clippingPlanes;let i=null;if(null!==e){const r=e.length;i=new Array(r);for(let o=0;o!==r;++o)i[o]=e[o].clone()}return this.clippingPlanes=i,this.clipIntersection=t.clipIntersection,this.clipShadows=t.clipShadows,this.shadowSide=t.shadowSide,this.colorWrite=t.colorWrite,this.precision=t.precision,this.polygonOffset=t.polygonOffset,this.polygonOffsetFactor=t.polygonOffsetFactor,this.polygonOffsetUnits=t.polygonOffsetUnits,this.dithering=t.dithering,this.alphaTest=t.alphaTest,this.alphaHash=t.alphaHash,this.alphaToCoverage=t.alphaToCoverage,this.premultipliedAlpha=t.premultipliedAlpha,this.forceSinglePass=t.forceSinglePass,this.visible=t.visible,this.toneMapped=t.toneMapped,this.userData=JSON.parse(JSON.stringify(t.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(t){!0===t&&this.version++}}const bX={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},pd={h:0,s:0,l:0},aS={h:0,s:0,l:0};function F4(n,t,e){return e<0&&(e+=1),e>1&&(e-=1),e<1/6?n+6*(t-n)*e:e<.5?t:e<2/3?n+6*(t-n)*(2/3-e):n}class an{constructor(t,e,i){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(t,e,i)}set(t,e,i){if(void 0===e&&void 0===i){const r=t;r&&r.isColor?this.copy(r):"number"==typeof r?this.setHex(r):"string"==typeof r&&this.setStyle(r)}else this.setRGB(t,e,i);return this}setScalar(t){return this.r=t,this.g=t,this.b=t,this}setHex(t,e=fo){return t=Math.floor(t),this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(255&t)/255,hd.toWorkingColorSpace(this,e),this}setRGB(t,e,i,r=hd.workingColorSpace){return this.r=t,this.g=e,this.b=i,hd.toWorkingColorSpace(this,r),this}setHSL(t,e,i,r=hd.workingColorSpace){if(t=function f4(n,t){return(n%t+t)%t}(t,1),e=Go(e,0,1),i=Go(i,0,1),0===e)this.r=this.g=this.b=i;else{const o=i<=.5?i*(1+e):i+e-i*e,s=2*i-o;this.r=F4(s,o,t+1/3),this.g=F4(s,o,t),this.b=F4(s,o,t-1/3)}return hd.toWorkingColorSpace(this,r),this}setStyle(t,e=fo){function i(o){void 0!==o&&parseFloat(o)<1&&console.warn("THREE.Color: Alpha component of "+t+" will be ignored.")}let r;if(r=/^(\w+)\(([^\)]*)\)/.exec(t)){let o;const a=r[2];switch(r[1]){case"rgb":case"rgba":if(o=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return i(o[4]),this.setRGB(Math.min(255,parseInt(o[1],10))/255,Math.min(255,parseInt(o[2],10))/255,Math.min(255,parseInt(o[3],10))/255,e);if(o=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return i(o[4]),this.setRGB(Math.min(100,parseInt(o[1],10))/100,Math.min(100,parseInt(o[2],10))/100,Math.min(100,parseInt(o[3],10))/100,e);break;case"hsl":case"hsla":if(o=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return i(o[4]),this.setHSL(parseFloat(o[1])/360,parseFloat(o[2])/100,parseFloat(o[3])/100,e);break;default:console.warn("THREE.Color: Unknown color model "+t)}}else if(r=/^\#([A-Fa-f\d]+)$/.exec(t)){const o=r[1],s=o.length;if(3===s)return this.setRGB(parseInt(o.charAt(0),16)/15,parseInt(o.charAt(1),16)/15,parseInt(o.charAt(2),16)/15,e);if(6===s)return this.setHex(parseInt(o,16),e);console.warn("THREE.Color: Invalid hex color "+t)}else if(t&&t.length>0)return this.setColorName(t,e);return this}setColorName(t,e=fo){const i=bX[t.toLowerCase()];return void 0!==i?this.setHex(i,e):console.warn("THREE.Color: Unknown color "+t),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(t){return this.r=t.r,this.g=t.g,this.b=t.b,this}copySRGBToLinear(t){return this.r=b_(t.r),this.g=b_(t.g),this.b=b_(t.b),this}copyLinearToSRGB(t){return this.r=A4(t.r),this.g=A4(t.g),this.b=A4(t.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(t=fo){return hd.fromWorkingColorSpace(ma.copy(this),t),65536*Math.round(Go(255*ma.r,0,255))+256*Math.round(Go(255*ma.g,0,255))+Math.round(Go(255*ma.b,0,255))}getHexString(t=fo){return("000000"+this.getHex(t).toString(16)).slice(-6)}getHSL(t,e=hd.workingColorSpace){hd.fromWorkingColorSpace(ma.copy(this),e);const i=ma.r,r=ma.g,o=ma.b,s=Math.max(i,r,o),a=Math.min(i,r,o);let l,c;const d=(a+s)/2;if(a===s)l=0,c=0;else{const u=s-a;switch(c=d<=.5?u/(s+a):u/(2-s-a),s){case i:l=(r-o)/u+(r0&&(t.userData=this.userData),void 0!==this.parameters){const l=this.parameters;for(const c in l)void 0!==l[c]&&(t[c]=l[c]);return t}t.data={attributes:{}};const e=this.index;null!==e&&(t.data.index={type:e.array.constructor.name,array:Array.prototype.slice.call(e.array)});const i=this.attributes;for(const l in i)t.data.attributes[l]=i[l].toJSON(t.data);const r={};let o=!1;for(const l in this.morphAttributes){const c=this.morphAttributes[l],d=[];for(let u=0,h=c.length;u0&&(r[l]=d,o=!0)}o&&(t.data.morphAttributes=r,t.data.morphTargetsRelative=this.morphTargetsRelative);const s=this.groups;s.length>0&&(t.data.groups=JSON.parse(JSON.stringify(s)));const a=this.boundingSphere;return null!==a&&(t.data.boundingSphere={center:a.center.toArray(),radius:a.radius}),t}clone(){return(new this.constructor).copy(this)}copy(t){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const e={};this.name=t.name;const i=t.index;null!==i&&this.setIndex(i.clone(e));const r=t.attributes;for(const c in r)this.setAttribute(c,r[c].clone(e));const o=t.morphAttributes;for(const c in o){const d=[],u=o[c];for(let h=0,f=u.length;h0){const r=e[i[0]];if(void 0!==r){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let o=0,s=r.length;o(t.far-t.near)**2))&&(wX.copy(o).invert(),CA.copy(t.ray).applyMatrix4(wX),(null===i.boundingBox||!1!==CA.intersectsBox(i.boundingBox))&&this._computeIntersections(t,e,CA)))}_computeIntersections(t,e,i){let r;const o=this.geometry,s=this.material,a=o.index,l=o.attributes.position,c=o.attributes.uv,d=o.attributes.uv1,u=o.attributes.normal,h=o.groups,f=o.drawRange;if(null!==a)if(Array.isArray(s))for(let A=0,y=h.length;Ae.far?null:{distance:c,point:pS.clone(),object:n}}(n,t,e,i,D_,k_,B_,mS);if(d){r&&(uS.fromBufferAttribute(r,a),hS.fromBufferAttribute(r,l),fS.fromBufferAttribute(r,c),d.uv=Zl.getInterpolation(mS,D_,k_,B_,uS,hS,fS,new at)),o&&(uS.fromBufferAttribute(o,a),hS.fromBufferAttribute(o,l),fS.fromBufferAttribute(o,c),d.uv1=Zl.getInterpolation(mS,D_,k_,B_,uS,hS,fS,new at),d.uv2=d.uv1),s&&(CX.fromBufferAttribute(s,a),MX.fromBufferAttribute(s,l),EX.fromBufferAttribute(s,c),d.normal=Zl.getInterpolation(mS,D_,k_,B_,CX,MX,EX,new ie),d.normal.dot(i.direction)>0&&d.normal.multiplyScalar(-1));const u={a,b:l,c,normal:new ie,materialIndex:0};Zl.getNormal(D_,k_,B_,u.normal),d.face=u}return d}class Ad extends vi{constructor(t=1,e=1,i=1,r=1,o=1,s=1){super(),this.type="BoxGeometry",this.parameters={width:t,height:e,depth:i,widthSegments:r,heightSegments:o,depthSegments:s};const a=this;r=Math.floor(r),o=Math.floor(o),s=Math.floor(s);const l=[],c=[],d=[],u=[];let h=0,f=0;function A(y,_,b,M,C,E,I,V,R,K,k){const W=E/R,ue=I/K,Se=E/2,Me=I/2,Z=V/2,ve=R+1,re=K+1;let oe=0,ae=0;const Ce=new ie;for(let Qe=0;Qe0?1:-1,d.push(Ce.x,Ce.y,Ce.z),u.push(Ke/R),u.push(1-Qe/K),oe+=1}for(let Qe=0;Qe0&&(e.defines=this.defines),e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader,e.lights=this.lights,e.clipping=this.clipping;const i={};for(const r in this.extensions)!0===this.extensions[r]&&(i[r]=!0);return Object.keys(i).length>0&&(e.extensions=i),e}}class P4 extends So{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new Pi,this.projectionMatrix=new Pi,this.projectionMatrixInverse=new Pi,this.coordinateSystem=Rh}copy(t,e){return super.copy(t,e),this.matrixWorldInverse.copy(t.matrixWorldInverse),this.projectionMatrix.copy(t.projectionMatrix),this.projectionMatrixInverse.copy(t.projectionMatrixInverse),this.coordinateSystem=t.coordinateSystem,this}getWorldDirection(t){this.updateWorldMatrix(!0,!1);const e=this.matrixWorld.elements;return t.set(-e[8],-e[9],-e[10]).normalize()}updateMatrixWorld(t){super.updateMatrixWorld(t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(t,e){super.updateWorldMatrix(t,e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return(new this.constructor).copy(this)}}class Ls extends P4{constructor(t=50,e=1,i=.1,r=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=t,this.zoom=1,this.near=i,this.far=r,this.focus=10,this.aspect=e,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.fov=t.fov,this.zoom=t.zoom,this.near=t.near,this.far=t.far,this.focus=t.focus,this.aspect=t.aspect,this.view=null===t.view?null:Object.assign({},t.view),this.filmGauge=t.filmGauge,this.filmOffset=t.filmOffset,this}setFocalLength(t){const e=.5*this.getFilmHeight()/t;this.fov=2*g_*Math.atan(e),this.updateProjectionMatrix()}getFocalLength(){const t=Math.tan(.5*vA*this.fov);return.5*this.getFilmHeight()/t}getEffectiveFOV(){return 2*g_*Math.atan(Math.tan(.5*vA*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}setViewOffset(t,e,i,r,o,s){this.aspect=t/e,null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=i,this.view.offsetY=r,this.view.width=o,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=this.near;let e=t*Math.tan(.5*vA*this.fov)/this.zoom,i=2*e,r=this.aspect*i,o=-.5*r;const s=this.view;if(null!==this.view&&this.view.enabled){const l=s.fullWidth,c=s.fullHeight;o+=s.offsetX*r/l,e-=s.offsetY*i/c,r*=s.width/l,i*=s.height/c}const a=this.filmOffset;0!==a&&(o+=t*a/this.getFilmWidth()),this.projectionMatrix.makePerspective(o,o+r,e,e-i,t,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.fov=this.fov,e.object.zoom=this.zoom,e.object.near=this.near,e.object.far=this.far,e.object.focus=this.focus,e.object.aspect=this.aspect,null!==this.view&&(e.object.view=Object.assign({},this.view)),e.object.filmGauge=this.filmGauge,e.object.filmOffset=this.filmOffset,e}}class zMe extends So{constructor(t,e,i){super(),this.type="CubeCamera",this.renderTarget=i,this.coordinateSystem=null;const r=new Ls(-90,1,t,e);r.layers=this.layers,this.add(r);const o=new Ls(-90,1,t,e);o.layers=this.layers,this.add(o);const s=new Ls(-90,1,t,e);s.layers=this.layers,this.add(s);const a=new Ls(-90,1,t,e);a.layers=this.layers,this.add(a);const l=new Ls(-90,1,t,e);l.layers=this.layers,this.add(l);const c=new Ls(-90,1,t,e);c.layers=this.layers,this.add(c)}updateCoordinateSystem(){const t=this.coordinateSystem,e=this.children.concat(),[i,r,o,s,a,l]=e;for(const c of e)this.remove(c);if(t===Rh)i.up.set(0,1,0),i.lookAt(1,0,0),r.up.set(0,1,0),r.lookAt(-1,0,0),o.up.set(0,0,-1),o.lookAt(0,1,0),s.up.set(0,0,1),s.lookAt(0,-1,0),a.up.set(0,1,0),a.lookAt(0,0,1),l.up.set(0,1,0),l.lookAt(0,0,-1);else{if(2001!==t)throw new Error("THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: "+t);i.up.set(0,-1,0),i.lookAt(-1,0,0),r.up.set(0,-1,0),r.lookAt(1,0,0),o.up.set(0,0,1),o.lookAt(0,1,0),s.up.set(0,0,-1),s.lookAt(0,-1,0),a.up.set(0,-1,0),a.lookAt(0,0,1),l.up.set(0,-1,0),l.lookAt(0,0,-1)}for(const c of e)this.add(c),c.updateMatrixWorld()}update(t,e){null===this.parent&&this.updateMatrixWorld();const i=this.renderTarget;this.coordinateSystem!==t.coordinateSystem&&(this.coordinateSystem=t.coordinateSystem,this.updateCoordinateSystem());const[r,o,s,a,l,c]=this.children,d=t.getRenderTarget(),u=t.xr.enabled;t.xr.enabled=!1;const h=i.texture.generateMipmaps;i.texture.generateMipmaps=!1,t.setRenderTarget(i,0),t.render(e,r),t.setRenderTarget(i,1),t.render(e,o),t.setRenderTarget(i,2),t.render(e,s),t.setRenderTarget(i,3),t.render(e,a),t.setRenderTarget(i,4),t.render(e,l),i.texture.generateMipmaps=h,t.setRenderTarget(i,5),t.render(e,c),t.setRenderTarget(d),t.xr.enabled=u,i.texture.needsPMREMUpdate=!0}}class gS extends cl{constructor(t,e,i,r,o,s,a,l,c,d){super(t=void 0!==t?t:[],e=void 0!==e?e:pm,i,r,o,s,a,l,c,d),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(t){this.image=t}}class qMe extends Fc{constructor(t=1,e={}){super(t,t,e),this.isWebGLCubeRenderTarget=!0;const i={width:t,height:t,depth:1},r=[i,i,i,i,i,i];void 0!==e.encoding&&(rw("THREE.WebGLCubeRenderTarget: option.encoding has been replaced by option.colorSpace."),e.colorSpace=e.encoding===gA?fo:""),this.texture=new gS(r,e.mapping,e.wrapS,e.wrapT,e.magFilter,e.minFilter,e.format,e.type,e.anisotropy,e.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=void 0!==e.generateMipmaps&&e.generateMipmaps,this.texture.minFilter=void 0!==e.minFilter?e.minFilter:os}fromEquirectangularTexture(t,e){this.texture.type=e.type,this.texture.colorSpace=e.colorSpace,this.texture.generateMipmaps=e.generateMipmaps,this.texture.minFilter=e.minFilter,this.texture.magFilter=e.magFilter;const i_uniforms={tEquirect:{value:null}},i_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",i_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 Ad(5,5,5),o=new ec({name:"CubemapFromEquirect",uniforms:P_(i_uniforms),vertexShader:i_vertexShader,fragmentShader:i_fragmentShader,side:1,blending:0});o.uniforms.tEquirect.value=e;const s=new Br(r,o),a=e.minFilter;return e.minFilter===mA&&(e.minFilter=os),new zMe(1,10,this).update(t,s),e.minFilter=a,s.geometry.dispose(),s.material.dispose(),this}clear(t,e,i,r){const o=t.getRenderTarget();for(let s=0;s<6;s++)t.setRenderTarget(this,s),t.clear(e,i,r);t.setRenderTarget(o)}}const R4=new ie,GMe=new ie,WMe=new Ci;class wm{constructor(t=new ie(1,0,0),e=0){this.isPlane=!0,this.normal=t,this.constant=e}set(t,e){return this.normal.copy(t),this.constant=e,this}setComponents(t,e,i,r){return this.normal.set(t,e,i),this.constant=r,this}setFromNormalAndCoplanarPoint(t,e){return this.normal.copy(t),this.constant=-e.dot(this.normal),this}setFromCoplanarPoints(t,e,i){const r=R4.subVectors(i,e).cross(GMe.subVectors(t,e)).normalize();return this.setFromNormalAndCoplanarPoint(r,t),this}copy(t){return this.normal.copy(t.normal),this.constant=t.constant,this}normalize(){const t=1/this.normal.length();return this.normal.multiplyScalar(t),this.constant*=t,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(t){return this.normal.dot(t)+this.constant}distanceToSphere(t){return this.distanceToPoint(t.center)-t.radius}projectPoint(t,e){return e.copy(t).addScaledVector(this.normal,-this.distanceToPoint(t))}intersectLine(t,e){const i=t.delta(R4),r=this.normal.dot(i);if(0===r)return 0===this.distanceToPoint(t.start)?e.copy(t.start):null;const o=-(t.start.dot(this.normal)+this.constant)/r;return o<0||o>1?null:e.copy(t.start).addScaledVector(i,o)}intersectsLine(t){const e=this.distanceToPoint(t.start),i=this.distanceToPoint(t.end);return e<0&&i>0||i<0&&e>0}intersectsBox(t){return t.intersectsPlane(this)}intersectsSphere(t){return t.intersectsPlane(this)}coplanarPoint(t){return t.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(t,e){const i=e||WMe.getNormalMatrix(t),r=this.coplanarPoint(R4).applyMatrix4(t),o=this.normal.applyMatrix3(i).normalize();return this.constant=-r.dot(o),this}translate(t){return this.constant-=t.dot(this.normal),this}equals(t){return t.normal.equals(this.normal)&&t.constant===this.constant}clone(){return(new this.constructor).copy(this)}}const MA=new Kl,_S=new ie;class L4{constructor(t=new wm,e=new wm,i=new wm,r=new wm,o=new wm,s=new wm){this.planes=[t,e,i,r,o,s]}set(t,e,i,r,o,s){const a=this.planes;return a[0].copy(t),a[1].copy(e),a[2].copy(i),a[3].copy(r),a[4].copy(o),a[5].copy(s),this}copy(t){const e=this.planes;for(let i=0;i<6;i++)e[i].copy(t.planes[i]);return this}setFromProjectionMatrix(t,e=Rh){const i=this.planes,r=t.elements,o=r[0],s=r[1],a=r[2],l=r[3],c=r[4],d=r[5],u=r[6],h=r[7],f=r[8],A=r[9],y=r[10],_=r[11],b=r[12],M=r[13],C=r[14],E=r[15];if(i[0].setComponents(l-o,h-c,_-f,E-b).normalize(),i[1].setComponents(l+o,h+c,_+f,E+b).normalize(),i[2].setComponents(l+s,h+d,_+A,E+M).normalize(),i[3].setComponents(l-s,h-d,_-A,E-M).normalize(),i[4].setComponents(l-a,h-u,_-y,E-C).normalize(),e===Rh)i[5].setComponents(l+a,h+u,_+y,E+C).normalize();else{if(2001!==e)throw new Error("THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: "+e);i[5].setComponents(a,u,y,C).normalize()}return this}intersectsObject(t){if(void 0!==t.boundingSphere)null===t.boundingSphere&&t.computeBoundingSphere(),MA.copy(t.boundingSphere).applyMatrix4(t.matrixWorld);else{const e=t.geometry;null===e.boundingSphere&&e.computeBoundingSphere(),MA.copy(e.boundingSphere).applyMatrix4(t.matrixWorld)}return this.intersectsSphere(MA)}intersectsSprite(t){return MA.center.set(0,0,0),MA.radius=.7071067811865476,MA.applyMatrix4(t.matrixWorld),this.intersectsSphere(MA)}intersectsSphere(t){const e=this.planes,i=t.center,r=-t.radius;for(let o=0;o<6;o++)if(e[o].distanceToPoint(i)0?t.max.x:t.min.x,_S.y=r.normal.y>0?t.max.y:t.min.y,_S.z=r.normal.z>0?t.max.z:t.min.z,r.distanceToPoint(_S)<0)return!1}return!0}containsPoint(t){const e=this.planes;for(let i=0;i<6;i++)if(e[i].distanceToPoint(t)<0)return!1;return!0}clone(){return(new this.constructor).copy(this)}}function TX(){let n=null,t=!1,e=null,i=null;function r(o,s){e(o,s),i=n.requestAnimationFrame(r)}return{start:function(){!0!==t&&null!==e&&(i=n.requestAnimationFrame(r),t=!0)},stop:function(){n.cancelAnimationFrame(i),t=!1},setAnimationLoop:function(o){e=o},setContext:function(o){n=o}}}function $Me(n,t){const e=t.isWebGL2,i=new WeakMap;return{get:function s(c){return c.isInterleavedBufferAttribute&&(c=c.data),i.get(c)},remove:function a(c){c.isInterleavedBufferAttribute&&(c=c.data);const d=i.get(c);d&&(n.deleteBuffer(d.buffer),i.delete(c))},update:function l(c,d){if(c.isGLBufferAttribute){const h=i.get(c);return void((!h||h.version 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; }\nvec3 pow2( const in vec3 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 v ) { return dot( v, vec3( 0.3333333 ) ); }\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};\n#ifdef USE_ALPHAHASH\n\tvarying vec3 vPosition;\n#endif\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 luminance( const in vec3 rgb ) {\n\tconst vec3 weights = vec3( 0.2126729, 0.7151522, 0.0721750 );\n\treturn dot( weights, 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}\nvec3 BRDF_Lambert( const in vec3 diffuseColor ) {\n\treturn RECIPROCAL_PI * diffuseColor;\n}\nvec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n}\nfloat F_Schlick( const in float f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n} // validated",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\thighp vec2 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 cubeUV_r0 1.0\n\t#define cubeUV_v0 0.339\n\t#define cubeUV_m0 - 2.0\n\t#define cubeUV_r1 0.8\n\t#define cubeUV_v1 0.276\n\t#define cubeUV_m1 - 1.0\n\t#define cubeUV_r4 0.4\n\t#define cubeUV_v4 0.046\n\t#define cubeUV_m4 2.0\n\t#define cubeUV_r5 0.305\n\t#define cubeUV_v5 0.016\n\t#define cubeUV_m5 3.0\n\t#define cubeUV_r6 0.21\n\t#define cubeUV_v6 0.0038\n\t#define cubeUV_m6 4.0\n\tfloat roughnessToMip( float roughness ) {\n\t\tfloat mip = 0.0;\n\t\tif ( roughness >= cubeUV_r1 ) {\n\t\t\tmip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0;\n\t\t} else if ( roughness >= cubeUV_r4 ) {\n\t\t\tmip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1;\n\t\t} else if ( roughness >= cubeUV_r5 ) {\n\t\t\tmip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4;\n\t\t} else if ( roughness >= cubeUV_r6 ) {\n\t\t\tmip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_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 ), cubeUV_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, vDisplacementMapUv ).x * displacementScale + displacementBias );\n#endif",emissivemap_fragment:"#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv );\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif",emissivemap_pars_fragment:"#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif",colorspace_fragment:"gl_FragColor = linearToOutputTexel( gl_FragColor );",colorspace_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#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 ) || defined( LAMBERT )\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 ) || defined( LAMBERT )\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:"#ifdef USE_ENVMAP\n\tvec3 getIBLIrradiance( const in vec3 normal ) {\n\t\t#ifdef 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#ifdef 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\t#ifdef USE_ANISOTROPY\n\t\tvec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) {\n\t\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\t\tvec3 bentNormal = cross( bitangent, viewDir );\n\t\t\t\tbentNormal = normalize( cross( bentNormal, bitangent ) );\n\t\t\t\tbentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) );\n\t\t\t\treturn getIBLRadiance( viewDir, bentNormal, roughness );\n\t\t\t#else\n\t\t\t\treturn vec3( 0.0 );\n\t\t\t#endif\n\t\t}\n\t#endif\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\tvec2 fw = fwidth( coord ) * 0.5;\n\t\treturn mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) );\n\t#endif\n}",lightmap_fragment:"#ifdef USE_LIGHTMAP\n\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\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_fragment:"LambertMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularStrength = specularStrength;",lights_lambert_pars_fragment:"varying vec3 vViewPosition;\nstruct LambertMaterial {\n\tvec3 diffuseColor;\n\tfloat specularStrength;\n};\nvoid RE_Direct_Lambert( const in IncidentLight directLight, const in GeometricContext geometry, const in LambertMaterial 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}\nvoid RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in GeometricContext geometry, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Lambert\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Lambert",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 ( LEGACY_LIGHTS )\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#else\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#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",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",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\tmaterial.ior = ior;\n\t#ifdef USE_SPECULAR\n\t\tfloat specularIntensityFactor = specularIntensity;\n\t\tvec3 specularColorFactor = specularColor;\n\t\t#ifdef USE_SPECULAR_COLORMAP\n\t\t\tspecularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;\n\t\t#endif\n\t\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\t\tspecularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;\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( ( material.ior - 1.0 ) / ( material.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, vClearcoatMapUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).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_IRIDESCENCE\n\tmaterial.iridescence = iridescence;\n\tmaterial.iridescenceIOR = iridescenceIOR;\n\t#ifdef USE_IRIDESCENCEMAP\n\t\tmaterial.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;\n\t#endif\n\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\t\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;\n\t#else\n\t\tmaterial.iridescenceThickness = iridescenceThicknessMaximum;\n\t#endif\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheenColor;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tmaterial.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;\n\t#endif\n\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;\n\t#endif\n#endif\n#ifdef USE_ANISOTROPY\n\t#ifdef USE_ANISOTROPYMAP\n\t\tmat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x );\n\t\tvec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb;\n\t\tvec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b;\n\t#else\n\t\tvec2 anisotropyV = anisotropyVector;\n\t#endif\n\tmaterial.anisotropy = length( anisotropyV );\n\tanisotropyV /= material.anisotropy;\n\tmaterial.anisotropy = saturate( material.anisotropy );\n\tmaterial.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) );\n\tmaterial.anisotropyT = tbn[ 0 ] * anisotropyV.x - tbn[ 1 ] * anisotropyV.y;\n\tmaterial.anisotropyB = tbn[ 1 ] * anisotropyV.x + tbn[ 0 ] * anisotropyV.y;\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_IRIDESCENCE\n\t\tfloat iridescence;\n\t\tfloat iridescenceIOR;\n\t\tfloat iridescenceThickness;\n\t\tvec3 iridescenceFresnel;\n\t\tvec3 iridescenceF0;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tvec3 sheenColor;\n\t\tfloat sheenRoughness;\n\t#endif\n\t#ifdef IOR\n\t\tfloat ior;\n\t#endif\n\t#ifdef USE_TRANSMISSION\n\t\tfloat transmission;\n\t\tfloat transmissionAlpha;\n\t\tfloat thickness;\n\t\tfloat attenuationDistance;\n\t\tvec3 attenuationColor;\n\t#endif\n\t#ifdef USE_ANISOTROPY\n\t\tfloat anisotropy;\n\t\tfloat alphaT;\n\t\tvec3 anisotropyT;\n\t\tvec3 anisotropyB;\n\t#endif\n};\nvec3 clearcoatSpecular = vec3( 0.0 );\nvec3 sheenSpecular = vec3( 0.0 );\nvec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {\n float x = clamp( 1.0 - dotVH, 0.0, 1.0 );\n float x2 = x * x;\n float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );\n return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );\n}\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\n#ifdef USE_ANISOTROPY\n\tfloat V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) {\n\t\tfloat gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) );\n\t\tfloat gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) );\n\t\tfloat v = 0.5 / ( gv + gl );\n\t\treturn saturate(v);\n\t}\n\tfloat D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) {\n\t\tfloat a2 = alphaT * alphaB;\n\t\thighp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH );\n\t\thighp float v2 = dot( v, v );\n\t\tfloat w2 = a2 / v2;\n\t\treturn RECIPROCAL_PI * a2 * pow2 ( w2 );\n\t}\n#endif\n#ifdef USE_CLEARCOAT\n\tvec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {\n\t\tvec3 f0 = material.clearcoatF0;\n\t\tfloat f90 = material.clearcoatF90;\n\t\tfloat roughness = material.clearcoatRoughness;\n\t\tfloat alpha = pow2( roughness );\n\t\tvec3 halfDir = normalize( lightDir + viewDir );\n\t\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\t\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\t\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\t\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\t\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t\treturn F * ( V * D );\n\t}\n#endif\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {\n\tvec3 f0 = material.specularColor;\n\tfloat f90 = material.specularF90;\n\tfloat roughness = material.roughness;\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t#ifdef USE_IRIDESCENCE\n\t\tF = mix( F, material.iridescenceFresnel, material.iridescence );\n\t#endif\n\t#ifdef USE_ANISOTROPY\n\t\tfloat dotTL = dot( material.anisotropyT, lightDir );\n\t\tfloat dotTV = dot( material.anisotropyT, viewDir );\n\t\tfloat dotTH = dot( material.anisotropyT, halfDir );\n\t\tfloat dotBL = dot( material.anisotropyB, lightDir );\n\t\tfloat dotBV = dot( material.anisotropyB, viewDir );\n\t\tfloat dotBH = dot( material.anisotropyB, halfDir );\n\t\tfloat V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL );\n\t\tfloat D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH );\n\t#else\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t#endif\n\treturn F * ( V * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\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\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}\n#ifdef USE_IRIDESCENCE\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#else\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#endif\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\t#ifdef USE_IRIDESCENCE\n\t\tvec3 Fr = mix( specularColor, iridescenceF0, iridescence );\n\t#else\n\t\tvec3 Fr = specularColor;\n\t#endif\n\tvec3 FssEss = Fr * fab.x + specularF90 * fab.y;\n\tfloat Ess = fab.x + fab.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = Fr + ( 1.0 - Fr ) * 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_Clearcoat( directLight.direction, geometry.viewDir, geometry.clearcoatNormal, material );\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 );\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\t#ifdef USE_IRIDESCENCE\n\t\tcomputeMultiscatteringIridescence( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\n\t#else\n\t\tcomputeMultiscattering( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\n\t#endif\n\tvec3 totalScattering = singleScattering + multiScattering;\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\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\n#ifdef USE_IRIDESCENCE\n\tfloat dotNVi = saturate( dot( normal, geometry.viewDir ) );\n\tif ( material.iridescenceThickness == 0.0 ) {\n\t\tmaterial.iridescence = 0.0;\n\t} else {\n\t\tmaterial.iridescence = saturate( material.iridescence );\n\t}\n\tif ( material.iridescence > 0.0 ) {\n\t\tmaterial.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );\n\t\tmaterial.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );\n\t}\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 *= ( 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\tvec4 spotColor;\n\tvec3 spotLightCoord;\n\tbool inSpotLightMap;\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 ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX\n\t\t#elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t#define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS\n\t\t#else\n\t\t#define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#endif\n\t\t#if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )\n\t\t\tspotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;\n\t\t\tinSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );\n\t\t\tspotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );\n\t\t\tdirectLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;\n\t\t#endif\n\t\t#undef SPOT_LIGHT_MAP_INDEX\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\tspotLightShadow = spotLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ 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 *= ( 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, vLightMapUv );\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\t#ifdef USE_ANISOTROPY\n\t\tradiance += getIBLAnisotropyRadiance( geometry.viewDir, geometry.normal, material.roughness, material.anisotropyB, material.anisotropy );\n\t#else\n\t\tradiance += getIBLRadiance( geometry.viewDir, geometry.normal, material.roughness );\n\t#endif\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, vMapUv );\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\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\t#if defined( USE_POINTS_UV )\n\t\tvec2 uv = vUv;\n\t#else\n\t\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n\t#endif\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_POINTS_UV )\n\tvarying vec2 vUv;\n#else\n\t#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\t\tuniform mat3 uvTransform;\n\t#endif\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, vMetalnessMapUv );\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 = dFdx( vViewPosition );\n\tvec3 fdy = dFdy( vViewPosition );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal *= faceDirection;\n\t#endif\n#endif\n#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY )\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn = getTangentFrame( - vViewPosition, normal,\n\t\t#if defined( USE_NORMALMAP )\n\t\t\tvNormalMapUv\n\t\t#elif defined( USE_CLEARCOAT_NORMALMAP )\n\t\t\tvClearcoatNormalMapUv\n\t\t#else\n\t\t\tvUv\n\t\t#endif\n\t\t);\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn[0] *= faceDirection;\n\t\ttbn[1] *= faceDirection;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn2[0] *= faceDirection;\n\t\ttbn2[1] *= faceDirection;\n\t#endif\n#endif\nvec3 geometryNormal = normal;",normal_fragment_maps:"#ifdef USE_NORMALMAP_OBJECTSPACE\n\tnormal = texture2D( normalMap, vNormalMapUv ).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( USE_NORMALMAP_TANGENTSPACE )\n\tvec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\tmapN.xy *= normalScale;\n\tnormal = normalize( tbn * mapN );\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 USE_NORMALMAP_OBJECTSPACE\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) )\n\tmat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {\n\t\tvec3 q0 = dFdx( eye_pos.xyz );\n\t\tvec3 q1 = dFdy( eye_pos.xyz );\n\t\tvec2 st0 = dFdx( uv.st );\n\t\tvec2 st1 = dFdy( uv.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 : inversesqrt( det );\n\t\treturn mat3( T * scale, B * scale, N );\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, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0;\n\tclearcoatMapN.xy *= clearcoatNormalScale;\n\tclearcoatNormal = normalize( tbn2 * clearcoatMapN );\n#endif",clearcoat_pars_fragment:"#ifdef USE_CLEARCOATMAP\n\tuniform sampler2D clearcoatMap;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform sampler2D clearcoatNormalMap;\n\tuniform vec2 clearcoatNormalScale;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform sampler2D clearcoatRoughnessMap;\n#endif",iridescence_pars_fragment:"#ifdef USE_IRIDESCENCEMAP\n\tuniform sampler2D iridescenceMap;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform sampler2D iridescenceThicknessMap;\n#endif",opaque_fragment:"#ifdef OPAQUE\ndiffuseColor.a = 1.0;\n#endif\n#ifdef USE_TRANSMISSION\ndiffuseColor.a *= material.transmissionAlpha;\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}\nvec2 packDepthToRG( in highp float v ) {\n\treturn packDepthToRGBA( v ).yx;\n}\nfloat unpackRGToDepth( const in highp vec2 v ) {\n\treturn unpackRGBAToDepth( vec4( v.xy, 0.0, 0.0 ) );\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 depth, const in float near, const in float far ) {\n\treturn depth * ( 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 depth, const in float near, const in float far ) {\n\treturn ( near * far ) / ( ( far - near ) * depth - 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, vRoughnessMapUv );\n\troughnessFactor *= texelRoughness.g;\n#endif",roughnessmap_pars_fragment:"#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif",shadowmap_pars_fragment:"#if NUM_SPOT_LIGHT_COORDS > 0\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#if NUM_SPOT_LIGHT_MAPS > 0\n\tuniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ];\n#endif\n#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\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\tbool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0;\n\t\tbool frustumTest = inFrustum && shadowCoord.z <= 1.0;\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:"#if NUM_SPOT_LIGHT_COORDS > 0\n\tuniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ];\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#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\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:"#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 )\n\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\tvec4 shadowWorldPosition;\n#endif\n#if defined( USE_SHADOWMAP )\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\n\t\t\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\n\t\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if NUM_SPOT_LIGHT_COORDS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition;\n\t\t#if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t\tshadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias;\n\t\t#endif\n\t\tvSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\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, vSpotLightCoord[ 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, vSpecularMapUv );\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 saturate( 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\tmaterial.transmission = transmission;\n\tmaterial.transmissionAlpha = 1.0;\n\tmaterial.thickness = thickness;\n\tmaterial.attenuationDistance = attenuationDistance;\n\tmaterial.attenuationColor = attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tmaterial.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tmaterial.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g;\n\t#endif\n\tvec3 pos = vWorldPosition;\n\tvec3 v = normalize( cameraPosition - pos );\n\tvec3 n = inverseTransformDirection( normal, viewMatrix );\n\tvec4 transmitted = getIBLVolumeRefraction(\n\t\tn, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\n\t\tpos, modelMatrix, viewMatrix, projectionMatrix, material.ior, material.thickness,\n\t\tmaterial.attenuationColor, material.attenuationDistance );\n\tmaterial.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission );\n\ttotalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission );\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\tfloat w0( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 );\n\t}\n\tfloat w1( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 );\n\t}\n\tfloat w2( float a ){\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 );\n\t}\n\tfloat w3( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * a );\n\t}\n\tfloat g0( float a ) {\n\t\treturn w0( a ) + w1( a );\n\t}\n\tfloat g1( float a ) {\n\t\treturn w2( a ) + w3( a );\n\t}\n\tfloat h0( float a ) {\n\t\treturn - 1.0 + w1( a ) / ( w0( a ) + w1( a ) );\n\t}\n\tfloat h1( float a ) {\n\t\treturn 1.0 + w3( a ) / ( w2( a ) + w3( a ) );\n\t}\n\tvec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) {\n\t\tuv = uv * texelSize.zw + 0.5;\n\t\tvec2 iuv = floor( uv );\n\t\tvec2 fuv = fract( uv );\n\t\tfloat g0x = g0( fuv.x );\n\t\tfloat g1x = g1( fuv.x );\n\t\tfloat h0x = h0( fuv.x );\n\t\tfloat h1x = h1( fuv.x );\n\t\tfloat h0y = h0( fuv.y );\n\t\tfloat h1y = h1( fuv.y );\n\t\tvec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\treturn g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) +\n\t\t\tg1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );\n\t}\n\tvec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {\n\t\tvec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );\n\t\tvec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );\n\t\tvec2 fLodSizeInv = 1.0 / fLodSize;\n\t\tvec2 cLodSizeInv = 1.0 / cLodSize;\n\t\tvec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) );\n\t\tvec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) );\n\t\treturn mix( fSample, cSample, fract( lod ) );\n\t}\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 lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\n\t\treturn textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );\n\t}\n\tvec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tif ( isinf( attenuationDistance ) ) {\n\t\t\treturn vec3( 1.0 );\n\t\t} else {\n\t\t\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\n\t\t\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\t\t\treturn transmittance;\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 transmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance );\n\t\tvec3 attenuatedColor = transmittance * transmittedLight.rgb;\n\t\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\n\t\tfloat transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0;\n\t\treturn vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor );\n\t}\n#endif",uv_pars_fragment:"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvarying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif",uv_pars_vertex:"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tuniform mat3 mapTransform;\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform mat3 alphaMapTransform;\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tuniform mat3 lightMapTransform;\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tuniform mat3 aoMapTransform;\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tuniform mat3 bumpMapTransform;\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tuniform mat3 normalMapTransform;\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tuniform mat3 displacementMapTransform;\n\tvarying vec2 vDisplacementMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tuniform mat3 emissiveMapTransform;\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tuniform mat3 metalnessMapTransform;\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tuniform mat3 roughnessMapTransform;\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tuniform mat3 anisotropyMapTransform;\n\tvarying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tuniform mat3 clearcoatMapTransform;\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform mat3 clearcoatNormalMapTransform;\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform mat3 clearcoatRoughnessMapTransform;\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tuniform mat3 sheenColorMapTransform;\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tuniform mat3 sheenRoughnessMapTransform;\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tuniform mat3 iridescenceMapTransform;\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform mat3 iridescenceThicknessMapTransform;\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tuniform mat3 specularMapTransform;\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tuniform mat3 specularColorMapTransform;\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tuniform mat3 specularIntensityMapTransform;\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif",uv_vertex:"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n\tvUv = vec3( uv, 1 ).xy;\n#endif\n#ifdef USE_MAP\n\tvMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ALPHAMAP\n\tvAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_LIGHTMAP\n\tvLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_AOMAP\n\tvAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_BUMPMAP\n\tvBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_NORMALMAP\n\tvNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tvDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_METALNESSMAP\n\tvMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULARMAP\n\tvSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tvTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_THICKNESSMAP\n\tvThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;\n#endif",worldpos_vertex:"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0\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;\nuniform float backgroundIntensity;\nvarying vec2 vUv;\nvoid main() {\n\tvec4 texColor = texture2D( t2D, vUv );\n\t#ifdef DECODE_VIDEO_TEXTURE\n\t\ttexColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w );\n\t#endif\n\ttexColor.rgb *= backgroundIntensity;\n\tgl_FragColor = texColor;\n\t#include \n\t#include \n}",backgroundCube_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}",backgroundCube_frag:"#ifdef ENVMAP_TYPE_CUBE\n\tuniform samplerCube envMap;\n#elif defined( ENVMAP_TYPE_CUBE_UV )\n\tuniform sampler2D envMap;\n#endif\nuniform float flipEnvMap;\nuniform float backgroundBlurriness;\nuniform float backgroundIntensity;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 texColor = textureCube( envMap, vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );\n\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\tvec4 texColor = textureCubeUV( envMap, vWorldDirection, backgroundBlurriness );\n\t#else\n\t\tvec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t#endif\n\ttexColor.rgb *= backgroundIntensity;\n\tgl_FragColor = texColor;\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:"uniform samplerCube tCube;\nuniform float tFlip;\nuniform float opacity;\nvarying vec3 vWorldDirection;\nvoid main() {\n\tvec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );\n\tgl_FragColor = texColor;\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 \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\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 \n#include \nvoid main () {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include \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 \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\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 \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\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 \nvoid main() {\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 \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\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, vLightMapUv );\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 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\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}",meshlambert_frag:"#define LAMBERT\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 \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\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 \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\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( USE_NORMALMAP_TANGENTSPACE )\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( USE_NORMALMAP_TANGENTSPACE )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n}",meshnormal_frag:"#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\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 \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\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 \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\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 \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\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 USE_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 USE_SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\t#ifdef USE_SPECULAR_COLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_IRIDESCENCE\n\tuniform float iridescence;\n\tuniform float iridescenceIOR;\n\tuniform float iridescenceThicknessMinimum;\n\tuniform float iridescenceThicknessMaximum;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheenColor;\n\tuniform float sheenRoughness;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\n#ifdef USE_ANISOTROPY\n\tuniform vec2 anisotropyVector;\n\t#ifdef USE_ANISOTROPYMAP\n\t\tuniform sampler2D anisotropyMap;\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 \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\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 \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\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\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 \n#ifdef USE_POINTS_UV\n\tvarying vec2 vUv;\n\tuniform mat3 uvTransform;\n#endif\nvoid main() {\n\t#ifdef USE_POINTS_UV\n\t\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\t#endif\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 \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\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 \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}",shadow_frag:"uniform vec3 color;\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\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 \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\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n}"},An={common:{diffuse:{value:new an(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new Ci},alphaMap:{value:null},alphaMapTransform:{value:new Ci},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new Ci}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new Ci}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new Ci}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new Ci},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new Ci},normalScale:{value:new at(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new Ci},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new Ci}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new Ci}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new Ci}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new an(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:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{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 an(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new Ci},alphaTest:{value:0},uvTransform:{value:new Ci}},sprite:{diffuse:{value:new an(16777215)},opacity:{value:1},center:{value:new at(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new Ci},alphaMap:{value:null},alphaMapTransform:{value:new Ci},alphaTest:{value:0}}},mu={basic:{uniforms:za([An.common,An.specularmap,An.envmap,An.aomap,An.lightmap,An.fog]),vertexShader:Qi.meshbasic_vert,fragmentShader:Qi.meshbasic_frag},lambert:{uniforms:za([An.common,An.specularmap,An.envmap,An.aomap,An.lightmap,An.emissivemap,An.bumpmap,An.normalmap,An.displacementmap,An.fog,An.lights,{emissive:{value:new an(0)}}]),vertexShader:Qi.meshlambert_vert,fragmentShader:Qi.meshlambert_frag},phong:{uniforms:za([An.common,An.specularmap,An.envmap,An.aomap,An.lightmap,An.emissivemap,An.bumpmap,An.normalmap,An.displacementmap,An.fog,An.lights,{emissive:{value:new an(0)},specular:{value:new an(1118481)},shininess:{value:30}}]),vertexShader:Qi.meshphong_vert,fragmentShader:Qi.meshphong_frag},standard:{uniforms:za([An.common,An.envmap,An.aomap,An.lightmap,An.emissivemap,An.bumpmap,An.normalmap,An.displacementmap,An.roughnessmap,An.metalnessmap,An.fog,An.lights,{emissive:{value:new an(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:Qi.meshphysical_vert,fragmentShader:Qi.meshphysical_frag},toon:{uniforms:za([An.common,An.aomap,An.lightmap,An.emissivemap,An.bumpmap,An.normalmap,An.displacementmap,An.gradientmap,An.fog,An.lights,{emissive:{value:new an(0)}}]),vertexShader:Qi.meshtoon_vert,fragmentShader:Qi.meshtoon_frag},matcap:{uniforms:za([An.common,An.bumpmap,An.normalmap,An.displacementmap,An.fog,{matcap:{value:null}}]),vertexShader:Qi.meshmatcap_vert,fragmentShader:Qi.meshmatcap_frag},points:{uniforms:za([An.points,An.fog]),vertexShader:Qi.points_vert,fragmentShader:Qi.points_frag},dashed:{uniforms:za([An.common,An.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Qi.linedashed_vert,fragmentShader:Qi.linedashed_frag},depth:{uniforms:za([An.common,An.displacementmap]),vertexShader:Qi.depth_vert,fragmentShader:Qi.depth_frag},normal:{uniforms:za([An.common,An.bumpmap,An.normalmap,An.displacementmap,{opacity:{value:1}}]),vertexShader:Qi.meshnormal_vert,fragmentShader:Qi.meshnormal_frag},sprite:{uniforms:za([An.sprite,An.fog]),vertexShader:Qi.sprite_vert,fragmentShader:Qi.sprite_frag},background:{uniforms:{uvTransform:{value:new Ci},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:Qi.background_vert,fragmentShader:Qi.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1}},vertexShader:Qi.backgroundCube_vert,fragmentShader:Qi.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:Qi.cube_vert,fragmentShader:Qi.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Qi.equirect_vert,fragmentShader:Qi.equirect_frag},distanceRGBA:{uniforms:za([An.common,An.displacementmap,{referencePosition:{value:new ie},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:Qi.distanceRGBA_vert,fragmentShader:Qi.distanceRGBA_frag},shadow:{uniforms:za([An.lights,An.fog,{color:{value:new an(0)},opacity:{value:1}}]),vertexShader:Qi.shadow_vert,fragmentShader:Qi.shadow_frag}};mu.physical={uniforms:za([mu.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new Ci},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new Ci},clearcoatNormalScale:{value:new at(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new Ci},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new Ci},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new Ci},sheen:{value:0},sheenColor:{value:new an(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new Ci},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new Ci},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new Ci},transmissionSamplerSize:{value:new at},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new Ci},attenuationDistance:{value:0},attenuationColor:{value:new an(0)},specularColor:{value:new an(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new Ci},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new Ci},anisotropyVector:{value:new at},anisotropyMap:{value:null},anisotropyMapTransform:{value:new Ci}}]),vertexShader:Qi.meshphysical_vert,fragmentShader:Qi.meshphysical_frag};const bS={r:0,b:0,g:0};function G2e(n,t,e,i,r,o,s){const a=new an(0);let c,d,l=!0===o?0:1,u=null,h=0,f=null;function y(_,b){_.getRGB(bS,SX(n)),i.buffers.color.setClear(bS.r,bS.g,bS.b,b,s)}return{getClearColor:function(){return a},setClearColor:function(_,b=1){a.set(_),l=b,y(a,l)},getClearAlpha:function(){return l},setClearAlpha:function(_){l=_,y(a,l)},render:function A(_,b){let M=!1,C=!0===b.isScene?b.background:null;C&&C.isTexture&&(C=(b.backgroundBlurriness>0?e:t).get(C)),null===C?y(a,l):C&&C.isColor&&(y(C,1),M=!0);const E=n.xr.getEnvironmentBlendMode();"additive"===E?i.buffers.color.setClear(0,0,0,1,s):"alpha-blend"===E&&i.buffers.color.setClear(0,0,0,0,s),(n.autoClear||M)&&n.clear(n.autoClearColor,n.autoClearDepth,n.autoClearStencil),C&&(C.isCubeTexture||C.mapping===tw)?(void 0===d&&(d=new Br(new Ad(1,1,1),new ec({name:"BackgroundCubeMaterial",uniforms:P_(mu.backgroundCube.uniforms),vertexShader:mu.backgroundCube.vertexShader,fragmentShader:mu.backgroundCube.fragmentShader,side:1,depthTest:!1,depthWrite:!1,fog:!1})),d.geometry.deleteAttribute("normal"),d.geometry.deleteAttribute("uv"),d.onBeforeRender=function(I,V,R){this.matrixWorld.copyPosition(R.matrixWorld)},Object.defineProperty(d.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),r.update(d)),d.material.uniforms.envMap.value=C,d.material.uniforms.flipEnvMap.value=C.isCubeTexture&&!1===C.isRenderTargetTexture?-1:1,d.material.uniforms.backgroundBlurriness.value=b.backgroundBlurriness,d.material.uniforms.backgroundIntensity.value=b.backgroundIntensity,d.material.toneMapped=C.colorSpace!==fo,(u!==C||h!==C.version||f!==n.toneMapping)&&(d.material.needsUpdate=!0,u=C,h=C.version,f=n.toneMapping),d.layers.enableAll(),_.unshift(d,d.geometry,d.material,0,0,null)):C&&C.isTexture&&(void 0===c&&(c=new Br(new dw(2,2),new ec({name:"BackgroundMaterial",uniforms:P_(mu.background.uniforms),vertexShader:mu.background.vertexShader,fragmentShader:mu.background.fragmentShader,side:0,depthTest:!1,depthWrite:!1,fog:!1})),c.geometry.deleteAttribute("normal"),Object.defineProperty(c.material,"map",{get:function(){return this.uniforms.t2D.value}}),r.update(c)),c.material.uniforms.t2D.value=C,c.material.uniforms.backgroundIntensity.value=b.backgroundIntensity,c.material.toneMapped=C.colorSpace!==fo,!0===C.matrixAutoUpdate&&C.updateMatrix(),c.material.uniforms.uvTransform.value.copy(C.matrix),(u!==C||h!==C.version||f!==n.toneMapping)&&(c.material.needsUpdate=!0,u=C,h=C.version,f=n.toneMapping),c.layers.enableAll(),_.unshift(c,c.geometry,c.material,0,0,null))}}}function W2e(n,t,e,i){const r=n.getParameter(n.MAX_VERTEX_ATTRIBS),o=i.isWebGL2?null:t.get("OES_vertex_array_object"),s=i.isWebGL2||null!==o,a={},l=_(null);let c=l,d=!1;function f(Z){return i.isWebGL2?n.bindVertexArray(Z):o.bindVertexArrayOES(Z)}function A(Z){return i.isWebGL2?n.deleteVertexArray(Z):o.deleteVertexArrayOES(Z)}function _(Z){const ve=[],re=[],oe=[];for(let ae=0;ae=0){const _e=ae[Ke];let fe=Ce[Ke];if(void 0===fe&&("instanceMatrix"===Ke&&Z.instanceMatrix&&(fe=Z.instanceMatrix),"instanceColor"===Ke&&Z.instanceColor&&(fe=Z.instanceColor)),void 0===_e||_e.attribute!==fe||fe&&_e.data!==fe.data)return!0;Qe++}return c.attributesNum!==Qe||c.index!==oe}(Z,oe,re,ae),Ce&&function M(Z,ve,re,oe){const ae={},Ce=ve.attributes;let Qe=0;const Ie=re.getAttributes();for(const Ke in Ie)if(Ie[Ke].location>=0){let _e=Ce[Ke];void 0===_e&&("instanceMatrix"===Ke&&Z.instanceMatrix&&(_e=Z.instanceMatrix),"instanceColor"===Ke&&Z.instanceColor&&(_e=Z.instanceColor));const fe={};fe.attribute=_e,_e&&_e.data&&(fe.data=_e.data),ae[Ke]=fe,Qe++}c.attributes=ae,c.attributesNum=Qe,c.index=oe}(Z,oe,re,ae)}else{const Qe=!0===ve.wireframe;(c.geometry!==oe.id||c.program!==re.id||c.wireframe!==Qe)&&(c.geometry=oe.id,c.program=re.id,c.wireframe=Qe,Ce=!0)}null!==ae&&e.update(ae,n.ELEMENT_ARRAY_BUFFER),(Ce||d)&&(d=!1,function K(Z,ve,re,oe){if(!1===i.isWebGL2&&(Z.isInstancedMesh||oe.isInstancedBufferGeometry)&&null===t.get("ANGLE_instanced_arrays"))return;C();const ae=oe.attributes,Ce=re.getAttributes(),Qe=ve.defaultAttributeValues;for(const Ie in Ce){const Ke=Ce[Ie];if(Ke.location>=0){let Nt=ae[Ie];if(void 0===Nt&&("instanceMatrix"===Ie&&Z.instanceMatrix&&(Nt=Z.instanceMatrix),"instanceColor"===Ie&&Z.instanceColor&&(Nt=Z.instanceColor)),void 0!==Nt){const _e=Nt.normalized,fe=Nt.itemSize,se=e.get(Nt);if(void 0===se)continue;const J=se.buffer,Ye=se.type,Ft=se.bytesPerElement,lt=!0===i.isWebGL2&&(Ye===n.INT||Ye===n.UNSIGNED_INT||1013===Nt.gpuType);if(Nt.isInterleavedBufferAttribute){const Tt=Nt.data,me=Tt.stride,mt=Nt.offset;if(Tt.isInstancedInterleavedBuffer){for(let Pe=0;Pe0&&n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_FLOAT).precision>0)return"highp";R="mediump"}return"mediump"===R&&n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_FLOAT).precision>0&&n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}const s=typeof WebGL2RenderingContext<"u"&&"WebGL2RenderingContext"===n.constructor.name;let a=void 0!==e.precision?e.precision:"highp";const l=o(a);l!==a&&(console.warn("THREE.WebGLRenderer:",a,"not supported, using",l,"instead."),a=l);const c=s||t.has("WEBGL_draw_buffers"),d=!0===e.logarithmicDepthBuffer,u=n.getParameter(n.MAX_TEXTURE_IMAGE_UNITS),h=n.getParameter(n.MAX_VERTEX_TEXTURE_IMAGE_UNITS),f=n.getParameter(n.MAX_TEXTURE_SIZE),A=n.getParameter(n.MAX_CUBE_MAP_TEXTURE_SIZE),y=n.getParameter(n.MAX_VERTEX_ATTRIBS),_=n.getParameter(n.MAX_VERTEX_UNIFORM_VECTORS),b=n.getParameter(n.MAX_VARYING_VECTORS),M=n.getParameter(n.MAX_FRAGMENT_UNIFORM_VECTORS),C=h>0,E=s||t.has("OES_texture_float");return{isWebGL2:s,drawBuffers:c,getMaxAnisotropy:function r(){if(void 0!==i)return i;if(!0===t.has("EXT_texture_filter_anisotropic")){const R=t.get("EXT_texture_filter_anisotropic");i=n.getParameter(R.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else i=0;return i},getMaxPrecision:o,precision:a,logarithmicDepthBuffer:d,maxTextures:u,maxVertexTextures:h,maxTextureSize:f,maxCubemapSize:A,maxAttributes:y,maxVertexUniforms:_,maxVaryings:b,maxFragmentUniforms:M,vertexTextures:C,floatFragmentTextures:E,floatVertexTextures:C&&E,maxSamples:s?n.getParameter(n.MAX_SAMPLES):0}}function X2e(n){const t=this;let e=null,i=0,r=!1,o=!1;const s=new wm,a=new Ci,l={value:null,needsUpdate:!1};function d(u,h,f,A){const y=null!==u?u.length:0;let _=null;if(0!==y){if(_=l.value,!0!==A||null===_){const b=f+4*y,M=h.matrixWorldInverse;a.getNormalMatrix(M),(null===_||_.length0),t.numPlanes=i,t.numIntersection=0}();else{const M=o?0:i,C=4*M;let E=b.clippingState||null;l.value=E,E=d(A,h,C,f);for(let I=0;I!==C;++I)E[I]=e[I];b.clippingState=E,this.numIntersection=y?this.numPlanes:0,this.numPlanes+=M}}}function K2e(n){let t=new WeakMap;function e(s,a){return 303===a?s.mapping=pm:304===a&&(s.mapping=fA),s}function r(s){const a=s.target;a.removeEventListener("dispose",r);const l=t.get(a);void 0!==l&&(t.delete(a),l.dispose())}return{get:function i(s){if(s&&s.isTexture&&!1===s.isRenderTargetTexture){const a=s.mapping;if(303===a||304===a){if(t.has(s))return e(t.get(s).texture,s.mapping);{const l=s.image;if(l&&l.height>0){const c=new qMe(l.height/2);return c.fromEquirectangularTexture(n,s),t.set(s,c),s.addEventListener("dispose",r),e(c.texture,s.mapping)}return null}}}return s},dispose:function o(){t=new WeakMap}}}class vS extends P4{constructor(t=-1,e=1,i=1,r=-1,o=.1,s=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=t,this.right=e,this.top=i,this.bottom=r,this.near=o,this.far=s,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.left=t.left,this.right=t.right,this.top=t.top,this.bottom=t.bottom,this.near=t.near,this.far=t.far,this.zoom=t.zoom,this.view=null===t.view?null:Object.assign({},t.view),this}setViewOffset(t,e,i,r,o,s){null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=i,this.view.offsetY=r,this.view.width=o,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=(this.right-this.left)/(2*this.zoom),e=(this.top-this.bottom)/(2*this.zoom),i=(this.right+this.left)/2,r=(this.top+this.bottom)/2;let o=i-t,s=i+t,a=r+e,l=r-e;if(null!==this.view&&this.view.enabled){const c=(this.right-this.left)/this.view.fullWidth/this.zoom,d=(this.top-this.bottom)/this.view.fullHeight/this.zoom;o+=c*this.view.offsetX,s=o+c*this.view.width,a-=d*this.view.offsetY,l=a-d*this.view.height}this.projectionMatrix.makeOrthographic(o,s,a,l,this.near,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.zoom=this.zoom,e.object.left=this.left,e.object.right=this.right,e.object.top=this.top,e.object.bottom=this.bottom,e.object.near=this.near,e.object.far=this.far,null!==this.view&&(e.object.view=Object.assign({},this.view)),e}}const IX=[.125,.215,.35,.446,.526,.582],O4=new vS,FX=new an;let N4=null;const SA=(1+Math.sqrt(5))/2,N_=1/SA,DX=[new ie(1,1,1),new ie(-1,1,1),new ie(1,1,-1),new ie(-1,1,-1),new ie(0,SA,N_),new ie(0,SA,-N_),new ie(N_,0,SA),new ie(-N_,0,SA),new ie(SA,N_,0),new ie(-SA,N_,0)];class kX{constructor(t){this._renderer=t,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(t,e=0,i=.1,r=100){N4=this._renderer.getRenderTarget(),this._setSize(256);const o=this._allocateTargets();return o.depthBuffer=!0,this._sceneToCubeUV(t,i,r,o),e>0&&this._blur(o,0,0,e),this._applyPMREM(o),this._cleanup(o),o}fromEquirectangular(t,e=null){return this._fromTexture(t,e)}fromCubemap(t,e=null){return this._fromTexture(t,e)}compileCubemapShader(){null===this._cubemapMaterial&&(this._cubemapMaterial=RX(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){null===this._equirectMaterial&&(this._equirectMaterial=PX(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),null!==this._cubemapMaterial&&this._cubemapMaterial.dispose(),null!==this._equirectMaterial&&this._equirectMaterial.dispose()}_setSize(t){this._lodMax=Math.floor(Math.log2(t)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){null!==this._blurMaterial&&this._blurMaterial.dispose(),null!==this._pingPongRenderTarget&&this._pingPongRenderTarget.dispose();for(let t=0;tn-4?l=IX[s-n+4-1]:0===s&&(l=0),i.push(l);const c=1/(a-2),d=-c,u=1+c,h=[d,d,u,d,u,u,d,d,u,u,d,u],f=6,A=6,y=3,_=2,b=1,M=new Float32Array(y*A*f),C=new Float32Array(_*A*f),E=new Float32Array(b*A*f);for(let V=0;V2?0:-1;M.set([R,K,0,R+2/3,K,0,R+2/3,K+1,0,R,K,0,R+2/3,K+1,0,R,K+1,0],y*A*V),C.set(h,_*A*V),E.set([V,V,V,V,V,V],b*A*V)}const I=new vi;I.setAttribute("position",new rr(M,y)),I.setAttribute("uv",new rr(C,_)),I.setAttribute("faceIndex",new rr(E,b)),t.push(I),r>4&&r--}return{lodPlanes:t,sizeLods:e,sigmas:i}}(o)),this._blurMaterial=function Z2e(n,t,e){const i=new Float32Array(20),r=new ie(0,1,0);return new ec({name:"SphericalGaussianBlur",defines:{n:20,CUBEUV_TEXEL_WIDTH:1/t,CUBEUV_TEXEL_HEIGHT:1/e,CUBEUV_MAX_MIP:`${n}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:i},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:r}},vertexShader:"\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",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:0,depthTest:!1,depthWrite:!1})}(o,t,e)}return r}_compileMaterial(t){const e=new Br(this._lodPlanes[0],t);this._renderer.compile(e,O4)}_sceneToCubeUV(t,e,i,r){const a=new Ls(90,1,e,i),l=[1,-1,1,1,1,1],c=[1,1,1,-1,-1,-1],d=this._renderer,u=d.autoClear,h=d.toneMapping;d.getClearColor(FX),d.toneMapping=mm,d.autoClear=!1;const f=new zh({name:"PMREM.Background",side:1,depthWrite:!1,depthTest:!1}),A=new Br(new Ad,f);let y=!1;const _=t.background;_?_.isColor&&(f.color.copy(_),t.background=null,y=!0):(f.color.copy(FX),y=!0);for(let b=0;b<6;b++){const M=b%3;0===M?(a.up.set(0,l[b],0),a.lookAt(c[b],0,0)):1===M?(a.up.set(0,0,l[b]),a.lookAt(0,c[b],0)):(a.up.set(0,l[b],0),a.lookAt(0,0,c[b]));const C=this._cubeSize;yS(r,M*C,b>2?C:0,C,C),d.setRenderTarget(r),y&&d.render(A,a),d.render(t,a)}A.geometry.dispose(),A.material.dispose(),d.toneMapping=h,d.autoClear=u,t.background=_}_textureToCubeUV(t,e){const i=this._renderer,r=t.mapping===pm||t.mapping===fA;r?(null===this._cubemapMaterial&&(this._cubemapMaterial=RX()),this._cubemapMaterial.uniforms.flipEnvMap.value=!1===t.isRenderTargetTexture?-1:1):null===this._equirectMaterial&&(this._equirectMaterial=PX());const o=r?this._cubemapMaterial:this._equirectMaterial,s=new Br(this._lodPlanes[0],o);o.uniforms.envMap.value=t;const l=this._cubeSize;yS(e,0,0,3*l,2*l),i.setRenderTarget(e),i.render(s,O4)}_applyPMREM(t){const e=this._renderer,i=e.autoClear;e.autoClear=!1;for(let r=1;r20&&console.warn(`sigmaRadians, ${o}, is too large and will clip, as it requested ${_} samples when the maximum is set to 20`);const b=[];let M=0;for(let R=0;R<20;++R){const K=R/y,k=Math.exp(-K*K/2);b.push(k),0===R?M+=k:R<_&&(M+=2*k)}for(let R=0;RC-4?r-C+4:0),4*(this._cubeSize-E),3*E,2*E),l.setRenderTarget(e),l.render(u,O4)}}function BX(n,t,e){const i=new Fc(n,t,e);return i.texture.mapping=tw,i.texture.name="PMREM.cubeUv",i.scissorTest=!0,i}function yS(n,t,e,i,r){n.viewport.set(t,e,i,r),n.scissor.set(t,e,i,r)}function PX(){return new ec({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:"\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",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:0,depthTest:!1,depthWrite:!1})}function RX(){return new ec({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:"\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",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:0,depthTest:!1,depthWrite:!1})}function J2e(n){let t=new WeakMap,e=null;function o(a){const l=a.target;l.removeEventListener("dispose",o);const c=t.get(l);void 0!==c&&(t.delete(l),c.dispose())}return{get:function i(a){if(a&&a.isTexture){const l=a.mapping,c=303===l||304===l,d=l===pm||l===fA;if(c||d){if(a.isRenderTargetTexture&&!0===a.needsPMREMUpdate){a.needsPMREMUpdate=!1;let u=t.get(a);return null===e&&(e=new kX(n)),u=c?e.fromEquirectangular(a,u):e.fromCubemap(a,u),t.set(a,u),u.texture}if(t.has(a))return t.get(a).texture;{const u=a.image;if(c&&u&&u.height>0||d&&u&&function r(a){let l=0;for(let d=0;d<6;d++)void 0!==a[d]&&l++;return 6===l}(u)){null===e&&(e=new kX(n));const h=c?e.fromEquirectangular(a):e.fromCubemap(a);return t.set(a,h),a.addEventListener("dispose",o),h.texture}return null}}}return a},dispose:function s(){t=new WeakMap,null!==e&&(e.dispose(),e=null)}}}function eSe(n){const t={};function e(i){if(void 0!==t[i])return t[i];let r;switch(i){case"WEBGL_depth_texture":r=n.getExtension("WEBGL_depth_texture")||n.getExtension("MOZ_WEBGL_depth_texture")||n.getExtension("WEBKIT_WEBGL_depth_texture");break;case"EXT_texture_filter_anisotropic":r=n.getExtension("EXT_texture_filter_anisotropic")||n.getExtension("MOZ_EXT_texture_filter_anisotropic")||n.getExtension("WEBKIT_EXT_texture_filter_anisotropic");break;case"WEBGL_compressed_texture_s3tc":r=n.getExtension("WEBGL_compressed_texture_s3tc")||n.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||n.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");break;case"WEBGL_compressed_texture_pvrtc":r=n.getExtension("WEBGL_compressed_texture_pvrtc")||n.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");break;default:r=n.getExtension(i)}return t[i]=r,r}return{has:function(i){return null!==e(i)},init:function(i){i.isWebGL2?e("EXT_color_buffer_float"):(e("WEBGL_depth_texture"),e("OES_texture_float"),e("OES_texture_half_float"),e("OES_texture_half_float_linear"),e("OES_standard_derivatives"),e("OES_element_index_uint"),e("OES_vertex_array_object"),e("ANGLE_instanced_arrays")),e("OES_texture_float_linear"),e("EXT_color_buffer_half_float"),e("WEBGL_multisampled_render_to_texture")},get:function(i){const r=e(i);return null===r&&console.warn("THREE.WebGLRenderer: "+i+" extension not supported."),r}}}function tSe(n,t,e,i){const r={},o=new WeakMap;function s(u){const h=u.target;null!==h.index&&t.remove(h.index);for(const A in h.attributes)t.remove(h.attributes[A]);for(const A in h.morphAttributes){const y=h.morphAttributes[A];for(let _=0,b=y.length;_t.maxTextureSize&&(W=Math.ceil(k/t.maxTextureSize),k=t.maxTextureSize);const ue=new Float32Array(k*W*4*A),Se=new _4(ue,k,W,A);Se.type=Ph,Se.needsUpdate=!0;const Me=4*K;for(let ve=0;ve0)return n;const r=t*e;let o=HX[r];if(void 0===o&&(o=new Float32Array(r),HX[r]=o),0!==t){i.toArray(o,0);for(let s=1,a=0;s!==t;++s)a+=e,n[s].toArray(o,a)}return o}function Os(n,t){if(n.length!==t.length)return!1;for(let e=0,i=n.length;e":" "} ${a}: ${e[s]}`)}return i.join("\n")}(n.getShaderSource(t),s)}return r}function tTe(n,t){const e=function eTe(n){switch(n){case fu:return["Linear","( value )"];case fo:return["sRGB","( value )"];default:return console.warn("THREE.WebGLProgram: Unsupported color space:",n),["Linear","( value )"]}}(t);return"vec4 "+n+"( vec4 value ) { return LinearTo"+e[0]+e[1]+"; }"}function nTe(n,t){let e;switch(t){case SCe:e="Linear";break;case TCe:e="Reinhard";break;case ICe:e="OptimizedCineon";break;case FCe:e="ACESFilmic";break;case DCe:e="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",t),e="Linear"}return"vec3 "+n+"( vec3 color ) { return "+e+"ToneMapping( color ); }"}function uw(n){return""!==n}function jX(n,t){const e=t.numSpotLightShadows+t.numSpotLightMaps-t.numSpotLightShadowsWithMaps;return n.replace(/NUM_DIR_LIGHTS/g,t.numDirLights).replace(/NUM_SPOT_LIGHTS/g,t.numSpotLights).replace(/NUM_SPOT_LIGHT_MAPS/g,t.numSpotLightMaps).replace(/NUM_SPOT_LIGHT_COORDS/g,e).replace(/NUM_RECT_AREA_LIGHTS/g,t.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,t.numPointLights).replace(/NUM_HEMI_LIGHTS/g,t.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g,t.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS/g,t.numSpotLightShadowsWithMaps).replace(/NUM_SPOT_LIGHT_SHADOWS/g,t.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g,t.numPointLightShadows)}function XX(n,t){return n.replace(/NUM_CLIPPING_PLANES/g,t.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,t.numClippingPlanes-t.numClipIntersection)}const sTe=/^[ \t]*#include +<([\w\d./]+)>/gm;function V4(n){return n.replace(sTe,lTe)}const aTe=new Map([["encodings_fragment","colorspace_fragment"],["encodings_pars_fragment","colorspace_pars_fragment"],["output_fragment","opaque_fragment"]]);function lTe(n,t){let e=Qi[t];if(void 0===e){const i=aTe.get(t);if(void 0===i)throw new Error("Can not resolve #include <"+t+">");e=Qi[i],console.warn('THREE.WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.',t,i)}return V4(e)}const cTe=/#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 KX(n){return n.replace(cTe,dTe)}function dTe(n,t,e,i){let r="";for(let o=parseInt(t);o0&&(_+="\n"),b=[f,"#define SHADER_TYPE "+e.shaderType,"#define SHADER_NAME "+e.shaderName,A].filter(uw).join("\n"),b.length>0&&(b+="\n")):(_=[YX(e),"#define SHADER_TYPE "+e.shaderType,"#define SHADER_NAME "+e.shaderName,A,e.instancing?"#define USE_INSTANCING":"",e.instancingColor?"#define USE_INSTANCING_COLOR":"",e.useFog&&e.fog?"#define USE_FOG":"",e.useFog&&e.fogExp2?"#define FOG_EXP2":"",e.map?"#define USE_MAP":"",e.envMap?"#define USE_ENVMAP":"",e.envMap?"#define "+d:"",e.lightMap?"#define USE_LIGHTMAP":"",e.aoMap?"#define USE_AOMAP":"",e.bumpMap?"#define USE_BUMPMAP":"",e.normalMap?"#define USE_NORMALMAP":"",e.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",e.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",e.displacementMap?"#define USE_DISPLACEMENTMAP":"",e.emissiveMap?"#define USE_EMISSIVEMAP":"",e.anisotropyMap?"#define USE_ANISOTROPYMAP":"",e.clearcoatMap?"#define USE_CLEARCOATMAP":"",e.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",e.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",e.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",e.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",e.specularMap?"#define USE_SPECULARMAP":"",e.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",e.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",e.roughnessMap?"#define USE_ROUGHNESSMAP":"",e.metalnessMap?"#define USE_METALNESSMAP":"",e.alphaMap?"#define USE_ALPHAMAP":"",e.alphaHash?"#define USE_ALPHAHASH":"",e.transmission?"#define USE_TRANSMISSION":"",e.transmissionMap?"#define USE_TRANSMISSIONMAP":"",e.thicknessMap?"#define USE_THICKNESSMAP":"",e.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",e.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",e.mapUv?"#define MAP_UV "+e.mapUv:"",e.alphaMapUv?"#define ALPHAMAP_UV "+e.alphaMapUv:"",e.lightMapUv?"#define LIGHTMAP_UV "+e.lightMapUv:"",e.aoMapUv?"#define AOMAP_UV "+e.aoMapUv:"",e.emissiveMapUv?"#define EMISSIVEMAP_UV "+e.emissiveMapUv:"",e.bumpMapUv?"#define BUMPMAP_UV "+e.bumpMapUv:"",e.normalMapUv?"#define NORMALMAP_UV "+e.normalMapUv:"",e.displacementMapUv?"#define DISPLACEMENTMAP_UV "+e.displacementMapUv:"",e.metalnessMapUv?"#define METALNESSMAP_UV "+e.metalnessMapUv:"",e.roughnessMapUv?"#define ROUGHNESSMAP_UV "+e.roughnessMapUv:"",e.anisotropyMapUv?"#define ANISOTROPYMAP_UV "+e.anisotropyMapUv:"",e.clearcoatMapUv?"#define CLEARCOATMAP_UV "+e.clearcoatMapUv:"",e.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+e.clearcoatNormalMapUv:"",e.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+e.clearcoatRoughnessMapUv:"",e.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+e.iridescenceMapUv:"",e.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+e.iridescenceThicknessMapUv:"",e.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+e.sheenColorMapUv:"",e.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+e.sheenRoughnessMapUv:"",e.specularMapUv?"#define SPECULARMAP_UV "+e.specularMapUv:"",e.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+e.specularColorMapUv:"",e.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+e.specularIntensityMapUv:"",e.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+e.transmissionMapUv:"",e.thicknessMapUv?"#define THICKNESSMAP_UV "+e.thicknessMapUv:"",e.vertexTangents&&!1===e.flatShading?"#define USE_TANGENT":"",e.vertexColors?"#define USE_COLOR":"",e.vertexAlphas?"#define USE_COLOR_ALPHA":"",e.vertexUv1s?"#define USE_UV1":"",e.vertexUv2s?"#define USE_UV2":"",e.vertexUv3s?"#define USE_UV3":"",e.pointsUvs?"#define USE_POINTS_UV":"",e.flatShading?"#define FLAT_SHADED":"",e.skinning?"#define USE_SKINNING":"",e.morphTargets?"#define USE_MORPHTARGETS":"",e.morphNormals&&!1===e.flatShading?"#define USE_MORPHNORMALS":"",e.morphColors&&e.isWebGL2?"#define USE_MORPHCOLORS":"",e.morphTargetsCount>0&&e.isWebGL2?"#define MORPHTARGETS_TEXTURE":"",e.morphTargetsCount>0&&e.isWebGL2?"#define MORPHTARGETS_TEXTURE_STRIDE "+e.morphTextureStride:"",e.morphTargetsCount>0&&e.isWebGL2?"#define MORPHTARGETS_COUNT "+e.morphTargetsCount:"",e.doubleSided?"#define DOUBLE_SIDED":"",e.flipSided?"#define FLIP_SIDED":"",e.shadowMapEnabled?"#define USE_SHADOWMAP":"",e.shadowMapEnabled?"#define "+l:"",e.sizeAttenuation?"#define USE_SIZEATTENUATION":"",e.useLegacyLights?"#define LEGACY_LIGHTS":"",e.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",e.logarithmicDepthBuffer&&e.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_UV1","\tattribute vec2 uv1;","#endif","#ifdef USE_UV2","\tattribute vec2 uv2;","#endif","#ifdef USE_UV3","\tattribute vec2 uv3;","#endif","#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(uw).join("\n"),b=[f,YX(e),"#define SHADER_TYPE "+e.shaderType,"#define SHADER_NAME "+e.shaderName,A,e.useFog&&e.fog?"#define USE_FOG":"",e.useFog&&e.fogExp2?"#define FOG_EXP2":"",e.map?"#define USE_MAP":"",e.matcap?"#define USE_MATCAP":"",e.envMap?"#define USE_ENVMAP":"",e.envMap?"#define "+c:"",e.envMap?"#define "+d:"",e.envMap?"#define "+u:"",h?"#define CUBEUV_TEXEL_WIDTH "+h.texelWidth:"",h?"#define CUBEUV_TEXEL_HEIGHT "+h.texelHeight:"",h?"#define CUBEUV_MAX_MIP "+h.maxMip+".0":"",e.lightMap?"#define USE_LIGHTMAP":"",e.aoMap?"#define USE_AOMAP":"",e.bumpMap?"#define USE_BUMPMAP":"",e.normalMap?"#define USE_NORMALMAP":"",e.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",e.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",e.emissiveMap?"#define USE_EMISSIVEMAP":"",e.anisotropy?"#define USE_ANISOTROPY":"",e.anisotropyMap?"#define USE_ANISOTROPYMAP":"",e.clearcoat?"#define USE_CLEARCOAT":"",e.clearcoatMap?"#define USE_CLEARCOATMAP":"",e.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",e.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",e.iridescence?"#define USE_IRIDESCENCE":"",e.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",e.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",e.specularMap?"#define USE_SPECULARMAP":"",e.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",e.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",e.roughnessMap?"#define USE_ROUGHNESSMAP":"",e.metalnessMap?"#define USE_METALNESSMAP":"",e.alphaMap?"#define USE_ALPHAMAP":"",e.alphaTest?"#define USE_ALPHATEST":"",e.alphaHash?"#define USE_ALPHAHASH":"",e.sheen?"#define USE_SHEEN":"",e.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",e.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",e.transmission?"#define USE_TRANSMISSION":"",e.transmissionMap?"#define USE_TRANSMISSIONMAP":"",e.thicknessMap?"#define USE_THICKNESSMAP":"",e.vertexTangents&&!1===e.flatShading?"#define USE_TANGENT":"",e.vertexColors||e.instancingColor?"#define USE_COLOR":"",e.vertexAlphas?"#define USE_COLOR_ALPHA":"",e.vertexUv1s?"#define USE_UV1":"",e.vertexUv2s?"#define USE_UV2":"",e.vertexUv3s?"#define USE_UV3":"",e.pointsUvs?"#define USE_POINTS_UV":"",e.gradientMap?"#define USE_GRADIENTMAP":"",e.flatShading?"#define FLAT_SHADED":"",e.doubleSided?"#define DOUBLE_SIDED":"",e.flipSided?"#define FLIP_SIDED":"",e.shadowMapEnabled?"#define USE_SHADOWMAP":"",e.shadowMapEnabled?"#define "+l:"",e.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",e.useLegacyLights?"#define LEGACY_LIGHTS":"",e.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",e.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",e.logarithmicDepthBuffer&&e.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",e.toneMapping!==mm?"#define TONE_MAPPING":"",e.toneMapping!==mm?Qi.tonemapping_pars_fragment:"",e.toneMapping!==mm?nTe("toneMapping",e.toneMapping):"",e.dithering?"#define DITHERING":"",e.opaque?"#define OPAQUE":"",Qi.colorspace_pars_fragment,tTe("linearToOutputTexel",e.outputColorSpace),e.useDepthPacking?"#define DEPTH_PACKING "+e.depthPacking:"","\n"].filter(uw).join("\n")),s=V4(s),s=jX(s,e),s=XX(s,e),a=V4(a),a=jX(a,e),a=XX(a,e),s=KX(s),a=KX(a),e.isWebGL2&&!0!==e.isRawShaderMaterial&&(M="#version 300 es\n",_=["precision mediump sampler2DArray;","#define attribute in","#define varying out","#define texture2D texture"].join("\n")+"\n"+_,b=["#define varying in",e.glslVersion===rX?"":"layout(location = 0) out highp vec4 pc_fragColor;",e.glslVersion===rX?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join("\n")+"\n"+b);const E=M+b+a,I=WX(r,r.VERTEX_SHADER,M+_+s),V=WX(r,r.FRAGMENT_SHADER,E);if(r.attachShader(y,I),r.attachShader(y,V),void 0!==e.index0AttributeName?r.bindAttribLocation(y,0,e.index0AttributeName):!0===e.morphTargets&&r.bindAttribLocation(y,0,"position"),r.linkProgram(y),n.debug.checkShaderErrors){const k=r.getProgramInfoLog(y).trim(),W=r.getShaderInfoLog(I).trim(),ue=r.getShaderInfoLog(V).trim();let Se=!0,Me=!0;if(!1===r.getProgramParameter(y,r.LINK_STATUS))if(Se=!1,"function"==typeof n.debug.onShaderError)n.debug.onShaderError(r,y,I,V);else{const Z=$X(r,I,"vertex"),ve=$X(r,V,"fragment");console.error("THREE.WebGLProgram: Shader Error "+r.getError()+" - VALIDATE_STATUS "+r.getProgramParameter(y,r.VALIDATE_STATUS)+"\n\nProgram Info Log: "+k+"\n"+Z+"\n"+ve)}else""!==k?console.warn("THREE.WebGLProgram: Program Info Log:",k):(""===W||""===ue)&&(Me=!1);Me&&(this.diagnostics={runnable:Se,programLog:k,vertexShader:{log:W,prefix:_},fragmentShader:{log:ue,prefix:b}})}let R,K;return r.deleteShader(I),r.deleteShader(V),this.getUniforms=function(){return void 0===R&&(R=new xS(r,y)),R},this.getAttributes=function(){return void 0===K&&(K=function oTe(n,t){const e={},i=n.getProgramParameter(t,n.ACTIVE_ATTRIBUTES);for(let r=0;r0,Tn=k.clearcoat>0,sr=k.iridescence>0,ye=k.sheen>0,ne=k.transmission>0,bt=zt&&!!k.anisotropyMap,Jt=Tn&&!!k.clearcoatMap,jt=Tn&&!!k.clearcoatNormalMap,en=Tn&&!!k.clearcoatRoughnessMap,zn=sr&&!!k.iridescenceMap,nn=sr&&!!k.iridescenceThicknessMap,St=ye&&!!k.sheenColorMap,Re=ye&&!!k.sheenRoughnessMap,Gt=!!k.specularMap,bn=!!k.specularColorMap,fn=!!k.specularIntensityMap,Cn=ne&&!!k.transmissionMap,Ii=ne&&!!k.thicknessMap,Xe=!!k.alphaMap,sn=!!k.extensions,dn=!!ve.attributes.uv1,ar=!!ve.attributes.uv2,zr=!!ve.attributes.uv3;let po=mm;return k.toneMapped&&(null===J||!0===J.isXRRenderTarget)&&(po=n.toneMapping),{isWebGL2:d,shaderID:Ce,shaderType:k.type,shaderName:k.name,vertexShader:Nt,fragmentShader:_e,defines:k.defines,customVertexShaderID:fe,customFragmentShaderID:se,isRawShaderMaterial:!0===k.isRawShaderMaterial,glslVersion:k.glslVersion,precision:f,instancing:Ye,instancingColor:Ye&&null!==Me.instanceColor,supportsVertexTextures:h,outputColorSpace:null===J?n.outputColorSpace:!0===J.isXRRenderTarget?J.texture.colorSpace:fu,map:Ft,matcap:!!k.matcap,envMap:Tt,envMapMode:Tt&&oe.mapping,envMapCubeUVHeight:ae,aoMap:me,lightMap:mt,bumpMap:Pe,normalMap:ot,displacementMap:h&&ft,emissiveMap:_t,normalMapObjectSpace:ot&&1===k.normalMapType,normalMapTangentSpace:ot&&0===k.normalMapType,metalnessMap:Ee,roughnessMap:Ae,anisotropy:zt,anisotropyMap:bt,clearcoat:Tn,clearcoatMap:Jt,clearcoatNormalMap:jt,clearcoatRoughnessMap:en,iridescence:sr,iridescenceMap:zn,iridescenceThicknessMap:nn,sheen:ye,sheenColorMap:St,sheenRoughnessMap:Re,specularMap:Gt,specularColorMap:bn,specularIntensityMap:fn,transmission:ne,transmissionMap:Cn,thicknessMap:Ii,gradientMap:!!k.gradientMap,opaque:!1===k.transparent&&1===k.blending,alphaMap:Xe,alphaTest:k.alphaTest>0,alphaHash:!!k.alphaHash,combine:k.combine,mapUv:Ft&&y(k.map.channel),aoMapUv:me&&y(k.aoMap.channel),lightMapUv:mt&&y(k.lightMap.channel),bumpMapUv:Pe&&y(k.bumpMap.channel),normalMapUv:ot&&y(k.normalMap.channel),displacementMapUv:ft&&y(k.displacementMap.channel),emissiveMapUv:_t&&y(k.emissiveMap.channel),metalnessMapUv:Ee&&y(k.metalnessMap.channel),roughnessMapUv:Ae&&y(k.roughnessMap.channel),anisotropyMapUv:bt&&y(k.anisotropyMap.channel),clearcoatMapUv:Jt&&y(k.clearcoatMap.channel),clearcoatNormalMapUv:jt&&y(k.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:en&&y(k.clearcoatRoughnessMap.channel),iridescenceMapUv:zn&&y(k.iridescenceMap.channel),iridescenceThicknessMapUv:nn&&y(k.iridescenceThicknessMap.channel),sheenColorMapUv:St&&y(k.sheenColorMap.channel),sheenRoughnessMapUv:Re&&y(k.sheenRoughnessMap.channel),specularMapUv:Gt&&y(k.specularMap.channel),specularColorMapUv:bn&&y(k.specularColorMap.channel),specularIntensityMapUv:fn&&y(k.specularIntensityMap.channel),transmissionMapUv:Cn&&y(k.transmissionMap.channel),thicknessMapUv:Ii&&y(k.thicknessMap.channel),alphaMapUv:Xe&&y(k.alphaMap.channel),vertexTangents:!!ve.attributes.tangent&&(ot||zt),vertexColors:k.vertexColors,vertexAlphas:!0===k.vertexColors&&!!ve.attributes.color&&4===ve.attributes.color.itemSize,vertexUv1s:dn,vertexUv2s:ar,vertexUv3s:zr,pointsUvs:!0===Me.isPoints&&!!ve.attributes.uv&&(Ft||Xe),fog:!!Z,useFog:!0===k.fog,fogExp2:Z&&Z.isFogExp2,flatShading:!0===k.flatShading,sizeAttenuation:!0===k.sizeAttenuation,logarithmicDepthBuffer:u,skinning:!0===Me.isSkinnedMesh,morphTargets:void 0!==ve.morphAttributes.position,morphNormals:void 0!==ve.morphAttributes.normal,morphColors:void 0!==ve.morphAttributes.color,morphTargetsCount:Ie,morphTextureStride:Ke,numDirLights:W.directional.length,numPointLights:W.point.length,numSpotLights:W.spot.length,numSpotLightMaps:W.spotLightMap.length,numRectAreaLights:W.rectArea.length,numHemiLights:W.hemi.length,numDirLightShadows:W.directionalShadowMap.length,numPointLightShadows:W.pointShadowMap.length,numSpotLightShadows:W.spotShadowMap.length,numSpotLightShadowsWithMaps:W.numSpotLightShadowsWithMaps,numClippingPlanes:s.numPlanes,numClipIntersection:s.numIntersection,dithering:k.dithering,shadowMapEnabled:n.shadowMap.enabled&&ue.length>0,shadowMapType:n.shadowMap.type,toneMapping:po,useLegacyLights:n._useLegacyLights,decodeVideoTexture:Ft&&!0===k.map.isVideoTexture&&k.map.colorSpace===fo,premultipliedAlpha:k.premultipliedAlpha,doubleSided:2===k.side,flipSided:1===k.side,useDepthPacking:k.depthPacking>=0,depthPacking:k.depthPacking||0,index0AttributeName:k.index0AttributeName,extensionDerivatives:sn&&!0===k.extensions.derivatives,extensionFragDepth:sn&&!0===k.extensions.fragDepth,extensionDrawBuffers:sn&&!0===k.extensions.drawBuffers,extensionShaderTextureLOD:sn&&!0===k.extensions.shaderTextureLOD,rendererExtensionFragDepth:d||i.has("EXT_frag_depth"),rendererExtensionDrawBuffers:d||i.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:d||i.has("EXT_shader_texture_lod"),customProgramCacheKey:k.customProgramCacheKey()}},getProgramCacheKey:function b(k){const W=[];if(k.shaderID?W.push(k.shaderID):(W.push(k.customVertexShaderID),W.push(k.customFragmentShaderID)),void 0!==k.defines)for(const ue in k.defines)W.push(ue),W.push(k.defines[ue]);return!1===k.isRawShaderMaterial&&(function M(k,W){k.push(W.precision),k.push(W.outputColorSpace),k.push(W.envMapMode),k.push(W.envMapCubeUVHeight),k.push(W.mapUv),k.push(W.alphaMapUv),k.push(W.lightMapUv),k.push(W.aoMapUv),k.push(W.bumpMapUv),k.push(W.normalMapUv),k.push(W.displacementMapUv),k.push(W.emissiveMapUv),k.push(W.metalnessMapUv),k.push(W.roughnessMapUv),k.push(W.anisotropyMapUv),k.push(W.clearcoatMapUv),k.push(W.clearcoatNormalMapUv),k.push(W.clearcoatRoughnessMapUv),k.push(W.iridescenceMapUv),k.push(W.iridescenceThicknessMapUv),k.push(W.sheenColorMapUv),k.push(W.sheenRoughnessMapUv),k.push(W.specularMapUv),k.push(W.specularColorMapUv),k.push(W.specularIntensityMapUv),k.push(W.transmissionMapUv),k.push(W.thicknessMapUv),k.push(W.combine),k.push(W.fogExp2),k.push(W.sizeAttenuation),k.push(W.morphTargetsCount),k.push(W.morphAttributeCount),k.push(W.numDirLights),k.push(W.numPointLights),k.push(W.numSpotLights),k.push(W.numSpotLightMaps),k.push(W.numHemiLights),k.push(W.numRectAreaLights),k.push(W.numDirLightShadows),k.push(W.numPointLightShadows),k.push(W.numSpotLightShadows),k.push(W.numSpotLightShadowsWithMaps),k.push(W.shadowMapType),k.push(W.toneMapping),k.push(W.numClippingPlanes),k.push(W.numClipIntersection),k.push(W.depthPacking)}(W,k),function C(k,W){a.disableAll(),W.isWebGL2&&a.enable(0),W.supportsVertexTextures&&a.enable(1),W.instancing&&a.enable(2),W.instancingColor&&a.enable(3),W.matcap&&a.enable(4),W.envMap&&a.enable(5),W.normalMapObjectSpace&&a.enable(6),W.normalMapTangentSpace&&a.enable(7),W.clearcoat&&a.enable(8),W.iridescence&&a.enable(9),W.alphaTest&&a.enable(10),W.vertexColors&&a.enable(11),W.vertexAlphas&&a.enable(12),W.vertexUv1s&&a.enable(13),W.vertexUv2s&&a.enable(14),W.vertexUv3s&&a.enable(15),W.vertexTangents&&a.enable(16),W.anisotropy&&a.enable(17),k.push(a.mask),a.disableAll(),W.fog&&a.enable(0),W.useFog&&a.enable(1),W.flatShading&&a.enable(2),W.logarithmicDepthBuffer&&a.enable(3),W.skinning&&a.enable(4),W.morphTargets&&a.enable(5),W.morphNormals&&a.enable(6),W.morphColors&&a.enable(7),W.premultipliedAlpha&&a.enable(8),W.shadowMapEnabled&&a.enable(9),W.useLegacyLights&&a.enable(10),W.doubleSided&&a.enable(11),W.flipSided&&a.enable(12),W.useDepthPacking&&a.enable(13),W.dithering&&a.enable(14),W.transmission&&a.enable(15),W.sheen&&a.enable(16),W.opaque&&a.enable(17),W.pointsUvs&&a.enable(18),W.decodeVideoTexture&&a.enable(19),k.push(a.mask)}(W,k),W.push(n.outputColorSpace)),W.push(k.customProgramCacheKey),W.join()},getUniforms:function E(k){const W=A[k.type];let ue;return ue=W?B4.clone(mu[W].uniforms):k.uniforms,ue},acquireProgram:function I(k,W){let ue;for(let Se=0,Me=c.length;Se0?i.push(b):!0===f.transparent?r.push(b):e.push(b)},unshift:function l(u,h,f,A,y,_){const b=s(u,h,f,A,y,_);f.transmission>0?i.unshift(b):!0===f.transparent?r.unshift(b):e.unshift(b)},finish:function d(){for(let u=t,h=n.length;u1&&e.sort(u||wTe),i.length>1&&i.sort(h||ZX),r.length>1&&r.sort(h||ZX)}}}function xTe(){let n=new WeakMap;return{get:function t(i,r){const o=n.get(i);let s;return void 0===o?(s=new JX,n.set(i,[s])):r>=o.length?(s=new JX,o.push(s)):s=o[r],s},dispose:function e(){n=new WeakMap}}}function CTe(){const n={};return{get:function(t){if(void 0!==n[t.id])return n[t.id];let e;switch(t.type){case"DirectionalLight":e={direction:new ie,color:new an};break;case"SpotLight":e={position:new ie,direction:new ie,color:new an,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":e={position:new ie,color:new an,distance:0,decay:0};break;case"HemisphereLight":e={direction:new ie,skyColor:new an,groundColor:new an};break;case"RectAreaLight":e={color:new an,position:new ie,halfWidth:new ie,halfHeight:new ie}}return n[t.id]=e,e}}}let ETe=0;function STe(n,t){return(t.castShadow?2:0)-(n.castShadow?2:0)+(t.map?1:0)-(n.map?1:0)}function TTe(n,t){const e=new CTe,i=function MTe(){const n={};return{get:function(t){if(void 0!==n[t.id])return n[t.id];let e;switch(t.type){case"DirectionalLight":case"SpotLight":e={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new at};break;case"PointLight":e={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new at,shadowCameraNear:1,shadowCameraFar:1e3}}return n[t.id]=e,e}}}(),r={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0};for(let d=0;d<9;d++)r.probe.push(new ie);const o=new ie,s=new Pi,a=new Pi;return{setup:function l(d,u){let h=0,f=0,A=0;for(let ue=0;ue<9;ue++)r.probe[ue].set(0,0,0);let y=0,_=0,b=0,M=0,C=0,E=0,I=0,V=0,R=0,K=0;d.sort(STe);const k=!0===u?Math.PI:1;for(let ue=0,Se=d.length;ue0&&(t.isWebGL2||!0===n.has("OES_texture_float_linear")?(r.rectAreaLTC1=An.LTC_FLOAT_1,r.rectAreaLTC2=An.LTC_FLOAT_2):!0===n.has("OES_texture_half_float_linear")?(r.rectAreaLTC1=An.LTC_HALF_1,r.rectAreaLTC2=An.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),r.ambient[0]=h,r.ambient[1]=f,r.ambient[2]=A;const W=r.hash;(W.directionalLength!==y||W.pointLength!==_||W.spotLength!==b||W.rectAreaLength!==M||W.hemiLength!==C||W.numDirectionalShadows!==E||W.numPointShadows!==I||W.numSpotShadows!==V||W.numSpotMaps!==R)&&(r.directional.length=y,r.spot.length=b,r.rectArea.length=M,r.point.length=_,r.hemi.length=C,r.directionalShadow.length=E,r.directionalShadowMap.length=E,r.pointShadow.length=I,r.pointShadowMap.length=I,r.spotShadow.length=V,r.spotShadowMap.length=V,r.directionalShadowMatrix.length=E,r.pointShadowMatrix.length=I,r.spotLightMatrix.length=V+R-K,r.spotLightMap.length=R,r.numSpotLightShadowsWithMaps=K,W.directionalLength=y,W.pointLength=_,W.spotLength=b,W.rectAreaLength=M,W.hemiLength=C,W.numDirectionalShadows=E,W.numPointShadows=I,W.numSpotShadows=V,W.numSpotMaps=R,r.version=ETe++)},setupView:function c(d,u){let h=0,f=0,A=0,y=0,_=0;const b=u.matrixWorldInverse;for(let M=0,C=d.length;M=a.length?(l=new eK(n,t),a.push(l)):l=a[s],l},dispose:function r(){e=new WeakMap}}}class tK extends Qa{constructor(t){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=3200,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(t)}copy(t){return super.copy(t),this.depthPacking=t.depthPacking,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this}}class nK extends Qa{constructor(t){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(t)}copy(t){return super.copy(t),this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this}}function kTe(n,t,e){let i=new L4;const r=new at,o=new at,s=new Xr,a=new tK({depthPacking:3201}),l=new nK,c={},d=e.maxTextureSize,u={0:1,1:0,2:2},h=new ec({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new at},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}"}),f=h.clone();f.defines.HORIZONTAL_PASS=1;const A=new vi;A.setAttribute("position",new rr(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const y=new Br(A,h),_=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=Aj;let b=this.type;function M(I,V){const R=t.update(y);h.defines.VSM_SAMPLES!==I.blurSamples&&(h.defines.VSM_SAMPLES=I.blurSamples,f.defines.VSM_SAMPLES=I.blurSamples,h.needsUpdate=!0,f.needsUpdate=!0),null===I.mapPass&&(I.mapPass=new Fc(r.x,r.y)),h.uniforms.shadow_pass.value=I.map.texture,h.uniforms.resolution.value=I.mapSize,h.uniforms.radius.value=I.radius,n.setRenderTarget(I.mapPass),n.clear(),n.renderBufferDirect(V,null,R,h,y,null),f.uniforms.shadow_pass.value=I.mapPass.texture,f.uniforms.resolution.value=I.mapSize,f.uniforms.radius.value=I.radius,n.setRenderTarget(I.map),n.clear(),n.renderBufferDirect(V,null,R,f,y,null)}function C(I,V,R,K){let k=null;const W=!0===R.isPointLight?I.customDistanceMaterial:I.customDepthMaterial;if(void 0!==W)k=W;else if(k=!0===R.isPointLight?l:a,n.localClippingEnabled&&!0===V.clipShadows&&Array.isArray(V.clippingPlanes)&&0!==V.clippingPlanes.length||V.displacementMap&&0!==V.displacementScale||V.alphaMap&&V.alphaTest>0||V.map&&V.alphaTest>0){const ue=k.uuid,Se=V.uuid;let Me=c[ue];void 0===Me&&(Me={},c[ue]=Me);let Z=Me[Se];void 0===Z&&(Z=k.clone(),Me[Se]=Z),k=Z}return k.visible=V.visible,k.wireframe=V.wireframe,k.side=K===Dh?null!==V.shadowSide?V.shadowSide:V.side:null!==V.shadowSide?V.shadowSide:u[V.side],k.alphaMap=V.alphaMap,k.alphaTest=V.alphaTest,k.map=V.map,k.clipShadows=V.clipShadows,k.clippingPlanes=V.clippingPlanes,k.clipIntersection=V.clipIntersection,k.displacementMap=V.displacementMap,k.displacementScale=V.displacementScale,k.displacementBias=V.displacementBias,k.wireframeLinewidth=V.wireframeLinewidth,k.linewidth=V.linewidth,!0===R.isPointLight&&!0===k.isMeshDistanceMaterial&&(n.properties.get(k).light=R),k}function E(I,V,R,K,k){if(!1===I.visible)return;if(I.layers.test(V.layers)&&(I.isMesh||I.isLine||I.isPoints)&&(I.castShadow||I.receiveShadow&&k===Dh)&&(!I.frustumCulled||i.intersectsObject(I))){I.modelViewMatrix.multiplyMatrices(R.matrixWorldInverse,I.matrixWorld);const Se=t.update(I),Me=I.material;if(Array.isArray(Me)){const Z=Se.groups;for(let ve=0,re=Z.length;ved||r.y>d)&&(r.x>d&&(o.x=Math.floor(d/ae.x),r.x=o.x*ae.x,oe.mapSize.x=o.x),r.y>d&&(o.y=Math.floor(d/ae.y),r.y=o.y*ae.y,oe.mapSize.y=o.y)),null===oe.map||!0===Se||!0===Me){const Qe=this.type!==Dh?{minFilter:ys,magFilter:ys}:{};null!==oe.map&&oe.map.dispose(),oe.map=new Fc(r.x,r.y,Qe),oe.map.texture.name=re.name+".shadowMap",oe.camera.updateProjectionMatrix()}n.setRenderTarget(oe.map),n.clear();const Ce=oe.getViewportCount();for(let Qe=0;Qe=1):-1!==ae.indexOf("OpenGL ES")&&(oe=parseFloat(/^OpenGL ES (\d)/.exec(ae)[1]),re=oe>=2);let Ce=null,Qe={};const Ie=n.getParameter(n.SCISSOR_BOX),Ke=n.getParameter(n.VIEWPORT),Nt=(new Xr).fromArray(Ie),_e=(new Xr).fromArray(Ke);function fe(Xe,vn,Dt,sn){const dn=new Uint8Array(4),ar=n.createTexture();n.bindTexture(Xe,ar),n.texParameteri(Xe,n.TEXTURE_MIN_FILTER,n.NEAREST),n.texParameteri(Xe,n.TEXTURE_MAG_FILTER,n.NEAREST);for(let zr=0;zr"u")&&/OculusBrowser/g.test(navigator.userAgent),A=new WeakMap;let y;const _=new WeakMap;let b=!1;try{b=typeof OffscreenCanvas<"u"&&null!==new OffscreenCanvas(1,1).getContext("2d")}catch{}function M(ye,ne){return b?new OffscreenCanvas(ye,ne):iw("canvas")}function C(ye,ne,bt,Jt){let jt=1;if((ye.width>Jt||ye.height>Jt)&&(jt=Jt/Math.max(ye.width,ye.height)),jt<1||!0===ne){if(typeof HTMLImageElement<"u"&&ye instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&ye instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&ye instanceof ImageBitmap){const en=ne?J2:Math.floor,zn=en(jt*ye.width),nn=en(jt*ye.height);void 0===y&&(y=M(zn,nn));const St=bt?M(zn,nn):y;return St.width=zn,St.height=nn,St.getContext("2d").drawImage(ye,0,0,zn,nn),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+ye.width+"x"+ye.height+") to ("+zn+"x"+nn+")."),St}return"data"in ye&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+ye.width+"x"+ye.height+")."),ye}return ye}function E(ye){return m4(ye.width)&&m4(ye.height)}function V(ye,ne){return ye.generateMipmaps&&ne&&ye.minFilter!==ys&&ye.minFilter!==os}function R(ye){n.generateMipmap(ye)}function K(ye,ne,bt,Jt,jt=!1){if(!1===a)return ne;if(null!==ye){if(void 0!==n[ye])return n[ye];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+ye+"'")}let en=ne;return ne===n.RED&&(bt===n.FLOAT&&(en=n.R32F),bt===n.HALF_FLOAT&&(en=n.R16F),bt===n.UNSIGNED_BYTE&&(en=n.R8)),ne===n.RED_INTEGER&&(bt===n.UNSIGNED_BYTE&&(en=n.R8UI),bt===n.UNSIGNED_SHORT&&(en=n.R16UI),bt===n.UNSIGNED_INT&&(en=n.R32UI),bt===n.BYTE&&(en=n.R8I),bt===n.SHORT&&(en=n.R16I),bt===n.INT&&(en=n.R32I)),ne===n.RG&&(bt===n.FLOAT&&(en=n.RG32F),bt===n.HALF_FLOAT&&(en=n.RG16F),bt===n.UNSIGNED_BYTE&&(en=n.RG8)),ne===n.RGBA&&(bt===n.FLOAT&&(en=n.RGBA32F),bt===n.HALF_FLOAT&&(en=n.RGBA16F),bt===n.UNSIGNED_BYTE&&(en=Jt===fo&&!1===jt?n.SRGB8_ALPHA8:n.RGBA8),bt===n.UNSIGNED_SHORT_4_4_4_4&&(en=n.RGBA4),bt===n.UNSIGNED_SHORT_5_5_5_1&&(en=n.RGB5_A1)),(en===n.R16F||en===n.R32F||en===n.RG16F||en===n.RG32F||en===n.RGBA16F||en===n.RGBA32F)&&t.get("EXT_color_buffer_float"),en}function k(ye,ne,bt){return!0===V(ye,bt)||ye.isFramebufferTexture&&ye.minFilter!==ys&&ye.minFilter!==os?Math.log2(Math.max(ne.width,ne.height))+1:void 0!==ye.mipmaps&&ye.mipmaps.length>0?ye.mipmaps.length:ye.isCompressedTexture&&Array.isArray(ye.image)?ne.mipmaps.length:1}function W(ye){return ye===ys||1004===ye||1005===ye?n.NEAREST:n.LINEAR}function ue(ye){const ne=ye.target;ne.removeEventListener("dispose",ue),function Me(ye){const ne=i.get(ye);if(void 0===ne.__webglInit)return;const bt=ye.source,Jt=_.get(bt);if(Jt){const jt=Jt[ne.__cacheKey];jt.usedTimes--,0===jt.usedTimes&&Z(ye),0===Object.keys(Jt).length&&_.delete(bt)}i.remove(ye)}(ne),ne.isVideoTexture&&A.delete(ne)}function Se(ye){const ne=ye.target;ne.removeEventListener("dispose",Se),function ve(ye){const ne=ye.texture,bt=i.get(ye),Jt=i.get(ne);if(void 0!==Jt.__webglTexture&&(n.deleteTexture(Jt.__webglTexture),s.memory.textures--),ye.depthTexture&&ye.depthTexture.dispose(),ye.isWebGLCubeRenderTarget)for(let jt=0;jt<6;jt++){if(Array.isArray(bt.__webglFramebuffer[jt]))for(let en=0;en0&&bt.__version!==ye.version){const Jt=ye.image;if(null===Jt)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else{if(!1!==Jt.complete)return void Ft(bt,ye,ne);console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete")}}e.bindTexture(n.TEXTURE_2D,bt.__webglTexture,n.TEXTURE0+ne)}const _e={[h_]:n.REPEAT,[Ha]:n.CLAMP_TO_EDGE,1002:n.MIRRORED_REPEAT},fe={[ys]:n.NEAREST,1004:n.NEAREST_MIPMAP_NEAREST,1005:n.NEAREST_MIPMAP_LINEAR,[os]:n.LINEAR,1007:n.LINEAR_MIPMAP_NEAREST,[mA]:n.LINEAR_MIPMAP_LINEAR},se={512:n.NEVER,519:n.ALWAYS,513:n.LESS,515:n.LEQUAL,514:n.EQUAL,518:n.GEQUAL,516:n.GREATER,517:n.NOTEQUAL};function J(ye,ne,bt){if(bt?(n.texParameteri(ye,n.TEXTURE_WRAP_S,_e[ne.wrapS]),n.texParameteri(ye,n.TEXTURE_WRAP_T,_e[ne.wrapT]),(ye===n.TEXTURE_3D||ye===n.TEXTURE_2D_ARRAY)&&n.texParameteri(ye,n.TEXTURE_WRAP_R,_e[ne.wrapR]),n.texParameteri(ye,n.TEXTURE_MAG_FILTER,fe[ne.magFilter]),n.texParameteri(ye,n.TEXTURE_MIN_FILTER,fe[ne.minFilter])):(n.texParameteri(ye,n.TEXTURE_WRAP_S,n.CLAMP_TO_EDGE),n.texParameteri(ye,n.TEXTURE_WRAP_T,n.CLAMP_TO_EDGE),(ye===n.TEXTURE_3D||ye===n.TEXTURE_2D_ARRAY)&&n.texParameteri(ye,n.TEXTURE_WRAP_R,n.CLAMP_TO_EDGE),(ne.wrapS!==Ha||ne.wrapT!==Ha)&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),n.texParameteri(ye,n.TEXTURE_MAG_FILTER,W(ne.magFilter)),n.texParameteri(ye,n.TEXTURE_MIN_FILTER,W(ne.minFilter)),ne.minFilter!==ys&&ne.minFilter!==os&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),ne.compareFunction&&(n.texParameteri(ye,n.TEXTURE_COMPARE_MODE,n.COMPARE_REF_TO_TEXTURE),n.texParameteri(ye,n.TEXTURE_COMPARE_FUNC,se[ne.compareFunction])),!0===t.has("EXT_texture_filter_anisotropic")){const Jt=t.get("EXT_texture_filter_anisotropic");if(ne.magFilter===ys||1005!==ne.minFilter&&ne.minFilter!==mA||ne.type===Ph&&!1===t.has("OES_texture_float_linear")||!1===a&&ne.type===f_&&!1===t.has("OES_texture_half_float_linear"))return;(ne.anisotropy>1||i.get(ne).__currentAnisotropy)&&(n.texParameterf(ye,Jt.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(ne.anisotropy,r.getMaxAnisotropy())),i.get(ne).__currentAnisotropy=ne.anisotropy)}}function Ye(ye,ne){let bt=!1;void 0===ye.__webglInit&&(ye.__webglInit=!0,ne.addEventListener("dispose",ue));const Jt=ne.source;let jt=_.get(Jt);void 0===jt&&(jt={},_.set(Jt,jt));const en=function Ce(ye){const ne=[];return ne.push(ye.wrapS),ne.push(ye.wrapT),ne.push(ye.wrapR||0),ne.push(ye.magFilter),ne.push(ye.minFilter),ne.push(ye.anisotropy),ne.push(ye.internalFormat),ne.push(ye.format),ne.push(ye.type),ne.push(ye.generateMipmaps),ne.push(ye.premultiplyAlpha),ne.push(ye.flipY),ne.push(ye.unpackAlignment),ne.push(ye.colorSpace),ne.join()}(ne);if(en!==ye.__cacheKey){void 0===jt[en]&&(jt[en]={texture:n.createTexture(),usedTimes:0},s.memory.textures++,bt=!0),jt[en].usedTimes++;const zn=jt[ye.__cacheKey];void 0!==zn&&(jt[ye.__cacheKey].usedTimes--,0===zn.usedTimes&&Z(ne)),ye.__cacheKey=en,ye.__webglTexture=jt[en].texture}return bt}function Ft(ye,ne,bt){let Jt=n.TEXTURE_2D;(ne.isDataArrayTexture||ne.isCompressedArrayTexture)&&(Jt=n.TEXTURE_2D_ARRAY),ne.isData3DTexture&&(Jt=n.TEXTURE_3D);const jt=Ye(ye,ne),en=ne.source;e.bindTexture(Jt,ye.__webglTexture,n.TEXTURE0+bt);const zn=i.get(en);if(en.version!==zn.__version||!0===jt){e.activeTexture(n.TEXTURE0+bt),n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,ne.flipY),n.pixelStorei(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL,ne.premultiplyAlpha),n.pixelStorei(n.UNPACK_ALIGNMENT,ne.unpackAlignment),n.pixelStorei(n.UNPACK_COLORSPACE_CONVERSION_WEBGL,n.NONE);const nn=function I(ye){return!a&&(ye.wrapS!==Ha||ye.wrapT!==Ha||ye.minFilter!==ys&&ye.minFilter!==os)}(ne)&&!1===E(ne.image);let St=C(ne.image,nn,!1,d);St=sr(ne,St);const Re=E(St)||a,Gt=o.convert(ne.format,ne.colorSpace);let Cn,bn=o.convert(ne.type),fn=K(ne.internalFormat,Gt,bn,ne.colorSpace,ne.isVideoTexture);J(Jt,ne,Re);const Ii=ne.mipmaps,Ar=a&&!0!==ne.isVideoTexture,Xe=void 0===zn.__version||!0===jt,vn=k(ne,St,Re);if(ne.isDepthTexture)fn=n.DEPTH_COMPONENT,a?fn=ne.type===Ph?n.DEPTH_COMPONENT32F:ne.type===gm?n.DEPTH_COMPONENT24:ne.type===pA?n.DEPTH24_STENCIL8:n.DEPTH_COMPONENT16:ne.type===Ph&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),ne.format===AA&&fn===n.DEPTH_COMPONENT&&1012!==ne.type&&ne.type!==gm&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),ne.type=gm,bn=o.convert(ne.type)),ne.format===m_&&fn===n.DEPTH_COMPONENT&&(fn=n.DEPTH_STENCIL,ne.type!==pA&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),ne.type=pA,bn=o.convert(ne.type))),Xe&&(Ar?e.texStorage2D(n.TEXTURE_2D,1,fn,St.width,St.height):e.texImage2D(n.TEXTURE_2D,0,fn,St.width,St.height,0,Gt,bn,null));else if(ne.isDataTexture)if(Ii.length>0&&Re){Ar&&Xe&&e.texStorage2D(n.TEXTURE_2D,vn,fn,Ii[0].width,Ii[0].height);for(let Dt=0,sn=Ii.length;Dt>=1,sn>>=1}}else if(Ii.length>0&&Re){Ar&&Xe&&e.texStorage2D(n.TEXTURE_2D,vn,fn,Ii[0].width,Ii[0].height);for(let Dt=0,sn=Ii.length;Dt>en),bn=Math.max(1,ne.height>>en);jt===n.TEXTURE_3D||jt===n.TEXTURE_2D_ARRAY?e.texImage3D(jt,en,St,Gt,bn,ne.depth,0,zn,nn,null):e.texImage2D(jt,en,St,Gt,bn,0,zn,nn,null)}e.bindFramebuffer(n.FRAMEBUFFER,ye),zt(ne)?h.framebufferTexture2DMultisampleEXT(n.FRAMEBUFFER,Jt,jt,i.get(bt).__webglTexture,0,Ae(ne)):(jt===n.TEXTURE_2D||jt>=n.TEXTURE_CUBE_MAP_POSITIVE_X&&jt<=n.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&n.framebufferTexture2D(n.FRAMEBUFFER,Jt,jt,i.get(bt).__webglTexture,en),e.bindFramebuffer(n.FRAMEBUFFER,null)}function me(ye,ne,bt){if(n.bindRenderbuffer(n.RENDERBUFFER,ye),ne.depthBuffer&&!ne.stencilBuffer){let Jt=n.DEPTH_COMPONENT16;if(bt||zt(ne)){const jt=ne.depthTexture;jt&&jt.isDepthTexture&&(jt.type===Ph?Jt=n.DEPTH_COMPONENT32F:jt.type===gm&&(Jt=n.DEPTH_COMPONENT24));const en=Ae(ne);zt(ne)?h.renderbufferStorageMultisampleEXT(n.RENDERBUFFER,en,Jt,ne.width,ne.height):n.renderbufferStorageMultisample(n.RENDERBUFFER,en,Jt,ne.width,ne.height)}else n.renderbufferStorage(n.RENDERBUFFER,Jt,ne.width,ne.height);n.framebufferRenderbuffer(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.RENDERBUFFER,ye)}else if(ne.depthBuffer&&ne.stencilBuffer){const Jt=Ae(ne);bt&&!1===zt(ne)?n.renderbufferStorageMultisample(n.RENDERBUFFER,Jt,n.DEPTH24_STENCIL8,ne.width,ne.height):zt(ne)?h.renderbufferStorageMultisampleEXT(n.RENDERBUFFER,Jt,n.DEPTH24_STENCIL8,ne.width,ne.height):n.renderbufferStorage(n.RENDERBUFFER,n.DEPTH_STENCIL,ne.width,ne.height),n.framebufferRenderbuffer(n.FRAMEBUFFER,n.DEPTH_STENCIL_ATTACHMENT,n.RENDERBUFFER,ye)}else{const Jt=!0===ne.isWebGLMultipleRenderTargets?ne.texture:[ne.texture];for(let jt=0;jt0&&!0===t.has("WEBGL_multisampled_render_to_texture")&&!1!==ne.__useRenderToTexture}function sr(ye,ne){const bt=ye.colorSpace,Jt=ye.format,jt=ye.type;return!0===ye.isCompressedTexture||!0===ye.isVideoTexture||1035===ye.format||bt!==fu&&""!==bt&&(bt===fo||bt===K2?!1===a?!0===t.has("EXT_sRGB")&&Jt===jl?(ye.format=1035,ye.minFilter=os,ye.generateMipmaps=!1):ne=cX.sRGBToLinear(ne):(Jt!==jl||jt!==Am)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",bt)),ne}this.allocateTextureUnit=function ae(){const ye=re;return ye>=l&&console.warn("THREE.WebGLTextures: Trying to use "+ye+" texture units while this GPU supports only "+l),re+=1,ye},this.resetTextureUnits=function oe(){re=0},this.setTexture2D=Qe,this.setTexture2DArray=function Ie(ye,ne){const bt=i.get(ye);ye.version>0&&bt.__version!==ye.version?Ft(bt,ye,ne):e.bindTexture(n.TEXTURE_2D_ARRAY,bt.__webglTexture,n.TEXTURE0+ne)},this.setTexture3D=function Ke(ye,ne){const bt=i.get(ye);ye.version>0&&bt.__version!==ye.version?Ft(bt,ye,ne):e.bindTexture(n.TEXTURE_3D,bt.__webglTexture,n.TEXTURE0+ne)},this.setTextureCube=function Nt(ye,ne){const bt=i.get(ye);ye.version>0&&bt.__version!==ye.version?function lt(ye,ne,bt){if(6!==ne.image.length)return;const Jt=Ye(ye,ne),jt=ne.source;e.bindTexture(n.TEXTURE_CUBE_MAP,ye.__webglTexture,n.TEXTURE0+bt);const en=i.get(jt);if(jt.version!==en.__version||!0===Jt){e.activeTexture(n.TEXTURE0+bt),n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,ne.flipY),n.pixelStorei(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL,ne.premultiplyAlpha),n.pixelStorei(n.UNPACK_ALIGNMENT,ne.unpackAlignment),n.pixelStorei(n.UNPACK_COLORSPACE_CONVERSION_WEBGL,n.NONE);const zn=ne.isCompressedTexture||ne.image[0].isCompressedTexture,nn=ne.image[0]&&ne.image[0].isDataTexture,St=[];for(let Dt=0;Dt<6;Dt++)St[Dt]=zn||nn?nn?ne.image[Dt].image:ne.image[Dt]:C(ne.image[Dt],!1,!0,c),St[Dt]=sr(ne,St[Dt]);const Re=St[0],Gt=E(Re)||a,bn=o.convert(ne.format,ne.colorSpace),fn=o.convert(ne.type),Cn=K(ne.internalFormat,bn,fn,ne.colorSpace),Ii=a&&!0!==ne.isVideoTexture,Ar=void 0===en.__version||!0===Jt;let vn,Xe=k(ne,Re,Gt);if(J(n.TEXTURE_CUBE_MAP,ne,Gt),zn){Ii&&Ar&&e.texStorage2D(n.TEXTURE_CUBE_MAP,Xe,Cn,Re.width,Re.height);for(let Dt=0;Dt<6;Dt++){vn=St[Dt].mipmaps;for(let sn=0;sn0&&Xe++,e.texStorage2D(n.TEXTURE_CUBE_MAP,Xe,Cn,St[0].width,St[0].height));for(let Dt=0;Dt<6;Dt++)if(nn){Ii?e.texSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+Dt,0,0,0,St[Dt].width,St[Dt].height,bn,fn,St[Dt].data):e.texImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+Dt,0,Cn,St[Dt].width,St[Dt].height,0,bn,fn,St[Dt].data);for(let sn=0;sn0){bt.__webglFramebuffer[nn]=[];for(let St=0;St0){bt.__webglFramebuffer=[];for(let nn=0;nn0&&!1===zt(ye)){const nn=en?ne:[ne];bt.__webglMultisampledFramebuffer=n.createFramebuffer(),bt.__webglColorRenderbuffer=[],e.bindFramebuffer(n.FRAMEBUFFER,bt.__webglMultisampledFramebuffer);for(let St=0;St0)for(let St=0;St0)for(let St=0;St0&&!1===zt(ye)){const ne=ye.isWebGLMultipleRenderTargets?ye.texture:[ye.texture],bt=ye.width,Jt=ye.height;let jt=n.COLOR_BUFFER_BIT;const en=[],zn=ye.stencilBuffer?n.DEPTH_STENCIL_ATTACHMENT:n.DEPTH_ATTACHMENT,nn=i.get(ye),St=!0===ye.isWebGLMultipleRenderTargets;if(St)for(let Re=0;Ref+A?(c.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:t.handedness,target:this})):!c.inputState.pinching&&h<=f-A&&(c.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:t.handedness,target:this}))}else null!==l&&t.gripSpace&&(o=e.getPose(t.gripSpace,i),null!==o&&(l.matrix.fromArray(o.transform.matrix),l.matrix.decompose(l.position,l.rotation,l.scale),l.matrixWorldNeedsUpdate=!0,o.linearVelocity?(l.hasLinearVelocity=!0,l.linearVelocity.copy(o.linearVelocity)):l.hasLinearVelocity=!1,o.angularVelocity?(l.hasAngularVelocity=!0,l.angularVelocity.copy(o.angularVelocity)):l.hasAngularVelocity=!1));null!==a&&(r=e.getPose(t.targetRaySpace,i),null===r&&null!==o&&(r=o),null!==r&&(a.matrix.fromArray(r.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),a.matrixWorldNeedsUpdate=!0,r.linearVelocity?(a.hasLinearVelocity=!0,a.linearVelocity.copy(r.linearVelocity)):a.hasLinearVelocity=!1,r.angularVelocity?(a.hasAngularVelocity=!0,a.angularVelocity.copy(r.angularVelocity)):a.hasAngularVelocity=!1,this.dispatchEvent(NTe)))}return null!==a&&(a.visible=null!==r),null!==l&&(l.visible=null!==o),null!==c&&(c.visible=null!==s),this}_getHandJoint(t,e){if(void 0===t.joints[e.jointName]){const i=new pa;i.matrixAutoUpdate=!1,i.visible=!1,t.joints[e.jointName]=i,t.add(i)}return t.joints[e.jointName]}}class UTe extends cl{constructor(t,e,i,r,o,s,a,l,c,d){if((d=void 0!==d?d:AA)!==AA&&d!==m_)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");void 0===i&&d===AA&&(i=gm),void 0===i&&d===m_&&(i=pA),super(null,r,o,s,a,l,d,i,c),this.isDepthTexture=!0,this.image={width:t,height:e},this.magFilter=void 0!==a?a:ys,this.minFilter=void 0!==l?l:ys,this.flipY=!1,this.generateMipmaps=!1,this.compareFunction=null}copy(t){return super.copy(t),this.compareFunction=t.compareFunction,this}toJSON(t){const e=super.toJSON(t);return null!==this.compareFunction&&(e.compareFunction=this.compareFunction),e}}class HTe extends Lh{constructor(t,e){super();const i=this;let r=null,o=1,s=null,a="local-floor",l=1,c=null,d=null,u=null,h=null,f=null,A=null;const y=e.getContextAttributes();let _=null,b=null;const M=[],C=[],E=new Ls;E.layers.enable(1),E.viewport=new Xr;const I=new Ls;I.layers.enable(2),I.viewport=new Xr;const V=[E,I],R=new OTe;R.layers.enable(1),R.layers.enable(2);let K=null,k=null;function W(Ie){const Ke=C.indexOf(Ie.inputSource);if(-1===Ke)return;const Nt=M[Ke];void 0!==Nt&&(Nt.update(Ie.inputSource,Ie.frame,c||s),Nt.dispatchEvent({type:Ie.type,data:Ie.inputSource}))}function ue(){r.removeEventListener("select",W),r.removeEventListener("selectstart",W),r.removeEventListener("selectend",W),r.removeEventListener("squeeze",W),r.removeEventListener("squeezestart",W),r.removeEventListener("squeezeend",W),r.removeEventListener("end",ue),r.removeEventListener("inputsourceschange",Se);for(let Ie=0;Ie=0&&(C[_e]=null,M[_e].disconnect(Nt))}for(let Ke=0;Ke=C.length){C.push(Nt),_e=se;break}if(null===C[se]){C[se]=Nt,_e=se;break}}if(-1===_e)break}const fe=M[_e];fe&&fe.connect(Nt)}}this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(Ie){let Ke=M[Ie];return void 0===Ke&&(Ke=new Q4,M[Ie]=Ke),Ke.getTargetRaySpace()},this.getControllerGrip=function(Ie){let Ke=M[Ie];return void 0===Ke&&(Ke=new Q4,M[Ie]=Ke),Ke.getGripSpace()},this.getHand=function(Ie){let Ke=M[Ie];return void 0===Ke&&(Ke=new Q4,M[Ie]=Ke),Ke.getHandSpace()},this.setFramebufferScaleFactor=function(Ie){o=Ie,!0===i.isPresenting&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(Ie){a=Ie,!0===i.isPresenting&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return c||s},this.setReferenceSpace=function(Ie){c=Ie},this.getBaseLayer=function(){return null!==h?h:f},this.getBinding=function(){return u},this.getFrame=function(){return A},this.getSession=function(){return r},this.setSession=function(){var Ie=B(function*(Ke){if(r=Ke,null!==r){if(_=t.getRenderTarget(),r.addEventListener("select",W),r.addEventListener("selectstart",W),r.addEventListener("selectend",W),r.addEventListener("squeeze",W),r.addEventListener("squeezestart",W),r.addEventListener("squeezeend",W),r.addEventListener("end",ue),r.addEventListener("inputsourceschange",Se),!0!==y.xrCompatible&&(yield e.makeXRCompatible()),void 0===r.renderState.layers||!1===t.capabilities.isWebGL2)f=new XRWebGLLayer(r,e,{antialias:void 0!==r.renderState.layers||y.antialias,alpha:!0,depth:y.depth,stencil:y.stencil,framebufferScaleFactor:o}),r.updateRenderState({baseLayer:f}),b=new Fc(f.framebufferWidth,f.framebufferHeight,{format:jl,type:Am,colorSpace:t.outputColorSpace,stencilBuffer:y.stencil});else{let Nt=null,_e=null,fe=null;y.depth&&(fe=y.stencil?e.DEPTH24_STENCIL8:e.DEPTH_COMPONENT24,Nt=y.stencil?m_:AA,_e=y.stencil?pA:gm);const se={colorFormat:e.RGBA8,depthFormat:fe,scaleFactor:o};u=new XRWebGLBinding(r,e),h=u.createProjectionLayer(se),r.updateRenderState({layers:[h]}),b=new Fc(h.textureWidth,h.textureHeight,{format:jl,type:Am,depthTexture:new UTe(h.textureWidth,h.textureHeight,_e,void 0,void 0,void 0,void 0,void 0,void 0,Nt),stencilBuffer:y.stencil,colorSpace:t.outputColorSpace,samples:y.antialias?4:0}),t.properties.get(b).__ignoreDepthValues=h.ignoreDepthValues}b.isXRRenderTarget=!0,this.setFoveation(l),c=null,s=yield r.requestReferenceSpace(a),Qe.setContext(r),Qe.start(),i.isPresenting=!0,i.dispatchEvent({type:"sessionstart"})}});return function(Ke){return Ie.apply(this,arguments)}}(),this.getEnvironmentBlendMode=function(){if(null!==r)return r.environmentBlendMode};const Me=new ie,Z=new ie;function re(Ie,Ke){null===Ke?Ie.matrixWorld.copy(Ie.matrix):Ie.matrixWorld.multiplyMatrices(Ke.matrixWorld,Ie.matrix),Ie.matrixWorldInverse.copy(Ie.matrixWorld).invert()}this.updateCamera=function(Ie){if(null===r)return;R.near=I.near=E.near=Ie.near,R.far=I.far=E.far=Ie.far,(K!==R.near||k!==R.far)&&(r.updateRenderState({depthNear:R.near,depthFar:R.far}),K=R.near,k=R.far);const Ke=Ie.parent,Nt=R.cameras;re(R,Ke);for(let _e=0;_e0&&(_.alphaTest.value=b.alphaTest);const M=t.get(b).envMap;if(M&&(_.envMap.value=M,_.flipEnvMap.value=M.isCubeTexture&&!1===M.isRenderTargetTexture?-1:1,_.reflectivity.value=b.reflectivity,_.ior.value=b.ior,_.refractionRatio.value=b.refractionRatio),b.lightMap){_.lightMap.value=b.lightMap;const C=!0===n._useLegacyLights?Math.PI:1;_.lightMapIntensity.value=b.lightMapIntensity*C,e(b.lightMap,_.lightMapTransform)}b.aoMap&&(_.aoMap.value=b.aoMap,_.aoMapIntensity.value=b.aoMapIntensity,e(b.aoMap,_.aoMapTransform))}return{refreshFogUniforms:function i(_,b){b.color.getRGB(_.fogColor.value,SX(n)),b.isFog?(_.fogNear.value=b.near,_.fogFar.value=b.far):b.isFogExp2&&(_.fogDensity.value=b.density)},refreshMaterialUniforms:function r(_,b,M,C,E){b.isMeshBasicMaterial||b.isMeshLambertMaterial?o(_,b):b.isMeshToonMaterial?(o(_,b),function u(_,b){b.gradientMap&&(_.gradientMap.value=b.gradientMap)}(_,b)):b.isMeshPhongMaterial?(o(_,b),function d(_,b){_.specular.value.copy(b.specular),_.shininess.value=Math.max(b.shininess,1e-4)}(_,b)):b.isMeshStandardMaterial?(o(_,b),function h(_,b){_.metalness.value=b.metalness,b.metalnessMap&&(_.metalnessMap.value=b.metalnessMap,e(b.metalnessMap,_.metalnessMapTransform)),_.roughness.value=b.roughness,b.roughnessMap&&(_.roughnessMap.value=b.roughnessMap,e(b.roughnessMap,_.roughnessMapTransform)),t.get(b).envMap&&(_.envMapIntensity.value=b.envMapIntensity)}(_,b),b.isMeshPhysicalMaterial&&function f(_,b,M){_.ior.value=b.ior,b.sheen>0&&(_.sheenColor.value.copy(b.sheenColor).multiplyScalar(b.sheen),_.sheenRoughness.value=b.sheenRoughness,b.sheenColorMap&&(_.sheenColorMap.value=b.sheenColorMap,e(b.sheenColorMap,_.sheenColorMapTransform)),b.sheenRoughnessMap&&(_.sheenRoughnessMap.value=b.sheenRoughnessMap,e(b.sheenRoughnessMap,_.sheenRoughnessMapTransform))),b.clearcoat>0&&(_.clearcoat.value=b.clearcoat,_.clearcoatRoughness.value=b.clearcoatRoughness,b.clearcoatMap&&(_.clearcoatMap.value=b.clearcoatMap,e(b.clearcoatMap,_.clearcoatMapTransform)),b.clearcoatRoughnessMap&&(_.clearcoatRoughnessMap.value=b.clearcoatRoughnessMap,e(b.clearcoatRoughnessMap,_.clearcoatRoughnessMapTransform)),b.clearcoatNormalMap&&(_.clearcoatNormalMap.value=b.clearcoatNormalMap,e(b.clearcoatNormalMap,_.clearcoatNormalMapTransform),_.clearcoatNormalScale.value.copy(b.clearcoatNormalScale),1===b.side&&_.clearcoatNormalScale.value.negate())),b.iridescence>0&&(_.iridescence.value=b.iridescence,_.iridescenceIOR.value=b.iridescenceIOR,_.iridescenceThicknessMinimum.value=b.iridescenceThicknessRange[0],_.iridescenceThicknessMaximum.value=b.iridescenceThicknessRange[1],b.iridescenceMap&&(_.iridescenceMap.value=b.iridescenceMap,e(b.iridescenceMap,_.iridescenceMapTransform)),b.iridescenceThicknessMap&&(_.iridescenceThicknessMap.value=b.iridescenceThicknessMap,e(b.iridescenceThicknessMap,_.iridescenceThicknessMapTransform))),b.transmission>0&&(_.transmission.value=b.transmission,_.transmissionSamplerMap.value=M.texture,_.transmissionSamplerSize.value.set(M.width,M.height),b.transmissionMap&&(_.transmissionMap.value=b.transmissionMap,e(b.transmissionMap,_.transmissionMapTransform)),_.thickness.value=b.thickness,b.thicknessMap&&(_.thicknessMap.value=b.thicknessMap,e(b.thicknessMap,_.thicknessMapTransform)),_.attenuationDistance.value=b.attenuationDistance,_.attenuationColor.value.copy(b.attenuationColor)),b.anisotropy>0&&(_.anisotropyVector.value.set(b.anisotropy*Math.cos(b.anisotropyRotation),b.anisotropy*Math.sin(b.anisotropyRotation)),b.anisotropyMap&&(_.anisotropyMap.value=b.anisotropyMap,e(b.anisotropyMap,_.anisotropyMapTransform))),_.specularIntensity.value=b.specularIntensity,_.specularColor.value.copy(b.specularColor),b.specularColorMap&&(_.specularColorMap.value=b.specularColorMap,e(b.specularColorMap,_.specularColorMapTransform)),b.specularIntensityMap&&(_.specularIntensityMap.value=b.specularIntensityMap,e(b.specularIntensityMap,_.specularIntensityMapTransform))}(_,b,E)):b.isMeshMatcapMaterial?(o(_,b),function A(_,b){b.matcap&&(_.matcap.value=b.matcap)}(_,b)):b.isMeshDepthMaterial?o(_,b):b.isMeshDistanceMaterial?(o(_,b),function y(_,b){const M=t.get(b).light;_.referencePosition.value.setFromMatrixPosition(M.matrixWorld),_.nearDistance.value=M.shadow.camera.near,_.farDistance.value=M.shadow.camera.far}(_,b)):b.isMeshNormalMaterial?o(_,b):b.isLineBasicMaterial?(function s(_,b){_.diffuse.value.copy(b.color),_.opacity.value=b.opacity,b.map&&(_.map.value=b.map,e(b.map,_.mapTransform))}(_,b),b.isLineDashedMaterial&&function a(_,b){_.dashSize.value=b.dashSize,_.totalSize.value=b.dashSize+b.gapSize,_.scale.value=b.scale}(_,b)):b.isPointsMaterial?function l(_,b,M,C){_.diffuse.value.copy(b.color),_.opacity.value=b.opacity,_.size.value=b.size*M,_.scale.value=.5*C,b.map&&(_.map.value=b.map,e(b.map,_.uvTransform)),b.alphaMap&&(_.alphaMap.value=b.alphaMap,e(b.alphaMap,_.alphaMapTransform)),b.alphaTest>0&&(_.alphaTest.value=b.alphaTest)}(_,b,M,C):b.isSpriteMaterial?function c(_,b){_.diffuse.value.copy(b.color),_.opacity.value=b.opacity,_.rotation.value=b.rotation,b.map&&(_.map.value=b.map,e(b.map,_.mapTransform)),b.alphaMap&&(_.alphaMap.value=b.alphaMap,e(b.alphaMap,_.alphaMapTransform)),b.alphaTest>0&&(_.alphaTest.value=b.alphaTest)}(_,b):b.isShadowMaterial?(_.color.value.copy(b.color),_.opacity.value=b.opacity):b.isShaderMaterial&&(b.uniformsNeedUpdate=!1)}}}function QTe(n,t,e,i){let r={},o={},s=[];const a=e.isWebGL2?n.getParameter(n.MAX_UNIFORM_BUFFER_BINDINGS):0;function f(M,C,E){const I=M.value;if(void 0===E[C]){if("number"==typeof I)E[C]=I;else{const V=Array.isArray(I)?I:[I],R=[];for(let K=0;K0&&(V=E%16,0!==V&&16-V-W.boundary<0&&(E+=16-V,k.__offset=E)),E+=W.storage}V=E%16,V>0&&(E+=16-V),M.__size=E,M.__cache={}}(M),E=function d(M){const C=function u(){for(let M=0;M0),zi=!!Ut.morphAttributes.position,$o=!!Ut.morphAttributes.normal,ls=!!Ut.morphAttributes.color;let Oc=mm;xt.toneMapped&&(null===R||!0===R.isXRRenderTarget)&&(Oc=C.toneMapping);const af=Ut.morphAttributes.position||Ut.morphAttributes.normal||Ut.morphAttributes.color,xs=void 0!==af?af.length:0,fr=Ee.get(xt),pU=_.state.lights;!0!==_e||!0!==fe&&be===k||zn.setState(xt,be,be===k&&xt.id===K);let Cs=!1;xt.version===fr.__version?(fr.needsLights&&fr.lightsStateVersion!==pU.state.version||fr.outputColorSpace!==Mi||Ht.isInstancedMesh&&!1===fr.instancing||!Ht.isInstancedMesh&&!0===fr.instancing||Ht.isSkinnedMesh&&!1===fr.skinning||!Ht.isSkinnedMesh&&!0===fr.skinning||Ht.isInstancedMesh&&!0===fr.instancingColor&&null===Ht.instanceColor||Ht.isInstancedMesh&&!1===fr.instancingColor&&null!==Ht.instanceColor||fr.envMap!==Ei||!0===xt.fog&&fr.fog!==Un||void 0!==fr.numClippingPlanes&&(fr.numClippingPlanes!==zn.numPlanes||fr.numIntersection!==zn.numIntersection)||fr.vertexAlphas!==lr||fr.vertexTangents!==yi||fr.morphTargets!==zi||fr.morphNormals!==$o||fr.morphColors!==ls||fr.toneMapping!==Oc||!0===ot.isWebGL2&&fr.morphTargetsCount!==xs)&&(Cs=!0):(Cs=!0,fr.__version=xt.version);let ig=fr.currentProgram;!0===Cs&&(ig=YI(xt,yt,Ht));let Zie=!1,Ix=!1,AU=!1;const $a=ig.getUniforms(),rg=fr.uniforms;if(ft.useProgram(ig.program)&&(Zie=!0,Ix=!0,AU=!0),xt.id!==K&&(K=xt.id,Ix=!0),Zie||k!==be){$a.setValue(me,"projectionMatrix",be.projectionMatrix),$a.setValue(me,"viewMatrix",be.matrixWorldInverse);const lc=$a.map.cameraPosition;void 0!==lc&&lc.setValue(me,Ft.setFromMatrixPosition(be.matrixWorld)),ot.logarithmicDepthBuffer&&$a.setValue(me,"logDepthBufFC",2/(Math.log(be.far+1)/Math.LN2)),(xt.isMeshPhongMaterial||xt.isMeshToonMaterial||xt.isMeshLambertMaterial||xt.isMeshBasicMaterial||xt.isMeshStandardMaterial||xt.isShaderMaterial)&&$a.setValue(me,"isOrthographic",!0===be.isOrthographicCamera),k!==be&&(k=be,Ix=!0,AU=!0)}if(Ht.isSkinnedMesh){$a.setOptional(me,Ht,"bindMatrix"),$a.setOptional(me,Ht,"bindMatrixInverse");const lc=Ht.skeleton;lc&&(ot.floatVertexTextures?(null===lc.boneTexture&&lc.computeBoneTexture(),$a.setValue(me,"boneTexture",lc.boneTexture,Ae),$a.setValue(me,"boneTextureSize",lc.boneTextureSize)):console.warn("THREE.WebGLRenderer: SkinnedMesh can only be used with WebGL 2. With WebGL 1 OES_texture_float and vertex textures support is required."))}const gU=Ut.morphAttributes;if((void 0!==gU.position||void 0!==gU.normal||void 0!==gU.color&&!0===ot.isWebGL2)&&Re.update(Ht,Ut,ig),(Ix||fr.receiveShadow!==Ht.receiveShadow)&&(fr.receiveShadow=Ht.receiveShadow,$a.setValue(me,"receiveShadow",Ht.receiveShadow)),xt.isMeshGouraudMaterial&&null!==xt.envMap&&(rg.envMap.value=Ei,rg.flipEnvMap.value=Ei.isCubeTexture&&!1===Ei.isRenderTargetTexture?-1:1),Ix&&($a.setValue(me,"toneMappingExposure",C.toneMappingExposure),fr.needsLights&&function v$e(be,yt){be.ambientLightColor.needsUpdate=yt,be.lightProbe.needsUpdate=yt,be.directionalLights.needsUpdate=yt,be.directionalLightShadows.needsUpdate=yt,be.pointLights.needsUpdate=yt,be.pointLightShadows.needsUpdate=yt,be.spotLights.needsUpdate=yt,be.spotLightShadows.needsUpdate=yt,be.rectAreaLights.needsUpdate=yt,be.hemisphereLights.needsUpdate=yt}(rg,AU),Un&&!0===xt.fog&&Jt.refreshFogUniforms(rg,Un),Jt.refreshMaterialUniforms(rg,xt,oe,re,se),xS.upload(me,fr.uniformsList,rg,Ae)),xt.isShaderMaterial&&!0===xt.uniformsNeedUpdate&&(xS.upload(me,fr.uniformsList,rg,Ae),xt.uniformsNeedUpdate=!1),xt.isSpriteMaterial&&$a.setValue(me,"center",Ht.center),$a.setValue(me,"modelViewMatrix",Ht.modelViewMatrix),$a.setValue(me,"normalMatrix",Ht.normalMatrix),$a.setValue(me,"modelMatrix",Ht.matrixWorld),xt.isShaderMaterial||xt.isRawShaderMaterial){const lc=xt.uniformsGroups;for(let _U=0,w$e=lc.length;_U0&&function _$e(be,yt,Ut,xt){const Ht=ot.isWebGL2;null===se&&(se=new Fc(1,1,{generateMipmaps:!0,type:Pe.has("EXT_color_buffer_half_float")?f_:Am,minFilter:mA,samples:Ht?4:0})),C.getDrawingBufferSize(Ye),Ht?se.setSize(Ye.x,Ye.y):se.setSize(J2(Ye.x),J2(Ye.y));const Un=C.getRenderTarget();C.setRenderTarget(se),C.getClearColor(Me),Z=C.getClearAlpha(),Z<1&&C.setClearColor(16777215,.5),C.clear();const ai=C.toneMapping;C.toneMapping=mm,KI(be,Ut,xt),Ae.updateMultisampleRenderTarget(se),Ae.updateRenderTargetMipmap(se);let Mi=!1;for(let Ei=0,lr=yt.length;Ei0&&KI(Ht,yt,Ut),Un.length>0&&KI(Un,yt,Ut),ai.length>0&&KI(ai,yt,Ut),ft.buffers.depth.setTest(!0),ft.buffers.depth.setMask(!0),ft.buffers.color.setMask(!0),ft.setPolygonOffset(!1)}function KI(be,yt,Ut){const xt=!0===yt.isScene?yt.overrideMaterial:null;for(let Ht=0,Un=be.length;Ht0?M[M.length-1]:null,b.pop(),y=b.length>0?b[b.length-1]:null}}else console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.")},this.getActiveCubeFace=function(){return I},this.getActiveMipmapLevel=function(){return V},this.getRenderTarget=function(){return R},this.setRenderTargetTextures=function(be,yt,Ut){Ee.get(be.texture).__webglTexture=yt,Ee.get(be.depthTexture).__webglTexture=Ut;const xt=Ee.get(be);xt.__hasExternalTextures=!0,xt.__hasExternalTextures&&(xt.__autoAllocateDepthBuffer=void 0===Ut,xt.__autoAllocateDepthBuffer||!0===Pe.has("WEBGL_multisampled_render_to_texture")&&(console.warn("THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided"),xt.__useRenderToTexture=!1))},this.setRenderTargetFramebuffer=function(be,yt){const Ut=Ee.get(be);Ut.__webglFramebuffer=yt,Ut.__useDefaultFramebuffer=void 0===yt},this.setRenderTarget=function(be,yt=0,Ut=0){R=be,I=yt,V=Ut;let xt=!0,Ht=null,Un=!1,ai=!1;if(be){const Ei=Ee.get(be);void 0!==Ei.__useDefaultFramebuffer?(ft.bindFramebuffer(me.FRAMEBUFFER,null),xt=!1):void 0===Ei.__webglFramebuffer?Ae.setupRenderTarget(be):Ei.__hasExternalTextures&&Ae.rebindTextures(be,Ee.get(be.texture).__webglTexture,Ee.get(be.depthTexture).__webglTexture);const lr=be.texture;(lr.isData3DTexture||lr.isDataArrayTexture||lr.isCompressedArrayTexture)&&(ai=!0);const yi=Ee.get(be).__webglFramebuffer;be.isWebGLCubeRenderTarget?(Ht=Array.isArray(yi[yt])?yi[yt][Ut]:yi[yt],Un=!0):Ht=ot.isWebGL2&&be.samples>0&&!1===Ae.useMultisampledRTT(be)?Ee.get(be).__webglMultisampledFramebuffer:Array.isArray(yi)?yi[Ut]:yi,W.copy(be.viewport),ue.copy(be.scissor),Se=be.scissorTest}else W.copy(Qe).multiplyScalar(oe).floor(),ue.copy(Ie).multiplyScalar(oe).floor(),Se=Ke;if(ft.bindFramebuffer(me.FRAMEBUFFER,Ht)&&ot.drawBuffers&&xt&&ft.drawBuffers(be,Ht),ft.viewport(W),ft.scissor(ue),ft.setScissorTest(Se),Un){const Ei=Ee.get(be.texture);me.framebufferTexture2D(me.FRAMEBUFFER,me.COLOR_ATTACHMENT0,me.TEXTURE_CUBE_MAP_POSITIVE_X+yt,Ei.__webglTexture,Ut)}else if(ai){const Ei=Ee.get(be.texture);me.framebufferTextureLayer(me.FRAMEBUFFER,me.COLOR_ATTACHMENT0,Ei.__webglTexture,Ut||0,yt||0)}K=-1},this.readRenderTargetPixels=function(be,yt,Ut,xt,Ht,Un,ai){if(!be||!be.isWebGLRenderTarget)return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let Mi=Ee.get(be).__webglFramebuffer;if(be.isWebGLCubeRenderTarget&&void 0!==ai&&(Mi=Mi[ai]),Mi){ft.bindFramebuffer(me.FRAMEBUFFER,Mi);try{const Ei=be.texture,lr=Ei.format,yi=Ei.type;if(lr!==jl&&fn.convert(lr)!==me.getParameter(me.IMPLEMENTATION_COLOR_READ_FORMAT))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");const zi=yi===f_&&(Pe.has("EXT_color_buffer_half_float")||ot.isWebGL2&&Pe.has("EXT_color_buffer_float"));if(!(yi===Am||fn.convert(yi)===me.getParameter(me.IMPLEMENTATION_COLOR_READ_TYPE)||yi===Ph&&(ot.isWebGL2||Pe.has("OES_texture_float")||Pe.has("WEBGL_color_buffer_float"))||zi))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");yt>=0&&yt<=be.width-xt&&Ut>=0&&Ut<=be.height-Ht&&me.readPixels(yt,Ut,xt,Ht,fn.convert(lr),fn.convert(yi),Un)}finally{const Ei=null!==R?Ee.get(R).__webglFramebuffer:null;ft.bindFramebuffer(me.FRAMEBUFFER,Ei)}}},this.copyFramebufferToTexture=function(be,yt,Ut=0){const xt=Math.pow(2,-Ut),Ht=Math.floor(yt.image.width*xt),Un=Math.floor(yt.image.height*xt);Ae.setTexture2D(yt,0),me.copyTexSubImage2D(me.TEXTURE_2D,Ut,0,0,be.x,be.y,Ht,Un),ft.unbindTexture()},this.copyTextureToTexture=function(be,yt,Ut,xt=0){const Ht=yt.image.width,Un=yt.image.height,ai=fn.convert(Ut.format),Mi=fn.convert(Ut.type);Ae.setTexture2D(Ut,0),me.pixelStorei(me.UNPACK_FLIP_Y_WEBGL,Ut.flipY),me.pixelStorei(me.UNPACK_PREMULTIPLY_ALPHA_WEBGL,Ut.premultiplyAlpha),me.pixelStorei(me.UNPACK_ALIGNMENT,Ut.unpackAlignment),yt.isDataTexture?me.texSubImage2D(me.TEXTURE_2D,xt,be.x,be.y,Ht,Un,ai,Mi,yt.image.data):yt.isCompressedTexture?me.compressedTexSubImage2D(me.TEXTURE_2D,xt,be.x,be.y,yt.mipmaps[0].width,yt.mipmaps[0].height,ai,yt.mipmaps[0].data):me.texSubImage2D(me.TEXTURE_2D,xt,be.x,be.y,ai,Mi,yt.image),0===xt&&Ut.generateMipmaps&&me.generateMipmap(me.TEXTURE_2D),ft.unbindTexture()},this.copyTextureToTexture3D=function(be,yt,Ut,xt,Ht=0){if(C.isWebGL1Renderer)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");const Un=be.max.x-be.min.x+1,ai=be.max.y-be.min.y+1,Mi=be.max.z-be.min.z+1,Ei=fn.convert(xt.format),lr=fn.convert(xt.type);let yi;if(xt.isData3DTexture)Ae.setTexture3D(xt,0),yi=me.TEXTURE_3D;else{if(!xt.isDataArrayTexture)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");Ae.setTexture2DArray(xt,0),yi=me.TEXTURE_2D_ARRAY}me.pixelStorei(me.UNPACK_FLIP_Y_WEBGL,xt.flipY),me.pixelStorei(me.UNPACK_PREMULTIPLY_ALPHA_WEBGL,xt.premultiplyAlpha),me.pixelStorei(me.UNPACK_ALIGNMENT,xt.unpackAlignment);const zi=me.getParameter(me.UNPACK_ROW_LENGTH),$o=me.getParameter(me.UNPACK_IMAGE_HEIGHT),ls=me.getParameter(me.UNPACK_SKIP_PIXELS),Oc=me.getParameter(me.UNPACK_SKIP_ROWS),af=me.getParameter(me.UNPACK_SKIP_IMAGES),xs=Ut.isCompressedTexture?Ut.mipmaps[0]:Ut.image;me.pixelStorei(me.UNPACK_ROW_LENGTH,xs.width),me.pixelStorei(me.UNPACK_IMAGE_HEIGHT,xs.height),me.pixelStorei(me.UNPACK_SKIP_PIXELS,be.min.x),me.pixelStorei(me.UNPACK_SKIP_ROWS,be.min.y),me.pixelStorei(me.UNPACK_SKIP_IMAGES,be.min.z),Ut.isDataTexture||Ut.isData3DTexture?me.texSubImage3D(yi,Ht,yt.x,yt.y,yt.z,Un,ai,Mi,Ei,lr,xs.data):Ut.isCompressedArrayTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),me.compressedTexSubImage3D(yi,Ht,yt.x,yt.y,yt.z,Un,ai,Mi,Ei,xs.data)):me.texSubImage3D(yi,Ht,yt.x,yt.y,yt.z,Un,ai,Mi,Ei,lr,xs),me.pixelStorei(me.UNPACK_ROW_LENGTH,zi),me.pixelStorei(me.UNPACK_IMAGE_HEIGHT,$o),me.pixelStorei(me.UNPACK_SKIP_PIXELS,ls),me.pixelStorei(me.UNPACK_SKIP_ROWS,Oc),me.pixelStorei(me.UNPACK_SKIP_IMAGES,af),0===Ht&&xt.generateMipmaps&&me.generateMipmap(yi),ft.unbindTexture()},this.initTexture=function(be){be.isCubeTexture?Ae.setTextureCube(be,0):be.isData3DTexture?Ae.setTexture3D(be,0):be.isDataArrayTexture||be.isCompressedArrayTexture?Ae.setTexture2DArray(be,0):Ae.setTexture2D(be,0),ft.unbindTexture()},this.resetState=function(){I=0,V=0,R=null,ft.reset(),Cn.reset()},typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return Rh}get physicallyCorrectLights(){return console.warn("THREE.WebGLRenderer: The property .physicallyCorrectLights has been removed. Set renderer.useLegacyLights instead."),!this.useLegacyLights}set physicallyCorrectLights(t){console.warn("THREE.WebGLRenderer: The property .physicallyCorrectLights has been removed. Set renderer.useLegacyLights instead."),this.useLegacyLights=!t}get outputEncoding(){return console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace===fo?gA:3e3}set outputEncoding(t){console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace=t===gA?fo:fu}get useLegacyLights(){return console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights}set useLegacyLights(t){console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights=t}}(class zTe extends CS{}).prototype.isWebGL1Renderer=!0;class MS extends So{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.overrideMaterial=null,typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(t,e){return super.copy(t,e),null!==t.background&&(this.background=t.background.clone()),null!==t.environment&&(this.environment=t.environment.clone()),null!==t.fog&&(this.fog=t.fog.clone()),this.backgroundBlurriness=t.backgroundBlurriness,this.backgroundIntensity=t.backgroundIntensity,null!==t.overrideMaterial&&(this.overrideMaterial=t.overrideMaterial.clone()),this.matrixAutoUpdate=t.matrixAutoUpdate,this}toJSON(t){const e=super.toJSON(t);return null!==this.fog&&(e.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(e.object.backgroundBlurriness=this.backgroundBlurriness),1!==this.backgroundIntensity&&(e.object.backgroundIntensity=this.backgroundIntensity),e}}class G4{constructor(t,e){this.isInterleavedBuffer=!0,this.array=t,this.stride=e,this.count=void 0!==t?t.length/e:0,this.usage=35044,this.updateRange={offset:0,count:-1},this.version=0,this.uuid=Xl()}onUploadCallback(){}set needsUpdate(t){!0===t&&this.version++}setUsage(t){return this.usage=t,this}copy(t){return this.array=new t.array.constructor(t.array),this.count=t.count,this.stride=t.stride,this.usage=t.usage,this}copyAt(t,e,i){t*=this.stride,i*=e.stride;for(let r=0,o=this.stride;rt.far||e.push({distance:l,point:hw.clone(),uv:Zl.getInterpolation(hw,ES,mw,SS,rK,$4,oK,new at),face:null,object:this})}copy(t,e){return super.copy(t,e),void 0!==t.center&&this.center.copy(t.center),this.material=t.material,this}}function TS(n,t,e,i,r,o){q_.subVectors(n,e).addScalar(.5).multiply(i),void 0!==r?(fw.x=o*q_.x-r*q_.y,fw.y=r*q_.x+o*q_.y):fw.copy(q_),n.copy(t),n.x+=fw.x,n.y+=fw.y,n.applyMatrix4(iK)}class Aa extends Qa{constructor(t){super(),this.isLineBasicMaterial=!0,this.type="LineBasicMaterial",this.color=new an(16777215),this.map=null,this.linewidth=1,this.linecap="round",this.linejoin="round",this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.linewidth=t.linewidth,this.linecap=t.linecap,this.linejoin=t.linejoin,this.fog=t.fog,this}}const AK=new ie,gK=new ie,_K=new Pi,Z4=new xA,DS=new Kl;class gd extends So{constructor(t=new vi,e=new Aa){super(),this.isLine=!0,this.type="Line",this.geometry=t,this.material=e,this.updateMorphTargets()}copy(t,e){return super.copy(t,e),this.material=Array.isArray(t.material)?t.material.slice():t.material,this.geometry=t.geometry,this}computeLineDistances(){const t=this.geometry;if(null===t.index){const e=t.attributes.position,i=[0];for(let r=1,o=e.count;rl)continue;h.applyMatrix4(this.matrixWorld);const K=t.ray.origin.distanceTo(h);Kt.far||e.push({distance:K,point:u.clone().applyMatrix4(this.matrixWorld),index:C,face:null,faceIndex:null,object:this})}else for(let C=Math.max(0,s.start),E=Math.min(_.count,s.start+s.count)-1;Cl)continue;h.applyMatrix4(this.matrixWorld);const V=t.ray.origin.distanceTo(h);Vt.far||e.push({distance:V,point:u.clone().applyMatrix4(this.matrixWorld),index:C,face:null,faceIndex:null,object:this})}}updateMorphTargets(){const e=this.geometry.morphAttributes,i=Object.keys(e);if(i.length>0){const r=e[i[0]];if(void 0!==r){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let o=0,s=r.length;o0)){l=r;break}l=r-1}if(r=l,i[r]===s)return r/(o-1);const d=i[r];return(r+(s-d)/(i[r+1]-d))/(o-1)}getTangent(t,e){let r=t-1e-4,o=t+1e-4;r<0&&(r=0),o>1&&(o=1);const s=this.getPoint(r),a=this.getPoint(o),l=e||(s.isVector2?new at:new ie);return l.copy(a).sub(s).normalize(),l}getTangentAt(t,e){const i=this.getUtoTmapping(t);return this.getTangent(i,e)}computeFrenetFrames(t,e){const i=new ie,r=[],o=[],s=[],a=new ie,l=new Pi;for(let f=0;f<=t;f++)r[f]=this.getTangentAt(f/t,new ie);o[0]=new ie,s[0]=new ie;let c=Number.MAX_VALUE;const d=Math.abs(r[0].x),u=Math.abs(r[0].y),h=Math.abs(r[0].z);d<=c&&(c=d,i.set(1,0,0)),u<=c&&(c=u,i.set(0,1,0)),h<=c&&i.set(0,0,1),a.crossVectors(r[0],i).normalize(),o[0].crossVectors(r[0],a),s[0].crossVectors(r[0],o[0]);for(let f=1;f<=t;f++){if(o[f]=o[f-1].clone(),s[f]=s[f-1].clone(),a.crossVectors(r[f-1],r[f]),a.length()>Number.EPSILON){a.normalize();const A=Math.acos(Go(r[f-1].dot(r[f]),-1,1));o[f].applyMatrix4(l.makeRotationAxis(a,A))}s[f].crossVectors(r[f],o[f])}if(!0===e){let f=Math.acos(Go(o[0].dot(o[t]),-1,1));f/=t,r[0].dot(a.crossVectors(o[0],o[t]))>0&&(f=-f);for(let A=1;A<=t;A++)o[A].applyMatrix4(l.makeRotationAxis(r[A],f*A)),s[A].crossVectors(r[A],o[A])}return{tangents:r,normals:o,binormals:s}}clone(){return(new this.constructor).copy(this)}copy(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}toJSON(){const t={metadata:{version:4.6,type:"Curve",generator:"Curve.toJSON"}};return t.arcLengthDivisions=this.arcLengthDivisions,t.type=this.type,t}fromJSON(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}}class tL extends pu{constructor(t=0,e=0,i=1,r=1,o=0,s=2*Math.PI,a=!1,l=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=t,this.aY=e,this.xRadius=i,this.yRadius=r,this.aStartAngle=o,this.aEndAngle=s,this.aClockwise=a,this.aRotation=l}getPoint(t,e){const i=e||new at,r=2*Math.PI;let o=this.aEndAngle-this.aStartAngle;const s=Math.abs(o)r;)o-=r;or.length-2?r.length-1:s+1],u=r[s>r.length-3?r.length-1:s+2];return i.set(CK(a,l.x,c.x,d.x,u.x),CK(a,l.y,c.y,d.y,u.y)),i}copy(t){super.copy(t),this.points=[];for(let e=0,i=t.points.length;e0?0:(Math.floor(Math.abs(a)/o)+1)*o:0===l&&a===o-1&&(a=o-2,l=1),this.closed||a>0?c=r[(a-1)%o]:(PS.subVectors(r[0],r[1]).add(r[0]),c=PS);const u=r[a%o],h=r[(a+1)%o];if(this.closed||a+2=i){const s=r[o]-i,a=this.curves[o],l=a.getLength();return a.getPointAt(0===l?0:1-s/l,e)}o++}return null}getLength(){const t=this.getCurveLengths();return t[t.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const t=[];let e=0;for(let i=0,r=this.curves.length;i1&&!e[e.length-1].equals(e[0])&&e.push(e[0]),e}copy(t){super.copy(t),this.curves=[];for(let e=0,i=t.curves.length;e0){const u=c.getPoint(0);u.equals(this.currentPoint)||this.lineTo(u.x,u.y)}this.curves.push(c);const d=c.getPoint(1);return this.currentPoint.copy(d),this}copy(t){return super.copy(t),this.currentPoint.copy(t.currentPoint),this}toJSON(){const t=super.toJSON();return t.currentPoint=this.currentPoint.toArray(),t}fromJSON(t){return super.fromJSON(t),this.currentPoint.fromArray(t.currentPoint),this}}class yw extends vi{constructor(t=1,e=1,i=1,r=32,o=1,s=!1,a=0,l=2*Math.PI){super(),this.type="CylinderGeometry",this.parameters={radiusTop:t,radiusBottom:e,height:i,radialSegments:r,heightSegments:o,openEnded:s,thetaStart:a,thetaLength:l};const c=this;r=Math.floor(r),o=Math.floor(o);const d=[],u=[],h=[],f=[];let A=0;const y=[],_=i/2;let b=0;function C(E){const I=A,V=new at,R=new ie;let K=0;const k=!0===E?t:e,W=!0===E?1:-1;for(let Se=1;Se<=r;Se++)u.push(0,_*W,0),h.push(0,W,0),f.push(.5,.5),A++;const ue=A;for(let Se=0;Se<=r;Se++){const Z=Se/r*l+a,ve=Math.cos(Z),re=Math.sin(Z);R.x=k*re,R.y=_*W,R.z=k*ve,u.push(R.x,R.y,R.z),h.push(0,W,0),V.x=.5*ve+.5,V.y=.5*re*W+.5,f.push(V.x,V.y),A++}for(let Se=0;Se0&&C(!0),e>0&&C(!1)),this.setIndex(d),this.setAttribute("position",new Ln(u,3)),this.setAttribute("normal",new Ln(h,3)),this.setAttribute("uv",new Ln(f,2))}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}static fromJSON(t){return new yw(t.radiusTop,t.radiusBottom,t.height,t.radialSegments,t.heightSegments,t.openEnded,t.thetaStart,t.thetaLength)}}class xm extends TA{constructor(t){super(t),this.uuid=Xl(),this.type="Shape",this.holes=[]}getPointsHoles(t){const e=[];for(let i=0,r=this.holes.length;i0)for(o=t;o=t;o-=i)s=BK(o,n[o],n[o+1],s);return s&&US(s,s.next)&&(Cw(s),s=s.next),s}function FA(n,t){if(!n)return n;t||(t=n);let i,e=n;do{if(i=!1,e.steiner||!US(e,e.next)&&0!==Lo(e.prev,e,e.next))e=e.next;else{if(Cw(e),e=t=e.prev,e===e.next)break;i=!0}}while(i||e!==t);return t}function ww(n,t,e,i,r,o,s){if(!n)return;!s&&o&&function yIe(n,t,e,i){let r=n;do{0===r.z&&(r.z=fL(r.x,r.y,t,e,i)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next}while(r!==n);r.prevZ.nextZ=null,r.prevZ=null,function wIe(n){let t,e,i,r,o,s,a,l,c=1;do{for(e=n,n=null,o=null,s=0;e;){for(s++,i=e,a=0,t=0;t0||l>0&&i;)0!==a&&(0===l||!i||e.z<=i.z)?(r=e,e=e.nextZ,a--):(r=i,i=i.nextZ,l--),o?o.nextZ=r:n=r,r.prevZ=o,o=r;e=i}o.nextZ=null,c*=2}while(s>1)}(r)}(n,i,r,o);let l,c,a=n;for(;n.prev!==n.next;)if(l=n.prev,c=n.next,o?fIe(n,i,r,o):hIe(n))t.push(l.i/e|0),t.push(n.i/e|0),t.push(c.i/e|0),Cw(n),n=c.next,a=c.next;else if((n=c)===a){s?1===s?ww(n=mIe(FA(n),t,e),t,e,i,r,o,2):2===s&&pIe(n,t,e,i,r,o):ww(FA(n),t,e,i,r,o,1);break}}function hIe(n){const t=n.prev,e=n,i=n.next;if(Lo(t,e,i)>=0)return!1;const r=t.x,o=e.x,s=i.x,a=t.y,l=e.y,c=i.y,d=ro?r>s?r:s:o>s?o:s,f=a>l?a>c?a:c:l>c?l:c;let A=i.next;for(;A!==t;){if(A.x>=d&&A.x<=h&&A.y>=u&&A.y<=f&&$_(r,a,o,l,s,c,A.x,A.y)&&Lo(A.prev,A,A.next)>=0)return!1;A=A.next}return!0}function fIe(n,t,e,i){const r=n.prev,o=n,s=n.next;if(Lo(r,o,s)>=0)return!1;const a=r.x,l=o.x,c=s.x,d=r.y,u=o.y,h=s.y,f=al?a>c?a:c:l>c?l:c,_=d>u?d>h?d:h:u>h?u:h,b=fL(f,A,t,e,i),M=fL(y,_,t,e,i);let C=n.prevZ,E=n.nextZ;for(;C&&C.z>=b&&E&&E.z<=M;){if(C.x>=f&&C.x<=y&&C.y>=A&&C.y<=_&&C!==r&&C!==s&&$_(a,d,l,u,c,h,C.x,C.y)&&Lo(C.prev,C,C.next)>=0||(C=C.prevZ,E.x>=f&&E.x<=y&&E.y>=A&&E.y<=_&&E!==r&&E!==s&&$_(a,d,l,u,c,h,E.x,E.y)&&Lo(E.prev,E,E.next)>=0))return!1;E=E.nextZ}for(;C&&C.z>=b;){if(C.x>=f&&C.x<=y&&C.y>=A&&C.y<=_&&C!==r&&C!==s&&$_(a,d,l,u,c,h,C.x,C.y)&&Lo(C.prev,C,C.next)>=0)return!1;C=C.prevZ}for(;E&&E.z<=M;){if(E.x>=f&&E.x<=y&&E.y>=A&&E.y<=_&&E!==r&&E!==s&&$_(a,d,l,u,c,h,E.x,E.y)&&Lo(E.prev,E,E.next)>=0)return!1;E=E.nextZ}return!0}function mIe(n,t,e){let i=n;do{const r=i.prev,o=i.next.next;!US(r,o)&&DK(r,i,i.next,o)&&xw(r,o)&&xw(o,r)&&(t.push(r.i/e|0),t.push(i.i/e|0),t.push(o.i/e|0),Cw(i),Cw(i.next),i=n=o),i=i.next}while(i!==n);return FA(i)}function pIe(n,t,e,i,r,o){let s=n;do{let a=s.next.next;for(;a!==s.prev;){if(s.i!==a.i&&CIe(s,a)){let l=kK(s,a);return s=FA(s,s.next),l=FA(l,l.next),ww(s,t,e,i,r,o,0),void ww(l,t,e,i,r,o,0)}a=a.next}s=s.next}while(s!==n)}function gIe(n,t){return n.x-t.x}function _Ie(n,t){const e=function bIe(n,t){let r,e=t,i=-1/0;const o=n.x,s=n.y;do{if(s<=e.y&&s>=e.next.y&&e.next.y!==e.y){const h=e.x+(s-e.y)*(e.next.x-e.x)/(e.next.y-e.y);if(h<=o&&h>i&&(i=h,r=e.x=e.x&&e.x>=l&&o!==e.x&&$_(sr.x||e.x===r.x&&vIe(r,e)))&&(r=e,d=u)),e=e.next}while(e!==a);return r}(n,t);if(!e)return t;const i=kK(e,n);return FA(i,i.next),FA(e,e.next)}function vIe(n,t){return Lo(n.prev,n,t.prev)<0&&Lo(t.next,n,n.next)<0}function fL(n,t,e,i,r){return(n=1431655765&((n=858993459&((n=252645135&((n=16711935&((n=(n-e)*r|0)|n<<8))|n<<4))|n<<2))|n<<1))|(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-i)*r|0)|t<<8))|t<<4))|t<<2))|t<<1))<<1}function xIe(n){let t=n,e=n;do{(t.x=(n-s)*(o-a)&&(n-s)*(i-a)>=(e-s)*(t-a)&&(e-s)*(o-a)>=(r-s)*(i-a)}function CIe(n,t){return n.next.i!==t.i&&n.prev.i!==t.i&&!function MIe(n,t){let e=n;do{if(e.i!==n.i&&e.next.i!==n.i&&e.i!==t.i&&e.next.i!==t.i&&DK(e,e.next,n,t))return!0;e=e.next}while(e!==n);return!1}(n,t)&&(xw(n,t)&&xw(t,n)&&function EIe(n,t){let e=n,i=!1;const r=(n.x+t.x)/2,o=(n.y+t.y)/2;do{e.y>o!=e.next.y>o&&e.next.y!==e.y&&r<(e.next.x-e.x)*(o-e.y)/(e.next.y-e.y)+e.x&&(i=!i),e=e.next}while(e!==n);return i}(n,t)&&(Lo(n.prev,n,t.prev)||Lo(n,t.prev,t))||US(n,t)&&Lo(n.prev,n,n.next)>0&&Lo(t.prev,t,t.next)>0)}function Lo(n,t,e){return(t.y-n.y)*(e.x-t.x)-(t.x-n.x)*(e.y-t.y)}function US(n,t){return n.x===t.x&&n.y===t.y}function DK(n,t,e,i){const r=VS(Lo(n,t,e)),o=VS(Lo(n,t,i)),s=VS(Lo(e,i,n)),a=VS(Lo(e,i,t));return!!(r!==o&&s!==a||0===r&&HS(n,e,t)||0===o&&HS(n,i,t)||0===s&&HS(e,n,i)||0===a&&HS(e,t,i))}function HS(n,t,e){return t.x<=Math.max(n.x,e.x)&&t.x>=Math.min(n.x,e.x)&&t.y<=Math.max(n.y,e.y)&&t.y>=Math.min(n.y,e.y)}function VS(n){return n>0?1:n<0?-1:0}function xw(n,t){return Lo(n.prev,n,n.next)<0?Lo(n,t,n.next)>=0&&Lo(n,n.prev,t)>=0:Lo(n,t,n.prev)<0||Lo(n,n.next,t)<0}function kK(n,t){const e=new mL(n.i,n.x,n.y),i=new mL(t.i,t.x,t.y),r=n.next,o=t.prev;return n.next=t,t.prev=n,e.next=r,r.prev=e,i.next=e,e.prev=i,o.next=i,i.prev=o,i}function BK(n,t,e,i){const r=new mL(n,t,e);return i?(r.next=i.next,r.prev=i,i.next.prev=r,i.next=r):(r.prev=r,r.next=r),r}function Cw(n){n.next.prev=n.prev,n.prev.next=n.next,n.prevZ&&(n.prevZ.nextZ=n.nextZ),n.nextZ&&(n.nextZ.prevZ=n.prevZ)}function mL(n,t,e){this.i=n,this.x=t,this.y=e,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}class Au{static area(t){const e=t.length;let i=0;for(let r=e-1,o=0;o80*e){a=c=n[0],l=d=n[1];for(let A=e;Ac&&(c=u),h>d&&(d=h);f=Math.max(c-a,d-l),f=0!==f?32767/f:0}return ww(o,s,e,a,l,f,0),s}(i,r);for(let l=0;l2&&n[t-1].equals(n[0])&&n.pop()}function RK(n,t){for(let e=0;eNumber.EPSILON){const ne=Math.sqrt(sr),bt=Math.sqrt(zt*zt+Tn*Tn),Jt=mt.x-Ae/ne,jt=mt.y+Ee/ne,nn=((Pe.x-Tn/bt-Jt)*Tn-(Pe.y+zt/bt-jt)*zt)/(Ee*Tn-Ae*zt);ot=Jt+Ee*nn-me.x,ft=jt+Ae*nn-me.y;const St=ot*ot+ft*ft;if(St<=2)return new at(ot,ft);_t=Math.sqrt(St/2)}else{let ne=!1;Ee>Number.EPSILON?zt>Number.EPSILON&&(ne=!0):Ee<-Number.EPSILON?zt<-Number.EPSILON&&(ne=!0):Math.sign(Ae)===Math.sign(Tn)&&(ne=!0),ne?(ot=-Ae,ft=Ee,_t=Math.sqrt(sr)):(ot=Ee,ft=Ae,_t=Math.sqrt(sr/2))}return new at(ot/_t,ft/_t)}const Ce=[];for(let me=0,mt=Z.length,Pe=mt-1,ot=me+1;me=0;me--){const mt=me/_,Pe=f*Math.cos(mt*Math.PI/2),ot=A*Math.sin(mt*Math.PI/2)+y;for(let ft=0,_t=Z.length;ft<_t;ft++){const Ee=ve(Z[ft],Ce[ft],ot);J(Ee.x,Ee.y,u+Pe)}for(let ft=0,_t=ue.length;ft<_t;ft++){const Ee=ue[ft];Ie=Qe[ft];for(let Ae=0,zt=Ee.length;Ae=0;){const ot=Pe;let ft=Pe-1;ft<0&&(ft=me.length-1);for(let _t=0,Ee=d+2*_;_t=o)break e;{const a=e[1];t=o)break t}s=i,i=0}}for(;i>>1;te;)--s;if(++s,0!==o||s!==r){o>=s&&(s=Math.max(s,1),o=s-1);const a=this.getValueSize();this.times=kc(i,o,s),this.values=kc(this.values,o*a,s*a)}return this}validate(){let t=!0;const e=this.getValueSize();e-Math.floor(e)!=0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),t=!1);const i=this.times,r=this.values,o=i.length;0===o&&(console.error("THREE.KeyframeTrack: Track is empty.",this),t=!1);let s=null;for(let a=0;a!==o;a++){const l=i[a];if("number"==typeof l&&isNaN(l)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,a,l),t=!1;break}if(null!==s&&s>l){console.error("THREE.KeyframeTrack: Out of order keys.",this,a,l,s),t=!1;break}s=l}if(void 0!==r&&wL(r))for(let a=0,l=r.length;a!==l;++a){const c=r[a];if(isNaN(c)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,a,c),t=!1;break}}return t}optimize(){const t=kc(this.times),e=kc(this.values),i=this.getValueSize(),r=2302===this.getInterpolation(),o=t.length-1;let s=1;for(let a=1;a0){t[s]=t[o];for(let a=o*i,l=s*i,c=0;c!==i;++c)e[l+c]=e[a+c];++s}return s!==t.length?(this.times=kc(t,0,s),this.values=kc(e,0,s*i)):(this.times=t,this.values=e),this}clone(){const t=kc(this.times,0),e=kc(this.values,0),r=new(0,this.constructor)(this.name,t,e);return r.createInterpolant=this.createInterpolant,r}}gu.prototype.TimeBufferType=Float32Array,gu.prototype.ValueBufferType=Float32Array,gu.prototype.DefaultInterpolation=2301;class X_ extends gu{}X_.prototype.ValueTypeName="bool",X_.prototype.ValueBufferType=Array,X_.prototype.DefaultInterpolation=2300,X_.prototype.InterpolantFactoryMethodLinear=void 0,X_.prototype.InterpolantFactoryMethodSmooth=void 0;(class QK extends gu{}).prototype.ValueTypeName="color";(class WS extends gu{}).prototype.ValueTypeName="number";class zIe extends GS{constructor(t,e,i,r){super(t,e,i,r)}interpolate_(t,e,i,r){const o=this.resultBuffer,s=this.sampleValues,a=this.valueSize,l=(i-e)/(r-e);let c=t*a;for(let d=c+a;c!==d;c+=4)Va.slerpFlat(o,0,s,c-a,s,c,l);return o}}class Mw extends gu{InterpolantFactoryMethodLinear(t){return new zIe(this.times,this.values,this.getValueSize(),t)}}Mw.prototype.ValueTypeName="quaternion",Mw.prototype.DefaultInterpolation=2301,Mw.prototype.InterpolantFactoryMethodSmooth=void 0;class K_ extends gu{}K_.prototype.ValueTypeName="string",K_.prototype.ValueBufferType=Array,K_.prototype.DefaultInterpolation=2300,K_.prototype.InterpolantFactoryMethodLinear=void 0,K_.prototype.InterpolantFactoryMethodSmooth=void 0;(class $S extends gu{}).prototype.ValueTypeName="vector";const Y_={enabled:!1,files:{},add:function(n,t){!1!==this.enabled&&(this.files[n]=t)},get:function(n){if(!1!==this.enabled)return this.files[n]},remove:function(n){delete this.files[n]},clear:function(){this.files={}}};class zK{constructor(t,e,i){const r=this;let l,o=!1,s=0,a=0;const c=[];this.onStart=void 0,this.onLoad=t,this.onProgress=e,this.onError=i,this.itemStart=function(d){a++,!1===o&&void 0!==r.onStart&&r.onStart(d,s,a),o=!0},this.itemEnd=function(d){s++,void 0!==r.onProgress&&r.onProgress(d,s,a),s===a&&(o=!1,void 0!==r.onLoad&&r.onLoad())},this.itemError=function(d){void 0!==r.onError&&r.onError(d)},this.resolveURL=function(d){return l?l(d):d},this.setURLModifier=function(d){return l=d,this},this.addHandler=function(d,u){return c.push(d,u),this},this.removeHandler=function(d){const u=c.indexOf(d);return-1!==u&&c.splice(u,2),this},this.getHandler=function(d){for(let u=0,h=c.length;u{class n{constructor(e){this.manager=void 0!==e?e:WIe,this.crossOrigin="anonymous",this.withCredentials=!1,this.path="",this.resourcePath="",this.requestHeader={}}load(){}loadAsync(e,i){const r=this;return new Promise(function(o,s){r.load(e,o,i,s)})}parse(){}setCrossOrigin(e){return this.crossOrigin=e,this}setWithCredentials(e){return this.withCredentials=e,this}setPath(e){return this.path=e,this}setResourcePath(e){return this.resourcePath=e,this}setRequestHeader(e){return this.requestHeader=e,this}}return n.DEFAULT_MATERIAL_NAME="__DEFAULT",n})();const Wh={};class $Ie extends Error{constructor(t,e){super(t),this.response=e}}class _u extends hl{constructor(t){super(t)}load(t,e,i,r){void 0===t&&(t=""),void 0!==this.path&&(t=this.path+t),t=this.manager.resolveURL(t);const o=Y_.get(t);if(void 0!==o)return this.manager.itemStart(t),setTimeout(()=>{e&&e(o),this.manager.itemEnd(t)},0),o;if(void 0!==Wh[t])return void Wh[t].push({onLoad:e,onProgress:i,onError:r});Wh[t]=[],Wh[t].push({onLoad:e,onProgress:i,onError:r});const s=new Request(t,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),a=this.mimeType,l=this.responseType;fetch(s).then(c=>{if(200===c.status||0===c.status){if(0===c.status&&console.warn("THREE.FileLoader: HTTP Status 0 received."),typeof ReadableStream>"u"||void 0===c.body||void 0===c.body.getReader)return c;const d=Wh[t],u=c.body.getReader(),h=c.headers.get("Content-Length")||c.headers.get("X-File-Size"),f=h?parseInt(h):0,A=0!==f;let y=0;const _=new ReadableStream({start(b){!function M(){u.read().then(({done:C,value:E})=>{if(C)b.close();else{y+=E.byteLength;const I=new ProgressEvent("progress",{lengthComputable:A,loaded:y,total:f});for(let V=0,R=d.length;V{switch(l){case"arraybuffer":return c.arrayBuffer();case"blob":return c.blob();case"document":return c.text().then(d=>(new DOMParser).parseFromString(d,a));case"json":return c.json();default:if(void 0===a)return c.text();{const u=/charset="?([^;"\s]*)"?/i.exec(a),h=u&&u[1]?u[1].toLowerCase():void 0,f=new TextDecoder(h);return c.arrayBuffer().then(A=>f.decode(A))}}}).then(c=>{Y_.add(t,c);const d=Wh[t];delete Wh[t];for(let u=0,h=d.length;u{const d=Wh[t];if(void 0===d)throw this.manager.itemError(t),c;delete Wh[t];for(let u=0,h=d.length;u{this.manager.itemEnd(t)}),this.manager.itemStart(t)}setResponseType(t){return this.responseType=t,this}setMimeType(t){return this.mimeType=t,this}}class kA extends So{constructor(t,e=1){super(),this.isLight=!0,this.type="Light",this.color=new an(t),this.intensity=e}dispose(){}copy(t,e){return super.copy(t,e),this.color.copy(t.color),this.intensity=t.intensity,this}toJSON(t){const e=super.toJSON(t);return e.object.color=this.color.getHex(),e.object.intensity=this.intensity,void 0!==this.groundColor&&(e.object.groundColor=this.groundColor.getHex()),void 0!==this.distance&&(e.object.distance=this.distance),void 0!==this.angle&&(e.object.angle=this.angle),void 0!==this.decay&&(e.object.decay=this.decay),void 0!==this.penumbra&&(e.object.penumbra=this.penumbra),void 0!==this.shadow&&(e.object.shadow=this.shadow.toJSON()),e}}const ML=new Pi,qK=new ie,GK=new ie;class EL{constructor(t){this.camera=t,this.bias=0,this.normalBias=0,this.radius=1,this.blurSamples=8,this.mapSize=new at(512,512),this.map=null,this.mapPass=null,this.matrix=new Pi,this.autoUpdate=!0,this.needsUpdate=!1,this._frustum=new L4,this._frameExtents=new at(1,1),this._viewportCount=1,this._viewports=[new Xr(0,0,1,1)]}getViewportCount(){return this._viewportCount}getFrustum(){return this._frustum}updateMatrices(t){const e=this.camera,i=this.matrix;qK.setFromMatrixPosition(t.matrixWorld),e.position.copy(qK),GK.setFromMatrixPosition(t.target.matrixWorld),e.lookAt(GK),e.updateMatrixWorld(),ML.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse),this._frustum.setFromProjectionMatrix(ML),i.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),i.multiply(ML)}getViewport(t){return this._viewports[t]}getFrameExtents(){return this._frameExtents}dispose(){this.map&&this.map.dispose(),this.mapPass&&this.mapPass.dispose()}copy(t){return this.camera=t.camera.clone(),this.bias=t.bias,this.radius=t.radius,this.mapSize.copy(t.mapSize),this}clone(){return(new this.constructor).copy(this)}toJSON(){const t={};return 0!==this.bias&&(t.bias=this.bias),0!==this.normalBias&&(t.normalBias=this.normalBias),1!==this.radius&&(t.radius=this.radius),(512!==this.mapSize.x||512!==this.mapSize.y)&&(t.mapSize=this.mapSize.toArray()),t.camera=this.camera.toJSON(!1).object,delete t.camera.matrix,t}}class JIe extends EL{constructor(){super(new vS(-5,5,5,-5,.5,500)),this.isDirectionalLightShadow=!0}}class Sw extends kA{constructor(t,e){super(t,e),this.isDirectionalLight=!0,this.type="DirectionalLight",this.position.copy(So.DEFAULT_UP),this.updateMatrix(),this.target=new So,this.shadow=new JIe}dispose(){this.shadow.dispose()}copy(t){return super.copy(t),this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}class TL extends kA{constructor(t,e){super(t,e),this.isAmbientLight=!0,this.type="AmbientLight"}}class JK{constructor(t=!0){this.autoStart=t,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=eY(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let t=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const e=eY();t=(e-this.oldTime)/1e3,this.oldTime=e,this.elapsedTime+=t}return t}}function eY(){return(typeof performance>"u"?Date:performance).now()}const DL="\\[\\]\\.:\\/",cFe=new RegExp("["+DL+"]","g"),kL="[^"+DL+"]",dFe="[^"+DL.replace("\\.","")+"]",pFe=new RegExp("^"+/((?:WC+[\/:])*)/.source.replace("WC",kL)+/(WCOD+)?/.source.replace("WCOD",dFe)+/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",kL)+/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",kL)+"$"),AFe=["material","materials","bones","map"];class gFe{constructor(t,e,i){const r=i||vo.parseTrackName(e);this._targetGroup=t,this._bindings=t.subscribe_(e,r)}getValue(t,e){this.bind();const r=this._bindings[this._targetGroup.nCachedObjects_];void 0!==r&&r.getValue(t,e)}setValue(t,e){const i=this._bindings;for(let r=this._targetGroup.nCachedObjects_,o=i.length;r!==o;++r)i[r].setValue(t,e)}bind(){const t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,i=t.length;e!==i;++e)t[e].bind()}unbind(){const t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,i=t.length;e!==i;++e)t[e].unbind()}}let vo=(()=>{class n{constructor(e,i,r){this.path=i,this.parsedPath=r||n.parseTrackName(i),this.node=n.findNode(e,this.parsedPath.nodeName),this.rootNode=e,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(e,i,r){return e&&e.isAnimationObjectGroup?new n.Composite(e,i,r):new n(e,i,r)}static sanitizeNodeName(e){return e.replace(/\s/g,"_").replace(cFe,"")}static parseTrackName(e){const i=pFe.exec(e);if(null===i)throw new Error("PropertyBinding: Cannot parse trackName: "+e);const r={nodeName:i[2],objectName:i[3],objectIndex:i[4],propertyName:i[5],propertyIndex:i[6]},o=r.nodeName&&r.nodeName.lastIndexOf(".");if(void 0!==o&&-1!==o){const s=r.nodeName.substring(o+1);-1!==AFe.indexOf(s)&&(r.nodeName=r.nodeName.substring(0,o),r.objectName=s)}if(null===r.propertyName||0===r.propertyName.length)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+e);return r}static findNode(e,i){if(void 0===i||""===i||"."===i||-1===i||i===e.name||i===e.uuid)return e;if(e.skeleton){const r=e.skeleton.getBoneByName(i);if(void 0!==r)return r}if(e.children){const r=function(s){for(let a=0;athis.max.x||t.ythis.max.y)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(t){return!(t.max.xthis.max.x||t.max.ythis.max.y)}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return this.clampPoint(t,aY).distanceTo(t)}intersect(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}const tT=new dl;class xFe extends Gh{constructor(t,e=16776960){const i=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]),r=new Float32Array(24),o=new vi;o.setIndex(new rr(i,1)),o.setAttribute("position",new rr(r,3)),super(o,new Aa({color:e,toneMapped:!1})),this.object=t,this.type="BoxHelper",this.matrixAutoUpdate=!1,this.update()}update(t){if(void 0!==t&&console.warn("THREE.BoxHelper: .update() has no longer arguments."),void 0!==this.object&&tT.setFromObject(this.object),tT.isEmpty())return;const e=tT.min,i=tT.max,r=this.geometry.attributes.position,o=r.array;o[0]=i.x,o[1]=i.y,o[2]=i.z,o[3]=e.x,o[4]=i.y,o[5]=i.z,o[6]=e.x,o[7]=e.y,o[8]=i.z,o[9]=i.x,o[10]=e.y,o[11]=i.z,o[12]=i.x,o[13]=i.y,o[14]=e.z,o[15]=e.x,o[16]=i.y,o[17]=e.z,o[18]=e.x,o[19]=e.y,o[20]=e.z,o[21]=i.x,o[22]=e.y,o[23]=e.z,r.needsUpdate=!0,this.geometry.computeBoundingSphere()}setFromObject(t){return this.object=t,this.update(),this}copy(t,e){return super.copy(t,e),this.object=t.object,this}dispose(){this.geometry.dispose(),this.material.dispose()}}const pY=new ie;let nT,RL;class CFe extends So{constructor(t=new ie(0,0,1),e=new ie(0,0,0),i=1,r=16776960,o=.2*i,s=.2*o){super(),this.type="ArrowHelper",void 0===nT&&(nT=new vi,nT.setAttribute("position",new Ln([0,0,0,0,1,0],3)),RL=new yw(0,.5,1,5,1),RL.translate(0,-.5,0)),this.position.copy(e),this.line=new gd(nT,new Aa({color:r,toneMapped:!1})),this.line.matrixAutoUpdate=!1,this.add(this.line),this.cone=new Br(RL,new zh({color:r,toneMapped:!1})),this.cone.matrixAutoUpdate=!1,this.add(this.cone),this.setDirection(t),this.setLength(i,o,s)}setDirection(t){if(t.y>.99999)this.quaternion.set(0,0,0,1);else if(t.y<-.99999)this.quaternion.set(1,0,0,0);else{pY.set(t.z,0,-t.x).normalize();const e=Math.acos(t.y);this.quaternion.setFromAxisAngle(pY,e)}}setLength(t,e=.2*t,i=.2*e){this.line.scale.set(1,Math.max(1e-4,t-e),1),this.line.updateMatrix(),this.cone.scale.set(i,e,i),this.cone.position.y=t,this.cone.updateMatrix()}setColor(t){this.line.material.color.set(t),this.cone.material.color.set(t)}copy(t){return super.copy(t,!1),this.line.copy(t.line),this.cone.copy(t.cone),this}dispose(){this.line.geometry.dispose(),this.line.material.dispose(),this.cone.geometry.dispose(),this.cone.material.dispose()}}class MFe extends Gh{constructor(t=1){const e=[0,0,0,t,0,0,0,0,0,0,t,0,0,0,0,0,0,t],r=new vi;r.setAttribute("position",new Ln(e,3)),r.setAttribute("color",new Ln([1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],3)),super(r,new Aa({vertexColors:!0,toneMapped:!1})),this.type="AxesHelper"}setColors(t,e,i){const r=new an,o=this.geometry.attributes.color.array;return r.set(t),r.toArray(o,0),r.toArray(o,3),r.set(e),r.toArray(o,6),r.toArray(o,9),r.set(i),r.toArray(o,12),r.toArray(o,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}}class Mm{constructor(){this.type="ShapePath",this.color=new an,this.subPaths=[],this.currentPath=null}moveTo(t,e){return this.currentPath=new TA,this.subPaths.push(this.currentPath),this.currentPath.moveTo(t,e),this}lineTo(t,e){return this.currentPath.lineTo(t,e),this}quadraticCurveTo(t,e,i,r){return this.currentPath.quadraticCurveTo(t,e,i,r),this}bezierCurveTo(t,e,i,r,o,s){return this.currentPath.bezierCurveTo(t,e,i,r,o,s),this}splineThru(t){return this.currentPath.splineThru(t),this}toShapes(t){function i(b,M){const C=M.length;let E=!1;for(let I=C-1,V=0;VNumber.EPSILON){if(W<0&&(R=M[V],k=-k,K=M[I],W=-W),b.yK.y)continue;if(b.y===R.y){if(b.x===R.x)return!0}else{const ue=W*(b.x-R.x)-k*(b.y-R.y);if(0===ue)return!0;if(ue<0)continue;E=!E}}else{if(b.y!==R.y)continue;if(K.x<=b.x&&b.x<=R.x||R.x<=b.x&&b.x<=K.x)return!0}}return E}const r=Au.isClockWise,o=this.subPaths;if(0===o.length)return[];let s,a,l;const c=[];if(1===o.length)return a=o[0],l=new xm,l.curves=a.curves,c.push(l),c;let d=!r(o[0].getPoints());d=t?!d:d;const u=[],h=[];let y,_,f=[],A=0;h[A]=void 0,f[A]=[];for(let b=0,M=o.length;b1){let b=!1,M=0;for(let C=0,E=h.length;C0&&!1===b&&(f=u)}for(let b=0,M=h.length;be+Math.round(i).toString(16).padStart(2,"0"),"#")}static hexToHSL(t){const e=AY().hex.hsl(t);return new gY(...e)}static colorToVector3(t){const e=or.convertHexToNumber(t);return new ie((e>>16&255)/255,(e>>8&255)/255,(255&e)/255)}static colorToVector3Array(t){const e=or.convertHexToNumber(t);return[(e>>16&255)/255,(e>>8&255)/255,(255&e)/255]}static vector3ToRGB(t){const e=Math.floor(255*t.x),i=Math.floor(255*t.y),r=Math.floor(255*t.z);return new an(e,i,r)}static gradient(t,e,i){const r=this.convertHexToColorObject(t),s=this.convertHexToColorObject(e).sub(r),a=[];for(let l=0;l<=i;l++){const c=s.clone().multiplyScalar(1/i*l),d=r.clone().add(c);a[l]=this.convertColorToHex(d)}return a}static getImageDataUri(t){const e=this.encodeHex(t),i=this.encodeRGB(e[0],e[1],e[2]);return this.generatePixel(i)}static encodeHex(t){let e=t.slice(1);return 3===e.length&&(e=`${e[0]}${e[0]}${e[1]}${e[1]}${e[2]}${e[2]}`),[Number.parseInt(`${e[0]}${e[1]}`,16),Number.parseInt(`${e[2]}${e[3]}`,16),Number.parseInt(`${e[4]}${e[5]}`,16)]}static encodeRGB(t,e,i){return this.encodeTriplet(0,t,e)+this.encodeTriplet(i,255,255)}static encodeTriplet(t,e,i){const r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",s=(3&t)<<4|e>>4,a=(15&e)<<2|i>>6,l=63&i;return r.charAt(t>>2)+r.charAt(s)+r.charAt(a)+r.charAt(l)}static generatePixel(t){return`data:image/gif;base64,R0lGODlhAQABAPAA${t}/yH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==`}}class iT{static getMapResolutionScaling(t){const{width:e}=document.getElementById("codeMapScene"),i=iT.getScalingThreshold(e);return t>i?i/t:1}static getScalingThreshold(t){return Math.min(4*t,10240)}static isLabelNode(t){return!t.isLeaf&&t.mapNodeDepth<3}}class Z_{constructor(t,e,i,r){this.floorLabelPlanes=[],this.folderGeometryHeight=2.01,this.lastScaling=new ie(1,1,1),this.floorLabelPlaneLevel=new Map,this.floorLabelsPerLevel=new Map,this.collectLabelsPerLevel(t),this.rootNode=e,this.mapSize=i,this.scaling=r}collectLabelsPerLevel(t){for(const e of t)iT.isLabelNode(e)&&(this.floorLabelsPerLevel.has(e.mapNodeDepth)||this.floorLabelsPerLevel.set(e.mapNodeDepth,[]),this.floorLabelsPerLevel.get(e.mapNodeDepth).push(e))}draw(){const{width:t,length:e}=this.rootNode,i=iT.getMapResolutionScaling(t),r=t*i,o=e*i;for(const[s,a]of this.floorLabelsPerLevel){const{textCanvas:l,context:c}=Z_.createLabelPlaneCanvas(r,o);this.writeLabelsOnCanvas(c,a,i),this.drawLevelPlaneGeometry(l,r,o,s,i)}return this.floorLabelPlanes}translatePlaneCanvases(t){for(const e of this.floorLabelPlanes){const i=this.floorLabelPlaneLevel.get(e)+1;e.geometry.translate(0,0,this.folderGeometryHeight*(i*this.lastScaling.y-i*t.y))}this.lastScaling=t}static createLabelPlaneCanvas(t,e){const i=document.createElement("canvas");let r=t,o=e;t>e&&(r=e,o=t),i.width=r,i.height=o;const s=i.getContext("2d");return s.fillStyle="white",s.textAlign="center",s.textBaseline="middle",{textCanvas:i,context:s}}writeLabelsOnCanvas(t,e,i){const{width:r,length:o}=this.rootNode;for(const s of e){let a=0===s.depth?Math.max(Math.floor(.03*r),120):Math.max(Math.floor(.023*r),95);a*=i,t.font=`${a}px Arial`;const l=Z_.getLabelAndSetContextFont(s,t,i,a);t.fillText(l.labelText,(o-s.y0-s.length/2)*i,(s.x0+s.width)*i-l.fontSize/2)}}drawLevelPlaneGeometry(t,e,i,r,o){const s=new ZTe(t);s.wrapS=h_,s.wrapT=h_,s.repeat.x=-1,s.needsUpdate=!0,s.rotation=90*Math.PI/180;const a=new dw(e,i),l=new zh({side:1,map:s,transparent:!0}),c=new Br(a,l);c.rotateX(90*Math.PI/180),a.translate(e/2,i/2,-this.folderGeometryHeight*this.scaling.y*(r+1)-2),c.scale.set(this.scaling.x/o,this.scaling.z/o,1),c.position.set(-this.mapSize*this.scaling.x,0,-this.mapSize*this.scaling.z),this.floorLabelPlanes.push(c),this.floorLabelPlaneLevel.set(c,r)}static getLabelAndSetContextFont(t,e,i,r){const o=t.name,s=t.length*i;e.font=`${r}px Arial`;const a=e.measureText(o),l=Z_.getFontScaleFactor(s,a.width);return l<=.5?(r*=.5,r=Math.floor(Math.min(r,t.width*i)),e.font=`${r}px Arial`,{labelText:Z_.getFittingLabelText(e,s,o),fontSize:r}):(r=Math.floor(Math.min(r*l,t.width*i)),e.font=`${r}px Arial`,{labelText:o,fontSize:r})}static getFontScaleFactor(t,e){return e=e&&o>1;)o-=1,s=`${i.slice(0,o)}\u2026`;return s}}const LL=pn("SET_SELECTED_BUILDING_ID",{_as:"props",_p:void 0}),SFe=/_\d{4}(?:-\d{1,2}){2}_\d{1,2}-\d{1,2}\./;let Em=(()=>{class n{static{this.JSON_EXTENSION=".json"}static getNewFileName(e,i){return`${this.getFileNameWithoutTimestamp(e,i)}_${this.getNewTimestamp()}`}static getNewTimestamp(){return n.getFormattedTimestamp(new Date)}static getFormattedTimestamp(e){return e.toISOString().slice(0,16).replace("T","_").replace(":","-")}static getFileNameWithoutTimestamp(e,i){if(!i){const r=SFe.exec(e);if(r)return e.slice(0,r.index);if(e.endsWith(t_.CC_FILE_EXTENSION))return e.slice(0,-t_.CC_FILE_EXTENSION.length);if(e.endsWith(n.JSON_EXTENSION))return e.slice(0,-n.JSON_EXTENSION.length)}return e}static withoutCCExtension(e){return e.replace(/(\.cc)?(\.json)?(\.gz)?$/,"")}}return n})();function _Y(n,t){return function TFe(n){return n.startsWith(`${lu.rootPath}/`)}(t)?Tw(n,t):t}function Tw(n,t){const e=lu.rootPath.length+1,i=t.length<=e?"":`/${t.slice(e)}`;return`${lu.rootPath}/${n}${i}`}function OL(n,t){do{t=t.slice(0,t.lastIndexOf("/"));const e=n.get(t);if(e)return e}while(t!==lu.rootPath&&t.length>0)}let bY=(()=>{class n{static{this.projectNameArray=[]}static{this.fileNameArray=[]}static{this.fileChecksumArray=[]}static{this.fileSizesSum=0}static calculateAggregationFile(e){const i=nu(e.map(r=>r.file));if(1===i.length)return i[0];this.resetVariables();for(const r of i)this.projectNameArray.push(r.fileMeta.projectName.replace(" ","_")),this.fileNameArray.push(Em.withoutCCExtension(r.fileMeta.fileName).replace(" ","_")),this.fileChecksumArray.push(r.fileMeta.fileChecksum),this.fileSizesSum+=r.fileMeta.exportedFileSize;return this.getNewAggregatedMap(i)}static getNewAggregatedMap(e){const i={fileMeta:{projectName:`project_aggregation_of_${this.projectNameArray.join("_and_")}`,fileName:`file_aggregation_of_${this.fileNameArray.join("_and_")}`,fileChecksum:this.fileChecksumArray.join(";"),apiVersion:P1.f4.X,exportedFileSize:this.fileSizesSum},map:{name:lu.rootName,type:Oa.FOLDER,children:[],attributes:{},path:lu.rootPath},settings:{fileSettings:{edges:[],blacklist:[],attributeTypes:{nodes:{},edges:{}},attributeDescriptors:{},markedPackages:[]}}};for(const r of e)i.map.children.push(this.extractNodeFromMap(r));return this.aggregateRootAttributes(i),i}static aggregateRootAttributes(e){for(const{attributes:i}of e.map.children)for(const r of Object.keys(i))void 0===e.map.attributes[r]&&(e.map.attributes[r]=0),e.map.attributes[r]+=i[r]}static extractNodeFromMap(e){const i={name:e.fileMeta.fileName,children:e.map.children,type:e.map.type};e.map.path&&(i.path=Tw(e.fileMeta.fileName,e.map.path));for(const r of Object.keys(e.map))"name"!==r&&"path"!==r&&"children"!==r&&(i[r]=e.map[r]);return this.updatePathOfAllChildren(e.fileMeta.fileName,i.children),i}static updatePathOfAllChildren(e,i){for(const r of i)r.path&&(r.path=Tw(e,r.path)),r.children&&this.updatePathOfAllChildren(e,r.children)}static resetVariables(){this.projectNameArray=[],this.fileNameArray=[],this.fileChecksumArray=[],this.fileSizesSum=0}}return n})();const IFe=Zt(Gs,n=>n.edgeMetricData.map(t=>t.name));class FFe{static createCodeMapFromHashMap(t){let e;for(const[i,r]of t)i===lu.rootPath?e=r:OL(t,i).children.push(r);return e}static getDeltaFile(t,e){const i=this.getDeltaNodesByPath(t.map,e.map),r=this.createCodeMapFromHashMap(i),o=this.getFileMetaData(t,e);return this.getNewCCFileWithDeltas(r,o)}static getDeltaNodesByPath(t,e){const i=new Map,r=this.getReferenceNodesByPath(t);return this.addExistingAndNewNodesToDeltaMap(r,e,i),this.addDeletedNodesToDeltaMap(r,i),i}static getReferenceNodesByPath(t){const e=new Map;for(const{data:i}of bo(t))e.set(i.path,i);return e}static addExistingAndNewNodesToDeltaMap(t,e,i){for(const{data:r}of bo(e)){const o=t.get(r.path);if(o){(o.children||r.children)&&(o.children=[]);const{deltaList:a,differenceExists:l}=this.compareAttributeValues(o.attributes,r.attributes);o.deltas=a;const c=l?1:0;o.attributes=r.attributes,o.fileCount={added:0,removed:0,changed:c}}else r.children&&(r.children=[]),r.deltas={...r.attributes},r.fileCount={added:r.type===Oa.FILE?1:0,removed:0,changed:0};const s=o??r;i.set(s.path,s),t.delete(s.path)}}static addDeletedNodesToDeltaMap(t,e){for(const i of t.values()){i.children&&(i.children=[]),i.deltas={},i.fileCount={added:0,removed:i.type===Oa.FILE?1:0,changed:0};for(const[r,o]of Object.entries(i.attributes))i.deltas[r]=-o,i.attributes[r]=0;e.set(i.path,i)}}static compareAttributeValues(t,e){const i={};let r=!1;const o=new Set(Object.keys(t));for(const s of Object.keys(e))o.add(s);for(const s of o){const a=t[s]??0,l=e[s]??0;a!==l&&(r=!0),i[s]=l-a}return{deltaList:i,differenceExists:r}}static getFileMetaData(t,e){return{fileName:`delta_between_${Em.withoutCCExtension(t.fileMeta.fileName)}_and_${Em.withoutCCExtension(e.fileMeta.fileName)}`,fileChecksum:`${t.fileMeta.fileChecksum};${e.fileMeta.fileChecksum}`,apiVersion:P1.f4.X,projectName:`delta_between_${t.fileMeta.projectName}_and_${e.fileMeta.projectName}`,exportedFileSize:t.fileMeta.exportedFileSize+e.fileMeta.exportedFileSize}}static getNewCCFileWithDeltas(t,e){return{map:t,fileMeta:e,settings:{fileSettings:{edges:[],blacklist:[],attributeTypes:{nodes:{},edges:{}},attributeDescriptors:{},markedPackages:[]}}}}}const kFe=(n,t,e)=>{const i=new Map;for(const r of e){const o=n.get(r);o&&i.set(r,o.get(t.data.path))}return i},NL=Zt(A1,n=>n.attributeTypes),vY=Object.freeze({unifiedMapNode:void 0,unifiedFileMeta:void 0}),Bc=Zt(Gs,tu,NL,eu,IFe,(n,t,e,i,r)=>{if(!pG(t)||!n.nodeMetricData)return vY;const o=PFe(nu(t));return o?.map?(pR.decorateMap(o.map,n,i),((n,t,e)=>{if(0!==e.length)for(const i of bo(t))if(Ro(i)){const r=kFe(n,i,e);for(const[o,s]of r)i.data.edgeAttributes[o]=s}})(n.nodeEdgeMetricsMap,o.map,r),pR.decorateParentNodesWithAggregatedAttributes(o.map,Jd(t),e),{unifiedMapNode:o.map,unifiedFileMeta:o.fileMeta}):vY}),PFe=n=>{if(AG(n))return bY.calculateAggregationFile(n);if(Jd(n)){const[t,e]=n;return e&&t.file.map.name!==e.file.map.name?bY.calculateAggregationFile(n):(n=>{if(2===n.length){let[t,e]=n;if(t.selectedAs!==Zi.Reference){const i=e;e=t,t=i}return FFe.getDeltaFile(t.file,e.file)}return n[0].file})(n)}},J_=Zt(Bc,n=>{if(!n.unifiedMapNode)return new Map;const t=new Map([[n.unifiedMapNode.id,n.unifiedMapNode]]);for(const{data:e}of bo(n.unifiedMapNode))t.set(e.id,e);return t}),eb=Zt(no,n=>n.mapColors),Wi=n=>(t,e)=>void 0===e.value?n:e.value,rT=n=>(t,e)=>void 0===e.value?n:{...t,...e.value},bu={positive:"#69AE40",neutral:"#ddcc00",negative:"#820E0E",selected:"#EB8319",positiveDelta:"#64d051",negativeDelta:"#ff0E0E",base:"#666666",flat:"#AAAAAA",markingColors:["#FF1D8E","#1d8eff","#1DFFFF","#8eff1d","#8e1dff"],incomingEdge:"#00ffff",outgoingEdge:"#ff00ff",labelColorAndAlpha:{rgb:"#e0e0e0",alpha:.7}},RFe=bi(bu,_n(ph,rT(bu)),_n(RE,n=>({...n,positive:n.negative,negative:n.positive})),_n(LE,n=>({...n,positiveDelta:n.negativeDelta,negativeDelta:n.positiveDelta}))),tc=n=>n.dynamicSettings,tb=Zt(tc,n=>n.searchPattern),yY=Zt(Bc,tb,(n,t)=>function LFe(n,t){if(0===(t=t.trimStart()).length||!n)return[];const e=vG(t),i=[];for(const{data:r}of bo(n))e.ignoredNodePaths.ignores(W0(r.path))===e.condition&&i.push(r);return i}(n.unifiedMapNode,t)),UL=Zt(yY,n=>new Set(n.map(t=>t.path))),HL={getColorByTrueGradient(n,t,e,i){const r=(t.from+t.to)/2,o=or.convertHexToColorObject(n.neutral);if(i<=r){const l=i/r,c=or.convertHexToColorObject(n.positive);return or.convertColorToHex((new an).lerpColors(c,o,l))}const s=(i-r)/(e.maxValue-r),a=or.convertHexToColorObject(n.negative);return or.convertColorToHex((new an).lerpColors(o,a,s))},getColorByFocusedGradient(n,t,e,i){const r=(t.from+t.to)/2,o=or.convertHexToColorObject(n.neutral);if(i=t.to&&t.to!==e.maxValue)return n.negative;if(i===r)return n.neutral;if(in.colorMetric),$h=Zt(Gs,Sm,(n,t)=>{const e=n.nodeMetricData.find(i=>i.name===t);return{values:e?.values??[],minValue:e?.minValue??0,maxValue:e?.maxValue??0}}),as=250;function MY(n,t,e,i){const r=ZE(n.files);if(i)return 2;let o=t.attributes[n.dynamicSettings.heightMetric]||0;o*=r;const s=n.dynamicSettings.heightMetric;return 1===n.fileSettings.attributeDescriptors[s]?.direction?n.appSettings.invertHeight?o:e-o:n.appSettings.invertHeight?e-o:o}function EY(n,t,e,i){const r=e.deltas?.[i.dynamicSettings.heightMetric]?0:2;return Math.max(Math.abs(t*n),r)}function QL(n,t,e,i){return!(n.isExcluded||t&&e.appSettings.hideFlatBuildings&&i)&&(!(e.dynamicSettings.focusedNodePath.length>0)||n.path.startsWith(e.dynamicSettings.focusedNodePath[0]))}function sT(n,t,e,i,r){return n>e?new ie(i.x-r+n/4,i.y+t,i.z-r+e/2):new ie(i.x-r+n/2,i.y+t,i.z-r+e/4)}function SY(n,t,e,i,r){return n>e?new ie(i.x-r+.75*n,i.y+t,i.z-r+e/2):new ie(i.x-r+n/2,i.y+t,i.z-r+.75*e)}function aT(n,t){if(n.isFlattened)return!0;const e=UL(t);return e&&t.dynamicSettings.searchPattern?.length>0?0===e.size||function VFe(n,t){return!UL(t).has(n.path)}(n,t):!(!t.appSettings.showOnlyBuildingsWithEdges||!t.fileSettings.edges.some(i=>i.visible))&&function HFe(n,t){return void 0===n.edgeAttributes[t.dynamicSettings.edgeMetric]||!t.fileSettings.edges.some(e=>n.path===e.fromNodeName||n.path===e.toNodeName)}(n,t)}function zL(n,{appSettings:t,dynamicSettings:e},i,r,o){const{mapColors:s}=t;if(r)return s.base;const a=n.attributes[e.colorMetric];if(void 0===a)return s.base;if(o)return s.flat;const{colorRange:l,colorMode:c}=e;return"unary"===e.colorMetric?s.positive:c===sm.absolute?a0)for(const i of n.children)e+=CY(i,t);return e},buildNodeFrom:function UFe(n,t,e,i,r){const o=ZE(i.files),{x0:s,x1:a,y0:l,y1:c,data:d}=n,u=Ro(n),h=aT(d,i),f=MY(i,d,e,h),A=d.path.split("/").length-2,y=u?EY(f,t,d,i)*o:2,_=a-s,b=c-l,M=2*n.depth,C=(d.deltas?.[i.dynamicSettings.heightMetric]??0)*t*o,E=y+(C<0?Math.abs(C):0);return{name:d.name,id:d.id,width:_,height:y,length:b,depth:A,mapNodeDepth:n.depth,x0:s,z0:M,y0:l,isLeaf:u,attributes:d.attributes,edgeAttributes:d.edgeAttributes,deltas:d.deltas,heightDelta:C,visible:QL(d,u,i,h),path:d.path,link:d.link,markingColor:KE(d,i.fileSettings.markedPackages),flat:h,color:zL(d,i,$h(i),r,h),incomingEdgePoint:sT(_,E,b,new ie(s,M,l),as),outgoingEdgePoint:SY(_,E,b,new ie(s,M,l),as)}},isNodeFlat:aT,resolveHeightValue:EY,getHeightValue:MY,FOLDER_HEIGHT:2,MIN_BUILDING_HEIGHT:2,HEIGHT_VALUE_WHEN_METRIC_NOT_FOUND:0};class qL{constructor(){this.listeners={}}on(t,e){this.listeners[t]??=[],this.listeners[t].push(e)}emit(t,e){if(!this.listeners[t]?.length)return!1;for(const i of this.listeners[t])i(e);return!0}}let Iw=(()=>{class n{constructor(){this.idToBuilding=new Map}setIdToBuilding(e){this.idToBuilding=new Map;for(const i of e)this.idToBuilding.set(i.node.id,i)}get(e){return this.idToBuilding.get(e)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();class lT{constructor(){this.isPass=!0,this.enabled=!0,this.needsSwap=!0,this.clear=!1,this.renderToScreen=!1}setSize(){}render(){console.error("THREE.Pass: .render() must be implemented in derived pass.")}dispose(){}}const QFe=new vS(-1,1,1,-1,0,1),GL=new vi;GL.setAttribute("position",new Ln([-1,3,0,-1,-1,0,3,-1,0],3)),GL.setAttribute("uv",new Ln([0,2,0,0,2,0],2));class zFe{constructor(t){this._mesh=new Br(GL,t)}dispose(){this._mesh.geometry.dispose()}render(t){t.render(this._mesh,QFe)}get material(){return this._mesh.material}set material(t){this._mesh.material=t}}class qFe extends lT{constructor(t,e,i=null,r=null,o=null){super(),this.scene=t,this.camera=e,this.overrideMaterial=i,this.clearColor=r,this.clearAlpha=o,this.clear=!0,this.clearDepth=!1,this.needsSwap=!1,this._oldClearColor=new an}render(t,e,i){const r=t.autoClear;let o,s;t.autoClear=!1,null!==this.overrideMaterial&&(s=this.scene.overrideMaterial,this.scene.overrideMaterial=this.overrideMaterial),null!==this.clearColor&&(t.getClearColor(this._oldClearColor),t.setClearColor(this.clearColor)),null!==this.clearAlpha&&(o=t.getClearAlpha(),t.setClearAlpha(this.clearAlpha)),1==this.clearDepth&&t.clearDepth(),t.setRenderTarget(this.renderToScreen?null:i),!0===this.clear&&t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil),t.render(this.scene,this.camera),null!==this.clearColor&&t.setClearColor(this._oldClearColor),null!==this.clearAlpha&&t.setClearAlpha(o),null!==this.overrideMaterial&&(this.scene.overrideMaterial=s),t.autoClear=r}}const WFe=class GFe{static isWebGLAvailable(){try{const t=document.createElement("canvas");return!(!window.WebGLRenderingContext||!t.getContext("webgl")&&!t.getContext("experimental-webgl"))}catch{return!1}}static isWebGL2Available(){try{const t=document.createElement("canvas");return!(!window.WebGL2RenderingContext||!t.getContext("webgl2"))}catch{return!1}}static getWebGLErrorMessage(){return this.getErrorMessage(1)}static getWebGL2ErrorMessage(){return this.getErrorMessage(2)}static getErrorMessage(t){const i={1:window.WebGLRenderingContext,2:window.WebGL2RenderingContext};let r='Your $0 does not seem to support
    $1';const o=document.createElement("div");return o.id="webglmessage",o.style.fontFamily="monospace",o.style.fontSize="13px",o.style.fontWeight="normal",o.style.textAlign="center",o.style.background="#fff",o.style.color="#000",o.style.padding="1.5em",o.style.width="400px",o.style.margin="5em auto 0",r=r.replace("$0",i[t]?"graphics card":"browser"),r=r.replace("$1",{1:"WebGL",2:"WebGL 2"}[t]),o.innerHTML=r,o}};class TY extends lT{constructor(t,e){super(),this.textureID=void 0!==e?e:"tDiffuse",t instanceof ec?(this.uniforms=t.uniforms,this.material=t):t&&(this.uniforms=B4.clone(t.uniforms),this.material=new ec({name:void 0!==t.name?t.name:"unspecified",defines:Object.assign({},t.defines),uniforms:this.uniforms,vertexShader:t.vertexShader,fragmentShader:t.fragmentShader})),this.fsQuad=new zFe(this.material)}render(t,e,i){this.uniforms[this.textureID]&&(this.uniforms[this.textureID].value=i.texture),this.fsQuad.material=this.material,this.renderToScreen?(t.setRenderTarget(null),this.fsQuad.render(t)):(t.setRenderTarget(e),this.clear&&t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil),this.fsQuad.render(t))}dispose(){this.material.dispose(),this.fsQuad.dispose()}}class WL extends lT{constructor(t,e){super(),this.scene=t,this.camera=e,this.clear=!0,this.needsSwap=!1,this.inverse=!1}render(t,e,i){const r=t.getContext(),o=t.state;let s,a;o.buffers.color.setMask(!1),o.buffers.depth.setMask(!1),o.buffers.color.setLocked(!0),o.buffers.depth.setLocked(!0),this.inverse?(s=0,a=1):(s=1,a=0),o.buffers.stencil.setTest(!0),o.buffers.stencil.setOp(r.REPLACE,r.REPLACE,r.REPLACE),o.buffers.stencil.setFunc(r.ALWAYS,s,4294967295),o.buffers.stencil.setClear(a),o.buffers.stencil.setLocked(!0),t.setRenderTarget(i),this.clear&&t.clear(),t.render(this.scene,this.camera),t.setRenderTarget(e),this.clear&&t.clear(),t.render(this.scene,this.camera),o.buffers.color.setLocked(!1),o.buffers.depth.setLocked(!1),o.buffers.color.setMask(!0),o.buffers.depth.setMask(!0),o.buffers.stencil.setLocked(!1),o.buffers.stencil.setFunc(r.EQUAL,1,4294967295),o.buffers.stencil.setOp(r.KEEP,r.KEEP,r.KEEP),o.buffers.stencil.setLocked(!0)}}class IY extends lT{constructor(){super(),this.needsSwap=!1}render(t){t.state.buffers.stencil.setLocked(!1),t.state.buffers.stencil.setTest(!1)}}const $Fe={name:"CopyShader",uniforms:{tDiffuse:{value:null},opacity:{value:1}},vertexShader:"\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",fragmentShader:"\n\n\t\tuniform float opacity;\n\n\t\tuniform sampler2D tDiffuse;\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvec4 texel = texture2D( tDiffuse, vUv );\n\t\t\tgl_FragColor = opacity * texel;\n\n\n\t\t}"};class jFe{constructor(t,e){if(this.renderer=t,this._pixelRatio=t.getPixelRatio(),void 0===e){const i=t.getSize(new at);this._width=i.width,this._height=i.height,(e=new Fc(this._width*this._pixelRatio,this._height*this._pixelRatio,{type:f_})).texture.name="EffectComposer.rt1"}else this._width=e.width,this._height=e.height;this.renderTarget1=e,this.renderTarget2=e.clone(),this.renderTarget2.texture.name="EffectComposer.rt2",this.writeBuffer=this.renderTarget1,this.readBuffer=this.renderTarget2,this.renderToScreen=!0,this.passes=[],this.copyPass=new TY($Fe),this.copyPass.material.blending=0,this.clock=new JK}swapBuffers(){const t=this.readBuffer;this.readBuffer=this.writeBuffer,this.writeBuffer=t}addPass(t){this.passes.push(t),t.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}insertPass(t,e){this.passes.splice(e,0,t),t.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}removePass(t){const e=this.passes.indexOf(t);-1!==e&&this.passes.splice(e,1)}isLastEnabledPass(t){for(let e=t+1;en.isWhiteBackground);class XFe{constructor(){this.vertexShader=p(889),this.fragmentShader=p(6655),this.uniforms={tDiffuse:{value:null},resolution:{value:new at(1/1024,1/512)}}}}class $i{static{this.BACKGROUND_COLOR={white:16777215,normal:16053483}}static{this.CLEAR_COLOR=$i.BACKGROUND_COLOR.normal}static{this.CLEAR_ALPHA=1}static{this.RENDER_OPTIONS={antialias:!0,preserveDrawingBuffer:!0,alpha:!0}}static{this.enableFXAA=!1}static{this.setPixelRatio=!1}constructor(t,e){this.store=t,this.state=e,this.setBackgroundColorToState=i=>{$i.CLEAR_COLOR=i?$i.BACKGROUND_COLOR.white:$i.BACKGROUND_COLOR.normal,this.renderer?.setClearColor($i.CLEAR_COLOR,$i.CLEAR_ALPHA)},this.initGL=(i,r)=>{if(this.setGLOptions(),this.renderer=new CS($i.RENDER_OPTIONS),$i.setPixelRatio&&this.renderer.setPixelRatio(window.devicePixelRatio),$i.enableFXAA)if(WFe.isWebGL2Available){const o=this.renderer.getDrawingBufferSize(new at),s=new Fc(o.width,o.height,{format:jl});this.composer=new FY(this.renderer,s)}else this.composer=new FY(this.renderer);this.renderer.setSize(i,r),this.renderer.domElement.id="codeMapScene",$i.enableFXAA&&this.initComposer()},this.setGLOptions=()=>{switch(this.state.getValue().appSettings.sharpnessMode){case iA.Standard:$i.RENDER_OPTIONS.antialias=!0,$i.enableFXAA=!1,$i.setPixelRatio=!1;break;case iA.PixelRatioNoAA:$i.RENDER_OPTIONS.antialias=!1,$i.enableFXAA=!1,$i.setPixelRatio=!0;break;case iA.PixelRatioFXAA:$i.RENDER_OPTIONS.antialias=!1,$i.enableFXAA=!0,$i.setPixelRatio=!0;break;case iA.PixelRatioAA:$i.RENDER_OPTIONS.antialias=!0,$i.enableFXAA=!1,$i.setPixelRatio=!0}},this.initComposer=()=>{const i=this.renderer.getPixelRatio();this.composer.setSize(window.innerWidth*i,window.innerHeight*i);const r=new qFe(this.scene,this.camera);this.composer.addPass(r);const o=new TY(new XFe);o.renderToScreen=!1,o.uniforms.resolution.value.x=1/(window.innerWidth*i),o.uniforms.resolution.value.y=1/(window.innerHeight*i),this.composer.addPass(o)},this.getInfo=()=>$i.enableFXAA?this.composer.getInfo():this.renderer.info.render,this.getMemoryInfo=()=>$i.enableFXAA?this.composer.getMemoryInfo():this.renderer.info.memory}init(t,e,i,r){this.scene=i,this.camera=r,this.initGL(t,e),this.store.select(DY).subscribe(this.setBackgroundColorToState)}render(){const{scene:t,camera:e,composer:i,renderer:r}=this;$i.enableFXAA?i?.render():r?.render(t,e)}static{this.\u0275fac=function(e){return new(e||$i)(ge(Xt),ge(jr))}}static{this.\u0275prov=Bt({token:$i,factory:$i.\u0275fac,providedIn:"root"})}}let Pc=(()=>{class n{constructor(e,i,r,o){this.store=e,this.state=i,this.idToBuilding=r,this.threeRendererService=o,this.eventEmitter=new qL,this.selected=null,this.highlighted=[],this.constantHighlight=new Map,this.folderLabelColorHighlighted=or.convertHexToNumber("#FFFFFF"),this.folderLabelColorNotHighlighted=or.convertHexToNumber("#7A7777"),this.rayPoint=new ie(0,0,0),this.normedTransformVector=new ie(0,0,0),this.highlightedLabel=null,this.highlightedLineIndex=-1,this.highlightedLine=null,this.subscription=this.store.select(eb).subscribe(s=>{this.folderLabelColorSelected=s.selected,this.numberSelectionColor=or.convertHexToNumber(this.folderLabelColorSelected)}),this.scene=new MS,this.mapGeometry=new pa,this.lights=new pa,this.labels=new pa,this.floorLabelPlanes=new pa,this.edgeArrows=new pa,this.initLights(),this.scene.add(this.mapGeometry),this.scene.add(this.edgeArrows),this.scene.add(this.labels),this.scene.add(this.lights),this.scene.add(this.floorLabelPlanes)}ngOnDestroy(){this.subscription.unsubscribe()}initFloorLabels(e){this.floorLabelPlanes.clear();const{layoutAlgorithm:i,enableFloorLabels:r}=this.state.getValue().appSettings;if(i!==su.SquarifiedTreeMap||!r)return;const o=this.getRootNode(e);if(!o)return;const s=this.state.getValue().appSettings.scaling,a=new ie(s.x,s.y,s.z);this.floorLabelDrawer=new Z_(this.mapMesh.getNodes(),o,as,a);const l=this.floorLabelDrawer.draw(this.state.getValue());l.length>0&&(this.floorLabelPlanes.add(...l),this.scene.add(this.floorLabelPlanes))}getRootNode(e){return e.find(i=>0===i.id)}getConstantHighlight(){return this.constantHighlight}highlightBuildings(){const e=this.state.getValue();this.getMapMesh().highlightBuilding(this.highlighted,this.selected,e,this.constantHighlight),this.mapGeometry.children[0]&&this.highlightMaterial(this.mapGeometry.children[0].material),this.threeRendererService.render()}selectMaterial(e){e.find(({userData:r})=>r.id===this.selected.node.id)?.color.setHex(this.numberSelectionColor)}resetMaterial(e){const i=this.selected?this.selected.node.id:-1;for(const r of e)r.userData.id!==i&&r.color?.setHex(this.folderLabelColorHighlighted)}scaleHeight(){const e=this.state.getValue().appSettings.scaling;this.floorLabelDrawer?.translatePlaneCanvases(e),this.mapGeometry.scale.set(e.x,e.y,e.z),this.mapGeometry.position.set(-as*e.x,0,-as*e.z),this.mapMesh.setScale(e)}highlightMaterial(e){const i=new Set(this.highlighted.map(({node:o})=>o.id)),r=new Set;for(const{node:o}of this.constantHighlight.values())r.add(o.id);for(const o of e){const s=o.userData.id;this.selected&&s===this.selected.node.id?o.color.setHex(this.numberSelectionColor):i.has(s)||r.has(s)?o.color.setHex(this.folderLabelColorHighlighted):o.color?.setHex(this.folderLabelColorNotHighlighted)}}highlightSingleBuilding(e){this.highlighted=[],this.addBuildingToHighlightingList(e),this.highlightBuildings()}addBuildingToHighlightingList(e){this.highlighted.push(e)}clearHoverHighlight(){this.highlighted=[],this.highlightBuildings()}clearHighlight(){this.getMapMesh()&&(this.getMapMesh().clearHighlight(this.selected),this.highlighted=[],this.constantHighlight.clear(),this.mapGeometry.children[0]&&this.resetMaterial(this.mapGeometry.children[0].material))}selectBuilding(e){e.id!==this.selected?.id&&this.store.dispatch(LL({value:e.node.id})),this.getMapMesh().selectBuilding(e,this.folderLabelColorSelected),this.selected=e,this.highlightBuildings(),this.eventEmitter.emit("onBuildingSelected",{building:this.selected}),this.mapGeometry.children[0]&&this.selectMaterial(this.mapGeometry.children[0].material)}animateLabel(e,i,r){if(null!==e&&null!==i){this.resetLabel(),e.material&&(e.material.opacity=1),this.highlightedLineIndex=this.getHoveredLabelLineIndex(r,e),this.highlightedLine=r[this.highlightedLineIndex],this.rayPoint=new ie,this.rayPoint.subVectors(i.ray.origin,e.position);const o=Math.sqrt(this.rayPoint.x**2+this.rayPoint.y**2+this.rayPoint.z**2);this.normedTransformVector=new ie(this.rayPoint.x/o,this.rayPoint.y/o,this.rayPoint.z/o);const a=this.calculateMaxDistance(e,r,i.ray.origin);this.normedTransformVector.multiplyScalar(a),e.position.add(this.normedTransformVector),this.toggleLineAnimation(e),this.highlightedLabel=e}}resetLineHighlight(){this.highlightedLineIndex=-1,this.highlightedLine=null}resetLabel(){null!==this.highlightedLabel&&(this.highlightedLabel.position.sub(this.normedTransformVector),this.highlightedLabel.material.opacity=bu.labelColorAndAlpha.alpha,this.highlightedLine&&this.toggleLineAnimation(this.highlightedLabel),this.highlightedLabel=null)}getHoveredLabelLineIndex(e,i){const r=e.findIndex(({uuid:o})=>o===i.uuid);if(r>=0)return r+1}toggleLineAnimation(e){const i=new ie(e.position.x,e.position.y,e.position.z),o=[...this.highlightedLine.geometry.attributes.position.array],s=(new vi).setFromPoints([new ie(o[0],o[1],o[2]),i]),a=new gd(s,this.highlightedLine.material);this.labels.children.splice(this.highlightedLineIndex,1,a)}getLabelForHoveredNode(e,i){for(let r=0;r=i.min[r]&&i.max[r]>=e.min[r])}getIntersectionDistanceFunction(e,i){return r=>{const o=this.normedTransformVector.clone();o.multiplyScalar(r),e.translate(o);const s=this.isOverlapping(i,e,"x")+this.isOverlapping(i,e,"y");return 2===s||1===s&&this.isOverlapping(i,e,"z")?r:0}}calculateMaxDistance(e,i,r){const o=(new dl).setFromObject(e),s=new ie;o.getCenter(s);const a=r.distanceTo(s);let l=a/20;for(let c=0;c0&&this.clearHighlight()}clearSelection(){this.selected&&(this.getMapMesh().clearSelection(this.selected),this.store.dispatch(LL({value:null})),this.eventEmitter.emit("onBuildingDeselected")),this.highlighted.length>0&&this.highlightBuildings(),this.selected=null,this.mapGeometry.children[0]&&this.resetMaterial(this.mapGeometry.children[0].material)}initLights(){const e=new TL(7368816),i=new Sw(14737632,1.5);i.position.set(50,10,8).normalize();const r=new Sw(14737632,1.5);r.position.set(-50,10,-8).normalize(),this.lights.add(e),this.lights.add(i),this.lights.add(r)}setMapMesh(e,i){this.mapMesh=i,this.initFloorLabels(e),this.mapGeometry.children.length=0,this.mapGeometry.position.x=-as,this.mapGeometry.position.y=0,this.mapGeometry.position.z=-as,this.mapGeometry.add(this.mapMesh.getThreeMesh()),this.idToBuilding.setIdToBuilding(this.mapMesh.getMeshDescription().buildings)}getMapMesh(){return this.mapMesh}getSelectedBuilding(){return this.selected}getHighlightedBuilding(){return this.highlighted[0]}dispose(){this.mapMesh?.dispose()}subscribe(e,i){this.eventEmitter.on(e,r=>{i(r)})}static{this.\u0275fac=function(i){return new(i||n)(ge(Xt),ge(jr),ge(Iw),ge($i))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),cT=(()=>{class n{constructor(e){this.threeSceneService=e,this.isOpen=!1,this.threeSceneService.subscribe("onBuildingSelected",()=>{this.isOpen=!0}),this.threeSceneService.subscribe("onBuildingDeselected",()=>{this.isOpen=!1})}static{this.\u0275fac=function(i){return new(i||n)(ge(Pc))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),vu=(()=>{class n{static{this.VIEW_ANGLE=45}static{this.NEAR=50}static{this.FAR=2e5}init(e,i){this.camera=new Ls(n.VIEW_ANGLE,e/i,n.NEAR,n.FAR),this.setPosition(new ie(0,300,1e3))}setPosition(e){this.camera.position.set(e.x,e.y,e.z),this.camera.lookAt(0,0,0)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();const kY={type:"change"},$L={type:"start"},BY={type:"end"},dT=new xA,PY=new wm,KFe=Math.cos(70*pMe_DEG2RAD);class jL extends Lh{constructor(t,e){super(),this.object=t,this.domElement=e,this.domElement.style.touchAction="none",this.enabled=!0,this.target=new ie,this.minDistance=0,this.maxDistance=1/0,this.minZoom=0,this.maxZoom=1/0,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.minAzimuthAngle=-1/0,this.maxAzimuthAngle=1/0,this.enableDamping=!1,this.dampingFactor=.05,this.enableZoom=!0,this.zoomSpeed=1,this.enableRotate=!0,this.rotateSpeed=1,this.enablePan=!0,this.panSpeed=1,this.screenSpacePanning=!0,this.keyPanSpeed=7,this.zoomToCursor=!1,this.autoRotate=!1,this.autoRotateSpeed=2,this.keys={LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",BOTTOM:"ArrowDown"},this.mouseButtons={LEFT:0,MIDDLE:1,RIGHT:2},this.touches={ONE:0,TWO:2},this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this._domElementKeyEvents=null,this.getPolarAngle=function(){return a.phi},this.getAzimuthalAngle=function(){return a.theta},this.getDistance=function(){return this.object.position.distanceTo(this.target)},this.listenToKeyEvents=function(Re){Re.addEventListener("keydown",ne),this._domElementKeyEvents=Re},this.stopListenToKeyEvents=function(){this._domElementKeyEvents.removeEventListener("keydown",ne),this._domElementKeyEvents=null},this.saveState=function(){i.target0.copy(i.target),i.position0.copy(i.object.position),i.zoom0=i.object.zoom},this.reset=function(){i.target.copy(i.target0),i.object.position.copy(i.position0),i.object.zoom=i.zoom0,i.object.updateProjectionMatrix(),i.dispatchEvent(kY),i.update(),o=r.NONE},this.update=function(){const Re=new ie,Gt=(new Va).setFromUnitVectors(t.up,new ie(0,1,0)),bn=Gt.clone().invert(),fn=new ie,Cn=new Va,Ii=new ie,Ar=2*Math.PI;return function(vn=null){const Dt=i.object.position;Re.copy(Dt).sub(i.target),Re.applyQuaternion(Gt),a.setFromVector3(Re),i.autoRotate&&o===r.NONE&&ue(function k(Re){return null!==Re?2*Math.PI/60*i.autoRotateSpeed*Re:2*Math.PI/60/60*i.autoRotateSpeed}(vn)),i.enableDamping?(a.theta+=l.theta*i.dampingFactor,a.phi+=l.phi*i.dampingFactor):(a.theta+=l.theta,a.phi+=l.phi);let sn=i.minAzimuthAngle,dn=i.maxAzimuthAngle;isFinite(sn)&&isFinite(dn)&&(sn<-Math.PI?sn+=Ar:sn>Math.PI&&(sn-=Ar),dn<-Math.PI?dn+=Ar:dn>Math.PI&&(dn-=Ar),a.theta=sn<=dn?Math.max(sn,Math.min(dn,a.theta)):a.theta>(sn+dn)/2?Math.max(sn,a.theta):Math.min(dn,a.theta)),a.phi=Math.max(i.minPolarAngle,Math.min(i.maxPolarAngle,a.phi)),a.makeSafe(),!0===i.enableDamping?i.target.addScaledVector(d,i.dampingFactor):i.target.add(d),a.radius=Ce(i.zoomToCursor&&V||i.object.isOrthographicCamera?a.radius:a.radius*c),Re.setFromSpherical(a),Re.applyQuaternion(bn),Dt.copy(i.target).add(Re),i.object.lookAt(i.target),!0===i.enableDamping?(l.theta*=1-i.dampingFactor,l.phi*=1-i.dampingFactor,d.multiplyScalar(1-i.dampingFactor)):(l.set(0,0,0),d.set(0,0,0));let ar=!1;if(i.zoomToCursor&&V){let zr=null;if(i.object.isPerspectiveCamera){const po=Re.length();zr=Ce(po*c),i.object.position.addScaledVector(E,po-zr),i.object.updateMatrixWorld()}else if(i.object.isOrthographicCamera){const po=new ie(I.x,I.y,0);po.unproject(i.object),i.object.zoom=Math.max(i.minZoom,Math.min(i.maxZoom,i.object.zoom/c)),i.object.updateProjectionMatrix(),ar=!0;const ac=new ie(I.x,I.y,0);ac.unproject(i.object),i.object.position.sub(ac).add(po),i.object.updateMatrixWorld(),zr=Re.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),i.zoomToCursor=!1;null!==zr&&(this.screenSpacePanning?i.target.set(0,0,-1).transformDirection(i.object.matrix).multiplyScalar(zr).add(i.object.position):(dT.origin.copy(i.object.position),dT.direction.set(0,0,-1).transformDirection(i.object.matrix),Math.abs(i.object.up.dot(dT.direction))s||8*(1-Cn.dot(i.object.quaternion))>s||Ii.distanceToSquared(i.target)>0)&&(i.dispatchEvent(kY),fn.copy(i.object.position),Cn.copy(i.object.quaternion),Ii.copy(i.target),ar=!1,!0)}}(),this.dispose=function(){i.domElement.removeEventListener("contextmenu",jt),i.domElement.removeEventListener("pointerdown",Ee),i.domElement.removeEventListener("pointercancel",zt),i.domElement.removeEventListener("wheel",ye),i.domElement.removeEventListener("pointermove",Ae),i.domElement.removeEventListener("pointerup",zt),null!==i._domElementKeyEvents&&(i._domElementKeyEvents.removeEventListener("keydown",ne),i._domElementKeyEvents=null)};const i=this,r={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6};let o=r.NONE;const s=1e-6,a=new sY,l=new sY;let c=1;const d=new ie,u=new at,h=new at,f=new at,A=new at,y=new at,_=new at,b=new at,M=new at,C=new at,E=new ie,I=new at;let V=!1;const R=[],K={};function W(){return Math.pow(.95,i.zoomSpeed)}function ue(Re){l.theta-=Re}function Se(Re){l.phi-=Re}const Me=function(){const Re=new ie;return function(bn,fn){Re.setFromMatrixColumn(fn,0),Re.multiplyScalar(-bn),d.add(Re)}}(),Z=function(){const Re=new ie;return function(bn,fn){!0===i.screenSpacePanning?Re.setFromMatrixColumn(fn,1):(Re.setFromMatrixColumn(fn,0),Re.crossVectors(i.object.up,Re)),Re.multiplyScalar(bn),d.add(Re)}}(),ve=function(){const Re=new ie;return function(bn,fn){const Cn=i.domElement;if(i.object.isPerspectiveCamera){Re.copy(i.object.position).sub(i.target);let Ar=Re.length();Ar*=Math.tan(i.object.fov/2*Math.PI/180),Me(2*bn*Ar/Cn.clientHeight,i.object.matrix),Z(2*fn*Ar/Cn.clientHeight,i.object.matrix)}else i.object.isOrthographicCamera?(Me(bn*(i.object.right-i.object.left)/i.object.zoom/Cn.clientWidth,i.object.matrix),Z(fn*(i.object.top-i.object.bottom)/i.object.zoom/Cn.clientHeight,i.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),i.enablePan=!1)}}();function re(Re){i.object.isPerspectiveCamera||i.object.isOrthographicCamera?c/=Re:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),i.enableZoom=!1)}function oe(Re){i.object.isPerspectiveCamera||i.object.isOrthographicCamera?c*=Re:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),i.enableZoom=!1)}function ae(Re){if(!i.zoomToCursor)return;V=!0;const Gt=i.domElement.getBoundingClientRect(),fn=Re.clientY-Gt.top,Ii=Gt.height;I.x=(Re.clientX-Gt.left)/Gt.width*2-1,I.y=-fn/Ii*2+1,E.set(I.x,I.y,1).unproject(i.object).sub(i.object.position).normalize()}function Ce(Re){return Math.max(i.minDistance,Math.min(i.maxDistance,Re))}function Qe(Re){u.set(Re.clientX,Re.clientY)}function Ke(Re){A.set(Re.clientX,Re.clientY)}function Ye(){1===R.length?u.set(R[0].pageX,R[0].pageY):u.set(.5*(R[0].pageX+R[1].pageX),.5*(R[0].pageY+R[1].pageY))}function Ft(){1===R.length?A.set(R[0].pageX,R[0].pageY):A.set(.5*(R[0].pageX+R[1].pageX),.5*(R[0].pageY+R[1].pageY))}function lt(){const Re=R[0].pageX-R[1].pageX,Gt=R[0].pageY-R[1].pageY,bn=Math.sqrt(Re*Re+Gt*Gt);b.set(0,bn)}function mt(Re){if(1==R.length)h.set(Re.pageX,Re.pageY);else{const bn=St(Re);h.set(.5*(Re.pageX+bn.x),.5*(Re.pageY+bn.y))}f.subVectors(h,u).multiplyScalar(i.rotateSpeed);const Gt=i.domElement;ue(2*Math.PI*f.x/Gt.clientHeight),Se(2*Math.PI*f.y/Gt.clientHeight),u.copy(h)}function Pe(Re){if(1===R.length)y.set(Re.pageX,Re.pageY);else{const Gt=St(Re);y.set(.5*(Re.pageX+Gt.x),.5*(Re.pageY+Gt.y))}_.subVectors(y,A).multiplyScalar(i.panSpeed),ve(_.x,_.y),A.copy(y)}function ot(Re){const Gt=St(Re),bn=Re.pageX-Gt.x,fn=Re.pageY-Gt.y,Cn=Math.sqrt(bn*bn+fn*fn);M.set(0,Cn),C.set(0,Math.pow(M.y/b.y,i.zoomSpeed)),re(C.y),b.copy(M)}function Ee(Re){!1!==i.enabled&&(0===R.length&&(i.domElement.setPointerCapture(Re.pointerId),i.domElement.addEventListener("pointermove",Ae),i.domElement.addEventListener("pointerup",zt)),function en(Re){R.push(Re)}(Re),"touch"===Re.pointerType?function bt(Re){switch(nn(Re),R.length){case 1:switch(i.touches.ONE){case 0:if(!1===i.enableRotate)return;Ye(),o=r.TOUCH_ROTATE;break;case 1:if(!1===i.enablePan)return;Ft(),o=r.TOUCH_PAN;break;default:o=r.NONE}break;case 2:switch(i.touches.TWO){case 2:if(!1===i.enableZoom&&!1===i.enablePan)return;(function Tt(){i.enableZoom&<(),i.enablePan&&Ft()})(),o=r.TOUCH_DOLLY_PAN;break;case 3:if(!1===i.enableZoom&&!1===i.enableRotate)return;(function me(){i.enableZoom&<(),i.enableRotate&&Ye()})(),o=r.TOUCH_DOLLY_ROTATE;break;default:o=r.NONE}break;default:o=r.NONE}o!==r.NONE&&i.dispatchEvent($L)}(Re):function Tn(Re){let Gt;switch(Re.button){case 0:Gt=i.mouseButtons.LEFT;break;case 1:Gt=i.mouseButtons.MIDDLE;break;case 2:Gt=i.mouseButtons.RIGHT;break;default:Gt=-1}switch(Gt){case 1:if(!1===i.enableZoom)return;(function Ie(Re){ae(Re),b.set(Re.clientX,Re.clientY)})(Re),o=r.DOLLY;break;case 0:if(Re.ctrlKey||Re.metaKey||Re.shiftKey){if(!1===i.enablePan)return;Ke(Re),o=r.PAN}else{if(!1===i.enableRotate)return;Qe(Re),o=r.ROTATE}break;case 2:if(Re.ctrlKey||Re.metaKey||Re.shiftKey){if(!1===i.enableRotate)return;Qe(Re),o=r.ROTATE}else{if(!1===i.enablePan)return;Ke(Re),o=r.PAN}break;default:o=r.NONE}o!==r.NONE&&i.dispatchEvent($L)}(Re))}function Ae(Re){!1!==i.enabled&&("touch"===Re.pointerType?function Jt(Re){switch(nn(Re),o){case r.TOUCH_ROTATE:if(!1===i.enableRotate)return;mt(Re),i.update();break;case r.TOUCH_PAN:if(!1===i.enablePan)return;Pe(Re),i.update();break;case r.TOUCH_DOLLY_PAN:if(!1===i.enableZoom&&!1===i.enablePan)return;(function ft(Re){i.enableZoom&&ot(Re),i.enablePan&&Pe(Re)})(Re),i.update();break;case r.TOUCH_DOLLY_ROTATE:if(!1===i.enableZoom&&!1===i.enableRotate)return;(function _t(Re){i.enableZoom&&ot(Re),i.enableRotate&&mt(Re)})(Re),i.update();break;default:o=r.NONE}}(Re):function sr(Re){switch(o){case r.ROTATE:if(!1===i.enableRotate)return;!function Nt(Re){h.set(Re.clientX,Re.clientY),f.subVectors(h,u).multiplyScalar(i.rotateSpeed);const Gt=i.domElement;ue(2*Math.PI*f.x/Gt.clientHeight),Se(2*Math.PI*f.y/Gt.clientHeight),u.copy(h),i.update()}(Re);break;case r.DOLLY:if(!1===i.enableZoom)return;!function _e(Re){M.set(Re.clientX,Re.clientY),C.subVectors(M,b),C.y>0?re(W()):C.y<0&&oe(W()),b.copy(M),i.update()}(Re);break;case r.PAN:if(!1===i.enablePan)return;!function fe(Re){y.set(Re.clientX,Re.clientY),_.subVectors(y,A).multiplyScalar(i.panSpeed),ve(_.x,_.y),A.copy(y),i.update()}(Re)}}(Re))}function zt(Re){(function zn(Re){delete K[Re.pointerId];for(let Gt=0;Gt0&&re(W()),i.update()}(Re),i.dispatchEvent(BY))}function ne(Re){!1===i.enabled||!1===i.enablePan||function J(Re){let Gt=!1;switch(Re.code){case i.keys.UP:Re.ctrlKey||Re.metaKey||Re.shiftKey?Se(2*Math.PI*i.rotateSpeed/i.domElement.clientHeight):ve(0,i.keyPanSpeed),Gt=!0;break;case i.keys.BOTTOM:Re.ctrlKey||Re.metaKey||Re.shiftKey?Se(-2*Math.PI*i.rotateSpeed/i.domElement.clientHeight):ve(0,-i.keyPanSpeed),Gt=!0;break;case i.keys.LEFT:Re.ctrlKey||Re.metaKey||Re.shiftKey?ue(2*Math.PI*i.rotateSpeed/i.domElement.clientHeight):ve(i.keyPanSpeed,0),Gt=!0;break;case i.keys.RIGHT:Re.ctrlKey||Re.metaKey||Re.shiftKey?ue(-2*Math.PI*i.rotateSpeed/i.domElement.clientHeight):ve(-i.keyPanSpeed,0),Gt=!0}Gt&&(Re.preventDefault(),i.update())}(Re)}function jt(Re){!1!==i.enabled&&Re.preventDefault()}function nn(Re){let Gt=K[Re.pointerId];void 0===Gt&&(Gt=new at,K[Re.pointerId]=Gt),Gt.set(Re.pageX,Re.pageY)}function St(Re){return K[(Re.pointerId===R[0].pointerId?R[1]:R[0]).pointerId]}i.domElement.addEventListener("contextmenu",jt),i.domElement.addEventListener("pointerdown",Ee),i.domElement.addEventListener("pointercancel",zt),i.domElement.addEventListener("wheel",ye,{passive:!1}),this.update()}}class YFe extends jL{constructor(t,e){super(t,e),this.screenSpacePanning=!1,this.mouseButtons={LEFT:2,MIDDLE:1,RIGHT:0},this.touches={ONE:1,TWO:3}}}let nc=(()=>{class n{static{this.CAMERA_CHANGED_EVENT_NAME="camera-changed"}constructor(e,i,r){this.threeCameraService=e,this.threeSceneService=i,this.threeRendererService=r,this.MAX_ZOOM=200,this.MIN_ZOOM=10,this.eventEmitter=new qL,this.zoomPercentage$=new wa(100)}setControlTarget(e){this.controls.target.set(e.x,e.y,e.z)}rotateCameraInVectorDirection(e,i,r){const o=this.getZoom();this.lookAtDirectionFromTarget(e,i,r),this.applyOldZoom(o),this.threeRendererService.render(),this.onInput(this.threeCameraService.camera)}autoFitTo(){setTimeout(()=>{const e=this.getBoundingSphere();if(!e||-1===e.radius)return;const i=this.cameraPerspectiveLengthCalculation(e);this.threeCameraService.camera.position.set(i,i,e.center.z),this.positionBeforeFocus=new ie(i,i,e.center.z),this.controls.update(),this.focusCameraViewToCenter(e),this.threeRendererService.render(),this.onInput(this.threeCameraService.camera),this.controls.maxDistance=4*i,this.controls.minDistance=e.radius/13,this.setZoomPercentage(140)})}cameraPerspectiveLengthCalculation(e){const o=this.threeCameraService.camera.fov*Math.PI/180*1.3,s=e.radius/Math.tan(o/2);return Math.sqrt(Math.pow(s,2)+Math.pow(s,2))}focusCameraViewToCenter(e){const i=e.center.clone();i.setY(0),this.controls.target.set(i.x,i.y,i.z),this.threeCameraService.camera.lookAt(i),this.threeCameraService.camera.updateProjectionMatrix()}getBoundingSphere(){return(new dl).setFromObject(this.threeSceneService.mapGeometry).getBoundingSphere(new Kl)}lookAtDirectionFromTarget(e,i,r){this.threeCameraService.camera.position.set(this.controls.target.x,this.controls.target.y,this.controls.target.z);const o=new Br(new Ad(20,20,20),new UK);this.threeSceneService.scene.add(o),o.position.set(this.controls.target.x,this.controls.target.y,this.controls.target.z),o.translateX(e),o.translateY(i),o.translateZ(r),this.threeCameraService.camera.lookAt(o.getWorldPosition(o.position)),this.threeSceneService.scene.remove(o)}getZoom(){return this.threeCameraService.camera.position.distanceTo(this.controls.target)}applyOldZoom(e){this.threeCameraService.camera.translateZ(e)}init(e){this.controls=new YFe(this.threeCameraService.camera,e),this.controls.mouseButtons={LEFT:0,MIDDLE:1,RIGHT:2},window.addEventListener("wheel",i=>{this.controls.zoomToCursor=i.deltaY<=0}),this.controls.listenToKeyEvents(window),this.controls.addEventListener("change",()=>{this.onInput(this.threeCameraService.camera),this.updateZoomPercentage(),this.threeRendererService.render()}),this.updateZoomPercentage()}onInput(e){this.setControlTarget(this.controls.target),this.eventEmitter.emit("onCameraChanged",{camera:e})}subscribe(e,i){this.eventEmitter.on(e,r=>{i(r)})}getZoomPercentage(e){const i=this.controls.minDistance,r=this.controls.maxDistance;return e<=i?this.MAX_ZOOM:e>=r?this.MIN_ZOOM:this.MAX_ZOOM-(e-i)/(r-i)*(this.MAX_ZOOM-this.MIN_ZOOM)}getDistanceFromZoomPercentage(e){const i=this.controls.minDistance;return i+(this.MAX_ZOOM-e)/(this.MAX_ZOOM-this.MIN_ZOOM)*(this.controls.maxDistance-i)}updateZoomPercentage(){const e=this.threeCameraService.camera.position.distanceTo(this.controls.target),i=this.getZoomPercentage(e);this.zoomPercentage$.next(i)}setZoomPercentage(e){const i=this.getDistanceFromZoomPercentage(e),r=(new ie).subVectors(this.threeCameraService.camera.position,this.controls.target).normalize();this.threeCameraService.camera.position.copy(this.controls.target).add(r.multiplyScalar(i)),this.controls.update(),this.zoomPercentage$.next(e)}focusNode(e){this.positionBeforeFocus=this.threeCameraService.camera.position.clone();const o=this.threeSceneService.getMapMesh().getBuildingByPath(e).boundingBox.getBoundingSphere(new Kl);this.ensureProperDistanceAndFocus(o)}unfocusNode(e){if(!this.positionBeforeFocus)return;const i=this.threeCameraService.camera.position.clone(),r=this.positionBeforeFocus.clone(),o=performance.now(),a=l=>{const d=Math.min((l-o)/1e3,1),u=(new ie).lerpVectors(i,r,d);this.moveCameraToPosition(u,this.controls.target,!1),d<1?requestAnimationFrame(a):e&&e()};requestAnimationFrame(a)}ensureProperDistanceAndFocus(e){const i=this.threeCameraService.camera.position.distanceTo(e.center),r=1.8*this.cameraPerspectiveLengthCalculation(e);if(i{this.animateCameraTransition(e,1e3)})}else this.animateCameraTransition(e,1e3)}animateCameraTransition(e,i,r){const{center:o,radius:s}=e,a=this.threeCameraService.camera.position.clone(),l=this.calculateCameraEndPosition(o,s,!0),c=performance.now(),d=u=>{const f=Math.min((u-c)/i,1),A=(new ie).lerpVectors(a,l,f);this.moveCameraToPosition(A,o,!1),f<1?requestAnimationFrame(d):r&&r()};requestAnimationFrame(d)}calculateCameraEndPosition(e,i,r){const o=this.threeCameraService.camera.position.clone(),s=this.controls.target.clone().sub(o).normalize(),a=this.cameraPerspectiveLengthCalculation({center:e,radius:i})*(r?1.8:1);return e.clone().sub(s.multiplyScalar(a))}moveCameraToPosition(e,i,r=!0){const o=this.threeCameraService.camera;o.position.copy(e),o.lookAt(i),this.controls.target.copy(i),this.controls.update(),r&&this.threeRendererService.render(),this.onInput(o)}static{this.\u0275fac=function(i){return new(i||n)(ge(vu),ge(Pc),ge($i))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();var Fw=function(){var n=0,t=document.createElement("div");function e(d){return t.appendChild(d.dom),d}function i(d){for(var u=0;u=o+1e3&&(a.update(1e3*s/(d-o),100),o=d,s=0,c)){var u=performance.memory;c.update(u.usedJSHeapSize/1048576,u.jsHeapSizeLimit/1048576)}return d},update:function(){r=this.end()},domElement:t,setMode:i}};Fw.Panel=function(n,t,e){var i=1/0,r=0,o=Math.round,s=o(window.devicePixelRatio||1),a=80*s,l=48*s,c=3*s,d=2*s,u=3*s,h=15*s,f=74*s,A=30*s,y=document.createElement("canvas");y.width=a,y.height=l,y.style.cssText="width:80px;height:48px";var _=y.getContext("2d");return _.font="bold "+9*s+"px Helvetica,Arial,sans-serif",_.textBaseline="top",_.fillStyle=e,_.fillRect(0,0,a,l),_.fillStyle=t,_.fillText(n,c,d),_.fillRect(u,h,f,A),_.fillStyle=e,_.globalAlpha=.9,_.fillRect(u,h,f,A),{dom:y,update:function(b,M){i=Math.min(i,b),r=Math.max(r,b),_.fillStyle=e,_.globalAlpha=1,_.fillRect(0,0,a,h),_.fillStyle=t,_.fillText(o(b)+" "+n+" ("+o(i)+"-"+o(r)+")",c,d),_.drawImage(y,u+s,h,f-s,A,u,h,f-s,A),_.fillRect(u+f-s,h,s,A),_.fillStyle=e,_.globalAlpha=.9,_.fillRect(u+f-s,h,s,o((1-b/M)*A))}}};const Dw=Fw;let RY=(()=>{class n{constructor(e){this.threeRendererService=e,this.isDevelopmentMode=!1,this.init=i=>{this.isDevelopmentMode&&(this.stats=new Dw,this.stats.dom.style.position="absolute",this.stats.dom.style.left="0",this.stats.dom.style.top="0",i.append(this.stats.dom),this.generateStatPanels(),this.prevTime=this.getTimeFunctor().now())},this.getTimeFunctor=()=>typeof performance>"u"?Date:performance,this.generateStatPanels=()=>{this.trianglesPanel={panel:this.stats.addPanel(new Dw.Panel("triangles","#ff8","#221")),maxHeight:0},this.glCallsPanel={panel:this.stats.addPanel(new Dw.Panel("calls","#f8f","#212")),maxHeight:0},this.geometryMemoryPanel={panel:this.stats.addPanel(new Dw.Panel("geo. mem","#f08","#221")),maxHeight:0},this.textureMemoryPanel={panel:this.stats.addPanel(new Dw.Panel("tex. mem","#0f8","#221")),maxHeight:0},this.stats.showPanel(3)},this.updateStats=()=>{if(this.isDevelopmentMode){const i=this.getTimeFunctor().now();if(i>=this.prevTime+1e3){this.prevTime=i;const r=this.threeRendererService.getInfo(),o=this.threeRendererService.getMemoryInfo();this.processPanel(this.trianglesPanel,r.triangles),this.processPanel(this.glCallsPanel,r.calls),this.processPanel(this.geometryMemoryPanel,o.geometries),this.processPanel(this.textureMemoryPanel,o.textures)}this.stats.update()}},this.resetPanels=()=>{if(this.isDevelopmentMode)for(const i of[this.trianglesPanel,this.glCallsPanel,this.geometryMemoryPanel,this.textureMemoryPanel])void 0!==i&&(i.maxHeight=0)},this.processPanel=(i,r)=>{i.maxHeight=Math.max(i.maxHeight,r),i.panel.update(r,1.3*i.maxHeight)},this.destroy=()=>{this.isDevelopmentMode&&this.stats.dom.remove()}}static{this.\u0275fac=function(i){return new(i||n)(ge($i))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),LY=(()=>{class n{constructor(e,i,r,o,s){this.threeSceneService=e,this.threeCameraService=i,this.threeMapControlsService=r,this.threeRendererService=o,this.threeStatsService=s,this.onWindowResize=()=>{this.threeSceneService.scene.updateMatrixWorld(!1),this.threeRendererService.renderer.setSize(window.innerWidth,window.innerHeight),this.threeCameraService.camera.aspect=window.innerWidth/window.innerHeight,this.threeCameraService.camera.updateProjectionMatrix(),this.animate()},this.onFocusIn=a=>{"INPUT"===a.target.nodeName&&this.threeMapControlsService.controls.stopListenToKeyEvents()},this.onFocusOut=a=>{"INPUT"===a.target.nodeName&&this.threeMapControlsService.controls.listenToKeyEvents(window)}}init(e){this.threeCameraService.init(window.innerWidth,window.innerHeight);const i=this.threeCameraService.camera,r=this.threeSceneService.scene;i.lookAt(r.position),r.add(i),this.threeRendererService.init(window.innerWidth,window.innerHeight,r,i),this.threeStatsService.init(e),this.threeMapControlsService.init(this.threeRendererService.renderer.domElement),e.append(this.threeRendererService.renderer.domElement),window.addEventListener("resize",this.onWindowResize),window.addEventListener("focusin",this.onFocusIn),window.addEventListener("focusout",this.onFocusOut),this.animate(),this.animateStats()}restart(e){this.stopAnimate(),this.destroy(),this.init(e),this.autoFitTo(),this.animate(),this.animateStats()}enableRotation(e){this.threeMapControlsService.controls.enableRotate=e}animate(){this.threeMapControlsService.controls.update(),this.threeRendererService.render()}animateStats(){this.animationFrameId=requestAnimationFrame(()=>this.animateStats()),this.threeStatsService.updateStats()}getRenderCanvas(){return this.threeRendererService.renderer.domElement}getRenderLoseExtention(){return this.threeRendererService.renderer.getContext().getExtension("WEBGL_lose_context")}autoFitTo(){this.threeMapControlsService.autoFitTo()}stopAnimate(){cancelAnimationFrame(this.animationFrameId)}dispose(){this.threeRendererService?.composer?.dispose(),this.threeRendererService?.renderer?.dispose()}destroy(){window.removeEventListener("resize",this.onWindowResize),window.removeEventListener("focusin",this.onFocusIn),window.removeEventListener("focusout",this.onFocusOut),this.dispose(),this.threeStatsService.destroy(),this.getRenderCanvas().remove(),this.dispose()}static{this.\u0275fac=function(i){return new(i||n)(ge(Pc),ge(vu),ge(nc),ge($i),ge(RY))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();const nb=pn("SET_HOVERED_NODE_ID",{_as:"props",_p:void 0}),ib=pn("SET_RIGHT_CLICKED_NODE_DATA",{_as:"props",_p:void 0}),XL=n=>n.appStatus,kw=Zt(XL,n=>n.hoveredNodeId);function yu(n,t=0){let e;return(...i)=>{clearTimeout(e),e=setTimeout(()=>{n.apply(this,i),e=null},t)}}let OY=(()=>{class n{constructor(e,i,r,o){this.state=e,this.threeCameraService=i,this.threeSceneService=r,this.threeMapControlsService=o,this.mapLabelColors=bu.labelColorAndAlpha,this.LABEL_COLOR_RGB=or.convertHexToRgba(this.mapLabelColors.rgb),this.LABEL_WIDTH_DIVISOR=2100,this.LABEL_HEIGHT_DIVISOR=35,this.LABEL_CORNER_RADIUS=40,this.LABEL_SCALE_FACTOR=.7,this.LABEL_HEIGHT_COEFFICIENT=3.75,this.LABEL_HEIGHT_POSITION=60,this.previousScaling=new ie(1,1,1),this.lineCount=1,this.nodeHeight=0,this.labels=new Array,this.threeMapControlsService.subscribe("onCameraChanged",()=>this.onCameraChanged())}addLeafLabel(e,i,r=!1){const{appSettings:o,dynamicSettings:s}=this.state.getValue(),{scaling:a,layoutAlgorithm:l,showMetricLabelNodeName:c,showMetricLabelNameValue:d}=o,{margin:u,heightMetric:h}=s,f=new ie(a.x,a.y,a.z);let A="";if(c||r&&!d)A=`${e.name}`;else if(!d)return;d&&(""!==A&&(A+="\n"),A+=`${e.attributes[h]} ${h}`);const y=this.makeText(A,30,e);let _=e.height+Math.abs(e.heightDelta??0);_=_*f.y>i*f.y?_:i,this.nodeHeight=this.nodeHeight>_?this.nodeHeight:_;const M=e.z0,E=(e.x0-as+e.width/2)*f.x,I=(M+this.nodeHeight)*f.y,V=(M+e.height)*f.y,R=(e.y0-as+e.length/2)*f.z,K=this.LABEL_HEIGHT_COEFFICIENT*u*this.LABEL_SCALE_FACTOR;let k=K+y.heightValue/2;switch(l){case su.StreetMap:case su.TreeMapStreet:k/=10,this.LABEL_HEIGHT_POSITION=0,y.line=this.makeLine(E,I+k,V,R);break;default:y.line=this.makeLine(E,I+K/2,V,R)}y.sprite.position.set(E,I+k,R),y.sprite.material.color=new an(this.mapLabelColors.rgb),y.sprite.material.opacity=this.mapLabelColors.alpha,y.sprite.userData={node:e},this.threeSceneService.labels.add(y.sprite),this.threeSceneService.labels.add(y.line),this.labels.push(y)}clearLabels(){this.threeSceneService.resetLabel(),this.threeSceneService.resetLineHighlight(),this.dispose(this.labels),this.labels=[],this.nodeHeight=0,this.LABEL_HEIGHT_POSITION=60,this.dispose(this.threeSceneService.labels.children),this.threeSceneService.labels.children=[]}disposeSprite(e){e.material.dispose(),e.material.map.dispose(),e.geometry.dispose()}disposeLine(e){e.material.dispose(),e.geometry.dispose()}dispose(e){for(const i of e)i instanceof j4&&this.disposeSprite(i),i instanceof gd&&this.disposeLine(i),void 0!==i.sprite&&this.disposeSprite(i.sprite),void 0!==i.line&&this.disposeLine(i.line)}clearTemporaryLabel(e){const i=this.labels.findIndex(({node:r})=>r===e);i>-1&&(this.labels.splice(i,1),this.dispose(this.threeSceneService.labels.children),this.threeSceneService.labels.children.length-=2,this.threeSceneService.resetLineHighlight())}scale(){const{scaling:e}=this.state.getValue().appSettings,i=new ie(e.x,e.y,e.z),{margin:r}=this.state.getValue().dynamicSettings,o=new ie(0,this.LABEL_HEIGHT_COEFFICIENT*r*this.LABEL_SCALE_FACTOR,0);for(const s of this.labels){const a=i.clone();s.sprite.position.sub(o).divide(this.previousScaling).multiply(a).add(o),a.y>1&&(a.y=1);const c=s.line.geometry.attributes.position;c.setX(0,c.getX(0)*a.x),c.setY(0,c.getY(0)*a.y),c.setZ(0,c.getZ(0)*a.z),c.setX(1,s.sprite.position.x),c.setY(1,s.sprite.position.y),c.setZ(1,s.sprite.position.z),c.needsUpdate=!0}this.previousScaling.copy(i)}onCameraChanged(){for(const e of this.labels)this.setLabelSize(e.sprite,e,e.sprite.material.map.image.width)}makeText(e,i,r){const o=document.createElement("canvas"),s=o.getContext("2d");s.font=`${i}px Roboto`;const l=e.split("\n"),c=s.measureText(l[0]).width,d=s.measureText(l[1]).width;o.width=c>d?c+25:d+25,o.height=25+i*l.length,s.font=`${i}px Roboto`,s.fillStyle="rgba(255,255,255,1)",s.lineJoin="round",s.lineCap="round",s.lineWidth=5,n.drawRectangleWithRoundedCorners(s,0,0,o.width,o.height,this.LABEL_CORNER_RADIUS),s.fillStyle="rgba(0,0,0,1)",s.textAlign="center",s.textBaseline="middle";for(const[A,y]of l.entries())s.fillText(y,o.width/2,o.height*(A+1)/(l.length+1));const u=new cl(o);u.minFilter=os,u.needsUpdate=!0;const h=new W4({map:u}),f=new j4(h);return this.lineCount=l.length,this.setLabelSize(f,null,o.width),{sprite:f,heightValue:o.height,line:null,lineCount:l.length,node:r}}static drawRectangleWithRoundedCorners(e,i,r,o,s,a){o<2*a&&(a=o/2),s<2*a&&(a=s/2),e.beginPath(),e.moveTo(i+a,r),e.arcTo(i+o,r,i+o,r+s,a),e.arcTo(i+o,r+s,i,r+s,a),e.arcTo(i,r+s,i,r,a),e.arcTo(i,r,i+o,r,a),e.closePath(),e.fill()}setLabelSize(e,i,r=e.material.map.image.width){const o=(new dl).setFromObject(this.threeSceneService.mapGeometry).getBoundingSphere(new Kl).center;if(this.threeCameraService.camera){const s=this.threeCameraService.camera.position.distanceTo(o);null!==i&&(this.lineCount=i.lineCount),e.scale.set(s/this.LABEL_WIDTH_DIVISOR*r,this.lineCount>1?s/25:s/this.LABEL_HEIGHT_DIVISOR,1)}}makeLine(e,i,r,o){const s=new Aa({color:this.LABEL_COLOR_RGB,linewidth:2}),a=(new vi).setFromPoints([new ie(e,r,o),new ie(e,i+this.LABEL_HEIGHT_POSITION,o)]);return new gd(a,s)}static{this.\u0275fac=function(i){return new(i||n)(ge(jr),ge(vu),ge(Pc),ge(nc))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),NY=(()=>{class n{constructor(e){this.threeMapControlsService=e,this.eventEmitter=new qL,this.currentlyHovered=null,this.isDragging=!1}init(e,i,r){this.cubeGroup=e,this.camera=i,this.renderer=r,this.initOrbitalControl(i,r),this.initRendererEventListeners(r)}resetIsDragging(){this.isDragging=!1}initOrbitalControl(e,i){this.controls=new jL(e,i.domElement),this.controls.enableZoom=!1,this.controls.enablePan=!1,this.controls.rotateSpeed=1}initRendererEventListeners(e){e.domElement.addEventListener("mousemove",i=>this.onDocumentMouseMove(i)),e.domElement.addEventListener("mouseup",i=>this.onDocumentMouseUp(i)),e.domElement.addEventListener("mousedown",i=>this.onDocumentMouseClick(i,"mousedown")),e.domElement.addEventListener("dblclick",i=>this.onDocumentMouseClick(i,"dblclick")),e.domElement.addEventListener("mouseleave",i=>this.onWindowMouseLeave(i)),e.domElement.addEventListener("mouseenter",()=>this.onDocumentMouseEnter())}onDocumentMouseClick(e,i){this.isDragging=!0,this.checkMouseIntersection(e,i)}onWindowMouseLeave(e){(null==e.relatedTarget||!(e.relatedTarget instanceof HTMLCanvasElement))&&this.enableRotation(!1)}onDocumentMouseEnter(){this.enableRotation(!0)}enableRotation(e){this.controls.enableRotate=e}checkMouseIntersection(e,i){this.getCubeIntersectedByMouse(e)||this.eventEmitter.emit("viewCubeEventPropagation",{type:i,event:e})}getCubeIntersectedByMouse(e){const i=this.transformIntoCanvasVector(e),r=new rY;r.setFromCamera(i,this.camera);const o=[];for(const a of bo(this.cubeGroup))Ro(a)&&o.push(a.data);const[s]=r.intersectObjects(o);return s?s.object:null}transformIntoCanvasVector(e){const{domElement:i}=this.renderer,r=this.renderer.getPixelRatio(),o=i.getBoundingClientRect();return new at((e.clientX-o.left)/i.width*r*2-1,-(e.clientY-o.top)/i.height*r*2+1)}propagateMovement(){if(this.isDragging){const e=this.camera.position;this.threeMapControlsService.rotateCameraInVectorDirection(-e.x,-e.y,-e.z)}return this.isDragging}onDocumentMouseMove(e){if(this.propagateMovement())return;const i=this.getCubeIntersectedByMouse(e);i?this.currentlyHovered&&i.uuid!==this.currentlyHovered.uuid?this.triggerViewCubeUnhoverEvent():this.currentlyHovered||this.triggerViewCubeHoverEvent(i):(this.currentlyHovered&&this.triggerViewCubeUnhoverEvent(),this.eventEmitter.emit("viewCubeEventPropagation",{type:"mousemove",event:e}))}onDocumentMouseUp(e){this.isDragging=!1;const i=this.getCubeIntersectedByMouse(e);i?this.eventEmitter.emit("viewCubeClicked",{cube:i}):this.eventEmitter.emit("viewCubeEventPropagation",{type:"mouseup",event:e})}triggerViewCubeHoverEvent(e){this.currentlyHovered=e,Bw.changeCursorIndicator(jh.Pointer),this.eventEmitter.emit("viewCubeHoveredEvent",{cube:e})}triggerViewCubeUnhoverEvent(){this.currentlyHovered=null,Bw.changeCursorIndicator(jh.Default),this.eventEmitter.emit("viewCubeUnHoveredEvent")}subscribe(e,i){this.eventEmitter.on(e,r=>{i(r)})}static{this.\u0275fac=function(i){return new(i||n)(ge(nc))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();var uT=function(n){return n[n.LeftClick=0]="LeftClick",n[n.RightClick=2]="RightClick",n}(uT||{}),jh=function(n){return n.Default="default",n.Grabbing="grabbing",n.Pointer="pointer",n.Moving="move",n}(jh||{});let Bw=(()=>{class n{constructor(e,i,r,o,s,a,l,c,d){this.threeCameraService=e,this.threeRendererService=i,this.threeSceneService=r,this.store=o,this.state=s,this.codeMapLabelService=a,this.viewCubeMouseEvents=l,this.threeViewerService=c,this.idToBuilding=d,this.THRESHOLD_FOR_MOUSE_MOVEMENT_TRACKING=3,this.mouse={x:0,y:0},this.oldMouse={x:0,y:0},this.mouseOnLastClick={x:0,y:0},this.isGrabbing=!1,this.isMoving=!1,this.raycaster=new rY,this.labelHoveredBuilding=null,this.labelSelectedBuilding=null,this.subscriptions=[this.store.select(tu).pipe(Dr(()=>this.onFilesSelectionChanged())).subscribe(),this.store.select(eu).pipe(Dr(u=>this.onBlacklistChanged(u))).subscribe(),this.store.select(kw).pipe(Dr(u=>{null!==u?this.hoverNode(u):this.unhoverNode(!1)})).subscribe()],this.onViewCubeEventPropagation=u=>{switch(u.type){case"mousemove":this.onDocumentMouseMove(u.event);break;case"mouseup":this.onDocumentMouseUp(u.event);break;case"mousedown":this.onDocumentMouseDown(u.event);break;case"dblclick":this.onDocumentDoubleClick()}},this.onDocumentMouseMove=u=>{this.mouse.x=u.clientX,this.mouse.y=u.clientY,this.updateHovering(),this.viewCubeMouseEvents.propagateMovement()}}ngOnDestroy(){for(const e of this.subscriptions)e.unsubscribe()}static changeCursorIndicator(e){document.body.style.cursor=e}start(){this.threeRendererService.renderer.domElement.addEventListener("mousemove",yu(this.onDocumentMouseMove,1)),this.threeRendererService.renderer.domElement.addEventListener("mouseup",e=>this.onDocumentMouseUp(e)),this.threeRendererService.renderer.domElement.addEventListener("mousedown",e=>this.onDocumentMouseDown(e)),this.threeRendererService.renderer.domElement.addEventListener("dblclick",()=>this.onDocumentDoubleClick()),this.threeRendererService.renderer.domElement.addEventListener("mouseleave",e=>this.onDocumentMouseLeave(e)),this.threeRendererService.renderer.domElement.addEventListener("mouseenter",()=>this.onDocumentMouseEnter()),this.threeRendererService.renderer.domElement.addEventListener("wheel",yu(()=>this.threeRendererService.render())),this.viewCubeMouseEvents.subscribe("viewCubeEventPropagation",this.onViewCubeEventPropagation)}hoverNode(e){if(this.isGrabbingOrMoving())return;const{buildings:i}=this.threeSceneService.getMapMesh().getMeshDescription();for(const r of i)if(r.node.id===e){this.hoverBuilding(r,!1);break}this.threeRendererService.render()}unhoverNode(e=!0){this.unhoverBuilding(e),this.threeRendererService.render()}onFilesSelectionChanged(){this.threeSceneService.clearSelection(),this.threeSceneService.clearConstantHighlight(),this.clearLabelHoveredBuilding()}onBlacklistChanged(e){const i=this.threeSceneService.getSelectedBuilding();this.clearLabelHoveredBuilding(),i&&function nbe(n,t){return vh(n,t,"exclude")||vh(n,t,"flatten")}(i.node.path,e)&&this.threeSceneService.clearSelection(),this.unhoverBuilding()}updateHovering(){if(this.hasMouseMoved(this.oldMouse)){const e=this.threeSceneService.labels?.children;if(this.isGrabbingOrMoving())return this.threeSceneService.resetLabel(),this.clearLabelHoveredBuilding(),void this.threeRendererService.render();this.oldMouse.x=this.mouse.x,this.oldMouse.y=this.mouse.y;const i=this.threeSceneService.getMapMesh();if(i){this.threeCameraService.camera.updateMatrixWorld(!1);let r="";const o=this.transformHTMLToSceneCoordinates(),s=this.threeCameraService.camera;s.isPerspectiveCamera&&this.raycaster.setFromCamera(o,s);const a=this.calculateHoveredLabel(e);a&&(this.threeSceneService.animateLabel(a.object,this.raycaster,e),r=a.object.userData.node.path),this.intersectedBuilding=""!==r?i.getBuildingByPath(r):i.checkMouseRayMeshIntersection(o,s);const l=this.threeSceneService.getHighlightedBuilding(),c=this.intersectedBuilding;l?.id!==c?.id&&(this.clearLabelHoveredBuilding(),this.threeSceneService.resetLabel(),this.unhoverBuilding(),c&&!this.isGrabbingOrMoving()&&(this.setLabelHoveredLeaf(c,e),this.hoverBuilding(c)))}}}setLabelHoveredLeaf(e,i){if(e?.node?.isLeaf){const r=this.threeSceneService.getLabelForHoveredNode(e,i)??this.drawLabelHoveredBuilding(e);this.threeSceneService.animateLabel(r,this.raycaster,i)}}drawLabelHoveredBuilding(e){this.codeMapLabelService.addLeafLabel(e.node,0,!0);const r=this.threeSceneService.labels?.children,o=this.threeSceneService.getLabelForHoveredNode(e,r);return this.labelHoveredBuilding=e.node,o}drawLabelSelectedBuilding(e){if(this.clearLabelHoveredBuilding(),null!==this.labelSelectedBuilding&&this.codeMapLabelService.clearTemporaryLabel(this.labelSelectedBuilding),!e.node.isLeaf)return;this.codeMapLabelService.addLeafLabel(e.node,0,!0);const i=this.threeSceneService.labels?.children,r=this.threeSceneService.getLabelForHoveredNode(e,i);return this.threeSceneService.animateLabel(r,this.raycaster,i),this.labelSelectedBuilding=e.node,r}clearLabelHoveredBuilding(){null!==this.labelHoveredBuilding&&(this.codeMapLabelService.clearTemporaryLabel(this.labelHoveredBuilding),this.labelHoveredBuilding=null)}clearLabelSelectedBuilding(){null!==this.labelSelectedBuilding&&(this.codeMapLabelService.clearTemporaryLabel(this.labelSelectedBuilding),this.labelSelectedBuilding=null)}EnableOrbitalsRotation(e){this.threeViewerService.enableRotation(e),this.viewCubeMouseEvents.enableRotation(e)}onDocumentMouseEnter(){this.EnableOrbitalsRotation(!0)}onDocumentMouseLeave(e){e.relatedTarget instanceof HTMLCanvasElement||this.EnableOrbitalsRotation(!1)}onDocumentDoubleClick(){const e=this.threeSceneService.getHighlightedBuilding(),i=this.threeSceneService.getSelectedBuilding(),r=e?.node.link;if(r&&!this.hasMouseMoved(this.mouseOnLastClick)&&window.open(r,"_blank"),i?.node.isLeaf){const o=i.node.link;if(o)return void window.open(o,"_blank")}}onDocumentMouseDown(e){e.button===uT.RightClick&&(this.isMoving=!0,n.changeCursorIndicator(jh.Moving)),e.button===uT.LeftClick&&(this.isGrabbing=!0,n.changeCursorIndicator(jh.Grabbing)),this.mouseOnLastClick={x:e.clientX,y:e.clientY},document.activeElement.blur()}onDocumentMouseUp(e){this.viewCubeMouseEvents.resetIsDragging(),e.button===uT.LeftClick?this.onLeftClick():this.onRightClick(),n.changeCursorIndicator(void 0!==this.intersectedBuilding?jh.Pointer:jh.Default)}calculateHoveredLabel(e){let i=null;for(let r=0;r0&&(i=null===i?o[0]:i.distancethis.THRESHOLD_FOR_MOUSE_MOVEMENT_TRACKING||Math.abs(this.mouse.y-i)>this.THRESHOLD_FOR_MOUSE_MOVEMENT_TRACKING}hasMouseMoved({x:e,y:i}){return this.mouse.x!==e||this.mouse.y!==i}isGrabbingOrMoving(){return this.isGrabbing||this.isMoving}hoverBuilding(e,i=!0){n.changeCursorIndicator(jh.Pointer);const o=J_(this.state.getValue()).get(e.node.id);for(const{data:s}of bo(o)){const a=this.idToBuilding.get(s.id);a&&this.threeSceneService.addBuildingToHighlightingList(a)}this.threeSceneService.highlightBuildings(),i&&this.store.dispatch(nb({value:e.node.id}))}transformHTMLToSceneCoordinates(){const{renderer:e,renderer:{domElement:i}}=this.threeRendererService,r=e.getPixelRatio(),o=i.getBoundingClientRect();return{x:this.mouse.x/i.width*r*2-1,y:-(this.mouse.y-o.top)/i.height*r*2+1}}unhoverBuilding(e=!0){this.isGrabbingOrMoving()||n.changeCursorIndicator(jh.Default),this.threeSceneService.getConstantHighlight().size>0?this.threeSceneService.clearHoverHighlight():this.threeSceneService.clearHighlight(),e&&this.store.dispatch(nb({value:null}))}static{this.\u0275fac=function(i){return new(i||n)(ge(vu),ge($i),ge(Pc),ge(Xt),ge(jr),ge(OY),ge(NY),ge(LY),ge(Iw))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();const KL=()=>new qS({color:16580095}),YL=()=>new qS({color:16580095}),UY=()=>new qS({color:16580095});class _d{static buildCube(t){const e=1/t,i=(1-e)/2,r=new Ad(e,i,i),o=new Ad(i,i,i),s=new Ad(e,e,i);return _d.buildCubeGroup(r,o,s)}static buildCubeGroup(t,e,i){const r=new pa,{group:o,topLeft:s,topCenter:a,topRight:l,bottomLeft:c,bottomCenter:d,bottomRight:u,middleLeft:h,middleCenter:f,middleRight:A}=_d.buildFullFace(t,e,i),{group:y,topLeft:_,topCenter:b,topRight:M,bottomLeft:C,bottomCenter:E,bottomRight:I,middleLeft:V,middleCenter:R,middleRight:K}=_d.buildFullFace(t,e,i),k=t.parameters.width/2+e.parameters.width/2;y.position.z-=k,o.position.z+=k;const{group:W,topLeftMiddle:ue,topMiddleMiddle:Se,topRightMiddle:Me,middleLeftMiddle:Z,middleRightMiddle:ve,bottomLeftMiddle:re,bottomMiddleMiddle:oe,bottomRightMiddle:ae}=_d.buildMiddleRing(i,t,e);return r.add(o),r.add(y),r.add(W),{group:r,front:{top:{left:s,middle:a,right:l},middle:{left:A,middle:f,right:h},bottom:{left:c,middle:d,right:u}},back:{top:{left:_,middle:b,right:M},middle:{left:V,middle:R,right:K},bottom:{left:C,middle:E,right:I}},middle:{top:{left:ue,middle:Se,right:Me},middle:{left:Z,right:ve},bottom:{left:re,middle:oe,right:ae}}}}static buildMiddleRing(t,e,i){const{group:r,left:o,right:s,center:a}=_d.buildMiddleFace(t,e),{group:l,left:c,right:d,center:u}=_d.buildMiddleFace(t,e),h=new Br(t,YL()),f=new Br(t,YL()),A=e.parameters.width/2+i.parameters.width/2;r.position.x-=A,r.rotation.x=Math.PI/2,r.rotation.y=Math.PI/2,l.position.x+=A,l.rotation.x=Math.PI/2,l.rotation.y=Math.PI/2,f.position.y-=A,f.rotation.x=Math.PI/2,h.position.y+=A,h.rotation.x=Math.PI/2;const y=new pa;return y.add(r),y.add(l),y.add(f),y.add(h),{group:y,topLeftMiddle:o,topMiddleMiddle:h,topRightMiddle:c,middleLeftMiddle:a,middleRightMiddle:u,bottomLeftMiddle:s,bottomMiddleMiddle:f,bottomRightMiddle:d}}static buildFullFace(t,e,i){const{group:r,left:o,right:s,center:a}=_d.buildFullEdge(t,e),{group:l,left:c,right:d,center:u}=_d.buildFullEdge(t,e),h=t.parameters.height/2+i.parameters.height/2;r.position.y+=h,l.position.y-=h;const{group:f,left:A,right:y,center:_}=_d.buildMiddleFace(i,t),b=new pa;return b.add(r),b.add(l),b.add(f),{group:b,topLeft:o,topCenter:a,topRight:s,bottomLeft:c,bottomCenter:u,bottomRight:d,middleLeft:A,middleCenter:_,middleRight:y}}static buildMiddleFace(t,e){const i=new Br(t,YL()),r=new Br(e,KL()),o=new Br(e,KL()),s=t.parameters.height/2+e.parameters.height/2;r.position.y-=s,o.position.y+=s;const a=new pa;return a.rotation.z=Math.PI/2,a.add(i),a.add(r),a.add(o),{group:a,left:r,right:o,center:i}}static buildFullEdge(t,e){const i=new Br(t,KL()),r=new Br(e,UY()),o=new Br(e,UY()),s=t.parameters.width/2+e.parameters.width/2;r.position.x-=s,o.position.x+=s;const a=new pa;return a.add(i),a.add(r),a.add(o),{group:a,left:r,right:o,center:i}}}let JFe=(()=>{class n{constructor(e){this.threeMapControlsService=e}centerMap(){this.threeMapControlsService.autoFitTo()}static{this.\u0275fac=function(i){return new(i||n)($(nc))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-center-map-button"]],decls:2,vars:0,consts:[["aria-label","Center map in View","title","Center map",1,"cc-shadow",3,"click"],[1,"fa","fa-compass"]],template:function(i,r){1&i&&(P(0,"button",0),We("click",function(){return r.centerMap()}),xe(1,"i",1),H())},styles:["button[_ngcontent-%COMP%]{position:absolute;right:15px;width:36px;height:36px;font-size:28px;border-radius:100%;color:#fff;background-color:#1b9cfc}button.cc-shadow[_ngcontent-%COMP%]{box-shadow:0 1px 5px #0003!important}button[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{margin-top:2px}button[_ngcontent-%COMP%]:hover{cursor:pointer;background-color:#0374c9}"]})}}return n})(),eDe=(()=>{class n{constructor(e,i){this.threeMapControlsService=e,this.cdr=i}ngOnInit(){this.maxZoom=this.threeMapControlsService.MAX_ZOOM,this.minZoom=this.threeMapControlsService.MIN_ZOOM,this.threeMapControlsService.zoomPercentage$.subscribe(e=>{this.zoomPercentage=e,this.cdr.detectChanges()})}onInput(e){const r=Number.parseFloat(e.target.value);this.threeMapControlsService.setZoomPercentage(r)}zoomIn(){this.threeMapControlsService.setZoomPercentage(Math.min(this.zoomPercentage+10,this.maxZoom))}zoomOut(){this.threeMapControlsService.setZoomPercentage(Math.max(this.zoomPercentage-10,this.minZoom))}static{this.\u0275fac=function(i){return new(i||n)($(nc),$(_o))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-zoom-slider"]],decls:8,vars:4,consts:[[1,"zoom-slider"],["data-testid","zoomOut",1,"zoom-button",3,"click"],["type","range","id","zoomRange","data-testid","zoomRange",3,"input","min","max","value"],["data-testid","zoomIn",1,"zoom-button",3,"click"],["id","zoomValue"]],template:function(i,r){1&i&&(P(0,"div",0)(1,"button",1),We("click",function(){return r.zoomOut()}),we(2,"-"),H(),P(3,"input",2),We("input",function(s){return r.onInput(s)}),H(),P(4,"button",3),We("click",function(){return r.zoomIn()}),we(5,"+"),H(),P(6,"span",4),we(7),H()()),2&i&&(U(3),pe("min",r.minZoom)("max",r.maxZoom)("value",r.zoomPercentage),U(4),cn("",null==r.zoomPercentage?null:r.zoomPercentage.toFixed(0),"%"))},styles:['.mat-ripple[_ngcontent-%COMP%]{overflow:hidden;position:relative}.mat-ripple[_ngcontent-%COMP%]:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded[_ngcontent-%COMP%]{overflow:visible}.mat-ripple-element[_ngcontent-%COMP%]{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0,0,.2,1);transform:scale3d(0,0,0);background-color:var(--mat-ripple-color, rgba(0, 0, 0, .1))}.cdk-high-contrast-active[_ngcontent-%COMP%] .mat-ripple-element[_ngcontent-%COMP%]{display:none}.cdk-visually-hidden[_ngcontent-%COMP%]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none;left:0}[dir=rtl][_ngcontent-%COMP%] .cdk-visually-hidden[_ngcontent-%COMP%]{left:auto;right:0}.cdk-overlay-container[_ngcontent-%COMP%], .cdk-global-overlay-wrapper[_ngcontent-%COMP%]{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container[_ngcontent-%COMP%]{position:fixed;z-index:1000}.cdk-overlay-container[_ngcontent-%COMP%]:empty{display:none}.cdk-global-overlay-wrapper[_ngcontent-%COMP%]{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane[_ngcontent-%COMP%]{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop[_ngcontent-%COMP%]{position:absolute;inset:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:1}.cdk-high-contrast-active[_ngcontent-%COMP%] .cdk-overlay-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:.6}.cdk-overlay-dark-backdrop[_ngcontent-%COMP%]{background:#00000052}.cdk-overlay-transparent-backdrop[_ngcontent-%COMP%]{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing[_ngcontent-%COMP%]{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation[_ngcontent-%COMP%]{transition:none}.cdk-overlay-connected-position-bounding-box[_ngcontent-%COMP%]{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock[_ngcontent-%COMP%]{position:fixed;width:100%;overflow-y:scroll}textarea.cdk-textarea-autosize[_ngcontent-%COMP%]{resize:none}textarea.cdk-textarea-autosize-measuring[_ngcontent-%COMP%]{padding:2px 0!important;box-sizing:content-box!important;height:auto!important;overflow:hidden!important}textarea.cdk-textarea-autosize-measuring-firefox[_ngcontent-%COMP%]{padding:2px 0!important;box-sizing:content-box!important;height:0!important}@keyframes _ngcontent-%COMP%_cdk-text-field-autofill-start{}@keyframes _ngcontent-%COMP%_cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:-webkit-autofill{animation:_ngcontent-%COMP%_cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored[_ngcontent-%COMP%]:not(:-webkit-autofill){animation:_ngcontent-%COMP%_cdk-text-field-autofill-end 0s 1ms}.mat-focus-indicator[_ngcontent-%COMP%]{position:relative}.mat-focus-indicator[_ngcontent-%COMP%]:before{inset:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-focus-indicator-display, none);border:var(--mat-focus-indicator-border-width, 3px) var(--mat-focus-indicator-border-style, solid) var(--mat-focus-indicator-border-color, transparent);border-radius:var(--mat-focus-indicator-border-radius, 4px)}.mat-focus-indicator[_ngcontent-%COMP%]:focus:before{content:""}.cdk-high-contrast-active[_ngcontent-%COMP%]{--mat-focus-indicator-display: block}.mat-mdc-focus-indicator[_ngcontent-%COMP%]{position:relative}.mat-mdc-focus-indicator[_ngcontent-%COMP%]:before{inset:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-mdc-focus-indicator-display, none);border:var(--mat-mdc-focus-indicator-border-width, 3px) var(--mat-mdc-focus-indicator-border-style, solid) var(--mat-mdc-focus-indicator-border-color, transparent);border-radius:var(--mat-mdc-focus-indicator-border-radius, 4px)}.mat-mdc-focus-indicator[_ngcontent-%COMP%]:focus:before{content:""}.cdk-high-contrast-active[_ngcontent-%COMP%]{--mat-mdc-focus-indicator-display: block}.mat-app-background[_ngcontent-%COMP%]{background-color:var(--mat-app-background-color, transparent);color:var(--mat-app-text-color, inherit)}[_ngcontent-%COMP%]:root{--mat-dialog-container-min-width: 500px;--mat-dialog-actions-alignment: flex-end;--mat-toolbar-container-background-color: #1b9cfc;--mat-toolbar-container-text-color: #fff;--mat-text-button-horizontal-padding: 8px}[_ngcontent-%COMP%]:root .mat-mdc-checkbox.mat-accent[_ngcontent-%COMP%]{--mdc-checkbox-selected-checkmark-color: #fff !important}.zoom-slider[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;width:150px;position:absolute;top:190px;right:26px;margin:10px}.zoom-slider[_ngcontent-%COMP%] .zoom-button[_ngcontent-%COMP%], .zoom-slider[_ngcontent-%COMP%] #zoomValue[_ngcontent-%COMP%]{font-size:10px;color:#737373}.zoom-slider[_ngcontent-%COMP%] .zoom-button.zoom-button[_ngcontent-%COMP%], .zoom-slider[_ngcontent-%COMP%] #zoomValue.zoom-button[_ngcontent-%COMP%]{background:none;border:none;font-size:16px;cursor:pointer;padding:0;margin:0}input[type=range][_ngcontent-%COMP%]{-webkit-appearance:none;color:#737373;width:100px;height:3px;background:#737373;outline:none;opacity:.7;transition:opacity .2s}input[type=range][_ngcontent-%COMP%]::-webkit-slider-thumb{appearance:none;width:3px;height:10px;background:#737373;cursor:pointer}input[type=range][_ngcontent-%COMP%]::-moz-range-thumb{width:3px;height:10px;background:#737373;cursor:pointer}'],changeDetection:0})}}return n})(),tDe=(()=>{class n{constructor(e,i,r){this.elementReference=e,this.threeMapControlsService=i,this.viewCubeMouseEvents=r,this.WIDTH=200,this.HEIGHT=200,this.LENGTH_VIEWCUBE=1,this.hoverInfo={cube:null,originalMaterial:null},this.cubeDefinition={front:null,middle:null,back:null},this.onCameraChanged=o=>{const s=this.calculateCameraPosition(o.camera);this.setCameraPosition(s),this.renderer.render(this.scene,this.camera)},this.onCubeHovered=o=>{this.hoverInfo={cube:o.cube,originalMaterial:o.cube.material},this.hoverInfo.cube.material.emissive=new an(16777215),this.renderer.render(this.scene,this.camera)},this.onCubeUnhovered=()=>{this.hoverInfo.cube.material.emissive=new an(0),this.hoverInfo.cube=null,this.renderer.render(this.scene,this.camera)},this.onCubeClicked=o=>{switch(o.cube){case this.cubeDefinition.front.top.middle:this.threeMapControlsService.rotateCameraInVectorDirection(0,-1,-1);break;case this.cubeDefinition.front.top.left:this.threeMapControlsService.rotateCameraInVectorDirection(1,-1,-1);break;case this.cubeDefinition.front.top.right:this.threeMapControlsService.rotateCameraInVectorDirection(-1,-1,-1);break;case this.cubeDefinition.front.middle.middle:this.threeMapControlsService.rotateCameraInVectorDirection(0,0,0);break;case this.cubeDefinition.front.middle.left:this.threeMapControlsService.rotateCameraInVectorDirection(1,0,-1);break;case this.cubeDefinition.front.middle.right:this.threeMapControlsService.rotateCameraInVectorDirection(-1,0,-1);break;case this.cubeDefinition.front.bottom.middle:this.threeMapControlsService.rotateCameraInVectorDirection(0,1,-1);break;case this.cubeDefinition.front.bottom.left:this.threeMapControlsService.rotateCameraInVectorDirection(1,1,-1);break;case this.cubeDefinition.front.bottom.right:this.threeMapControlsService.rotateCameraInVectorDirection(-1,1,-1);break;case this.cubeDefinition.middle.middle.right:this.threeMapControlsService.rotateCameraInVectorDirection(-1,0,0);break;case this.cubeDefinition.middle.top.right:this.threeMapControlsService.rotateCameraInVectorDirection(-1,-1,0);break;case this.cubeDefinition.middle.bottom.right:this.threeMapControlsService.rotateCameraInVectorDirection(-1,1,0);break;case this.cubeDefinition.middle.middle.left:this.threeMapControlsService.rotateCameraInVectorDirection(1,0,0);break;case this.cubeDefinition.middle.top.left:this.threeMapControlsService.rotateCameraInVectorDirection(1,-1,0);break;case this.cubeDefinition.middle.bottom.left:this.threeMapControlsService.rotateCameraInVectorDirection(1,1,0);break;case this.cubeDefinition.middle.top.middle:this.threeMapControlsService.rotateCameraInVectorDirection(0,-1,0);break;case this.cubeDefinition.middle.bottom.middle:this.threeMapControlsService.rotateCameraInVectorDirection(0,1,0);break;case this.cubeDefinition.back.top.middle:this.threeMapControlsService.rotateCameraInVectorDirection(0,-1,1);break;case this.cubeDefinition.back.top.left:this.threeMapControlsService.rotateCameraInVectorDirection(1,-1,1);break;case this.cubeDefinition.back.top.right:this.threeMapControlsService.rotateCameraInVectorDirection(-1,-1,1);break;case this.cubeDefinition.back.middle.middle:this.threeMapControlsService.rotateCameraInVectorDirection(0,0,1);break;case this.cubeDefinition.back.middle.left:this.threeMapControlsService.rotateCameraInVectorDirection(-1,0,1);break;case this.cubeDefinition.back.middle.right:this.threeMapControlsService.rotateCameraInVectorDirection(1,0,1);break;case this.cubeDefinition.back.bottom.middle:this.threeMapControlsService.rotateCameraInVectorDirection(0,1,1);break;case this.cubeDefinition.back.bottom.left:this.threeMapControlsService.rotateCameraInVectorDirection(-1,1,1);break;case this.cubeDefinition.back.bottom.right:this.threeMapControlsService.rotateCameraInVectorDirection(1,1,1)}}}ngOnInit(){this.initScene(),this.initLights(),this.initRenderer(this.elementReference.nativeElement),this.initCube(),this.initAxesHelper(),this.initCamera(),this.viewCubeMouseEvents.init(this.cubeGroup,this.camera,this.renderer),this.threeMapControlsService.subscribe("onCameraChanged",this.onCameraChanged),this.viewCubeMouseEvents.subscribe("viewCubeHoveredEvent",this.onCubeHovered),this.viewCubeMouseEvents.subscribe("viewCubeUnHoveredEvent",this.onCubeUnhovered),this.viewCubeMouseEvents.subscribe("viewCubeClicked",this.onCubeClicked)}initAxesHelper(){const e=new MFe(1.3),i=-this.LENGTH_VIEWCUBE/2+.01;e.position.x+=i,e.position.y+=i,e.position.z+=i,this.scene.add(e)}initCube(){const{group:e,front:i,middle:r,back:o}=_d.buildCube(1.6);this.cubeGroup=e,this.cubeDefinition.front=i,this.cubeDefinition.middle=r,this.cubeDefinition.back=o;const s=new xFe(this.cubeGroup,new an(0));this.scene.add(this.cubeGroup),this.scene.add(s)}setCameraPosition(e){this.camera.position.set(e.x,e.y,e.z),this.camera.lookAt(0,0,0),this.camera.updateProjectionMatrix()}calculateCameraPosition(e){const i=this.threeMapControlsService.controls.target.clone();return e.position.clone().sub(i).normalize().multiplyScalar(3)}initScene(){this.scene=new MS}initRenderer(e){this.renderer=new CS({alpha:!0,antialias:!0}),this.renderer.setSize(this.WIDTH,this.HEIGHT),this.renderer.setPixelRatio(window.devicePixelRatio),e.appendChild(this.renderer.domElement)}initCamera(){this.camera=new Ls(45,this.WIDTH/this.HEIGHT,.1,1e3),this.camera.position.z=4}initLights(){this.lights=new pa;const e=new TL(7368816,2.8),i=new Sw(14737632,1.8);i.position.set(50,10,8).normalize();const r=new Sw(14737632,1.8);r.position.set(-50,10,-8).normalize(),this.lights.add(e),this.lights.add(i),this.lights.add(r),this.scene.add(this.lights)}static{this.\u0275fac=function(i){return new(i||n)($(Vn),$(nc),$(NY))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-view-cube"]],decls:2,vars:0,template:function(i,r){1&i&&xe(0,"cc-center-map-button")(1,"cc-zoom-slider")},dependencies:[JFe,eDe],styles:["[_nghost-%COMP%]{transition:right .3s ease;position:absolute;z-index:11;right:0;top:10px}.sideBarVisible[_nghost-%COMP%]{right:350px}"]})}}return n})();const nDe=Zt(XL,n=>n.selectedBuildingId),Tm=Zt(nDe,J_,(n,t)=>t?.get(n)),iDe=["tooltip"],VY=new ut("mat-tooltip-scroll-strategy",{providedIn:"root",factory:()=>{const n=qt(Rs);return()=>n.scrollStrategies.reposition({scrollThrottle:20})}}),oDe={provide:VY,deps:[Rs],useFactory:function rDe(n){return()=>n.scrollStrategies.reposition({scrollThrottle:20})}},aDe=new ut("mat-tooltip-default-options",{providedIn:"root",factory:function sDe(){return{showDelay:0,hideDelay:0,touchendHideDelay:1500}}}),QY="tooltip-panel",zY=Kp({passive:!0});let qY=(()=>{class n{get position(){return this._position}set position(e){e!==this._position&&(this._position=e,this._overlayRef&&(this._updatePosition(this._overlayRef),this._tooltipInstance?.show(0),this._overlayRef.updatePosition()))}get positionAtOrigin(){return this._positionAtOrigin}set positionAtOrigin(e){this._positionAtOrigin=ta(e),this._detach(),this._overlayRef=null}get disabled(){return this._disabled}set disabled(e){this._disabled=ta(e),this._disabled?this.hide(0):this._setupPointerEnterEventsIfNeeded()}get showDelay(){return this._showDelay}set showDelay(e){this._showDelay=im(e)}get hideDelay(){return this._hideDelay}set hideDelay(e){this._hideDelay=im(e),this._tooltipInstance&&(this._tooltipInstance._mouseLeaveHideDelay=this._hideDelay)}get message(){return this._message}set message(e){this._ariaDescriber.removeDescription(this._elementRef.nativeElement,this._message,"tooltip"),this._message=null!=e?String(e).trim():"",!this._message&&this._isTooltipVisible()?this.hide(0):(this._setupPointerEnterEventsIfNeeded(),this._updateTooltipMessage(),this._ngZone.runOutsideAngular(()=>{Promise.resolve().then(()=>{this._ariaDescriber.describe(this._elementRef.nativeElement,this.message,"tooltip")})}))}get tooltipClass(){return this._tooltipClass}set tooltipClass(e){this._tooltipClass=e,this._tooltipInstance&&this._setTooltipClass(this._tooltipClass)}constructor(e,i,r,o,s,a,l,c,d,u,h,f){this._overlay=e,this._elementRef=i,this._scrollDispatcher=r,this._viewContainerRef=o,this._ngZone=s,this._platform=a,this._ariaDescriber=l,this._focusMonitor=c,this._dir=u,this._defaultOptions=h,this._position="below",this._positionAtOrigin=!1,this._disabled=!1,this._viewInitialized=!1,this._pointerExitEventsInitialized=!1,this._tooltipComponent=hDe,this._viewportMargin=8,this._cssClassPrefix="mat-mdc",this.touchGestures="auto",this._message="",this._passiveListeners=[],this._destroyed=new Hn,this._scrollStrategy=d,this._document=f,h&&(this._showDelay=h.showDelay,this._hideDelay=h.hideDelay,h.position&&(this.position=h.position),h.positionAtOrigin&&(this.positionAtOrigin=h.positionAtOrigin),h.touchGestures&&(this.touchGestures=h.touchGestures)),u.change.pipe(to(this._destroyed)).subscribe(()=>{this._overlayRef&&this._updatePosition(this._overlayRef)}),this._viewportMargin=8}ngAfterViewInit(){this._viewInitialized=!0,this._setupPointerEnterEventsIfNeeded(),this._focusMonitor.monitor(this._elementRef).pipe(to(this._destroyed)).subscribe(e=>{e?"keyboard"===e&&this._ngZone.run(()=>this.show()):this._ngZone.run(()=>this.hide(0))})}ngOnDestroy(){const e=this._elementRef.nativeElement;clearTimeout(this._touchstartTimeout),this._overlayRef&&(this._overlayRef.dispose(),this._tooltipInstance=null),this._passiveListeners.forEach(([i,r])=>{e.removeEventListener(i,r,zY)}),this._passiveListeners.length=0,this._destroyed.next(),this._destroyed.complete(),this._ariaDescriber.removeDescription(e,this.message,"tooltip"),this._focusMonitor.stopMonitoring(e)}show(e=this.showDelay,i){if(this.disabled||!this.message||this._isTooltipVisible())return void this._tooltipInstance?._cancelPendingAnimations();const r=this._createOverlay(i);this._detach(),this._portal=this._portal||new C1(this._tooltipComponent,this._viewContainerRef);const o=this._tooltipInstance=r.attach(this._portal).instance;o._triggerElement=this._elementRef.nativeElement,o._mouseLeaveHideDelay=this._hideDelay,o.afterHidden().pipe(to(this._destroyed)).subscribe(()=>this._detach()),this._setTooltipClass(this._tooltipClass),this._updateTooltipMessage(),o.show(e)}hide(e=this.hideDelay){const i=this._tooltipInstance;i&&(i.isVisible()?i.hide(e):(i._cancelPendingAnimations(),this._detach()))}toggle(e){this._isTooltipVisible()?this.hide():this.show(void 0,e)}_isTooltipVisible(){return!!this._tooltipInstance&&this._tooltipInstance.isVisible()}_createOverlay(e){if(this._overlayRef){const o=this._overlayRef.getConfig().positionStrategy;if((!this.positionAtOrigin||!e)&&o._origin instanceof Vn)return this._overlayRef;this._detach()}const i=this._scrollDispatcher.getAncestorScrollContainers(this._elementRef),r=this._overlay.position().flexibleConnectedTo(this.positionAtOrigin&&e||this._elementRef).withTransformOriginOn(`.${this._cssClassPrefix}-tooltip`).withFlexibleDimensions(!1).withViewportMargin(this._viewportMargin).withScrollableContainers(i);return r.positionChanges.pipe(to(this._destroyed)).subscribe(o=>{this._updateCurrentPositionClass(o.connectionPair),this._tooltipInstance&&o.scrollableViewProperties.isOverlayClipped&&this._tooltipInstance.isVisible()&&this._ngZone.run(()=>this.hide(0))}),this._overlayRef=this._overlay.create({direction:this._dir,positionStrategy:r,panelClass:`${this._cssClassPrefix}-${QY}`,scrollStrategy:this._scrollStrategy()}),this._updatePosition(this._overlayRef),this._overlayRef.detachments().pipe(to(this._destroyed)).subscribe(()=>this._detach()),this._overlayRef.outsidePointerEvents().pipe(to(this._destroyed)).subscribe(()=>this._tooltipInstance?._handleBodyInteraction()),this._overlayRef.keydownEvents().pipe(to(this._destroyed)).subscribe(o=>{this._isTooltipVisible()&&27===o.keyCode&&!cd(o)&&(o.preventDefault(),o.stopPropagation(),this._ngZone.run(()=>this.hide(0)))}),this._defaultOptions?.disableTooltipInteractivity&&this._overlayRef.addPanelClass(`${this._cssClassPrefix}-tooltip-panel-non-interactive`),this._overlayRef}_detach(){this._overlayRef&&this._overlayRef.hasAttached()&&this._overlayRef.detach(),this._tooltipInstance=null}_updatePosition(e){const i=e.getConfig().positionStrategy,r=this._getOrigin(),o=this._getOverlayPosition();i.withPositions([this._addOffset({...r.main,...o.main}),this._addOffset({...r.fallback,...o.fallback})])}_addOffset(e){const r=!this._dir||"ltr"==this._dir.value;return"top"===e.originY?e.offsetY=-8:"bottom"===e.originY?e.offsetY=8:"start"===e.originX?e.offsetX=r?-8:8:"end"===e.originX&&(e.offsetX=r?8:-8),e}_getOrigin(){const e=!this._dir||"ltr"==this._dir.value,i=this.position;let r;"above"==i||"below"==i?r={originX:"center",originY:"above"==i?"top":"bottom"}:"before"==i||"left"==i&&e||"right"==i&&!e?r={originX:"start",originY:"center"}:("after"==i||"right"==i&&e||"left"==i&&!e)&&(r={originX:"end",originY:"center"});const{x:o,y:s}=this._invertPosition(r.originX,r.originY);return{main:r,fallback:{originX:o,originY:s}}}_getOverlayPosition(){const e=!this._dir||"ltr"==this._dir.value,i=this.position;let r;"above"==i?r={overlayX:"center",overlayY:"bottom"}:"below"==i?r={overlayX:"center",overlayY:"top"}:"before"==i||"left"==i&&e||"right"==i&&!e?r={overlayX:"end",overlayY:"center"}:("after"==i||"right"==i&&e||"left"==i&&!e)&&(r={overlayX:"start",overlayY:"center"});const{x:o,y:s}=this._invertPosition(r.overlayX,r.overlayY);return{main:r,fallback:{overlayX:o,overlayY:s}}}_updateTooltipMessage(){this._tooltipInstance&&(this._tooltipInstance.message=this.message,this._tooltipInstance._markForCheck(),this._ngZone.onMicrotaskEmpty.pipe(zo(1),to(this._destroyed)).subscribe(()=>{this._tooltipInstance&&this._overlayRef.updatePosition()}))}_setTooltipClass(e){this._tooltipInstance&&(this._tooltipInstance.tooltipClass=e,this._tooltipInstance._markForCheck())}_invertPosition(e,i){return"above"===this.position||"below"===this.position?"top"===i?i="bottom":"bottom"===i&&(i="top"):"end"===e?e="start":"start"===e&&(e="end"),{x:e,y:i}}_updateCurrentPositionClass(e){const{overlayY:i,originX:r,originY:o}=e;let s;if(s="center"===i?this._dir&&"rtl"===this._dir.value?"end"===r?"left":"right":"start"===r?"left":"right":"bottom"===i&&"top"===o?"above":"below",s!==this._currentPosition){const a=this._overlayRef;if(a){const l=`${this._cssClassPrefix}-${QY}-`;a.removePanelClass(l+this._currentPosition),a.addPanelClass(l+s)}this._currentPosition=s}}_setupPointerEnterEventsIfNeeded(){this._disabled||!this.message||!this._viewInitialized||this._passiveListeners.length||(this._platformSupportsMouseEvents()?this._passiveListeners.push(["mouseenter",e=>{let i;this._setupPointerExitEventsIfNeeded(),void 0!==e.x&&void 0!==e.y&&(i=e),this.show(void 0,i)}]):"off"!==this.touchGestures&&(this._disableNativeGesturesIfNecessary(),this._passiveListeners.push(["touchstart",e=>{const i=e.targetTouches?.[0],r=i?{x:i.clientX,y:i.clientY}:void 0;this._setupPointerExitEventsIfNeeded(),clearTimeout(this._touchstartTimeout),this._touchstartTimeout=setTimeout(()=>this.show(void 0,r),this._defaultOptions.touchLongPressShowDelay??500)}])),this._addListeners(this._passiveListeners))}_setupPointerExitEventsIfNeeded(){if(this._pointerExitEventsInitialized)return;this._pointerExitEventsInitialized=!0;const e=[];if(this._platformSupportsMouseEvents())e.push(["mouseleave",i=>{const r=i.relatedTarget;(!r||!this._overlayRef?.overlayElement.contains(r))&&this.hide()}],["wheel",i=>this._wheelListener(i)]);else if("off"!==this.touchGestures){this._disableNativeGesturesIfNecessary();const i=()=>{clearTimeout(this._touchstartTimeout),this.hide(this._defaultOptions.touchendHideDelay)};e.push(["touchend",i],["touchcancel",i])}this._addListeners(e),this._passiveListeners.push(...e)}_addListeners(e){e.forEach(([i,r])=>{this._elementRef.nativeElement.addEventListener(i,r,zY)})}_platformSupportsMouseEvents(){return!this._platform.IOS&&!this._platform.ANDROID}_wheelListener(e){if(this._isTooltipVisible()){const i=this._document.elementFromPoint(e.clientX,e.clientY),r=this._elementRef.nativeElement;i!==r&&!r.contains(i)&&this.hide()}}_disableNativeGesturesIfNecessary(){const e=this.touchGestures;if("off"!==e){const i=this._elementRef.nativeElement,r=i.style;("on"===e||"INPUT"!==i.nodeName&&"TEXTAREA"!==i.nodeName)&&(r.userSelect=r.msUserSelect=r.webkitUserSelect=r.MozUserSelect="none"),("on"===e||!i.draggable)&&(r.webkitUserDrag="none"),r.touchAction="none",r.webkitTapHighlightColor="transparent"}}static{this.\u0275fac=function(i){return new(i||n)($(Rs),$(Vn),$(TG),$(ua),$(kn),$(eo),$(xve),$(Ch),$(VY),$(wh),$(aDe,8),$(Bi))}}static{this.\u0275dir=$t({type:n,selectors:[["","matTooltip",""]],hostAttrs:[1,"mat-mdc-tooltip-trigger"],hostVars:2,hostBindings:function(i,r){2&i&&Qn("mat-mdc-tooltip-disabled",r.disabled)},inputs:{position:[Ct.None,"matTooltipPosition","position"],positionAtOrigin:[Ct.None,"matTooltipPositionAtOrigin","positionAtOrigin"],disabled:[Ct.None,"matTooltipDisabled","disabled"],showDelay:[Ct.None,"matTooltipShowDelay","showDelay"],hideDelay:[Ct.None,"matTooltipHideDelay","hideDelay"],touchGestures:[Ct.None,"matTooltipTouchGestures","touchGestures"],message:[Ct.None,"matTooltip","message"],tooltipClass:[Ct.None,"matTooltipClass","tooltipClass"]},exportAs:["matTooltip"],standalone:!0})}}return n})(),hDe=(()=>{class n{constructor(e,i,r){this._changeDetectorRef=e,this._elementRef=i,this._isMultiline=!1,this._closeOnInteraction=!1,this._isVisible=!1,this._onHide=new Hn,this._showAnimation="mat-mdc-tooltip-show",this._hideAnimation="mat-mdc-tooltip-hide",this._animationsDisabled="NoopAnimations"===r}show(e){null!=this._hideTimeoutId&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=setTimeout(()=>{this._toggleVisibility(!0),this._showTimeoutId=void 0},e)}hide(e){null!=this._showTimeoutId&&clearTimeout(this._showTimeoutId),this._hideTimeoutId=setTimeout(()=>{this._toggleVisibility(!1),this._hideTimeoutId=void 0},e)}afterHidden(){return this._onHide}isVisible(){return this._isVisible}ngOnDestroy(){this._cancelPendingAnimations(),this._onHide.complete(),this._triggerElement=null}_handleBodyInteraction(){this._closeOnInteraction&&this.hide(0)}_markForCheck(){this._changeDetectorRef.markForCheck()}_handleMouseLeave({relatedTarget:e}){(!e||!this._triggerElement.contains(e))&&(this.isVisible()?this.hide(this._mouseLeaveHideDelay):this._finalizeAnimation(!1))}_onShow(){this._isMultiline=this._isTooltipMultiline(),this._markForCheck()}_isTooltipMultiline(){const e=this._elementRef.nativeElement.getBoundingClientRect();return e.height>24&&e.width>=200}_handleAnimationEnd({animationName:e}){(e===this._showAnimation||e===this._hideAnimation)&&this._finalizeAnimation(e===this._showAnimation)}_cancelPendingAnimations(){null!=this._showTimeoutId&&clearTimeout(this._showTimeoutId),null!=this._hideTimeoutId&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=this._hideTimeoutId=void 0}_finalizeAnimation(e){e?this._closeOnInteraction=!0:this.isVisible()||this._onHide.next()}_toggleVisibility(e){const i=this._tooltip.nativeElement,r=this._showAnimation,o=this._hideAnimation;if(i.classList.remove(e?o:r),i.classList.add(e?r:o),this._isVisible=e,e&&!this._animationsDisabled&&"function"==typeof getComputedStyle){const s=getComputedStyle(i);("0s"===s.getPropertyValue("animation-duration")||"none"===s.getPropertyValue("animation-name"))&&(this._animationsDisabled=!0)}e&&this._onShow(),this._animationsDisabled&&(i.classList.add("_mat-animation-noopable"),this._finalizeAnimation(e))}static{this.\u0275fac=function(i){return new(i||n)($(_o),$(Vn),$(ps,8))}}static{this.\u0275cmp=vt({type:n,selectors:[["mat-tooltip-component"]],viewQuery:function(i,r){if(1&i&&ei(iDe,7),2&i){let o;un(o=hn())&&(r._tooltip=o.first)}},hostAttrs:["aria-hidden","true"],hostVars:2,hostBindings:function(i,r){1&i&&We("mouseleave",function(s){return r._handleMouseLeave(s)}),2&i&&Hi("zoom",r.isVisible()?1:null)},standalone:!0,features:[Or],decls:4,vars:4,consts:[["tooltip",""],[1,"mdc-tooltip","mdc-tooltip--shown","mat-mdc-tooltip",3,"animationend","ngClass"],[1,"mdc-tooltip__surface","mdc-tooltip__surface-animation"]],template:function(i,r){if(1&i){const o=Pn();P(0,"div",1,0),We("animationend",function(a){return Vt(o),Ot(r._handleAnimationEnd(a))}),P(2,"div",2),we(3),H()()}2&i&&(Qn("mdc-tooltip--multiline",r._isMultiline),pe("ngClass",r.tooltipClass),U(3),Mr(r.message))},dependencies:[Kd],styles:['.mdc-tooltip__surface{word-break:break-all;word-break:var(--mdc-tooltip-word-break, normal);overflow-wrap:anywhere}.mdc-tooltip--showing-transition .mdc-tooltip__surface-animation{transition:opacity 150ms 0ms cubic-bezier(0, 0, 0.2, 1),transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-tooltip--hide-transition .mdc-tooltip__surface-animation{transition:opacity 75ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mdc-tooltip{position:fixed;display:none;z-index:9}.mdc-tooltip-wrapper--rich{position:relative}.mdc-tooltip--shown,.mdc-tooltip--showing,.mdc-tooltip--hide{display:inline-flex}.mdc-tooltip--shown.mdc-tooltip--rich,.mdc-tooltip--showing.mdc-tooltip--rich,.mdc-tooltip--hide.mdc-tooltip--rich{display:inline-block;left:-320px;position:absolute}.mdc-tooltip__surface{line-height:16px;padding:4px 8px;min-width:40px;max-width:200px;min-height:24px;max-height:40vh;box-sizing:border-box;overflow:hidden;text-align:center}.mdc-tooltip__surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}@media screen and (forced-colors: active){.mdc-tooltip__surface::before{border-color:CanvasText}}.mdc-tooltip--rich .mdc-tooltip__surface{align-items:flex-start;display:flex;flex-direction:column;min-height:24px;min-width:40px;max-width:320px;position:relative}.mdc-tooltip--multiline .mdc-tooltip__surface{text-align:left}[dir=rtl] .mdc-tooltip--multiline .mdc-tooltip__surface,.mdc-tooltip--multiline .mdc-tooltip__surface[dir=rtl]{text-align:right}.mdc-tooltip__surface .mdc-tooltip__title{margin:0 8px}.mdc-tooltip__surface .mdc-tooltip__content{max-width:calc(200px - 2*8px);margin:8px;text-align:left}[dir=rtl] .mdc-tooltip__surface .mdc-tooltip__content,.mdc-tooltip__surface .mdc-tooltip__content[dir=rtl]{text-align:right}.mdc-tooltip--rich .mdc-tooltip__surface .mdc-tooltip__content{max-width:calc(320px - 2*8px);align-self:stretch}.mdc-tooltip__surface .mdc-tooltip__content-link{text-decoration:none}.mdc-tooltip--rich-actions,.mdc-tooltip__content,.mdc-tooltip__title{z-index:1}.mdc-tooltip__surface-animation{opacity:0;transform:scale(0.8);will-change:transform,opacity}.mdc-tooltip--shown .mdc-tooltip__surface-animation{transform:scale(1);opacity:1}.mdc-tooltip--hide .mdc-tooltip__surface-animation{transform:scale(1)}.mdc-tooltip__caret-surface-top,.mdc-tooltip__caret-surface-bottom{position:absolute;height:24px;width:24px;transform:rotate(35deg) skewY(20deg) scaleX(0.9396926208)}.mdc-tooltip__caret-surface-top .mdc-elevation-overlay,.mdc-tooltip__caret-surface-bottom .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-tooltip__caret-surface-bottom{box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);outline:1px solid rgba(0,0,0,0);z-index:-1}@media screen and (forced-colors: active){.mdc-tooltip__caret-surface-bottom{outline-color:CanvasText}}.mat-mdc-tooltip .mdc-tooltip__surface{background-color:var(--mdc-plain-tooltip-container-color)}.mat-mdc-tooltip .mdc-tooltip__surface{border-radius:var(--mdc-plain-tooltip-container-shape)}.mat-mdc-tooltip .mdc-tooltip__caret-surface-top,.mat-mdc-tooltip .mdc-tooltip__caret-surface-bottom{border-radius:var(--mdc-plain-tooltip-container-shape)}.mat-mdc-tooltip .mdc-tooltip__surface{color:var(--mdc-plain-tooltip-supporting-text-color)}.mat-mdc-tooltip .mdc-tooltip__surface{font-family:var(--mdc-plain-tooltip-supporting-text-font);line-height:var(--mdc-plain-tooltip-supporting-text-line-height);font-size:var(--mdc-plain-tooltip-supporting-text-size);font-weight:var(--mdc-plain-tooltip-supporting-text-weight);letter-spacing:var(--mdc-plain-tooltip-supporting-text-tracking)}.mat-mdc-tooltip{position:relative;transform:scale(0)}.mat-mdc-tooltip::before{content:"";top:0;right:0;bottom:0;left:0;z-index:-1;position:absolute}.mat-mdc-tooltip-panel-below .mat-mdc-tooltip::before{top:-8px}.mat-mdc-tooltip-panel-above .mat-mdc-tooltip::before{bottom:-8px}.mat-mdc-tooltip-panel-right .mat-mdc-tooltip::before{left:-8px}.mat-mdc-tooltip-panel-left .mat-mdc-tooltip::before{right:-8px}.mat-mdc-tooltip._mat-animation-noopable{animation:none;transform:scale(1)}.mat-mdc-tooltip-panel.mat-mdc-tooltip-panel-non-interactive{pointer-events:none}@keyframes mat-mdc-tooltip-show{0%{opacity:0;transform:scale(0.8)}100%{opacity:1;transform:scale(1)}}@keyframes mat-mdc-tooltip-hide{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(0.8)}}.mat-mdc-tooltip-show{animation:mat-mdc-tooltip-show 150ms cubic-bezier(0, 0, 0.2, 1) forwards}.mat-mdc-tooltip-hide{animation:mat-mdc-tooltip-hide 75ms cubic-bezier(0.4, 0, 1, 1) forwards}'],encapsulation:2,changeDetection:0})}}return n})(),GY=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({providers:[oDe],imports:[eR,gn,T1,hr,hr,x1]})}}return n})();const Im=Zt(bh,n=>Jd(n)),fDe=Zt(Tm,n=>{if(n)return{all:n.attributes?.unary??0,added:n.fileCount?.added??0,removed:n.fileCount?.removed??0,changed:n.fileCount?.changed??0}});function mDe(n,t){if(1&n&&(P(0,"span",2),we(1," | "),P(2,"span",3),we(3),H(),we(4," | "),P(5,"span",4),we(6),H(),we(7," | "),P(8,"span",5),we(9),H()()),2&n){const e=He();U(3),cn(" \u0394",e.added,""),U(3),cn(" \u0394",e.removed>0?-e.removed:0,""),U(3),cn(" \u0394",e.changed,"")}}function pDe(n,t){if(1&n&&(P(0,"span",2),we(1),At(2,mDe,10,3,"span",2),$e(3,"async"),we(4," ) "),H()),2&n){const e=t,i=He(2);U(),lh(" ( ",e.all," ",1===e.all?"file":"files"," "),U(),It(2,null!=i.node.children&&i.node.children.length&&rt(3,3,i.isDeltaMode$)?2:-1)}}function ADe(n,t){if(1&n&&(P(0,"span",1),we(1),At(2,pDe,5,5,"span",2),$e(3,"async"),H()),2&n){let e;const i=He();U(),cn(" ",i.node.path," "),U(),It(2,(e=rt(3,2,(null==i.node.children?null:i.node.children.length)&&i.fileCount$))?2:-1,e)}}let gDe=(()=>{class n{constructor(e){this.fileCount$=e.select(fDe),this.isDeltaMode$=e.select(Im)}static{this.\u0275fac=function(i){return new(i||n)($(Xt))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-node-path"]],inputs:{node:"node"},decls:2,vars:1,consts:[[1,"cc-node-path"],[1,"file-path"],[1,"cc-node-file-count"],["title","Number of added files",1,"added-files"],["title","Number of removed files",1,"removed-files"],["title","Number of files with metric changes",1,"files-with-metric-changes"]],template:function(i,r){1&i&&(P(0,"p",0),At(1,ADe,4,4,"span",1),H()),2&i&&(U(),It(1,r.node?1:-1))},dependencies:[Yn],styles:[".cc-node-path[_ngcontent-%COMP%]{color:gray;margin:5px 0}.cc-node-path[_ngcontent-%COMP%] .file-path[_ngcontent-%COMP%]{word-wrap:break-word}.cc-node-path[_ngcontent-%COMP%] .cc-node-file-count[_ngcontent-%COMP%]{background:#f0f0f0;border-radius:3px;padding:1px 3px;color:#000}.cc-node-path[_ngcontent-%COMP%] .cc-node-file-count[_ngcontent-%COMP%] .added-files[_ngcontent-%COMP%]{color:#64d051}.cc-node-path[_ngcontent-%COMP%] .cc-node-file-count[_ngcontent-%COMP%] .removed-files[_ngcontent-%COMP%]{color:#ff0e0e}.cc-node-path[_ngcontent-%COMP%] .cc-node-file-count[_ngcontent-%COMP%] .changed-files[_ngcontent-%COMP%]{color:#0e2eff}"]})}}return n})(),ZL=(()=>{class n{transform(e){return Em.withoutCCExtension(e)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=dr({name:"removeExtension",type:n,pure:!0})}}return n})();function _De(n,t){if(1&n&&(P(0,"div",1)(1,"a",4)(2,"h2"),we(3),H(),xe(4,"i",5),H()()),2&n){const e=He(2);ka("matTooltip",e.node.link),pe("matTooltipShowDelay",200),U(),ka("href",e.node.link,Sp),U(2),cn("",e.node.name,"\xa0")}}function bDe(n,t){if(1&n){const e=Pn();P(0,"i",0),We("click",function(){return Vt(e),Ot(He().closeSideBar())}),H(),At(1,_De,5,4,"div",1),P(2,"p",2),we(3),$e(4,"removeExtension"),H(),xe(5,"cc-node-path",3)}if(2&n){const e=He();U(),It(1,e.node.link?1:-1),U(2),Mr(rt(4,3,e.fileName)),U(2),pe("node",e.node)}}let vDe=(()=>{class n{constructor(e){this.isAttributeSideBarVisibleService=e}closeSideBar(){this.isAttributeSideBarVisibleService.isOpen=!1}static{this.\u0275fac=function(i){return new(i||n)($(cT))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-attribute-side-bar-header-section"]],inputs:{node:"node",fileName:"fileName"},decls:1,vars:1,consts:[[1,"close-icon","fa","fa-times",3,"click"],["data-testid","file-link",1,"node-name",3,"matTooltip","matTooltipShowDelay"],[1,"node-origin"],[3,"node"],["target","_blank","rel","noopener noreferrer",1,"node-link",3,"href"],[1,"fa","fa-external-link"]],template:function(i,r){1&i&&At(0,bDe,6,5),2&i&&It(0,r.node?0:-1)},dependencies:[qY,gDe,ZL],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column}[_nghost-%COMP%] .close-icon[_ngcontent-%COMP%], [_nghost-%COMP%] .node-link[_ngcontent-%COMP%]{color:gray;padding:0;cursor:pointer;outline:none;transition:.2s}[_nghost-%COMP%] .close-icon[_ngcontent-%COMP%]:hover, [_nghost-%COMP%] .node-link[_ngcontent-%COMP%]:hover{color:#444}[_nghost-%COMP%] .close-icon[_ngcontent-%COMP%]{align-self:flex-end;font-size:20px}[_nghost-%COMP%] .node-name[_ngcontent-%COMP%]{width:90%;cursor:pointer}[_nghost-%COMP%] .node-name[_ngcontent-%COMP%] .node-link[_ngcontent-%COMP%]{font-size:11pt}[_nghost-%COMP%] .node-name[_ngcontent-%COMP%] .node-link[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{color:#000;display:inline}[_nghost-%COMP%] .node-origin[_ngcontent-%COMP%], [_nghost-%COMP%] .cc-node-path[_ngcontent-%COMP%]{color:gray;margin:5px 0}[_nghost-%COMP%] .node-origin[_ngcontent-%COMP%] .file-path[_ngcontent-%COMP%], [_nghost-%COMP%] .cc-node-path[_ngcontent-%COMP%] .file-path[_ngcontent-%COMP%]{word-wrap:break-word}[_nghost-%COMP%] .node-origin[_ngcontent-%COMP%] .cc-node-file-count[_ngcontent-%COMP%], [_nghost-%COMP%] .cc-node-path[_ngcontent-%COMP%] .cc-node-file-count[_ngcontent-%COMP%]{background:#f0f0f0;border-radius:3px;padding:1px 3px;color:#000}[_nghost-%COMP%] .node-origin[_ngcontent-%COMP%] .cc-node-file-count[_ngcontent-%COMP%] .added-files[_ngcontent-%COMP%], [_nghost-%COMP%] .cc-node-path[_ngcontent-%COMP%] .cc-node-file-count[_ngcontent-%COMP%] .added-files[_ngcontent-%COMP%]{color:#64d051}[_nghost-%COMP%] .node-origin[_ngcontent-%COMP%] .cc-node-file-count[_ngcontent-%COMP%] .removed-files[_ngcontent-%COMP%], [_nghost-%COMP%] .cc-node-path[_ngcontent-%COMP%] .cc-node-file-count[_ngcontent-%COMP%] .removed-files[_ngcontent-%COMP%]{color:#ff0e0e}[_nghost-%COMP%] .node-origin[_ngcontent-%COMP%] .cc-node-file-count[_ngcontent-%COMP%] .changed-files[_ngcontent-%COMP%], [_nghost-%COMP%] .cc-node-path[_ngcontent-%COMP%] .cc-node-file-count[_ngcontent-%COMP%] .changed-files[_ngcontent-%COMP%]{color:#0e2eff}"]})}}return n})();const JL=Zt(Tm,n=>n&&!Ro(n)),rb=Zt(tc,n=>n.areaMetric),Xh=Zt(tc,n=>n.edgeMetric),Pw=Zt(tc,n=>n.heightMetric),hT=Zt(rb,Pw,Sm,Xh,(n,t,e,i)=>({areaMetric:n,heightMetric:t,colorMetric:e,edgeMetric:i})),yDe=Zt(Tm,hT,(n,t)=>{if(n)return{area:{name:t.areaMetric,value:n.attributes[t.areaMetric]},height:{name:t.heightMetric,value:n.attributes[t.heightMetric]},color:{name:t.colorMetric,value:n.attributes[t.colorMetric]},edge:wDe(t.edgeMetric,n)}});function wDe(n,t){return null==n?null:{name:n,incoming:t.edgeAttributes[n]?.incoming,outgoing:t.edgeAttributes[n]?.outgoing}}const fT=Zt(A1,n=>n.attributeDescriptors);class mT{get selected(){return this._selected||(this._selected=Array.from(this._selection.values())),this._selected}constructor(t=!1,e,i=!0,r){this._multiple=t,this._emitChanges=i,this.compareWith=r,this._selection=new Set,this._deselectedToEmit=[],this._selectedToEmit=[],this.changed=new Hn,e&&e.length&&(t?e.forEach(o=>this._markSelected(o)):this._markSelected(e[0]),this._selectedToEmit.length=0)}select(...t){this._verifyValueAssignment(t),t.forEach(i=>this._markSelected(i));const e=this._hasQueuedChanges();return this._emitChangeEvent(),e}deselect(...t){this._verifyValueAssignment(t),t.forEach(i=>this._unmarkSelected(i));const e=this._hasQueuedChanges();return this._emitChangeEvent(),e}setSelection(...t){this._verifyValueAssignment(t);const e=this.selected,i=new Set(t);t.forEach(o=>this._markSelected(o)),e.filter(o=>!i.has(this._getConcreteValue(o,i))).forEach(o=>this._unmarkSelected(o));const r=this._hasQueuedChanges();return this._emitChangeEvent(),r}toggle(t){return this.isSelected(t)?this.deselect(t):this.select(t)}clear(t=!0){this._unmarkAll();const e=this._hasQueuedChanges();return t&&this._emitChangeEvent(),e}isSelected(t){return this._selection.has(this._getConcreteValue(t))}isEmpty(){return 0===this._selection.size}hasValue(){return!this.isEmpty()}sort(t){this._multiple&&this.selected&&this._selected.sort(t)}isMultipleSelection(){return this._multiple}_emitChangeEvent(){this._selected=null,(this._selectedToEmit.length||this._deselectedToEmit.length)&&(this.changed.next({source:this,added:this._selectedToEmit,removed:this._deselectedToEmit}),this._deselectedToEmit=[],this._selectedToEmit=[])}_markSelected(t){t=this._getConcreteValue(t),this.isSelected(t)||(this._multiple||this._unmarkAll(),this.isSelected(t)||this._selection.add(t),this._emitChanges&&this._selectedToEmit.push(t))}_unmarkSelected(t){t=this._getConcreteValue(t),this.isSelected(t)&&(this._selection.delete(t),this._emitChanges&&this._deselectedToEmit.push(t))}_unmarkAll(){this.isEmpty()||this._selection.forEach(t=>this._unmarkSelected(t))}_verifyValueAssignment(t){}_hasQueuedChanges(){return!(!this._deselectedToEmit.length&&!this._selectedToEmit.length)}_getConcreteValue(t,e){if(this.compareWith){e=e??this._selection;for(let i of e)if(this.compareWith(t,i))return i;return t}return t}}let WY=(()=>{class n{constructor(){this._listeners=[]}notify(e,i){for(let r of this._listeners)r(e,i)}listen(e){return this._listeners.push(e),()=>{this._listeners=this._listeners.filter(i=>e!==i)}}ngOnDestroy(){this._listeners=[]}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();const MDe=["button"],EDe=["*"];function SDe(n,t){1&n&&xe(0,"mat-pseudo-checkbox",3),2&n&&pe("disabled",He().disabled)}function TDe(n,t){1&n&&xe(0,"mat-pseudo-checkbox",3),2&n&&pe("disabled",He().disabled)}const $Y=new ut("MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS",{providedIn:"root",factory:function IDe(){return{hideSingleSelectionIndicator:!1,hideMultipleSelectionIndicator:!1}}}),jY=new ut("MatButtonToggleGroup"),FDe={provide:qs,useExisting:Jn(()=>eO),multi:!0};let XY=0;class KY{constructor(t,e){this.source=t,this.value=e}}let eO=(()=>{class n{get name(){return this._name}set name(e){this._name=e,this._markButtonsForCheck()}get value(){const e=this._selectionModel?this._selectionModel.selected:[];return this.multiple?e.map(i=>i.value):e[0]?e[0].value:void 0}set value(e){this._setSelectionByValue(e),this.valueChange.emit(this.value)}get selected(){const e=this._selectionModel?this._selectionModel.selected:[];return this.multiple?e:e[0]||null}get multiple(){return this._multiple}set multiple(e){this._multiple=e,this._markButtonsForCheck()}get disabled(){return this._disabled}set disabled(e){this._disabled=e,this._markButtonsForCheck()}get hideSingleSelectionIndicator(){return this._hideSingleSelectionIndicator}set hideSingleSelectionIndicator(e){this._hideSingleSelectionIndicator=e,this._markButtonsForCheck()}get hideMultipleSelectionIndicator(){return this._hideMultipleSelectionIndicator}set hideMultipleSelectionIndicator(e){this._hideMultipleSelectionIndicator=e,this._markButtonsForCheck()}constructor(e,i){this._changeDetector=e,this._multiple=!1,this._disabled=!1,this._controlValueAccessorChangeFn=()=>{},this._onTouched=()=>{},this._name="mat-button-toggle-group-"+XY++,this.valueChange=new Bn,this.change=new Bn,this.appearance=i&&i.appearance?i.appearance:"standard",this.hideSingleSelectionIndicator=i?.hideSingleSelectionIndicator??!1,this.hideMultipleSelectionIndicator=i?.hideMultipleSelectionIndicator??!1}ngOnInit(){this._selectionModel=new mT(this.multiple,void 0,!1)}ngAfterContentInit(){this._selectionModel.select(...this._buttonToggles.filter(e=>e.checked))}writeValue(e){this.value=e,this._changeDetector.markForCheck()}registerOnChange(e){this._controlValueAccessorChangeFn=e}registerOnTouched(e){this._onTouched=e}setDisabledState(e){this.disabled=e}_emitChangeEvent(e){const i=new KY(e,this.value);this._rawValue=i.value,this._controlValueAccessorChangeFn(i.value),this.change.emit(i)}_syncButtonToggle(e,i,r=!1,o=!1){!this.multiple&&this.selected&&!e.checked&&(this.selected.checked=!1),this._selectionModel?i?this._selectionModel.select(e):this._selectionModel.deselect(e):o=!0,o?Promise.resolve().then(()=>this._updateModelValue(e,r)):this._updateModelValue(e,r)}_isSelected(e){return this._selectionModel&&this._selectionModel.isSelected(e)}_isPrechecked(e){return!(typeof this._rawValue>"u")&&(this.multiple&&Array.isArray(this._rawValue)?this._rawValue.some(i=>null!=e.value&&i===e.value):e.value===this._rawValue)}_setSelectionByValue(e){this._rawValue=e,this._buttonToggles&&(this.multiple&&e?(Array.isArray(e),this._clearSelection(),e.forEach(i=>this._selectValue(i))):(this._clearSelection(),this._selectValue(e)))}_clearSelection(){this._selectionModel.clear(),this._buttonToggles.forEach(e=>e.checked=!1)}_selectValue(e){const i=this._buttonToggles.find(r=>null!=r.value&&r.value===e);i&&(i.checked=!0,this._selectionModel.select(i))}_updateModelValue(e,i){i&&this._emitChangeEvent(e),this.valueChange.emit(this.value)}_markButtonsForCheck(){this._buttonToggles?.forEach(e=>e._markForCheck())}static{this.\u0275fac=function(i){return new(i||n)($(_o),$($Y,8))}}static{this.\u0275dir=$t({type:n,selectors:[["mat-button-toggle-group"]],contentQueries:function(i,r,o){if(1&i&&Vr(o,Rw,5),2&i){let s;un(s=hn())&&(r._buttonToggles=s)}},hostAttrs:["role","group",1,"mat-button-toggle-group"],hostVars:5,hostBindings:function(i,r){2&i&&(fi("aria-disabled",r.disabled),Qn("mat-button-toggle-vertical",r.vertical)("mat-button-toggle-group-appearance-standard","standard"===r.appearance))},inputs:{appearance:"appearance",name:"name",vertical:[Ct.HasDecoratorInputTransform,"vertical","vertical",Zn],value:"value",multiple:[Ct.HasDecoratorInputTransform,"multiple","multiple",Zn],disabled:[Ct.HasDecoratorInputTransform,"disabled","disabled",Zn],hideSingleSelectionIndicator:[Ct.HasDecoratorInputTransform,"hideSingleSelectionIndicator","hideSingleSelectionIndicator",Zn],hideMultipleSelectionIndicator:[Ct.HasDecoratorInputTransform,"hideMultipleSelectionIndicator","hideMultipleSelectionIndicator",Zn]},outputs:{valueChange:"valueChange",change:"change"},exportAs:["matButtonToggleGroup"],standalone:!0,features:[ui([FDe,{provide:jY,useExisting:n}]),es]})}}return n})(),Rw=(()=>{class n{get buttonId(){return`${this.id}-button`}get appearance(){return this.buttonToggleGroup?this.buttonToggleGroup.appearance:this._appearance}set appearance(e){this._appearance=e}get checked(){return this.buttonToggleGroup?this.buttonToggleGroup._isSelected(this):this._checked}set checked(e){e!==this._checked&&(this._checked=e,this.buttonToggleGroup&&this.buttonToggleGroup._syncButtonToggle(this,this._checked),this._changeDetectorRef.markForCheck())}get disabled(){return this._disabled||this.buttonToggleGroup&&this.buttonToggleGroup.disabled}set disabled(e){this._disabled=e}constructor(e,i,r,o,s,a){this._changeDetectorRef=i,this._elementRef=r,this._focusMonitor=o,this._checked=!1,this.ariaLabelledby=null,this._disabled=!1,this.change=new Bn;const l=Number(s);this.tabIndex=l||0===l?l:null,this.buttonToggleGroup=e,this.appearance=a&&a.appearance?a.appearance:"standard"}ngOnInit(){const e=this.buttonToggleGroup;this.id=this.id||"mat-button-toggle-"+XY++,e&&(e._isPrechecked(this)?this.checked=!0:e._isSelected(this)!==this._checked&&e._syncButtonToggle(this,this._checked))}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0)}ngOnDestroy(){const e=this.buttonToggleGroup;this._focusMonitor.stopMonitoring(this._elementRef),e&&e._isSelected(this)&&e._syncButtonToggle(this,!1,!1,!0)}focus(e){this._buttonElement.nativeElement.focus(e)}_onButtonClick(){const e=!!this._isSingleSelector()||!this._checked;e!==this._checked&&(this._checked=e,this.buttonToggleGroup&&(this.buttonToggleGroup._syncButtonToggle(this,this._checked,!0),this.buttonToggleGroup._onTouched())),this.change.emit(new KY(this,this.value))}_markForCheck(){this._changeDetectorRef.markForCheck()}_getButtonName(){return this._isSingleSelector()?this.buttonToggleGroup.name:this.name||null}_isSingleSelector(){return this.buttonToggleGroup&&!this.buttonToggleGroup.multiple}static{this.\u0275fac=function(i){return new(i||n)($(jY,8),$(_o),$(Vn),$(Ch),Ll("tabindex"),$($Y,8))}}static{this.\u0275cmp=vt({type:n,selectors:[["mat-button-toggle"]],viewQuery:function(i,r){if(1&i&&ei(MDe,5),2&i){let o;un(o=hn())&&(r._buttonElement=o.first)}},hostAttrs:["role","presentation",1,"mat-button-toggle"],hostVars:12,hostBindings:function(i,r){1&i&&We("focus",function(){return r.focus()}),2&i&&(fi("aria-label",null)("aria-labelledby",null)("id",r.id)("name",null),Qn("mat-button-toggle-standalone",!r.buttonToggleGroup)("mat-button-toggle-checked",r.checked)("mat-button-toggle-disabled",r.disabled)("mat-button-toggle-appearance-standard","standard"===r.appearance))},inputs:{ariaLabel:[Ct.None,"aria-label","ariaLabel"],ariaLabelledby:[Ct.None,"aria-labelledby","ariaLabelledby"],id:"id",name:"name",value:"value",tabIndex:"tabIndex",disableRipple:[Ct.HasDecoratorInputTransform,"disableRipple","disableRipple",Zn],appearance:"appearance",checked:[Ct.HasDecoratorInputTransform,"checked","checked",Zn],disabled:[Ct.HasDecoratorInputTransform,"disabled","disabled",Zn]},outputs:{change:"change"},exportAs:["matButtonToggle"],standalone:!0,features:[es,Or],ngContentSelectors:EDe,decls:8,vars:11,consts:[["button",""],["type","button",1,"mat-button-toggle-button","mat-focus-indicator",3,"click","id","disabled"],[1,"mat-button-toggle-label-content"],["state","checked","aria-hidden","true","appearance","minimal",1,"mat-mdc-option-pseudo-checkbox",3,"disabled"],[1,"mat-button-toggle-focus-overlay"],["matRipple","",1,"mat-button-toggle-ripple",3,"matRippleTrigger","matRippleDisabled"]],template:function(i,r){if(1&i){const o=Pn();$r(),P(0,"button",1,0),We("click",function(){return Vt(o),Ot(r._onButtonClick())}),P(2,"span",2),At(3,SDe,1,1,"mat-pseudo-checkbox",3)(4,TDe,1,1,"mat-pseudo-checkbox",3),Gn(5),H()(),xe(6,"span",4)(7,"span",5)}if(2&i){const o=Po(1);pe("id",r.buttonId)("disabled",r.disabled||null),fi("tabindex",r.disabled?-1:r.tabIndex)("aria-pressed",r.checked)("name",r._getButtonName())("aria-label",r.ariaLabel)("aria-labelledby",r.ariaLabelledby),U(3),It(3,r.buttonToggleGroup&&r.checked&&!r.buttonToggleGroup.multiple&&!r.buttonToggleGroup.hideSingleSelectionIndicator?3:-1),U(),It(4,r.buttonToggleGroup&&r.checked&&r.buttonToggleGroup.multiple&&!r.buttonToggleGroup.hideMultipleSelectionIndicator?4:-1),U(3),pe("matRippleTrigger",o)("matRippleDisabled",r.disableRipple||r.disabled)}},dependencies:[Mh,pW],styles:[".mat-button-toggle-standalone,.mat-button-toggle-group{position:relative;display:inline-flex;flex-direction:row;white-space:nowrap;overflow:hidden;-webkit-tap-highlight-color:rgba(0,0,0,0);transform:translateZ(0);border-radius:var(--mat-legacy-button-toggle-shape)}.mat-button-toggle-standalone:not([class*=mat-elevation-z]),.mat-button-toggle-group:not([class*=mat-elevation-z]){box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)}.cdk-high-contrast-active .mat-button-toggle-standalone,.cdk-high-contrast-active .mat-button-toggle-group{outline:solid 1px}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{border-radius:var(--mat-standard-button-toggle-shape);border:solid 1px var(--mat-standard-button-toggle-divider-color)}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard .mat-pseudo-checkbox,.mat-button-toggle-group-appearance-standard .mat-pseudo-checkbox{--mat-minimal-pseudo-checkbox-selected-checkmark-color: var( --mat-standard-button-toggle-selected-state-text-color )}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard:not([class*=mat-elevation-z]),.mat-button-toggle-group-appearance-standard:not([class*=mat-elevation-z]){box-shadow:none}.cdk-high-contrast-active .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.cdk-high-contrast-active .mat-button-toggle-group-appearance-standard{outline:0}.mat-button-toggle-vertical{flex-direction:column}.mat-button-toggle-vertical .mat-button-toggle-label-content{display:block}.mat-button-toggle{white-space:nowrap;position:relative;color:var(--mat-legacy-button-toggle-text-color);font-family:var(--mat-legacy-button-toggle-label-text-font);font-size:var(--mat-legacy-button-toggle-label-text-size);line-height:var(--mat-legacy-button-toggle-label-text-line-height);font-weight:var(--mat-legacy-button-toggle-label-text-weight);letter-spacing:var(--mat-legacy-button-toggle-label-text-tracking);--mat-minimal-pseudo-checkbox-selected-checkmark-color: var( --mat-legacy-button-toggle-selected-state-text-color )}.mat-button-toggle.cdk-keyboard-focused .mat-button-toggle-focus-overlay{opacity:var(--mat-legacy-button-toggle-focus-state-layer-opacity)}.mat-button-toggle .mat-icon svg{vertical-align:top}.mat-button-toggle .mat-pseudo-checkbox{margin-right:12px}[dir=rtl] .mat-button-toggle .mat-pseudo-checkbox{margin-right:0;margin-left:12px}.mat-button-toggle-checked{color:var(--mat-legacy-button-toggle-selected-state-text-color);background-color:var(--mat-legacy-button-toggle-selected-state-background-color)}.mat-button-toggle-disabled{color:var(--mat-legacy-button-toggle-disabled-state-text-color);background-color:var(--mat-legacy-button-toggle-disabled-state-background-color);--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: var( --mat-legacy-button-toggle-disabled-state-text-color )}.mat-button-toggle-disabled.mat-button-toggle-checked{background-color:var(--mat-legacy-button-toggle-disabled-selected-state-background-color)}.mat-button-toggle-appearance-standard{color:var(--mat-standard-button-toggle-text-color);background-color:var(--mat-standard-button-toggle-background-color);font-family:var(--mat-standard-button-toggle-label-text-font);font-size:var(--mat-standard-button-toggle-label-text-size);line-height:var(--mat-standard-button-toggle-label-text-line-height);font-weight:var(--mat-standard-button-toggle-label-text-weight);letter-spacing:var(--mat-standard-button-toggle-label-text-tracking)}.mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-left:solid 1px var(--mat-standard-button-toggle-divider-color)}[dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-left:none;border-right:solid 1px var(--mat-standard-button-toggle-divider-color)}.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-left:none;border-right:none;border-top:solid 1px var(--mat-standard-button-toggle-divider-color)}.mat-button-toggle-appearance-standard.mat-button-toggle-checked{color:var(--mat-standard-button-toggle-selected-state-text-color);background-color:var(--mat-standard-button-toggle-selected-state-background-color)}.mat-button-toggle-appearance-standard.mat-button-toggle-disabled{color:var(--mat-standard-button-toggle-disabled-state-text-color);background-color:var(--mat-standard-button-toggle-disabled-state-background-color)}.mat-button-toggle-appearance-standard.mat-button-toggle-disabled .mat-pseudo-checkbox{--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: var( --mat-standard-button-toggle-disabled-selected-state-text-color )}.mat-button-toggle-appearance-standard.mat-button-toggle-disabled.mat-button-toggle-checked{color:var(--mat-standard-button-toggle-disabled-selected-state-text-color);background-color:var(--mat-standard-button-toggle-disabled-selected-state-background-color)}.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{background-color:var(--mat-standard-button-toggle-state-layer-color)}.mat-button-toggle-appearance-standard:not(.mat-button-toggle-disabled):hover .mat-button-toggle-focus-overlay{opacity:var(--mat-standard-button-toggle-hover-state-layer-opacity)}.mat-button-toggle-appearance-standard.cdk-keyboard-focused:not(.mat-button-toggle-disabled) .mat-button-toggle-focus-overlay{opacity:var(--mat-standard-button-toggle-focus-state-layer-opacity)}@media(hover: none){.mat-button-toggle-appearance-standard:not(.mat-button-toggle-disabled):hover .mat-button-toggle-focus-overlay{display:none}}.mat-button-toggle-label-content{-webkit-user-select:none;user-select:none;display:inline-block;padding:0 16px;line-height:var(--mat-legacy-button-toggle-height);position:relative}.mat-button-toggle-appearance-standard .mat-button-toggle-label-content{padding:0 12px;line-height:var(--mat-standard-button-toggle-height)}.mat-button-toggle-label-content>*{vertical-align:middle}.mat-button-toggle-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:inherit;pointer-events:none;opacity:0;background-color:var(--mat-legacy-button-toggle-state-layer-color)}.cdk-high-contrast-active .mat-button-toggle-checked .mat-button-toggle-focus-overlay{border-bottom:solid 500px;opacity:.5;height:0}.cdk-high-contrast-active .mat-button-toggle-checked:hover .mat-button-toggle-focus-overlay{opacity:.6}.cdk-high-contrast-active .mat-button-toggle-checked.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{border-bottom:solid 500px}.mat-button-toggle .mat-button-toggle-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-button-toggle-button{border:0;background:none;color:inherit;padding:0;margin:0;font:inherit;outline:none;width:100%;cursor:pointer}.mat-button-toggle-disabled .mat-button-toggle-button{cursor:default}.mat-button-toggle-button::-moz-focus-inner{border:0}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard{--mat-focus-indicator-border-radius:var(--mat-standard-button-toggle-shape)}.mat-button-toggle-group-appearance-standard .mat-button-toggle:last-of-type .mat-button-toggle-button::before{border-top-right-radius:var(--mat-standard-button-toggle-shape);border-bottom-right-radius:var(--mat-standard-button-toggle-shape)}.mat-button-toggle-group-appearance-standard .mat-button-toggle:first-of-type .mat-button-toggle-button::before{border-top-left-radius:var(--mat-standard-button-toggle-shape);border-bottom-left-radius:var(--mat-standard-button-toggle-shape)}"],encapsulation:2,changeDetection:0})}}return n})(),YY=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[hr,e_,Rw,hr]})}}return n})(),tO=(()=>{class n{constructor(e){this.store=e,this.attributeTypes$=this.store.select(NL)}setToAbsolute(){this.setAttributeType(om.absolute)}setToRelative(){this.setAttributeType(om.relative)}setAttributeType(e){this.store.dispatch(iP({category:this.metricType,name:this.metricName,attributeType:e}))}static{this.\u0275fac=function(i){return new(i||n)($(Xt))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-attribute-type-selector"]],inputs:{metricName:"metricName",metricType:"metricType"},decls:6,vars:3,consts:[[3,"value"],["title","Select Sum","value","absolute",3,"click"],["title","Select Median","value","relative",3,"click"]],template:function(i,r){if(1&i&&(P(0,"mat-button-toggle-group",0),$e(1,"async"),P(2,"mat-button-toggle",1),We("click",function(){return r.setToAbsolute()}),we(3,"\u03a3"),H(),P(4,"mat-button-toggle",2),We("click",function(){return r.setToRelative()}),we(5,"x\u0342"),H()()),2&i){let o;pe("value",null!==(o=rt(1,1,r.attributeTypes$)[r.metricType][r.metricName])&&void 0!==o?o:"absolute")}},dependencies:[eO,Rw,Yn],encapsulation:2})}}return n})();function DDe(n,t){if(1&n&&(P(0,"span"),$e(1,"async"),we(2),$e(3,"number"),H()),2&n){const e=t;Hi("color",rt(1,3,He().mapColors$)[e>0?"positiveDelta":"negativeDelta"]),U(2),cn(" \u0394",Mo(3,5,e,"1.1-2")," ")}}let ZY=(()=>{class n{constructor(e){this.store=e}ngOnInit(){this.selectedNode$=this.store.select(Tm),this.mapColors$=this.store.select(eb)}static{this.\u0275fac=function(i){return new(i||n)($(Xt))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-metric-delta-selected"]],inputs:{metricName:"metricName"},decls:2,vars:3,consts:[[3,"color"]],template:function(i,r){if(1&i&&(At(0,DDe,4,8,"span",0),$e(1,"async")),2&i){let o;It(0,(o=null==(o=rt(1,1,r.selectedNode$))||null==o.deltas?null:o.deltas[r.metricName])?0:-1,o)}},dependencies:[Yn,Ty],styles:["[_nghost-%COMP%]:has(span){margin-top:5px}"]})}}return n})();function kDe(n,t){1&n&&xe(0,"cc-attribute-type-selector",2),2&n&&pe("metricName",He().metric.name)("metricType","nodes")}function BDe(n,t){if(1&n&&(P(0,"a",5),we(1),xe(2,"i",6),H()),2&n){const e=He();pe("href",t,Sp),U(),cn(" ",e.metric.name," ")}}function PDe(n,t){if(1&n&&(P(0,"span",7),we(1),H()),2&n){const e=He();U(),Mr(e.metric.name)}}let RDe=(()=>{class n{constructor(e){this.showAttributeTypeSelector$=e.select(JL)}static{this.\u0275fac=function(i){return new(i||n)($(Xt))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-attribute-side-bar-primary-metric"]],inputs:{iconName:"iconName",metric:"metric",metricLink:"metricLink"},decls:11,vars:11,consts:[[1,"primary-metric-box"],[1,"primary-metric-row"],[1,"attribute-type-select",3,"metricName","metricType"],[1,"primary-metric-value"],[3,"metricName"],["target","_blank",1,"metric-name",3,"href"],[1,"fa","fa-external-link"],[1,"metric-name"]],template:function(i,r){if(1&i&&(P(0,"div",0)(1,"div",1),xe(2,"i"),At(3,kDe,1,2,"cc-attribute-type-selector",2),$e(4,"async"),P(5,"span",3),we(6),$e(7,"number"),H()(),xe(8,"cc-metric-delta-selected",4),At(9,BDe,3,2,"a",5)(10,PDe,2,1),H()),2&i){let o;U(2),nl(r.iconName),U(),It(3,rt(4,6,r.showAttributeTypeSelector$)?3:-1),U(3),Mr(Mo(7,8,r.metric.value,"1.0-0")),U(2),pe("metricName",r.metric.name),U(),It(9,(o=r.metricLink)?9:10,o)}},dependencies:[tO,ZY,Yn,Ty],styles:[".primary-metric-box[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;width:100%}.primary-metric-row[_ngcontent-%COMP%]{display:flex;align-items:center;flex-wrap:wrap;gap:5px}.metric-name[_ngcontent-%COMP%]{margin-top:5px;color:gray;word-break:break-word;vertical-align:middle}.primary-metric-value[_ngcontent-%COMP%]{margin-right:-5px}i.fa[_ngcontent-%COMP%]{font-size:12pt;min-width:17px;text-align:center}"]})}}return n})();const ob=new Map([["loc","Lines of Code"],["rloc","Real Lines of Code"],["comment_lines","Number of Code Lines with Comments"],["complexity","Cyclomatic Complexity"],["mcc","McCabe Complexity"],["avgCommits","Average Number of Commits from this file"],["functions","Number of Functions"],["pairingRate","Pairing Rate of selected building"],["unary","-"],["line_coverage","Number of Code Lines covered by tests"],["sonar_code_smells","Number of Smells Sonar has identified"],["avg_code_churn","Average Number of Lines added or removed from this file"],["number_of_authors","Number of Authors that have edited this file"],["statements","Number of Statements"]]);let pT=(()=>{class n{transform(e,i){if(null==e)return ob.get(i)??"";const r=e.title?`${e.title} (${i})`:`${i}`;let o=e.description?`\n${e.description}`:"";return o+=e.hintHighValue?`\nHigh Values: ${e.hintHighValue}`:"",o+=e.hintLowValue?`\nLow Values: ${e.hintLowValue}`:"",o.length>0?`${r}:${o}`:r}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=dr({name:"attributeDescriptorTooltip",type:n,pure:!0})}}return n})();function LDe(n,t){1&n&&xe(0,"cc-attribute-type-selector",8),2&n&&pe("metricName",He().name)("metricType","edges")}function ODe(n,t){if(1&n&&(P(0,"a",9),we(1),xe(2,"i",10),H()),2&n){const e=He();pe("href",t,Sp),U(),cn(" ",e.name," (in/out) ")}}function NDe(n,t){if(1&n&&(P(0,"span",11),we(1),H()),2&n){const e=He();U(),cn("",e.name," (in/out)")}}function UDe(n,t){if(1&n&&(P(0,"td",3),$e(1,"attributeDescriptorTooltip"),P(2,"div",5)(3,"div",6),xe(4,"i",7),At(5,LDe,1,2,"cc-attribute-type-selector",8),$e(6,"async"),P(7,"span"),we(8),$e(9,"number"),P(10,"span"),we(11,"/"),H(),we(12),$e(13,"number"),H()(),At(14,ODe,3,2,"a",9)(15,NDe,2,1),H()()),2&n){let e;const i=t,r=He(2),o=He();pe("title",Mo(1,5,r[i.name],i.name)),U(5),It(5,rt(6,8,o.showAttributeTypeSelector$)?5:-1),U(3),cn(" ",Mo(9,10,i.incoming,"1.0-0")," "),U(4),cn(" ",Mo(13,13,i.outgoing,"1.0-0")," "),U(2),It(14,(e=null==r[i.name]?null:r[i.name].link)?14:15,e)}}function HDe(n,t){1&n&&(P(0,"td")(1,"span",11),we(2,"No edge metric available"),H()())}function VDe(n,t){if(1&n&&(P(0,"table",1)(1,"th",2),we(2,"Primary Metrics"),H(),P(3,"tr")(4,"td",3),$e(5,"attributeDescriptorTooltip"),xe(6,"cc-attribute-side-bar-primary-metric",4),H(),P(7,"td",3),$e(8,"attributeDescriptorTooltip"),xe(9,"cc-attribute-side-bar-primary-metric",4),H()(),P(10,"tr")(11,"td",3),$e(12,"attributeDescriptorTooltip"),xe(13,"cc-attribute-side-bar-primary-metric",4),H(),At(14,UDe,16,16,"td",3)(15,HDe,3,0),H()()),2&n){let e;const i=t,r=He();U(4),pe("title",Mo(5,13,r[i.area.name],i.area.name)),U(2),pe("iconName","fa fa-arrows-alt")("metric",i.area)("metricLink",null==r[i.area.name]?null:r[i.area.name].link),U(),pe("title",Mo(8,16,r[i.height.name],i.height.name)),U(2),pe("iconName","fa fa-arrows-v")("metric",i.height)("metricLink",null==r[i.height.name]?null:r[i.height.name].link),U(2),pe("title",Mo(12,19,r[i.color.name],i.color.name)),U(2),pe("iconName","fa fa-paint-brush")("metric",i.color)("metricLink",null==r[i.color.name]?null:r[i.color.name].link),U(),It(14,(e=i.edge)?14:15,e)}}function QDe(n,t){if(1&n&&(P(0,"div",0),At(1,VDe,16,22,"table",1),$e(2,"async"),H()),2&n){let e;const i=He();U(),It(1,(e=rt(2,1,i.primaryMetrics$))?1:-1,e)}}let zDe=(()=>{class n{constructor(e){this.store=e,this.primaryMetrics$=this.store.select(yDe),this.showAttributeTypeSelector$=this.store.select(JL),this.attributeDescriptors$=this.store.select(fT)}static{this.\u0275fac=function(i){return new(i||n)($(Xt))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-attribute-side-bar-primary-metrics"]],decls:2,vars:3,consts:[[1,"metric-box"],["aria-hidden","true",1,"primary-metrics"],["scope","col"],[3,"title"],[3,"iconName","metric","metricLink"],[1,"primary-metric-box"],[1,"primary-metric-row"],[1,"fa","fa-exchange"],[1,"attribute-type-select",3,"metricName","metricType"],["target","_blank",1,"metric-name",3,"href"],[1,"fa","fa-external-link"],[1,"metric-name"]],template:function(i,r){if(1&i&&(At(0,QDe,3,3,"div",0),$e(1,"async")),2&i){let o;It(0,(o=rt(1,1,r.attributeDescriptors$))?0:-1,o)}},dependencies:[tO,RDe,Yn,Ty,pT],styles:["[_nghost-%COMP%] .metric-box[_ngcontent-%COMP%] i.fa.fa-external-link[_ngcontent-%COMP%], [_nghost-%COMP%] .metrics-wrapper[_ngcontent-%COMP%] i.fa.fa-external-link[_ngcontent-%COMP%]{font-size:10px;min-width:10px;text-align:center}[_nghost-%COMP%] .metric-box[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:link, [_nghost-%COMP%] .metric-box[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:visited, [_nghost-%COMP%] .metrics-wrapper[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:link, [_nghost-%COMP%] .metrics-wrapper[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:visited{text-decoration:none}[_nghost-%COMP%] .metric-box[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover, [_nghost-%COMP%] .metrics-wrapper[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{color:#00f;-webkit-text-decoration:solid;text-decoration:solid;text-decoration-line:underline}[_nghost-%COMP%] .metric-box[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:active, [_nghost-%COMP%] .metrics-wrapper[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:active{color:red}.metric-box[_ngcontent-%COMP%]{border-radius:5px;background-color:#f0f0f0;padding:5px}.metric-box.scrollable-content[_ngcontent-%COMP%]{max-height:100%;overflow:auto}.metric-box[_ngcontent-%COMP%] table[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{text-align:left}.metric-box[_ngcontent-%COMP%] table.primary-metrics[_ngcontent-%COMP%]{table-layout:fixed;width:100%;border-collapse:collapse}.metric-box[_ngcontent-%COMP%] table.primary-metrics[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:not(:last-child) td[_ngcontent-%COMP%]{border-bottom:3px solid white}.metric-box[_ngcontent-%COMP%] table.primary-metrics[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:5px}.metric-box[_ngcontent-%COMP%] table.primary-metrics[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:first-child{border-right:3px solid white}.metric-box[_ngcontent-%COMP%] table.primary-metrics[_ngcontent-%COMP%] .primary-metric-box[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;width:100%}.metric-box[_ngcontent-%COMP%] table.primary-metrics[_ngcontent-%COMP%] .primary-metric-row[_ngcontent-%COMP%]{display:flex;align-items:center;flex-wrap:wrap;gap:5px}.metric-box[_ngcontent-%COMP%] table.primary-metrics[_ngcontent-%COMP%] i.fa[_ngcontent-%COMP%]{font-size:12pt;min-width:17px;text-align:center}.metric-box[_ngcontent-%COMP%] table.secondary-metrics[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding-left:5px}.metric-box[_ngcontent-%COMP%] table.secondary-metrics[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:first-child{padding-left:4px}.metric-box[_ngcontent-%COMP%] table.secondary-metrics[_ngcontent-%COMP%] .secondary-metric-box[_ngcontent-%COMP%]{border-radius:3px;padding:4px;vertical-align:middle;background:#d5d5d5}.metric-box[_ngcontent-%COMP%] table.secondary-metrics[_ngcontent-%COMP%] .secondary-metric-row[_ngcontent-%COMP%]{flex-wrap:nowrap}.metric-box[_ngcontent-%COMP%] table[_ngcontent-%COMP%] .metric-name[_ngcontent-%COMP%]{color:gray;word-break:break-word;vertical-align:middle;margin-top:5px}.metric-box[_ngcontent-%COMP%] table[_ngcontent-%COMP%] .delta-value-box[_ngcontent-%COMP%]{vertical-align:middle}.secondary-metric-row[_ngcontent-%COMP%]{display:flex;align-items:center;flex-wrap:wrap;gap:5px}"]})}}return n})();const qDe=Zt(Tm,n=>!!n?.deltas),GDe=Zt(hT,Tm,(n,t)=>{if(!t)return[];const e=Object.values(n);return Object.keys(t.attributes).filter(r=>"unary"!==r&&!e.includes(r)).sort((r,o)=>r.localeCompare(o)).map(r=>({name:r,value:t.attributes[r]}))});function WDe(n,t){1&n&&xe(0,"cc-attribute-type-selector",8),2&n&&pe("metricName",He().$implicit.name)("metricType","nodes")}function $De(n,t){if(1&n&&(P(0,"a",12),we(1),xe(2,"i",13),H()),2&n){const e=He().$implicit;pe("href",t,Sp),U(),cn(" ",e.name," ")}}function jDe(n,t){if(1&n&&(P(0,"span",14),we(1),H()),2&n){const e=He().$implicit;U(),Mr(e.name)}}function XDe(n,t){if(1&n&&(P(0,"tr",5),$e(1,"attributeDescriptorTooltip"),P(2,"td",6)(3,"div",7),At(4,WDe,1,2,"cc-attribute-type-selector",8),$e(5,"async"),P(6,"span",9),we(7),$e(8,"number"),H()()(),P(9,"td",10),$e(10,"async"),xe(11,"cc-metric-delta-selected",11),H(),P(12,"td"),At(13,$De,3,2,"a",12)(14,jDe,2,1),H()()),2&n){let e;const i=t.$implicit,r=He(),o=He();pe("title",Mo(1,6,r[i.name],i.name)),U(4),It(4,rt(5,9,o.showAttributeTypeSelector$)?4:-1),U(3),Mr(Mo(8,11,i.value,"1.0-0")),U(2),pe("hidden",!rt(10,14,o.showDeltaValue$)),U(2),pe("metricName",i.name),U(2),It(13,(e=null==r[i.name]?null:r[i.name].link)?13:14,e)}}function KDe(n,t){if(1&n&&(P(0,"div",2)(1,"table",3)(2,"tr")(3,"th",4),we(4,"Secondary Metrics"),H()(),Rr(5,XDe,15,16,"tr",5,Hr),$e(7,"async"),H()()),2&n){const e=He();U(5),Lr(rt(7,0,e.secondaryMetrics$))}}let YDe=(()=>{class n{constructor(e){this.store=e,this.secondaryMetrics$=this.store.select(GDe),this.showAttributeTypeSelector$=this.store.select(JL),this.showDeltaValue$=this.store.select(qDe),this.attributeDescriptors$=this.store.select(fT)}static{this.\u0275fac=function(i){return new(i||n)($(Xt))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-attribute-side-bar-secondary-metrics"]],decls:4,vars:3,consts:[[1,"secondary-metrics-wrapper"],[1,"metrics-wrapper"],[1,"metric-box","scrollable-content"],["aria-hidden","true",1,"secondary-metrics"],["scope","col","colspan","2"],[3,"title"],[1,"secondary-metric-box"],[1,"secondary-metric-row"],[1,"attribute-type-select",3,"metricName","metricType"],[1,"metric-value"],[1,"delta-value-box",3,"hidden"],[3,"metricName"],["target","_blank",1,"metric-name",3,"href"],[1,"fa","fa-external-link"],[1,"metric-name"]],template:function(i,r){if(1&i&&(P(0,"div",0)(1,"div",1),At(2,KDe,8,2,"div",2),$e(3,"async"),H()()),2&i){let o;U(2),It(2,(o=rt(3,1,r.attributeDescriptors$))?2:-1,o)}},dependencies:[tO,ZY,Yn,Ty,pT],styles:["[_nghost-%COMP%] .metric-box[_ngcontent-%COMP%] i.fa.fa-external-link[_ngcontent-%COMP%], [_nghost-%COMP%] .metrics-wrapper[_ngcontent-%COMP%] i.fa.fa-external-link[_ngcontent-%COMP%]{font-size:10px;min-width:10px;text-align:center}[_nghost-%COMP%] .metric-box[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:link, [_nghost-%COMP%] .metric-box[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:visited, [_nghost-%COMP%] .metrics-wrapper[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:link, [_nghost-%COMP%] .metrics-wrapper[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:visited{text-decoration:none}[_nghost-%COMP%] .metric-box[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover, [_nghost-%COMP%] .metrics-wrapper[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{color:#00f;-webkit-text-decoration:solid;text-decoration:solid;text-decoration-line:underline}[_nghost-%COMP%] .metric-box[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:active, [_nghost-%COMP%] .metrics-wrapper[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:active{color:red}.metric-box[_ngcontent-%COMP%]{border-radius:5px;background-color:#f0f0f0;padding:5px}.metric-box.scrollable-content[_ngcontent-%COMP%]{max-height:100%;overflow:auto}.metric-box[_ngcontent-%COMP%] table[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{text-align:left}.metric-box[_ngcontent-%COMP%] table.primary-metrics[_ngcontent-%COMP%]{table-layout:fixed;width:100%;border-collapse:collapse}.metric-box[_ngcontent-%COMP%] table.primary-metrics[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:not(:last-child) td[_ngcontent-%COMP%]{border-bottom:3px solid white}.metric-box[_ngcontent-%COMP%] table.primary-metrics[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:5px}.metric-box[_ngcontent-%COMP%] table.primary-metrics[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:first-child{border-right:3px solid white}.metric-box[_ngcontent-%COMP%] table.primary-metrics[_ngcontent-%COMP%] .primary-metric-box[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;width:100%}.metric-box[_ngcontent-%COMP%] table.primary-metrics[_ngcontent-%COMP%] .primary-metric-row[_ngcontent-%COMP%]{display:flex;align-items:center;flex-wrap:wrap;gap:5px}.metric-box[_ngcontent-%COMP%] table.primary-metrics[_ngcontent-%COMP%] i.fa[_ngcontent-%COMP%]{font-size:12pt;min-width:17px;text-align:center}.metric-box[_ngcontent-%COMP%] table.secondary-metrics[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding-left:5px}.metric-box[_ngcontent-%COMP%] table.secondary-metrics[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:first-child{padding-left:4px}.metric-box[_ngcontent-%COMP%] table.secondary-metrics[_ngcontent-%COMP%] .secondary-metric-box[_ngcontent-%COMP%]{border-radius:3px;padding:4px;vertical-align:middle;background:#d5d5d5}.metric-box[_ngcontent-%COMP%] table.secondary-metrics[_ngcontent-%COMP%] .secondary-metric-row[_ngcontent-%COMP%]{flex-wrap:nowrap}.metric-box[_ngcontent-%COMP%] table[_ngcontent-%COMP%] .metric-name[_ngcontent-%COMP%]{color:gray;word-break:break-word;vertical-align:middle;margin-top:5px}.metric-box[_ngcontent-%COMP%] table[_ngcontent-%COMP%] .delta-value-box[_ngcontent-%COMP%]{vertical-align:middle}.secondary-metric-row[_ngcontent-%COMP%]{display:flex;align-items:center;flex-wrap:wrap;gap:5px}",'.secondary-metrics-wrapper[_ngcontent-%COMP%]{position:relative}.secondary-metrics-wrapper[_ngcontent-%COMP%]:after{content:"";clear:both;display:block}.secondary-metrics-wrapper[_ngcontent-%COMP%] .metrics-wrapper[_ngcontent-%COMP%]{position:absolute;width:100%;height:100%;padding-top:12px}']})}}return n})(),ZDe=(()=>{class n{constructor(e,i){this.isAttributeSideBarVisibleService=e,this.store=i,this.selectedNode$=this.store.select(Tm),this.fileName$=this.store.select(Bc).pipe(Ge(r=>r.unifiedFileMeta?.fileName??""))}static{this.\u0275fac=function(i){return new(i||n)($(cT),$(Xt))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-attribute-side-bar"]],decls:6,vars:8,consts:[[1,"side-bar-container","cc-shadow"],[3,"node","fileName"]],template:function(i,r){1&i&&(P(0,"div",0),xe(1,"cc-attribute-side-bar-header-section",1),$e(2,"async"),$e(3,"async"),xe(4,"cc-attribute-side-bar-primary-metrics")(5,"cc-attribute-side-bar-secondary-metrics"),H()),2&i&&(Qn("expanded",r.isAttributeSideBarVisibleService.isOpen),U(),pe("node",rt(2,4,r.selectedNode$))("fileName",rt(3,6,r.fileName$)))},dependencies:[vDe,zDe,YDe,Yn],styles:['[_nghost-%COMP%] .side-bar-container[_ngcontent-%COMP%]{transition:right .3s ease;width:350px;height:calc(100% - 98px);padding:8px;font-size:11pt;position:absolute;right:-355px;background:#fff}[_nghost-%COMP%] .side-bar-container.expanded[_ngcontent-%COMP%]{display:block;right:0}[_nghost-%COMP%] .side-bar-container.cc-shadow[_ngcontent-%COMP%]{box-shadow:0 1px 5px #0003!important}[_nghost-%COMP%] .side-bar-container[_ngcontent-%COMP%]:before{content:"";height:100%;float:left}']})}}return n})(),JDe=(()=>{class n{constructor(e,i,r,o,s){this.isAttributeSideBarVisibleService=e,this.store=i,this.threeViewerService=r,this.codeMapMouseEventService=o,this.elementReference=s,this.isLoadingFile$=this.store.select(ZR),this.restartOnSharpnessModeChangesSubscription=this.store.select(mj).pipe(I1(1),Dr(()=>{this.threeViewerService.restart(this.elementReference.nativeElement.querySelector("#codeMap")),this.codeMapMouseEventService.start()})).subscribe()}ngAfterViewInit(){this.threeViewerService.init(this.elementReference.nativeElement.querySelector("#codeMap")),this.codeMapMouseEventService.start()}ngOnDestroy(){this.restartOnSharpnessModeChangesSubscription.unsubscribe()}static{this.\u0275fac=function(i){return new(i||n)($(cT),$(Xt),$(LY),$(Bw),$(Vn))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-code-map"]],decls:4,vars:6,consts:[["id","codeMap"]],template:function(i,r){1&i&&(P(0,"div",0),$e(1,"async"),xe(2,"cc-view-cube")(3,"cc-attribute-side-bar"),H()),2&i&&(Qn("hidden",rt(1,4,r.isLoadingFile$)),U(2),Qn("sideBarVisible",r.isAttributeSideBarVisibleService.isOpen))},dependencies:[tDe,ZDe,Yn],styles:["[_nghost-%COMP%] .hidden[_ngcontent-%COMP%]{display:none}[_nghost-%COMP%] #codeMap[_ngcontent-%COMP%]{position:fixed;z-index:0;top:98px;left:0;width:100%;height:100%}"]})}}return n})();const JY=Zt(A1,n=>n.markedPackages),eke=Zt(JY,n=>n.reduce((t,{color:e,path:i})=>(Object.prototype.hasOwnProperty.call(t,e)||(t[e]=[]),t[e].push(i),t),{}));function ia(n,t){(function tke(n){return"string"==typeof n&&-1!==n.indexOf(".")&&1===parseFloat(n)})(n)&&(n="100%");var e=function nke(n){return"string"==typeof n&&-1!==n.indexOf("%")}(n);return n=360===t?n:Math.min(t,Math.max(0,parseFloat(n))),e&&(n=parseInt(String(n*t),10)/100),Math.abs(n-t)<1e-6?1:n=360===t?(n<0?n%t+t:n%t)/parseFloat(String(t)):n%t/parseFloat(String(t))}function AT(n){return Math.min(1,Math.max(0,n))}function eZ(n){return n=parseFloat(n),(isNaN(n)||n<0||n>1)&&(n=1),n}function gT(n){return n<=1?"".concat(100*Number(n),"%"):n}function NA(n){return 1===n.length?"0"+n:String(n)}function tZ(n,t,e){n=ia(n,255),t=ia(t,255),e=ia(e,255);var i=Math.max(n,t,e),r=Math.min(n,t,e),o=0,s=0,a=(i+r)/2;if(i===r)s=0,o=0;else{var l=i-r;switch(s=a>.5?l/(2-i-r):l/(i+r),i){case n:o=(t-e)/l+(t1&&(e-=1),e<1/6?n+6*e*(t-n):e<.5?t:e<2/3?n+(t-n)*(2/3-e)*6:n}function nZ(n,t,e){n=ia(n,255),t=ia(t,255),e=ia(e,255);var i=Math.max(n,t,e),r=Math.min(n,t,e),o=0,s=i,a=i-r,l=0===i?0:a/i;if(i===r)o=0;else{switch(i){case n:o=(t-e)/a+(t>16,g:(65280&n)>>8,b:255&n}}(t)),this.originalInput=t;var r=function lke(n){var t={r:0,g:0,b:0},e=1,i=null,r=null,o=null,s=!1,a=!1;return"string"==typeof n&&(n=function uke(n){if(0===(n=n.trim().toLowerCase()).length)return!1;var t=!1;if(iO[n])n=iO[n],t=!0;else if("transparent"===n)return{r:0,g:0,b:0,a:0,format:"name"};var e=bd.rgb.exec(n);return e?{r:e[1],g:e[2],b:e[3]}:(e=bd.rgba.exec(n))?{r:e[1],g:e[2],b:e[3],a:e[4]}:(e=bd.hsl.exec(n))?{h:e[1],s:e[2],l:e[3]}:(e=bd.hsla.exec(n))?{h:e[1],s:e[2],l:e[3],a:e[4]}:(e=bd.hsv.exec(n))?{h:e[1],s:e[2],v:e[3]}:(e=bd.hsva.exec(n))?{h:e[1],s:e[2],v:e[3],a:e[4]}:(e=bd.hex8.exec(n))?{r:ic(e[1]),g:ic(e[2]),b:ic(e[3]),a:oZ(e[4]),format:t?"name":"hex8"}:(e=bd.hex6.exec(n))?{r:ic(e[1]),g:ic(e[2]),b:ic(e[3]),format:t?"name":"hex"}:(e=bd.hex4.exec(n))?{r:ic(e[1]+e[1]),g:ic(e[2]+e[2]),b:ic(e[3]+e[3]),a:oZ(e[4]+e[4]),format:t?"name":"hex8"}:!!(e=bd.hex3.exec(n))&&{r:ic(e[1]+e[1]),g:ic(e[2]+e[2]),b:ic(e[3]+e[3]),format:t?"name":"hex"}}(n)),"object"==typeof n&&(Kh(n.r)&&Kh(n.g)&&Kh(n.b)?(t=function ike(n,t,e){return{r:255*ia(n,255),g:255*ia(t,255),b:255*ia(e,255)}}(n.r,n.g,n.b),s=!0,a="%"===String(n.r).substr(-1)?"prgb":"rgb"):Kh(n.h)&&Kh(n.s)&&Kh(n.v)?(i=gT(n.s),r=gT(n.v),t=function oke(n,t,e){n=6*ia(n,360),t=ia(t,100),e=ia(e,100);var i=Math.floor(n),r=n-i,o=e*(1-t),s=e*(1-r*t),a=e*(1-(1-r)*t),l=i%6;return{r:255*[e,s,o,o,a,e][l],g:255*[a,e,e,s,o,o][l],b:255*[o,o,a,e,e,s][l]}}(n.h,i,r),s=!0,a="hsv"):Kh(n.h)&&Kh(n.s)&&Kh(n.l)&&(i=gT(n.s),o=gT(n.l),t=function rke(n,t,e){var i,r,o;if(n=ia(n,360),t=ia(t,100),e=ia(e,100),0===t)r=e,o=e,i=e;else{var s=e<.5?e*(1+t):e+t-e*t,a=2*e-s;i=nO(a,s,n+1/3),r=nO(a,s,n),o=nO(a,s,n-1/3)}return{r:255*i,g:255*r,b:255*o}}(n.h,i,o),s=!0,a="hsl"),Object.prototype.hasOwnProperty.call(n,"a")&&(e=n.a)),e=eZ(e),{ok:s,format:n.format||a,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:e}}(t);this.originalInput=t,this.r=r.r,this.g=r.g,this.b=r.b,this.a=r.a,this.roundA=Math.round(100*this.a)/100,this.format=null!==(i=e.format)&&void 0!==i?i:r.format,this.gradientType=e.gradientType,this.r<1&&(this.r=Math.round(this.r)),this.g<1&&(this.g=Math.round(this.g)),this.b<1&&(this.b=Math.round(this.b)),this.isValid=r.ok}return n.prototype.isDark=function(){return this.getBrightness()<128},n.prototype.isLight=function(){return!this.isDark()},n.prototype.getBrightness=function(){var t=this.toRgb();return(299*t.r+587*t.g+114*t.b)/1e3},n.prototype.getLuminance=function(){var t=this.toRgb(),o=t.r/255,s=t.g/255,a=t.b/255;return.2126*(o<=.03928?o/12.92:Math.pow((o+.055)/1.055,2.4))+.7152*(s<=.03928?s/12.92:Math.pow((s+.055)/1.055,2.4))+.0722*(a<=.03928?a/12.92:Math.pow((a+.055)/1.055,2.4))},n.prototype.getAlpha=function(){return this.a},n.prototype.setAlpha=function(t){return this.a=eZ(t),this.roundA=Math.round(100*this.a)/100,this},n.prototype.isMonochrome=function(){return 0===this.toHsl().s},n.prototype.toHsv=function(){var t=nZ(this.r,this.g,this.b);return{h:360*t.h,s:t.s,v:t.v,a:this.a}},n.prototype.toHsvString=function(){var t=nZ(this.r,this.g,this.b),e=Math.round(360*t.h),i=Math.round(100*t.s),r=Math.round(100*t.v);return 1===this.a?"hsv(".concat(e,", ").concat(i,"%, ").concat(r,"%)"):"hsva(".concat(e,", ").concat(i,"%, ").concat(r,"%, ").concat(this.roundA,")")},n.prototype.toHsl=function(){var t=tZ(this.r,this.g,this.b);return{h:360*t.h,s:t.s,l:t.l,a:this.a}},n.prototype.toHslString=function(){var t=tZ(this.r,this.g,this.b),e=Math.round(360*t.h),i=Math.round(100*t.s),r=Math.round(100*t.l);return 1===this.a?"hsl(".concat(e,", ").concat(i,"%, ").concat(r,"%)"):"hsla(".concat(e,", ").concat(i,"%, ").concat(r,"%, ").concat(this.roundA,")")},n.prototype.toHex=function(t){return void 0===t&&(t=!1),iZ(this.r,this.g,this.b,t)},n.prototype.toHexString=function(t){return void 0===t&&(t=!1),"#"+this.toHex(t)},n.prototype.toHex8=function(t){return void 0===t&&(t=!1),function ske(n,t,e,i,r){var o=[NA(Math.round(n).toString(16)),NA(Math.round(t).toString(16)),NA(Math.round(e).toString(16)),NA(rZ(i))];return r&&o[0].startsWith(o[0].charAt(1))&&o[1].startsWith(o[1].charAt(1))&&o[2].startsWith(o[2].charAt(1))&&o[3].startsWith(o[3].charAt(1))?o[0].charAt(0)+o[1].charAt(0)+o[2].charAt(0)+o[3].charAt(0):o.join("")}(this.r,this.g,this.b,this.a,t)},n.prototype.toHex8String=function(t){return void 0===t&&(t=!1),"#"+this.toHex8(t)},n.prototype.toHexShortString=function(t){return void 0===t&&(t=!1),1===this.a?this.toHexString(t):this.toHex8String(t)},n.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},n.prototype.toRgbString=function(){var t=Math.round(this.r),e=Math.round(this.g),i=Math.round(this.b);return 1===this.a?"rgb(".concat(t,", ").concat(e,", ").concat(i,")"):"rgba(".concat(t,", ").concat(e,", ").concat(i,", ").concat(this.roundA,")")},n.prototype.toPercentageRgb=function(){var t=function(e){return"".concat(Math.round(100*ia(e,255)),"%")};return{r:t(this.r),g:t(this.g),b:t(this.b),a:this.a}},n.prototype.toPercentageRgbString=function(){var t=function(e){return Math.round(100*ia(e,255))};return 1===this.a?"rgb(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%)"):"rgba(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%, ").concat(this.roundA,")")},n.prototype.toName=function(){if(0===this.a)return"transparent";if(this.a<1)return!1;for(var t="#"+iZ(this.r,this.g,this.b,!1),e=0,i=Object.entries(iO);e=0&&(t.startsWith("hex")||"name"===t)?"name"===t&&0===this.a?this.toName():this.toRgbString():("rgb"===t&&(i=this.toRgbString()),"prgb"===t&&(i=this.toPercentageRgbString()),("hex"===t||"hex6"===t)&&(i=this.toHexString()),"hex3"===t&&(i=this.toHexString(!0)),"hex4"===t&&(i=this.toHex8String(!0)),"hex8"===t&&(i=this.toHex8String()),"name"===t&&(i=this.toName()),"hsl"===t&&(i=this.toHslString()),"hsv"===t&&(i=this.toHsvString()),i||this.toHexString())},n.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},n.prototype.clone=function(){return new n(this.toString())},n.prototype.lighten=function(t){void 0===t&&(t=10);var e=this.toHsl();return e.l+=t/100,e.l=AT(e.l),new n(e)},n.prototype.brighten=function(t){void 0===t&&(t=10);var e=this.toRgb();return e.r=Math.max(0,Math.min(255,e.r-Math.round(-t/100*255))),e.g=Math.max(0,Math.min(255,e.g-Math.round(-t/100*255))),e.b=Math.max(0,Math.min(255,e.b-Math.round(-t/100*255))),new n(e)},n.prototype.darken=function(t){void 0===t&&(t=10);var e=this.toHsl();return e.l-=t/100,e.l=AT(e.l),new n(e)},n.prototype.tint=function(t){return void 0===t&&(t=10),this.mix("white",t)},n.prototype.shade=function(t){return void 0===t&&(t=10),this.mix("black",t)},n.prototype.desaturate=function(t){void 0===t&&(t=10);var e=this.toHsl();return e.s-=t/100,e.s=AT(e.s),new n(e)},n.prototype.saturate=function(t){void 0===t&&(t=10);var e=this.toHsl();return e.s+=t/100,e.s=AT(e.s),new n(e)},n.prototype.greyscale=function(){return this.desaturate(100)},n.prototype.spin=function(t){var e=this.toHsl(),i=(e.h+t)%360;return e.h=i<0?360+i:i,new n(e)},n.prototype.mix=function(t,e){void 0===e&&(e=50);var i=this.toRgb(),r=new n(t).toRgb(),o=e/100;return new n({r:(r.r-i.r)*o+i.r,g:(r.g-i.g)*o+i.g,b:(r.b-i.b)*o+i.b,a:(r.a-i.a)*o+i.a})},n.prototype.analogous=function(t,e){void 0===t&&(t=6),void 0===e&&(e=30);var i=this.toHsl(),r=360/e,o=[this];for(i.h=(i.h-(r*t>>1)+720)%360;--t;)i.h=(i.h+r)%360,o.push(new n(i));return o},n.prototype.complement=function(){var t=this.toHsl();return t.h=(t.h+180)%360,new n(t)},n.prototype.monochromatic=function(t){void 0===t&&(t=6);for(var e=this.toHsv(),i=e.h,r=e.s,o=e.v,s=[],a=1/t;t--;)s.push(new n({h:i,s:r,v:o})),o=(o+a)%1;return s},n.prototype.splitcomplement=function(){var t=this.toHsl(),e=t.h;return[this,new n({h:(e+72)%360,s:t.s,l:t.l}),new n({h:(e+216)%360,s:t.s,l:t.l})]},n.prototype.onBackground=function(t){var e=this.toRgb(),i=new n(t).toRgb(),r=e.a+i.a*(1-e.a);return new n({r:(e.r*e.a+i.r*i.a*(1-e.a))/r,g:(e.g*e.a+i.g*i.a*(1-e.a))/r,b:(e.b*e.a+i.b*i.a*(1-e.a))/r,a:r})},n.prototype.triad=function(){return this.polyad(3)},n.prototype.tetrad=function(){return this.polyad(4)},n.prototype.polyad=function(t){for(var e=this.toHsl(),i=e.h,r=[this],o=360/t,s=1;s{class n{constructor(){this.white="transparent",this.size=8,this.grey="rgba(0,0,0,.08)"}ngOnInit(){const e=function pke(n,t,e){const i=`${n}-${t}-${e}`;if(sO[i])return sO[i];const r=function mke(n,t,e){if(typeof document>"u")return null;const i=document.createElement("canvas");i.width=2*e,i.height=2*e;const r=i.getContext("2d");return r?(r.fillStyle=n,r.fillRect(0,0,i.width,i.height),r.fillStyle=t,r.fillRect(0,0,e,e),r.translate(e,e),r.fillRect(0,0,e,e),i.toDataURL()):null}(n,t,e);return r?(sO[i]=r,r):null}(this.white,this.grey,this.size);this.gridStyles={borderRadius:this.borderRadius,boxShadow:this.boxShadow,background:`url(${e}) center left`}}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=vt({type:n,selectors:[["color-checkboard"]],inputs:{white:"white",size:"size",grey:"grey",boxShadow:"boxShadow",borderRadius:"borderRadius"},decls:1,vars:1,consts:[[1,"grid",3,"ngStyle"]],template:function(e,i){1&e&&xe(0,"div",0),2&e&&pe("ngStyle",i.gridStyles)},dependencies:[P0],styles:[".grid[_ngcontent-%COMP%]{top:0px;right:0px;bottom:0px;left:0px;position:absolute}"],changeDetection:0}),n})(),aZ=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Rt({type:n}),n.\u0275inj=kt({imports:[[gn]]}),n})(),aO=(()=>{class n{constructor(e){this.el=e,this.coordinatesChange=new Hn,this.mousechange=new Hn,this.mouseListening=!1}mousemove(e,i,r,o=!1){this.mouseListening&&(e.preventDefault(),this.mousechange.next({$event:e,x:i,y:r,isTouch:o}))}mouseup(){this.mouseListening=!1}mousedown(e,i,r,o=!1){e.preventDefault(),this.mouseListening=!0,this.mousechange.next({$event:e,x:i,y:r,isTouch:o})}ngOnInit(){this.sub=this.mousechange.pipe($y((e,i)=>e.x===i.x&&e.y===i.y)).subscribe(e=>this.handleChange(e.x,e.y,e.$event,e.isTouch))}ngOnDestroy(){this.sub.unsubscribe()}handleChange(e,i,r,o){const s=this.el.nativeElement.clientWidth,a=this.el.nativeElement.clientHeight,l=e-(this.el.nativeElement.getBoundingClientRect().left+window.pageXOffset);let c=i-this.el.nativeElement.getBoundingClientRect().top;o||(c-=window.pageYOffset),this.coordinatesChange.next({x:e,y:i,top:c,left:l,containerWidth:s,containerHeight:a,$event:r})}}return n.\u0275fac=function(e){return new(e||n)($(Vn))},n.\u0275dir=$t({type:n,selectors:[["","ngx-color-coordinates",""]],hostBindings:function(e,i){1&e&&We("mousemove",function(o){return i.mousemove(o,o.pageX,o.pageY)},0,zv)("touchmove",function(o){return i.mousemove(o,o.touches[0].clientX,o.touches[0].clientY,!0)},!1,zv)("mouseup",function(){return i.mouseup()},!1,zv)("touchend",function(){return i.mouseup()},!1,zv)("mousedown",function(o){return i.mousedown(o,o.pageX,o.pageY)})("touchstart",function(o){return i.mousedown(o,o.touches[0].clientX,o.touches[0].clientY,!0)})},outputs:{coordinatesChange:"coordinatesChange"}}),n})(),lO=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Rt({type:n}),n.\u0275inj=kt({}),n})(),Ake=(()=>{class n{constructor(){this.direction="horizontal",this.onChange=new Bn}ngOnChanges(){"vertical"===this.direction?(this.pointerLeft=0,this.pointerTop=100*this.rgb.a,this.gradient={background:`linear-gradient(to bottom, rgba(${this.rgb.r},${this.rgb.g},${this.rgb.b}, 0) 0%,\n rgba(${this.rgb.r},${this.rgb.g},${this.rgb.b}, 1) 100%)`}):(this.gradient={background:`linear-gradient(to right, rgba(${this.rgb.r},${this.rgb.g},${this.rgb.b}, 0) 0%,\n rgba(${this.rgb.r},${this.rgb.g},${this.rgb.b}, 1) 100%)`},this.pointerLeft=100*this.rgb.a)}handleChange({top:e,left:i,containerHeight:r,containerWidth:o,$event:s}){let a;if("vertical"===this.direction){let l;l=e<0?0:e>r?1:Math.round(100*e/r)/100,this.hsl.a!==l&&(a={h:this.hsl.h,s:this.hsl.s,l:this.hsl.l,a:l,source:"rgb"})}else{let l;l=i<0?0:i>o?1:Math.round(100*i/o)/100,this.hsl.a!==l&&(a={h:this.hsl.h,s:this.hsl.s,l:this.hsl.l,a:l,source:"rgb"})}a&&this.onChange.emit({data:a,$event:s})}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=vt({type:n,selectors:[["color-alpha"]],inputs:{hsl:"hsl",rgb:"rgb",pointer:"pointer",shadow:"shadow",radius:"radius",direction:"direction"},outputs:{onChange:"onChange"},features:[wr],decls:7,vars:15,consts:[[1,"alpha"],[1,"alpha-checkboard"],[1,"alpha-gradient",3,"ngStyle"],["ngx-color-coordinates","",3,"coordinatesChange"],[1,"alpha-pointer"],[1,"alpha-slider",3,"ngStyle"]],template:function(e,i){1&e&&(P(0,"div",0)(1,"div",1),xe(2,"color-checkboard"),H(),xe(3,"div",2),P(4,"div",3),We("coordinatesChange",function(o){return i.handleChange(o)}),P(5,"div",4),xe(6,"div",5),H()()()),2&e&&(Hi("border-radius",i.radius),U(3),Hi("box-shadow",i.shadow)("border-radius",i.radius),pe("ngStyle",i.gradient),U(),ah("alpha-container color-alpha-",i.direction,""),U(),Hi("left",i.pointerLeft,"%")("top",i.pointerTop,"%"),U(),pe("ngStyle",i.pointer))},dependencies:[sZ,P0,aO],styles:[".alpha[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0}.alpha-checkboard[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.alpha-gradient[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0}.alpha-container[_ngcontent-%COMP%]{position:relative;height:100%;margin:0 3px}.alpha-pointer[_ngcontent-%COMP%]{position:absolute}.alpha-slider[_ngcontent-%COMP%]{width:4px;border-radius:1px;height:8px;box-shadow:0 0 2px #0009;background:#fff;margin-top:1px;transform:translate(-2px)}"],changeDetection:0}),n})(),gke=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Rt({type:n}),n.\u0275inj=kt({imports:[[gn,aZ,lO]]}),n})();function lZ(n){let e=0,i=0;return["r","g","b","a","h","s","l","v"].forEach(r=>{n[r]&&(e+=1,isNaN(n[r])||(i+=1),("s"===r||"l"===r)&&/^\d+%$/.test(n[r])&&(i+=1))}),e===i&&n}function Ow(n,t,e){const i=new Lw(n.hex?n.hex:n);e&&i.setAlpha(1);const r=i.toHsl(),o=i.toHsv(),s=i.toRgb(),a=i.toHex();return 0===r.s&&(r.h=t||0,o.h=t||0),{hsl:r,hex:"000000"===a&&0===s.a?"transparent":i.toHexString(),rgb:s,hsv:o,oldHue:n.h||t||r.h,source:n.source}}var sb=function(n){return n.HEX="hex",n.HSL="hsl",n.HSV="hsv",n.RGB="rgb",n}(sb||{});let cZ=(()=>{class n{constructor(){this.mode=sb.HEX,this.color={h:250,s:.5,l:.2,a:1},this.colorChange=new Bn,this.onChange=new Bn,this.onChangeComplete=new Bn,this.onSwatchHover=new Bn,this._onChangeCompleteSubscription=new Kn,this._onSwatchHoverSubscription=new Kn}ngOnInit(){this.changes=this.onChange.pipe(G0(100),Dr(e=>{switch(this.onChangeComplete.emit(e),this.mode){case sb.HEX:this.colorChange.emit(e.color.hex);break;case sb.HSL:this.colorChange.emit(e.color.hsl);break;case sb.HSV:this.colorChange.emit(e.color.hsv);break;case sb.RGB:this.colorChange.emit(e.color.rgb);break;default:console.warn(`The mode '${this.mode}' is not supported`)}})).subscribe(),this.setState(Ow(this.color,0)),this.currentColor=this.hex}ngOnChanges(){this.setState(Ow(this.color,this.oldHue))}ngOnDestroy(){this.changes?.unsubscribe(),this._onChangeCompleteSubscription.unsubscribe(),this._onSwatchHoverSubscription.unsubscribe()}setState(e){this.oldHue=e.oldHue,this.hsl=e.hsl,this.hsv=e.hsv,this.rgb=e.rgb,this.hex=e.hex,this.source=e.source,this.afterValidChange()}handleChange(e,i){if(lZ(e)){const o=Ow(e,e.h||this.oldHue,this.disableAlpha);this.setState(o),this.onChange.emit({color:o,$event:i}),this.afterValidChange()}}afterValidChange(){}handleSwatchHover(e,i){if(lZ(e)){const o=Ow(e,e.h||this.oldHue);this.setState(o),this.onSwatchHover.emit({color:o,$event:i})}}registerOnChange(e){this._onChangeCompleteSubscription.add(this.onChangeComplete.pipe(Dr(i=>e(i.color.hex))).subscribe())}registerOnTouched(e){this._onSwatchHoverSubscription.add(this.onSwatchHover.pipe(Dr(()=>e())).subscribe())}setDisabledState(e){}writeValue(e){this.color=e}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=vt({type:n,selectors:[["color-wrap"]],inputs:{className:"className",mode:"mode",color:"color"},outputs:{colorChange:"colorChange",onChange:"onChange",onChangeComplete:"onChangeComplete",onSwatchHover:"onSwatchHover"},features:[ui([{provide:qs,useExisting:Jn(()=>n),multi:!0}]),wr],decls:0,vars:0,template:function(e,i){},encapsulation:2}),n})(),bke=0,vke=(()=>{class n{constructor(){this.placeholder="",this.onChange=new Bn,this.focus=!1,this.uniqueId="editableInput-"+ ++bke}ngOnInit(){this.wrapStyle=this.style&&this.style.wrap?this.style.wrap:{},this.inputStyle=this.style&&this.style.input?this.style.input:{},this.labelStyle=this.style&&this.style.label?this.style.label:{},this.dragLabel&&(this.labelStyle.cursor="ew-resize")}handleFocus(e){this.focus=!0}handleFocusOut(e){this.focus=!1,this.currentValue=this.blurValue}handleKeydown(e){const i=String(e.target.value),r=i.indexOf("%")>-1,o=Number(i.replace(/%/g,""));if(isNaN(o))return;const s=this.arrowOffset||1;38===e.keyCode&&(this.onChange.emit(this.label?{data:{[this.label]:o+s},$event:e}:{data:o+s,$event:e}),this.currentValue=r?`${o+s}%`:o+s),40===e.keyCode&&(this.onChange.emit(this.label?{data:{[this.label]:o-s},$event:e}:{data:o-s,$event:e}),this.currentValue=r?o-s+"%":o-s)}handleKeyup(e){40===e.keyCode||38===e.keyCode||`${this.currentValue}`!==e.target.value&&this.onChange.emit(this.label?{data:{[this.label]:e.target.value},$event:e}:{data:e.target.value,$event:e})}ngOnChanges(){this.focus||(this.currentValue=String(this.value).toUpperCase()),this.blurValue=String(this.value).toUpperCase()}ngOnDestroy(){this.unsubscribe()}subscribe(){this.mousemove=j0(document,"mousemove").subscribe(e=>this.handleDrag(e)),this.mouseup=j0(document,"mouseup").subscribe(()=>this.unsubscribe())}unsubscribe(){this.mousemove&&this.mousemove.unsubscribe(),this.mouseup&&this.mouseup.unsubscribe()}handleMousedown(e){this.dragLabel&&(e.preventDefault(),this.handleDrag(e),this.subscribe())}handleDrag(e){if(this.dragLabel){const i=Math.round(this.value+e.movementX);i>=0&&i<=this.dragMax&&this.onChange.emit({data:{[this.label]:i},$event:e})}}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=vt({type:n,selectors:[["color-editable-input"]],inputs:{style:"style",label:"label",value:"value",arrowOffset:"arrowOffset",dragLabel:"dragLabel",dragMax:"dragMax",placeholder:"placeholder"},outputs:{onChange:"onChange"},features:[wr],decls:3,vars:6,consts:[[1,"wrap",3,"ngStyle"],["spellCheck","false",3,"keydown","keyup","focus","focusout","ngStyle","value","placeholder"],[3,"id","ngStyle","mousedown",4,"ngIf"],[3,"mousedown","id","ngStyle"]],template:function(e,i){1&e&&(P(0,"div",0)(1,"input",1),We("keydown",function(o){return i.handleKeydown(o)})("keyup",function(o){return i.handleKeyup(o)})("focus",function(o){return i.handleFocus(o)})("focusout",function(o){return i.handleFocusOut(o)}),H(),At(2,hke,2,3,"span",2),H()),2&e&&(pe("ngStyle",i.wrapStyle),U(),pe("ngStyle",i.inputStyle)("value",i.currentValue)("placeholder",i.placeholder),fi("aria-labelledby",i.uniqueId),U(),pe("ngIf",i.label))},dependencies:[P0,Hp],styles:["[_nghost-%COMP%]{display:flex}.wrap[_ngcontent-%COMP%]{position:relative}"],changeDetection:0}),n})(),yke=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Rt({type:n}),n.\u0275inj=kt({imports:[[gn]]}),n})(),wke=(()=>{class n{constructor(){this.hidePointer=!1,this.direction="horizontal",this.onChange=new Bn,this.left="0px",this.top=""}ngOnChanges(){"horizontal"===this.direction?this.left=100*this.hsl.h/360+"%":this.top=-100*this.hsl.h/360+100+"%"}handleChange({top:e,left:i,containerHeight:r,containerWidth:o,$event:s}){let a;if("vertical"===this.direction){let l;l=e<0?359:e>r?0:360*(-100*e/r+100)/100,this.hsl.h!==l&&(a={h:l,s:this.hsl.s,l:this.hsl.l,a:this.hsl.a,source:"rgb"})}else{let l;l=i<0?0:i>o?359:100*i/o*360/100,this.hsl.h!==l&&(a={h:l,s:this.hsl.s,l:this.hsl.l,a:this.hsl.a,source:"rgb"})}a&&this.onChange.emit({data:a,$event:s})}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=vt({type:n,selectors:[["color-hue"]],inputs:{hsl:"hsl",pointer:"pointer",radius:"radius",shadow:"shadow",hidePointer:"hidePointer",direction:"direction"},outputs:{onChange:"onChange"},features:[wr],decls:3,vars:8,consts:[["ngx-color-coordinates","",1,"color-hue-container",3,"coordinatesChange"],["class","color-hue-pointer",3,"left","top",4,"ngIf"],[1,"color-hue-pointer"],[1,"color-hue-slider",3,"ngStyle"]],template:function(e,i){1&e&&(P(0,"div")(1,"div",0),We("coordinatesChange",function(o){return i.handleChange(o)}),At(2,fke,2,5,"div",1),H()()),2&e&&(ah("color-hue color-hue-",i.direction,""),Hi("border-radius",i.radius,"px")("box-shadow",i.shadow),U(2),pe("ngIf",!i.hidePointer))},dependencies:[aO,Hp,P0],styles:[".color-hue[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0}.color-hue-container[_ngcontent-%COMP%]{margin:0 2px;position:relative;height:100%}.color-hue-pointer[_ngcontent-%COMP%]{position:absolute}.color-hue-slider[_ngcontent-%COMP%]{margin-top:1px;width:4px;border-radius:1px;height:8px;box-shadow:0 0 2px #0009;background:#fff;transform:translate(-2px)}.color-hue-horizontal[_ngcontent-%COMP%]{background:linear-gradient(to right,#f00 0%,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,#f00 100%)}.color-hue-vertical[_ngcontent-%COMP%]{background:linear-gradient(to top,#f00 0%,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,#f00 100%)}"],changeDetection:0}),n})(),xke=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Rt({type:n}),n.\u0275inj=kt({imports:[[gn,lO]]}),n})(),Cke=(()=>{class n{constructor(){this.onChange=new Bn}ngOnChanges(){this.background=`hsl(${this.hsl.h}, 100%, 50%)`,this.pointerTop=-100*this.hsv.v+1+100+"%",this.pointerLeft=100*this.hsv.s+"%"}handleChange({top:e,left:i,containerHeight:r,containerWidth:o,$event:s}){i<0?i=0:i>o?i=o:e<0?e=0:e>r&&(e=r);let l=-e/r+1;l=l>0?l:0,l=l>1?1:l,this.onChange.emit({data:{h:this.hsl.h,s:i/o,v:l,a:this.hsl.a,source:"hsva"},$event:s})}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=vt({type:n,selectors:[["color-saturation"]],inputs:{hsl:"hsl",hsv:"hsv",radius:"radius",pointer:"pointer",circle:"circle"},outputs:{onChange:"onChange"},features:[wr],decls:5,vars:8,consts:[["ngx-color-coordinates","",1,"color-saturation",3,"coordinatesChange"],[1,"saturation-white"],[1,"saturation-black"],[1,"saturation-pointer",3,"ngStyle"],[1,"saturation-circle",3,"ngStyle"]],template:function(e,i){1&e&&(P(0,"div",0),We("coordinatesChange",function(o){return i.handleChange(o)}),P(1,"div",1),xe(2,"div",2),P(3,"div",3),xe(4,"div",4),H()()()),2&e&&(Hi("background",i.background),U(3),Hi("top",i.pointerTop)("left",i.pointerLeft),pe("ngStyle",i.pointer),U(),pe("ngStyle",i.circle))},dependencies:[aO,P0],styles:[".saturation-white[_ngcontent-%COMP%]{background:linear-gradient(to right,#fff,rgba(255,255,255,0));position:absolute;top:0;bottom:0;left:0;right:0}.saturation-black[_ngcontent-%COMP%]{background:linear-gradient(to top,#000,rgba(0,0,0,0));position:absolute;top:0;bottom:0;left:0;right:0}.color-saturation[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0}.saturation-pointer[_ngcontent-%COMP%]{position:absolute;cursor:default}.saturation-circle[_ngcontent-%COMP%]{width:4px;height:4px;box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px #0000004d,0 0 1px 2px #0006;border-radius:50%;cursor:hand;transform:translate(-2px,-4px)}"],changeDetection:0}),n})(),Mke=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Rt({type:n}),n.\u0275inj=kt({imports:[[gn,lO]]}),n})();const Yh=(n,t)=>({input:n,label:t});function Eke(n,t){if(1&n){const e=Pn();P(0,"div",11)(1,"color-editable-input",12),We("onChange",function(r){return Vt(e),Ot(He().handleChange(r))}),H()()}if(2&n){const e=He();U(),Bs(rl(3,Yh,e.input,e.label)),pe("value",e.hex)}}function Ske(n,t){if(1&n){const e=Pn();P(0,"color-editable-input",17),We("onChange",function(r){return Vt(e),Ot(He(2).handleChange(r))}),H()}if(2&n){const e=He(2);Bs(rl(4,Yh,e.input,e.label)),pe("value",e.rgb.a)("arrowOffset",.01)}}function Tke(n,t){if(1&n){const e=Pn();P(0,"div",11)(1,"color-editable-input",13),We("onChange",function(r){return Vt(e),Ot(He().handleChange(r))}),H()(),P(2,"div",11)(3,"color-editable-input",14),We("onChange",function(r){return Vt(e),Ot(He().handleChange(r))}),H()(),P(4,"div",11)(5,"color-editable-input",15),We("onChange",function(r){return Vt(e),Ot(He().handleChange(r))}),H()(),P(6,"div",11),At(7,Ske,1,7,"color-editable-input",16),H()}if(2&n){const e=He();U(),Bs(rl(10,Yh,e.input,e.label)),pe("value",e.rgb.r),U(2),Bs(rl(13,Yh,e.input,e.label)),pe("value",e.rgb.g),U(2),Bs(rl(16,Yh,e.input,e.label)),pe("value",e.rgb.b),U(2),pe("ngIf",!e.disableAlpha)}}function Ike(n,t){if(1&n){const e=Pn();P(0,"color-editable-input",17),We("onChange",function(r){return Vt(e),Ot(He(2).handleChange(r))}),H()}if(2&n){const e=He(2);Bs(rl(4,Yh,e.input,e.label)),pe("value",e.hsl.a)("arrowOffset",.01)}}function Fke(n,t){if(1&n){const e=Pn();P(0,"div",11)(1,"color-editable-input",18),We("onChange",function(r){return Vt(e),Ot(He().handleChange(r))}),H()(),P(2,"div",11)(3,"color-editable-input",19),We("onChange",function(r){return Vt(e),Ot(He().handleChange(r))}),H()(),P(4,"div",11)(5,"color-editable-input",20),We("onChange",function(r){return Vt(e),Ot(He().handleChange(r))}),H()(),P(6,"div",11),At(7,Ike,1,7,"color-editable-input",16),H()}if(2&n){const e=He();U(),Bs(rl(10,Yh,e.input,e.label)),pe("value",e.round(e.hsl.h)),U(2),Bs(rl(13,Yh,e.input,e.label)),pe("value",e.round(100*e.hsl.s)+"%"),U(2),Bs(rl(16,Yh,e.input,e.label)),pe("value",e.round(100*e.hsl.l)+"%"),U(2),pe("ngIf",!e.disableAlpha)}}function Dke(n,t){if(1&n){const e=Pn();P(0,"div",12)(1,"color-alpha",13),We("onChange",function(r){return Vt(e),Ot(He().handleValueChange(r))}),H()()}if(2&n){const e=He();U(),pe("radius",2)("rgb",e.rgb)("hsl",e.hsl)("pointer",e.pointer)}}let kke=(()=>{class n{constructor(){this.onChange=new Bn,this.view="",this.input={fontSize:"11px",color:"#333",width:"100%",borderRadius:"2px",border:"none",boxShadow:"inset 0 0 0 1px #dadada",height:"21px","text-align":"center"},this.label={"text-transform":"uppercase",fontSize:"11px","line-height":"11px",color:"#969696","text-align":"center",display:"block",marginTop:"12px"}}ngOnInit(){1===this.hsl.a&&"hex"!==this.view?this.view="hex":"rgb"!==this.view&&"hsl"!==this.view&&(this.view="rgb")}toggleViews(){"hex"===this.view?this.view="rgb":"rgb"===this.view?this.view="hsl":"hsl"===this.view&&(this.view=1===this.hsl.a?"hex":"rgb")}round(e){return Math.round(e)}handleChange({data:e,$event:i}){if(e.hex){if(function _ke(n){return new Lw(n).isValid}(e.hex)){const r=new Lw(e.hex);this.onChange.emit({data:{hex:this.disableAlpha?r.toHex():r.toHex8(),source:"hex"},$event:i})}}else if(e.r||e.g||e.b)this.onChange.emit({data:{r:e.r||this.rgb.r,g:e.g||this.rgb.g,b:e.b||this.rgb.b,source:"rgb"},$event:i});else if(e.a)e.a<0?e.a=0:e.a>1&&(e.a=1),this.disableAlpha&&(e.a=1),this.onChange.emit({data:{h:this.hsl.h,s:this.hsl.s,l:this.hsl.l,a:Math.round(100*e.a)/100,source:"rgb"},$event:i});else if(e.h||e.s||e.l){const r=e.s&&e.s.replace("%",""),o=e.l&&e.l.replace("%","");this.onChange.emit({data:{h:e.h||this.hsl.h,s:Number(r||this.hsl.s),l:Number(o||this.hsl.l),source:"hsl"},$event:i})}}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=vt({type:n,selectors:[["color-chrome-fields"]],inputs:{disableAlpha:"disableAlpha",hsl:"hsl",rgb:"rgb",hex:"hex"},outputs:{onChange:"onChange"},decls:13,vars:3,consts:[["icon",""],["iconUp",""],["iconDown",""],[1,"chrome-wrap"],[1,"chrome-fields"],[3,"ngIf"],[1,"chrome-toggle"],[1,"chrome-icon",3,"click"],["viewBox","0 0 24 24",1,"chrome-toggle-svg"],["fill","#333","d","M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z"],["fill","#333","d","M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15Z"],[1,"chrome-field"],["label","hex",3,"onChange","value"],["label","r",3,"onChange","value"],["label","g",3,"onChange","value"],["label","b",3,"onChange","value"],["label","a",3,"style","value","arrowOffset","onChange",4,"ngIf"],["label","a",3,"onChange","value","arrowOffset"],["label","h",3,"onChange","value"],["label","s",3,"onChange","value"],["label","l",3,"onChange","value"]],template:function(e,i){if(1&e){const r=Pn();P(0,"div",3)(1,"div",4),At(2,Eke,2,6,"ng-template",5)(3,Tke,8,19,"ng-template",5)(4,Fke,8,19,"ng-template",5),H(),P(5,"div",6)(6,"div",7,0),We("click",function(){return Vt(r),Ot(i.toggleViews())}),kl(),P(8,"svg",8),xe(9,"path",9,1)(11,"path",10,2),H()()()()}2&e&&(U(2),pe("ngIf","hex"===i.view),U(),pe("ngIf","rgb"===i.view),U(),pe("ngIf","hsl"===i.view))},dependencies:[vke,Hp],styles:[".chrome-wrap[_ngcontent-%COMP%]{padding-top:16px;display:flex}.chrome-fields[_ngcontent-%COMP%]{flex:1;display:flex;margin-left:-6px}.chrome-field[_ngcontent-%COMP%]{padding-left:6px;width:100%}.chrome-toggle[_ngcontent-%COMP%]{width:32px;text-align:right;position:relative}.chrome-icon[_ngcontent-%COMP%]{margin-right:-4px;margin-top:12px;cursor:pointer;position:relative}.chrome-toggle-svg[_ngcontent-%COMP%]{width:24px;height:24px;border:1px transparent solid;border-radius:5px}.chrome-toggle-svg[_ngcontent-%COMP%]:hover{background:#eee}"],changeDetection:0}),n})(),Bke=(()=>{class n extends cZ{constructor(){super(),this.disableAlpha=!1,this.circle={width:"12px",height:"12px",borderRadius:"6px",boxShadow:"rgb(255, 255, 255) 0px 0px 0px 1px inset",transform:"translate(-6px, -8px)"},this.pointer={width:"12px",height:"12px",borderRadius:"6px",transform:"translate(-6px, -2px)",backgroundColor:"rgb(248, 248, 248)",boxShadow:"0 1px 4px 0 rgba(0, 0, 0, 0.37)"}}afterValidChange(){this.activeBackground=`rgba(${this.rgb.r}, ${this.rgb.g}, ${this.rgb.b}, ${this.disableAlpha?1:this.rgb.a})`}handleValueChange({data:e,$event:i}){this.handleChange(e,i)}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=vt({type:n,selectors:[["color-chrome"]],inputs:{disableAlpha:"disableAlpha"},features:[ui([{provide:qs,useExisting:Jn(()=>n),multi:!0},{provide:cZ,useExisting:Jn(()=>n)}]),_i],decls:14,vars:16,consts:[[1,"saturation"],[3,"onChange","hsl","hsv","circle"],[1,"chrome-body"],[1,"chrome-controls"],[1,"chrome-color"],[1,"chrome-swatch"],[1,"chrome-active"],[1,"chrome-toggles"],[1,"chrome-hue"],[3,"onChange","radius","hsl","pointer"],["class","chrome-alpha",4,"ngIf"],[3,"onChange","rgb","hsl","hex","disableAlpha"],[1,"chrome-alpha"],[3,"onChange","radius","rgb","hsl","pointer"]],template:function(e,i){1&e&&(P(0,"div")(1,"div",0)(2,"color-saturation",1),We("onChange",function(o){return i.handleValueChange(o)}),H()(),P(3,"div",2)(4,"div",3)(5,"div",4)(6,"div",5),xe(7,"div",6)(8,"color-checkboard"),H()(),P(9,"div",7)(10,"div",8)(11,"color-hue",9),We("onChange",function(o){return i.handleValueChange(o)}),H()(),At(12,Dke,2,4,"div",10),H()(),P(13,"color-chrome-fields",11),We("onChange",function(o){return i.handleValueChange(o)}),H()()()),2&e&&(ah("chrome-picker ",i.className,""),U(2),pe("hsl",i.hsl)("hsv",i.hsv)("circle",i.circle),U(5),Hi("background",i.activeBackground),U(4),pe("radius",2)("hsl",i.hsl)("pointer",i.pointer),U(),pe("ngIf",!i.disableAlpha),U(),pe("rgb",i.rgb)("hsl",i.hsl)("hex",i.hex)("disableAlpha",i.disableAlpha))},dependencies:()=>[Cke,sZ,wke,Ake,kke,Hp],styles:['.chrome-picker[_ngcontent-%COMP%]{background:#fff;border-radius:2px;box-shadow:0 0 2px #0000004d,0 4px 8px #0000004d;box-sizing:initial;width:225px;font-family:"Menlo"}.chrome-controls[_ngcontent-%COMP%]{display:flex}.chrome-color[_ngcontent-%COMP%]{width:42px}.chrome-body[_ngcontent-%COMP%]{padding:14px 14px 12px}.chrome-active[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;border-radius:20px;box-shadow:inset 0 0 0 1px #0000001a;z-index:2}.chrome-swatch[_ngcontent-%COMP%]{width:28px;height:28px;border-radius:15px;position:relative;overflow:hidden}.saturation[_ngcontent-%COMP%]{width:100%;padding-bottom:55%;position:relative;border-radius:2px 2px 0 0;overflow:hidden}.chrome-toggles[_ngcontent-%COMP%]{flex:1}.chrome-hue[_ngcontent-%COMP%]{height:10px;position:relative;margin-bottom:8px}.chrome-alpha[_ngcontent-%COMP%]{height:10px;position:relative}'],changeDetection:0}),n})(),Pke=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Rt({type:n}),n.\u0275inj=kt({imports:[[gn,gke,aZ,yke,xke,Mke]]}),n})();function dZ(n,t){return t?e=>A2(t.pipe(zo(1),dq()),e.pipe(dZ(n))):$f((e,i)=>rs(n(e,i)).pipe(zo(1),function Rke(n){return Ge(()=>n)}(e)))}function uZ(n,t=q0){const e=PP(n,t);return dZ(()=>e)}const Lke=["mat-menu-item",""],Oke=[[["mat-icon"],["","matMenuItemIcon",""]],"*"],Nke=["mat-icon, [matMenuItemIcon]","*"];function Uke(n,t){1&n&&(kl(),P(0,"svg",2),xe(1,"polygon",3),H())}const Hke=["*"];function Vke(n,t){if(1&n){const e=Pn();P(0,"div",0),We("keydown",function(r){return Vt(e),Ot(He()._handleKeydown(r))})("click",function(){return Vt(e),Ot(He().closed.emit("click"))})("@transformMenu.start",function(r){return Vt(e),Ot(He()._onAnimationStart(r))})("@transformMenu.done",function(r){return Vt(e),Ot(He()._onAnimationDone(r))}),P(1,"div",1),Gn(2),H()()}if(2&n){const e=He();pe("id",e.panelId)("ngClass",e._classList)("@transformMenu",e._panelAnimationState),fi("aria-label",e.ariaLabel||null)("aria-labelledby",e.ariaLabelledby||null)("aria-describedby",e.ariaDescribedby||null)}}const cO=new ut("MAT_MENU_PANEL");let _T=(()=>{class n{constructor(e,i,r,o,s){this._elementRef=e,this._document=i,this._focusMonitor=r,this._parentMenu=o,this._changeDetectorRef=s,this.role="menuitem",this.disabled=!1,this.disableRipple=!1,this._hovered=new Hn,this._focused=new Hn,this._highlighted=!1,this._triggersSubmenu=!1,o?.addItem?.(this)}focus(e,i){this._focusMonitor&&e?this._focusMonitor.focusVia(this._getHostElement(),e,i):this._getHostElement().focus(i),this._focused.next(this)}ngAfterViewInit(){this._focusMonitor&&this._focusMonitor.monitor(this._elementRef,!1)}ngOnDestroy(){this._focusMonitor&&this._focusMonitor.stopMonitoring(this._elementRef),this._parentMenu&&this._parentMenu.removeItem&&this._parentMenu.removeItem(this),this._hovered.complete(),this._focused.complete()}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._elementRef.nativeElement}_checkDisabled(e){this.disabled&&(e.preventDefault(),e.stopPropagation())}_handleMouseEnter(){this._hovered.next(this)}getLabel(){const e=this._elementRef.nativeElement.cloneNode(!0),i=e.querySelectorAll("mat-icon, .material-icons");for(let r=0;r enter",xc("120ms cubic-bezier(0, 0, 0.2, 1)",qo({opacity:1,transform:"scale(1)"}))),Gl("* => void",xc("100ms 25ms linear",qo({opacity:0})))]),fadeInItems:Sh("fadeInItems",[Cc("showing",qo({opacity:1})),Gl("void => *",[qo({opacity:0}),xc("400ms 100ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])};let zke=0;const qke=new ut("mat-menu-default-options",{providedIn:"root",factory:function Gke(){return{overlapTrigger:!1,xPosition:"after",yPosition:"below",backdropClass:"cdk-overlay-transparent-backdrop"}}});let wu=(()=>{class n{get xPosition(){return this._xPosition}set xPosition(e){this._xPosition=e,this.setPositionClasses()}get yPosition(){return this._yPosition}set yPosition(e){this._yPosition=e,this.setPositionClasses()}set panelClass(e){const i=this._previousPanelClass;i&&i.length&&i.split(" ").forEach(r=>{this._classList[r]=!1}),this._previousPanelClass=e,e&&e.length&&(e.split(" ").forEach(r=>{this._classList[r]=!0}),this._elementRef.nativeElement.className="")}get classList(){return this.panelClass}set classList(e){this.panelClass=e}constructor(e,i,r,o){this._elementRef=e,this._ngZone=i,this._changeDetectorRef=o,this._elevationPrefix="mat-elevation-z",this._baseElevation=8,this._directDescendantItems=new th,this._classList={},this._panelAnimationState="void",this._animationDone=new Hn,this.closed=new Bn,this.close=this.closed,this.panelId="mat-menu-panel-"+zke++,this.overlayPanelClass=r.overlayPanelClass||"",this._xPosition=r.xPosition,this._yPosition=r.yPosition,this.backdropClass=r.backdropClass,this.overlapTrigger=r.overlapTrigger,this.hasBackdrop=r.hasBackdrop}ngOnInit(){this.setPositionClasses()}ngAfterContentInit(){this._updateDirectDescendants(),this._keyManager=new XP(this._directDescendantItems).withWrap().withTypeAhead().withHomeAndEnd(),this._keyManager.tabOut.subscribe(()=>this.closed.emit("tab")),this._directDescendantItems.changes.pipe(dd(this._directDescendantItems),fh(e=>ql(...e.map(i=>i._focused)))).subscribe(e=>this._keyManager.updateActiveItem(e)),this._directDescendantItems.changes.subscribe(e=>{const i=this._keyManager;if("enter"===this._panelAnimationState&&i.activeItem?._hasFocus()){const r=e.toArray(),o=Math.max(0,Math.min(r.length-1,i.activeItemIndex||0));r[o]&&!r[o].disabled?i.setActiveItem(o):i.setNextItemActive()}})}ngOnDestroy(){this._keyManager?.destroy(),this._directDescendantItems.destroy(),this.closed.complete(),this._firstItemFocusSubscription?.unsubscribe()}_hovered(){return this._directDescendantItems.changes.pipe(dd(this._directDescendantItems),fh(i=>ql(...i.map(r=>r._hovered))))}addItem(e){}removeItem(e){}_handleKeydown(e){const i=e.keyCode,r=this._keyManager;switch(i){case 27:cd(e)||(e.preventDefault(),this.closed.emit("keydown"));break;case 37:this.parentMenu&&"ltr"===this.direction&&this.closed.emit("keydown");break;case 39:this.parentMenu&&"rtl"===this.direction&&this.closed.emit("keydown");break;default:return(38===i||40===i)&&r.setFocusOrigin("keyboard"),void r.onKeydown(e)}e.stopPropagation()}focusFirstItem(e="program"){this._firstItemFocusSubscription?.unsubscribe(),this._firstItemFocusSubscription=this._ngZone.onStable.pipe(zo(1)).subscribe(()=>{let i=null;if(this._directDescendantItems.length&&(i=this._directDescendantItems.first._getHostElement().closest('[role="menu"]')),!i||!i.contains(document.activeElement)){const r=this._keyManager;r.setFocusOrigin(e).setFirstItemActive(),!r.activeItem&&i&&i.focus()}})}resetActiveItem(){this._keyManager.setActiveItem(-1)}setElevation(e){const i=Math.min(this._baseElevation+e,24),r=`${this._elevationPrefix}${i}`,o=Object.keys(this._classList).find(s=>s.startsWith(this._elevationPrefix));(!o||o===this._previousElevation)&&(this._previousElevation&&(this._classList[this._previousElevation]=!1),this._classList[r]=!0,this._previousElevation=r)}setPositionClasses(e=this.xPosition,i=this.yPosition){const r=this._classList;r["mat-menu-before"]="before"===e,r["mat-menu-after"]="after"===e,r["mat-menu-above"]="above"===i,r["mat-menu-below"]="below"===i,this._changeDetectorRef?.markForCheck()}_startAnimation(){this._panelAnimationState="enter"}_resetAnimation(){this._panelAnimationState="void"}_onAnimationDone(e){this._animationDone.next(e),this._isAnimating=!1}_onAnimationStart(e){this._isAnimating=!0,"enter"===e.toState&&0===this._keyManager.activeItemIndex&&(e.element.scrollTop=0)}_updateDirectDescendants(){this._allItems.changes.pipe(dd(this._allItems)).subscribe(e=>{this._directDescendantItems.reset(e.filter(i=>i._parentMenu===this)),this._directDescendantItems.notifyOnChanges()})}static{this.\u0275fac=function(i){return new(i||n)($(Vn),$(kn),$(qke),$(_o))}}static{this.\u0275cmp=vt({type:n,selectors:[["mat-menu"]],contentQueries:function(i,r,o){if(1&i&&(Vr(o,Qke,5),Vr(o,_T,5),Vr(o,_T,4)),2&i){let s;un(s=hn())&&(r.lazyContent=s.first),un(s=hn())&&(r._allItems=s),un(s=hn())&&(r.items=s)}},viewQuery:function(i,r){if(1&i&&ei(Vl,5),2&i){let o;un(o=hn())&&(r.templateRef=o.first)}},hostVars:3,hostBindings:function(i,r){2&i&&fi("aria-label",null)("aria-labelledby",null)("aria-describedby",null)},inputs:{backdropClass:"backdropClass",ariaLabel:[Ct.None,"aria-label","ariaLabel"],ariaLabelledby:[Ct.None,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[Ct.None,"aria-describedby","ariaDescribedby"],xPosition:"xPosition",yPosition:"yPosition",overlapTrigger:[Ct.HasDecoratorInputTransform,"overlapTrigger","overlapTrigger",Zn],hasBackdrop:[Ct.HasDecoratorInputTransform,"hasBackdrop","hasBackdrop",e=>null==e?null:Zn(e)],panelClass:[Ct.None,"class","panelClass"],classList:"classList"},outputs:{closed:"closed",close:"close"},exportAs:["matMenu"],standalone:!0,features:[ui([{provide:cO,useExisting:n}]),es,Or],ngContentSelectors:Hke,decls:1,vars:0,consts:[["tabindex","-1","role","menu",1,"mat-mdc-menu-panel","mat-mdc-elevation-specific",3,"keydown","click","id","ngClass"],[1,"mat-mdc-menu-content"]],template:function(i,r){1&i&&($r(),At(0,Vke,3,6,"ng-template"))},dependencies:[Kd],styles:['mat-menu{display:none}.mat-mdc-menu-content{margin:0;padding:8px 0;list-style-type:none}.mat-mdc-menu-content:focus{outline:none}.mat-mdc-menu-content,.mat-mdc-menu-content .mat-mdc-menu-item .mat-mdc-menu-item-text{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;flex:1;white-space:normal;font-family:var(--mat-menu-item-label-text-font);line-height:var(--mat-menu-item-label-text-line-height);font-size:var(--mat-menu-item-label-text-size);letter-spacing:var(--mat-menu-item-label-text-tracking);font-weight:var(--mat-menu-item-label-text-weight)}.mat-mdc-menu-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;box-sizing:border-box;outline:0;border-radius:var(--mat-menu-container-shape);background-color:var(--mat-menu-container-color);will-change:transform,opacity}.mat-mdc-menu-panel.ng-animating{pointer-events:none}.cdk-high-contrast-active .mat-mdc-menu-panel{outline:solid 1px}.mat-divider{color:var(--mat-menu-divider-color);margin-bottom:var(--mat-menu-divider-bottom-spacing);margin-top:var(--mat-menu-divider-top-spacing)}.mat-mdc-menu-item{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;padding-left:var(--mat-menu-item-leading-spacing);padding-right:var(--mat-menu-item-trailing-spacing);-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);cursor:pointer;width:100%;text-align:left;box-sizing:border-box;color:inherit;font-size:inherit;background:none;text-decoration:none;margin:0;align-items:center;min-height:48px}.mat-mdc-menu-item:focus{outline:none}[dir=rtl] .mat-mdc-menu-item,.mat-mdc-menu-item[dir=rtl]{padding-left:var(--mat-menu-item-trailing-spacing);padding-right:var(--mat-menu-item-leading-spacing)}.mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon]){padding-left:var(--mat-menu-item-with-icon-leading-spacing);padding-right:var(--mat-menu-item-with-icon-trailing-spacing)}[dir=rtl] .mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon]),.mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon])[dir=rtl]{padding-left:var(--mat-menu-item-with-icon-trailing-spacing);padding-right:var(--mat-menu-item-with-icon-leading-spacing)}.mat-mdc-menu-item::-moz-focus-inner{border:0}.mat-mdc-menu-item,.mat-mdc-menu-item:visited,.mat-mdc-menu-item:link{color:var(--mat-menu-item-label-text-color)}.mat-mdc-menu-item .mat-icon-no-color,.mat-mdc-menu-item .mat-mdc-menu-submenu-icon{color:var(--mat-menu-item-icon-color)}.mat-mdc-menu-item[disabled]{cursor:default;opacity:.38}.mat-mdc-menu-item[disabled]::after{display:block;position:absolute;content:"";top:0;left:0;bottom:0;right:0}.mat-mdc-menu-item .mat-icon{flex-shrink:0;margin-right:var(--mat-menu-item-spacing);height:var(--mat-menu-item-icon-size);width:var(--mat-menu-item-icon-size)}[dir=rtl] .mat-mdc-menu-item{text-align:right}[dir=rtl] .mat-mdc-menu-item .mat-icon{margin-right:0;margin-left:var(--mat-menu-item-spacing)}.mat-mdc-menu-item:not([disabled]):hover{background-color:var(--mat-menu-item-hover-state-layer-color)}.mat-mdc-menu-item:not([disabled]).cdk-program-focused,.mat-mdc-menu-item:not([disabled]).cdk-keyboard-focused,.mat-mdc-menu-item:not([disabled]).mat-mdc-menu-item-highlighted{background-color:var(--mat-menu-item-focus-state-layer-color)}.cdk-high-contrast-active .mat-mdc-menu-item{margin-top:1px}.mat-mdc-menu-submenu-icon{width:var(--mat-menu-item-icon-size);height:10px;fill:currentColor;padding-left:var(--mat-menu-item-spacing)}[dir=rtl] .mat-mdc-menu-submenu-icon{right:auto;padding-right:var(--mat-menu-item-spacing);padding-left:0}.cdk-high-contrast-active .mat-mdc-menu-submenu-icon{fill:CanvasText}.mat-mdc-menu-item .mat-mdc-menu-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}'],encapsulation:2,data:{animation:[bT.transformMenu,bT.fadeInItems]},changeDetection:0})}}return n})();const hZ=new ut("mat-menu-scroll-strategy",{providedIn:"root",factory:()=>{const n=qt(Rs);return()=>n.scrollStrategies.reposition()}}),$ke={provide:hZ,deps:[Rs],useFactory:function Wke(n){return()=>n.scrollStrategies.reposition()}},fZ=Kp({passive:!0});let ab=(()=>{class n{get _deprecatedMatMenuTriggerFor(){return this.menu}set _deprecatedMatMenuTriggerFor(e){this.menu=e}get menu(){return this._menu}set menu(e){e!==this._menu&&(this._menu=e,this._menuCloseSubscription.unsubscribe(),e&&(this._menuCloseSubscription=e.close.subscribe(i=>{this._destroyMenu(i),("click"===i||"tab"===i)&&this._parentMaterialMenu&&this._parentMaterialMenu.closed.emit(i)})),this._menuItemInstance?._setTriggersSubmenu(this.triggersSubmenu()))}constructor(e,i,r,o,s,a,l,c,d){this._overlay=e,this._element=i,this._viewContainerRef=r,this._menuItemInstance=a,this._dir=l,this._focusMonitor=c,this._ngZone=d,this._overlayRef=null,this._menuOpen=!1,this._closingActionsSubscription=Kn.EMPTY,this._hoverSubscription=Kn.EMPTY,this._menuCloseSubscription=Kn.EMPTY,this._changeDetectorRef=qt(_o),this._handleTouchStart=u=>{ZP(u)||(this._openedBy="touch")},this._openedBy=void 0,this.restoreFocus=!0,this.menuOpened=new Bn,this.onMenuOpen=this.menuOpened,this.menuClosed=new Bn,this.onMenuClose=this.menuClosed,this._scrollStrategy=o,this._parentMaterialMenu=s instanceof wu?s:void 0,i.nativeElement.addEventListener("touchstart",this._handleTouchStart,fZ)}ngAfterContentInit(){this._handleHover()}ngOnDestroy(){this._overlayRef&&(this._overlayRef.dispose(),this._overlayRef=null),this._element.nativeElement.removeEventListener("touchstart",this._handleTouchStart,fZ),this._menuCloseSubscription.unsubscribe(),this._closingActionsSubscription.unsubscribe(),this._hoverSubscription.unsubscribe()}get menuOpen(){return this._menuOpen}get dir(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}triggersSubmenu(){return!!(this._menuItemInstance&&this._parentMaterialMenu&&this.menu)}toggleMenu(){return this._menuOpen?this.closeMenu():this.openMenu()}openMenu(){const e=this.menu;if(this._menuOpen||!e)return;const i=this._createOverlay(e),r=i.getConfig(),o=r.positionStrategy;this._setPosition(e,o),r.hasBackdrop=null==e.hasBackdrop?!this.triggersSubmenu():e.hasBackdrop,i.attach(this._getPortal(e)),e.lazyContent&&e.lazyContent.attach(this.menuData),this._closingActionsSubscription=this._menuClosingActions().subscribe(()=>this.closeMenu()),this._initMenu(e),e instanceof wu&&(e._startAnimation(),e._directDescendantItems.changes.pipe(to(e.close)).subscribe(()=>{o.withLockedPosition(!1).reapplyLastPosition(),o.withLockedPosition(!0)}))}closeMenu(){this.menu?.close.emit()}focus(e,i){this._focusMonitor&&e?this._focusMonitor.focusVia(this._element,e,i):this._element.nativeElement.focus(i)}updatePosition(){this._overlayRef?.updatePosition()}_destroyMenu(e){if(!this._overlayRef||!this.menuOpen)return;const i=this.menu;this._closingActionsSubscription.unsubscribe(),this._overlayRef.detach(),this.restoreFocus&&("keydown"===e||!this._openedBy||!this.triggersSubmenu())&&this.focus(this._openedBy),this._openedBy=void 0,i instanceof wu?(i._resetAnimation(),i.lazyContent?i._animationDone.pipe(Vi(r=>"void"===r.toState),zo(1),to(i.lazyContent._attached)).subscribe({next:()=>i.lazyContent.detach(),complete:()=>this._setIsMenuOpen(!1)}):this._setIsMenuOpen(!1)):(this._setIsMenuOpen(!1),i?.lazyContent?.detach())}_initMenu(e){e.parentMenu=this.triggersSubmenu()?this._parentMaterialMenu:void 0,e.direction=this.dir,this._setMenuElevation(e),e.focusFirstItem(this._openedBy||"program"),this._setIsMenuOpen(!0)}_setMenuElevation(e){if(e.setElevation){let i=0,r=e.parentMenu;for(;r;)i++,r=r.parentMenu;e.setElevation(i)}}_setIsMenuOpen(e){e!==this._menuOpen&&(this._menuOpen=e,this._menuOpen?this.menuOpened.emit():this.menuClosed.emit(),this.triggersSubmenu()&&this._menuItemInstance._setHighlighted(e),this._changeDetectorRef.markForCheck())}_createOverlay(e){if(!this._overlayRef){const i=this._getOverlayConfig(e);this._subscribeToPositions(e,i.positionStrategy),this._overlayRef=this._overlay.create(i),this._overlayRef.keydownEvents().subscribe()}return this._overlayRef}_getOverlayConfig(e){return new f2({positionStrategy:this._overlay.position().flexibleConnectedTo(this._element).withLockedPosition().withGrowAfterOpen().withTransformOriginOn(".mat-menu-panel, .mat-mdc-menu-panel"),backdropClass:e.backdropClass||"cdk-overlay-transparent-backdrop",panelClass:e.overlayPanelClass,scrollStrategy:this._scrollStrategy(),direction:this._dir})}_subscribeToPositions(e,i){e.setPositionClasses&&i.positionChanges.subscribe(r=>{const o="start"===r.connectionPair.overlayX?"after":"before",s="top"===r.connectionPair.overlayY?"below":"above";this._ngZone?this._ngZone.run(()=>e.setPositionClasses(o,s)):e.setPositionClasses(o,s)})}_setPosition(e,i){let[r,o]="before"===e.xPosition?["end","start"]:["start","end"],[s,a]="above"===e.yPosition?["bottom","top"]:["top","bottom"],[l,c]=[s,a],[d,u]=[r,o],h=0;if(this.triggersSubmenu()){if(u=r="before"===e.xPosition?"start":"end",o=d="end"===r?"start":"end",this._parentMaterialMenu){if(null==this._parentInnerPadding){const f=this._parentMaterialMenu.items.first;this._parentInnerPadding=f?f._getHostElement().offsetTop:0}h="bottom"===s?this._parentInnerPadding:-this._parentInnerPadding}}else e.overlapTrigger||(l="top"===s?"bottom":"top",c="top"===a?"bottom":"top");i.withPositions([{originX:r,originY:l,overlayX:d,overlayY:s,offsetY:h},{originX:o,originY:l,overlayX:u,overlayY:s,offsetY:h},{originX:r,originY:c,overlayX:d,overlayY:a,offsetY:-h},{originX:o,originY:c,overlayX:u,overlayY:a,offsetY:-h}])}_menuClosingActions(){const e=this._overlayRef.backdropClick(),i=this._overlayRef.detachments();return ql(e,this._parentMaterialMenu?this._parentMaterialMenu.closed:ol(),this._parentMaterialMenu?this._parentMaterialMenu._hovered().pipe(Vi(s=>s!==this._menuItemInstance),Vi(()=>this._menuOpen)):ol(),i)}_handleMousedown(e){YP(e)||(this._openedBy=0===e.button?"mouse":void 0,this.triggersSubmenu()&&e.preventDefault())}_handleKeydown(e){const i=e.keyCode;(13===i||32===i)&&(this._openedBy="keyboard"),this.triggersSubmenu()&&(39===i&&"ltr"===this.dir||37===i&&"rtl"===this.dir)&&(this._openedBy="keyboard",this.openMenu())}_handleClick(e){this.triggersSubmenu()?(e.stopPropagation(),this.openMenu()):this.toggleMenu()}_handleHover(){!this.triggersSubmenu()||!this._parentMaterialMenu||(this._hoverSubscription=this._parentMaterialMenu._hovered().pipe(Vi(e=>e===this._menuItemInstance&&!e.disabled),uZ(0,BP)).subscribe(()=>{this._openedBy="mouse",this.menu instanceof wu&&this.menu._isAnimating?this.menu._animationDone.pipe(zo(1),uZ(0,BP),to(this._parentMaterialMenu._hovered())).subscribe(()=>this.openMenu()):this.openMenu()}))}_getPortal(e){return(!this._portal||this._portal.templateRef!==e.templateRef)&&(this._portal=new M1(e.templateRef,this._viewContainerRef)),this._portal}static{this.\u0275fac=function(i){return new(i||n)($(Rs),$(Vn),$(ua),$(hZ),$(cO,8),$(_T,10),$(wh,8),$(Ch),$(kn))}}static{this.\u0275dir=$t({type:n,selectors:[["","mat-menu-trigger-for",""],["","matMenuTriggerFor",""]],hostAttrs:[1,"mat-mdc-menu-trigger"],hostVars:3,hostBindings:function(i,r){1&i&&We("click",function(s){return r._handleClick(s)})("mousedown",function(s){return r._handleMousedown(s)})("keydown",function(s){return r._handleKeydown(s)}),2&i&&fi("aria-haspopup",r.menu?"menu":null)("aria-expanded",r.menuOpen)("aria-controls",r.menuOpen?r.menu.panelId:null)},inputs:{_deprecatedMatMenuTriggerFor:[Ct.None,"mat-menu-trigger-for","_deprecatedMatMenuTriggerFor"],menu:[Ct.None,"matMenuTriggerFor","menu"],menuData:[Ct.None,"matMenuTriggerData","menuData"],restoreFocus:[Ct.None,"matMenuTriggerRestoreFocus","restoreFocus"]},outputs:{menuOpened:"menuOpened",onMenuOpen:"onMenuOpen",menuClosed:"menuClosed",onMenuClose:"onMenuClose"},exportAs:["matMenuTrigger"],standalone:!0})}}return n})(),dO=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({providers:[$ke],imports:[gn,e_,hr,T1,x1,hr]})}}return n})();const jke=["colorPickerMenuTrigger"],Xke=(n,t)=>({isOpen:n,isHovered:t});let mZ=(()=>{class n{constructor(){this.openXPosition="after",this.onColorChange=new Bn,this.isHovered=!1,this.isClickInside=!1}handleChangeComplete(e){this.onColorChange.emit(e)}onMouseEnter(){this.isHovered=!0}onMouseLeave(){this.isHovered=!1}onClick(){this.isClickInside=!0,this.colorPickerMenuTrigger.openMenu()}handleDocumentClick(){!this.isClickInside&&this.colorPickerMenuTrigger.menuOpen&&this.colorPickerMenuTrigger.closeMenu(),this.isClickInside=!1}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-color-picker"]],viewQuery:function(i,r){if(1&i&&ei(jke,5),2&i){let o;un(o=hn())&&(r.colorPickerMenuTrigger=o.first)}},hostBindings:function(i,r){1&i&&We("mouseenter",function(){return r.onMouseEnter()})("mouseleave",function(){return r.onMouseLeave()})("click",function(){return r.onClick()})("click",function(){return r.handleDocumentClick()},!1,v8)},inputs:{hexColor:"hexColor",openXPosition:"openXPosition",triggerTemplate:"triggerTemplate"},outputs:{onColorChange:"onColorChange"},decls:6,vars:10,consts:[["colorPickerMenuTrigger","matMenuTrigger"],["menu","matMenu"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],[3,"matMenuTriggerFor"],[1,"cc-color-picker-menu",3,"xPosition","hasBackdrop"],["role","colorpicker",3,"click","onChangeComplete","disableAlpha","color"]],template:function(i,r){if(1&i){const o=Pn();E0(0,2),xe(1,"span",3,0),P(3,"mat-menu",4,1)(5,"color-chrome",5),We("click",function(a){return Vt(o),Ot(a.stopPropagation())})("onChangeComplete",function(a){return Vt(o),Ot(r.handleChangeComplete(a.color.hex))}),H()()}if(2&i){const o=Po(2),s=Po(4);pe("ngTemplateOutlet",r.triggerTemplate)("ngTemplateOutletContext",rl(7,Xke,o.menuOpen,r.isHovered)),U(),pe("matMenuTriggerFor",s),U(2),pe("xPosition",r.openXPosition)("hasBackdrop",!1),U(2),pe("disableAlpha",!0)("color",r.hexColor)}},dependencies:[Sy,Bke,wu,ab],encapsulation:2})}}return n})(),Yke=(()=>{class n{transform(e){return(n=>(299*Number.parseInt(n.slice(1,3),16)+587*Number.parseInt(n.slice(3,5),16)+114*Number.parseInt(n.slice(5,7),16))/1e3>=128?"black":"white")(e)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=dr({name:"readableColorForBackground",type:n,pure:!0})}}return n})();function Zke(n,t){1&n&&xe(0,"br")}function Jke(n,t){if(1&n&&(P(0,"span"),we(1),At(2,Zke,1,0,"br"),H()),2&n){const e=t.$implicit,i=t.$index,r=t.$count;U(),cn(" ",e," "),U(),It(2,i!==r-1?2:-1)}}function eBe(n,t){if(1&n&&(P(0,"div",2)(1,"div",3),xe(2,"span",4)(3,"span",5),$e(4,"readableColorForBackground"),H(),P(5,"div",6),Rr(6,Jke,3,2,"span",null,Hr),H()()),2&n){const e=t.isOpen,i=t.isHovered,r=He();U(2),Hi("background-color",r.hexColor),U(),Hi("color",rt(4,6,r.hexColor))("opacity",i||e?"1":"0"),U(3),Lr(r.labels)}}let uO=(()=>{class n{constructor(){this.onColorChange=new Bn}handleColorChange(e){this.onColorChange.emit(e)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-labelled-color-picker"]],inputs:{hexColor:"hexColor",labels:"labels"},outputs:{onColorChange:"onColorChange"},decls:3,vars:3,consts:[["colorPickerTriggerTemplate",""],[3,"onColorChange","hexColor","openXPosition","triggerTemplate"],[1,"cc-labelled-color-picker-container"],[1,"cc-color-swatch-container"],[1,"cc-color-swatch"],[1,"cc-color-brush","fa","fa-paint-brush"],[1,"cc-labelled-color-picker-label"]],template:function(i,r){if(1&i){const o=Pn();P(0,"cc-color-picker",1),We("onColorChange",function(a){return Vt(o),Ot(r.handleColorChange(a))}),H(),At(1,eBe,8,8,"ng-template",null,0,Qf)}if(2&i){const o=Po(2);pe("hexColor",r.hexColor)("openXPosition","before")("triggerTemplate",o)}},dependencies:[mZ,Yke],styles:[".cc-labelled-color-picker-container[_ngcontent-%COMP%]{display:flex;height:40px;align-items:center}.cc-labelled-color-picker-container[_ngcontent-%COMP%]:hover{cursor:pointer}.cc-labelled-color-picker-container[_ngcontent-%COMP%] .cc-color-swatch-container[_ngcontent-%COMP%]{position:relative;margin:0 11px;width:18px;height:18px}.cc-labelled-color-picker-container[_ngcontent-%COMP%] .cc-color-swatch-container[_ngcontent-%COMP%] .cc-color-swatch[_ngcontent-%COMP%]{display:inline-block;width:inherit;height:inherit;border-radius:2px;border:1px solid black}.cc-labelled-color-picker-container[_ngcontent-%COMP%] .cc-color-swatch-container[_ngcontent-%COMP%] .cc-color-brush[_ngcontent-%COMP%]{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);opacity:0}.cc-labelled-color-picker-container[_ngcontent-%COMP%] > .cc-labelled-color-picker-label[_ngcontent-%COMP%]{white-space:nowrap;text-overflow:ellipsis;direction:rtl}.cc-labelled-color-picker-container[_ngcontent-%COMP%] > .cc-labelled-color-picker-label[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{unicode-bidi:plaintext}"]})}}return n})();function tBe(n,t){if(1&n){const e=Pn();P(0,"cc-labelled-color-picker",1),We("onColorChange",function(r){const o=Vt(e).$implicit;return Ot(He(2).handleColorChange(r,o.value))}),H()}if(2&n){const e=t.$implicit;pe("hexColor",e.key)("labels",e.value)}}function nBe(n,t){if(1&n&&(xe(0,"hr"),Rr(1,tBe,1,2,"cc-labelled-color-picker",0,function Y7(){return Pt()[go][Gr]}().trackMarkedPackage,!0),$e(3,"async"),$e(4,"keyvalue")),2&n){const e=He();U(),Lr(Mo(4,2,rt(3,0,e.markedPackagesMap$),e.sortMarkedPackagesMap))}}let iBe=(()=>{class n{constructor(e){this.store=e,this.markedPackagesMap$=e.select(eke),this.hasMarkedPackages$=this.markedPackagesMap$.pipe(Ge(i=>Object.keys(i).length>0))}handleColorChange(e,i){this.store.dispatch(f1({packages:i.map(r=>({color:e,path:r}))}))}trackMarkedPackage(e,{value:i}){return i.join(",")}sortMarkedPackagesMap(e,i){return e.value[0].localeCompare(i.value[0])}static{this.\u0275fac=function(i){return new(i||n)($(Xt))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-legend-marked-packages"]],decls:2,vars:3,consts:[[3,"hexColor","labels"],[3,"onColorChange","hexColor","labels"]],template:function(i,r){1&i&&(At(0,nBe,5,5),$e(1,"async")),2&i&&It(0,rt(1,1,r.hasMarkedPackages$)?0:-1)},dependencies:[uO,Yn,nE],styles:["[_nghost-%COMP%] cc-labelled-color-picker[_ngcontent-%COMP%]{display:block}"]})}}return n})();const pZ=Zt(tc,n=>n.colorRange);let rBe=(()=>{class n{transform(e,i,r,o){switch(e){case"positive":return"unary"===o?`${r.minValue} - ${r.maxValue}`:r.minValue===i.from?"-":r.maxValue===i.from?`${r.minValue} to ${this.formatNumber(i.from)}`:`${r.minValue} to ${this.formatNumber(i.from-1)}`;case"neutral":return i.from===i.to?"-":i.to===r.maxValue?`${this.formatNumber(i.from)} to ${this.formatNumber(i.to)}`:`${this.formatNumber(i.from)} to ${this.formatNumber(i.to-1)}`;case"negative":return r.maxValue===i.to?"-":`${this.formatNumber(i.to)} to ${this.formatNumber(r.maxValue)}`;case"positiveDelta":return"+\u0394 positive delta";case"negativeDelta":return"\u2013\u0394 negative delta";case"selected":return"selected";case"outgoingEdge":return"Outgoing Edge";case"incomingEdge":return"Incoming Edge"}}formatNumber(e){return(e||0).toLocaleString()}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=dr({name:"mapColorLabel",type:n,pure:!0})}}return n})();const oBe=n=>[n];let hO=(()=>{class n{constructor(e){this.store=e,this.colorMetric$=this.store.select(Sm),this.mapColors$=this.store.select(eb),this.colorRange$=this.store.select(pZ),this.nodeMetricRange$=this.store.select($h)}handleColorChange(e){this.store.dispatch(ph({value:{[this.mapColorFor]:e}}))}static{this.\u0275fac=function(i){return new(i||n)($(Xt))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-color-picker-for-map-color"]],inputs:{mapColorFor:"mapColorFor"},decls:6,vars:17,consts:[[3,"onColorChange","hexColor","labels"]],template:function(i,r){1&i&&(P(0,"cc-labelled-color-picker",0),$e(1,"async"),$e(2,"async"),$e(3,"async"),$e(4,"async"),$e(5,"mapColorLabel"),We("onColorChange",function(s){return r.handleColorChange(s)}),H()),2&i&&pe("hexColor",rt(1,2,r.mapColors$)[r.mapColorFor])("labels",function a9(n,t,e,i){return l9(Pt(),Qs(),n,t,e,i)}(15,oBe,f9(5,10,r.mapColorFor,rt(2,4,r.colorRange$),rt(3,6,r.nodeMetricRange$),rt(4,8,r.colorMetric$))))},dependencies:[uO,Yn,rBe],encapsulation:2})}}return n})();function sBe(n,t){if(1&n&&(P(0,"a",2)(1,"span",3),we(2),H(),we(3),xe(4,"i",4),H()),2&n){const e=He(),i=He(2);pe("href",t,Sp),U(2),Mr(e),U(),cn(" (",i.metricName,") ")}}function aBe(n,t){if(1&n&&(P(0,"span",3),we(1),H(),we(2)),2&n){const e=He(),i=He(2);U(),Mr(e),U(),cn(" (",i.metricName,") ")}}function lBe(n,t){if(1&n&&(xM(0,0),P(1,"div",1),$e(2,"attributeDescriptorTooltip"),we(3),At(4,sBe,5,3,"a",2)(5,aBe,3,2),H(),CM()),2&n){let e;const i=He(),r=He();U(),pe("title",Mo(2,3,i[r.metricName],r.metricName)),U(2),cn(" ",r.metricSpecification," metric: "),U(),It(4,(e=i[r.metricName].link)?4:5,e)}}function cBe(n,t){if(1&n&&(P(0,"span",3),we(1),H(),we(2)),2&n){const e=He(3);U(),Mr(t),U(),cn(" (",e.metricName,") ")}}function dBe(n,t){if(1&n&&(P(0,"span",3),we(1),H()),2&n){const e=He(3);U(),cn(" ",e.metricName," ")}}function uBe(n,t){if(1&n&&(P(0,"div"),we(1),At(2,cBe,3,2)(3,dBe,2,1),H()),2&n){let e;const i=He(2);U(),cn(" ",i.metricSpecification," metric: "),U(),It(2,(e=i.fallbackTitles.get(i.metricName))?2:3,e)}}function hBe(n,t){if(1&n&&At(0,lBe,6,6,"ng-container",0)(1,uBe,4,2),2&n){let e;const i=t,r=He();It(0,(e=null==i[r.metricName]?null:i[r.metricName].title)?0:1,e)}}let fBe=(()=>{class n{constructor(e){this.store=e,this.attributeDescriptors$=this.store.select(fT),this.fallbackTitles=ob}static{this.\u0275fac=function(i){return new(i||n)($(Xt))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-legend-block"]],inputs:{metricName:"metricName",metricSpecification:"metricSpecification"},decls:2,vars:3,consts:[[1,"legend-block"],[3,"title"],["target","_blank",3,"href"],[1,"bold"],[1,"fa","fa-external-link"]],template:function(i,r){if(1&i&&(At(0,hBe,2,1),$e(1,"async")),2&i){let o;It(0,(o=rt(1,1,r.attributeDescriptors$))?0:-1,o)}},dependencies:[Yn,pT],styles:["[_nghost-%COMP%] a[_ngcontent-%COMP%]:link, [_nghost-%COMP%] a[_ngcontent-%COMP%]:visited{text-decoration:none;color:#000}[_nghost-%COMP%] a[_ngcontent-%COMP%]:hover{color:#00f;-webkit-text-decoration:solid;text-decoration:solid;text-decoration-line:underline}[_nghost-%COMP%] a[_ngcontent-%COMP%]:active{color:red}[_nghost-%COMP%] i.fa.fa-external-link[_ngcontent-%COMP%]{font-size:10px;min-width:10px;text-align:center}[_nghost-%COMP%] span[_ngcontent-%COMP%]{display:inline-block}[_nghost-%COMP%] span.bold[_ngcontent-%COMP%]{font-weight:600}"]})}}return n})();function mBe(n,t){1&n&&xe(0,"cc-legend-block",5),2&n&&pe("metricName",t)}function pBe(n,t){if(1&n&&(P(0,"div"),xe(1,"cc-legend-block",3),$e(2,"async"),xe(3,"cc-legend-block",4),$e(4,"async"),At(5,mBe,1,1,"cc-legend-block",5),$e(6,"async"),xe(7,"hr")(8,"cc-legend-block",6),$e(9,"async"),xe(10,"cc-color-picker-for-map-color",1)(11,"cc-color-picker-for-map-color",1)(12,"cc-color-picker-for-map-color",1),H()),2&n){let e;const i=He();U(),pe("metricName",rt(2,7,i.areaMetric$)),U(2),pe("metricName",rt(4,9,i.heightMetric$)),U(2),It(5,(e=rt(6,11,i.edgeMetric$))?5:-1,e),U(3),pe("metricName",rt(9,13,i.colorMetric$)),U(2),pe("mapColorFor","positive"),U(),pe("mapColorFor","neutral"),U(),pe("mapColorFor","negative")}}function ABe(n,t){1&n&&(P(0,"div"),xe(1,"cc-color-picker-for-map-color",1)(2,"cc-color-picker-for-map-color",1),H()),2&n&&(U(),pe("mapColorFor","positiveDelta"),U(),pe("mapColorFor","negativeDelta"))}function gBe(n,t){1&n&&xe(0,"hr")(1,"cc-color-picker-for-map-color",1)(2,"cc-color-picker-for-map-color",1),2&n&&(U(),pe("mapColorFor","outgoingEdge"),U(),pe("mapColorFor","incomingEdge"))}let _Be=(()=>{class n{constructor(e,i){this.store=e,this.isAttributeSideBarVisibleService=i,this.isLegendVisible=!1,this.isDeltaState$=this.store.select(Im),this.heightMetric$=this.store.select(Pw),this.areaMetric$=this.store.select(rb),this.colorMetric$=this.store.select(Sm),this.edgeMetric$=this.store.select(Xh)}toggleIsLegendVisible(){this.isLegendVisible=!this.isLegendVisible}static{this.\u0275fac=function(i){return new(i||n)($(Xt),$(cT))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-legend-panel"]],decls:11,vars:14,consts:[["id","legend-panel",1,"block-wrapper"],[3,"mapColorFor"],["mat-button","","id","legend-panel-button",1,"panel-button",3,"click","title"],["metricSpecification","Area",3,"metricName"],["metricSpecification","Height",3,"metricName"],["metricSpecification","Edge",3,"metricName"],["metricSpecification","Color",3,"metricName"]],template:function(i,r){1&i&&(P(0,"div",0),At(1,pBe,13,15,"div"),$e(2,"async"),At(3,ABe,3,2),xe(4,"hr")(5,"cc-color-picker-for-map-color",1),At(6,gBe,3,2),$e(7,"async"),xe(8,"cc-legend-marked-packages"),H(),P(9,"button",2),We("click",function(){return r.toggleIsLegendVisible()}),we(10," LEGEND\n"),H()),2&i&&(Qn("visible",r.isLegendVisible)("isAttributeSideBarVisible",r.isAttributeSideBarVisibleService.isOpen),U(),It(1,rt(2,10,r.isDeltaState$)?3:1),U(4),pe("mapColorFor","selected"),U(),It(6,rt(7,12,r.edgeMetric$)?6:-1),U(3),Qn("isAttributeSideBarVisible",r.isAttributeSideBarVisibleService.isOpen),ka("title",r.isLegendVisible?"Hide panel":"Show panel"))},dependencies:[vs,iBe,hO,fBe,Yn],styles:["[_nghost-%COMP%] .rotated-button[_ngcontent-%COMP%], [_nghost-%COMP%] .panel-button[_ngcontent-%COMP%]{position:fixed;transform:rotate(90deg);border-radius:0 0 5px 5px;height:36px;right:-35px;color:#fff;-webkit-user-select:none;user-select:none;background-color:#1b9cfc}[_nghost-%COMP%] .rotated-button[_ngcontent-%COMP%]:hover, [_nghost-%COMP%] .panel-button[_ngcontent-%COMP%]:hover{background-color:#0374c9}[_nghost-%COMP%] .rotated-button.isAttributeSideBarVisible[_ngcontent-%COMP%], [_nghost-%COMP%] .isAttributeSideBarVisible.panel-button[_ngcontent-%COMP%]{right:316px}[_nghost-%COMP%] .panel-button[_ngcontent-%COMP%]{margin:6px 8px;bottom:55px;width:88px;font-size:10pt;transition:right .3s ease}[_nghost-%COMP%] .block-wrapper[_ngcontent-%COMP%]{background-color:#fff;border:1px solid #cdcdcd;position:fixed;bottom:35px;padding:10px;right:40px;visibility:hidden;border-radius:5px;min-width:200px;max-width:30%;transition:right .3s ease}[_nghost-%COMP%] .block-wrapper.isAttributeSideBarVisible[_ngcontent-%COMP%]{right:390px}[_nghost-%COMP%] .block-wrapper.visible[_ngcontent-%COMP%]{visibility:visible}[_nghost-%COMP%] .block-wrapper[_ngcontent-%COMP%] hr[_ngcontent-%COMP%]{border-right-style:none;border-left-style:none;border-bottom-style:none;color:#000}"]})}}return n})();const bBe=["*"],wBe=[[["","mat-card-avatar",""],["","matCardAvatar",""]],[["mat-card-title"],["mat-card-subtitle"],["","mat-card-title",""],["","mat-card-subtitle",""],["","matCardTitle",""],["","matCardSubtitle",""]],"*"],xBe=["[mat-card-avatar], [matCardAvatar]","mat-card-title, mat-card-subtitle,\n [mat-card-title], [mat-card-subtitle],\n [matCardTitle], [matCardSubtitle]","*"],CBe=new ut("MAT_CARD_CONFIG");let Nw=(()=>{class n{constructor(e){this.appearance=e?.appearance||"raised"}static{this.\u0275fac=function(i){return new(i||n)($(CBe,8))}}static{this.\u0275cmp=vt({type:n,selectors:[["mat-card"]],hostAttrs:[1,"mat-mdc-card","mdc-card"],hostVars:4,hostBindings:function(i,r){2&i&&Qn("mat-mdc-card-outlined","outlined"===r.appearance)("mdc-card--outlined","outlined"===r.appearance)},inputs:{appearance:"appearance"},exportAs:["matCard"],standalone:!0,features:[Or],ngContentSelectors:bBe,decls:1,vars:0,template:function(i,r){1&i&&($r(),Gn(0))},styles:['.mdc-card{display:flex;flex-direction:column;box-sizing:border-box}.mdc-card::after{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none;pointer-events:none}@media screen and (forced-colors: active){.mdc-card::after{border-color:CanvasText}}.mdc-card--outlined::after{border:none}.mdc-card__content{border-radius:inherit;height:100%}.mdc-card__media{position:relative;box-sizing:border-box;background-repeat:no-repeat;background-position:center;background-size:cover}.mdc-card__media::before{display:block;content:""}.mdc-card__media:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.mdc-card__media:last-child{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.mdc-card__media--square::before{margin-top:100%}.mdc-card__media--16-9::before{margin-top:56.25%}.mdc-card__media-content{position:absolute;top:0;right:0;bottom:0;left:0;box-sizing:border-box}.mdc-card__primary-action{display:flex;flex-direction:column;box-sizing:border-box;position:relative;outline:none;color:inherit;text-decoration:none;cursor:pointer;overflow:hidden}.mdc-card__primary-action:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.mdc-card__primary-action:last-child{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.mdc-card__actions{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;min-height:52px;padding:8px}.mdc-card__actions--full-bleed{padding:0}.mdc-card__action-buttons,.mdc-card__action-icons{display:flex;flex-direction:row;align-items:center;box-sizing:border-box}.mdc-card__action-icons{color:rgba(0, 0, 0, 0.6);flex-grow:1;justify-content:flex-end}.mdc-card__action-buttons+.mdc-card__action-icons{margin-left:16px;margin-right:0}[dir=rtl] .mdc-card__action-buttons+.mdc-card__action-icons,.mdc-card__action-buttons+.mdc-card__action-icons[dir=rtl]{margin-left:0;margin-right:16px}.mdc-card__action{display:inline-flex;flex-direction:row;align-items:center;box-sizing:border-box;justify-content:center;cursor:pointer;user-select:none}.mdc-card__action:focus{outline:none}.mdc-card__action--button{margin-left:0;margin-right:8px;padding:0 8px}[dir=rtl] .mdc-card__action--button,.mdc-card__action--button[dir=rtl]{margin-left:8px;margin-right:0}.mdc-card__action--button:last-child{margin-left:0;margin-right:0}[dir=rtl] .mdc-card__action--button:last-child,.mdc-card__action--button:last-child[dir=rtl]{margin-left:0;margin-right:0}.mdc-card__actions--full-bleed .mdc-card__action--button{justify-content:space-between;width:100%;height:auto;max-height:none;margin:0;padding:8px 16px;text-align:left}[dir=rtl] .mdc-card__actions--full-bleed .mdc-card__action--button,.mdc-card__actions--full-bleed .mdc-card__action--button[dir=rtl]{text-align:right}.mdc-card__action--icon{margin:-6px 0;padding:12px}.mdc-card__action--icon:not(:disabled){color:rgba(0, 0, 0, 0.6)}.mat-mdc-card{border-radius:var(--mdc-elevated-card-container-shape);background-color:var(--mdc-elevated-card-container-color);border-width:0;border-style:solid;border-color:var(--mdc-elevated-card-container-color);box-shadow:var(--mdc-elevated-card-container-elevation)}.mat-mdc-card .mdc-card::after{border-radius:var(--mdc-elevated-card-container-shape)}.mat-mdc-card-outlined{border-width:var(--mdc-outlined-card-outline-width);border-style:solid;border-color:var(--mdc-outlined-card-outline-color);border-radius:var(--mdc-outlined-card-container-shape);background-color:var(--mdc-outlined-card-container-color);box-shadow:var(--mdc-outlined-card-container-elevation)}.mat-mdc-card-outlined .mdc-card::after{border-radius:var(--mdc-outlined-card-container-shape)}.mat-mdc-card-title{font-family:var(--mat-card-title-text-font);line-height:var(--mat-card-title-text-line-height);font-size:var(--mat-card-title-text-size);letter-spacing:var(--mat-card-title-text-tracking);font-weight:var(--mat-card-title-text-weight)}.mat-mdc-card-subtitle{color:var(--mat-card-subtitle-text-color);font-family:var(--mat-card-subtitle-text-font);line-height:var(--mat-card-subtitle-text-line-height);font-size:var(--mat-card-subtitle-text-size);letter-spacing:var(--mat-card-subtitle-text-tracking);font-weight:var(--mat-card-subtitle-text-weight)}.mat-mdc-card{position:relative}.mat-mdc-card-title,.mat-mdc-card-subtitle{display:block;margin:0}.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-title,.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-subtitle{padding:16px 16px 0}.mat-mdc-card-header{display:flex;padding:16px 16px 0}.mat-mdc-card-content{display:block;padding:0 16px}.mat-mdc-card-content:first-child{padding-top:16px}.mat-mdc-card-content:last-child{padding-bottom:16px}.mat-mdc-card-title-group{display:flex;justify-content:space-between;width:100%}.mat-mdc-card-avatar{height:40px;width:40px;border-radius:50%;flex-shrink:0;margin-bottom:16px;object-fit:cover}.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-subtitle,.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-title{line-height:normal}.mat-mdc-card-sm-image{width:80px;height:80px}.mat-mdc-card-md-image{width:112px;height:112px}.mat-mdc-card-lg-image{width:152px;height:152px}.mat-mdc-card-xl-image{width:240px;height:240px}.mat-mdc-card-subtitle~.mat-mdc-card-title,.mat-mdc-card-title~.mat-mdc-card-subtitle,.mat-mdc-card-header .mat-mdc-card-header-text .mat-mdc-card-title,.mat-mdc-card-header .mat-mdc-card-header-text .mat-mdc-card-subtitle,.mat-mdc-card-title-group .mat-mdc-card-title,.mat-mdc-card-title-group .mat-mdc-card-subtitle{padding-top:0}.mat-mdc-card-content>:last-child:not(.mat-mdc-card-footer){margin-bottom:0}.mat-mdc-card-actions-align-end{justify-content:flex-end}'],encapsulation:2,changeDetection:0})}}return n})(),AZ=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=$t({type:n,selectors:[["mat-card-content"]],hostAttrs:[1,"mat-mdc-card-content"],standalone:!0})}}return n})(),gZ=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=vt({type:n,selectors:[["mat-card-header"]],hostAttrs:[1,"mat-mdc-card-header"],standalone:!0,features:[Or],ngContentSelectors:xBe,decls:4,vars:0,consts:[[1,"mat-mdc-card-header-text"]],template:function(i,r){1&i&&($r(wBe),Gn(0),P(1,"div",0),Gn(2,1),H(),Gn(3,2))},encapsulation:2,changeDetection:0})}}return n})(),_Z=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[hr,gn,hr]})}}return n})();const bZ=Zt(no,n=>n.isSearchPanelPinned),IBe=["*"];let fO=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-ribbon-bar-panel-settings"]],ngContentSelectors:IBe,decls:1,vars:0,template:function(i,r){1&i&&($r(),Gn(0))},styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;padding:6px;position:absolute;max-width:400px;left:6px;top:45px;background:#fff;border:1px solid #b5b5b5;box-shadow:0 1px 3px #0003,0 1px 1px #00000024,0 2px 1px -1px #0000001f}"]})}}return n})();const FBe=["toggle"],DBe=["toggleHeader"],kBe=[[["cc-ribbon-bar-panel-settings"]],[["",8,"toggleheader"]],"*"],BBe=["cc-ribbon-bar-panel-settings",".toggleHeader","*"];function PBe(n,t){if(1&n){const e=Pn();P(0,"div",6,0),We("click",function(){return Vt(e),Ot(He().toggleSettings())}),Gn(2,1),H()}}function RBe(n,t){1&n&&(P(0,"div",4),Gn(1,2),H())}function LBe(n,t){1&n&&xe(0,"i"),2&n&&nl("fa fa-angle-"+(He(2).isExpanded?"up":"down"))}function OBe(n,t){if(1&n){const e=Pn();P(0,"div",7,1),We("click",function(){return Vt(e),Ot(He().toggleSettings())}),we(2),At(3,LBe,1,2,"i",8),H()}if(2&n){const e=He();U(2),cn(" ",e.title," "),U(),It(3,e.hasSettings?3:-1)}}let mO=(()=>{class n{get hasSettings(){return!!this.settingsRef}constructor(e){this.viewReference=e,this.collapseOnPanelClick=!0,this.separator=!1,this.isExpanded=!1,this.isHeaderExpandable=!1,this.isPinned=!1,this.onToggleSettings=new Bn}ngOnInit(){this.mouseDownListener=e=>this.collapseOnOutsideClick(e),document.addEventListener("mousedown",this.mouseDownListener)}ngOnDestroy(){this.mouseDownListener&&document.removeEventListener("mousedown",this.mouseDownListener)}toggleSettings(){this.isExpanded=!this.isExpanded,this.onToggleSettings.emit(this.isExpanded)}collapseOnOutsideClick(e){if(this.isPinned)return;const i=e.target,r=document.querySelector(".cdk-overlay-container"),o=this.viewReference.element.nativeElement.contains(i),s=!!r&&r.contains(i),a=this.settingsRef?.nativeElement?.contains(i)??!1,l=this.toggleSettingsRef.nativeElement.contains(i),c=this.toggleHeaderRef?.nativeElement.contains(i)??!1;!s&&!a&&!l&&!c&&(!o||this.collapseOnPanelClick)&&(this.isExpanded=!1)}static{this.\u0275fac=function(i){return new(i||n)($(ua))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-ribbon-bar-panel"]],contentQueries:function(i,r,o){if(1&i&&Vr(o,fO,5,Vn),2&i){let s;un(s=hn())&&(r.settingsRef=s.first)}},viewQuery:function(i,r){if(1&i&&(ei(FBe,5),ei(DBe,5)),2&i){let o;un(o=hn())&&(r.toggleSettingsRef=o.first),un(o=hn())&&(r.toggleHeaderRef=o.first)}},hostVars:6,hostBindings:function(i,r){2&i&&Qn("separator",r.separator)("expanded",r.isExpanded)("expandable",r.hasSettings)},inputs:{title:"title",collapseOnPanelClick:"collapseOnPanelClick",separator:"separator",isHeaderExpandable:"isHeaderExpandable",isPinned:"isPinned"},outputs:{onToggleSettings:"onToggleSettings"},ngContentSelectors:BBe,decls:6,vars:2,consts:[["toggleHeader",""],["toggle",""],["appearance","outlined"],[1,"section"],[1,"section-header"],[1,"section-title"],[1,"section-header",3,"click"],[1,"section-title",3,"click"],[3,"class"]],template:function(i,r){1&i&&($r(kBe),P(0,"mat-card",2)(1,"div",3),At(2,PBe,3,0,"div",4)(3,RBe,2,0)(4,OBe,4,2,"div",5),H(),Gn(5),H()),2&i&&(U(2),It(2,r.isHeaderExpandable?2:3),U(2),It(4,r.title||r.hasSettings?4:-1))},dependencies:[Nw],styles:["mat-card[_ngcontent-%COMP%]{padding:0;height:46px;border-radius:0;border-top:1px solid #cdcdcd;flex:1 1 0}[_nghost-%COMP%]:not(.expanded) mat-card[_ngcontent-%COMP%]{overflow:hidden}.section[_ngcontent-%COMP%] .section-header[_ngcontent-%COMP%]{margin:0 5px;height:31px;color:#444;overflow:hidden;padding:5px}.section[_ngcontent-%COMP%] .section-title[_ngcontent-%COMP%]{font-size:8pt;color:gray;text-align:center;transition:background-color .4s;border-bottom:1px solid transparent;white-space:nowrap;margin:0 5px}.separator[_nghost-%COMP%] .section[_ngcontent-%COMP%] .section-title[_ngcontent-%COMP%]{border-top:1px solid rgba(0,0,0,.12)}.expandable[_nghost-%COMP%] .section[_ngcontent-%COMP%] .section-title[_ngcontent-%COMP%]:hover{background-color:#e0e0e0;cursor:pointer}"]})}}return n})(),vZ=(()=>{class n{constructor(e){this.store=e,this.searchPanelMode="minimized",this.updateSearchPanelMode=i=>{this.searchPanelMode=this.searchPanelMode===i?"minimized":i,this.panelRef.isExpanded="minimized"!==this.searchPanelMode}}ngOnInit(){this.isSearchPanelPinnedSubscription=this.store.select(bZ).subscribe(e=>{this.isSearchPanelPinned=e})}ngOnDestroy(){this.isSearchPanelPinnedSubscription.unsubscribe()}openSearchPanel(){this.searchPanelMode="treeView",this.panelRef.isExpanded=!0}onToggleSettings(e){this.searchPanelMode=e?"treeView":"minimized"}static{this.\u0275fac=function(i){return new(i||n)($(Xt))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-search-panel"]],viewQuery:function(i,r){if(1&i&&ei(mO,5),2&i){let o;un(o=hn())&&(r.panelRef=o.first)}},decls:7,vars:7,consts:[["title","File/Node Explorer",3,"onToggleSettings","isPinned","collapseOnPanelClick"],[3,"click"],[3,"searchPanelMode","updateSearchPanelMode"],[3,"hidden"]],template:function(i,r){1&i&&(P(0,"cc-ribbon-bar-panel",0),We("onToggleSettings",function(s){return r.onToggleSettings(s)}),P(1,"cc-search-bar",1),We("click",function(){return r.openSearchPanel()}),H(),xe(2,"cc-search-panel-mode-selector",2),P(3,"cc-ribbon-bar-panel-settings"),xe(4,"cc-blacklist-panel",3)(5,"cc-matching-files-counter",3)(6,"cc-map-tree-view",3),H()()),2&i&&(pe("isPinned",r.isSearchPanelPinned)("collapseOnPanelClick",!1),U(2),pe("searchPanelMode",r.searchPanelMode)("updateSearchPanelMode",r.updateSearchPanelMode),U(2),pe("hidden","blacklist"!==r.searchPanelMode),U(),pe("hidden","treeView"!==r.searchPanelMode),U(),pe("hidden","treeView"!==r.searchPanelMode))},styles:["cc-search-panel[_ngcontent-%COMP%] .search-panel-card[_ngcontent-%COMP%]{border-left:none;width:100%}cc-search-panel[_ngcontent-%COMP%] .search-panel-card[_ngcontent-%COMP%] .section-body[_ngcontent-%COMP%]{display:flex;flex-direction:column;padding:6px;position:absolute;top:45px;background:#fff;border:1px solid #b5b5b5;box-shadow:0 1px 3px #0003,0 1px 1px #00000024,0 2px 1px -1px #0000001f}cc-search-panel[_ngcontent-%COMP%] .search-panel-card[_ngcontent-%COMP%] .section-body.hidden[_ngcontent-%COMP%]{display:none;pointer-events:none}cc-search-panel[_ngcontent-%COMP%] .submenu-button[_ngcontent-%COMP%]{border:2px solid #1b9cfc}cc-search-panel[_ngcontent-%COMP%] .submenu-button[_ngcontent-%COMP%]:hover{border:2px solid #0374c9}"]})}}return n})();function UBe(n=HBe){return le((t,e)=>{let i=!1;t.subscribe(Be(e,r=>{i=!0,e.next(r)},()=>i?e.complete():e.error(n())))})}function HBe(){return new bR}function Uw(n,t){const e=arguments.length>=2;return i=>i.pipe(n?Vi((r,o)=>n(r,o,i)):sa,zo(1),e?function NBe(n){return le((t,e)=>{let i=!1;t.subscribe(Be(e,r=>{i=!0,e.next(r)},()=>{i||e.next(n),e.complete()}))})}(t):UBe(()=>new bR))}const VBe=bi(1,_n(em,Wi(1))),pO=n=>{const t=Math.floor(n.length/100);return t<=1?1:Math.min(t,10)},vT=Zt(Bc,n=>function tbe(n){const t=[];if(void 0!==n)for(const{data:e}of bo(n))"Folder"!==e.type&&t.push(e);return t}(n.unifiedMapNode)),Vw=pn("SET_AMOUNT_OF_EDGE_PREVIEWS",{_as:"props",_p:void 0}),qBe=bi(1,_n(Vw,Wi(1))),GBe=bi(4,_n(H0,Wi(4))),xT={x:1,y:1,z:1},WBe=bi(xT,_n(V0,rT(xT))),CT=n=>{const e=Math.round((n.maxValue-n.minValue)/3);return{from:e+n.minValue,to:2*e+n.minValue}},$Be=bi(50,_n(z0,Wi(50))),lb=pn("SET_STATE",{_as:"props",_p:void 0});function AO(n){for(const e of Object.keys(n))if("object"==typeof n[e]&&null!==n[e]){const{x:i,y:r,z:o}=n[e];void 0!==i||void 0!==r||void 0!==o?n[e]=new ie(i??1,r??1,o??1):AO(n[e])}}const XBe=JSON.parse('[{"name":"Complexity","settings":{"appSettings":{},"dynamicSettings":{"areaMetric":"rloc","heightMetric":"complexity","colorMetric":"complexity","distributionMetric":"rloc"}}},{"name":"Average Complexity*","settings":{"appSettings":{},"dynamicSettings":{"areaMetric":"unary","heightMetric":"Average Complexity*","colorMetric":"Average Complexity*","distributionMetric":"unary"}}},{"name":"Coverage","settings":{"appSettings":{},"dynamicSettings":{"areaMetric":"rloc","heightMetric":"complexity","colorMetric":"line_coverage","distributionMetric":"rloc"}}},{"name":"Code Churn","settings":{"appSettings":{},"dynamicSettings":{"areaMetric":"rloc","heightMetric":"abs_code_churn","colorMetric":"weeks_with_commits","distributionMetric":"rloc"}}}]');class Zh{static{this.SCENARIOS_LOCAL_STORAGE_VERSION="1.0.0"}static{this.SCENARIOS_LOCAL_STORAGE_ELEMENT="scenarios"}static{this.scenarios=Zh.loadScenarios()}static getScenarioItems(t){const e=[];for(const i of this.scenarios.values())e.push({scenarioName:i.name,isScenarioApplicable:this.isScenarioApplicable(i,t),icons:[{faIconClass:"fa-video-camera",isSaved:!!i.camera,tooltip:"Camera angle"},{faIconClass:"fa-arrows-alt",isSaved:!!i.area,tooltip:"Area metric"},{faIconClass:"fa-arrows-v",isSaved:!!i.height,tooltip:"Height metric"},{faIconClass:"fa-paint-brush",isSaved:!!i.color,tooltip:"Color metric"},{faIconClass:"fa-exchange",isSaved:!!i.edge,tooltip:"Edge metric"}]});return e}static isScenarioApplicable(t,e){const{area:i,color:r,height:o,edge:s}=t;if(i||r||o){const a=new Set(e.nodeMetricData.map(l=>l.name));if(i&&!a.has(i.areaMetric)||r&&!a.has(r.colorMetric)||o&&!a.has(o.heightMetric))return!1}return!(s&&!e.edgeMetricData.some(a=>a.name===s.edgeMetric))}static getPreLoadScenarios(){const t=this.importScenarios(XBe),e=new Map;for(const i of t)e.set(i.name,this.transformScenarioAsSettingsToScenario(i));return e}static transformScenarioAsSettingsToScenario(t){const e={name:t.name},{dynamicSettings:i,appSettings:r}=t.settings;return void 0!==i.areaMetric&&(e.area={areaMetric:i.areaMetric,margin:i.margin}),void 0!==i.heightMetric&&(e.height={heightMetric:i.heightMetric,labelSlider:r.amountOfTopLabels,heightSlider:r.scaling}),void 0!==i.colorMetric&&(e.color={colorMetric:i.colorMetric,colorRange:i.colorRange,mapColors:r.mapColors}),void 0!==i.edgeMetric&&(e.edge={edgeMetric:i.edgeMetric,edgeHeight:r.edgeHeight,edgePreview:r.amountOfEdgePreviews}),e}static setScenariosToLocalStorage(t){const e={version:this.SCENARIOS_LOCAL_STORAGE_VERSION,scenarios:[...t]};localStorage.setItem(this.SCENARIOS_LOCAL_STORAGE_ELEMENT,JSON.stringify(e))}static loadScenarios(){const t=JSON.parse(localStorage.getItem(this.SCENARIOS_LOCAL_STORAGE_ELEMENT));if(t)return new Map(t.scenarios);const e=this.getPreLoadScenarios();return this.setScenariosToLocalStorage(e),e}static addScenario(t,e){const i=Zh.createNewScenario(t,e);this.scenarios.set(i.name,i),this.setScenariosToLocalStorage(this.scenarios)}static createNewScenario(t,e){const i={name:t};for(const r of e.filter(o=>o.isSelected))switch(r.metricType){case"Camera-Position":i.camera={camera:r.savedValues.camera,cameraTarget:r.savedValues.cameraTarget};break;case"Area-Metric":i.area={areaMetric:r.metricName,margin:r.savedValues};break;case"Height-Metric":i.height={heightMetric:r.metricName,heightSlider:r.savedValues.heightSlider,labelSlider:r.savedValues.labelSlider};break;case"Color-Metric":i.color={colorMetric:r.metricName,colorRange:r.savedValues.colorRange,mapColors:r.savedValues.mapColors};break;case"Edge-Metric":i.edge={edgeMetric:r.metricName,edgePreview:r.savedValues.edgePreview,edgeHeight:r.savedValues.edgeHeight};break;default:throw new Error(`Unknown metric type "${r.metricType}" detected`)}return i}static deleteScenario(t){this.scenarios.delete(t),this.setScenariosToLocalStorage(this.scenarios)}static getScenarioSettings(t){const e={},i={};return t&&(t.area&&(e.areaMetric=t.area.areaMetric,e.margin=t.area.margin),t.height&&(e.heightMetric=t.height.heightMetric,i.amountOfTopLabels=t.height.labelSlider,i.scaling=t.height.heightSlider),t.color&&(e.colorMetric=t.color.colorMetric,e.colorRange=t.color.colorRange,i.mapColors=t.color.mapColors),t.edge&&(e.edgeMetric=t.edge.edgeMetric,i.edgeHeight=t.edge.edgeHeight,i.amountOfEdgePreviews=t.edge.edgePreview)),{appSettings:i,dynamicSettings:e}}static importScenarios(t){for(const e of t)AO(e.settings),e.camera&&(e.camera.camera=new ie(e.camera.camera.x,e.camera.camera.y,e.camera.camera.z),e.camera.cameraTarget=new ie(e.camera.camera.x,e.camera.camera.y,e.camera.camera.z));return t}static isScenarioExisting(t){return this.scenarios.has(t)}}let gO=(()=>{class n{constructor(e,i,r,o,s){this.state=e,this.store=i,this.dialog=r,this.threeCameraService=o,this.threeOrbitControlsService=s}getScenarios(){return Zh.getScenarioItems(Gs(this.state.getValue()))}applyScenario(e){const i=Zh.scenarios.get(e),r=Zh.getScenarioSettings(i);this.store.dispatch(lb({value:r})),r.appSettings.amountOfTopLabels||this.store.select(vT).pipe(Uw()).subscribe(o=>{const s=pO(o);this.store.dispatch(em({value:s}))}),r.appSettings.mapColors||this.store.dispatch(ph({value:bu})),r.appSettings.edgeHeight||this.store.dispatch(H0({value:4})),r.appSettings.amountOfEdgePreviews||this.store.dispatch(Vw({value:1})),r.appSettings.scaling||this.store.dispatch(V0({value:xT})),r.dynamicSettings.colorRange||this.store.select($h).pipe(Uw()).subscribe(o=>{this.store.dispatch(Zd({value:CT(o)}))}),r.dynamicSettings.margin||this.store.dispatch(z0({value:50})),r.dynamicSettings.edgeMetric||this.store.select(Gs).pipe(Uw()).subscribe(o=>{this.store.dispatch(gh({value:o.edgeMetricData[0]?.name}))}),i.camera&&(this.threeCameraService.setPosition(i.camera.camera),this.threeOrbitControlsService.setControlTarget(i.camera.cameraTarget))}removeScenario(e){"Complexity"!==e?(Zh.deleteScenario(e),this.dialog.open(nA,{data:{title:"Info",message:`${e} deleted.`}})):this.dialog.open(nA,{data:{title:"Error",message:`${e} cannot be deleted as it is the default Scenario.`}})}static{this.\u0275fac=function(i){return new(i||n)(ge(jr),ge(Xt),ge(Ws),ge(vu),ge(nc))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac})}}return n})();const KBe=["*"];let ET=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-ribbon-bar-menu-button"]],inputs:{icon:"icon",title:"title"},ngContentSelectors:KBe,decls:3,vars:3,consts:[[3,"title"]],template:function(i,r){1&i&&($r(),P(0,"button",0),xe(1,"i"),Gn(2),H()),2&i&&(pe("title",r.title),U(),nl("fa "+r.icon))},styles:["button[_ngcontent-%COMP%]{height:22px;line-height:22px;min-width:45px;margin:0;padding:0;font-size:9pt;background-color:#e6e6e6f5;color:#444}button[_ngcontent-%COMP%]:hover{background-color:#c8c8c8}"]})}}return n})();class JBe extends Hn{constructor(t=1/0,e=1/0,i=S3){super(),this._bufferSize=t,this._windowTime=e,this._timestampProvider=i,this._buffer=[],this._infiniteTimeWindow=!0,this._infiniteTimeWindow=e===1/0,this._bufferSize=Math.max(1,t),this._windowTime=Math.max(1,e)}next(t){const{isStopped:e,_buffer:i,_infiniteTimeWindow:r,_timestampProvider:o,_windowTime:s}=this;e||(i.push(t),!r&&i.push(o.now()+s)),this._trimBuffer(),super.next(t)}_subscribe(t){this._throwIfClosed(),this._trimBuffer();const e=this._innerSubscribe(t),{_infiniteTimeWindow:i,_buffer:r}=this,o=r.slice();for(let s=0;snew Hn),resetOnError:e=!0,resetOnComplete:i=!0,resetOnRefCountZero:r=!0}=n;return o=>{let s,a,l,c=0,d=!1,u=!1;const h=()=>{a?.unsubscribe(),a=void 0},f=()=>{h(),s=l=void 0,d=u=!1},A=()=>{const y=s;f(),y?.unsubscribe()};return le((y,_)=>{c++,!u&&!d&&h();const b=l=l??t();_.add(()=>{c--,0===c&&!u&&!d&&(a=_O(A,r))}),b.subscribe(_),!s&&c>0&&(s=new Ms({next:M=>b.next(M),error:M=>{u=!0,h(),a=_O(f,e,M),b.error(M)},complete:()=>{d=!0,h(),a=_O(f,i),b.complete()}}),rs(y).subscribe(s))})(o)}}function _O(n,t,...e){if(!0===t)return void n();if(!1===t)return;const i=new Ms({next:()=>{i.unsubscribe(),n()}});return rs(t(...e)).subscribe(i)}class t3e{constructor(t){this._box=t,this._destroyed=new Hn,this._resizeSubject=new Hn,this._elementObservables=new Map,typeof ResizeObserver<"u"&&(this._resizeObserver=new ResizeObserver(e=>this._resizeSubject.next(e)))}observe(t){return this._elementObservables.has(t)||this._elementObservables.set(t,new Yi(e=>{const i=this._resizeSubject.subscribe(e);return this._resizeObserver?.observe(t,{box:this._box}),()=>{this._resizeObserver?.unobserve(t),i.unsubscribe(),this._elementObservables.delete(t)}}).pipe(Vi(e=>e.some(i=>i.target===t)),function e3e(n,t,e){let i,r=!1;return n&&"object"==typeof n?({bufferSize:i=1/0,windowTime:t=1/0,refCount:r=!1,scheduler:e}=n):i=n??1/0,Qw({connector:()=>new JBe(i,t,e),resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:r})}({bufferSize:1,refCount:!0}),to(this._destroyed))),this._elementObservables.get(t)}destroy(){this._destroyed.next(),this._destroyed.complete(),this._resizeSubject.complete(),this._elementObservables.clear()}}let n3e=(()=>{class n{constructor(){this._observers=new Map,this._ngZone=qt(kn)}ngOnDestroy(){for(const[,e]of this._observers)e.destroy();this._observers.clear()}observe(e,i){const r=i?.box||"content-box";return this._observers.has(r)||this._observers.set(r,new t3e(r)),this._observers.get(r).observe(e)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();const i3e=["notch"],r3e=["matFormFieldNotchedOutline",""],o3e=["*"],s3e=["textField"],a3e=["iconPrefixContainer"],l3e=["textPrefixContainer"],c3e=["*",[["mat-label"]],[["","matPrefix",""],["","matIconPrefix",""]],[["","matTextPrefix",""]],[["","matTextSuffix",""]],[["","matSuffix",""],["","matIconSuffix",""]],[["mat-error"],["","matError",""]],[["mat-hint",3,"align","end"]],[["mat-hint","align","end"]]],d3e=["*","mat-label","[matPrefix], [matIconPrefix]","[matTextPrefix]","[matTextSuffix]","[matSuffix], [matIconSuffix]","mat-error, [matError]","mat-hint:not([align='end'])","mat-hint[align='end']"];function u3e(n,t){1&n&&xe(0,"span",17)}function h3e(n,t){if(1&n&&(P(0,"label",16),Gn(1,1),At(2,u3e,1,0,"span",17),H()),2&n){const e=He(2);pe("floating",e._shouldLabelFloat())("monitorResize",e._hasOutline())("id",e._labelId),fi("for",e._control.id),U(2),It(2,!e.hideRequiredMarker&&e._control.required?2:-1)}}function f3e(n,t){1&n&&At(0,h3e,3,5,"label",16),2&n&&It(0,He()._hasFloatingLabel()?0:-1)}function m3e(n,t){1&n&&xe(0,"div",5)}function p3e(n,t){}function A3e(n,t){1&n&&At(0,p3e,0,0,"ng-template",11),2&n&&(He(2),pe("ngTemplateOutlet",Po(1)))}function g3e(n,t){if(1&n&&(P(0,"div",7),At(1,A3e,1,1,null,11),H()),2&n){const e=He();pe("matFormFieldNotchedOutlineOpen",e._shouldLabelFloat()),U(),It(1,e._forceDisplayInfixLabel()?-1:1)}}function _3e(n,t){1&n&&(P(0,"div",8,2),Gn(2,2),H())}function b3e(n,t){1&n&&(P(0,"div",9,3),Gn(2,3),H())}function v3e(n,t){}function y3e(n,t){1&n&&At(0,v3e,0,0,"ng-template",11),2&n&&(He(),pe("ngTemplateOutlet",Po(1)))}function w3e(n,t){1&n&&(P(0,"div",12),Gn(1,4),H())}function x3e(n,t){1&n&&(P(0,"div",13),Gn(1,5),H())}function C3e(n,t){1&n&&xe(0,"div",14)}function M3e(n,t){1&n&&(P(0,"div",18),Gn(1,6),H()),2&n&&pe("@transitionMessages",He()._subscriptAnimationState)}function E3e(n,t){if(1&n&&(P(0,"mat-hint",20),we(1),H()),2&n){const e=He(2);pe("id",e._hintLabelId),U(),Mr(e.hintLabel)}}function S3e(n,t){if(1&n&&(P(0,"div",19),At(1,E3e,2,2,"mat-hint",20),Gn(2,7),xe(3,"div",21),Gn(4,8),H()),2&n){const e=He();pe("@transitionMessages",e._subscriptAnimationState),U(),It(1,e.hintLabel?1:-1)}}let vd=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=$t({type:n,selectors:[["mat-label"]],standalone:!0})}}return n})(),T3e=0;const yZ=new ut("MatError");let wZ=(()=>{class n{constructor(e,i){this.id="mat-mdc-error-"+T3e++,e||i.nativeElement.setAttribute("aria-live","polite")}static{this.\u0275fac=function(i){return new(i||n)(Ll("aria-live"),$(Vn))}}static{this.\u0275dir=$t({type:n,selectors:[["mat-error"],["","matError",""]],hostAttrs:["aria-atomic","true",1,"mat-mdc-form-field-error","mat-mdc-form-field-bottom-align"],hostVars:1,hostBindings:function(i,r){2&i&&$d("id",r.id)},inputs:{id:"id"},standalone:!0,features:[ui([{provide:yZ,useExisting:n}])]})}}return n})(),I3e=0,bO=(()=>{class n{constructor(){this.align="start",this.id="mat-mdc-hint-"+I3e++}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=$t({type:n,selectors:[["mat-hint"]],hostAttrs:[1,"mat-mdc-form-field-hint","mat-mdc-form-field-bottom-align"],hostVars:4,hostBindings:function(i,r){2&i&&($d("id",r.id),fi("align",null),Qn("mat-mdc-form-field-hint-end","end"===r.align))},inputs:{align:"align",id:"id"},standalone:!0})}}return n})();const xZ=new ut("MatPrefix");let CZ=(()=>{class n{constructor(){this._isText=!1}set _isTextSelector(e){this._isText=!0}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=$t({type:n,selectors:[["","matPrefix",""],["","matIconPrefix",""],["","matTextPrefix",""]],inputs:{_isTextSelector:[Ct.None,"matTextPrefix","_isTextSelector"]},standalone:!0,features:[ui([{provide:xZ,useExisting:n}])]})}}return n})();const F3e=new ut("MatSuffix"),MZ=new ut("FloatingLabelParent");let EZ=(()=>{class n{get floating(){return this._floating}set floating(e){this._floating=e,this.monitorResize&&this._handleResize()}get monitorResize(){return this._monitorResize}set monitorResize(e){this._monitorResize=e,this._monitorResize?this._subscribeToResize():this._resizeSubscription.unsubscribe()}constructor(e){this._elementRef=e,this._floating=!1,this._monitorResize=!1,this._resizeObserver=qt(n3e),this._ngZone=qt(kn),this._parent=qt(MZ),this._resizeSubscription=new Kn}ngOnDestroy(){this._resizeSubscription.unsubscribe()}getWidth(){return function D3e(n){if(null!==n.offsetParent)return n.scrollWidth;const e=n.cloneNode(!0);e.style.setProperty("position","absolute"),e.style.setProperty("transform","translate(-9999px, -9999px)"),document.documentElement.appendChild(e);const i=e.scrollWidth;return e.remove(),i}(this._elementRef.nativeElement)}get element(){return this._elementRef.nativeElement}_handleResize(){setTimeout(()=>this._parent._handleLabelResized())}_subscribeToResize(){this._resizeSubscription.unsubscribe(),this._ngZone.runOutsideAngular(()=>{this._resizeSubscription=this._resizeObserver.observe(this._elementRef.nativeElement,{box:"border-box"}).subscribe(()=>this._handleResize())})}static{this.\u0275fac=function(i){return new(i||n)($(Vn))}}static{this.\u0275dir=$t({type:n,selectors:[["label","matFormFieldFloatingLabel",""]],hostAttrs:[1,"mdc-floating-label","mat-mdc-floating-label"],hostVars:2,hostBindings:function(i,r){2&i&&Qn("mdc-floating-label--float-above",r.floating)},inputs:{floating:"floating",monitorResize:"monitorResize"},standalone:!0})}}return n})();const SZ="mdc-line-ripple--active",ST="mdc-line-ripple--deactivating";let TZ=(()=>{class n{constructor(e,i){this._elementRef=e,this._handleTransitionEnd=r=>{const o=this._elementRef.nativeElement.classList,s=o.contains(ST);"opacity"===r.propertyName&&s&&o.remove(SZ,ST)},i.runOutsideAngular(()=>{e.nativeElement.addEventListener("transitionend",this._handleTransitionEnd)})}activate(){const e=this._elementRef.nativeElement.classList;e.remove(ST),e.add(SZ)}deactivate(){this._elementRef.nativeElement.classList.add(ST)}ngOnDestroy(){this._elementRef.nativeElement.removeEventListener("transitionend",this._handleTransitionEnd)}static{this.\u0275fac=function(i){return new(i||n)($(Vn),$(kn))}}static{this.\u0275dir=$t({type:n,selectors:[["div","matFormFieldLineRipple",""]],hostAttrs:[1,"mdc-line-ripple"],standalone:!0})}}return n})(),IZ=(()=>{class n{constructor(e,i){this._elementRef=e,this._ngZone=i,this.open=!1}ngAfterViewInit(){const e=this._elementRef.nativeElement.querySelector(".mdc-floating-label");e?(this._elementRef.nativeElement.classList.add("mdc-notched-outline--upgraded"),"function"==typeof requestAnimationFrame&&(e.style.transitionDuration="0s",this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>e.style.transitionDuration="")}))):this._elementRef.nativeElement.classList.add("mdc-notched-outline--no-label")}_setNotchWidth(e){this._notch.nativeElement.style.width=this.open&&e?`calc(${e}px * var(--mat-mdc-form-field-floating-label-scale, 0.75) + 9px)`:""}static{this.\u0275fac=function(i){return new(i||n)($(Vn),$(kn))}}static{this.\u0275cmp=vt({type:n,selectors:[["div","matFormFieldNotchedOutline",""]],viewQuery:function(i,r){if(1&i&&ei(i3e,5),2&i){let o;un(o=hn())&&(r._notch=o.first)}},hostAttrs:[1,"mdc-notched-outline"],hostVars:2,hostBindings:function(i,r){2&i&&Qn("mdc-notched-outline--notched",r.open)},inputs:{open:[Ct.None,"matFormFieldNotchedOutlineOpen","open"]},standalone:!0,features:[Or],attrs:r3e,ngContentSelectors:o3e,decls:5,vars:0,consts:[["notch",""],[1,"mdc-notched-outline__leading"],[1,"mdc-notched-outline__notch"],[1,"mdc-notched-outline__trailing"]],template:function(i,r){1&i&&($r(),xe(0,"div",1),P(1,"div",2,0),Gn(3),H(),xe(4,"div",3))},encapsulation:2,changeDetection:0})}}return n})();const k3e={transitionMessages:Sh("transitionMessages",[Cc("enter",qo({opacity:1,transform:"translateY(0%)"})),Gl("void => enter",[qo({opacity:0,transform:"translateY(-5px)"}),xc("300ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])};let vO=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=$t({type:n})}}return n})();const yO=new ut("MatFormField"),B3e=new ut("MAT_FORM_FIELD_DEFAULT_OPTIONS");let FZ=0,yd=(()=>{class n{get hideRequiredMarker(){return this._hideRequiredMarker}set hideRequiredMarker(e){this._hideRequiredMarker=ta(e)}get floatLabel(){return this._floatLabel||this._defaults?.floatLabel||"auto"}set floatLabel(e){e!==this._floatLabel&&(this._floatLabel=e,this._changeDetectorRef.markForCheck())}get appearance(){return this._appearance}set appearance(e){const i=this._appearance;this._appearance=e||this._defaults?.appearance||"fill","outline"===this._appearance&&this._appearance!==i&&(this._needsOutlineLabelOffsetUpdateOnStable=!0)}get subscriptSizing(){return this._subscriptSizing||this._defaults?.subscriptSizing||"fixed"}set subscriptSizing(e){this._subscriptSizing=e||this._defaults?.subscriptSizing||"fixed"}get hintLabel(){return this._hintLabel}set hintLabel(e){this._hintLabel=e,this._processHints()}get _control(){return this._explicitFormFieldControl||this._formFieldControl}set _control(e){this._explicitFormFieldControl=e}constructor(e,i,r,o,s,a,l,c){this._elementRef=e,this._changeDetectorRef=i,this._ngZone=r,this._dir=o,this._platform=s,this._defaults=a,this._animationMode=l,this._hideRequiredMarker=!1,this.color="primary",this._appearance="fill",this._subscriptSizing=null,this._hintLabel="",this._hasIconPrefix=!1,this._hasTextPrefix=!1,this._hasIconSuffix=!1,this._hasTextSuffix=!1,this._labelId="mat-mdc-form-field-label-"+FZ++,this._hintLabelId="mat-mdc-hint-"+FZ++,this._subscriptAnimationState="",this._destroyed=new Hn,this._isFocused=null,this._needsOutlineLabelOffsetUpdateOnStable=!1,a&&(a.appearance&&(this.appearance=a.appearance),this._hideRequiredMarker=!!a?.hideRequiredMarker,a.color&&(this.color=a.color))}ngAfterViewInit(){this._updateFocusState(),this._subscriptAnimationState="enter",this._changeDetectorRef.detectChanges()}ngAfterContentInit(){this._assertFormFieldControl(),this._initializeControl(),this._initializeSubscript(),this._initializePrefixAndSuffix(),this._initializeOutlineLabelOffsetSubscriptions()}ngAfterContentChecked(){this._assertFormFieldControl()}ngOnDestroy(){this._destroyed.next(),this._destroyed.complete()}getLabelId(){return this._hasFloatingLabel()?this._labelId:null}getConnectedOverlayOrigin(){return this._textField||this._elementRef}_animateAndLockLabel(){this._hasFloatingLabel()&&(this.floatLabel="always")}_initializeControl(){const e=this._control;e.controlType&&this._elementRef.nativeElement.classList.add(`mat-mdc-form-field-type-${e.controlType}`),e.stateChanges.subscribe(()=>{this._updateFocusState(),this._syncDescribedByIds(),this._changeDetectorRef.markForCheck()}),e.ngControl&&e.ngControl.valueChanges&&e.ngControl.valueChanges.pipe(to(this._destroyed)).subscribe(()=>this._changeDetectorRef.markForCheck())}_checkPrefixAndSuffixTypes(){this._hasIconPrefix=!!this._prefixChildren.find(e=>!e._isText),this._hasTextPrefix=!!this._prefixChildren.find(e=>e._isText),this._hasIconSuffix=!!this._suffixChildren.find(e=>!e._isText),this._hasTextSuffix=!!this._suffixChildren.find(e=>e._isText)}_initializePrefixAndSuffix(){this._checkPrefixAndSuffixTypes(),ql(this._prefixChildren.changes,this._suffixChildren.changes).subscribe(()=>{this._checkPrefixAndSuffixTypes(),this._changeDetectorRef.markForCheck()})}_initializeSubscript(){this._hintChildren.changes.subscribe(()=>{this._processHints(),this._changeDetectorRef.markForCheck()}),this._errorChildren.changes.subscribe(()=>{this._syncDescribedByIds(),this._changeDetectorRef.markForCheck()}),this._validateHints(),this._syncDescribedByIds()}_assertFormFieldControl(){}_updateFocusState(){this._control.focused&&!this._isFocused?(this._isFocused=!0,this._lineRipple?.activate()):!this._control.focused&&(this._isFocused||null===this._isFocused)&&(this._isFocused=!1,this._lineRipple?.deactivate()),this._textField?.nativeElement.classList.toggle("mdc-text-field--focused",this._control.focused)}_initializeOutlineLabelOffsetSubscriptions(){this._prefixChildren.changes.subscribe(()=>this._needsOutlineLabelOffsetUpdateOnStable=!0),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.pipe(to(this._destroyed)).subscribe(()=>{this._needsOutlineLabelOffsetUpdateOnStable&&(this._needsOutlineLabelOffsetUpdateOnStable=!1,this._updateOutlineLabelOffset())})}),this._dir.change.pipe(to(this._destroyed)).subscribe(()=>this._needsOutlineLabelOffsetUpdateOnStable=!0)}_shouldAlwaysFloat(){return"always"===this.floatLabel}_hasOutline(){return"outline"===this.appearance}_forceDisplayInfixLabel(){return!this._platform.isBrowser&&this._prefixChildren.length&&!this._shouldLabelFloat()}_hasFloatingLabel(){return!!this._labelChildNonStatic||!!this._labelChildStatic}_shouldLabelFloat(){return this._control.shouldLabelFloat||this._shouldAlwaysFloat()}_shouldForward(e){const i=this._control?this._control.ngControl:null;return i&&i[e]}_getDisplayedMessages(){return this._errorChildren&&this._errorChildren.length>0&&this._control.errorState?"error":"hint"}_handleLabelResized(){this._refreshOutlineNotchWidth()}_refreshOutlineNotchWidth(){this._hasOutline()&&this._floatingLabel&&this._shouldLabelFloat()?this._notchedOutline?._setNotchWidth(this._floatingLabel.getWidth()):this._notchedOutline?._setNotchWidth(0)}_processHints(){this._validateHints(),this._syncDescribedByIds()}_validateHints(){}_syncDescribedByIds(){if(this._control){let e=[];if(this._control.userAriaDescribedBy&&"string"==typeof this._control.userAriaDescribedBy&&e.push(...this._control.userAriaDescribedBy.split(" ")),"hint"===this._getDisplayedMessages()){const i=this._hintChildren?this._hintChildren.find(o=>"start"===o.align):null,r=this._hintChildren?this._hintChildren.find(o=>"end"===o.align):null;i?e.push(i.id):this._hintLabel&&e.push(this._hintLabelId),r&&e.push(r.id)}else this._errorChildren&&e.push(...this._errorChildren.map(i=>i.id));this._control.setDescribedByIds(e)}}_updateOutlineLabelOffset(){if(!this._platform.isBrowser||!this._hasOutline()||!this._floatingLabel)return;const e=this._floatingLabel.element;if(!this._iconPrefixContainer&&!this._textPrefixContainer)return void(e.style.transform="");if(!this._isAttachedToDom())return void(this._needsOutlineLabelOffsetUpdateOnStable=!0);const i=this._iconPrefixContainer?.nativeElement,r=this._textPrefixContainer?.nativeElement,o=i?.getBoundingClientRect().width??0,s=r?.getBoundingClientRect().width??0;e.style.transform=`var(\n --mat-mdc-form-field-label-transform,\n translateY(-50%) translateX(calc(${"rtl"===this._dir.value?"-1":"1"} * (${o+s}px + var(--mat-mdc-form-field-label-offset-x, 0px))))\n )`}_isAttachedToDom(){const e=this._elementRef.nativeElement;if(e.getRootNode){const i=e.getRootNode();return i&&i!==e}return document.documentElement.contains(e)}static{this.\u0275fac=function(i){return new(i||n)($(Vn),$(_o),$(kn),$(wh),$(eo),$(B3e,8),$(ps,8),$(Bi))}}static{this.\u0275cmp=vt({type:n,selectors:[["mat-form-field"]],contentQueries:function(i,r,o){if(1&i&&(Vr(o,vd,5),Vr(o,vd,7),Vr(o,vO,5),Vr(o,xZ,5),Vr(o,F3e,5),Vr(o,yZ,5),Vr(o,bO,5)),2&i){let s;un(s=hn())&&(r._labelChildNonStatic=s.first),un(s=hn())&&(r._labelChildStatic=s.first),un(s=hn())&&(r._formFieldControl=s.first),un(s=hn())&&(r._prefixChildren=s),un(s=hn())&&(r._suffixChildren=s),un(s=hn())&&(r._errorChildren=s),un(s=hn())&&(r._hintChildren=s)}},viewQuery:function(i,r){if(1&i&&(ei(s3e,5),ei(a3e,5),ei(l3e,5),ei(EZ,5),ei(IZ,5),ei(TZ,5)),2&i){let o;un(o=hn())&&(r._textField=o.first),un(o=hn())&&(r._iconPrefixContainer=o.first),un(o=hn())&&(r._textPrefixContainer=o.first),un(o=hn())&&(r._floatingLabel=o.first),un(o=hn())&&(r._notchedOutline=o.first),un(o=hn())&&(r._lineRipple=o.first)}},hostAttrs:[1,"mat-mdc-form-field"],hostVars:42,hostBindings:function(i,r){2&i&&Qn("mat-mdc-form-field-label-always-float",r._shouldAlwaysFloat())("mat-mdc-form-field-has-icon-prefix",r._hasIconPrefix)("mat-mdc-form-field-has-icon-suffix",r._hasIconSuffix)("mat-form-field-invalid",r._control.errorState)("mat-form-field-disabled",r._control.disabled)("mat-form-field-autofilled",r._control.autofilled)("mat-form-field-no-animations","NoopAnimations"===r._animationMode)("mat-form-field-appearance-fill","fill"==r.appearance)("mat-form-field-appearance-outline","outline"==r.appearance)("mat-form-field-hide-placeholder",r._hasFloatingLabel()&&!r._shouldLabelFloat())("mat-focused",r._control.focused)("mat-primary","accent"!==r.color&&"warn"!==r.color)("mat-accent","accent"===r.color)("mat-warn","warn"===r.color)("ng-untouched",r._shouldForward("untouched"))("ng-touched",r._shouldForward("touched"))("ng-pristine",r._shouldForward("pristine"))("ng-dirty",r._shouldForward("dirty"))("ng-valid",r._shouldForward("valid"))("ng-invalid",r._shouldForward("invalid"))("ng-pending",r._shouldForward("pending"))},inputs:{hideRequiredMarker:"hideRequiredMarker",color:"color",floatLabel:"floatLabel",appearance:"appearance",subscriptSizing:"subscriptSizing",hintLabel:"hintLabel"},exportAs:["matFormField"],standalone:!0,features:[ui([{provide:yO,useExisting:n},{provide:MZ,useExisting:n}]),Or],ngContentSelectors:d3e,decls:18,vars:21,consts:[["labelTemplate",""],["textField",""],["iconPrefixContainer",""],["textPrefixContainer",""],[1,"mat-mdc-text-field-wrapper","mdc-text-field",3,"click"],[1,"mat-mdc-form-field-focus-overlay"],[1,"mat-mdc-form-field-flex"],["matFormFieldNotchedOutline","",3,"matFormFieldNotchedOutlineOpen"],[1,"mat-mdc-form-field-icon-prefix"],[1,"mat-mdc-form-field-text-prefix"],[1,"mat-mdc-form-field-infix"],[3,"ngTemplateOutlet"],[1,"mat-mdc-form-field-text-suffix"],[1,"mat-mdc-form-field-icon-suffix"],["matFormFieldLineRipple",""],[1,"mat-mdc-form-field-subscript-wrapper","mat-mdc-form-field-bottom-align"],["matFormFieldFloatingLabel","",3,"floating","monitorResize","id"],["aria-hidden","true",1,"mat-mdc-form-field-required-marker","mdc-floating-label--required"],[1,"mat-mdc-form-field-error-wrapper"],[1,"mat-mdc-form-field-hint-wrapper"],[3,"id"],[1,"mat-mdc-form-field-hint-spacer"]],template:function(i,r){if(1&i){const o=Pn();$r(c3e),At(0,f3e,1,1,"ng-template",null,0,Qf),P(2,"div",4,1),We("click",function(a){return Vt(o),Ot(r._control.onContainerClick(a))}),At(4,m3e,1,0,"div",5),P(5,"div",6),At(6,g3e,2,2,"div",7)(7,_3e,3,0,"div",8)(8,b3e,3,0,"div",9),P(9,"div",10),At(10,y3e,1,1,null,11),Gn(11),H(),At(12,w3e,2,0,"div",12)(13,x3e,2,0,"div",13),H(),At(14,C3e,1,0,"div",14),H(),P(15,"div",15),At(16,M3e,2,1)(17,S3e,5,2),H()}if(2&i){let o;U(2),Qn("mdc-text-field--filled",!r._hasOutline())("mdc-text-field--outlined",r._hasOutline())("mdc-text-field--no-label",!r._hasFloatingLabel())("mdc-text-field--disabled",r._control.disabled)("mdc-text-field--invalid",r._control.errorState),U(2),It(4,r._hasOutline()||r._control.disabled?-1:4),U(2),It(6,r._hasOutline()?6:-1),U(),It(7,r._hasIconPrefix?7:-1),U(),It(8,r._hasTextPrefix?8:-1),U(2),It(10,!r._hasOutline()||r._forceDisplayInfixLabel()?10:-1),U(2),It(12,r._hasTextSuffix?12:-1),U(),It(13,r._hasIconSuffix?13:-1),U(),It(14,r._hasOutline()?-1:14),U(),Qn("mat-mdc-form-field-subscript-dynamic-size","dynamic"===r.subscriptSizing),U(),It(16,"error"===(o=r._getDisplayedMessages())?16:"hint"===o?17:-1)}},dependencies:[EZ,IZ,Sy,TZ,bO],styles:['.mdc-text-field{border-top-left-radius:4px;border-top-left-radius:var(--mdc-shape-small, 4px);border-top-right-radius:4px;border-top-right-radius:var(--mdc-shape-small, 4px);border-bottom-right-radius:0;border-bottom-left-radius:0;display:inline-flex;align-items:baseline;padding:0 16px;position:relative;box-sizing:border-box;overflow:hidden;will-change:opacity,transform,color}.mdc-text-field .mdc-floating-label{top:50%;transform:translateY(-50%);pointer-events:none}.mdc-text-field__input{height:28px;width:100%;min-width:0;border:none;border-radius:0;background:none;appearance:none;padding:0}.mdc-text-field__input::-ms-clear{display:none}.mdc-text-field__input::-webkit-calendar-picker-indicator{display:none}.mdc-text-field__input:focus{outline:none}.mdc-text-field__input:invalid{box-shadow:none}@media all{.mdc-text-field__input::placeholder{opacity:0}}@media all{.mdc-text-field__input:-ms-input-placeholder{opacity:0}}@media all{.mdc-text-field--no-label .mdc-text-field__input::placeholder,.mdc-text-field--focused .mdc-text-field__input::placeholder{opacity:1}}@media all{.mdc-text-field--no-label .mdc-text-field__input:-ms-input-placeholder,.mdc-text-field--focused .mdc-text-field__input:-ms-input-placeholder{opacity:1}}.mdc-text-field__affix{height:28px;opacity:0;white-space:nowrap}.mdc-text-field--label-floating .mdc-text-field__affix,.mdc-text-field--no-label .mdc-text-field__affix{opacity:1}@supports(-webkit-hyphens: none){.mdc-text-field--outlined .mdc-text-field__affix{align-items:center;align-self:center;display:inline-flex;height:100%}}.mdc-text-field__affix--prefix{padding-left:0;padding-right:2px}[dir=rtl] .mdc-text-field__affix--prefix,.mdc-text-field__affix--prefix[dir=rtl]{padding-left:2px;padding-right:0}.mdc-text-field--end-aligned .mdc-text-field__affix--prefix{padding-left:0;padding-right:12px}[dir=rtl] .mdc-text-field--end-aligned .mdc-text-field__affix--prefix,.mdc-text-field--end-aligned .mdc-text-field__affix--prefix[dir=rtl]{padding-left:12px;padding-right:0}.mdc-text-field__affix--suffix{padding-left:12px;padding-right:0}[dir=rtl] .mdc-text-field__affix--suffix,.mdc-text-field__affix--suffix[dir=rtl]{padding-left:0;padding-right:12px}.mdc-text-field--end-aligned .mdc-text-field__affix--suffix{padding-left:2px;padding-right:0}[dir=rtl] .mdc-text-field--end-aligned .mdc-text-field__affix--suffix,.mdc-text-field--end-aligned .mdc-text-field__affix--suffix[dir=rtl]{padding-left:0;padding-right:2px}.mdc-text-field--filled{height:56px}.mdc-text-field--filled::before{display:inline-block;width:0;height:40px;content:"";vertical-align:0}.mdc-text-field--filled .mdc-floating-label{left:16px;right:initial}[dir=rtl] .mdc-text-field--filled .mdc-floating-label,.mdc-text-field--filled .mdc-floating-label[dir=rtl]{left:initial;right:16px}.mdc-text-field--filled .mdc-floating-label--float-above{transform:translateY(-106%) scale(0.75)}.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__input{height:100%}.mdc-text-field--filled.mdc-text-field--no-label .mdc-floating-label{display:none}.mdc-text-field--filled.mdc-text-field--no-label::before{display:none}@supports(-webkit-hyphens: none){.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__affix{align-items:center;align-self:center;display:inline-flex;height:100%}}.mdc-text-field--outlined{height:56px;overflow:visible}.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-37.25px) scale(1)}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-34.75px) scale(0.75)}.mdc-text-field--outlined .mdc-floating-label--float-above{font-size:.75rem}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-text-field--outlined .mdc-text-field__input{height:100%}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{border-top-left-radius:4px;border-top-left-radius:var(--mdc-shape-small, 4px);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:4px;border-bottom-left-radius:var(--mdc-shape-small, 4px)}[dir=rtl] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading[dir=rtl]{border-top-left-radius:0;border-top-right-radius:4px;border-top-right-radius:var(--mdc-shape-small, 4px);border-bottom-right-radius:4px;border-bottom-right-radius:var(--mdc-shape-small, 4px);border-bottom-left-radius:0}@supports(top: max(0%)){.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{width:max(12px,var(--mdc-shape-small, 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__notch{max-width:calc(100% - max(12px,var(--mdc-shape-small, 4px))*2)}}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing{border-top-left-radius:0;border-top-right-radius:4px;border-top-right-radius:var(--mdc-shape-small, 4px);border-bottom-right-radius:4px;border-bottom-right-radius:var(--mdc-shape-small, 4px);border-bottom-left-radius:0}[dir=rtl] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing,.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing[dir=rtl]{border-top-left-radius:4px;border-top-left-radius:var(--mdc-shape-small, 4px);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:4px;border-bottom-left-radius:var(--mdc-shape-small, 4px)}@supports(top: max(0%)){.mdc-text-field--outlined{padding-left:max(16px,calc(var(--mdc-shape-small, 4px) + 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined{padding-right:max(16px,var(--mdc-shape-small, 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined+.mdc-text-field-helper-line{padding-left:max(16px,calc(var(--mdc-shape-small, 4px) + 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined+.mdc-text-field-helper-line{padding-right:max(16px,var(--mdc-shape-small, 4px))}}.mdc-text-field--outlined.mdc-text-field--with-leading-icon{padding-left:0}@supports(top: max(0%)){.mdc-text-field--outlined.mdc-text-field--with-leading-icon{padding-right:max(16px,var(--mdc-shape-small, 4px))}}[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-leading-icon,.mdc-text-field--outlined.mdc-text-field--with-leading-icon[dir=rtl]{padding-right:0}@supports(top: max(0%)){[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-leading-icon,.mdc-text-field--outlined.mdc-text-field--with-leading-icon[dir=rtl]{padding-left:max(16px,var(--mdc-shape-small, 4px))}}.mdc-text-field--outlined.mdc-text-field--with-trailing-icon{padding-right:0}@supports(top: max(0%)){.mdc-text-field--outlined.mdc-text-field--with-trailing-icon{padding-left:max(16px,calc(var(--mdc-shape-small, 4px) + 4px))}}[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-trailing-icon,.mdc-text-field--outlined.mdc-text-field--with-trailing-icon[dir=rtl]{padding-left:0}@supports(top: max(0%)){[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-trailing-icon,.mdc-text-field--outlined.mdc-text-field--with-trailing-icon[dir=rtl]{padding-right:max(16px,calc(var(--mdc-shape-small, 4px) + 4px))}}.mdc-text-field--outlined.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon{padding-left:0;padding-right:0}.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:1px}.mdc-text-field--outlined .mdc-floating-label{left:4px;right:initial}[dir=rtl] .mdc-text-field--outlined .mdc-floating-label,.mdc-text-field--outlined .mdc-floating-label[dir=rtl]{left:initial;right:4px}.mdc-text-field--outlined .mdc-text-field__input{display:flex;border:none !important;background-color:rgba(0,0,0,0)}.mdc-text-field--outlined .mdc-notched-outline{z-index:1}.mdc-text-field--textarea{flex-direction:column;align-items:center;width:auto;height:auto;padding:0}.mdc-text-field--textarea .mdc-floating-label{top:19px}.mdc-text-field--textarea .mdc-floating-label:not(.mdc-floating-label--float-above){transform:none}.mdc-text-field--textarea .mdc-text-field__input{flex-grow:1;height:auto;min-height:1.5rem;overflow-x:hidden;overflow-y:auto;box-sizing:border-box;resize:none;padding:0 16px}.mdc-text-field--textarea.mdc-text-field--filled::before{display:none}.mdc-text-field--textarea.mdc-text-field--filled .mdc-floating-label--float-above{transform:translateY(-10.25px) scale(0.75)}.mdc-text-field--textarea.mdc-text-field--filled .mdc-text-field__input{margin-top:23px;margin-bottom:9px}.mdc-text-field--textarea.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__input{margin-top:16px;margin-bottom:16px}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:0}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-27.25px) scale(1)}.mdc-text-field--textarea.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--textarea.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-24.75px) scale(0.75)}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label--float-above{font-size:.75rem}.mdc-text-field--textarea.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--textarea.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-text-field__input{margin-top:16px;margin-bottom:16px}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label{top:18px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field__input{margin-bottom:2px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field-character-counter{align-self:flex-end;padding:0 16px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field-character-counter::after{display:inline-block;width:0;height:16px;content:"";vertical-align:-16px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field-character-counter::before{display:none}.mdc-text-field__resizer{align-self:stretch;display:inline-flex;flex-direction:column;flex-grow:1;max-height:100%;max-width:100%;min-height:56px;min-width:fit-content;min-width:-moz-available;min-width:-webkit-fill-available;overflow:hidden;resize:both}.mdc-text-field--filled .mdc-text-field__resizer{transform:translateY(-1px)}.mdc-text-field--filled .mdc-text-field__resizer .mdc-text-field__input,.mdc-text-field--filled .mdc-text-field__resizer .mdc-text-field-character-counter{transform:translateY(1px)}.mdc-text-field--outlined .mdc-text-field__resizer{transform:translateX(-1px) translateY(-1px)}[dir=rtl] .mdc-text-field--outlined .mdc-text-field__resizer,.mdc-text-field--outlined .mdc-text-field__resizer[dir=rtl]{transform:translateX(1px) translateY(-1px)}.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field__input,.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field-character-counter{transform:translateX(1px) translateY(1px)}[dir=rtl] .mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field__input,[dir=rtl] .mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field-character-counter,.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field__input[dir=rtl],.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field-character-counter[dir=rtl]{transform:translateX(-1px) translateY(1px)}.mdc-text-field--with-leading-icon{padding-left:0;padding-right:16px}[dir=rtl] .mdc-text-field--with-leading-icon,.mdc-text-field--with-leading-icon[dir=rtl]{padding-left:16px;padding-right:0}.mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label{max-width:calc(100% - 48px);left:48px;right:initial}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label,.mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label[dir=rtl]{left:initial;right:48px}.mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label--float-above{max-width:calc(100%/0.75 - 64px/0.75)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label{left:36px;right:initial}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label[dir=rtl]{left:initial;right:36px}.mdc-text-field--with-leading-icon.mdc-text-field--outlined :not(.mdc-notched-outline--notched) .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-37.25px) translateX(-32px) scale(1)}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above[dir=rtl]{transform:translateY(-37.25px) translateX(32px) scale(1)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-34.75px) translateX(-32px) scale(0.75)}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above[dir=rtl],.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above[dir=rtl]{transform:translateY(-34.75px) translateX(32px) scale(0.75)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above{font-size:.75rem}.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-text-field--with-trailing-icon{padding-left:16px;padding-right:0}[dir=rtl] .mdc-text-field--with-trailing-icon,.mdc-text-field--with-trailing-icon[dir=rtl]{padding-left:0;padding-right:16px}.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label{max-width:calc(100% - 64px)}.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label--float-above{max-width:calc(100%/0.75 - 64px/0.75)}.mdc-text-field--with-trailing-icon.mdc-text-field--outlined :not(.mdc-notched-outline--notched) .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon{padding-left:0;padding-right:0}.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label{max-width:calc(100% - 96px)}.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label--float-above{max-width:calc(100%/0.75 - 96px/0.75)}.mdc-text-field-helper-line{display:flex;justify-content:space-between;box-sizing:border-box}.mdc-text-field+.mdc-text-field-helper-line{padding-right:16px;padding-left:16px}.mdc-form-field>.mdc-text-field+label{align-self:flex-start}.mdc-text-field--focused .mdc-notched-outline__leading,.mdc-text-field--focused .mdc-notched-outline__notch,.mdc-text-field--focused .mdc-notched-outline__trailing{border-width:2px}.mdc-text-field--focused+.mdc-text-field-helper-line .mdc-text-field-helper-text:not(.mdc-text-field-helper-text--validation-msg){opacity:1}.mdc-text-field--focused.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:2px}.mdc-text-field--focused.mdc-text-field--outlined.mdc-text-field--textarea .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:0}.mdc-text-field--invalid+.mdc-text-field-helper-line .mdc-text-field-helper-text--validation-msg{opacity:1}.mdc-text-field--disabled{pointer-events:none}@media screen and (forced-colors: active){.mdc-text-field--disabled .mdc-text-field__input{background-color:Window}.mdc-text-field--disabled .mdc-floating-label{z-index:1}}.mdc-text-field--disabled .mdc-floating-label{cursor:default}.mdc-text-field--disabled.mdc-text-field--filled .mdc-text-field__ripple{display:none}.mdc-text-field--disabled .mdc-text-field__input{pointer-events:auto}.mdc-text-field--end-aligned .mdc-text-field__input{text-align:right}[dir=rtl] .mdc-text-field--end-aligned .mdc-text-field__input,.mdc-text-field--end-aligned .mdc-text-field__input[dir=rtl]{text-align:left}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__input,[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__input,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix{direction:ltr}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--prefix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--prefix{padding-left:0;padding-right:2px}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--suffix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--suffix{padding-left:12px;padding-right:0}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__icon--leading,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__icon--leading{order:1}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--suffix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--suffix{order:2}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__input,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__input{order:3}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--prefix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--prefix{order:4}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__icon--trailing,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__icon--trailing{order:5}[dir=rtl] .mdc-text-field--ltr-text.mdc-text-field--end-aligned .mdc-text-field__input,.mdc-text-field--ltr-text.mdc-text-field--end-aligned[dir=rtl] .mdc-text-field__input{text-align:right}[dir=rtl] .mdc-text-field--ltr-text.mdc-text-field--end-aligned .mdc-text-field__affix--prefix,.mdc-text-field--ltr-text.mdc-text-field--end-aligned[dir=rtl] .mdc-text-field__affix--prefix{padding-right:12px}[dir=rtl] .mdc-text-field--ltr-text.mdc-text-field--end-aligned .mdc-text-field__affix--suffix,.mdc-text-field--ltr-text.mdc-text-field--end-aligned[dir=rtl] .mdc-text-field__affix--suffix{padding-left:2px}.mdc-floating-label{position:absolute;left:0;-webkit-transform-origin:left top;transform-origin:left top;line-height:1.15rem;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:text;overflow:hidden;will-change:transform}[dir=rtl] .mdc-floating-label,.mdc-floating-label[dir=rtl]{right:0;left:auto;-webkit-transform-origin:right top;transform-origin:right top;text-align:right}.mdc-floating-label--float-above{cursor:auto}.mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after{margin-left:1px;margin-right:0px;content:"*"}[dir=rtl] .mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after,.mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)[dir=rtl]::after{margin-left:0;margin-right:1px}.mdc-notched-outline{display:flex;position:absolute;top:0;right:0;left:0;box-sizing:border-box;width:100%;max-width:100%;height:100%;text-align:left;pointer-events:none}[dir=rtl] .mdc-notched-outline,.mdc-notched-outline[dir=rtl]{text-align:right}.mdc-notched-outline__leading,.mdc-notched-outline__notch,.mdc-notched-outline__trailing{box-sizing:border-box;height:100%;pointer-events:none}.mdc-notched-outline__trailing{flex-grow:1}.mdc-notched-outline__notch{flex:0 0 auto;width:auto}.mdc-notched-outline .mdc-floating-label{display:inline-block;position:relative;max-width:100%}.mdc-notched-outline .mdc-floating-label--float-above{text-overflow:clip}.mdc-notched-outline--upgraded .mdc-floating-label--float-above{max-width:133.3333333333%}.mdc-notched-outline--notched .mdc-notched-outline__notch{padding-left:0;padding-right:8px;border-top:none}[dir=rtl] .mdc-notched-outline--notched .mdc-notched-outline__notch,.mdc-notched-outline--notched .mdc-notched-outline__notch[dir=rtl]{padding-left:8px;padding-right:0}.mdc-notched-outline--no-label .mdc-notched-outline__notch{display:none}.mdc-line-ripple::before,.mdc-line-ripple::after{position:absolute;bottom:0;left:0;width:100%;border-bottom-style:solid;content:""}.mdc-line-ripple::before{z-index:1}.mdc-line-ripple::after{transform:scaleX(0);opacity:0;z-index:2}.mdc-line-ripple--active::after{transform:scaleX(1);opacity:1}.mdc-line-ripple--deactivating::after{opacity:0}.mdc-floating-label--float-above{transform:translateY(-106%) scale(0.75)}.mdc-notched-outline__leading,.mdc-notched-outline__notch,.mdc-notched-outline__trailing{border-top:1px solid;border-bottom:1px solid}.mdc-notched-outline__leading{border-left:1px solid;border-right:none;width:12px}[dir=rtl] .mdc-notched-outline__leading,.mdc-notched-outline__leading[dir=rtl]{border-left:none;border-right:1px solid}.mdc-notched-outline__trailing{border-left:none;border-right:1px solid}[dir=rtl] .mdc-notched-outline__trailing,.mdc-notched-outline__trailing[dir=rtl]{border-left:1px solid;border-right:none}.mdc-notched-outline__notch{max-width:calc(100% - 12px*2)}.mdc-line-ripple::before{border-bottom-width:1px}.mdc-line-ripple::after{border-bottom-width:2px}.mdc-text-field--filled{border-top-left-radius:var(--mdc-filled-text-field-container-shape);border-top-right-radius:var(--mdc-filled-text-field-container-shape);border-bottom-right-radius:0;border-bottom-left-radius:0}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-filled-text-field-caret-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-filled-text-field-error-caret-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mdc-filled-text-field-input-text-color)}.mdc-text-field--filled.mdc-text-field--disabled .mdc-text-field__input{color:var(--mdc-filled-text-field-disabled-input-text-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-floating-label,.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-label-text-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label,.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-focus-label-text-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label,.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-hover-label-text-color)}.mdc-text-field--filled.mdc-text-field--disabled .mdc-floating-label,.mdc-text-field--filled.mdc-text-field--disabled .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-disabled-label-text-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-floating-label,.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-error-label-text-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label,.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-error-focus-label-text-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label,.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-error-hover-label-text-color)}.mdc-text-field--filled .mdc-floating-label{font-family:var(--mdc-filled-text-field-label-text-font);font-size:var(--mdc-filled-text-field-label-text-size);font-weight:var(--mdc-filled-text-field-label-text-weight);letter-spacing:var(--mdc-filled-text-field-label-text-tracking)}@media all{.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color)}}@media all{.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color)}}.mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:var(--mdc-filled-text-field-container-color)}.mdc-text-field--filled.mdc-text-field--disabled{background-color:var(--mdc-filled-text-field-disabled-container-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-active-indicator-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-hover-active-indicator-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mdc-filled-text-field-focus-active-indicator-color)}.mdc-text-field--filled.mdc-text-field--disabled .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-disabled-active-indicator-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-error-active-indicator-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-error-hover-active-indicator-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mdc-filled-text-field-error-focus-active-indicator-color)}.mdc-text-field--filled .mdc-line-ripple::before{border-bottom-width:var(--mdc-filled-text-field-active-indicator-height)}.mdc-text-field--filled .mdc-line-ripple::after{border-bottom-width:var(--mdc-filled-text-field-focus-active-indicator-height)}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-outlined-text-field-caret-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-outlined-text-field-error-caret-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mdc-outlined-text-field-input-text-color)}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input{color:var(--mdc-outlined-text-field-disabled-input-text-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-floating-label,.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-label-text-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-focus-label-text-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label,.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-hover-label-text-color)}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-floating-label,.mdc-text-field--outlined.mdc-text-field--disabled .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-disabled-label-text-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-floating-label,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-error-label-text-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-error-focus-label-text-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-error-hover-label-text-color)}.mdc-text-field--outlined .mdc-floating-label{font-family:var(--mdc-outlined-text-field-label-text-font);font-size:var(--mdc-outlined-text-field-label-text-size);font-weight:var(--mdc-outlined-text-field-label-text-weight);letter-spacing:var(--mdc-outlined-text-field-label-text-tracking)}@media all{.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color)}}@media all{.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color)}}.mdc-text-field--outlined.mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label--float-above{font-size:calc(.75*var(--mdc-outlined-text-field-label-text-size))}.mdc-text-field--outlined.mdc-text-field--textarea.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined.mdc-text-field--textarea.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:var(--mdc-outlined-text-field-label-text-size)}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{border-top-left-radius:var(--mdc-outlined-text-field-container-shape);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:var(--mdc-outlined-text-field-container-shape)}[dir=rtl] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading[dir=rtl]{border-top-left-radius:0;border-top-right-radius:var(--mdc-outlined-text-field-container-shape);border-bottom-right-radius:var(--mdc-outlined-text-field-container-shape);border-bottom-left-radius:0}@supports(top: max(0%)){.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{width:max(12px,var(--mdc-outlined-text-field-container-shape))}}@supports(top: max(0%)){.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__notch{max-width:calc(100% - max(12px,var(--mdc-outlined-text-field-container-shape))*2)}}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing{border-top-left-radius:0;border-top-right-radius:var(--mdc-outlined-text-field-container-shape);border-bottom-right-radius:var(--mdc-outlined-text-field-container-shape);border-bottom-left-radius:0}[dir=rtl] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing,.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing[dir=rtl]{border-top-left-radius:var(--mdc-outlined-text-field-container-shape);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:var(--mdc-outlined-text-field-container-shape)}@supports(top: max(0%)){.mdc-text-field--outlined{padding-left:max(16px,calc(var(--mdc-outlined-text-field-container-shape) + 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined{padding-right:max(16px,var(--mdc-outlined-text-field-container-shape))}}@supports(top: max(0%)){.mdc-text-field--outlined+.mdc-text-field-helper-line{padding-left:max(16px,calc(var(--mdc-outlined-text-field-container-shape) + 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined+.mdc-text-field-helper-line{padding-right:max(16px,var(--mdc-outlined-text-field-container-shape))}}.mdc-text-field--outlined.mdc-text-field--with-leading-icon{padding-left:0}@supports(top: max(0%)){.mdc-text-field--outlined.mdc-text-field--with-leading-icon{padding-right:max(16px,var(--mdc-outlined-text-field-container-shape))}}[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-leading-icon,.mdc-text-field--outlined.mdc-text-field--with-leading-icon[dir=rtl]{padding-right:0}@supports(top: max(0%)){[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-leading-icon,.mdc-text-field--outlined.mdc-text-field--with-leading-icon[dir=rtl]{padding-left:max(16px,var(--mdc-outlined-text-field-container-shape))}}.mdc-text-field--outlined.mdc-text-field--with-trailing-icon{padding-right:0}@supports(top: max(0%)){.mdc-text-field--outlined.mdc-text-field--with-trailing-icon{padding-left:max(16px,calc(var(--mdc-outlined-text-field-container-shape) + 4px))}}[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-trailing-icon,.mdc-text-field--outlined.mdc-text-field--with-trailing-icon[dir=rtl]{padding-left:0}@supports(top: max(0%)){[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-trailing-icon,.mdc-text-field--outlined.mdc-text-field--with-trailing-icon[dir=rtl]{padding-right:max(16px,calc(var(--mdc-outlined-text-field-container-shape) + 4px))}}.mdc-text-field--outlined.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon{padding-left:0;padding-right:0}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-outline-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-hover-outline-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-focus-outline-color)}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-notched-outline__leading,.mdc-text-field--outlined.mdc-text-field--disabled .mdc-notched-outline__notch,.mdc-text-field--outlined.mdc-text-field--disabled .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-disabled-outline-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-notched-outline__leading,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-notched-outline__notch,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-error-outline-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__notch,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-error-hover-outline-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__leading,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__notch,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-error-focus-outline-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline .mdc-notched-outline__trailing{border-width:var(--mdc-outlined-text-field-outline-width)}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mdc-notched-outline__trailing{border-width:var(--mdc-outlined-text-field-focus-outline-width)}.mat-mdc-form-field-textarea-control{vertical-align:middle;resize:vertical;box-sizing:border-box;height:auto;margin:0;padding:0;border:none;overflow:auto}.mat-mdc-form-field-input-control.mat-mdc-form-field-input-control{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font:inherit;letter-spacing:inherit;text-decoration:inherit;text-transform:inherit;border:none}.mat-mdc-form-field .mat-mdc-floating-label.mdc-floating-label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;line-height:normal;pointer-events:all;will-change:auto}.mat-mdc-form-field:not(.mat-form-field-disabled) .mat-mdc-floating-label.mdc-floating-label{cursor:inherit}.mdc-text-field--no-label:not(.mdc-text-field--textarea) .mat-mdc-form-field-input-control.mdc-text-field__input,.mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control{height:auto}.mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control.mdc-text-field__input[type=color]{height:23px}.mat-mdc-text-field-wrapper{height:auto;flex:auto;will-change:auto}.mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-left:0;--mat-mdc-form-field-label-offset-x: -16px}.mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-right:0}[dir=rtl] .mat-mdc-text-field-wrapper{padding-left:16px;padding-right:16px}[dir=rtl] .mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-left:0}[dir=rtl] .mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-right:0}.mat-form-field-disabled .mdc-text-field__input::placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color)}.mat-form-field-disabled .mdc-text-field__input::-moz-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color)}.mat-form-field-disabled .mdc-text-field__input::-webkit-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color)}.mat-form-field-disabled .mdc-text-field__input:-ms-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color)}.mat-mdc-form-field-label-always-float .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms;opacity:1}.mat-mdc-text-field-wrapper .mat-mdc-form-field-infix .mat-mdc-floating-label{left:auto;right:auto}.mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-text-field__input{display:inline-block}.mat-mdc-form-field .mat-mdc-text-field-wrapper.mdc-text-field .mdc-notched-outline__notch{padding-top:0}.mat-mdc-text-field-wrapper::before{content:none}.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field .mdc-notched-outline__notch{border-left:1px solid rgba(0,0,0,0)}[dir=rtl] .mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field .mdc-notched-outline__notch{border-left:none;border-right:1px solid rgba(0,0,0,0)}.mat-mdc-form-field-infix{min-height:var(--mat-form-field-container-height);padding-top:var(--mat-form-field-filled-with-label-container-padding-top);padding-bottom:var(--mat-form-field-filled-with-label-container-padding-bottom)}.mdc-text-field--outlined .mat-mdc-form-field-infix,.mdc-text-field--no-label .mat-mdc-form-field-infix{padding-top:var(--mat-form-field-container-vertical-padding);padding-bottom:var(--mat-form-field-container-vertical-padding)}.mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-floating-label{top:calc(var(--mat-form-field-container-height)/2)}.mdc-text-field--filled .mat-mdc-floating-label{display:var(--mat-form-field-filled-label-display, block)}.mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{--mat-mdc-form-field-label-transform: translateY(calc(calc(6.75px + var(--mat-form-field-container-height) / 2) * -1)) scale(var(--mat-mdc-form-field-floating-label-scale, 0.75));transform:var(--mat-mdc-form-field-label-transform)}.mat-mdc-form-field-subscript-wrapper{box-sizing:border-box;width:100%;position:relative}.mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-error-wrapper{position:absolute;top:0;left:0;right:0;padding:0 16px}.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-error-wrapper{position:static}.mat-mdc-form-field-bottom-align::before{content:"";display:inline-block;height:16px}.mat-mdc-form-field-bottom-align.mat-mdc-form-field-subscript-dynamic-size::before{content:unset}.mat-mdc-form-field-hint-end{order:1}.mat-mdc-form-field-hint-wrapper{display:flex}.mat-mdc-form-field-hint-spacer{flex:1 0 1em}.mat-mdc-form-field-error{display:block;color:var(--mat-form-field-error-text-color)}.mat-mdc-form-field-subscript-wrapper,.mat-mdc-form-field-bottom-align::before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-form-field-subscript-text-font);line-height:var(--mat-form-field-subscript-text-line-height);font-size:var(--mat-form-field-subscript-text-size);letter-spacing:var(--mat-form-field-subscript-text-tracking);font-weight:var(--mat-form-field-subscript-text-weight)}.mat-mdc-form-field-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;opacity:0;pointer-events:none;background-color:var(--mat-form-field-state-layer-color)}.mat-mdc-text-field-wrapper:hover .mat-mdc-form-field-focus-overlay{opacity:var(--mat-form-field-hover-state-layer-opacity)}.mat-mdc-form-field.mat-focused .mat-mdc-form-field-focus-overlay{opacity:var(--mat-form-field-focus-state-layer-opacity)}select.mat-mdc-form-field-input-control{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(0,0,0,0);display:inline-flex;box-sizing:border-box}select.mat-mdc-form-field-input-control:not(:disabled){cursor:pointer}select.mat-mdc-form-field-input-control:not(.mat-mdc-native-select-inline) option{color:var(--mat-form-field-select-option-text-color)}select.mat-mdc-form-field-input-control:not(.mat-mdc-native-select-inline) option:disabled{color:var(--mat-form-field-select-disabled-option-text-color)}.mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-infix::after{content:"";width:0;height:0;border-left:5px solid rgba(0,0,0,0);border-right:5px solid rgba(0,0,0,0);border-top:5px solid;position:absolute;right:0;top:50%;margin-top:-2.5px;pointer-events:none;color:var(--mat-form-field-enabled-select-arrow-color)}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-infix::after{right:auto;left:0}.mat-mdc-form-field-type-mat-native-select.mat-focused .mat-mdc-form-field-infix::after{color:var(--mat-form-field-focus-select-arrow-color)}.mat-mdc-form-field-type-mat-native-select.mat-form-field-disabled .mat-mdc-form-field-infix::after{color:var(--mat-form-field-disabled-select-arrow-color)}.mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:15px}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:0;padding-left:15px}.cdk-high-contrast-active .mat-form-field-appearance-fill .mat-mdc-text-field-wrapper{outline:solid 1px}.cdk-high-contrast-active .mat-form-field-appearance-fill.mat-form-field-disabled .mat-mdc-text-field-wrapper{outline-color:GrayText}.cdk-high-contrast-active .mat-form-field-appearance-fill.mat-focused .mat-mdc-text-field-wrapper{outline:dashed 3px}.cdk-high-contrast-active .mat-mdc-form-field.mat-focused .mdc-notched-outline{border:dashed 3px}.mat-mdc-form-field-input-control[type=date],.mat-mdc-form-field-input-control[type=datetime],.mat-mdc-form-field-input-control[type=datetime-local],.mat-mdc-form-field-input-control[type=month],.mat-mdc-form-field-input-control[type=week],.mat-mdc-form-field-input-control[type=time]{line-height:1}.mat-mdc-form-field-input-control::-webkit-datetime-edit{line-height:1;padding:0;margin-bottom:-2px}.mat-mdc-form-field{--mat-mdc-form-field-floating-label-scale: 0.75;display:inline-flex;flex-direction:column;min-width:0;text-align:left;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-form-field-container-text-font);line-height:var(--mat-form-field-container-text-line-height);font-size:var(--mat-form-field-container-text-size);letter-spacing:var(--mat-form-field-container-text-tracking);font-weight:var(--mat-form-field-container-text-weight)}[dir=rtl] .mat-mdc-form-field{text-align:right}.mat-mdc-form-field .mdc-text-field--outlined .mdc-floating-label--float-above{font-size:calc(var(--mat-form-field-outlined-label-text-populated-size)*var(--mat-mdc-form-field-floating-label-scale))}.mat-mdc-form-field .mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:var(--mat-form-field-outlined-label-text-populated-size)}.mat-mdc-form-field-flex{display:inline-flex;align-items:baseline;box-sizing:border-box;width:100%}.mat-mdc-text-field-wrapper{width:100%;z-index:0}.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix{align-self:center;line-height:0;pointer-events:auto;position:relative;z-index:1}.mat-mdc-form-field-icon-prefix>.mat-icon,.mat-mdc-form-field-icon-suffix>.mat-icon{padding:0 12px;box-sizing:content-box}.mat-mdc-form-field-icon-prefix{color:var(--mat-form-field-leading-icon-color)}.mat-form-field-disabled .mat-mdc-form-field-icon-prefix{color:var(--mat-form-field-disabled-leading-icon-color)}.mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-trailing-icon-color)}.mat-form-field-disabled .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-disabled-trailing-icon-color)}.mat-form-field-invalid .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-trailing-icon-color)}.mat-form-field-invalid:not(.mat-focused):not(.mat-form-field-disabled) .mat-mdc-text-field-wrapper:hover .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-hover-trailing-icon-color)}.mat-form-field-invalid.mat-focused .mat-mdc-text-field-wrapper .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-focus-trailing-icon-color)}.mat-mdc-form-field-icon-prefix,[dir=rtl] .mat-mdc-form-field-icon-suffix{padding:0 4px 0 0}.mat-mdc-form-field-icon-suffix,[dir=rtl] .mat-mdc-form-field-icon-prefix{padding:0 0 0 4px}.mat-mdc-form-field-subscript-wrapper .mat-icon,.mat-mdc-form-field label .mat-icon{width:1em;height:1em;font-size:inherit}.mat-mdc-form-field-infix{flex:auto;min-width:0;width:180px;position:relative;box-sizing:border-box}.mat-mdc-form-field .mdc-notched-outline__notch{margin-left:-1px;-webkit-clip-path:inset(-9em -999em -9em 1px);clip-path:inset(-9em -999em -9em 1px)}[dir=rtl] .mat-mdc-form-field .mdc-notched-outline__notch{margin-left:0;margin-right:-1px;-webkit-clip-path:inset(-9em 1px -9em -999em);clip-path:inset(-9em 1px -9em -999em)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input{transition:opacity 150ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}@media all{.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder{transition:opacity 67ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}}@media all{.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder{transition:opacity 67ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}}@media all{.mdc-text-field--no-label .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder,.mdc-text-field--focused .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms}}@media all{.mdc-text-field--no-label .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder,.mdc-text-field--focused .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder{transition-delay:40ms;transition-duration:110ms}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__affix{transition:opacity 150ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--filled.mdc-ripple-upgraded--background-focused .mdc-text-field__ripple::before,.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--filled:not(.mdc-ripple-upgraded):focus .mdc-text-field__ripple::before{transition-duration:75ms}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--outlined .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-text-field-outlined 250ms 1}@keyframes mdc-floating-label-shake-float-above-text-field-outlined{0%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 34.75px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(calc(0% - 34.75px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(calc(0% - 34.75px)) scale(0.75)}100%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 34.75px)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--textarea{transition:none}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--textarea.mdc-text-field--filled .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-textarea-filled 250ms 1}@keyframes mdc-floating-label-shake-float-above-textarea-filled{0%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 10.25px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(calc(0% - 10.25px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(calc(0% - 10.25px)) scale(0.75)}100%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 10.25px)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-textarea-outlined 250ms 1}@keyframes mdc-floating-label-shake-float-above-textarea-outlined{0%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 24.75px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(calc(0% - 24.75px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(calc(0% - 24.75px)) scale(0.75)}100%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 24.75px)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-text-field-outlined-leading-icon 250ms 1}@keyframes mdc-floating-label-shake-float-above-text-field-outlined-leading-icon{0%{transform:translateX(calc(0% - 32px)) translateY(calc(0% - 34.75px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 32px)) translateY(calc(0% - 34.75px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 32px)) translateY(calc(0% - 34.75px)) scale(0.75)}100%{transform:translateX(calc(0% - 32px)) translateY(calc(0% - 34.75px)) scale(0.75)}}[dir=rtl] .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--shake,.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--with-leading-icon.mdc-text-field--outlined[dir=rtl] .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-text-field-outlined-leading-icon 250ms 1}@keyframes mdc-floating-label-shake-float-above-text-field-outlined-leading-icon-rtl{0%{transform:translateX(calc(0% - -32px)) translateY(calc(0% - 34.75px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - -32px)) translateY(calc(0% - 34.75px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - -32px)) translateY(calc(0% - 34.75px)) scale(0.75)}100%{transform:translateX(calc(0% - -32px)) translateY(calc(0% - 34.75px)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-floating-label{transition:transform 150ms cubic-bezier(0.4, 0, 0.2, 1),color 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-standard 250ms 1}@keyframes mdc-floating-label-shake-float-above-standard{0%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 106%)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(calc(0% - 106%)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(calc(0% - 106%)) scale(0.75)}100%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 106%)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-line-ripple::after{transition:transform 180ms cubic-bezier(0.4, 0, 0.2, 1),opacity 180ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-notched-outline .mdc-floating-label{max-width:calc(100% + 1px)}.mdc-notched-outline--upgraded .mdc-floating-label--float-above{max-width:calc(133.3333333333% + 1px)}'],encapsulation:2,data:{animation:[k3e.transitionMessages]},changeDetection:0})}}return n})(),zw=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[hr,gn,GP,hr]})}}return n})();const L3e=["*",[["mat-toolbar-row"]]],O3e=["*","mat-toolbar-row"];let N3e=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=$t({type:n,selectors:[["mat-toolbar-row"]],hostAttrs:[1,"mat-toolbar-row"],exportAs:["matToolbarRow"],standalone:!0})}}return n})(),UA=(()=>{class n{constructor(e,i,r){this._elementRef=e,this._platform=i,this._document=r}ngAfterViewInit(){this._platform.isBrowser&&(this._checkToolbarMixedModes(),this._toolbarRows.changes.subscribe(()=>this._checkToolbarMixedModes()))}_checkToolbarMixedModes(){}static{this.\u0275fac=function(i){return new(i||n)($(Vn),$(eo),$(Bi))}}static{this.\u0275cmp=vt({type:n,selectors:[["mat-toolbar"]],contentQueries:function(i,r,o){if(1&i&&Vr(o,N3e,5),2&i){let s;un(s=hn())&&(r._toolbarRows=s)}},hostAttrs:[1,"mat-toolbar"],hostVars:6,hostBindings:function(i,r){2&i&&(nl(r.color?"mat-"+r.color:""),Qn("mat-toolbar-multiple-rows",r._toolbarRows.length>0)("mat-toolbar-single-row",0===r._toolbarRows.length))},inputs:{color:"color"},exportAs:["matToolbar"],standalone:!0,features:[Or],ngContentSelectors:O3e,decls:2,vars:0,template:function(i,r){1&i&&($r(L3e),Gn(0),Gn(1,1))},styles:[".mat-toolbar{background:var(--mat-toolbar-container-background-color);color:var(--mat-toolbar-container-text-color)}.mat-toolbar,.mat-toolbar h1,.mat-toolbar h2,.mat-toolbar h3,.mat-toolbar h4,.mat-toolbar h5,.mat-toolbar h6{font-family:var(--mat-toolbar-title-text-font);font-size:var(--mat-toolbar-title-text-size);line-height:var(--mat-toolbar-title-text-line-height);font-weight:var(--mat-toolbar-title-text-weight);letter-spacing:var(--mat-toolbar-title-text-tracking);margin:0}.cdk-high-contrast-active .mat-toolbar{outline:solid 1px}.mat-toolbar .mat-form-field-underline,.mat-toolbar .mat-form-field-ripple,.mat-toolbar .mat-focused .mat-form-field-ripple{background-color:currentColor}.mat-toolbar .mat-form-field-label,.mat-toolbar .mat-focused .mat-form-field-label,.mat-toolbar .mat-select-value,.mat-toolbar .mat-select-arrow,.mat-toolbar .mat-form-field.mat-focused .mat-select-arrow{color:inherit}.mat-toolbar .mat-input-element{caret-color:currentColor}.mat-toolbar .mat-mdc-button-base.mat-mdc-button-base.mat-unthemed{--mdc-text-button-label-text-color:var(--mat-toolbar-container-text-color);--mdc-outlined-button-label-text-color:var(--mat-toolbar-container-text-color)}.mat-toolbar-row,.mat-toolbar-single-row{display:flex;box-sizing:border-box;padding:0 16px;width:100%;flex-direction:row;align-items:center;white-space:nowrap;height:var(--mat-toolbar-standard-height)}@media(max-width: 599px){.mat-toolbar-row,.mat-toolbar-single-row{height:var(--mat-toolbar-mobile-height)}}.mat-toolbar-multiple-rows{display:flex;box-sizing:border-box;flex-direction:column;width:100%;min-height:var(--mat-toolbar-standard-height)}@media(max-width: 599px){.mat-toolbar-multiple-rows{min-height:var(--mat-toolbar-mobile-height)}}"],encapsulation:2,changeDetection:0})}}return n})(),BZ=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[hr,hr]})}}return n})();const PZ=Kp({passive:!0});let U3e=(()=>{class n{constructor(e,i){this._platform=e,this._ngZone=i,this._monitoredElements=new Map}monitor(e){if(!this._platform.isBrowser)return U0;const i=yh(e),r=this._monitoredElements.get(i);if(r)return r.subject;const o=new Hn,s="cdk-text-field-autofilled",a=l=>{"cdk-text-field-autofill-start"!==l.animationName||i.classList.contains(s)?"cdk-text-field-autofill-end"===l.animationName&&i.classList.contains(s)&&(i.classList.remove(s),this._ngZone.run(()=>o.next({target:l.target,isAutofilled:!1}))):(i.classList.add(s),this._ngZone.run(()=>o.next({target:l.target,isAutofilled:!0})))};return this._ngZone.runOutsideAngular(()=>{i.addEventListener("animationstart",a,PZ),i.classList.add("cdk-text-field-autofill-monitored")}),this._monitoredElements.set(i,{subject:o,unlisten:()=>{i.removeEventListener("animationstart",a,PZ)}}),o}stopMonitoring(e){const i=yh(e),r=this._monitoredElements.get(i);r&&(r.unlisten(),r.subject.complete(),i.classList.remove("cdk-text-field-autofill-monitored"),i.classList.remove("cdk-text-field-autofilled"),this._monitoredElements.delete(i))}ngOnDestroy(){this._monitoredElements.forEach((e,i)=>this.stopMonitoring(i))}static{this.\u0275fac=function(i){return new(i||n)(ge(eo),ge(kn))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),RZ=(()=>{class n{get minRows(){return this._minRows}set minRows(e){this._minRows=im(e),this._setMinHeight()}get maxRows(){return this._maxRows}set maxRows(e){this._maxRows=im(e),this._setMaxHeight()}get enabled(){return this._enabled}set enabled(e){this._enabled!==e&&((this._enabled=e)?this.resizeToFitContent(!0):this.reset())}get placeholder(){return this._textareaElement.placeholder}set placeholder(e){this._cachedPlaceholderHeight=void 0,e?this._textareaElement.setAttribute("placeholder",e):this._textareaElement.removeAttribute("placeholder"),this._cacheTextareaPlaceholderHeight()}constructor(e,i,r,o){this._elementRef=e,this._platform=i,this._ngZone=r,this._destroyed=new Hn,this._enabled=!0,this._previousMinRows=-1,this._isViewInited=!1,this._handleFocusEvent=s=>{this._hasFocus="focus"===s.type},this._document=o,this._textareaElement=this._elementRef.nativeElement}_setMinHeight(){const e=this.minRows&&this._cachedLineHeight?this.minRows*this._cachedLineHeight+"px":null;e&&(this._textareaElement.style.minHeight=e)}_setMaxHeight(){const e=this.maxRows&&this._cachedLineHeight?this.maxRows*this._cachedLineHeight+"px":null;e&&(this._textareaElement.style.maxHeight=e)}ngAfterViewInit(){this._platform.isBrowser&&(this._initialHeight=this._textareaElement.style.height,this.resizeToFitContent(),this._ngZone.runOutsideAngular(()=>{j0(this._getWindow(),"resize").pipe(RP(16),to(this._destroyed)).subscribe(()=>this.resizeToFitContent(!0)),this._textareaElement.addEventListener("focus",this._handleFocusEvent),this._textareaElement.addEventListener("blur",this._handleFocusEvent)}),this._isViewInited=!0,this.resizeToFitContent(!0))}ngOnDestroy(){this._textareaElement.removeEventListener("focus",this._handleFocusEvent),this._textareaElement.removeEventListener("blur",this._handleFocusEvent),this._destroyed.next(),this._destroyed.complete()}_cacheTextareaLineHeight(){if(this._cachedLineHeight)return;let e=this._textareaElement.cloneNode(!1);e.rows=1,e.style.position="absolute",e.style.visibility="hidden",e.style.border="none",e.style.padding="0",e.style.height="",e.style.minHeight="",e.style.maxHeight="",e.style.overflow="hidden",this._textareaElement.parentNode.appendChild(e),this._cachedLineHeight=e.clientHeight,e.remove(),this._setMinHeight(),this._setMaxHeight()}_measureScrollHeight(){const e=this._textareaElement,i=e.style.marginBottom||"",r=this._platform.FIREFOX,o=r&&this._hasFocus,s=r?"cdk-textarea-autosize-measuring-firefox":"cdk-textarea-autosize-measuring";o&&(e.style.marginBottom=`${e.clientHeight}px`),e.classList.add(s);const a=e.scrollHeight-4;return e.classList.remove(s),o&&(e.style.marginBottom=i),a}_cacheTextareaPlaceholderHeight(){if(!this._isViewInited||null!=this._cachedPlaceholderHeight)return;if(!this.placeholder)return void(this._cachedPlaceholderHeight=0);const e=this._textareaElement.value;this._textareaElement.value=this._textareaElement.placeholder,this._cachedPlaceholderHeight=this._measureScrollHeight(),this._textareaElement.value=e}ngDoCheck(){this._platform.isBrowser&&this.resizeToFitContent()}resizeToFitContent(e=!1){if(!this._enabled||(this._cacheTextareaLineHeight(),this._cacheTextareaPlaceholderHeight(),!this._cachedLineHeight))return;const i=this._elementRef.nativeElement,r=i.value;if(!e&&this._minRows===this._previousMinRows&&r===this._previousValue)return;const o=this._measureScrollHeight(),s=Math.max(o,this._cachedPlaceholderHeight||0);i.style.height=`${s}px`,this._ngZone.runOutsideAngular(()=>{typeof requestAnimationFrame<"u"?requestAnimationFrame(()=>this._scrollToCaretPosition(i)):setTimeout(()=>this._scrollToCaretPosition(i))}),this._previousValue=r,this._previousMinRows=this._minRows}reset(){void 0!==this._initialHeight&&(this._textareaElement.style.height=this._initialHeight)}_noopInputHandler(){}_getDocument(){return this._document||document}_getWindow(){return this._getDocument().defaultView||window}_scrollToCaretPosition(e){const{selectionStart:i,selectionEnd:r}=e;!this._destroyed.isStopped&&this._hasFocus&&e.setSelectionRange(i,r)}static{this.\u0275fac=function(i){return new(i||n)($(Vn),$(eo),$(kn),$(Bi,8))}}static{this.\u0275dir=$t({type:n,selectors:[["textarea","cdkTextareaAutosize",""]],hostAttrs:["rows","1",1,"cdk-textarea-autosize"],hostBindings:function(i,r){1&i&&We("input",function(){return r._noopInputHandler()})},inputs:{minRows:[Ct.None,"cdkAutosizeMinRows","minRows"],maxRows:[Ct.None,"cdkAutosizeMaxRows","maxRows"],enabled:[Ct.HasDecoratorInputTransform,"cdkTextareaAutosize","enabled",Zn],placeholder:"placeholder"},exportAs:["cdkTextareaAutosize"],standalone:!0,features:[es]})}}return n})(),H3e=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({})}}return n})();const V3e=new ut("MAT_INPUT_VALUE_ACCESSOR"),Q3e=["button","checkbox","file","hidden","image","radio","range","reset","submit"];let z3e=0,km=(()=>{class n{get disabled(){return this._disabled}set disabled(e){this._disabled=ta(e),this.focused&&(this.focused=!1,this.stateChanges.next())}get id(){return this._id}set id(e){this._id=e||this._uid}get required(){return this._required??this.ngControl?.control?.hasValidator(s3.required)??!1}set required(e){this._required=ta(e)}get type(){return this._type}set type(e){this._type=e||"text",this._validateType(),!this._isTextarea&&SG().has(this._type)&&(this._elementRef.nativeElement.type=this._type)}get errorStateMatcher(){return this._errorStateTracker.matcher}set errorStateMatcher(e){this._errorStateTracker.matcher=e}get value(){return this._inputValueAccessor.value}set value(e){e!==this.value&&(this._inputValueAccessor.value=e,this.stateChanges.next())}get readonly(){return this._readonly}set readonly(e){this._readonly=ta(e)}get errorState(){return this._errorStateTracker.errorState}set errorState(e){this._errorStateTracker.errorState=e}constructor(e,i,r,o,s,a,l,c,d,u){this._elementRef=e,this._platform=i,this.ngControl=r,this._autofillMonitor=c,this._formField=u,this._uid="mat-input-"+z3e++,this.focused=!1,this.stateChanges=new Hn,this.controlType="mat-input",this.autofilled=!1,this._disabled=!1,this._type="text",this._readonly=!1,this._neverEmptyInputTypes=["date","datetime","datetime-local","month","time","week"].filter(A=>SG().has(A)),this._iOSKeyupListener=A=>{const y=A.target;!y.value&&0===y.selectionStart&&0===y.selectionEnd&&(y.setSelectionRange(1,1),y.setSelectionRange(0,0))};const h=this._elementRef.nativeElement,f=h.nodeName.toLowerCase();this._inputValueAccessor=l||h,this._previousNativeValue=this.value,this.id=this.id,i.IOS&&d.runOutsideAngular(()=>{e.nativeElement.addEventListener("keyup",this._iOSKeyupListener)}),this._errorStateTracker=new rR(a,r,s,o,this.stateChanges),this._isServer=!this._platform.isBrowser,this._isNativeSelect="select"===f,this._isTextarea="textarea"===f,this._isInFormField=!!u,this._isNativeSelect&&(this.controlType=h.multiple?"mat-native-select-multiple":"mat-native-select")}ngAfterViewInit(){this._platform.isBrowser&&this._autofillMonitor.monitor(this._elementRef.nativeElement).subscribe(e=>{this.autofilled=e.isAutofilled,this.stateChanges.next()})}ngOnChanges(){this.stateChanges.next()}ngOnDestroy(){this.stateChanges.complete(),this._platform.isBrowser&&this._autofillMonitor.stopMonitoring(this._elementRef.nativeElement),this._platform.IOS&&this._elementRef.nativeElement.removeEventListener("keyup",this._iOSKeyupListener)}ngDoCheck(){this.ngControl&&(this.updateErrorState(),null!==this.ngControl.disabled&&this.ngControl.disabled!==this.disabled&&(this.disabled=this.ngControl.disabled,this.stateChanges.next())),this._dirtyCheckNativeValue(),this._dirtyCheckPlaceholder()}focus(e){this._elementRef.nativeElement.focus(e)}updateErrorState(){this._errorStateTracker.updateErrorState()}_focusChanged(e){e!==this.focused&&(this.focused=e,this.stateChanges.next())}_onInput(){}_dirtyCheckNativeValue(){const e=this._elementRef.nativeElement.value;this._previousNativeValue!==e&&(this._previousNativeValue=e,this.stateChanges.next())}_dirtyCheckPlaceholder(){const e=this._getPlaceholder();if(e!==this._previousPlaceholder){const i=this._elementRef.nativeElement;this._previousPlaceholder=e,e?i.setAttribute("placeholder",e):i.removeAttribute("placeholder")}}_getPlaceholder(){return this.placeholder||null}_validateType(){Q3e.indexOf(this._type)}_isNeverEmpty(){return this._neverEmptyInputTypes.indexOf(this._type)>-1}_isBadInput(){let e=this._elementRef.nativeElement.validity;return e&&e.badInput}get empty(){return!(this._isNeverEmpty()||this._elementRef.nativeElement.value||this._isBadInput()||this.autofilled)}get shouldLabelFloat(){if(this._isNativeSelect){const e=this._elementRef.nativeElement,i=e.options[0];return this.focused||e.multiple||!this.empty||!!(e.selectedIndex>-1&&i&&i.label)}return this.focused||!this.empty}setDescribedByIds(e){e.length?this._elementRef.nativeElement.setAttribute("aria-describedby",e.join(" ")):this._elementRef.nativeElement.removeAttribute("aria-describedby")}onContainerClick(){this.focused||this.focus()}_isInlineSelect(){const e=this._elementRef.nativeElement;return this._isNativeSelect&&(e.multiple||e.size>1)}static{this.\u0275fac=function(i){return new(i||n)($(Vn),$(eo),$(Yd,10),$(zy,8),$(qy,8),$(cW),$(V3e,10),$(U3e),$(kn),$(yO,8))}}static{this.\u0275dir=$t({type:n,selectors:[["input","matInput",""],["textarea","matInput",""],["select","matNativeControl",""],["input","matNativeControl",""],["textarea","matNativeControl",""]],hostAttrs:[1,"mat-mdc-input-element"],hostVars:18,hostBindings:function(i,r){1&i&&We("focus",function(){return r._focusChanged(!0)})("blur",function(){return r._focusChanged(!1)})("input",function(){return r._onInput()}),2&i&&($d("id",r.id)("disabled",r.disabled)("required",r.required),fi("name",r.name||null)("readonly",r.readonly&&!r._isNativeSelect||null)("aria-invalid",r.empty&&r.required?null:r.errorState)("aria-required",r.required)("id",r.id),Qn("mat-input-server",r._isServer)("mat-mdc-form-field-textarea-control",r._isInFormField&&r._isTextarea)("mat-mdc-form-field-input-control",r._isInFormField)("mdc-text-field__input",r._isInFormField)("mat-mdc-native-select-inline",r._isInlineSelect()))},inputs:{disabled:"disabled",id:"id",placeholder:"placeholder",name:"name",required:"required",type:"type",errorStateMatcher:"errorStateMatcher",userAriaDescribedBy:[Ct.None,"aria-describedby","userAriaDescribedBy"],value:"value",readonly:"readonly"},exportAs:["matInput"],standalone:!0,features:[ui([{provide:vO,useExisting:n}]),wr]})}}return n})(),wO=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[hr,zw,zw,H3e,hr]})}}return n})();const q3e=["switch"],G3e=["*"];function W3e(n,t){1&n&&(P(0,"div",10),kl(),P(1,"svg",12),xe(2,"path",13),H(),P(3,"svg",14),xe(4,"path",15),H()())}const $3e=new ut("mat-slide-toggle-default-options",{providedIn:"root",factory:()=>({disableToggleValue:!1,hideIcon:!1})}),j3e={provide:qs,useExisting:Jn(()=>cb),multi:!0};class LZ{constructor(t,e){this.source=t,this.checked=e}}let X3e=0,cb=(()=>{class n{_createChangeEvent(e){return new LZ(this,e)}get buttonId(){return`${this.id||this._uniqueId}-button`}focus(){this._switchElement.nativeElement.focus()}get checked(){return this._checked}set checked(e){this._checked=e,this._changeDetectorRef.markForCheck()}get inputId(){return`${this.id||this._uniqueId}-input`}constructor(e,i,r,o,s,a){this._elementRef=e,this._focusMonitor=i,this._changeDetectorRef=r,this.defaults=s,this._onChange=l=>{},this._onTouched=()=>{},this._validatorOnChange=()=>{},this._checked=!1,this.name=null,this.labelPosition="after",this.ariaLabel=null,this.ariaLabelledby=null,this.disabled=!1,this.disableRipple=!1,this.tabIndex=0,this.change=new Bn,this.toggleChange=new Bn,this.tabIndex=parseInt(o)||0,this.color=s.color||"accent",this._noopAnimations="NoopAnimations"===a,this.id=this._uniqueId="mat-mdc-slide-toggle-"+ ++X3e,this.hideIcon=s.hideIcon??!1,this._labelId=this._uniqueId+"-label"}ngAfterContentInit(){this._focusMonitor.monitor(this._elementRef,!0).subscribe(e=>{"keyboard"===e||"program"===e?(this._focused=!0,this._changeDetectorRef.markForCheck()):e||Promise.resolve().then(()=>{this._focused=!1,this._onTouched(),this._changeDetectorRef.markForCheck()})})}ngOnChanges(e){e.required&&this._validatorOnChange()}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef)}writeValue(e){this.checked=!!e}registerOnChange(e){this._onChange=e}registerOnTouched(e){this._onTouched=e}validate(e){return this.required&&!0!==e.value?{required:!0}:null}registerOnValidatorChange(e){this._validatorOnChange=e}setDisabledState(e){this.disabled=e,this._changeDetectorRef.markForCheck()}toggle(){this.checked=!this.checked,this._onChange(this.checked)}_emitChangeEvent(){this._onChange(this.checked),this.change.emit(this._createChangeEvent(this.checked))}_handleClick(){this.toggleChange.emit(),this.defaults.disableToggleValue||(this.checked=!this.checked,this._onChange(this.checked),this.change.emit(new LZ(this,this.checked)))}_getAriaLabelledBy(){return this.ariaLabelledby?this.ariaLabelledby:this.ariaLabel?null:this._labelId}static{this.\u0275fac=function(i){return new(i||n)($(Vn),$(Ch),$(_o),Ll("tabindex"),$($3e),$(ps,8))}}static{this.\u0275cmp=vt({type:n,selectors:[["mat-slide-toggle"]],viewQuery:function(i,r){if(1&i&&ei(q3e,5),2&i){let o;un(o=hn())&&(r._switchElement=o.first)}},hostAttrs:[1,"mat-mdc-slide-toggle"],hostVars:13,hostBindings:function(i,r){2&i&&($d("id",r.id),fi("tabindex",null)("aria-label",null)("name",null)("aria-labelledby",null),nl(r.color?"mat-"+r.color:""),Qn("mat-mdc-slide-toggle-focused",r._focused)("mat-mdc-slide-toggle-checked",r.checked)("_mat-animation-noopable",r._noopAnimations))},inputs:{name:"name",id:"id",labelPosition:"labelPosition",ariaLabel:[Ct.None,"aria-label","ariaLabel"],ariaLabelledby:[Ct.None,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[Ct.None,"aria-describedby","ariaDescribedby"],required:[Ct.HasDecoratorInputTransform,"required","required",Zn],color:"color",disabled:[Ct.HasDecoratorInputTransform,"disabled","disabled",Zn],disableRipple:[Ct.HasDecoratorInputTransform,"disableRipple","disableRipple",Zn],tabIndex:[Ct.HasDecoratorInputTransform,"tabIndex","tabIndex",e=>null==e?0:ha(e)],checked:[Ct.HasDecoratorInputTransform,"checked","checked",Zn],hideIcon:[Ct.HasDecoratorInputTransform,"hideIcon","hideIcon",Zn]},outputs:{change:"change",toggleChange:"toggleChange"},exportAs:["matSlideToggle"],standalone:!0,features:[ui([j3e,{provide:_s,useExisting:n,multi:!0}]),es,wr,Or],ngContentSelectors:G3e,decls:13,vars:24,consts:[["switch",""],["mat-internal-form-field","",3,"labelPosition"],["role","switch","type","button",1,"mdc-switch",3,"click","tabIndex","disabled"],[1,"mdc-switch__track"],[1,"mdc-switch__handle-track"],[1,"mdc-switch__handle"],[1,"mdc-switch__shadow"],[1,"mdc-elevation-overlay"],[1,"mdc-switch__ripple"],["mat-ripple","",1,"mat-mdc-slide-toggle-ripple","mat-mdc-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mdc-switch__icons"],[1,"mdc-label",3,"click","for"],["viewBox","0 0 24 24","aria-hidden","true",1,"mdc-switch__icon","mdc-switch__icon--on"],["d","M19.69,5.23L8.96,15.96l-4.23-4.23L2.96,13.5l6,6L21.46,7L19.69,5.23z"],["viewBox","0 0 24 24","aria-hidden","true",1,"mdc-switch__icon","mdc-switch__icon--off"],["d","M20 13H4v-2h16v2z"]],template:function(i,r){if(1&i){const o=Pn();$r(),P(0,"div",1)(1,"button",2,0),We("click",function(){return Vt(o),Ot(r._handleClick())}),xe(3,"div",3),P(4,"div",4)(5,"div",5)(6,"div",6),xe(7,"div",7),H(),P(8,"div",8),xe(9,"div",9),H(),At(10,W3e,5,0,"div",10),H()()(),P(11,"label",11),We("click",function(a){return Vt(o),Ot(a.stopPropagation())}),Gn(12),H()()}if(2&i){const o=Po(2);pe("labelPosition",r.labelPosition),U(),Qn("mdc-switch--selected",r.checked)("mdc-switch--unselected",!r.checked)("mdc-switch--checked",r.checked)("mdc-switch--disabled",r.disabled),pe("tabIndex",r.disabled?-1:r.tabIndex)("disabled",r.disabled),fi("id",r.buttonId)("name",r.name)("aria-label",r.ariaLabel)("aria-labelledby",r._getAriaLabelledBy())("aria-describedby",r.ariaDescribedby)("aria-required",r.required||null)("aria-checked",r.checked),U(8),pe("matRippleTrigger",o)("matRippleDisabled",r.disableRipple||r.disabled)("matRippleCentered",!0),U(),It(10,r.hideIcon?-1:10),U(),pe("for",r.buttonId),fi("id",r._labelId)}},dependencies:[Mh,xW],styles:['.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:var(--mdc-elevation-overlay-opacity);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1);background-color:var(--mdc-elevation-overlay-color)}.mdc-switch{align-items:center;background:none;border:none;cursor:pointer;display:inline-flex;flex-shrink:0;margin:0;outline:none;overflow:visible;padding:0;position:relative}.mdc-switch[hidden]{display:none}.mdc-switch:disabled{cursor:default;pointer-events:none}.mdc-switch__track{overflow:hidden;position:relative;width:100%}.mdc-switch__track::before,.mdc-switch__track::after{border:1px solid rgba(0,0,0,0);border-radius:inherit;box-sizing:border-box;content:"";height:100%;left:0;position:absolute;width:100%}@media screen and (forced-colors: active){.mdc-switch__track::before,.mdc-switch__track::after{border-color:currentColor}}.mdc-switch__track::before{transition:transform 75ms 0ms cubic-bezier(0, 0, 0.2, 1);transform:translateX(0)}.mdc-switch__track::after{transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.6, 1);transform:translateX(-100%)}[dir=rtl] .mdc-switch__track::after,.mdc-switch__track[dir=rtl]::after{transform:translateX(100%)}.mdc-switch--selected .mdc-switch__track::before{transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.6, 1);transform:translateX(100%)}[dir=rtl] .mdc-switch--selected .mdc-switch__track::before,.mdc-switch--selected .mdc-switch__track[dir=rtl]::before{transform:translateX(-100%)}.mdc-switch--selected .mdc-switch__track::after{transition:transform 75ms 0ms cubic-bezier(0, 0, 0.2, 1);transform:translateX(0)}.mdc-switch__handle-track{height:100%;pointer-events:none;position:absolute;top:0;transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1);left:0;right:auto;transform:translateX(0)}[dir=rtl] .mdc-switch__handle-track,.mdc-switch__handle-track[dir=rtl]{left:auto;right:0}.mdc-switch--selected .mdc-switch__handle-track{transform:translateX(100%)}[dir=rtl] .mdc-switch--selected .mdc-switch__handle-track,.mdc-switch--selected .mdc-switch__handle-track[dir=rtl]{transform:translateX(-100%)}.mdc-switch__handle{display:flex;pointer-events:auto;position:absolute;top:50%;transform:translateY(-50%);left:0;right:auto}[dir=rtl] .mdc-switch__handle,.mdc-switch__handle[dir=rtl]{left:auto;right:0}.mdc-switch__handle::before,.mdc-switch__handle::after{border:1px solid rgba(0,0,0,0);border-radius:inherit;box-sizing:border-box;content:"";width:100%;height:100%;left:0;position:absolute;top:0;transition:background-color 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1),border-color 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1);z-index:-1}@media screen and (forced-colors: active){.mdc-switch__handle::before,.mdc-switch__handle::after{border-color:currentColor}}.mdc-switch__shadow{border-radius:inherit;bottom:0;left:0;position:absolute;right:0;top:0}.mdc-elevation-overlay{bottom:0;left:0;right:0;top:0}.mdc-switch__ripple{left:50%;position:absolute;top:50%;transform:translate(-50%, -50%);z-index:-1}.mdc-switch:disabled .mdc-switch__ripple{display:none}.mdc-switch__icons{height:100%;position:relative;width:100%;z-index:1}.mdc-switch__icon{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0;opacity:0;transition:opacity 30ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mdc-switch--selected .mdc-switch__icon--on,.mdc-switch--unselected .mdc-switch__icon--off{opacity:1;transition:opacity 45ms 30ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-slide-toggle .mdc-switch--disabled+label{color:var(--mdc-switch-disabled-label-text-color)}.mdc-switch{width:var(--mdc-switch-track-width)}.mdc-switch.mdc-switch--selected:enabled .mdc-switch__handle::after{background:var(--mdc-switch-selected-handle-color)}.mdc-switch.mdc-switch--selected:enabled:hover:not(:focus):not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-selected-hover-handle-color)}.mdc-switch.mdc-switch--selected:enabled:focus:not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-selected-focus-handle-color)}.mdc-switch.mdc-switch--selected:enabled:active .mdc-switch__handle::after{background:var(--mdc-switch-selected-pressed-handle-color)}.mdc-switch.mdc-switch--selected:disabled .mdc-switch__handle::after{background:var(--mdc-switch-disabled-selected-handle-color)}.mdc-switch.mdc-switch--unselected:enabled .mdc-switch__handle::after{background:var(--mdc-switch-unselected-handle-color)}.mdc-switch.mdc-switch--unselected:enabled:hover:not(:focus):not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-unselected-hover-handle-color)}.mdc-switch.mdc-switch--unselected:enabled:focus:not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-unselected-focus-handle-color)}.mdc-switch.mdc-switch--unselected:enabled:active .mdc-switch__handle::after{background:var(--mdc-switch-unselected-pressed-handle-color)}.mdc-switch.mdc-switch--unselected:disabled .mdc-switch__handle::after{background:var(--mdc-switch-disabled-unselected-handle-color)}.mdc-switch .mdc-switch__handle::before{background:var(--mdc-switch-handle-surface-color)}.mdc-switch:enabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-handle-elevation)}.mdc-switch:disabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-disabled-handle-elevation)}.mdc-switch .mdc-switch__focus-ring-wrapper,.mdc-switch .mdc-switch__handle{height:var(--mdc-switch-handle-height)}.mdc-switch .mdc-switch__handle{border-radius:var(--mdc-switch-handle-shape)}.mdc-switch .mdc-switch__handle{width:var(--mdc-switch-handle-width)}.mdc-switch .mdc-switch__handle-track{width:calc(100% - var(--mdc-switch-handle-width))}.mdc-switch.mdc-switch--selected:enabled .mdc-switch__icon{fill:var(--mdc-switch-selected-icon-color)}.mdc-switch.mdc-switch--selected:disabled .mdc-switch__icon{fill:var(--mdc-switch-disabled-selected-icon-color)}.mdc-switch.mdc-switch--unselected:enabled .mdc-switch__icon{fill:var(--mdc-switch-unselected-icon-color)}.mdc-switch.mdc-switch--unselected:disabled .mdc-switch__icon{fill:var(--mdc-switch-disabled-unselected-icon-color)}.mdc-switch.mdc-switch--selected:disabled .mdc-switch__icons{opacity:var(--mdc-switch-disabled-selected-icon-opacity)}.mdc-switch.mdc-switch--unselected:disabled .mdc-switch__icons{opacity:var(--mdc-switch-disabled-unselected-icon-opacity)}.mdc-switch.mdc-switch--selected .mdc-switch__icon{width:var(--mdc-switch-selected-icon-size);height:var(--mdc-switch-selected-icon-size)}.mdc-switch.mdc-switch--unselected .mdc-switch__icon{width:var(--mdc-switch-unselected-icon-size);height:var(--mdc-switch-unselected-icon-size)}.mdc-switch.mdc-switch--selected:enabled:hover:not(:focus) .mdc-switch__ripple::before,.mdc-switch.mdc-switch--selected:enabled:hover:not(:focus) .mdc-switch__ripple::after{background-color:var(--mdc-switch-selected-hover-state-layer-color)}.mdc-switch.mdc-switch--selected:enabled:focus .mdc-switch__ripple::before,.mdc-switch.mdc-switch--selected:enabled:focus .mdc-switch__ripple::after{background-color:var(--mdc-switch-selected-focus-state-layer-color)}.mdc-switch.mdc-switch--selected:enabled:active .mdc-switch__ripple::before,.mdc-switch.mdc-switch--selected:enabled:active .mdc-switch__ripple::after{background-color:var(--mdc-switch-selected-pressed-state-layer-color)}.mdc-switch.mdc-switch--unselected:enabled:hover:not(:focus) .mdc-switch__ripple::before,.mdc-switch.mdc-switch--unselected:enabled:hover:not(:focus) .mdc-switch__ripple::after{background-color:var(--mdc-switch-unselected-hover-state-layer-color)}.mdc-switch.mdc-switch--unselected:enabled:focus .mdc-switch__ripple::before,.mdc-switch.mdc-switch--unselected:enabled:focus .mdc-switch__ripple::after{background-color:var(--mdc-switch-unselected-focus-state-layer-color)}.mdc-switch.mdc-switch--unselected:enabled:active .mdc-switch__ripple::before,.mdc-switch.mdc-switch--unselected:enabled:active .mdc-switch__ripple::after{background-color:var(--mdc-switch-unselected-pressed-state-layer-color)}.mdc-switch.mdc-switch--selected:enabled:hover:not(:focus):hover .mdc-switch__ripple::before,.mdc-switch.mdc-switch--selected:enabled:hover:not(:focus).mdc-ripple-surface--hover .mdc-switch__ripple::before{opacity:var(--mdc-switch-selected-hover-state-layer-opacity)}.mdc-switch.mdc-switch--selected:enabled:focus.mdc-ripple-upgraded--background-focused .mdc-switch__ripple::before,.mdc-switch.mdc-switch--selected:enabled:focus:not(.mdc-ripple-upgraded):focus .mdc-switch__ripple::before{transition-duration:75ms;opacity:var(--mdc-switch-selected-focus-state-layer-opacity)}.mdc-switch.mdc-switch--selected:enabled:active:not(.mdc-ripple-upgraded) .mdc-switch__ripple::after{transition:opacity 150ms linear}.mdc-switch.mdc-switch--selected:enabled:active:not(.mdc-ripple-upgraded):active .mdc-switch__ripple::after{transition-duration:75ms;opacity:var(--mdc-switch-selected-pressed-state-layer-opacity)}.mdc-switch.mdc-switch--selected:enabled:active.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-switch-selected-pressed-state-layer-opacity)}.mdc-switch.mdc-switch--unselected:enabled:hover:not(:focus):hover .mdc-switch__ripple::before,.mdc-switch.mdc-switch--unselected:enabled:hover:not(:focus).mdc-ripple-surface--hover .mdc-switch__ripple::before{opacity:var(--mdc-switch-unselected-hover-state-layer-opacity)}.mdc-switch.mdc-switch--unselected:enabled:focus.mdc-ripple-upgraded--background-focused .mdc-switch__ripple::before,.mdc-switch.mdc-switch--unselected:enabled:focus:not(.mdc-ripple-upgraded):focus .mdc-switch__ripple::before{transition-duration:75ms;opacity:var(--mdc-switch-unselected-focus-state-layer-opacity)}.mdc-switch.mdc-switch--unselected:enabled:active:not(.mdc-ripple-upgraded) .mdc-switch__ripple::after{transition:opacity 150ms linear}.mdc-switch.mdc-switch--unselected:enabled:active:not(.mdc-ripple-upgraded):active .mdc-switch__ripple::after{transition-duration:75ms;opacity:var(--mdc-switch-unselected-pressed-state-layer-opacity)}.mdc-switch.mdc-switch--unselected:enabled:active.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-switch-unselected-pressed-state-layer-opacity)}.mdc-switch .mdc-switch__ripple{height:var(--mdc-switch-state-layer-size);width:var(--mdc-switch-state-layer-size)}.mdc-switch .mdc-switch__track{height:var(--mdc-switch-track-height)}.mdc-switch:disabled .mdc-switch__track{opacity:var(--mdc-switch-disabled-track-opacity)}.mdc-switch:enabled .mdc-switch__track::after{background:var(--mdc-switch-selected-track-color)}.mdc-switch:enabled:hover:not(:focus):not(:active) .mdc-switch__track::after{background:var(--mdc-switch-selected-hover-track-color)}.mdc-switch:enabled:focus:not(:active) .mdc-switch__track::after{background:var(--mdc-switch-selected-focus-track-color)}.mdc-switch:enabled:active .mdc-switch__track::after{background:var(--mdc-switch-selected-pressed-track-color)}.mdc-switch:disabled .mdc-switch__track::after{background:var(--mdc-switch-disabled-selected-track-color)}.mdc-switch:enabled .mdc-switch__track::before{background:var(--mdc-switch-unselected-track-color)}.mdc-switch:enabled:hover:not(:focus):not(:active) .mdc-switch__track::before{background:var(--mdc-switch-unselected-hover-track-color)}.mdc-switch:enabled:focus:not(:active) .mdc-switch__track::before{background:var(--mdc-switch-unselected-focus-track-color)}.mdc-switch:enabled:active .mdc-switch__track::before{background:var(--mdc-switch-unselected-pressed-track-color)}.mdc-switch:disabled .mdc-switch__track::before{background:var(--mdc-switch-disabled-unselected-track-color)}.mdc-switch .mdc-switch__track{border-radius:var(--mdc-switch-track-shape)}.mdc-switch:enabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-handle-elevation-shadow)}.mdc-switch:disabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-disabled-handle-elevation-shadow)}.mat-mdc-slide-toggle{display:inline-block;-webkit-tap-highlight-color:rgba(0,0,0,0);outline:0}.mat-mdc-slide-toggle .mat-mdc-slide-toggle-ripple,.mat-mdc-slide-toggle .mdc-switch__ripple::after{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:50%;pointer-events:none}.mat-mdc-slide-toggle .mat-mdc-slide-toggle-ripple:not(:empty),.mat-mdc-slide-toggle .mdc-switch__ripple::after:not(:empty){transform:translateZ(0)}.mat-mdc-slide-toggle .mdc-switch__ripple::after{content:"";opacity:0}.mat-mdc-slide-toggle .mdc-switch:hover .mdc-switch__ripple::after{opacity:.04;transition:opacity 75ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-slide-toggle.mat-mdc-slide-toggle-focused .mdc-switch .mdc-switch__ripple::after{opacity:.12}.mat-mdc-slide-toggle.mat-mdc-slide-toggle-focused .mat-mdc-focus-indicator::before{content:""}.mat-mdc-slide-toggle .mat-ripple-element{opacity:.12}.mat-mdc-slide-toggle .mat-mdc-focus-indicator::before{border-radius:50%}.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle-track,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-elevation-overlay,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__icon,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle::before,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle::after,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__track::before,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__track::after{transition:none}.mat-mdc-slide-toggle .mdc-switch:enabled+.mdc-label{cursor:pointer}.mdc-switch__handle{transition:width 75ms cubic-bezier(0.4, 0, 0.2, 1),height 75ms cubic-bezier(0.4, 0, 0.2, 1),margin 75ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-switch--selected .mdc-switch__track::before{opacity:var(--mat-switch-hidden-track-opacity);transition:var(--mat-switch-hidden-track-transition)}.mdc-switch--selected .mdc-switch__track::after{opacity:var(--mat-switch-visible-track-opacity);transition:var(--mat-switch-visible-track-transition)}.mdc-switch--unselected .mdc-switch__track::before{opacity:var(--mat-switch-visible-track-opacity);transition:var(--mat-switch-visible-track-transition)}.mdc-switch--unselected .mdc-switch__track::after{opacity:var(--mat-switch-hidden-track-opacity);transition:var(--mat-switch-hidden-track-transition)}.mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle{width:var(--mat-switch-unselected-handle-size);height:var(--mat-switch-unselected-handle-size)}.mat-mdc-slide-toggle .mdc-switch--selected .mdc-switch__handle{width:var(--mat-switch-selected-handle-size);height:var(--mat-switch-selected-handle-size)}.mat-mdc-slide-toggle .mdc-switch__handle:has(.mdc-switch__icons){width:var(--mat-switch-with-icon-handle-size);height:var(--mat-switch-with-icon-handle-size)}.mat-mdc-slide-toggle:active .mdc-switch:not(.mdc-switch--disabled) .mdc-switch__handle{width:var(--mat-switch-pressed-handle-size);height:var(--mat-switch-pressed-handle-size)}.mat-mdc-slide-toggle .mdc-switch--selected .mdc-switch__handle{margin:var(--mat-switch-selected-handle-horizontal-margin)}.mat-mdc-slide-toggle .mdc-switch--selected .mdc-switch__handle:has(.mdc-switch__icons){margin:var(--mat-switch-selected-with-icon-handle-horizontal-margin)}.mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle{margin:var(--mat-switch-unselected-handle-horizontal-margin)}.mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle:has(.mdc-switch__icons){margin:var(--mat-switch-unselected-with-icon-handle-horizontal-margin)}.mat-mdc-slide-toggle:active .mdc-switch--selected:not(.mdc-switch--disabled) .mdc-switch__handle{margin:var(--mat-switch-selected-pressed-handle-horizontal-margin)}.mat-mdc-slide-toggle:active .mdc-switch--unselected:not(.mdc-switch--disabled) .mdc-switch__handle{margin:var(--mat-switch-unselected-pressed-handle-horizontal-margin)}.mdc-switch__track::after,.mdc-switch__track::before{border-width:var(--mat-switch-track-outline-width);border-color:var(--mat-switch-track-outline-color)}.mdc-switch--selected .mdc-switch__track::after,.mdc-switch--selected .mdc-switch__track::before{border-width:var(--mat-switch-selected-track-outline-width)}.mdc-switch--disabled .mdc-switch__track::after,.mdc-switch--disabled .mdc-switch__track::before{border-width:var(--mat-switch-disabled-unselected-track-outline-width);border-color:var(--mat-switch-disabled-unselected-track-outline-color)}.mdc-switch--disabled.mdc-switch--selected .mdc-switch__handle::after{opacity:var(--mat-switch-disabled-selected-handle-opacity)}.mdc-switch--disabled.mdc-switch--unselected .mdc-switch__handle::after{opacity:var(--mat-switch-disabled-unselected-handle-opacity)}'],encapsulation:2,changeDetection:0})}}return n})(),OZ=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[cb,hr,hr]})}}return n})();function Z3e(n,t){if(1&n&&(P(0,"mat-error"),we(1),H()),2&n){const e=He();U(),Mr(e.scenarioName.getError("Error"))}}function J3e(n,t){if(1&n){const e=Pn();P(0,"mat-slide-toggle",6),We("change",function(){const r=Vt(e).$implicit;return Ot(He().handleScenarioMetricPropertySelectionChange(r))}),we(1),H()}if(2&n){const e=t.$implicit;pe("checked",e.isSelected),U(),cn(" ",e.metricName?e.metricType+" ("+e.metricName+")":e.metricType," ")}}function ePe(n,t){1&n&&(P(0,"mat-error"),we(1,"You cannot create an empty Scenario."),H())}let tPe=(()=>{class n{constructor(e,i,r){this.state=e,this.scenarioName=new zz("",[n=>0===n.value.length?{Error:"Scenario name is required"}:Zh.isScenarioExisting(n.value)?{Error:"A Scenario with this name already exists"}:null]),this.scenarioNameErrorField="Scenario name is required",this.areAnyScenarioMetricPropertiesSelected=!0,this.scenarioContent=((n,t)=>{const{dynamicSettings:e,appSettings:i,fileSettings:r}=n,o=[{metricType:"Camera-Position",metricName:"",savedValues:{...t},isSelected:!0,isDisabled:!1},{metricType:"Area-Metric",metricName:e.areaMetric,savedValues:e.margin,isSelected:!0,isDisabled:!1},{metricType:"Height-Metric",metricName:e.heightMetric,savedValues:{heightSlider:i.scaling,labelSlider:i.amountOfTopLabels},isSelected:!0,isDisabled:!1},{metricType:"Color-Metric",metricName:e.colorMetric,savedValues:{colorRange:e.colorRange,mapColors:i.mapColors},isSelected:!0,isDisabled:!1}];return r.edges.length>0&&o.push({metricType:"Edge-Metric",metricName:e.edgeMetric,savedValues:{edgePreview:i.amountOfEdgePreviews,edgeHeight:i.edgeHeight},isSelected:!0,isDisabled:!1}),o})(this.state.getValue(),{camera:i.camera.position,cameraTarget:r.controls.target})}handleScenarioMetricPropertySelectionChange(e){e.isSelected=!e.isSelected,this.areAnyScenarioMetricPropertiesSelected=this.scenarioContent.some(i=>i.isSelected)}addCustomScenario(){Zh.addScenario(this.scenarioName.value,this.scenarioContent)}static{this.\u0275fac=function(i){return new(i||n)($(jr),$(vu),$(nc))}}static{this.\u0275cmp=vt({type:n,selectors:[["ng-component"]],decls:19,vars:4,consts:[["xmlns","http://www.w3.org/1999/html",1,"header"],["subscriptSizing","dynamic"],["matInput","",3,"formControl"],[1,"cc-add-custom-scenario-toggles"],[3,"checked"],["mat-flat-button","","mat-dialog-close","",3,"click","disabled"],[3,"change","checked"]],template:function(i,r){1&i&&(P(0,"mat-toolbar",0)(1,"h2"),we(2,"Add Scenario"),H()(),P(3,"mat-dialog-content")(4,"p")(5,"mat-form-field",1)(6,"mat-label"),we(7,"Scenario Name"),H(),xe(8,"input",2),At(9,Z3e,2,1,"mat-error"),H()(),P(10,"p"),we(11,"The scenario includes:"),H(),P(12,"div",3),Rr(13,J3e,2,2,"mat-slide-toggle",4,Hr),At(15,ePe,2,0,"mat-error"),H()(),P(16,"mat-dialog-actions")(17,"button",5),We("click",function(){return r.addCustomScenario()}),we(18," ADD "),H()()),2&i&&(U(8),pe("formControl",r.scenarioName),U(),It(9,r.scenarioName.invalid?9:-1),U(4),Lr(r.scenarioContent),U(2),It(15,r.areAnyScenarioMetricPropertiesSelected?-1:15),U(2),pe("disabled",r.scenarioName.invalid||!r.areAnyScenarioMetricPropertiesSelected))},dependencies:[Yf,L0,vE,yd,vd,wZ,vs,Mc,ud,Ec,UA,km,cb],styles:[".cc-add-custom-scenario-toggles[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:8px}mat-slide-toggle[_ngcontent-%COMP%]{display:block}"]})}}return n})(),xO=(()=>{class n{constructor(){this._vertical=!1,this._inset=!1}get vertical(){return this._vertical}set vertical(e){this._vertical=ta(e)}get inset(){return this._inset}set inset(e){this._inset=ta(e)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=vt({type:n,selectors:[["mat-divider"]],hostAttrs:["role","separator",1,"mat-divider"],hostVars:7,hostBindings:function(i,r){2&i&&(fi("aria-orientation",r.vertical?"vertical":"horizontal"),Qn("mat-divider-vertical",r.vertical)("mat-divider-horizontal",!r.vertical)("mat-divider-inset",r.inset))},inputs:{vertical:"vertical",inset:"inset"},standalone:!0,features:[Or],decls:0,vars:0,template:function(i,r){},styles:[".mat-divider{display:block;margin:0;border-top-style:solid;border-top-color:var(--mat-divider-color);border-top-width:var(--mat-divider-width)}.mat-divider.mat-divider-vertical{border-top:0;border-right-style:solid;border-right-color:var(--mat-divider-color);border-right-width:var(--mat-divider-width)}.mat-divider.mat-divider-inset{margin-left:80px}[dir=rtl] .mat-divider.mat-divider-inset{margin-left:auto;margin-right:80px}"],encapsulation:2,changeDetection:0})}}return n})(),CO=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[hr,hr]})}}return n})();function nPe(n,t){if(1&n&&(P(0,"span",5),xe(1,"i"),H()),2&n){const e=t.$implicit;pe("title",e.tooltip),U(),ah("fa ",e.faIconClass,""),Qn("cc-is-saved",e.isSaved)}}function iPe(n,t){if(1&n){const e=Pn();P(0,"div",0)(1,"button",4),We("click",function(){const r=Vt(e).$implicit;return Ot(He().scenarioService.applyScenario(r.scenarioName))}),we(2),H(),Rr(3,nPe,2,6,"span",5,Hr),P(5,"button",6),We("click",function(){const r=Vt(e).$implicit;return Ot(He().scenarioService.removeScenario(r.scenarioName))}),xe(6,"i",7),H()()}if(2&n){const e=t.$implicit;U(),pe("disabled",!e.isScenarioApplicable),U(),cn(" ",e.scenarioName," "),U(),Lr(e.icons)}}let rPe=(()=>{class n{constructor(e,i){this.scenarioService=e,this.dialog=i,this.scenarios=[]}addScenario(){this.dialog.open(tPe,{panelClass:"cc-add-custom-scenario"})}static{this.\u0275fac=function(i){return new(i||n)($(gO),$(Ws))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-scenarios"]],inputs:{scenarios:"scenarios"},decls:8,vars:0,consts:[[1,"cc-row"],["disabled","",1,"cc-apply-scenario-button"],["title","Create a custom scenario",1,"cc-action-button","cc-add",3,"click"],[1,"fa","fa-plus"],["title","Apply scenario",1,"cc-apply-scenario-button",3,"click","disabled"],[1,"cc-scenario-content-icons",3,"title"],["title","Remove custom scenario",1,"cc-action-button","cc-remove",3,"click"],[1,"fa","fa-minus-square"]],template:function(i,r){1&i&&(P(0,"div",0)(1,"button",1),we(2,"Metric Scenarios"),H(),P(3,"button",2),We("click",function(){return r.addScenario()}),xe(4,"i",3),H()(),xe(5,"mat-divider"),Rr(6,iPe,7,2,"div",0,Hr)),2&i&&(U(6),Lr(r.scenarios))},dependencies:[xO],styles:[".mat-mdc-menu-panel.cc-scenarios-menu{width:420px;max-width:unset}.mat-mdc-menu-panel.cc-scenarios-menu .mat-mdc-menu-content{padding:0}.mat-mdc-menu-panel.cc-scenarios-menu .cc-row{display:flex;height:48px;align-items:center}.mat-mdc-menu-panel.cc-scenarios-menu .cc-row [disabled]{color:#00000061}.mat-mdc-menu-panel.cc-scenarios-menu .cc-row .cc-apply-scenario-button{padding-left:16px;padding-right:16px;height:100%;flex:1;text-align:left;background-color:unset}.mat-mdc-menu-panel.cc-scenarios-menu .cc-row .cc-apply-scenario-button:hover:not([disabled]){background-color:#9e9e9e33}.mat-mdc-menu-panel.cc-scenarios-menu .cc-row .cc-action-button{width:52px;height:100%;display:inline-flex;justify-content:center;align-items:center}.mat-mdc-menu-panel.cc-scenarios-menu .cc-row .cc-action-button.cc-add{background-color:#1b9cfc}.mat-mdc-menu-panel.cc-scenarios-menu .cc-row .cc-action-button.cc-remove{border-left:1px solid rgba(0,0,0,.12);color:#b30000;background-color:unset}.mat-mdc-menu-panel.cc-scenarios-menu .cc-row .cc-action-button.cc-remove:hover:not([disabled]){background-color:#9e9e9e33}.mat-mdc-menu-panel.cc-scenarios-menu .cc-row i.fa{font-size:x-small}.mat-mdc-menu-panel.cc-scenarios-menu .cc-row .cc-scenario-content-icons{padding:0 8px;color:#d3d3d3}.mat-mdc-menu-panel.cc-scenarios-menu .cc-row .cc-scenario-content-icons i.fa.cc-is-saved{color:#000}\n"],encapsulation:2})}}return n})(),oPe=(()=>{class n{constructor(e){this.scenarioService=e,this.scenarios=[]}loadScenarios(){this.scenarios=this.scenarioService.getScenarios()}static{this.\u0275fac=function(i){return new(i||n)($(gO))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-show-scenarios-button"]],decls:4,vars:3,consts:[["menu","matMenu"],["icon","fa-star",3,"click","title","matMenuTriggerFor"],[1,"cc-scenarios-menu"],[3,"scenarios"]],template:function(i,r){if(1&i){const o=Pn();P(0,"cc-ribbon-bar-menu-button",1),We("click",function(){return Vt(o),Ot(r.loadScenarios())}),H(),P(1,"mat-menu",2,0),xe(3,"cc-scenarios",3),H()}if(2&i){const o=Po(2);pe("title","Open the scenario list")("matMenuTriggerFor",o),U(3),pe("scenarios",r.scenarios)}},dependencies:[wu,ab,ET,rPe],styles:["cc-show-scenarios-button{display:flex;justify-content:center}\n"],encapsulation:2})}}return n})();class MO{static downloadCurrentMap(t,e,i,r,o){const s=this.getProjectDataAsCCJsonFormat(t,e,i,r),a=o+t_.CC_FILE_EXTENSION;this.downloadData(JSON.stringify(s),a)}static getProjectDataAsCCJsonFormat(t,e,i,r){return{projectName:e.projectName,apiVersion:e.apiVersion,fileChecksum:e.fileChecksum,nodes:[this.undecorateMap(t)],attributeTypes:r.includes("AttributeTypes")?this.getAttributeTypesForJSON(i.attributeTypes):{},attributeDescriptors:r.includes("AttributeDescriptors")?this.getAttributeDescriptorsForJSON(i.attributeDescriptors):{},edges:r.includes("Edges")?this.undecorateEdges(i.edges):[],markedPackages:r.includes("MarkedPackages")?i.markedPackages:[],blacklist:this.getBlacklistToDownload(r,i.blacklist)}}static getBlacklistToDownload(t,e){const i=[];return t.includes("Flattens")&&i.push(...this.getFilteredBlacklist(e,"flatten").map(r=>({path:r.path,type:"hide"}))),t.includes("Excludes")&&i.push(...this.getFilteredBlacklist(e,"exclude")),i}static getAttributeTypesForJSON(t){return 0===Object.keys(t.edges).length&&0===Object.keys(t.nodes).length?{}:t}static getAttributeDescriptorsForJSON(t){return 0===Object.keys(t).length?{}:t}static getFilteredBlacklist(t,e){return t.filter(i=>i.type===e)}static undecorateMap(t){const e=nu(t);for(const{data:i}of bo(e))delete i.isExcluded,delete i.isFlattened,delete i.edgeAttributes,delete i.path,i.type===Oa.FOLDER?i.attributes={}:delete i.attributes[JE];return e}static undecorateEdges(t){const e=nu(t);for(const i of e)delete i.visible;return e}static downloadData(t,e){const i=new Blob([t],{type:"text/json"}),r=document.createEvent("MouseEvents"),o=document.createElement("a");o.download=e,o.href=window.URL.createObjectURL(i),o.dataset.downloadurl=["text/json",o.download,o.href].join(":"),r.initMouseEvent("click",!0,!1,window,0,0,0,0,0,!1,!1,!1,!1,0,null),o.dispatchEvent(r)}}const NZ=".cc.config.json",UZ="CodeCharta::customConfigs";class ji{static{this.customConfigs=ji.loadCustomConfigsFromLocalStorage()}static{this.customConfigChange$=new wa(null)}static setCustomConfigsToLocalStorage(){const t={version:"1.0.1",customConfigs:[...ji.customConfigs]};localStorage.setItem(UZ,JSON.stringify(t,S2)),ji.customConfigChange$.next(null)}static loadCustomConfigsFromLocalStorage(){const t=this.getCcLocalStorage();return new Map(t?.customConfigs)}static getCcLocalStorage(){return JSON.parse(localStorage.getItem(UZ),HW)}static addCustomConfig(t){ji.customConfigs.set(t.id,t),ji.setCustomConfigsToLocalStorage()}static editCustomConfigNote(t,e){const i=ji.customConfigs.get(t);i.note=e,ji.customConfigs.set(t,i),ji.setCustomConfigsToLocalStorage()}static getCustomConfigSettings(t){return ji.customConfigs.get(t)}static hasCustomConfigByName(t,e,i){for(const r of ji.customConfigs.values())if(r.name===i&&r.mapSelectionMode===t&&this.areEqual(e,r.assignedMaps))return!0;return!1}static areEqual(t,e){return t.size===e.size&&[...t.entries()].every(([i,r])=>e.has(i)&&e.get(i)===r)}static getCustomConfigs(){return ji.customConfigs}static importCustomConfigs(t){const e=JSON.parse(t,HW);for(const i of e.customConfigs.values()){if(ji.getCustomConfigSettings(i.id))continue;ji.hasCustomConfigByName(i.mapSelectionMode,i.assignedMaps,i.name)&&(i.name+=` (${Em.getFormattedTimestamp(new Date(i.creationTime))})`);const o={id:i.id,name:i.name,creationTime:i.creationTime,assignedMaps:i.assignedMaps,customConfigVersion:i.customConfigVersion,mapSelectionMode:i.mapSelectionMode,stateSettings:i.stateSettings,camera:i.camera,...i.note&&{note:i.note}};ji.addCustomConfig(o)}}static downloadCustomConfigs(t){const e={downloadApiVersion:"1.0.1",timestamp:Date.now(),customConfigs:t},i=Em.getNewTimestamp()+NZ;MO.downloadData(JSON.stringify(e,S2),i)}static createExportCustomConfigFromConfig(t){return{...t}}static getCustomConfigsAmountByMapAndMode(t,e){let i=0;for(const r of ji.customConfigs.values())[...r.assignedMaps.values()].join(" ")===t&&r.mapSelectionMode===e&&i++;return i}static getConfigNameSuggestionByFileState({mapSelectionMode:t,assignedMaps:e}){const i=[...e.values()].join(" ");return`${i} #${ji.getCustomConfigsAmountByMapAndMode(i,t)+1}`}static deleteCustomConfigs(t){for(const e of t)ji.customConfigs.delete(e.id);ji.setCustomConfigsToLocalStorage()}static deleteCustomConfig(t){ji.customConfigs.delete(t),ji.setCustomConfigsToLocalStorage()}static sortCustomConfigDropDownGroupList(t,e){if(!e.hasApplicableItems){if(t.hasApplicableItems||t.mapSelectionModet.has(i))}var TT=function(n){return n.MULTIPLE="STANDARD",n.DELTA="DELTA",n}(TT||{});const qw=Zt(tu,n=>{const t=new Map;let e;for(const{selectedAs:i,file:r}of n)e=i===Zi.Partial?TT.MULTIPLE:TT.DELTA,t.set(r.fileMeta.fileChecksum,r.fileMeta.fileName);return{mapSelectionMode:e,assignedMaps:t}});let EO=(()=>{class n{constructor(e){this.store=e,this.downloadableCustomConfigs$=xh([this.store.select(qw),ji.customConfigChange$]).pipe(Ge(([i])=>(({assignedMaps:n})=>{const t=new Map,e=ji.getCustomConfigs();for(const[i,r]of e.entries())cPe(r.assignedMaps,n)&&t.set(i,ji.createExportCustomConfigFromConfig(r));return t})(i))),this.customConfigItemGroups$=xh([this.store.select(qw),ji.customConfigChange$]).pipe(Ge(([i])=>function dPe({assignedMaps:n}){const t={applicableItems:new Map,nonApplicableItems:new Map},e=new Map;for(const i of ji.loadCustomConfigsFromLocalStorage().values()){const r=[...i.assignedMaps.values()],o=`${r.join("_")}_${i.mapSelectionMode}`,s=[...i.assignedMaps.keys()].some(b=>n.has(b));e.has(o)||e.set(o,{mapNames:r.join(" "),mapSelectionMode:i.mapSelectionMode,hasApplicableItems:s,customConfigItems:[]});const{positive:a,neutral:l,negative:c,selected:d,positiveDelta:u,negativeDelta:h}=i.stateSettings.appSettings.mapColors,{areaMetric:f,heightMetric:A,colorMetric:y,edgeMetric:_}=i.stateSettings.dynamicSettings;e.get(o).customConfigItems.push({id:i.id,name:i.name,assignedMaps:i.assignedMaps,mapSelectionMode:i.mapSelectionMode,metrics:{areaMetric:f,heightMetric:A,colorMetric:y,edgeMetric:_},mapColors:{positive:a,neutral:l,negative:c,selected:d,positiveDelta:u,negativeDelta:h},isApplicable:s,...i.note&&{note:i.note}}),e.get(o).hasApplicableItems?t.applicableItems.set(o,e.get(o)):t.nonApplicableItems.set(o,e.get(o))}return t}(i)))}static{this.\u0275fac=function(i){return new(i||n)(ge(Xt))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac})}}return n})();function uPe(n,t){1&n&&(P(0,"div",7),we(1,"It is time to add your first Custom View!"),H())}function hPe(n,t){if(1&n&&xe(0,"cc-custom-config-item-group",12),2&n){const e=He(2),i=He();pe("customConfigItemGroups",e.nonApplicableItems)("searchTerm",i.searchTerm)}}function fPe(n,t){if(1&n){const e=Pn();P(0,"button",14),We("click",function(){return Vt(e),Ot(He(3).toggleNonApplicableCustomConfigsList())}),we(1),xe(2,"i",15),H()}if(2&n){const e=He(3);U(),cn(" ",e.isNonApplicableListCollapsed?"Show non-applicable Custom Views":"Hide non-applicable Custom Views"," "),U(),pe("ngClass",e.isNonApplicableListCollapsed?"fa fa-angle-down":"fa fa-angle-up")}}function mPe(n,t){if(1&n){const e=Pn();P(0,"mat-accordion",8)(1,"mat-form-field",9),xe(2,"i",10),P(3,"mat-label"),we(4),H(),P(5,"input",11),We("input",function(r){return Vt(e),Ot(He(2).setSearchTermDebounced(r))}),H()(),xe(6,"cc-custom-config-item-group",12),At(7,hPe,1,2,"cc-custom-config-item-group",12)(8,fPe,3,2,"button",13),H()}if(2&n){const e=He(),i=He();pe("multi",!0),U(4),cn("",i.searchPlaceholder," "),U(),pe("value",i.searchTerm),U(),pe("customConfigItemGroups",e.applicableItems)("searchTerm",i.searchTerm),U(),It(7,i.isNonApplicableListCollapsed?-1:7),U(),It(8,e.nonApplicableItems.size>0?8:-1)}}function pPe(n,t){if(1&n&&(P(0,"mat-dialog-content",4)(1,"p",5),we(2," Custom Views allow you to save and upload your individual configurations for certain maps. Find out more about Custom Views in the "),P(3,"a",6),we(4,"documentation"),H(),we(5,". "),H(),At(6,uPe,2,0,"div",7)(7,mPe,9,7,"mat-accordion",8),H()),2&n){const e=t;U(6),It(6,0===e.applicableItems.size&&0===e.nonApplicableItems.size?6:-1),U(),It(7,0!==e.applicableItems.size||0!==e.nonApplicableItems.size?7:-1)}}let HZ=(()=>{class n{constructor(e){this.customConfigService=e,this.searchTerm="",this.isNonApplicableListCollapsed=!0,this.searchPlaceholder="Search by name, mode and metrics...",this.setSearchTermDebounced=yu(i=>this.searchTerm=i.target.value,400)}toggleNonApplicableCustomConfigsList(){this.isNonApplicableListCollapsed=!this.isNonApplicableListCollapsed}static{this.\u0275fac=function(i){return new(i||n)($(EO))}}static{this.\u0275cmp=vt({type:n,selectors:[["ng-component"]],decls:9,vars:3,consts:[["color","primary"],[1,"row"],[1,"action-buttons"],[1,"custom-configs-button-in-custom-views"],[1,"content"],[1,"custom-config-documentation-hint"],["href","https://maibornwolff.github.io/codecharta/docs/custom-view/","target","_blank","rel","noopener noreferrer"],[1,"no-custom-configs-box"],[1,"custom-config-container",3,"multi"],[1,"cc-custom-configs-search-field"],["matPrefix","",1,"fa","fa-search","custom-config-search-icon"],["matInput","","type","text",3,"input","value"],[3,"customConfigItemGroups","searchTerm"],[1,"toggle-non-applicable-configs-button"],[1,"toggle-non-applicable-configs-button",3,"click"],[3,"ngClass"]],template:function(i,r){if(1&i&&(P(0,"mat-toolbar",0),we(1,"Custom Views "),P(2,"div",1)(3,"div",2),xe(4,"cc-upload-custom-config-button")(5,"cc-download-custom-configs-button")(6,"cc-add-custom-config-button",3),H()()(),At(7,pPe,8,2,"mat-dialog-content",4),$e(8,"async")),2&i){let o;U(7),It(7,(o=rt(8,1,r.customConfigService.customConfigItemGroups$))?7:-1,o)}},styles:[".row[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;margin-left:auto}.custom-config-documentation-hint[_ngcontent-%COMP%]{margin:10px 0 20px;font-size:1.4em;line-height:1.4em;color:#000000de}.no-custom-configs-box[_ngcontent-%COMP%]{text-align:center;padding:50px 0}.toggle-non-applicable-configs-button[_ngcontent-%COMP%]{width:100%;height:30px;margin:5px 0}"]})}}return n})();function gPe(n,t,e,i){const{mapSelectionMode:r,assignedMaps:o}=qw(t),s={id:"",name:n,creationTime:Date.now(),mapSelectionMode:r,assignedMaps:o,customConfigVersion:"1.0.0",stateSettings:{appSettings:void 0,dynamicSettings:void 0,fileSettings:void 0},camera:e,...i&&{note:i}};return function _Pe(n){n.stateSettings.appSettings={showMetricLabelNameValue:!1,showMetricLabelNodeName:!1,colorLabels:{positive:!1,negative:!1,neutral:!1},amountOfEdgePreviews:0,amountOfTopLabels:0,edgeHeight:0,hideFlatBuildings:!1,invertHeight:!1,invertArea:!1,isLoadingFile:!1,isLoadingMap:!1,isPresentationMode:!1,isWhiteBackground:!1,resetCameraIfNewFileIsLoaded:!1,scaling:void 0,showOnlyBuildingsWithEdges:!1,isEdgeMetricVisible:!0,sortingOrderAscending:!1,isSearchPanelPinned:!1,experimentalFeaturesEnabled:!1,screenshotToClipboardEnabled:!1,layoutAlgorithm:void 0,maxTreeMapFiles:0,sharpnessMode:void 0,isColorMetricLinkedToHeightMetric:!1,enableFloorLabels:!0,mapColors:{labelColorAndAlpha:{alpha:0,rgb:""},base:"",flat:"",incomingEdge:"",markingColors:[],negative:"",negativeDelta:"",neutral:"",outgoingEdge:"",positive:"",positiveDelta:"",selected:""}}}(s),function bPe(n){n.stateSettings.dynamicSettings={areaMetric:"",colorMetric:"",distributionMetric:"",edgeMetric:"",focusedNodePath:[],heightMetric:"",margin:0,searchPattern:"",sortingOption:void 0,colorRange:{from:0,to:0},colorMode:void 0}}(s),function vPe(n){n.stateSettings.fileSettings={blacklist:void 0,edges:[],attributeDescriptors:{},markedPackages:[]}}(s),VZ(t,s.stateSettings),s.id=jE()(JSON.stringify(s,S2)),s}function VZ(n,t){for(const[e,i]of Object.entries(n))Object.prototype.hasOwnProperty.call(t,e)&&("object"!=typeof i||Array.isArray(i)||null===i||void 0===t[e]?t[e]=i:VZ(i,t[e]))}function yPe(n,t){if(1&n&&(P(0,"mat-error"),we(1),H()),2&n){const e=He();U(),Mr(e.getErrorMessage())}}let SO=(()=>{class n{constructor(e,i,r){this.state=e,this.threeCameraService=i,this.threeOrbitControlsService=r}ngOnInit(){const e=qw(this.state.getValue());this.customConfigName=new zz("",[s3.required,wPe(e)]),this.customConfigName.setValue(ji.getConfigNameSuggestionByFileState(e))}getErrorMessage(){return this.customConfigName.hasError("required")?"Please enter a view name.":this.customConfigName.hasError("Error")?this.customConfigName.getError("Error"):""}addCustomConfig(){const e=gPe(this.customConfigName.value,this.state.getValue(),{camera:this.threeCameraService.camera.position,cameraTarget:this.threeOrbitControlsService.controls.target},this.customConfigNote);ji.addCustomConfig(e)}static{this.\u0275fac=function(i){return new(i||n)($(jr),$(vu),$(nc))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-add-custom-config-dialog"]],decls:24,vars:4,consts:[["xmlns","http://www.w3.org/1999/html",1,"header"],["matInput","","required","",1,"cc-custom-config-input",3,"formControl"],["cdkAutosizeMinRows","8","cdkTextareaAutosize","","matInput","","required","",1,"cc-custom-config-input",3,"ngModelChange","ngModel"],[1,"cc-add-custom-config"],["mat-flat-button","","mat-dialog-close","",3,"click","disabled"]],template:function(i,r){1&i&&(P(0,"mat-toolbar",0)(1,"h2"),we(2,"Add Custom View"),H()(),P(3,"mat-dialog-content")(4,"p")(5,"mat-form-field")(6,"mat-label"),we(7,"Save individual configurations for your map."),H(),xe(8,"input",1),P(9,"mat-hint"),we(10,"Config View Name"),H(),At(11,yPe,2,1,"mat-error"),H()(),P(12,"p")(13,"mat-form-field")(14,"mat-label"),we(15,"Provide custom note for configuration (optional)"),H(),P(16,"textarea",2),td("ngModelChange",function(s){return jd(r.customConfigNote,s)||(r.customConfigNote=s),s}),we(17," "),H(),P(18,"mat-hint"),we(19,"Config Note"),H()()()(),P(20,"mat-dialog-actions",3),xe(21,"cc-download-and-purge-configs"),P(22,"button",4),We("click",function(){return r.addCustomConfig()}),we(23,"ADD"),H()()),2&i&&(U(8),pe("formControl",r.customConfigName),U(3),It(11,r.customConfigName.invalid?11:-1),U(5),ed("ngModel",r.customConfigNote),U(6),pe("disabled",r.customConfigName.invalid))},encapsulation:2})}}return n})();function wPe(n){return t=>ji.hasCustomConfigByName(n.mapSelectionMode,n.assignedMaps,t.value)?{Error:"A Custom View with this name already exists."}:null}let xPe=(()=>{class n{constructor(e){this.dialog=e}openCustomConfigDialog(){this.dialog.open(HZ,{panelClass:"cc-custom-config-list"})}showAddCustomConfigDialog(){this.dialog.open(SO,{panelClass:"cc-add-custom-config-dialog"})}static{this.\u0275fac=function(i){return new(i||n)($(Ws))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-custom-configs"]],decls:3,vars:2,consts:[[1,"custom-configs-panel-buttons"],["icon","fa-cogs",3,"click","title"],["icon","fa-plus",3,"click","title"]],template:function(i,r){1&i&&(P(0,"div",0)(1,"cc-ribbon-bar-menu-button",1),We("click",function(){return r.openCustomConfigDialog()}),H(),P(2,"cc-ribbon-bar-menu-button",2),We("click",function(){return r.showAddCustomConfigDialog()}),H()()),2&i&&(U(),pe("title","Open your saved Custom Views"),U(),pe("title","Create new Custom View"))},dependencies:[ET],styles:["[_nghost-%COMP%] .custom-configs-panel-buttons[_ngcontent-%COMP%]{display:flex;justify-content:center;gap:4px}"]})}}return n})();function TO(n,t){if(t||(t=0),!Array.isArray(n))throw new Error("percentRound input should be an Array");const e=n.slice(),i=n.length,r=new Array(i);let o=0;for(let s=i-1;s>=0;s--)"string"==typeof e[s]&&(e[s]=Number.parseFloat(e[s])),o+=1*e[s];if(isNaN(o))throw new Error("percentRound invalid input");if(0===o)r.fill(0);else{const s=Math.pow(10,t),a=100*s;let l=0;for(let c=i-1;c>=0;c--)e[c]=100*e[c]/o,l+=r[c]=Math.round(e[c]*s);if(l!==a){const d=1;let u=Math.abs(l-a);const h=new Array(i);for(let f=0;f0;){let f=0,A=h[0];for(let y=1;ya&&r[y]-d<0)continue;f=y,A=h[y]}l>a?r[f]-=d:r[f]+=d,h[f]-=d,u--}}if(s>1)for(let c=0;cvoid 0!==n.attributes[l]),o=zZ(e)[i],s=n.attributes[i],a=n.attributes[IT];s<=o.percentile70?t.lowRisk+=a:s<=o.percentile80?t.moderateRisk+=a:s<=o.percentile90?t.highRisk+=a:t.veryHighRisk+=a}function IPe(n,t,e){for(const[i,r]of Object.entries(n.attributes))0!==r&&(t[e]??={},t[e][i]??=[],t[e][i].push(r))}function FPe(n,t){return n.isOutlier&&!t.isOutlier?-1:!n.isOutlier&&t.isOutlier?1:0}function DPe(n){const t=ob.get(n);return t?`${n} (${t})`:`${n}`}function RPe(n){return n.includes(".")?n.slice(n.lastIndexOf(".")+1):void 0}function LPe(n,t){return IO.some(e=>void 0!==n.attributes[e])&&void 0!==n.attributes[IT]&&!MPe.has(t)}const OPe=Zt(Bc,eu,(n,t)=>{if(!n.unifiedMapNode)return;const e={analyzedProgrammingLanguage:void 0,suspiciousMetricSuggestionLinks:[],unsuspiciousMetrics:[],untrackedMetrics:[],riskProfile:void 0},i=new Map,r={lowRisk:0,moderateRisk:0,highRisk:0,veryHighRisk:0};let o=0,s=0;const a={};for(const{data:c}of bo(n.unifiedMapNode)){const d=RPe(c.name);if(c.type===Oa.FILE&&void 0!==d&&!vh(c.path,t,"exclude")){const u=i.get(d)??0;if(i.set(d,u+1),IPe(c,a,d),LPe(c,d)){const h=IO.find(f=>void 0!==c.attributes[f]);s+=c.attributes[h],o+=c.attributes[IT],EPe(c,r,d)}}}o>0&&s>0&&(e.riskProfile=function SPe(n){const[t,e,i,r]=CPe([n.lowRisk,n.moderateRisk,n.highRisk,n.veryHighRisk]);return{lowRisk:t,moderateRisk:e,highRisk:i,veryHighRisk:r}}(r));const l=function BPe(n){let t,e=-1;for(const[i,r]of n)es.percentile70&&(e.suspiciousMetrics.set(r,{from:s.percentile70,to:s.percentile80}),a>s.percentile90&&e.outliersThresholds.set(r,s.percentile90))}for(const r in n[t])!Object.keys(i).includes(r)&&!e.untrackedMetrics.includes(r)&&e.untrackedMetrics.push(r);return e}(a,l);e.unsuspiciousMetrics=c.unsuspiciousMetrics,e.untrackedMetrics=c.untrackedMetrics,e.suspiciousMetricSuggestionLinks=function TPe(n){const t=new Map;for(const[e,i]of n.suspiciousMetrics)t.set(e,{metric:e,...i}),n.outliersThresholds.has(e)&&(t.get(e).isOutlier=!0,t.get(e).outlierThreshold=n.outliersThresholds.get(e));return[...t.values()].sort(FPe)}(c)}return e});var qZ=Object.prototype.hasOwnProperty;function GZ(n,t,e){for(e of n.keys())if(HA(e,t))return e}function HA(n,t){var e,i,r;if(n===t)return!0;if(n&&t&&(e=n.constructor)===t.constructor){if(e===Date)return n.getTime()===t.getTime();if(e===RegExp)return n.toString()===t.toString();if(e===Array){if((i=n.length)===t.length)for(;i--&&HA(n[i],t[i]););return-1===i}if(e===Set){if(n.size!==t.size)return!1;for(i of n)if((r=i)&&"object"==typeof r&&!(r=GZ(t,r))||!t.has(r))return!1;return!0}if(e===Map){if(n.size!==t.size)return!1;for(i of n)if((r=i[0])&&"object"==typeof r&&!(r=GZ(t,r))||!HA(i[1],t.get(r)))return!1;return!0}if(e===ArrayBuffer)n=new Uint8Array(n),t=new Uint8Array(t);else if(e===DataView){if((i=n.byteLength)===t.byteLength)for(;i--&&n.getInt8(i)===t.getInt8(i););return-1===i}if(ArrayBuffer.isView(n)){if((i=n.byteLength)===t.byteLength)for(;i--&&n[i]===t[i];);return-1===i}if(!e||"object"==typeof n){for(e in i=0,n)if(qZ.call(n,e)&&++i&&!qZ.call(t,e)||!(e in t)||!HA(n[e],t[e]))return!1;return Object.keys(t).length===i}}return n!=n&&t!=t}let NPe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-suspicious-metric-dialog"]],inputs:{matMenuTriggerReference:"matMenuTriggerReference",data:"data"},decls:12,vars:0,consts:[["id","suspiciousMetricPopover","data-testid","suspiciousMetricPopover",1,"cc-dialog","suspicious-metric-dialog"],["mat-dialog-title","",1,"title"],[1,"info-text"],["target","_blank","rel","noopener","href","https://maibornwolff.github.io/codecharta/docs/suspicious-metrics/"],[1,"fa","fa-external-link"],[2,"display","flex","justify-content","center"],["mat-stroked-button","","mat-dialog-close","",1,"button-mat-dialog"]],template:function(i,r){1&i&&(P(0,"div",0)(1,"h2",1),we(2,"Suspicious Metrics Information"),H(),P(3,"mat-dialog-content",2),we(4," This feature compares the values of certain metrics from the loaded cc.json file with metric values of 241 Open Source Java projects. Based on this data suspicious and inconspicuous metrics are identified and corresponding suggestions can be clicked to view them. Be aware that metrics for other programming languages might not be comparable to Java Reference metric values. More information can be found in the "),P(5,"a",3),we(6,"How-To Article "),xe(7,"i",4),H(),we(8,". "),H(),P(9,"mat-dialog-actions",5)(10,"button",6),we(11,"Close"),H()()())},dependencies:[vs,Mc,C2,ud,Ec],encapsulation:2})}}return n})(),VA=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-action-icon"]],inputs:{icon:"icon"},decls:1,vars:2,consts:[["role","button"]],template:function(i,r){1&i&&xe(0,"i",0),2&i&&nl(r.icon)},styles:["[_nghost-%COMP%]{display:inline-flex;align-items:center;cursor:pointer;width:24px;height:24px;border-radius:100%;background-color:#1b9cfc;font-size:14px}[_nghost-%COMP%]:hover{background-color:#0374c9}.disabled[_nghost-%COMP%]{opacity:.5}[_nghost-%COMP%] i[_ngcontent-%COMP%], [_nghost-%COMP%] i.fa[_ngcontent-%COMP%]{margin:auto;line-height:1.5;color:#fff}[_nghost-%COMP%] i.fa-folder-open[_ngcontent-%COMP%], [_nghost-%COMP%] i.fa.fa-folder-open[_ngcontent-%COMP%]{padding-left:1px}"]})}}return n})(),WZ=(()=>{class n{transform(e,i,r="..."){return e.length>i?e.slice(0,i)+r:e}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=dr({name:"truncateText",type:n,pure:!0})}}return n})();const UPe=(n,t)=>({"fa-caret-right":n,"fa-caret-down":t});function HPe(n,t){if(1&n&&(xe(0,"br"),P(1,"span",11),we(2),H()),2&n){const e=He().$implicit,i=He(3);U(2),Mr(i.getDescriptionOfMetric(e.metric))}}function VPe(n,t){if(1&n){const e=Pn();P(0,"mat-button-toggle",12),We("click",function(){Vt(e);const r=He().$implicit;return Ot(He(3).applySuspiciousMetric(r,!0))}),we(1," High-Risk\xa0"),xe(2,"i",13),H()}}function QPe(n,t){1&n&&(P(0,"mat-button-toggle",14),we(1," High-Risk\xa0"),xe(2,"i",15),H())}function zPe(n,t){if(1&n){const e=Pn();xe(0,"div",5),P(1,"div",6)(2,"b"),we(3),$e(4,"truncateText"),H(),At(5,HPe,3,1),H(),P(6,"div")(7,"mat-button-toggle-group")(8,"mat-button-toggle",7),We("click",function(){const r=Vt(e).$implicit;return Ot(He(3).applySuspiciousMetric(r,!1))}),we(9," Apply preset\xa0"),xe(10,"i",8),we(11,"\xa0"),xe(12,"i",9),H(),At(13,VPe,3,0,"mat-button-toggle",10)(14,QPe,3,0),H()()}if(2&n){const e=t.$implicit,i=He(3);U(),ka("title",i.getNameAndDescriptionOfMetric(e.metric)),U(2),Mr(Mo(4,6,e.metric,40)),U(2),It(5,i.getDescriptionOfMetric(e.metric)?5:-1),U(3),Jc("title","Apply Map Configuration to show files with suspicious metric ",e.metric," and high risk or very high risk depending on selection"),U(5),It(13,e.isOutlier?13:14)}}function qPe(n,t){if(1&n&&(P(0,"div",4),Rr(1,zPe,15,9,null,null,Hr),H()),2&n){const e=He(2);U(),Lr(e.data.suspiciousMetricSuggestionLinks)}}function GPe(n,t){if(1&n){const e=Pn();P(0,"div",0)(1,"button",1),We("click",function(){return Vt(e),Ot(He().toggleSuspiciousMetricsVisibility())}),P(2,"span",2),xe(3,"i",3),H(),we(4," Suspicious Metrics in "),P(5,"code"),we(6),H(),we(7," code "),H()(),At(8,qPe,3,0,"div",4)}if(2&n){const e=He();Jc("title","Suspicious Metrics in .",e.data.analyzedProgrammingLanguage," code"),U(3),pe("ngClass",rl(5,UPe,!e.isSuspiciuosMetricsVisible,e.isSuspiciuosMetricsVisible)),U(3),cn(".",e.data.analyzedProgrammingLanguage,""),U(2),It(8,e.isSuspiciuosMetricsVisible?8:-1)}}function WPe(n,t){if(1&n&&(P(0,"div",16),we(1," No Suspicious Metrics found in "),P(2,"code"),we(3),H(),we(4,"! "),H()),2&n){const e=He();Jc("title","Suspicious Metrics in this .",e.data.analyzedProgrammingLanguage," code"),U(3),cn(".",e.data.analyzedProgrammingLanguage,"")}}let $Pe=(()=>{class n{constructor(e,i){this.store=e,this.dialog=i,this.isSuspiciuosMetricsVisible=!0}toggleSuspiciousMetricsVisibility(){this.isSuspiciuosMetricsVisible=!this.isSuspiciuosMetricsVisible}applySuspiciousMetric(e,i){this.store.dispatch(Ah({value:IT})),this.store.dispatch(_h({value:e.metric})),this.store.dispatch(ld({value:e.metric})),this.store.dispatch(Zd({value:{from:e.from,to:i?e.outlierThreshold:e.to}})),this.store.dispatch(ph({value:{positive:i?"#ffffff":bu.positive,neutral:i?"#ffffff":bu.neutral,negative:i?"#A900C0":bu.negative}})),this.matMenuTriggerReference.closeMenu()}getNameAndDescriptionOfMetric(e){const i=ob.get(e);return i?`${e.toUpperCase()} (${i.toLowerCase()})`:e.toUpperCase()}getDescriptionOfMetric(e){const i=ob.get(e);return i?`${i.toLowerCase()}`:""}static{this.\u0275fac=function(i){return new(i||n)($(Xt),$(Ws))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-suspicious-metrics-list"]],inputs:{matMenuTriggerReference:"matMenuTriggerReference",data:"data"},decls:2,vars:1,consts:[[1,"sub-title",3,"title"],["data-testid","Suspicious Metrics",1,"show-metrics-button",3,"click"],[1,"caret-icon-span"],[1,"fa",3,"ngClass"],[1,"text-content","grid-container-suspicious"],["id","spacer"],[3,"title"],[3,"click","title"],[1,"fa","fa-arrows-v"],[1,"fa","fa-paint-brush"],["title","Show very high risk files (90th percentile)"],[1,"sub-sub-title"],["title","Show very high risk files (90th percentile)",3,"click"],[1,"fa","fa-exclamation-triangle","risk-button-active"],["title","No high risk profile detected","disabled",""],[1,"fa","fa-exclamation-triangle"],[1,"sub-title-not-text-content","sub-title",3,"title"]],template:function(i,r){1&i&&At(0,GPe,9,8)(1,WPe,5,3),2&i&&It(0,r.data.suspiciousMetricSuggestionLinks.length?0:1)},dependencies:[Kd,eO,Rw,WZ],encapsulation:2})}}return n})();const jPe=(n,t)=>({"fa-caret-right":n,"fa-caret-down":t});function XPe(n,t){if(1&n){const e=Pn();P(0,"div",0)(1,"button",2),We("click",function(){return Vt(e),Ot(He(2).toggleUntrackedMetricsVisibility())}),P(2,"span",3),xe(3,"i",4),H(),we(4," Untracked metrics in "),P(5,"code"),we(6),H(),we(7," code "),H()()}if(2&n){const e=He(2);U(3),pe("ngClass",rl(2,jPe,!e.isUntrackedMetricsVisible,e.isUntrackedMetricsVisible)),U(3),cn(".",e.data.analyzedProgrammingLanguage,"")}}function KPe(n,t){if(1&n&&(P(0,"li"),we(1),H()),2&n){const e=t.$implicit;U(),Mr(e)}}function YPe(n,t){if(1&n&&(P(0,"ul",1),Rr(1,KPe,2,1,"li",null,Hr),H()),2&n){const e=He(2);U(),Lr(e.data.untrackedMetrics)}}function ZPe(n,t){1&n&&(P(0,"div"),we(1,"No programming language was found for analyzing suspicious metrics."),H())}function JPe(n,t){if(1&n&&At(0,XPe,8,5,"div",0)(1,YPe,3,0,"ul",1)(2,ZPe,2,0,"div"),2&n){const e=He();It(0,e.data.analyzedProgrammingLanguage.length?0:-1),U(),It(1,e.isUntrackedMetricsVisible?1:-1),U(),It(2,void 0===e.data.analyzedProgrammingLanguage?2:-1)}}let eRe=(()=>{class n{constructor(){this.isUntrackedMetricsVisible=!1}toggleUntrackedMetricsVisibility(){this.isUntrackedMetricsVisible=!this.isUntrackedMetricsVisible}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-untracked-metrics-list"]],inputs:{matMenuTriggerReference:"matMenuTriggerReference",data:"data"},decls:1,vars:1,consts:[[1,"sub-title"],["data-testid","List of Untracked Metrics in ts Code",1,"text-content"],["data-testid","Untracked Metrics","title","Show/Hide Untracked Metrics",1,"show-metrics-button",3,"click"],[1,"caret-icon-span"],[1,"fa",3,"ngClass"]],template:function(i,r){1&i&&At(0,JPe,3,3),2&i&&It(0,r.data.untrackedMetrics.length?0:-1)},dependencies:[Kd],encapsulation:2})}}return n})();const tRe=(n,t)=>({"fa-caret-right":n,"fa-caret-down":t});function nRe(n,t){if(1&n){const e=Pn();P(0,"div",0)(1,"button",2),We("click",function(){return Vt(e),Ot(He(2).toggleUnsuspiciousMetricsVisibility())}),P(2,"span",3),xe(3,"i",4),H(),we(4," Unsuspicious metrics in "),P(5,"code"),we(6),H(),we(7," code "),H()()}if(2&n){const e=He(2);U(3),pe("ngClass",rl(2,tRe,!e.isUnsuspiciuosMetricsVisible,e.isUnsuspiciuosMetricsVisible)),U(3),cn(".",e.data.analyzedProgrammingLanguage,"")}}function iRe(n,t){if(1&n&&(P(0,"li"),we(1),H()),2&n){const e=t.$implicit;U(),Mr(e)}}function rRe(n,t){if(1&n&&(P(0,"ul",1),Rr(1,iRe,2,1,"li",null,Hr),H()),2&n){const e=He(2);U(),Lr(e.data.unsuspiciousMetrics)}}function oRe(n,t){if(1&n&&At(0,nRe,8,5,"div",0)(1,rRe,3,0,"ul",1),2&n){const e=He();It(0,e.data.analyzedProgrammingLanguage.length?0:-1),U(),It(1,e.isUnsuspiciuosMetricsVisible?1:-1)}}let sRe=(()=>{class n{constructor(){this.isUnsuspiciuosMetricsVisible=!1}toggleUnsuspiciousMetricsVisibility(){this.isUnsuspiciuosMetricsVisible=!this.isUnsuspiciuosMetricsVisible}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-unsuspicious-metrics-list"]],inputs:{matMenuTriggerReference:"matMenuTriggerReference",data:"data"},decls:1,vars:1,consts:[[1,"sub-title"],["data-testid","List of Unsuspicious Metrics in ts Code",1,"text-content"],["data-testid","Unsuspicious Metrics","title","Show/Hide Unsuspicious Metrics",1,"show-metrics-button",3,"click"],[1,"caret-icon-span"],[1,"fa",3,"ngClass"]],template:function(i,r){1&i&&At(0,oRe,2,2),2&i&&It(0,r.data.unsuspiciousMetrics.length?0:-1)},dependencies:[Kd],encapsulation:2})}}return n})(),$Z=(()=>{class n{constructor(e){this.dialog=e}openDialog(){this.dialog.open(NPe,{width:"500px"})}static{this.\u0275fac=function(i){return new(i||n)($(Ws))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-suspicious-metrics-menu"]],viewQuery:function(i,r){if(1&i&&(ei(ab,5),ei(wu,5)),2&i){let o;un(o=hn())&&(r.menuTrigger=o.first),un(o=hn())&&(r.menu=o.first)}},inputs:{matMenuTriggerReference:"matMenuTriggerReference",data:"data"},decls:9,vars:6,consts:[[3,"click"],[1,"title"],["icon","fa fa-question-circle-o","title","Open Information about Suspicious Metrics","popovertarget","suspiciousMetricPopover",3,"click"],[1,"suspicious-menu-content-wrapper"],[3,"data","matMenuTriggerReference"]],template:function(i,r){1&i&&(P(0,"div",0),We("click",function(s){return s.stopPropagation()}),P(1,"div")(2,"div",1),we(3,"Suspicious Metrics"),H(),P(4,"cc-action-icon",2),We("click",function(){return r.openDialog()}),H()(),P(5,"div",3),xe(6,"cc-suspicious-metrics-list",4)(7,"cc-unsuspicious-metrics-list",4)(8,"cc-untracked-metrics-list",4),H()()),2&i&&(U(6),pe("data",r.data)("matMenuTriggerReference",r.matMenuTriggerReference),U(),pe("data",r.data)("matMenuTriggerReference",r.matMenuTriggerReference),U(),pe("data",r.data)("matMenuTriggerReference",r.matMenuTriggerReference))},dependencies:[VA,$Pe,eRe,sRe],encapsulation:2})}}return n})();const aRe=["matMenuTrigger"];function lRe(n,t){if(1&n&&(P(0,"span",3),we(1),H()),2&n){const e=He();U(),cn(" ",e.data.suspiciousMetricSuggestionLinks.length," ")}}let cRe=(()=>{class n{constructor(){this.hideBadge=!1}ngOnChanges(e){e.data&&!HA(e.data.previousValue,e.data.currentValue)&&(this.hideBadge=!1)}ngAfterViewInit(){this.menuComponent&&(this.menu=this.menuComponent.menu)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-suspicious-metrics"]],viewQuery:function(i,r){if(1&i&&(ei($Z,5),ei(aRe,5)),2&i){let o;un(o=hn())&&(r.menuComponent=o.first),un(o=hn())&&(r.matMenuTrigger=o.first)}},inputs:{data:"data",menu:"menu"},features:[wr],decls:6,vars:5,consts:[["matMenuTrigger","matMenuTrigger"],["menu","matMenu"],["icon","fa-exclamation-triangle",3,"click","title","matMenuTriggerFor"],[1,"suspicious-metrics-badge"],[1,"ai-drop-down","suspicious-metric-panel"],[3,"data","matMenuTriggerReference"]],template:function(i,r){if(1&i){const o=Pn();P(0,"cc-ribbon-bar-menu-button",2,0),We("click",function(){return Vt(o),Ot(r.hideBadge=!0)}),At(2,lRe,2,1,"span",3),H(),P(3,"mat-menu",4,1),xe(5,"cc-suspicious-metrics-menu",5),H()}if(2&i){const o=Po(1),s=Po(4);pe("title","Open Suspicious Metrics Panel")("matMenuTriggerFor",s),U(2),It(2,r.hideBadge||void 0===r.data.analyzedProgrammingLanguage&&!r.data.suspiciousMetricSuggestionLinks.length&&!r.data.unsuspiciousMetrics.length?-1:2),U(3),pe("data",r.data)("matMenuTriggerReference",o)}},dependencies:[wu,ab,ET,$Z],styles:[".ai-drop-down.suspicious-metric-panel{scrollbar-gutter:stable}.ai-drop-down.suspicious-metric-panel code{background:#e6e6e6f5;font-size:16px}.ai-drop-down.suspicious-metric-panel .grid-container-suspicious{display:grid;column-gap:4px;row-gap:8px;grid-template-columns:auto auto auto;place-items:center left}.ai-drop-down.suspicious-metric-panel .grid-container-suspicious #spacer{width:14px}.ai-drop-down.suspicious-metric-panel .grid-container-suspicious.text-content{padding-top:16px}.ai-drop-down.suspicious-metric-panel .grid-container-suspicious .fa-exclamation-triangle.risk-button-active{color:#9c0e6a}.ai-drop-down.suspicious-metric-panel ul.text-content{margin:0;padding-left:18px}.ai-drop-down.suspicious-metric-panel .suspicious-menu-content-wrapper{padding:8px}.ai-drop-down.suspicious-metric-panel .sub-sub-title{font-size:11;color:#999;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ai-drop-down.suspicious-metric-panel .caret-icon-span{display:inline-block;width:10px;font-size:16px;text-align:center}.ai-drop-down.suspicious-metric-panel .show-metrics-button{background-color:#fff;color:#000;cursor:pointer;width:100%;border:none;text-align:left;font-size:16px;padding:0 0 6px}.ai-drop-down.suspicious-metric-panel .title{display:inline-block}.ai-drop-down.suspicious-metric-panel cc-action-icon{margin-left:6px}.ai-drop-down.suspicious-metric-panel .sub-title-not-text-content{padding-bottom:8px}.ai-drop-down.suspicious-metric-panel .mat-button-toggle-appearance-standard .mat-button-toggle-label-content{line-height:2.5;display:flex;justify-content:center;align-items:center;text-align:center}.ai-drop-down.suspicious-metric-panel mat-button-toggle{height:35px;background-color:#e6e6e6f5}.ai-drop-down.suspicious-metric-panel mat-button-toggle:enabled:hover{background-color:#c8c8c8}.ai-drop-down.suspicious-metric-panel .mat-button-toggle-checked .mat-button-toggle-label-content .mat-pseudo-checkbox,.ai-drop-down.suspicious-metric-panel .mat-button-toggle-checked .mat-button-toggle-ripple{display:none}\n"],encapsulation:2})}}return n})(),dRe=(()=>{class n{constructor(e){this.element=e,this.ccRiskProfileBar=0}ngOnChanges(e){e.ccRiskProfileBar&&(this.element.nativeElement.style.display=this.ccRiskProfileBar>0?"flex":"none",this.element.nativeElement.style.width=`${this.ccRiskProfileBar}%`,this.element.nativeElement.style.color=this.ccRiskProfileBar>5?"black":"rgba(0,0,0,0)")}static{this.\u0275fac=function(i){return new(i||n)($(Vn))}}static{this.\u0275dir=$t({type:n,selectors:[["","ccRiskProfileBar",""]],inputs:{ccRiskProfileBar:"ccRiskProfileBar"},features:[wr]})}}return n})();function uRe(n,t){if(1&n&&(P(0,"div",3),we(1,"Risk Profile"),H(),P(2,"div",4),we(3," The Risk Profile gives a quick overview about the complexity and risk structure of the code base. It tells you how much of the code is placed in files associated with low/high risk in means of maintainability. The separation of code in risk classes like low or high complexity is based on Java reference metric values and therefore may be inaccurate for other programming languages. More information can be found in the "),P(4,"a",5),we(5,"How-To Article "),xe(6,"i",6),H(),we(7,". "),H(),P(8,"div",7)(9,"div"),xe(10,"i",8),we(11," Calculations are based on an available complexity metric"),H()(),P(12,"div",4)(13,"ul")(14,"li"),we(15),H(),P(16,"li"),we(17),H(),P(18,"li"),we(19),H(),P(20,"li"),we(21),H()()(),P(22,"div",9)(23,"div",10),we(24),H(),P(25,"div",11),we(26),H(),P(27,"div",12),we(28),H(),P(29,"div",13),we(30),H()()),2&n){const e=He();U(15),cn("",e.data.riskProfile.lowRisk,"% of overall code is in files with low complexity"),U(2),cn("",e.data.riskProfile.moderateRisk,"% of overall code is in files with moderate complexity"),U(2),cn("",e.data.riskProfile.highRisk,"% of overall code is in files with high complexity"),U(2),cn("",e.data.riskProfile.veryHighRisk,"% of overall code is in files with extreme complexity"),U(2),Jc("title","Low Risk (",e.data.riskProfile.lowRisk,"% of code)"),pe("ccRiskProfileBar",e.data.riskProfile.lowRisk),U(),cn(" ",e.data.riskProfile.lowRisk,"% "),U(),Jc("title","Moderate Risk (",e.data.riskProfile.moderateRisk,"% of code)"),pe("ccRiskProfileBar",e.data.riskProfile.moderateRisk),U(),cn(" ",e.data.riskProfile.moderateRisk,"% "),U(),Jc("title","High Risk (",e.data.riskProfile.highRisk,"% of code)"),pe("ccRiskProfileBar",e.data.riskProfile.highRisk),U(),cn(" ",e.data.riskProfile.highRisk,"% "),U(),Jc("title","Very High Risk (",e.data.riskProfile.veryHighRisk,"% of code)"),pe("ccRiskProfileBar",e.data.riskProfile.veryHighRisk),U(),cn(" ",e.data.riskProfile.veryHighRisk,"% ")}}function hRe(n,t){1&n&&(P(0,"span"),we(1," Could not calculate Risk Profile. At least one of the metrics rloc (real lines of code) or complexity (cyclomatic complexity) is not available. "),H(),xe(2,"br")(3,"br"),P(4,"span"),we(5," Be aware that complexity was previously named mcc. Old maps which still contain mcc instead of complexity need to be regenerated for the risk profile to work. "),H())}let fRe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-high-risk-profile"]],inputs:{data:"data"},decls:5,vars:4,consts:[["menu","matMenu"],["icon","fa-bar-chart",3,"title","matMenuTriggerFor"],[1,"ai-drop-down","high-risk-profile"],[1,"title"],[1,"text-content"],["target","_blank","rel","noopener","href","https://maibornwolff.github.io/codecharta/docs/suspicious-metrics/"],[1,"fa","fa-external-link"],[1,"sub-title"],[1,"fa","fa-lightbulb-o"],[1,"risk-profiles"],[1,"risk-profile","low-risk",3,"ccRiskProfileBar","title"],[1,"risk-profile","moderate-risk",3,"ccRiskProfileBar","title"],[1,"risk-profile","high-risk",3,"ccRiskProfileBar","title"],[1,"risk-profile","very-high-risk",3,"ccRiskProfileBar","title"]],template:function(i,r){if(1&i&&(xe(0,"cc-ribbon-bar-menu-button",1),P(1,"mat-menu",2,0),At(3,uRe,31,20)(4,hRe,6,0),H()),2&i){const o=Po(2);pe("title","Open High Risk Profile")("matMenuTriggerFor",o),U(3),It(3,void 0!==r.data.riskProfile?3:-1),U(),It(4,void 0===r.data.riskProfile?4:-1)}},dependencies:[wu,ab,ET,dRe],styles:[".ai-drop-down.high-risk-profile ul{margin:0}.ai-drop-down.high-risk-profile .risk-profiles{margin:0 -10px -10px;display:flex}.ai-drop-down.high-risk-profile .risk-profiles .risk-profile{height:36px;text-align:center;justify-content:center;align-items:center;overflow:hidden}.ai-drop-down.high-risk-profile .risk-profiles .low-risk{background-color:#5cb34d}.ai-drop-down.high-risk-profile .risk-profiles .moderate-risk{background-color:#eef432}.ai-drop-down.high-risk-profile .risk-profiles .high-risk{background-color:#cc2900}.ai-drop-down.high-risk-profile .risk-profiles .very-high-risk{background-color:#9c0e6a}\n"],encapsulation:2})}}return n})();function mRe(n,t){if(1&n&&xe(0,"cc-suspicious-metrics",0)(1,"cc-high-risk-profile",0),2&n){const e=t;pe("data",e),U(),pe("data",e)}}let pRe=(()=>{class n{constructor(e){this.store=e,this.data$=this.store.select(OPe)}static{this.\u0275fac=function(i){return new(i||n)($(Xt))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-artificial-intelligence"]],decls:2,vars:3,consts:[[3,"data"]],template:function(i,r){if(1&i&&(At(0,mRe,2,2),$e(1,"async")),2&i){let o;It(0,(o=rt(1,1,r.data$))?0:-1,o)}},dependencies:[cRe,fRe,Yn],styles:["cc-artificial-intelligence{display:flex;justify-content:center;gap:4px}cc-artificial-intelligence .suspicious-metrics-badge{position:absolute;bottom:10px;padding:4px 6px;border-radius:50%;background:red;color:#fff;font-size:10px;line-height:10px}.button-mat-dialog{border-radius:12px;margin-top:2px;font-size:14px;font-weight:700;width:100px}.mat-mdc-menu-panel.ai-drop-down{max-width:35em;padding:10px}.mat-mdc-menu-panel.ai-drop-down .mat-mdc-menu-content{padding:0}.mat-mdc-menu-panel.ai-drop-down .title{font-size:20px;font-weight:700;margin-bottom:8px}.mat-mdc-menu-panel.ai-drop-down .sub-title{font-size:16px}.mat-mdc-menu-panel.ai-drop-down .text-content{font-size:14px;padding:8px 0 16px}\n"],encapsulation:2})}}return n})();const ARe=["trigger"],gRe=["panel"],_Re=[[["mat-select-trigger"]],"*"],bRe=["mat-select-trigger","*"];function vRe(n,t){if(1&n&&(P(0,"span",4),we(1),H()),2&n){const e=He();U(),Mr(e.placeholder)}}function yRe(n,t){1&n&&Gn(0)}function wRe(n,t){if(1&n&&(P(0,"span",11),we(1),H()),2&n){const e=He(2);U(),Mr(e.triggerValue)}}function xRe(n,t){if(1&n&&(P(0,"span",10),At(1,yRe,1,0)(2,wRe,2,1),H()),2&n){const e=He();U(),It(1,e.customTrigger?1:2)}}function CRe(n,t){if(1&n){const e=Pn();P(0,"div",12,1),We("@transformPanel.done",function(r){return Vt(e),Ot(He()._panelDoneAnimatingStream.next(r.toState))})("keydown",function(r){return Vt(e),Ot(He()._handleKeydown(r))}),Gn(2,1),H()}if(2&n){const e=He();ah("mat-mdc-select-panel mdc-menu-surface mdc-menu-surface--open ",e._getPanelTheme(),""),pe("ngClass",e.panelClass)("@transformPanel","showing"),fi("id",e.id+"-panel")("aria-multiselectable",e.multiple)("aria-label",e.ariaLabel||null)("aria-labelledby",e._getPanelAriaLabelledby())}}const MRe={transformPanelWrap:Sh("transformPanelWrap",[Gl("* => void",lR("@transformPanel",[aR()],{optional:!0}))]),transformPanel:Sh("transformPanel",[Cc("void",qo({opacity:0,transform:"scale(1, 0.8)"})),Gl("void => showing",xc("120ms cubic-bezier(0, 0, 0.2, 1)",qo({opacity:1,transform:"scale(1, 1)"}))),Gl("* => void",xc("100ms linear",qo({opacity:0})))])};let jZ=0;const XZ=new ut("mat-select-scroll-strategy",{providedIn:"root",factory:()=>{const n=qt(Rs);return()=>n.scrollStrategies.reposition()}}),SRe=new ut("MAT_SELECT_CONFIG"),TRe={provide:XZ,deps:[Rs],useFactory:function ERe(n){return()=>n.scrollStrategies.reposition()}},KZ=new ut("MatSelectTrigger");class IRe{constructor(t,e){this.source=t,this.value=e}}let Bm=(()=>{class n{_scrollOptionIntoView(e){const i=this.options.toArray()[e];if(i){const r=this.panel.nativeElement,o=function gye(n,t,e){if(e.length){let i=t.toArray(),r=e.toArray(),o=0;for(let s=0;se+i?Math.max(0,n-i+t):e}(s.offsetTop,s.offsetHeight,r.scrollTop,r.offsetHeight)}}_positioningSettled(){this._scrollOptionIntoView(this._keyManager.activeItemIndex||0)}_getChangeEvent(e){return new IRe(this,e)}get focused(){return this._focused||this._panelOpen}get hideSingleSelectionIndicator(){return this._hideSingleSelectionIndicator}set hideSingleSelectionIndicator(e){this._hideSingleSelectionIndicator=e,this._syncParentProperties()}get placeholder(){return this._placeholder}set placeholder(e){this._placeholder=e,this.stateChanges.next()}get required(){return this._required??this.ngControl?.control?.hasValidator(s3.required)??!1}set required(e){this._required=e,this.stateChanges.next()}get multiple(){return this._multiple}set multiple(e){this._multiple=e}get compareWith(){return this._compareWith}set compareWith(e){this._compareWith=e,this._selectionModel&&this._initializeSelection()}get value(){return this._value}set value(e){this._assignValue(e)&&this._onChange(e)}get errorStateMatcher(){return this._errorStateTracker.matcher}set errorStateMatcher(e){this._errorStateTracker.matcher=e}get id(){return this._id}set id(e){this._id=e||this._uid,this.stateChanges.next()}get errorState(){return this._errorStateTracker.errorState}set errorState(e){this._errorStateTracker.errorState=e}constructor(e,i,r,o,s,a,l,c,d,u,h,f,A,y){this._viewportRuler=e,this._changeDetectorRef=i,this._elementRef=s,this._dir=a,this._parentFormField=d,this.ngControl=u,this._liveAnnouncer=A,this._defaultOptions=y,this._positions=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom",panelClass:"mat-mdc-select-panel-above"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom",panelClass:"mat-mdc-select-panel-above"}],this._panelOpen=!1,this._compareWith=(_,b)=>_===b,this._uid="mat-select-"+jZ++,this._triggerAriaLabelledBy=null,this._destroy=new Hn,this.stateChanges=new Hn,this._onChange=()=>{},this._onTouched=()=>{},this._valueId="mat-select-value-"+jZ++,this._panelDoneAnimatingStream=new Hn,this._overlayPanelClass=this._defaultOptions?.overlayPanelClass||"",this._focused=!1,this.controlType="mat-select",this.disabled=!1,this.disableRipple=!1,this.tabIndex=0,this._hideSingleSelectionIndicator=this._defaultOptions?.hideSingleSelectionIndicator??!1,this._multiple=!1,this.disableOptionCentering=this._defaultOptions?.disableOptionCentering??!1,this.ariaLabel="",this.panelWidth=this._defaultOptions&&typeof this._defaultOptions.panelWidth<"u"?this._defaultOptions.panelWidth:"auto",this._initialized=new Hn,this.optionSelectionChanges=tR(()=>{const _=this.options;return _?_.changes.pipe(dd(_),fh(()=>ql(..._.map(b=>b.onSelectionChange)))):this._initialized.pipe(fh(()=>this.optionSelectionChanges))}),this.openedChange=new Bn,this._openedStream=this.openedChange.pipe(Vi(_=>_),Ge(()=>{})),this._closedStream=this.openedChange.pipe(Vi(_=>!_),Ge(()=>{})),this.selectionChange=new Bn,this.valueChange=new Bn,this._trackedModal=null,this._skipPredicate=_=>!this.panelOpen&&_.disabled,this.ngControl&&(this.ngControl.valueAccessor=this),null!=y?.typeaheadDebounceInterval&&(this.typeaheadDebounceInterval=y.typeaheadDebounceInterval),this._errorStateTracker=new rR(o,u,c,l,this.stateChanges),this._scrollStrategyFactory=f,this._scrollStrategy=this._scrollStrategyFactory(),this.tabIndex=parseInt(h)||0,this.id=this.id}ngOnInit(){this._selectionModel=new mT(this.multiple),this.stateChanges.next(),this._panelDoneAnimatingStream.pipe($y(),to(this._destroy)).subscribe(()=>this._panelDoneAnimating(this.panelOpen)),this._viewportRuler.change().pipe(to(this._destroy)).subscribe(()=>{this.panelOpen&&(this._overlayWidth=this._getOverlayWidth(this._preferredOverlayOrigin),this._changeDetectorRef.detectChanges())})}ngAfterContentInit(){this._initialized.next(),this._initialized.complete(),this._initKeyManager(),this._selectionModel.changed.pipe(to(this._destroy)).subscribe(e=>{e.added.forEach(i=>i.select()),e.removed.forEach(i=>i.deselect())}),this.options.changes.pipe(dd(null),to(this._destroy)).subscribe(()=>{this._resetOptions(),this._initializeSelection()})}ngDoCheck(){const e=this._getTriggerAriaLabelledby(),i=this.ngControl;if(e!==this._triggerAriaLabelledBy){const r=this._elementRef.nativeElement;this._triggerAriaLabelledBy=e,e?r.setAttribute("aria-labelledby",e):r.removeAttribute("aria-labelledby")}i&&(this._previousControl!==i.control&&(void 0!==this._previousControl&&null!==i.disabled&&i.disabled!==this.disabled&&(this.disabled=i.disabled),this._previousControl=i.control),this.updateErrorState())}ngOnChanges(e){(e.disabled||e.userAriaDescribedBy)&&this.stateChanges.next(),e.typeaheadDebounceInterval&&this._keyManager&&this._keyManager.withTypeAhead(this.typeaheadDebounceInterval)}ngOnDestroy(){this._keyManager?.destroy(),this._destroy.next(),this._destroy.complete(),this.stateChanges.complete(),this._clearFromModal()}toggle(){this.panelOpen?this.close():this.open()}open(){this._canOpen()&&(this._parentFormField&&(this._preferredOverlayOrigin=this._parentFormField.getConnectedOverlayOrigin()),this._overlayWidth=this._getOverlayWidth(this._preferredOverlayOrigin),this._applyModalPanelOwnership(),this._panelOpen=!0,this._keyManager.withHorizontalOrientation(null),this._highlightCorrectOption(),this._changeDetectorRef.markForCheck(),this.stateChanges.next())}_applyModalPanelOwnership(){const e=this._elementRef.nativeElement.closest('body > .cdk-overlay-container [aria-modal="true"]');if(!e)return;const i=`${this.id}-panel`;this._trackedModal&&WP(this._trackedModal,"aria-owns",i),WG(e,"aria-owns",i),this._trackedModal=e}_clearFromModal(){this._trackedModal&&(WP(this._trackedModal,"aria-owns",`${this.id}-panel`),this._trackedModal=null)}close(){this._panelOpen&&(this._panelOpen=!1,this._keyManager.withHorizontalOrientation(this._isRtl()?"rtl":"ltr"),this._changeDetectorRef.markForCheck(),this._onTouched(),this.stateChanges.next())}writeValue(e){this._assignValue(e)}registerOnChange(e){this._onChange=e}registerOnTouched(e){this._onTouched=e}setDisabledState(e){this.disabled=e,this._changeDetectorRef.markForCheck(),this.stateChanges.next()}get panelOpen(){return this._panelOpen}get selected(){return this.multiple?this._selectionModel?.selected||[]:this._selectionModel?.selected[0]}get triggerValue(){if(this.empty)return"";if(this._multiple){const e=this._selectionModel.selected.map(i=>i.viewValue);return this._isRtl()&&e.reverse(),e.join(", ")}return this._selectionModel.selected[0].viewValue}updateErrorState(){this._errorStateTracker.updateErrorState()}_isRtl(){return!!this._dir&&"rtl"===this._dir.value}_handleKeydown(e){this.disabled||(this.panelOpen?this._handleOpenKeydown(e):this._handleClosedKeydown(e))}_handleClosedKeydown(e){const i=e.keyCode,r=40===i||38===i||37===i||39===i,o=13===i||32===i,s=this._keyManager;if(!s.isTyping()&&o&&!cd(e)||(this.multiple||e.altKey)&&r)e.preventDefault(),this.open();else if(!this.multiple){const a=this.selected;s.onKeydown(e);const l=this.selected;l&&a!==l&&this._liveAnnouncer.announce(l.viewValue,1e4)}}_handleOpenKeydown(e){const i=this._keyManager,r=e.keyCode,o=40===r||38===r,s=i.isTyping();if(o&&e.altKey)e.preventDefault(),this.close();else if(s||13!==r&&32!==r||!i.activeItem||cd(e))if(!s&&this._multiple&&65===r&&e.ctrlKey){e.preventDefault();const a=this.options.some(l=>!l.disabled&&!l.selected);this.options.forEach(l=>{l.disabled||(a?l.select():l.deselect())})}else{const a=i.activeItemIndex;i.onKeydown(e),this._multiple&&o&&e.shiftKey&&i.activeItem&&i.activeItemIndex!==a&&i.activeItem._selectViaInteraction()}else e.preventDefault(),i.activeItem._selectViaInteraction()}_onFocus(){this.disabled||(this._focused=!0,this.stateChanges.next())}_onBlur(){this._focused=!1,this._keyManager?.cancelTypeahead(),!this.disabled&&!this.panelOpen&&(this._onTouched(),this._changeDetectorRef.markForCheck(),this.stateChanges.next())}_onAttached(){this._overlayDir.positionChange.pipe(zo(1)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this._positioningSettled()})}_getPanelTheme(){return this._parentFormField?`mat-${this._parentFormField.color}`:""}get empty(){return!this._selectionModel||this._selectionModel.isEmpty()}_initializeSelection(){Promise.resolve().then(()=>{this.ngControl&&(this._value=this.ngControl.value),this._setSelectionByValue(this._value),this.stateChanges.next()})}_setSelectionByValue(e){if(this.options.forEach(i=>i.setInactiveStyles()),this._selectionModel.clear(),this.multiple&&e)Array.isArray(e),e.forEach(i=>this._selectOptionByValue(i)),this._sortValues();else{const i=this._selectOptionByValue(e);i?this._keyManager.updateActiveItem(i):this.panelOpen||this._keyManager.updateActiveItem(-1)}this._changeDetectorRef.markForCheck()}_selectOptionByValue(e){const i=this.options.find(r=>{if(this._selectionModel.isSelected(r))return!1;try{return null!=r.value&&this._compareWith(r.value,e)}catch{return!1}});return i&&this._selectionModel.select(i),i}_assignValue(e){return!!(e!==this._value||this._multiple&&Array.isArray(e))&&(this.options&&this._setSelectionByValue(e),this._value=e,!0)}_getOverlayWidth(e){return"auto"===this.panelWidth?(e instanceof qP?e.elementRef:e||this._elementRef).nativeElement.getBoundingClientRect().width:null===this.panelWidth?"":this.panelWidth}_syncParentProperties(){if(this.options)for(const e of this.options)e._changeDetectorRef.markForCheck()}_initKeyManager(){this._keyManager=new Cve(this.options).withTypeAhead(this.typeaheadDebounceInterval).withVerticalOrientation().withHorizontalOrientation(this._isRtl()?"rtl":"ltr").withHomeAndEnd().withPageUpDown().withAllowedModifierKeys(["shiftKey"]).skipPredicate(this._skipPredicate),this._keyManager.tabOut.subscribe(()=>{this.panelOpen&&(!this.multiple&&this._keyManager.activeItem&&this._keyManager.activeItem._selectViaInteraction(),this.focus(),this.close())}),this._keyManager.change.subscribe(()=>{this._panelOpen&&this.panel?this._scrollOptionIntoView(this._keyManager.activeItemIndex||0):!this._panelOpen&&!this.multiple&&this._keyManager.activeItem&&this._keyManager.activeItem._selectViaInteraction()})}_resetOptions(){const e=ql(this.options.changes,this._destroy);this.optionSelectionChanges.pipe(to(e)).subscribe(i=>{this._onSelect(i.source,i.isUserInput),i.isUserInput&&!this.multiple&&this._panelOpen&&(this.close(),this.focus())}),ql(...this.options.map(i=>i._stateChanges)).pipe(to(e)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this.stateChanges.next()})}_onSelect(e,i){const r=this._selectionModel.isSelected(e);null!=e.value||this._multiple?(r!==e.selected&&(e.selected?this._selectionModel.select(e):this._selectionModel.deselect(e)),i&&this._keyManager.setActiveItem(e),this.multiple&&(this._sortValues(),i&&this.focus())):(e.deselect(),this._selectionModel.clear(),null!=this.value&&this._propagateChanges(e.value)),r!==this._selectionModel.isSelected(e)&&this._propagateChanges(),this.stateChanges.next()}_sortValues(){if(this.multiple){const e=this.options.toArray();this._selectionModel.sort((i,r)=>this.sortComparator?this.sortComparator(i,r,e):e.indexOf(i)-e.indexOf(r)),this.stateChanges.next()}}_propagateChanges(e){let i;i=this.multiple?this.selected.map(r=>r.value):this.selected?this.selected.value:e,this._value=i,this.valueChange.emit(i),this._onChange(i),this.selectionChange.emit(this._getChangeEvent(i)),this._changeDetectorRef.markForCheck()}_highlightCorrectOption(){if(this._keyManager)if(this.empty){let e=-1;for(let i=0;i0}focus(e){this._elementRef.nativeElement.focus(e)}_getPanelAriaLabelledby(){if(this.ariaLabel)return null;const e=this._parentFormField?.getLabelId();return this.ariaLabelledby?(e?e+" ":"")+this.ariaLabelledby:e}_getAriaActiveDescendant(){return this.panelOpen&&this._keyManager&&this._keyManager.activeItem?this._keyManager.activeItem.id:null}_getTriggerAriaLabelledby(){if(this.ariaLabel)return null;const e=this._parentFormField?.getLabelId();let i=(e?e+" ":"")+this._valueId;return this.ariaLabelledby&&(i+=" "+this.ariaLabelledby),i}_panelDoneAnimating(e){this.openedChange.emit(e)}setDescribedByIds(e){e.length?this._elementRef.nativeElement.setAttribute("aria-describedby",e.join(" ")):this._elementRef.nativeElement.removeAttribute("aria-describedby")}onContainerClick(){this.focus(),this.open()}get shouldLabelFloat(){return this.panelOpen||!this.empty||this.focused&&!!this.placeholder}static{this.\u0275fac=function(i){return new(i||n)($(UP),$(_o),$(kn),$(cW),$(Vn),$(wh,8),$(zy,8),$(qy,8),$(yO,8),$(Yd,10),Ll("tabindex"),$(XZ),$(Qve),$(SRe,8))}}static{this.\u0275cmp=vt({type:n,selectors:[["mat-select"]],contentQueries:function(i,r,o){if(1&i&&(Vr(o,KZ,5),Vr(o,ru,5),Vr(o,_W,5)),2&i){let s;un(s=hn())&&(r.customTrigger=s.first),un(s=hn())&&(r.options=s),un(s=hn())&&(r.optionGroups=s)}},viewQuery:function(i,r){if(1&i&&(ei(ARe,5),ei(gRe,5),ei(UG,5)),2&i){let o;un(o=hn())&&(r.trigger=o.first),un(o=hn())&&(r.panel=o.first),un(o=hn())&&(r._overlayDir=o.first)}},hostAttrs:["role","combobox","aria-autocomplete","none","aria-haspopup","listbox",1,"mat-mdc-select"],hostVars:19,hostBindings:function(i,r){1&i&&We("keydown",function(s){return r._handleKeydown(s)})("focus",function(){return r._onFocus()})("blur",function(){return r._onBlur()}),2&i&&(fi("id",r.id)("tabindex",r.disabled?-1:r.tabIndex)("aria-controls",r.panelOpen?r.id+"-panel":null)("aria-expanded",r.panelOpen)("aria-label",r.ariaLabel||null)("aria-required",r.required.toString())("aria-disabled",r.disabled.toString())("aria-invalid",r.errorState)("aria-activedescendant",r._getAriaActiveDescendant()),Qn("mat-mdc-select-disabled",r.disabled)("mat-mdc-select-invalid",r.errorState)("mat-mdc-select-required",r.required)("mat-mdc-select-empty",r.empty)("mat-mdc-select-multiple",r.multiple))},inputs:{userAriaDescribedBy:[Ct.None,"aria-describedby","userAriaDescribedBy"],panelClass:"panelClass",disabled:[Ct.HasDecoratorInputTransform,"disabled","disabled",Zn],disableRipple:[Ct.HasDecoratorInputTransform,"disableRipple","disableRipple",Zn],tabIndex:[Ct.HasDecoratorInputTransform,"tabIndex","tabIndex",e=>null==e?0:ha(e)],hideSingleSelectionIndicator:[Ct.HasDecoratorInputTransform,"hideSingleSelectionIndicator","hideSingleSelectionIndicator",Zn],placeholder:"placeholder",required:[Ct.HasDecoratorInputTransform,"required","required",Zn],multiple:[Ct.HasDecoratorInputTransform,"multiple","multiple",Zn],disableOptionCentering:[Ct.HasDecoratorInputTransform,"disableOptionCentering","disableOptionCentering",Zn],compareWith:"compareWith",value:"value",ariaLabel:[Ct.None,"aria-label","ariaLabel"],ariaLabelledby:[Ct.None,"aria-labelledby","ariaLabelledby"],errorStateMatcher:"errorStateMatcher",typeaheadDebounceInterval:[Ct.HasDecoratorInputTransform,"typeaheadDebounceInterval","typeaheadDebounceInterval",ha],sortComparator:"sortComparator",id:"id",panelWidth:"panelWidth"},outputs:{openedChange:"openedChange",_openedStream:"opened",_closedStream:"closed",selectionChange:"selectionChange",valueChange:"valueChange"},exportAs:["matSelect"],standalone:!0,features:[ui([{provide:vO,useExisting:n},{provide:gW,useExisting:n}]),es,wr,Or],ngContentSelectors:bRe,decls:11,vars:8,consts:[["fallbackOverlayOrigin","cdkOverlayOrigin","trigger",""],["panel",""],["cdk-overlay-origin","",1,"mat-mdc-select-trigger",3,"click"],[1,"mat-mdc-select-value"],[1,"mat-mdc-select-placeholder","mat-mdc-select-min-line"],[1,"mat-mdc-select-arrow-wrapper"],[1,"mat-mdc-select-arrow"],["viewBox","0 0 24 24","width","24px","height","24px","focusable","false","aria-hidden","true"],["d","M7 10l5 5 5-5z"],["cdk-connected-overlay","","cdkConnectedOverlayLockPosition","","cdkConnectedOverlayHasBackdrop","","cdkConnectedOverlayBackdropClass","cdk-overlay-transparent-backdrop",3,"backdropClick","attach","detach","cdkConnectedOverlayPanelClass","cdkConnectedOverlayScrollStrategy","cdkConnectedOverlayOrigin","cdkConnectedOverlayOpen","cdkConnectedOverlayPositions","cdkConnectedOverlayWidth"],[1,"mat-mdc-select-value-text"],[1,"mat-mdc-select-min-line"],["role","listbox","tabindex","-1",3,"keydown","ngClass"]],template:function(i,r){if(1&i){const o=Pn();$r(_Re),P(0,"div",2,0),We("click",function(){return Vt(o),Ot(r.open())}),P(3,"div",3),At(4,vRe,2,1,"span",4)(5,xRe,3,1),H(),P(6,"div",5)(7,"div",6),kl(),P(8,"svg",7),xe(9,"path",8),H()()()(),At(10,CRe,3,9,"ng-template",9),We("backdropClick",function(){return Vt(o),Ot(r.close())})("attach",function(){return Vt(o),Ot(r._onAttached())})("detach",function(){return Vt(o),Ot(r.close())})}if(2&i){const o=Po(1);U(3),fi("id",r._valueId),U(),It(4,r.empty?4:5),U(6),pe("cdkConnectedOverlayPanelClass",r._overlayPanelClass)("cdkConnectedOverlayScrollStrategy",r._scrollStrategy)("cdkConnectedOverlayOrigin",r._preferredOverlayOrigin||o)("cdkConnectedOverlayOpen",r.panelOpen)("cdkConnectedOverlayPositions",r._positions)("cdkConnectedOverlayWidth",r._overlayWidth)}},dependencies:[qP,UG,Kd],styles:['.mat-mdc-select{display:inline-block;width:100%;outline:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:var(--mat-select-enabled-trigger-text-color);font-family:var(--mat-select-trigger-text-font);line-height:var(--mat-select-trigger-text-line-height);font-size:var(--mat-select-trigger-text-size);font-weight:var(--mat-select-trigger-text-weight);letter-spacing:var(--mat-select-trigger-text-tracking)}div.mat-mdc-select-panel{box-shadow:var(--mat-select-container-elevation-shadow)}.mat-mdc-select-disabled{color:var(--mat-select-disabled-trigger-text-color)}.mat-mdc-select-trigger{display:inline-flex;align-items:center;cursor:pointer;position:relative;box-sizing:border-box;width:100%}.mat-mdc-select-disabled .mat-mdc-select-trigger{-webkit-user-select:none;user-select:none;cursor:default}.mat-mdc-select-value{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-mdc-select-value-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-mdc-select-arrow-wrapper{height:24px;flex-shrink:0;display:inline-flex;align-items:center}.mat-form-field-appearance-fill .mdc-text-field--no-label .mat-mdc-select-arrow-wrapper{transform:none}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-invalid .mat-mdc-select-arrow,.mat-form-field-invalid:not(.mat-form-field-disabled) .mat-mdc-form-field-infix::after{color:var(--mat-select-invalid-arrow-color)}.mat-mdc-select-arrow{width:10px;height:5px;position:relative;color:var(--mat-select-enabled-arrow-color)}.mat-mdc-form-field.mat-focused .mat-mdc-select-arrow{color:var(--mat-select-focused-arrow-color)}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-disabled .mat-mdc-select-arrow{color:var(--mat-select-disabled-arrow-color)}.mat-mdc-select-arrow svg{fill:currentColor;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.cdk-high-contrast-active .mat-mdc-select-arrow svg{fill:CanvasText}.mat-mdc-select-disabled .cdk-high-contrast-active .mat-mdc-select-arrow svg{fill:GrayText}div.mat-mdc-select-panel{width:100%;max-height:275px;outline:0;overflow:auto;padding:8px 0;border-radius:4px;box-sizing:border-box;position:static;background-color:var(--mat-select-panel-background-color)}.cdk-high-contrast-active div.mat-mdc-select-panel{outline:solid 1px}.cdk-overlay-pane:not(.mat-mdc-select-panel-above) div.mat-mdc-select-panel{border-top-left-radius:0;border-top-right-radius:0;transform-origin:top center}.mat-mdc-select-panel-above div.mat-mdc-select-panel{border-bottom-left-radius:0;border-bottom-right-radius:0;transform-origin:bottom center}div.mat-mdc-select-panel .mat-mdc-option{--mdc-list-list-item-container-color: var(--mat-select-panel-background-color)}.mat-mdc-select-placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1);color:var(--mat-select-placeholder-text-color)}._mat-animation-noopable .mat-mdc-select-placeholder{transition:none}.mat-form-field-hide-placeholder .mat-mdc-select-placeholder{color:rgba(0,0,0,0);-webkit-text-fill-color:rgba(0,0,0,0);transition:none;display:block}.mat-mdc-form-field-type-mat-select:not(.mat-form-field-disabled) .mat-mdc-text-field-wrapper{cursor:pointer}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mat-mdc-floating-label{max-width:calc(100% - 18px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mdc-floating-label--float-above{max-width:calc(100%/0.75 - 24px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-text-field--label-floating .mdc-notched-outline__notch{max-width:calc(100% - 24px)}.mat-mdc-select-min-line:empty::before{content:" ";white-space:pre;width:1px;display:inline-block;visibility:hidden}.mat-form-field-appearance-fill .mat-mdc-select-arrow-wrapper{transform:var(--mat-select-arrow-transform)}'],encapsulation:2,data:{animation:[MRe.transformPanel]},changeDetection:0})}}return n})(),YZ=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=$t({type:n,selectors:[["mat-select-trigger"]],standalone:!0,features:[ui([{provide:KZ,useExisting:n}])]})}}return n})(),ZZ=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({providers:[TRe],imports:[gn,T1,bW,hr,x1,zw,bW,hr]})}}return n})();const JZ=Zt(J_,kw,(n,t)=>n.get(t));class FRe{constructor(){this.vertexShaderCode=p(1812),this.fragmentShaderCode=p(1190)}}class DRe{constructor(t){this._buildings=new Array,this.mapSize=t,this.scales=new ie(1,1,1)}add(t){this._buildings.push(t)}get buildings(){return this._buildings}setScales(t){this.scales=new ie(t.x,t.y,t.z)}getBuildingByPath(t){return this.buildings.find(e=>e.node.path===t)}intersect(t){let e,i=Number.POSITIVE_INFINITY;const r=this.scales.clone().multiplyScalar(this.mapSize).multiply(new ie(-1,0,-1));for(const o of this._buildings){const s=o.boundingBox.clone();if(s.min.multiply(this.scales),s.max.multiply(this.scales),s.translate(r),this.rayIntersectsAxisAlignedBoundingBox(t,s)){const a=t.intersectBox(s,new ie);if(a){const l=a.distanceTo(t.origin);l=o}}class kRe{constructor(t,e,i,r){this._id=t,this._boundingBox=e,this._color=r,this._defaultColor=r,this._deltaColor="#000000",this._defaultDeltaColor="#000000",this._node=i}getCenterPoint(t){return new ie(this._node.x0-t+this._node.width/2,this._node.z0+this._node.height,this._node.y0-t+this._node.length/2)}decreaseLightness(t){this._color=this._decreaseLightnessForColor(this._defaultColor,t),this._node.deltas&&(this._deltaColor=this._decreaseLightnessForColor(this._defaultDeltaColor,t))}_decreaseLightnessForColor(t,e){const i=or.hexToHSL(t);return i.decreaseLightness(e),i.getLightness()<10?i.setLightness(10):i.setLightness(i.getLightness()),i.toHex()}getColorVector(){return or.getVector3(this._color)}getDefaultColorVector(){return or.getVector3(this._defaultColor)}getDeltaColorVector(){return or.getVector3(this._deltaColor)}getDefaultDeltaColorVector(){return or.getVector3(this._defaultDeltaColor)}resetColor(){this._color=this._defaultColor,this._deltaColor=this._defaultDeltaColor}equals(t){return this._id===t._id}get id(){return this._id}get boundingBox(){return this._boundingBox}get color(){return this._color}get node(){return this._node}get deltaColor(){return this._deltaColor}get defaultDeltaColor(){return this._defaultDeltaColor}setColor(t){this._color=t}setNode(t){this._node=t}setInitialDeltaColor(t){this._defaultDeltaColor=t,this._deltaColor=t}setDeltaColor(t){this._deltaColor=t}}var FT=function(n){return n[n.left=0]="left",n[n.right=1]="right",n[n.bottom=2]="bottom",n[n.top=3]="top",n[n.back=4]="back",n[n.front=5]="front",n}(FT||{});const BRe=[[-1,0,0],[1,0,0],[0,-1,0],[0,1,0],[0,0,-1],[0,0,1]],eJ=[1,0,1,1,0,1,0,0,0,0,0,1,1,1,1,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,0,1,0,1,1,0,1,1,0,0,0,0,1,1,1];function tJ(n,t,e,i,r,o,s){o.add(new kRe(r,new dl(new ie(e.x,e.y,e.z),new ie(e.x+e.width,e.y+e.height,e.z+e.depth)),t,i)),n.uvs.set(eJ,r*eJ.length),function PRe(n,t,e){const{x:i,y:r,z:o,width:s,height:a,depth:l}=t,c=i+s,d=r+a,u=o+l;let h=4*e*6*3;n[h++]=i,n[h++]=r,n[h++]=o,n[h++]=i,n[h++]=d,n[h++]=o,n[h++]=i,n[h++]=d,n[h++]=u,n[h++]=i,n[h++]=r,n[h++]=u,n[h++]=c,n[h++]=r,n[h++]=o,n[h++]=c,n[h++]=d,n[h++]=o,n[h++]=c,n[h++]=d,n[h++]=u,n[h++]=c,n[h++]=r,n[h++]=u,n[h++]=i,n[h++]=r,n[h++]=o,n[h++]=i,n[h++]=r,n[h++]=u,n[h++]=c,n[h++]=r,n[h++]=u,n[h++]=c,n[h++]=r,n[h++]=o,n[h++]=i,n[h++]=d,n[h++]=o,n[h++]=i,n[h++]=d,n[h++]=u,n[h++]=c,n[h++]=d,n[h++]=u,n[h++]=c,n[h++]=d,n[h++]=o,n[h++]=c,n[h++]=r,n[h++]=u,n[h++]=i,n[h++]=r,n[h++]=u,n[h++]=i,n[h++]=d,n[h++]=u,n[h++]=c,n[h++]=d,n[h++]=u,n[h++]=c,n[h++]=r,n[h++]=o,n[h++]=i,n[h++]=r,n[h++]=o,n[h++]=i,n[h++]=d,n[h++]=o,n[h++]=c,n[h++]=d,n[h++]=o}(n.positions,e,r),function LRe(n,t,e,i,r,o){const{y:s,height:a}=t,c=i/(s+a-s);let d=6*r*4,u=3*d,h=6*r*6;const f=or.getVector3Array(e);for(let A=0;A<6;A++){const y=RRe(A,n),_=BRe[A],b=d,M=d+1,C=d+2,E=d+3;o.isHeight.set(y,d);for(const R=d+4;d{class n{static{this.MINIMAL_BUILDING_HEIGHT=1}build(e,i,r,o){const s=new DRe(as);this.floorGradient=or.gradient("#333333","#DDDDDD",this.getMaxNodeDepth(e)),this.materials=[i];const a=e.length,h=4*a*6,f={positions:new Float32Array(3*h),uvs:new Float32Array(2*h),normals:new Float32Array(3*h),colors:new Float32Array(3*h),indices:new Uint32Array(6*a*6),ids:new Float32Array(h),deltas:new Float32Array(h),isHeight:new Float32Array(h)};for(const[A,y]of e.entries())y.isLeaf?this.addBuilding(f,y,A,s,r,o):this.addFloor(f,y,A,s);return{mesh:this.buildMeshFromIntermediateVertexData(f),desc:s}}getMaxNodeDepth(e){return e.reduce((i,{depth:r})=>Math.max(r,i),0)}mapNodeToLocalBox(e){return{x:e.x0,y:e.z0,z:e.y0,width:e.width,height:e.height,depth:e.length}}ensureMinHeightUnlessDeltaIsNegative(e,i){return i<=0?e:Math.max(e,n.MINIMAL_BUILDING_HEIGHT)}addFloor(e,i,r,o){const s=this.getMarkingColorWithGradient(i);tJ(e,i,this.mapNodeToLocalBox(i),s,r,o,0)}getMarkingColorWithGradient(e){if(e.markingColor){const r=or.getNumber(e.markingColor)&(e.depth%2==0?14540253:16777215);return or.convertNumberToHex(r)}return this.floorGradient[e.depth]}addBuilding(e,i,r,o,s,a){const l=this.mapNodeToLocalBox(i);l.height=this.ensureMinHeightUnlessDeltaIsNegative(i.height,i.heightDelta);let c=0;a&&i.deltas&&i.deltas[s.dynamicSettings.heightMetric]&&i.heightDelta&&(c=i.heightDelta,!i.flat&&c<0&&(l.height+=Math.abs(c))),tJ(e,i,l,i.color,r,o,c)}buildMeshFromIntermediateVertexData(e){const o=new Float32Array(e.colors),s=new vi;return s.setAttribute("position",new rr(e.positions,3)),s.setAttribute("normal",new rr(e.normals,3)),s.setAttribute("isHeight",new rr(e.isHeight,1)),s.setAttribute("uv",new rr(e.uvs,2)),s.setAttribute("color",new rr(e.colors,3)),s.setAttribute("deltaColor",new rr(o,3)),s.setAttribute("subGeomIdx",new rr(e.ids,1)),s.setAttribute("delta",new rr(e.deltas,1)),s.setIndex(new rr(e.indices,1)),s.addGroup(0,Number.POSITIVE_INFINITY,0),new Br(s,this.materials)}}return n})(),NRe=(()=>{class n{static{this.NUM_OF_COLOR_VECTOR_FIELDS=3}static{this.NUM_OF_VERTICES=24}static{this.LIGHTNESS_INCREASE=-10}static{this.LIGHTNESS_DECREASE=20}constructor(e,i,r){this.initMaterial(),this.geomGen=new ORe,this.material.precision="lowp";const o=this.geomGen.build(e,this.material,i,r);this.threeMesh=o.mesh,this.mapGeomDesc=o.desc,this.nodes=e,this.initDeltaColorsOnMesh(i)}getThreeMesh(){return this.threeMesh}getNodes(){return this.nodes}selectBuilding(e,i){e.setColor(i),e.setDeltaColor(i),this.setVertexColor(e.id,e.getColorVector(),e.getDeltaColorVector()),this.updateVertices()}clearSelection(e){e.resetColor(),this.setVertexColor(e.id,e.getDefaultColorVector(),e.getDefaultDeltaColorVector()),this.updateVertices()}getMeshDescription(){return this.mapGeomDesc}getBuildingByPath(e){return this.mapGeomDesc.getBuildingByPath(e)}checkMouseRayMeshIntersection(e,i){const r=this.calculatePickingRay(e,i);return this.getMeshDescription().intersect(r)}setScale(e){this.mapGeomDesc.setScales(e)}highlightBuilding(e,i,r,o){const s=ga.buildingArrayToMap(e);for(const a of this.mapGeomDesc.buildings)this.isBuildingSelected(i,a)||(s.get(a.id)||o.get(a.id)?a.decreaseLightness(n.LIGHTNESS_INCREASE):this.adjustSurroundingBuildingColors(e,a,r),this.setVertexColor(a.id,a.getColorVector(),a.getDeltaColorVector()));this.updateVertices()}clearHighlight(e){for(const i of this.mapGeomDesc.buildings)this.isBuildingSelected(e,i)||this.setVertexColor(i.id,i.getDefaultColorVector(),i.getDefaultDeltaColorVector());this.updateVertices()}adjustSurroundingBuildingColors(e,i,r){if(r.appSettings.isPresentationMode){const o=e[0].getCenterPoint(as).distanceTo(i.getCenterPoint(as));this.decreaseLightnessByDistance(i,o)}else i.decreaseLightness(n.LIGHTNESS_DECREASE)}initDeltaColorsOnMesh(e){if(this.mapGeomDesc.buildings[0]?.node.deltas){for(const i of this.mapGeomDesc.buildings)this.setNewDeltaColor(i,e),this.setVertexColor(i.id,i.getColorVector(),i.getDeltaColorVector());this.updateVertices()}}setNewDeltaColor(e,i){const{appSettings:{mapColors:r},dynamicSettings:{heightMetric:o}}=i,{node:s}=e;if(s.flat)e.setInitialDeltaColor(r.flat);else if(s.deltas){const a=s.deltas[o];a>0&&e.setInitialDeltaColor(r.positiveDelta),a<0&&e.setInitialDeltaColor(r.negativeDelta)}}isBuildingSelected(e,i){return e&&i.equals(e)}decreaseLightnessByDistance(e,i){i>800?e.decreaseLightness(40):i>400?e.decreaseLightness(30):i>250?e.decreaseLightness(20):i>100?e.decreaseLightness(15):i>50&&e.decreaseLightness(10)}setVertexColor(e,i,r){const o=n.NUM_OF_VERTICES,s=e*o,a=this.threeMesh.geometry.getAttribute("color"),l=this.threeMesh.geometry.getAttribute("deltaColor");for(let c=s;cM&&(M=c),V=_*_*I,(C=Math.max(M/V,V/b))>E){_-=c;break}E=C}s.push(l={value:_,dice:f1?i:1)},e}((1+Math.sqrt(5))/2);function Gw(){return 0}function Ww(n){return function(){return n}}function GRe(){var n=qRe,t=!1,e=1,i=1,r=[0],o=Gw,s=Gw,a=Gw,l=Gw,c=Gw;function d(h){return h.x0=h.y0=0,h.x1=e,h.y1=i,h.eachBefore(u),r=[0],t&&h.eachBefore(URe),h}function u(h){var f=r[h.depth],A=h.x0+f,y=h.y0+f,_=h.x1-f,b=h.y1-f;_{!Ro(_)&&s&&(0===_.depth&&(u+=rJ),_.depth>0&&_.depth<3&&(u+=oJ))});const h=(c+o*a+u)*e,f=(d+o*a+u)*e;let A;return{treeMap:GRe().size([h,f]).paddingOuter(l).paddingInner(l).paddingRight(_=>{if(!A&&null===_.parent&&(A=_),A&&s){if(0===_.depth)return Math.max((A.x1-A.x0)*WRe,rJ);if(_.depth>0&&_.depth<3)return Math.max((A.x1-A.x0)*$Re,oJ)}return l})(r.sum(_=>function YRe(n,{dynamicSettings:t,appSettings:e,fileSettings:i},r){if(n.isExcluded)return 0;if(n.deltas&&function KRe(n,t){return 0===n.attributes[t.areaMetric]&&n.deltas[t.heightMetric]<0}(n,t))return Math.abs(n.deltas[t.areaMetric]);if(Ro(n)&&n.attributes?.[t.areaMetric]){const o=t.areaMetric;return 1===i.attributeDescriptors[o]?.direction?e.invertArea?n.attributes[t.areaMetric]:r-n.attributes[t.areaMetric]:e.invertArea?r-n.attributes[t.areaMetric]:n.attributes[t.areaMetric]}return 0}(_,t,i)*e)),height:f,width:h}}function cJ(n){let t=0,e=0;return n.each(({data:i})=>{(i.isExcluded||i.isFlattened)&&e++,t++}),2*Math.sqrt(t-e)}class Pm{constructor(t,e,i){this.topLeft=t,this.bottomRight=t.clone().add(new at(e,i)),this.width=e,this.height=i}shorterSide(){return this.width>this.height?this.height:this.width}isVertical(){return this.height>this.width}area(){return this.width*this.height}getBottomRight(){return this.bottomRight}}class kO{constructor(t){this.height=0,this.width=0,this.FIXED_MARGIN=.5,this.mapNode=t}getNode(){return this.mapNode}createMarginatedRectangle(t){const e=new at(t.x+this.FIXED_MARGIN,t.y+this.FIXED_MARGIN);return new Pm(e,this.width-2*this.FIXED_MARGIN,this.height-2*this.FIXED_MARGIN)}}var BO=function(n){return n[n.Horizontal=0]="Horizontal",n[n.Vertical=1]="Vertical",n}(BO||{});class dJ extends kO{constructor(){super(...arguments),this.spacer=2}getStreetThickness(){const t=this.mapNode.path.split("/"),e=this.mapNode.path.startsWith("/root/")&&3===t.length&&""!==t[2];return"/root"===this.mapNode.path||e?this.calculateRootStreetThickness(this.mapNode):this.calculateNonRootThickness(this.mapNode)}calculateNonRootThickness(t){return 2+5e-4*t.attributes.unary}calculateRootStreetThickness(t){return 8+.001*t.attributes.unary}}function DT(n,t){let e=n.attributes[t]||0;if(0===e&&n.children&&n.children.length>0)for(const i of n.children)e+=DT(i,t);return e}const ub={calculateSize:DT,mergeDirectories:function ZRe(n,t){let e=n;const i=DT(n,t);for(const r of n.children)if(!Ro(r)&&i===DT(r,t)){const s=e.name;e=r,e.name=`${s}/${r.name}`;break}return e},buildNodeFrom:function JRe(n,t,e,i,r){const o=!(n.children&&n.children.length>0),s=aT(n,i),a=ga.getHeightValue(i,n,e,s),l=Math.abs(o?Math.max(t*a,ga.MIN_BUILDING_HEIGHT):ga.FOLDER_HEIGHT),c=n.rect.height,d=n.rect.topLeft.x,u=n.rect.topLeft.y,h=n.zOffset*ga.FOLDER_HEIGHT;return{name:n.name,id:n.id,width:n.rect.width,height:l,length:c,depth:n.zOffset,mapNodeDepth:100,x0:d,z0:h,y0:u,isLeaf:o,attributes:n.attributes,edgeAttributes:n.edgeAttributes,deltas:n.deltas,heightDelta:n.deltas?.[i.dynamicSettings.heightMetric]?t*n.deltas[i.dynamicSettings.heightMetric]:0,visible:QL(n,o,i,s),path:n.path,link:n.link,markingColor:KE(n,i.fileSettings.markedPackages),flat:s,color:zL(n,i,$h(i),r,s),incomingEdgePoint:sT(n.rect.width,l,c,new ie(d,h,u),as),outgoingEdgePoint:sT(n.rect.width,l,c,new ie(d,h,u),as)}}};var Rm=function(n){return n[n.RIGHT=0]="RIGHT",n[n.LEFT=1]="LEFT",n}(Rm||{});class QA extends dJ{constructor(t,e,i=Rm.RIGHT){super(t),this.children=[],this.topRow=[],this.bottomRow=[],this.children=e,this.orientation=i}calculateDimension(t){for(const e of this.children)e.calculateDimension(t);this.splitChildrenToRows(this.children),this.rearrangeRows(),this.metricValue=ub.calculateSize(this.mapNode,t),this.width=Math.max(this.getLength(this.topRow),this.getLength(this.bottomRow)),this.height=this.getMaxHeight(this.topRow)+this.getStreetThickness()+this.getMaxHeight(this.bottomRow)+this.spacer}layout(t,e){const i=this.getMaxHeight(this.topRow),r=this.layoutTopRow(e,i,t),o=this.layoutBottomRow(e,i,t);return[...r,this.layoutStreet(e,i),...o]}layoutTopRow(t,e,i){const r=new at(t.x,t.y),o=[];if(this.orientation===Rm.LEFT){const s=this.getLength(this.topRow);r.x+=this.width-s}for(let s=0;sMath.max(e,i.height),Number.MIN_VALUE)}calculateStreetOverhang(t){return this.orientation===Rm.LEFT?this.calculateLeftStreetOverhang(t):this.calculateRightStreetOverhang(t)}calculateLeftStreetOverhang(t){const e=this.topRow[0],i=this.bottomRow[0],r=e instanceof hb&&e.streetRect?e.streetRect.topLeft.x-t.x:this.width-this.getLength(this.topRow),o=i instanceof hb&&i.streetRect?i.streetRect.topLeft.x-t.x:this.width-this.getLength(this.bottomRow);return r>0&&o>0?Math.min(r,o):0}calculateRightStreetOverhang(t){const e=this.topRow.at(-1),i=this.bottomRow.at(-1),r=t.x+this.width,o=e instanceof hb&&e.streetRect?r-e.streetRect.getBottomRight().x:this.width-this.getLength(this.topRow),s=i instanceof hb&&i.streetRect?r-i.streetRect.getBottomRight().x:this.width-this.getLength(this.bottomRow);return o>0&&s>0?Math.min(o,s):0}}var Lm=function(n){return n[n.UP=0]="UP",n[n.DOWN=1]="DOWN",n}(Lm||{});class hb extends dJ{constructor(t,e,i,r=Lm.UP){super(t),this.children=[],this.leftRow=[],this.rightRow=[],this.children=e,this.orientation=r}calculateDimension(t){for(const e of this.children)e.calculateDimension(t);this.splitChildrenToRows(this.children),this.rearrangeRows(),this.metricValue=ub.calculateSize(this.mapNode,t),this.width=this.getMaxWidth(this.leftRow)+this.getStreetThickness()+this.getMaxWidth(this.rightRow)+2*this.spacer,this.height=Math.max(this.getLength(this.leftRow),this.getLength(this.rightRow))}layout(t,e){const i=this.getMaxWidth(this.leftRow),r=this.layoutLeftRow(e,i,t),o=this.layoutRightRow(e,i,t);return[...r,this.layoutStreet(e,i),...o]}layoutLeftRow(t,e,i){const r=new at(t.x,t.y),o=[];if(this.orientation===Lm.UP){const s=this.getLength(this.leftRow);r.y+=this.height-s}for(let s=0;se.mapNode.type===i.mapNode.type?0:e.mapNode.type===Oa.FILE?-1:1)}splitChildrenToRows(t){this.sortChildrenByType(t);let e=0,i=0;for(const r of t)e+=r.height;for(const r of t)i<=e/2?(r instanceof QA&&(r.orientation=Rm.LEFT),this.leftRow.push(r),i+=r.height):this.rightRow.push(r)}rearrangeRows(){this.orientation===Lm.UP?this.leftRow.reverse():this.rightRow.reverse()}getMaxWidth(t){return t.reduce((e,i)=>Math.max(e,i.width),Number.MIN_VALUE)}calculateStreetOverhang(t){return this.orientation===Lm.UP?this.calculateTopStreetOverhang(t):this.calculateBottomStreetOverhang(t)}calculateTopStreetOverhang(t){const e=this.leftRow[0],i=this.rightRow[0],r=e instanceof QA&&e.streetRect?e.streetRect.topLeft.y-t.y:this.height-this.getLength(this.leftRow),o=i instanceof QA&&i.streetRect?i.streetRect.topLeft.y-t.y:this.height-this.getLength(this.rightRow);return r>0&&o>0?Math.min(r,o):0}calculateBottomStreetOverhang(t){const e=this.leftRow.at(-1),i=this.rightRow.at(-1),r=t.y+this.height,o=e instanceof QA&&e.streetRect?r-e.streetRect.getBottomRight().y:this.height-this.getLength(this.leftRow),s=i instanceof QA&&i.streetRect?r-i.streetRect.getBottomRight().y:this.height-this.getLength(this.rightRow);return o>0&&s>0?Math.min(o,s):0}}class e4e extends kO{constructor(t){super(t)}calculateDimension(t){this.metricValue=ub.calculateSize(this.mapNode,t);const e=Math.sqrt(this.metricValue);this.width=this.height=e}layout(t,e){return[{...this.mapNode,value:this.metricValue,rect:this.createMarginatedRectangle(e),zOffset:0}]}}class t4e extends kO{constructor(t){super(t),this.treeMapNodes=[]}calculateDimension(t){this.metricName=t,this.metricValue=ga.calculateSize(this.mapNode,t),this.width=Math.sqrt(this.metricValue),this.height=Math.sqrt(this.metricValue)}}class uJ{constructor(t){this.nodes=[],this.nodes=t}totalScaledSize(t,e,i,r){return t.reduce((o,s)=>o+this.scaledSize(s,i,r,e),0)}totalSize(t){return this.nodes.reduce((e,i)=>e+ga.calculateSize(i,t),0)}min(t,e,i,r){return t.reduce((o,s)=>Math.min(o,this.scaledSize(s,i,r,e)),Number.MAX_VALUE)}max(t,e,i,r){return t.reduce((o,s)=>Math.max(o,this.scaledSize(s,i,r,e)),Number.MIN_VALUE)}populate(t,e,i,r){for(const o of t){const s=this.worstAspectRatio(this.nodes,e,i,r);if(!(this.worstAspectRatio([...this.nodes,o],e,i,r)0?A/u:0,_=new Pm(new at(a,t.topLeft.y),y,u);h.push({...f,value:"File"===f.type?e:0,rect:this.applyNodeMargin(_,o),zOffset:r}),a+=y}return h}worstAspectRatio(t,e,i,r){const o=e.width,s=e.area(),a=this.totalScaledSize(t,r,i,s),l=this.min(t,r,i,s),c=this.max(t,r,i,s),d=Math.pow(o,2),u=Math.pow(a,2);return Math.max(d*c/u,u/(d*l))}}var RO=function(n){return n[n.topToBottom=0]="topToBottom",n[n.bottomToTop=1]="bottomToTop",n}(RO||{});class n4e extends uJ{constructor(t){super(t)}layout(t,e,i,r,o,s=RO.topToBottom){let a=t.topLeft.y;s!==RO.topToBottom&&this.nodes.reverse();const l=this.nodes,c=t.area(),d=t.height,u=this.totalScaledSize(l,i,e,c)/d,h=[];for(const f of l){const A=this.scaledSize(f,e,c,i),y=u>0?A/u:0,_=new Pm(new at(t.topLeft.x,a),u,y);h.push({...f,value:"File"===f.type?e:0,rect:this.applyNodeMargin(_,o),zOffset:r}),a+=y}return h}worstAspectRatio(t,e,i,r){const o=e.height,s=e.area(),a=this.totalScaledSize(t,r,i,s),l=this.min(t,r,i,s),c=this.max(t,r,i,s),d=o**2,u=a**2;return Math.max(d*c/u,u/(d*l))}}class i4e extends t4e{constructor(t){super(t)}layout(t,e=new at(0,0)){const i=this.createMarginatedRectangle(e),r={...this.mapNode,value:this.metricValue,rect:i,zOffset:0},o=this.mapNode.children.filter(s=>ga.calculateSize(s,this.metricName)>0);return this.treeMapNodes.push(r),o.length>0&&this.createNodes(o,i,this.metricValue,1,t),this.treeMapNodes}createNodes(t,e,i,r,o){let s=0,a=new Pm(new at(e.topLeft.x,e.topLeft.y),e.width,e.height),l=i;const c=this.orderBySizeDescending(t);do{const d=this.createStrip(a,c.slice(s),l),u=d.totalSize(this.metricName);if(u>0){const h=this.createStripNodes(d,a,l,r,o);this.createChildrenNodes(h,r,o),a=this.remainingRectangle(a,d,l,a.area()),l-=u}s+=d.nodes.length}while(s0){const o=r.children.filter(s=>ga.calculateSize(s,this.metricName)>0);if(o.length>0){const s=ga.calculateSize(r,this.metricName);this.createNodes(o,r.rect,s,e+1,i)}}}orderBySizeDescending(t){return t.sort((e,i)=>ga.calculateSize(i,this.metricName)-ga.calculateSize(e,this.metricName))}}class zA{static createStreetLayoutNodes(t,e,i,r){const o=ZE(e.files),s=i.find(A=>A.name===e.dynamicSettings.heightMetric).maxValue*o,a=e.dynamicSettings.areaMetric,l=ub.mergeDirectories(t,a),d=this.createBoxes(l,a,e,BO.Vertical,1,e.appSettings.maxTreeMapFiles),u=new QA(l,d,0);return u.calculateDimension(a),u.layout(.02*e.dynamicSettings.margin,new at(0,0)).map(A=>ub.buildNodeFrom(A,this.calculateHeightScale(t,as,s),s,e,r))}static createBoxes(t,e,i,r,o,s){const a=[],l=i.dynamicSettings.areaMetric;for(let c of t.children){if(Ro(c)){a.push(new e4e(c));continue}if(vh(c.path,i.fileSettings.blacklist,"exclude"))continue;const d=i.appSettings.layoutAlgorithm,u=zA.countFileDescendants(c);if(d===su.TreeMapStreet&&u<=s){const h=zA.createTreeMap(c);a.push(h)}else{c=ub.mergeDirectories(c,l);const h=zA.createBoxes(c,e,i,1-r,o+1,s),f=zA.createStreet(c,r,h,o);a.push(f)}}return a}static createStreet(t,e,i,r){return e===BO.Horizontal?new QA(t,i,r):new hb(t,i,r)}static createTreeMap(t){return new i4e(t)}static countFileDescendants(t){let e=0;for(const i of t.children)e+=Ro(i)?1:zA.countFileDescendants(i);return e}static calculateHeightScale(t,e,i){return 2*e/i*(1e-4*t.attributes.unary+.005*Math.sqrt(t.attributes.unary))}}const fJ=Zt(no,n=>n.amountOfEdgePreviews),o4e=Zt(Gs,Xh,fJ,(n,t,e)=>new Set(s4e(n.nodeEdgeMetricsMap,t,e))),s4e=(n,t,e)=>{const i=[];if(0===e)return i;const r=n.get(t);if(void 0===r)return i;for(const o of r.keys())if(i.push(o),i.length===e)break;return i},a4e=Zt(A1,n=>n.edges),c4e=Zt(o4e,a4e,Xh,(n,t,e)=>{const i=nu(t);return((n,t,e)=>{for(const i of t)if(i.visible=au.none,void 0!==i.attributes[e]){const r=n.has(i.fromNodeName),o=n.has(i.toNodeName);r&&o?i.visible=au.both:r?i.visible=au.from:o&&(i.visible=au.to)}})(n,i,e),i});let d4e=(()=>{class n{constructor(e,i,r,o){this.store=e,this.state=i,this.threeSceneService=r,this.idToBuildingService=o,this.VERTICES_PER_LINE=5,this.arrows=new Array,this.HIGHLIGHT_BUILDING_DELAY=1,this.debounceCalculation=yu(s=>this.resetEdgesOfBuildings(s),this.HIGHLIGHT_BUILDING_DELAY),this.subscription=this.store.select(kw).pipe(Dr(s=>{if(null!==s){const a=this.idToBuildingService.get(s);this.onBuildingHovered(a)}else this.onBuildingUnhovered()})).subscribe(),this.resetEdgesOfBuildings=s=>{this.isEdgeApplicableForBuilding(s)&&(this.clearArrows(),this.showEdgesOfBuildings(s)),this.scale()},this.onBuildingSelected=s=>{this.isEdgeApplicableForBuilding(s.building)&&(this.clearArrows(),this.showEdgesOfBuildings()),this.scale()},this.onBuildingDeselected=()=>{this.clearArrows(),this.addEdgePreview()},this.threeSceneService.subscribe("onBuildingSelected",this.onBuildingSelected),this.threeSceneService.subscribe("onBuildingDeselected",this.onBuildingDeselected)}ngOnDestroy(){this.subscription.unsubscribe()}onBuildingHovered(e){this.debounceCalculation(e)}onBuildingUnhovered(){const{isEdgeMetricVisible:e}=this.state.getValue().appSettings;e&&(this.clearArrows(),this.showEdgesOfBuildings()),this.scale()}clearArrows(){this.arrows=[],this.threeSceneService.edgeArrows.children.length=0}addArrow(e,i,r){const{appSettings:o,dynamicSettings:s}=this.state.getValue(),a=100*o.edgeHeight;if(e.attributes?.[s.heightMetric]&&i.attributes?.[s.heightMetric]){const l=this.createCurve(i,e,a),c=or.getNumber(o.mapColors[r?"outgoingEdge":"incomingEdge"]);this.highlightBuilding(r?e:i),this.setCurveColor(l,c)}}addEdgePreview(){const e=c4e(this.state.getValue());for(const i of e){const r=this.map.get(i.fromNodeName),o=this.map.get(i.toNodeName);if(r&&o&&i.visible!==au.none&&i.visible){const s=100*this.state.getValue().appSettings.edgeHeight,a=this.createCurve(r,o,s);this.previewMode(a,i.visible)}}}addEdgeMapBasedOnNodes(e){this.map=this.getNodesAsMap(e)}scale(){const{scaling:e}=this.state.getValue().appSettings;for(const i of this.arrows)i.scale.x=e.x,i.scale.y=e.y,i.scale.z=e.z}isEdgeApplicableForBuilding(e){return this.state.getValue().appSettings.isEdgeMetricVisible&&e&&!e.node.flat}showEdgesOfBuildings(e){const i=new Map,r=this.threeSceneService.getSelectedBuilding();if(r){const{node:o}=r;i.set(o.path,o)}if(e){const{node:o}=e;i.set(o.path,o)}i.size>0?this.buildPairingEdges(i):this.addEdgePreview()}buildPairingEdges(e){const{edges:i}=this.state.getValue().fileSettings;for(const r of i){const o=this.map.get(r.fromNodeName);if(void 0===o)continue;const s=this.map.get(r.toNodeName);void 0!==s&&(e.has(o.path)?(this.addArrow(s,o,!0),this.threeSceneService.highlightBuildings()):e.has(s.path)&&(this.addArrow(s,o,!1),this.threeSceneService.highlightBuildings()))}}createCurve(e,i,r){const o=e.outgoingEdgePoint.clone(),s=i.incomingEdgePoint.clone(),a=Math.max(o.y+i.height,s.y+1)+r;return o.setY(a),s.setY(a),new EK(e.outgoingEdgePoint,o,s,i.incomingEdgePoint)}highlightBuilding(e){const i=this.threeSceneService.getMapMesh().getMeshDescription().getBuildingByPath(e.path);this.threeSceneService.addBuildingToHighlightingList(i)}setCurveColor(e,i,r=50){const o=e.getPoints(r),s=this.buildLine(o,i);s.add(this.buildArrow(o)),this.threeSceneService.edgeArrows.add(s),this.arrows.push(s)}previewMode(e,i){if(i===au.both||i===au.from){const r=this.makeArrowFromBezier(e,!1);this.threeSceneService.edgeArrows.add(r),this.arrows.push(r)}if(i===au.both||i===au.to){const r=this.makeArrowFromBezier(e,!0);this.threeSceneService.edgeArrows.add(r),this.arrows.push(r)}}getNodesAsMap(e){const i=new Map;for(const r of e)i.set(r.path,r);return i}makeArrowFromBezier(e,i,r=50){const o=e.getPoints(r),{incomingEdge:s,outgoingEdge:a}=this.state.getValue().appSettings.mapColors,l=i?s:a,c=i?o.slice(r+1-this.VERTICES_PER_LINE):o.slice(0,o.length-(r+1-this.VERTICES_PER_LINE));return this.buildEdge(c,or.getNumber(l))}buildEdge(e,i){const r=this.buildLine(e,i);return r.add(this.buildArrow(e)),r}buildLine(e,i=0){const r=new vi;r.setFromPoints(e);const o=new Aa({color:i,linewidth:1});return new gd(r,o)}buildArrow(e,i=0,r=10,o=10){const s=e.at(-1).clone().sub(e.at(-2).clone()).normalize(),a=e.at(-1).clone();return s.y<0&&(a.y+=r+1),new CFe(s,a,r+1,i,r,o)}static{this.\u0275fac=function(i){return new(i||n)(ge(Xt),ge(jr),ge(Pc),ge(Iw))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),mJ=(()=>{class n{constructor(e,i,r,o,s,a,l){this.store=e,this.state=i,this.threeSceneService=r,this.codeMapLabelService=o,this.codeMapArrowService=s,this.threeStatsService=a,this.codeMapMouseEventService=l,this.nodesByColor={positive:[],neutral:[],negative:[]},this.onIsLoadingFileChanged=c=>{c?this.threeSceneService?.dispose():this.threeStatsService?.resetPanels()},this.subscription=this.store.select(ZR).pipe(Dr(this.onIsLoadingFileChanged)).subscribe()}ngOnDestroy(){this.subscription.unsubscribe()}render(e){const i=this.getNodes(e),r=this.sortNodes(i);this.unflattenedNodes=r.filter(({flat:o})=>!o),this.setNewMapMesh(i,r),this.getNodesMatchingColorSelector(this.unflattenedNodes),this.setLabels(this.unflattenedNodes),this.setArrows(r)}setNewMapMesh(e,i){const r=this.state.getValue(),o=new NRe(i,r,Jd(r.files));this.threeSceneService.setMapMesh(e,o)}scaleMap(){this.codeMapMouseEventService.unhoverNode(),this.codeMapLabelService.scale(),this.codeMapArrowService.scale(),this.threeSceneService.scaleHeight(),this.codeMapLabelService.clearLabels(),this.setLabels(this.unflattenedNodes)}getNodes(e){const i=this.state.getValue(),r=Gs(i).nodeMetricData,{appSettings:{layoutAlgorithm:o},files:s}=i,a=Jd(s);switch(o){case su.StreetMap:case su.TreeMapStreet:return zA.createStreetLayoutNodes(e,i,r,a);case su.SquarifiedTreeMap:return function jRe(n,t,e,i){const r=ZE(t.files),o=e.find(d=>d.name===t.dynamicSettings.heightMetric)?.maxValue*r,s=e.find(d=>d.name===t.dynamicSettings.areaMetric)?.maxValue*r,a=2*as/o;if(aJ(n)){const d=bo(n),u=[ga.buildRootFolderForFixedFolders(d.data,a,t,i)],h=2*as+cJ(d)*(t.dynamicSettings.margin/iJ),f=h/u[0].width,A=h/u[0].length;return function XRe(n,t,e){n.x0*=e,n.y0*=t,n.width*=e,n.length*=t}(u[0],f,A),[...u,...sJ(d,t,f,A,0,0,a,o,s,i,r)]}const l=lJ(n,t,r,s),c=[];for(const d of l.treeMap)c.push(ga.buildNodeFrom(d,a,o,t,i));return c}(e,i,r,a);default:return[]}}sortNodes(e){return e.filter(i=>i.length>0&&i.width>0).sort((i,r)=>r.height-i.height)}getNodesMatchingColorSelector(e){const i=this.state.getValue().dynamicSettings;this.nodesByColor={positive:[],negative:[],neutral:[]};for(const r of e)if(r.isLeaf){const o=r.attributes[i.colorMetric];"unary"===i.colorMetric?this.nodesByColor.positive.push(r):null!==o&&(oc.isLeaf).slice(0,s);this.setBuildingLabel(l,a)}}}setArrows(e){this.codeMapArrowService.clearArrows(),this.codeMapArrowService.addEdgeMapBasedOnNodes(e),this.codeMapArrowService.addEdgePreview()}static{this.\u0275fac=function(i){return new(i||n)(ge(Xt),ge(jr),ge(Pc),ge(OY),ge(d4e),ge(RY),ge(Bw))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),kT=(()=>{class n{constructor(e,i){this.store=e,this.codeMapRenderService=i}createNodeObservable(){return xh([this.store.select(JZ),this.store.select(Tm),this.createTopLevelNodeObservable()]).pipe(Ge(([o,s,a])=>o??s??a))}createTopLevelNodeObservable(){return xh([this.store.select(Bc),this.store.select(tc)]).pipe(Vi(([e])=>!!e.unifiedMapNode),Ge(([e])=>this.findTopLevelNode(e)))}findTopLevelNode(e){const i=this.codeMapRenderService.getNodes(e.unifiedMapNode),r=this.codeMapRenderService.sortNodes(i);return r.reduce((o,s)=>o.attributes.unary>s.attributes.unary?o:s,r[0])}static{this.\u0275fac=function(i){return new(i||n)(ge(Xt),ge(mJ))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),pJ=(()=>{class n{constructor(e,i){this.store=e,this.nodeSelectionService=i,this.attributeType="nodes",this.isNodeALeaf=r=>{if(r)return this.isNode(r)?r.isLeaf:Ro(r)}}ngOnInit(){this.isNodeALeaf$=this.nodeSelectionService.createNodeObservable().pipe(Ge(e=>this.isNodeALeaf(e))),this.attributeType$=this.store.select(((n,t)=>Zt(hT,NL,(e,i)=>"relative"===i[n][e[t]]?"x\u0342":"\u03a3"))(this.attributeType,this.metricFor))}isNode(e){return"isLeaf"in e}static{this.\u0275fac=function(i){return new(i||n)($(Xt),$(kT))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-metric-chooser-type"]],inputs:{metricFor:"metricFor",attributeType:"attributeType"},decls:4,vars:6,consts:[[3,"hidden"]],template:function(i,r){1&i&&(P(0,"span",0),$e(1,"async"),we(2),$e(3,"async"),H()),2&i&&(pe("hidden",rt(1,2,r.isNodeALeaf$)),U(2),cn(" ",rt(3,4,r.attributeType$),"\n"))},dependencies:[Yn],encapsulation:2})}}return n})();const h4e=["*"];let AJ=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-rounded-box"]],inputs:{backgroundColor:"backgroundColor"},ngContentSelectors:h4e,decls:3,vars:2,consts:[[1,"metric-value"],[1,"rounded-box"]],template:function(i,r){1&i&&($r(),P(0,"div",0)(1,"div",1),Gn(2),H()()),2&i&&(U(),Hi("background-color",r.backgroundColor))},styles:[".metric-value[_ngcontent-%COMP%]{height:25px}.metric-value[_ngcontent-%COMP%] .rounded-box[_ngcontent-%COMP%]{background-color:#e6e6e6;border-radius:2px;padding:2px 5px;display:inline-block}"]})}}return n})();function f4e(n,t){if(1&n&&(P(0,"cc-rounded-box",1),$e(1,"async"),we(2),$e(3,"async"),H()),2&n){const e=He(),i=He();pe("backgroundColor",i.calculateBackgroundColor(e.deltas[rt(1,2,i.primaryMetricNames$)[i.metricFor]])),U(2),cn(" \u0394",e.deltas[rt(3,4,i.primaryMetricNames$)[i.metricFor]]," ")}}function m4e(n,t){if(1&n&&(P(0,"cc-rounded-box"),xe(1,"cc-metric-chooser-type",0),P(2,"span"),we(3),$e(4,"async"),H()(),At(5,f4e,4,6,"cc-rounded-box",1)),2&n){const e=t,i=He();U(),pe("metricFor",i.metricFor),U(2),Mr(e.attributes[rt(4,3,i.primaryMetricNames$)[i.metricFor]]),U(2),It(5,e.deltas?5:-1)}}let p4e=(()=>{class n{constructor(e,i){this.nodeSelectionService=e,this.store=i,this.node$=this.nodeSelectionService.createNodeObservable(),this.primaryMetricNames$=this.store.select(hT)}calculateBackgroundColor(e){return"heightMetric"===this.metricFor&&e>0?"#b1d8a8":e<0?"#ffcccc":"#e6e6e6"}static{this.\u0275fac=function(i){return new(i||n)($(kT),$(Xt))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-metric-chooser-value"]],inputs:{metricFor:"metricFor"},decls:2,vars:3,consts:[[3,"metricFor"],[3,"backgroundColor"]],template:function(i,r){if(1&i&&(At(0,m4e,6,5),$e(1,"async")),2&i){let o;It(0,(o=rt(1,1,r.node$))?0:-1,o)}},dependencies:[pJ,AJ,Yn],styles:["[_nghost-%COMP%]{display:flex;gap:2px}"]})}}return n})(),A4e=(()=>{class n{transform(e,i){const r=i.toLocaleLowerCase();return e.filter(o=>{let s=o.name;return("complexity"===o.name||"sonar_complexity"===o.name)&&(s+=" (formerly mcc)"),s.toLocaleLowerCase().includes(r)})}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=dr({name:"filterMetricDataBySearchTerm",type:n,pure:!0})}}return n})();const g4e=["searchTermInput"],_4e=["matSelect"],b4e=["*"];function v4e(n,t){1&n&&xe(0,"i"),2&n&&nl("fa "+He(2).icon)}function y4e(n,t){1&n&&we(0," (formerly mcc) ")}function w4e(n,t){1&n&&(P(0,"span",11),we(1),H()),2&n&&(U(),cn(" ",t," "))}function x4e(n,t){if(1&n&&(P(0,"mat-option",9),$e(1,"attributeDescriptorTooltip"),we(2),At(3,y4e,1,0),P(4,"span",10),we(5),H(),xe(6,"br"),At(7,w4e,2,1,"span",11),H()),2&n){let e;const i=t.$implicit,r=He();pe("value",i.name)("title",Mo(1,6,r[i.name],i.name)),U(2),cn(" ",i.name," "),U(),It(3,"complexity"==i.name||"sonar_complexity"==i.name?3:-1),U(2),cn("(",i.maxValue,")"),U(2),It(7,(e=null==r[i.name]?null:r[i.name].description)?7:-1,e)}}function C4e(n,t){if(1&n){const e=Pn();P(0,"mat-select",3,0),We("selectionChange",function(r){return Vt(e),Ot(He().handleMetricChanged(r.value))})("openedChange",function(r){return Vt(e),Ot(He().handleOpenedChanged(r))}),P(2,"mat-select-trigger"),At(3,v4e,1,2,"i",4),we(4),H(),P(5,"mat-form-field",5),xe(6,"i",6),P(7,"input",7,1),td("ngModelChange",function(r){Vt(e);const o=He();return jd(o.searchTerm,r)||(o.searchTerm=r),Ot(r)}),We("keydown",function(r){return Vt(e),Ot(He().handleKeyDown(r))}),H()(),P(9,"div",8),Rr(10,x4e,8,9,"mat-option",9,Hr),$e(12,"async"),$e(13,"filterMetricDataBySearchTerm"),H()()}if(2&n){const e=He();pe("value",e.selectedMetricName)("disabled",e.isDisabled),U(3),pe("ngIf",e.icon),U(),Mr(e.selectedMetricName),U(3),pe("placeholder",e.searchPlaceholder),ed("ngModel",e.searchTerm),U(3),Lr(Mo(13,8,rt(12,6,e.metricData$),e.searchTerm))}}function M4e(n,t){1&n&&xe(0,"cc-metric-chooser-value",12),2&n&&pe("metricFor",He(2).metricFor)}function E4e(n,t){1&n&&Gn(0)}function S4e(n,t){1&n&&At(0,M4e,1,1,"cc-metric-chooser-value",12)(1,E4e,1,0),2&n&&It(0,He().metricFor?0:1)}let $w=(()=>{class n{constructor(e){this.store=e,this.type="node",this.isDisabled=!1,this.searchTerm="",this.attributeDescriptors$=this.store.select(fT),this.hideMetricSum=!1}ngOnInit(){this.metricData$=this.store.select(Gs).pipe(Ge(e=>"node"===this.type?e.nodeMetricData:e.edgeMetricData))}ngAfterViewInit(){this.matOptions.changes.subscribe(e=>{this.setFirstItemActiveOnSearch(e)})}setFirstItemActiveOnSearch(e){const i=e.filter(s=>s._selected),r=e.filter(s=>s.value.toLowerCase().startsWith(this.searchTerm.toLowerCase())).sort((s,a)=>s.value.localeCompare(a.value)),o=this.searchTerm.trim().length>0;setTimeout(()=>{o&&0===i.length&&0===r.length?this.matSelect._keyManager.setActiveItem(0):o&&0===i.length&&r.length>0&&this.matSelect._keyManager.setActiveItem(r[0]);try{document.querySelector(".mdc-list-item--selected").scrollIntoView()}catch{}})}handleOpenedChanged(e){e?(this.searchTermInput.nativeElement.focus(),this.hideMetricSum=!0):(this.searchTerm="",this.hideMetricSum=!1)}handleKeyDown(e){const{key:i}=e;"ArrowDown"!==i&&"ArrowUp"!==i&&"Enter"!==i&&"Escape"!==i&&e.stopPropagation()}static{this.\u0275fac=function(i){return new(i||n)($(Xt))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-metric-chooser"]],viewQuery:function(i,r){if(1&i&&(ei(g4e,5),ei(_4e,5),ei(ru,5)),2&i){let o;un(o=hn())&&(r.searchTermInput=o.first),un(o=hn())&&(r.matSelect=o.first),un(o=hn())&&(r.matOptions=o)}},hostVars:2,hostBindings:function(i,r){2&i&&Qn("hide-metric-value",r.hideMetricSum)},inputs:{metricFor:"metricFor",icon:"icon",selectedMetricName:"selectedMetricName",searchPlaceholder:"searchPlaceholder",handleMetricChanged:"handleMetricChanged",type:"type",isDisabled:"isDisabled"},ngContentSelectors:b4e,decls:3,vars:4,consts:[["matSelect",""],["searchTermInput",""],["panelClass","cc-metric-chooser",3,"value","disabled"],["panelClass","cc-metric-chooser",3,"selectionChange","openedChange","value","disabled"],[3,"class",4,"ngIf"],[1,"cc-metric-chooser-search-field"],["matPrefix","",1,"fa","fa-search","search-icon"],["matInput","","type","text",3,"ngModelChange","keydown","placeholder","ngModel"],[1,"cc-metric-chooser-option-container"],[3,"value","title"],[1,"metric-max-value"],[1,"metric-subtitle"],[3,"metricFor"]],template:function(i,r){if(1&i&&($r(),At(0,C4e,14,11,"mat-select",2),$e(1,"async"),At(2,S4e,2,1)),2&i){let o;It(0,(o=rt(1,2,r.attributeDescriptors$))?0:-1,o),U(2),It(2,r.hideMetricSum?-1:2)}},dependencies:[Hp,yd,CZ,Bm,YZ,ru,km,Yf,L0,N0,p4e,Yn,pT,A4e],styles:["[_nghost-%COMP%]{display:flex;width:100%}[_nghost-%COMP%]:hover cc-metric-chooser-value[_ngcontent-%COMP%]{display:none}i.fa[_ngcontent-%COMP%]{padding-right:8px}cc-metric-chooser-value[_ngcontent-%COMP%]{position:absolute;top:10%;right:28px}.mat-mdc-select-placeholder[_ngcontent-%COMP%]{color:#000!important}"]})}}return n})(),T4e=(()=>{class n{constructor(e){this.store=e,this.areaMetric$=this.store.select(rb)}handleAreaMetricChanged(e){this.store.dispatch(Ah({value:e}))}static{this.\u0275fac=function(i){return new(i||n)($(Xt))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-area-metric-chooser"]],decls:2,vars:4,consts:[["icon","fa-arrows-alt","metricFor","areaMetric","searchPlaceholder","Area Metric (highest value)","title","Change area metric",3,"selectedMetricName","handleMetricChanged"]],template:function(i,r){1&i&&(xe(0,"cc-metric-chooser",0),$e(1,"async")),2&i&&pe("selectedMetricName",rt(1,2,r.areaMetric$))("handleMetricChanged",r.handleAreaMetricChanged)},dependencies:[$w,Yn],encapsulation:2})}}return n})();const I4e=Zt(tc,n=>n.margin),F4e=Zt(no,n=>n.enableFloorLabels),D4e=Zt(no,n=>n.invertArea),k4e=["input"],B4e=["label"],P4e=["*"],R4e=new ut("mat-checkbox-default-options",{providedIn:"root",factory:gJ});function gJ(){return{color:"accent",clickAction:"check-indeterminate"}}var _a=function(n){return n[n.Init=0]="Init",n[n.Checked=1]="Checked",n[n.Unchecked=2]="Unchecked",n[n.Indeterminate=3]="Indeterminate",n}(_a||{});const L4e={provide:qs,useExisting:Jn(()=>qA),multi:!0};class O4e{}let N4e=0;const _J=gJ();let qA=(()=>{class n{focus(){this._inputElement.nativeElement.focus()}_createChangeEvent(e){const i=new O4e;return i.source=this,i.checked=e,i}_getAnimationTargetElement(){return this._inputElement?.nativeElement}get inputId(){return`${this.id||this._uniqueId}-input`}constructor(e,i,r,o,s,a){this._elementRef=e,this._changeDetectorRef=i,this._ngZone=r,this._animationMode=s,this._options=a,this._animationClasses={uncheckedToChecked:"mdc-checkbox--anim-unchecked-checked",uncheckedToIndeterminate:"mdc-checkbox--anim-unchecked-indeterminate",checkedToUnchecked:"mdc-checkbox--anim-checked-unchecked",checkedToIndeterminate:"mdc-checkbox--anim-checked-indeterminate",indeterminateToChecked:"mdc-checkbox--anim-indeterminate-checked",indeterminateToUnchecked:"mdc-checkbox--anim-indeterminate-unchecked"},this.ariaLabel="",this.ariaLabelledby=null,this.labelPosition="after",this.name=null,this.change=new Bn,this.indeterminateChange=new Bn,this._onTouched=()=>{},this._currentAnimationClass="",this._currentCheckState=_a.Init,this._controlValueAccessorChangeFn=()=>{},this._validatorChangeFn=()=>{},this._checked=!1,this._disabled=!1,this._indeterminate=!1,this._options=this._options||_J,this.color=this._options.color||_J.color,this.tabIndex=parseInt(o)||0,this.id=this._uniqueId="mat-mdc-checkbox-"+ ++N4e}ngOnChanges(e){e.required&&this._validatorChangeFn()}ngAfterViewInit(){this._syncIndeterminate(this._indeterminate)}get checked(){return this._checked}set checked(e){e!=this.checked&&(this._checked=e,this._changeDetectorRef.markForCheck())}get disabled(){return this._disabled}set disabled(e){e!==this.disabled&&(this._disabled=e,this._changeDetectorRef.markForCheck())}get indeterminate(){return this._indeterminate}set indeterminate(e){const i=e!=this._indeterminate;this._indeterminate=e,i&&(this._transitionCheckState(this._indeterminate?_a.Indeterminate:this.checked?_a.Checked:_a.Unchecked),this.indeterminateChange.emit(this._indeterminate)),this._syncIndeterminate(this._indeterminate)}_isRippleDisabled(){return this.disableRipple||this.disabled}_onLabelTextChange(){this._changeDetectorRef.detectChanges()}writeValue(e){this.checked=!!e}registerOnChange(e){this._controlValueAccessorChangeFn=e}registerOnTouched(e){this._onTouched=e}setDisabledState(e){this.disabled=e}validate(e){return this.required&&!0!==e.value?{required:!0}:null}registerOnValidatorChange(e){this._validatorChangeFn=e}_transitionCheckState(e){let i=this._currentCheckState,r=this._getAnimationTargetElement();if(i!==e&&r&&(this._currentAnimationClass&&r.classList.remove(this._currentAnimationClass),this._currentAnimationClass=this._getAnimationClassForCheckStateTransition(i,e),this._currentCheckState=e,this._currentAnimationClass.length>0)){r.classList.add(this._currentAnimationClass);const o=this._currentAnimationClass;this._ngZone.runOutsideAngular(()=>{setTimeout(()=>{r.classList.remove(o)},1e3)})}}_emitChangeEvent(){this._controlValueAccessorChangeFn(this.checked),this.change.emit(this._createChangeEvent(this.checked)),this._inputElement&&(this._inputElement.nativeElement.checked=this.checked)}toggle(){this.checked=!this.checked,this._controlValueAccessorChangeFn(this.checked)}_handleInputClick(){const e=this._options?.clickAction;this.disabled||"noop"===e?!this.disabled&&"noop"===e&&(this._inputElement.nativeElement.checked=this.checked,this._inputElement.nativeElement.indeterminate=this.indeterminate):(this.indeterminate&&"check"!==e&&Promise.resolve().then(()=>{this._indeterminate=!1,this.indeterminateChange.emit(this._indeterminate)}),this._checked=!this._checked,this._transitionCheckState(this._checked?_a.Checked:_a.Unchecked),this._emitChangeEvent())}_onInteractionEvent(e){e.stopPropagation()}_onBlur(){Promise.resolve().then(()=>{this._onTouched(),this._changeDetectorRef.markForCheck()})}_getAnimationClassForCheckStateTransition(e,i){if("NoopAnimations"===this._animationMode)return"";switch(e){case _a.Init:if(i===_a.Checked)return this._animationClasses.uncheckedToChecked;if(i==_a.Indeterminate)return this._checked?this._animationClasses.checkedToIndeterminate:this._animationClasses.uncheckedToIndeterminate;break;case _a.Unchecked:return i===_a.Checked?this._animationClasses.uncheckedToChecked:this._animationClasses.uncheckedToIndeterminate;case _a.Checked:return i===_a.Unchecked?this._animationClasses.checkedToUnchecked:this._animationClasses.checkedToIndeterminate;case _a.Indeterminate:return i===_a.Checked?this._animationClasses.indeterminateToChecked:this._animationClasses.indeterminateToUnchecked}return""}_syncIndeterminate(e){const i=this._inputElement;i&&(i.nativeElement.indeterminate=e)}_onInputClick(){this._handleInputClick()}_onTouchTargetClick(){this._handleInputClick(),this.disabled||this._inputElement.nativeElement.focus()}_preventBubblingFromLabel(e){e.target&&this._labelElement.nativeElement.contains(e.target)&&e.stopPropagation()}static{this.\u0275fac=function(i){return new(i||n)($(Vn),$(_o),$(kn),Ll("tabindex"),$(ps,8),$(R4e,8))}}static{this.\u0275cmp=vt({type:n,selectors:[["mat-checkbox"]],viewQuery:function(i,r){if(1&i&&(ei(k4e,5),ei(B4e,5),ei(Mh,5)),2&i){let o;un(o=hn())&&(r._inputElement=o.first),un(o=hn())&&(r._labelElement=o.first),un(o=hn())&&(r.ripple=o.first)}},hostAttrs:[1,"mat-mdc-checkbox"],hostVars:14,hostBindings:function(i,r){2&i&&($d("id",r.id),fi("tabindex",null)("aria-label",null)("aria-labelledby",null),nl(r.color?"mat-"+r.color:"mat-accent"),Qn("_mat-animation-noopable","NoopAnimations"===r._animationMode)("mdc-checkbox--disabled",r.disabled)("mat-mdc-checkbox-disabled",r.disabled)("mat-mdc-checkbox-checked",r.checked))},inputs:{ariaLabel:[Ct.None,"aria-label","ariaLabel"],ariaLabelledby:[Ct.None,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[Ct.None,"aria-describedby","ariaDescribedby"],id:"id",required:[Ct.HasDecoratorInputTransform,"required","required",Zn],labelPosition:"labelPosition",name:"name",value:"value",disableRipple:[Ct.HasDecoratorInputTransform,"disableRipple","disableRipple",Zn],tabIndex:[Ct.HasDecoratorInputTransform,"tabIndex","tabIndex",e=>null==e?void 0:ha(e)],color:"color",checked:[Ct.HasDecoratorInputTransform,"checked","checked",Zn],disabled:[Ct.HasDecoratorInputTransform,"disabled","disabled",Zn],indeterminate:[Ct.HasDecoratorInputTransform,"indeterminate","indeterminate",Zn]},outputs:{change:"change",indeterminateChange:"indeterminateChange"},exportAs:["matCheckbox"],standalone:!0,features:[ui([L4e,{provide:_s,useExisting:n,multi:!0}]),es,wr,Or],ngContentSelectors:P4e,decls:15,vars:19,consts:[["checkbox",""],["input",""],["label",""],["mat-internal-form-field","",3,"click","labelPosition"],[1,"mdc-checkbox"],[1,"mat-mdc-checkbox-touch-target",3,"click"],["type","checkbox",1,"mdc-checkbox__native-control",3,"blur","click","change","checked","indeterminate","disabled","id","required","tabIndex"],[1,"mdc-checkbox__ripple"],[1,"mdc-checkbox__background"],["focusable","false","viewBox","0 0 24 24","aria-hidden","true",1,"mdc-checkbox__checkmark"],["fill","none","d","M1.73,12.91 8.1,19.28 22.79,4.59",1,"mdc-checkbox__checkmark-path"],[1,"mdc-checkbox__mixedmark"],["mat-ripple","",1,"mat-mdc-checkbox-ripple","mat-mdc-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mdc-label",3,"for"]],template:function(i,r){if(1&i){const o=Pn();$r(),P(0,"div",3),We("click",function(a){return Vt(o),Ot(r._preventBubblingFromLabel(a))}),P(1,"div",4,0)(3,"div",5),We("click",function(){return Vt(o),Ot(r._onTouchTargetClick())}),H(),P(4,"input",6,1),We("blur",function(){return Vt(o),Ot(r._onBlur())})("click",function(){return Vt(o),Ot(r._onInputClick())})("change",function(a){return Vt(o),Ot(r._onInteractionEvent(a))}),H(),xe(6,"div",7),P(7,"div",8),kl(),P(8,"svg",9),xe(9,"path",10),H(),Hg(),xe(10,"div",11),H(),xe(11,"div",12),H(),P(12,"label",13,2),Gn(14),H()()}if(2&i){const o=Po(2);pe("labelPosition",r.labelPosition),U(4),Qn("mdc-checkbox--selected",r.checked),pe("checked",r.checked)("indeterminate",r.indeterminate)("disabled",r.disabled)("id",r.inputId)("required",r.required)("tabIndex",r.disabled?-1:r.tabIndex),fi("aria-label",r.ariaLabel||null)("aria-labelledby",r.ariaLabelledby)("aria-describedby",r.ariaDescribedby)("aria-checked",r.indeterminate?"mixed":null)("name",r.name)("value",r.value),U(7),pe("matRippleTrigger",o)("matRippleDisabled",r.disableRipple||r.disabled)("matRippleCentered",!0),U(),pe("for",r.inputId)}},dependencies:[Mh,xW],styles:['.mdc-touch-target-wrapper{display:inline}@keyframes mdc-checkbox-unchecked-checked-checkmark-path{0%,50%{stroke-dashoffset:29.7833385}50%{animation-timing-function:cubic-bezier(0, 0, 0.2, 1)}100%{stroke-dashoffset:0}}@keyframes mdc-checkbox-unchecked-indeterminate-mixedmark{0%,68.2%{transform:scaleX(0)}68.2%{animation-timing-function:cubic-bezier(0, 0, 0, 1)}100%{transform:scaleX(1)}}@keyframes mdc-checkbox-checked-unchecked-checkmark-path{from{animation-timing-function:cubic-bezier(0.4, 0, 1, 1);opacity:1;stroke-dashoffset:0}to{opacity:0;stroke-dashoffset:-29.7833385}}@keyframes mdc-checkbox-checked-indeterminate-checkmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(45deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-checked-checkmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(45deg);opacity:0}to{transform:rotate(360deg);opacity:1}}@keyframes mdc-checkbox-checked-indeterminate-mixedmark{from{animation-timing-function:mdc-animation-deceleration-curve-timing-function;transform:rotate(-45deg);opacity:0}to{transform:rotate(0deg);opacity:1}}@keyframes mdc-checkbox-indeterminate-checked-mixedmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(315deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-unchecked-mixedmark{0%{animation-timing-function:linear;transform:scaleX(1);opacity:1}32.8%,100%{transform:scaleX(0);opacity:0}}.mdc-checkbox{display:inline-block;position:relative;flex:0 0 18px;box-sizing:content-box;width:18px;height:18px;line-height:0;white-space:nowrap;cursor:pointer;vertical-align:bottom}.mdc-checkbox[hidden]{display:none}.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:100%;width:100%}@media screen and (forced-colors: active){.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring{border-color:CanvasText}}.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring::after,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring::after{content:"";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring::after,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring::after{border-color:CanvasText}}@media all and (-ms-high-contrast: none){.mdc-checkbox .mdc-checkbox__focus-ring{display:none}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mdc-checkbox__mixedmark{margin:0 1px}}.mdc-checkbox--disabled{cursor:default;pointer-events:none}.mdc-checkbox__background{display:inline-flex;position:absolute;align-items:center;justify-content:center;box-sizing:border-box;width:18px;height:18px;border:2px solid currentColor;border-radius:2px;background-color:rgba(0,0,0,0);pointer-events:none;will-change:background-color,border-color;transition:background-color 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1),border-color 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox__checkmark{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;opacity:0;transition:opacity 180ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox--upgraded .mdc-checkbox__checkmark{opacity:1}.mdc-checkbox__checkmark-path{transition:stroke-dashoffset 180ms 0ms cubic-bezier(0.4, 0, 0.6, 1);stroke:currentColor;stroke-width:3.12px;stroke-dashoffset:29.7833385;stroke-dasharray:29.7833385}.mdc-checkbox__mixedmark{width:100%;height:0;transform:scaleX(0) rotate(0deg);border-width:1px;border-style:solid;opacity:0;transition:opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__background,.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__background,.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__background,.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__background{animation-duration:180ms;animation-timing-function:linear}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-unchecked-checked-checkmark-path 180ms linear 0s;transition:none}.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-unchecked-indeterminate-mixedmark 90ms linear 0s;transition:none}.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-checked-unchecked-checkmark-path 90ms linear 0s;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__checkmark{animation:mdc-checkbox-checked-indeterminate-checkmark 90ms linear 0s;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-checked-indeterminate-mixedmark 90ms linear 0s;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__checkmark{animation:mdc-checkbox-indeterminate-checked-checkmark 500ms linear 0s;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-checked-mixedmark 500ms linear 0s;transition:none}.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-unchecked-mixedmark 300ms linear 0s;transition:none}.mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background{transition:border-color 90ms 0ms cubic-bezier(0, 0, 0.2, 1),background-color 90ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__checkmark-path,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__checkmark-path,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__checkmark-path{stroke-dashoffset:0}.mdc-checkbox__native-control{position:absolute;margin:0;padding:0;opacity:0;cursor:inherit}.mdc-checkbox__native-control:disabled{cursor:default;pointer-events:none}.mdc-checkbox--touch{margin:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2)}.mdc-checkbox--touch .mdc-checkbox__native-control{top:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);right:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);left:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);width:var(--mdc-checkbox-state-layer-size);height:var(--mdc-checkbox-state-layer-size)}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__checkmark{transition:opacity 180ms 0ms cubic-bezier(0, 0, 0.2, 1),transform 180ms 0ms cubic-bezier(0, 0, 0.2, 1);opacity:1}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__mixedmark{transform:scaleX(1) rotate(-45deg)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__checkmark,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__checkmark{transform:rotate(45deg);opacity:0;transition:opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__mixedmark,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__mixedmark{transform:scaleX(1) rotate(0deg);opacity:1}.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__background,.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__checkmark,.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__checkmark-path,.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__mixedmark{transition:none}.mdc-checkbox{padding:calc((var(--mdc-checkbox-state-layer-size) - 18px) / 2);margin:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2)}.mdc-checkbox .mdc-checkbox__native-control[disabled]:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-disabled-unselected-icon-color);background-color:transparent}.mdc-checkbox .mdc-checkbox__native-control[disabled]:checked~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control[disabled]:indeterminate~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control[data-indeterminate=true][disabled]~.mdc-checkbox__background{border-color:transparent;background-color:var(--mdc-checkbox-disabled-selected-icon-color)}.mdc-checkbox .mdc-checkbox__native-control:enabled~.mdc-checkbox__background .mdc-checkbox__checkmark{color:var(--mdc-checkbox-selected-checkmark-color)}.mdc-checkbox .mdc-checkbox__native-control:enabled~.mdc-checkbox__background .mdc-checkbox__mixedmark{border-color:var(--mdc-checkbox-selected-checkmark-color)}.mdc-checkbox .mdc-checkbox__native-control:disabled~.mdc-checkbox__background .mdc-checkbox__checkmark{color:var(--mdc-checkbox-disabled-selected-checkmark-color)}.mdc-checkbox .mdc-checkbox__native-control:disabled~.mdc-checkbox__background .mdc-checkbox__mixedmark{border-color:var(--mdc-checkbox-disabled-selected-checkmark-color)}.mdc-checkbox .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-icon-color);background-color:transparent}.mdc-checkbox .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-icon-color);background-color:var(--mdc-checkbox-selected-icon-color)}@keyframes mdc-checkbox-fade-in-background-8A000000FFF4433600000000FFF44336{0%{border-color:var(--mdc-checkbox-unselected-icon-color);background-color:transparent}50%{border-color:var(--mdc-checkbox-selected-icon-color);background-color:var(--mdc-checkbox-selected-icon-color)}}@keyframes mdc-checkbox-fade-out-background-8A000000FFF4433600000000FFF44336{0%,80%{border-color:var(--mdc-checkbox-selected-icon-color);background-color:var(--mdc-checkbox-selected-icon-color)}100%{border-color:var(--mdc-checkbox-unselected-icon-color);background-color:transparent}}.mdc-checkbox.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-in-background-8A000000FFF4433600000000FFF44336}.mdc-checkbox.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-out-background-8A000000FFF4433600000000FFF44336}.mdc-checkbox:hover .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-hover-icon-color);background-color:transparent}.mdc-checkbox:hover .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox:hover .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mdc-checkbox:hover .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-hover-icon-color);background-color:var(--mdc-checkbox-selected-hover-icon-color)}@keyframes mdc-checkbox-fade-in-background-FF212121FFF4433600000000FFF44336{0%{border-color:var(--mdc-checkbox-unselected-hover-icon-color);background-color:transparent}50%{border-color:var(--mdc-checkbox-selected-hover-icon-color);background-color:var(--mdc-checkbox-selected-hover-icon-color)}}@keyframes mdc-checkbox-fade-out-background-FF212121FFF4433600000000FFF44336{0%,80%{border-color:var(--mdc-checkbox-selected-hover-icon-color);background-color:var(--mdc-checkbox-selected-hover-icon-color)}100%{border-color:var(--mdc-checkbox-unselected-hover-icon-color);background-color:transparent}}.mdc-checkbox:hover.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox:hover.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-in-background-FF212121FFF4433600000000FFF44336}.mdc-checkbox:hover.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox:hover.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-out-background-FF212121FFF4433600000000FFF44336}.mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-pressed-icon-color);background-color:transparent}.mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-pressed-icon-color);background-color:var(--mdc-checkbox-selected-pressed-icon-color)}@keyframes mdc-checkbox-fade-in-background-8A000000FFF4433600000000FFF44336{0%{border-color:var(--mdc-checkbox-unselected-pressed-icon-color);background-color:transparent}50%{border-color:var(--mdc-checkbox-selected-pressed-icon-color);background-color:var(--mdc-checkbox-selected-pressed-icon-color)}}@keyframes mdc-checkbox-fade-out-background-8A000000FFF4433600000000FFF44336{0%,80%{border-color:var(--mdc-checkbox-selected-pressed-icon-color);background-color:var(--mdc-checkbox-selected-pressed-icon-color)}100%{border-color:var(--mdc-checkbox-unselected-pressed-icon-color);background-color:transparent}}.mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-in-background-8A000000FFF4433600000000FFF44336}.mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-out-background-8A000000FFF4433600000000FFF44336}.mdc-checkbox .mdc-checkbox__background{top:calc((var(--mdc-checkbox-state-layer-size) - 18px) / 2);left:calc((var(--mdc-checkbox-state-layer-size) - 18px) / 2)}.mdc-checkbox .mdc-checkbox__native-control{top:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);right:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);left:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);width:var(--mdc-checkbox-state-layer-size);height:var(--mdc-checkbox-state-layer-size)}.mdc-checkbox .mdc-checkbox__native-control:enabled:focus:focus:not(:checked):not(:indeterminate)~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-focus-icon-color)}.mdc-checkbox .mdc-checkbox__native-control:enabled:focus:checked~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control:enabled:focus:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-focus-icon-color);background-color:var(--mdc-checkbox-selected-focus-icon-color)}.mdc-checkbox:hover .mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-hover-state-layer-opacity);background-color:var(--mdc-checkbox-unselected-hover-state-layer-color)}.mdc-checkbox:hover .mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-hover-state-layer-color)}.mdc-checkbox .mdc-checkbox__native-control:focus~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-focus-state-layer-opacity);background-color:var(--mdc-checkbox-unselected-focus-state-layer-color)}.mdc-checkbox .mdc-checkbox__native-control:focus~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-focus-state-layer-color)}.mdc-checkbox:active .mdc-checkbox__native-control~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-pressed-state-layer-opacity);background-color:var(--mdc-checkbox-unselected-pressed-state-layer-color)}.mdc-checkbox:active .mdc-checkbox__native-control~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-pressed-state-layer-color)}.mdc-checkbox:hover .mdc-checkbox__native-control:checked~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-hover-state-layer-opacity);background-color:var(--mdc-checkbox-selected-hover-state-layer-color)}.mdc-checkbox:hover .mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-hover-state-layer-color)}.mdc-checkbox .mdc-checkbox__native-control:focus:checked~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-focus-state-layer-opacity);background-color:var(--mdc-checkbox-selected-focus-state-layer-color)}.mdc-checkbox .mdc-checkbox__native-control:focus:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-focus-state-layer-color)}.mdc-checkbox:active .mdc-checkbox__native-control:checked~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-pressed-state-layer-opacity);background-color:var(--mdc-checkbox-selected-pressed-state-layer-color)}.mdc-checkbox:active .mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-pressed-state-layer-color)}.mat-mdc-checkbox{display:inline-block;position:relative;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-checkbox .mdc-checkbox__background{-webkit-print-color-adjust:exact;color-adjust:exact}.mat-mdc-checkbox._mat-animation-noopable *,.mat-mdc-checkbox._mat-animation-noopable *::before{transition:none !important;animation:none !important}.mat-mdc-checkbox label{cursor:pointer}.mat-mdc-checkbox.mat-mdc-checkbox-disabled label{cursor:default;color:var(--mat-checkbox-disabled-label-color)}.mat-mdc-checkbox label:empty{display:none}.cdk-high-contrast-active .mat-mdc-checkbox.mat-mdc-checkbox-disabled{opacity:.5}.cdk-high-contrast-active .mat-mdc-checkbox .mdc-checkbox__checkmark{--mdc-checkbox-selected-checkmark-color: CanvasText;--mdc-checkbox-disabled-selected-checkmark-color: CanvasText}.mat-mdc-checkbox .mdc-checkbox__ripple{opacity:0}.mat-mdc-checkbox-ripple,.mdc-checkbox__ripple{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:50%;pointer-events:none}.mat-mdc-checkbox-ripple:not(:empty),.mdc-checkbox__ripple:not(:empty){transform:translateZ(0)}.mat-mdc-checkbox-ripple .mat-ripple-element{opacity:.1}.mat-mdc-checkbox-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-checkbox-touch-target-display)}.mat-mdc-checkbox-ripple::before{border-radius:50%}.mdc-checkbox__native-control:focus~.mat-mdc-focus-indicator::before{content:""}'],encapsulation:2,changeDetection:0})}}return n})(),bJ=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[qA,hr,hr]})}}return n})();const LO=(n,t,e)=>{const i=Number.parseInt(n.target.value);return ie?e:i},V4e=["knob"],Q4e=["valueIndicatorContainer"];function z4e(n,t){if(1&n&&(P(0,"div",2,1)(2,"div",5)(3,"span",6),we(4),H()()()),2&n){const e=He();U(4),Mr(e.valueIndicatorText)}}const q4e=["trackActive"],G4e=["*"];function W4e(n,t){if(1&n&&xe(0,"div"),2&n){const e=t.$implicit,i=t.$index,r=He(3);nl(0===e?"mdc-slider__tick-mark--active":"mdc-slider__tick-mark--inactive"),Hi("transform",r._calcTickMarkTransform(i))}}function $4e(n,t){1&n&&Rr(0,W4e,1,4,"div",8,Hr),2&n&&Lr(He(2)._tickMarks)}function j4e(n,t){if(1&n&&(P(0,"div",6,1),At(2,$4e,2,0),H()),2&n){const e=He();U(2),It(2,e._cachedWidth?2:-1)}}function X4e(n,t){if(1&n&&xe(0,"mat-slider-visual-thumb",7),2&n){const e=He();pe("discrete",e.discrete)("thumbPosition",1)("valueIndicatorText",e.startValueIndicatorText)}}var hi=function(n){return n[n.START=1]="START",n[n.END=2]="END",n}(hi||{}),fb=function(n){return n[n.ACTIVE=0]="ACTIVE",n[n.INACTIVE=1]="INACTIVE",n}(fb||{});const BT=new ut("_MatSlider"),vJ=new ut("_MatSliderThumb"),yJ=new ut("_MatSliderRangeThumb"),wJ=new ut("_MatSliderVisualThumb");let K4e=(()=>{class n{constructor(e,i,r,o){this._cdr=e,this._ngZone=i,this._slider=o,this._isHovered=!1,this._isActive=!1,this._isValueIndicatorVisible=!1,this._platform=qt(eo),this._onPointerMove=s=>{if(this._sliderInput._isFocused)return;const a=this._hostElement.getBoundingClientRect(),l=this._slider._isCursorOnSliderThumb(s,a);this._isHovered=l,l?this._showHoverRipple():this._hideRipple(this._hoverRippleRef)},this._onMouseLeave=()=>{this._isHovered=!1,this._hideRipple(this._hoverRippleRef)},this._onFocus=()=>{this._hideRipple(this._hoverRippleRef),this._showFocusRipple(),this._hostElement.classList.add("mdc-slider__thumb--focused")},this._onBlur=()=>{this._isActive||this._hideRipple(this._focusRippleRef),this._isHovered&&this._showHoverRipple(),this._hostElement.classList.remove("mdc-slider__thumb--focused")},this._onDragStart=s=>{0===s.button&&(this._isActive=!0,this._showActiveRipple())},this._onDragEnd=()=>{this._isActive=!1,this._hideRipple(this._activeRippleRef),this._sliderInput._isFocused||this._hideRipple(this._focusRippleRef),this._platform.SAFARI&&this._showHoverRipple()},this._hostElement=r.nativeElement}ngAfterViewInit(){this._ripple.radius=24,this._sliderInput=this._slider._getInput(this.thumbPosition),this._sliderInputEl=this._sliderInput._hostElement;const e=this._sliderInputEl;this._ngZone.runOutsideAngular(()=>{e.addEventListener("pointermove",this._onPointerMove),e.addEventListener("pointerdown",this._onDragStart),e.addEventListener("pointerup",this._onDragEnd),e.addEventListener("pointerleave",this._onMouseLeave),e.addEventListener("focus",this._onFocus),e.addEventListener("blur",this._onBlur)})}ngOnDestroy(){const e=this._sliderInputEl;e&&(e.removeEventListener("pointermove",this._onPointerMove),e.removeEventListener("pointerdown",this._onDragStart),e.removeEventListener("pointerup",this._onDragEnd),e.removeEventListener("pointerleave",this._onMouseLeave),e.removeEventListener("focus",this._onFocus),e.removeEventListener("blur",this._onBlur))}_showHoverRipple(){this._isShowingRipple(this._hoverRippleRef)||(this._hoverRippleRef=this._showRipple({enterDuration:0,exitDuration:0}),this._hoverRippleRef?.element.classList.add("mat-mdc-slider-hover-ripple"))}_showFocusRipple(){this._isShowingRipple(this._focusRippleRef)||(this._focusRippleRef=this._showRipple({enterDuration:0,exitDuration:0},!0),this._focusRippleRef?.element.classList.add("mat-mdc-slider-focus-ripple"))}_showActiveRipple(){this._isShowingRipple(this._activeRippleRef)||(this._activeRippleRef=this._showRipple({enterDuration:225,exitDuration:400}),this._activeRippleRef?.element.classList.add("mat-mdc-slider-active-ripple"))}_isShowingRipple(e){return e?.state===sl.FADING_IN||e?.state===sl.VISIBLE}_showRipple(e,i){if(!this._slider.disabled&&(this._showValueIndicator(),this._slider._isRange&&this._slider._getThumb(this.thumbPosition===hi.START?hi.END:hi.START)._showValueIndicator(),!this._slider._globalRippleOptions?.disabled||i))return this._ripple.launch({animation:this._slider._noopAnimations?{enterDuration:0,exitDuration:0}:e,centered:!0,persistent:!0})}_hideRipple(e){if(e?.fadeOut(),this._isShowingAnyRipple())return;this._slider._isRange||this._hideValueIndicator();const i=this._getSibling();i._isShowingAnyRipple()||(this._hideValueIndicator(),i._hideValueIndicator())}_showValueIndicator(){this._hostElement.classList.add("mdc-slider__thumb--with-indicator")}_hideValueIndicator(){this._hostElement.classList.remove("mdc-slider__thumb--with-indicator")}_getSibling(){return this._slider._getThumb(this.thumbPosition===hi.START?hi.END:hi.START)}_getValueIndicatorContainer(){return this._valueIndicatorContainer?.nativeElement}_getKnob(){return this._knob.nativeElement}_isShowingAnyRipple(){return this._isShowingRipple(this._hoverRippleRef)||this._isShowingRipple(this._focusRippleRef)||this._isShowingRipple(this._activeRippleRef)}static{this.\u0275fac=function(i){return new(i||n)($(_o),$(kn),$(Vn),$(BT))}}static{this.\u0275cmp=vt({type:n,selectors:[["mat-slider-visual-thumb"]],viewQuery:function(i,r){if(1&i&&(ei(Mh,5),ei(V4e,5),ei(Q4e,5)),2&i){let o;un(o=hn())&&(r._ripple=o.first),un(o=hn())&&(r._knob=o.first),un(o=hn())&&(r._valueIndicatorContainer=o.first)}},hostAttrs:[1,"mdc-slider__thumb","mat-mdc-slider-visual-thumb"],inputs:{discrete:"discrete",thumbPosition:"thumbPosition",valueIndicatorText:"valueIndicatorText"},standalone:!0,features:[ui([{provide:wJ,useExisting:n}]),Or],decls:4,vars:2,consts:[["knob",""],["valueIndicatorContainer",""],[1,"mdc-slider__value-indicator-container"],[1,"mdc-slider__thumb-knob"],["matRipple","",1,"mat-mdc-focus-indicator",3,"matRippleDisabled"],[1,"mdc-slider__value-indicator"],[1,"mdc-slider__value-indicator-text"]],template:function(i,r){1&i&&(At(0,z4e,5,1,"div",2),xe(1,"div",3,0)(3,"div",4)),2&i&&(It(0,r.discrete?0:-1),U(3),pe("matRippleDisabled",!0))},dependencies:[Mh],styles:[".mat-mdc-slider-visual-thumb .mat-ripple{height:100%;width:100%}.mat-mdc-slider .mdc-slider__tick-marks{justify-content:start}.mat-mdc-slider .mdc-slider__tick-marks .mdc-slider__tick-mark--active,.mat-mdc-slider .mdc-slider__tick-marks .mdc-slider__tick-mark--inactive{position:absolute;left:2px}"],encapsulation:2,changeDetection:0})}}return n})(),xJ=(()=>{class n{get disabled(){return this._disabled}set disabled(e){this._disabled=e;const i=this._getInput(hi.END),r=this._getInput(hi.START);i&&(i.disabled=this._disabled),r&&(r.disabled=this._disabled)}get discrete(){return this._discrete}set discrete(e){this._discrete=e,this._updateValueIndicatorUIs()}get min(){return this._min}set min(e){const i=isNaN(e)?this._min:e;this._min!==i&&this._updateMin(i)}_updateMin(e){const i=this._min;this._min=e,this._isRange?this._updateMinRange({old:i,new:e}):this._updateMinNonRange(e),this._onMinMaxOrStepChange()}_updateMinRange(e){const i=this._getInput(hi.END),r=this._getInput(hi.START),o=i.value,s=r.value;r.min=e.new,i.min=Math.max(e.new,r.value),r.max=Math.min(i.max,i.value),r._updateWidthInactive(),i._updateWidthInactive(),e.newe.old?this._onTranslateXChangeBySideEffect(r,i):this._onTranslateXChangeBySideEffect(i,r),o!==i.value&&this._onValueChange(i),s!==r.value&&this._onValueChange(r)}_updateMaxNonRange(e){const i=this._getInput(hi.END);if(i){const r=i.value;i.max=e,i._updateThumbUIByValue(),this._updateTrackUI(i),r!==i.value&&this._onValueChange(i)}}get step(){return this._step}set step(e){const i=isNaN(e)?this._step:e;this._step!==i&&this._updateStep(i)}_updateStep(e){this._step=e,this._isRange?this._updateStepRange():this._updateStepNonRange(),this._onMinMaxOrStepChange()}_updateStepRange(){const e=this._getInput(hi.END),i=this._getInput(hi.START),r=e.value,o=i.value,s=i.value;e.min=this._min,i.max=this._max,e.step=this._step,i.step=this._step,this._platform.SAFARI&&(e.value=e.value,i.value=i.value),e.min=Math.max(this._min,i.value),i.max=Math.min(this._max,e.value),i._updateWidthInactive(),e._updateWidthInactive(),e.value`${l}`,this._rippleRadius=24,this.startValueIndicatorText="",this.endValueIndicatorText="",this._isRange=!1,this._isRtl=!1,this._hasViewInitialized=!1,this._tickMarkTrackWidth=0,this._hasAnimation=!1,this._resizeTimer=null,this._platform=qt(eo),this._knobRadius=8,this._thumbsOverlap=!1,this._noopAnimations="NoopAnimations"===a,this._dirChangeSubscription=this._dir.change.subscribe(()=>this._onDirChange()),this._isRtl="rtl"===this._dir.value}ngAfterViewInit(){this._platform.isBrowser&&this._updateDimensions();const e=this._getInput(hi.END),i=this._getInput(hi.START);this._isRange=!!e&&!!i,this._cdr.detectChanges();const r=this._getThumb(hi.END);this._rippleRadius=r._ripple.radius,this._inputPadding=this._rippleRadius-this._knobRadius,this._isRange?this._initUIRange(e,i):this._initUINonRange(e),this._updateTrackUI(e),this._updateTickMarkUI(),this._updateTickMarkTrackUI(),this._observeHostResize(),this._cdr.detectChanges()}_initUINonRange(e){e.initProps(),e.initUI(),this._updateValueIndicatorUI(e),this._hasViewInitialized=!0,e._updateThumbUIByValue()}_initUIRange(e,i){e.initProps(),e.initUI(),i.initProps(),i.initUI(),e._updateMinMax(),i._updateMinMax(),e._updateStaticStyles(),i._updateStaticStyles(),this._updateValueIndicatorUIs(),this._hasViewInitialized=!0,e._updateThumbUIByValue(),i._updateThumbUIByValue()}ngOnDestroy(){this._dirChangeSubscription.unsubscribe(),this._resizeObserver?.disconnect(),this._resizeObserver=null}_onDirChange(){this._isRtl="rtl"===this._dir.value,this._isRange?this._onDirChangeRange():this._onDirChangeNonRange(),this._updateTickMarkUI()}_onDirChangeRange(){const e=this._getInput(hi.END),i=this._getInput(hi.START);e._setIsLeftThumb(),i._setIsLeftThumb(),e.translateX=e._calcTranslateXByValue(),i.translateX=i._calcTranslateXByValue(),e._updateStaticStyles(),i._updateStaticStyles(),e._updateWidthInactive(),i._updateWidthInactive(),e._updateThumbUIByValue(),i._updateThumbUIByValue()}_onDirChangeNonRange(){this._getInput(hi.END)._updateThumbUIByValue()}_observeHostResize(){typeof ResizeObserver>"u"||!ResizeObserver||this._ngZone.runOutsideAngular(()=>{this._resizeObserver=new ResizeObserver(()=>{this._isActive()||(this._resizeTimer&&clearTimeout(this._resizeTimer),this._onResize())}),this._resizeObserver.observe(this._elementRef.nativeElement)})}_isActive(){return this._getThumb(hi.START)._isActive||this._getThumb(hi.END)._isActive}_getValue(e=hi.END){const i=this._getInput(e);return i?i.value:this.min}_skipUpdate(){return!(!this._getInput(hi.START)?._skipUIUpdate&&!this._getInput(hi.END)?._skipUIUpdate)}_updateDimensions(){this._cachedWidth=this._elementRef.nativeElement.offsetWidth,this._cachedLeft=this._elementRef.nativeElement.getBoundingClientRect().left}_setTrackActiveStyles(e){const i=this._trackActive.nativeElement.style;i.left=e.left,i.right=e.right,i.transformOrigin=e.transformOrigin,i.transform=e.transform}_calcTickMarkTransform(e){return`translateX(${e*(this._tickMarkTrackWidth/(this._tickMarks.length-1))}px`}_onTranslateXChange(e){this._hasViewInitialized&&(this._updateThumbUI(e),this._updateTrackUI(e),this._updateOverlappingThumbUI(e))}_onTranslateXChangeBySideEffect(e,i){this._hasViewInitialized&&(e._updateThumbUIByValue(),i._updateThumbUIByValue())}_onValueChange(e){this._hasViewInitialized&&(this._updateValueIndicatorUI(e),this._updateTickMarkUI(),this._cdr.detectChanges())}_onMinMaxOrStepChange(){this._hasViewInitialized&&(this._updateTickMarkUI(),this._updateTickMarkTrackUI(),this._cdr.markForCheck())}_onResize(){if(this._hasViewInitialized){if(this._updateDimensions(),this._isRange){const e=this._getInput(hi.END),i=this._getInput(hi.START);e._updateThumbUIByValue(),i._updateThumbUIByValue(),e._updateStaticStyles(),i._updateStaticStyles(),e._updateMinMax(),i._updateMinMax(),e._updateWidthInactive(),i._updateWidthInactive()}else{const e=this._getInput(hi.END);e&&e._updateThumbUIByValue()}this._updateTickMarkUI(),this._updateTickMarkTrackUI(),this._cdr.detectChanges()}}_areThumbsOverlapping(){const e=this._getInput(hi.START),i=this._getInput(hi.END);return!(!e||!i)&&i.translateX-e.translateX<20}_updateOverlappingThumbClassNames(e){const i=e.getSibling(),r=this._getThumb(e.thumbPosition);this._getThumb(i.thumbPosition)._hostElement.classList.remove("mdc-slider__thumb--top"),r._hostElement.classList.toggle("mdc-slider__thumb--top",this._thumbsOverlap)}_updateOverlappingThumbUI(e){!this._isRange||this._skipUpdate()||this._thumbsOverlap!==this._areThumbsOverlapping()&&(this._thumbsOverlap=!this._thumbsOverlap,this._updateOverlappingThumbClassNames(e))}_updateThumbUI(e){this._skipUpdate()||(this._getThumb(e.thumbPosition===hi.END?hi.END:hi.START)._hostElement.style.transform=`translateX(${e.translateX}px)`)}_updateValueIndicatorUI(e){if(this._skipUpdate())return;const i=this.displayWith(e.value);if(this._hasViewInitialized?e._valuetext=i:e._hostElement.setAttribute("aria-valuetext",i),this.discrete){e.thumbPosition===hi.START?this.startValueIndicatorText=i:this.endValueIndicatorText=i;const r=this._getThumb(e.thumbPosition);i.length<3?r._hostElement.classList.add("mdc-slider__thumb--short-value"):r._hostElement.classList.remove("mdc-slider__thumb--short-value")}}_updateValueIndicatorUIs(){const e=this._getInput(hi.END),i=this._getInput(hi.START);e&&this._updateValueIndicatorUI(e),i&&this._updateValueIndicatorUI(i)}_updateTickMarkTrackUI(){if(!this.showTickMarks||this._skipUpdate())return;const e=this._step&&this._step>0?this._step:1,r=(Math.floor(this.max/e)*e-this.min)/(this.max-this.min);this._tickMarkTrackWidth=this._cachedWidth*r-6}_updateTrackUI(e){this._skipUpdate()||(this._isRange?this._updateTrackUIRange(e):this._updateTrackUINonRange(e))}_updateTrackUIRange(e){const i=e.getSibling();if(!i||!this._cachedWidth)return;const r=Math.abs(i.translateX-e.translateX)/this._cachedWidth;this._setTrackActiveStyles(e._isLeftThumb&&this._cachedWidth?{left:"auto",right:this._cachedWidth-i.translateX+"px",transformOrigin:"right",transform:`scaleX(${r})`}:{left:`${i.translateX}px`,right:"auto",transformOrigin:"left",transform:`scaleX(${r})`})}_updateTrackUINonRange(e){this._setTrackActiveStyles(this._isRtl?{left:"auto",right:"0px",transformOrigin:"right",transform:`scaleX(${1-e.fillPercentage})`}:{left:"0px",right:"auto",transformOrigin:"left",transform:`scaleX(${e.fillPercentage})`})}_updateTickMarkUI(){if(!this.showTickMarks||void 0===this.step||void 0===this.min||void 0===this.max)return;const e=this.step>0?this.step:1;this._isRange?this._updateTickMarkUIRange(e):this._updateTickMarkUINonRange(e),this._isRtl&&this._tickMarks.reverse()}_updateTickMarkUINonRange(e){const i=this._getValue();let r=Math.max(Math.floor((i-this.min)/e),0),o=Math.max(Math.floor((this.max-i)/e),0);this._isRtl?r++:o++,this._tickMarks=Array(r).fill(fb.ACTIVE).concat(Array(o).fill(fb.INACTIVE))}_updateTickMarkUIRange(e){const i=this._getValue(),r=this._getValue(hi.START),o=Math.max(Math.floor((r-this.min)/e),0),s=Math.max(Math.floor((i-r)/e)+1,0),a=Math.max(Math.floor((this.max-i)/e),0);this._tickMarks=Array(o).fill(fb.INACTIVE).concat(Array(s).fill(fb.ACTIVE),Array(a).fill(fb.INACTIVE))}_getInput(e){return e===hi.END&&this._input?this._input:this._inputs?.length?e===hi.START?this._inputs.first:this._inputs.last:void 0}_getThumb(e){return e===hi.END?this._thumbs?.last:this._thumbs?.first}_setTransition(e){this._hasAnimation=!this._platform.IOS&&e&&!this._noopAnimations,this._elementRef.nativeElement.classList.toggle("mat-mdc-slider-with-animation",this._hasAnimation)}_isCursorOnSliderThumb(e,i){const r=i.width/2,l=e.clientY-(i.y+r);return Math.pow(e.clientX-(i.x+r),2)+Math.pow(l,2)PT),multi:!0};let PT=(()=>{class n{get value(){return ha(this._hostElement.value,0)}set value(e){const i=(e=isNaN(e)?0:e)+"";this._hasSetInitialValue?this._isActive||this._setValue(i):this._initialValue=i}_setValue(e){this._hostElement.value=e,this._updateThumbUIByValue(),this._slider._onValueChange(this),this._cdr.detectChanges(),this._slider._cdr.markForCheck()}get translateX(){return this._slider.min>=this._slider.max?(this._translateX=this._tickMarkOffset,this._translateX):(void 0===this._translateX&&(this._translateX=this._calcTranslateXByValue()),this._translateX)}set translateX(e){this._translateX=e}get min(){return ha(this._hostElement.min,0)}set min(e){this._hostElement.min=e+"",this._cdr.detectChanges()}get max(){return ha(this._hostElement.max,0)}set max(e){this._hostElement.max=e+"",this._cdr.detectChanges()}get step(){return ha(this._hostElement.step,0)}set step(e){this._hostElement.step=e+"",this._cdr.detectChanges()}get disabled(){return Zn(this._hostElement.disabled)}set disabled(e){this._hostElement.disabled=e,this._cdr.detectChanges(),this._slider.disabled!==this.disabled&&(this._slider.disabled=this.disabled)}get percentage(){return this._slider.min>=this._slider.max?this._slider._isRtl?1:0:(this.value-this._slider.min)/(this._slider.max-this._slider.min)}get fillPercentage(){return this._slider._cachedWidth?0===this._translateX?0:this.translateX/this._slider._cachedWidth:this._slider._isRtl?1:0}_setIsFocused(e){this._isFocused=e}constructor(e,i,r,o){this._ngZone=e,this._elementRef=i,this._cdr=r,this._slider=o,this.valueChange=new Bn,this.dragStart=new Bn,this.dragEnd=new Bn,this.thumbPosition=hi.END,this._knobRadius=8,this._tickMarkOffset=3,this._isActive=!1,this._isFocused=!1,this._hasSetInitialValue=!1,this._destroyed=new Hn,this._skipUIUpdate=!1,this._onTouchedFn=()=>{},this._isControlInitialized=!1,this._platform=qt(eo),this._hostElement=i.nativeElement,this._ngZone.runOutsideAngular(()=>{this._hostElement.addEventListener("pointerdown",this._onPointerDown.bind(this)),this._hostElement.addEventListener("pointermove",this._onPointerMove.bind(this)),this._hostElement.addEventListener("pointerup",this._onPointerUp.bind(this))})}ngOnDestroy(){this._hostElement.removeEventListener("pointerdown",this._onPointerDown),this._hostElement.removeEventListener("pointermove",this._onPointerMove),this._hostElement.removeEventListener("pointerup",this._onPointerUp),this._destroyed.next(),this._destroyed.complete(),this.dragStart.complete(),this.dragEnd.complete()}initProps(){this._updateWidthInactive(),this.disabled!==this._slider.disabled&&(this._slider.disabled=!0),this.step=this._slider.step,this.min=this._slider.min,this.max=this._slider.max,this._initValue()}initUI(){this._updateThumbUIByValue()}_initValue(){this._hasSetInitialValue=!0,void 0===this._initialValue?this.value=this._getDefaultValue():(this._hostElement.value=this._initialValue,this._updateThumbUIByValue(),this._slider._onValueChange(this),this._cdr.detectChanges())}_getDefaultValue(){return this.min}_onBlur(){this._setIsFocused(!1),this._onTouchedFn()}_onFocus(){this._slider._setTransition(!1),this._slider._updateTrackUI(this),this._setIsFocused(!0)}_onChange(){this.valueChange.emit(this.value),this._isActive&&this._updateThumbUIByValue({withAnimation:!0})}_onInput(){this._onChangeFn?.(this.value),(this._slider.step||!this._isActive)&&this._updateThumbUIByValue({withAnimation:!0}),this._slider._onValueChange(this)}_onNgControlValueChange(){(!this._isActive||!this._isFocused)&&(this._slider._onValueChange(this),this._updateThumbUIByValue()),this._slider.disabled=this._formControl.disabled}_onPointerDown(e){if(!this.disabled&&0===e.button){if(this._platform.IOS){const i=this._slider._isCursorOnSliderThumb(e,this._slider._getThumb(this.thumbPosition)._hostElement.getBoundingClientRect());return this._isActive=i,this._updateWidthActive(),void this._slider._updateDimensions()}this._isActive=!0,this._setIsFocused(!0),this._updateWidthActive(),this._slider._updateDimensions(),this._slider.step||this._updateThumbUIByPointerEvent(e,{withAnimation:!0}),this.disabled||(this._handleValueCorrection(e),this.dragStart.emit({source:this,parent:this._slider,value:this.value}))}}_handleValueCorrection(e){this._skipUIUpdate=!0,setTimeout(()=>{this._skipUIUpdate=!1,this._fixValue(e)},0)}_fixValue(e){const i=e.clientX-this._slider._cachedLeft,r=this._slider._cachedWidth,o=0===this._slider.step?1:this._slider.step,s=Math.floor((this._slider.max-this._slider.min)/o),c=Math.round((this._slider._isRtl?1-i/r:i/r)*s)/s*(this._slider.max-this._slider.min)+this._slider.min,d=Math.round(c/o)*o;if(d===this.value)return this._slider._onValueChange(this),void(this._slider.step>0?this._updateThumbUIByValue():this._updateThumbUIByPointerEvent(e,{withAnimation:this._slider._hasAnimation}));this.value=d,this.valueChange.emit(this.value),this._onChangeFn?.(this.value),this._slider._onValueChange(this),this._slider.step>0?this._updateThumbUIByValue():this._updateThumbUIByPointerEvent(e,{withAnimation:this._slider._hasAnimation})}_onPointerMove(e){!this._slider.step&&this._isActive&&this._updateThumbUIByPointerEvent(e)}_onPointerUp(){this._isActive&&(this._isActive=!1,this._platform.SAFARI&&this._setIsFocused(!1),this.dragEnd.emit({source:this,parent:this._slider,value:this.value}),setTimeout(()=>this._updateWidthInactive(),this._platform.IOS?10:0))}_clamp(e){const i=this._tickMarkOffset;return Math.max(Math.min(e,this._slider._cachedWidth-this._tickMarkOffset),i)}_calcTranslateXByValue(){return this._slider._isRtl?(1-this.percentage)*(this._slider._cachedWidth-2*this._tickMarkOffset)+this._tickMarkOffset:this.percentage*(this._slider._cachedWidth-2*this._tickMarkOffset)+this._tickMarkOffset}_calcTranslateXByPointerEvent(e){return e.clientX-this._slider._cachedLeft}_updateWidthActive(){}_updateWidthInactive(){this._hostElement.style.padding=`0 ${this._slider._inputPadding}px`,this._hostElement.style.width=`calc(100% + ${this._slider._inputPadding-2*this._tickMarkOffset}px)`,this._hostElement.style.left=`-${this._slider._rippleRadius-this._tickMarkOffset}px`}_updateThumbUIByValue(e){this.translateX=this._clamp(this._calcTranslateXByValue()),this._updateThumbUI(e)}_updateThumbUIByPointerEvent(e,i){this.translateX=this._clamp(this._calcTranslateXByPointerEvent(e)),this._updateThumbUI(i)}_updateThumbUI(e){this._slider._setTransition(!!e?.withAnimation),this._slider._onTranslateXChange(this)}writeValue(e){(this._isControlInitialized||null!==e)&&(this.value=e)}registerOnChange(e){this._onChangeFn=e,this._isControlInitialized=!0}registerOnTouched(e){this._onTouchedFn=e}setDisabledState(e){this.disabled=e}focus(){this._hostElement.focus()}blur(){this._hostElement.blur()}static{this.\u0275fac=function(i){return new(i||n)($(kn),$(Vn),$(_o),$(BT))}}static{this.\u0275dir=$t({type:n,selectors:[["input","matSliderThumb",""]],hostAttrs:["type","range",1,"mdc-slider__input"],hostVars:1,hostBindings:function(i,r){1&i&&We("change",function(){return r._onChange()})("input",function(){return r._onInput()})("blur",function(){return r._onBlur()})("focus",function(){return r._onFocus()}),2&i&&fi("aria-valuetext",r._valuetext)},inputs:{value:[Ct.HasDecoratorInputTransform,"value","value",ha]},outputs:{valueChange:"valueChange",dragStart:"dragStart",dragEnd:"dragEnd"},exportAs:["matSliderThumb"],standalone:!0,features:[ui([Z4e,{provide:vJ,useExisting:n}]),es]})}}return n})(),OO=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[hr,e_]})}}return n})(),RT=(()=>{class n{constructor(){this.step=1,this.disabled=!1}handleSliderOnChange(e){e!==this.value&&this.onChange(e)}handleInputOnChange(e){const i=LO(e,this.min,this.max);i!==this.value&&!Number.isNaN(i)&&this.onChange(i)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-slider"]],inputs:{value:"value",min:"min",max:"max",label:"label",step:"step",disabled:"disabled",onChange:"onChange"},decls:8,vars:10,consts:[[1,"cc-slider-container"],[1,"label"],[1,"slider-with-input"],[3,"disabled","step","min","max"],["matSliderThumb","",3,"input","value"],["appearance","outline","subscriptSizing","dynamic"],["matInput","","type","number",3,"input","value","disabled","min","max"]],template:function(i,r){1&i&&(P(0,"div",0)(1,"mat-label",1),we(2),H(),P(3,"div",2)(4,"mat-slider",3)(5,"input",4),We("input",function(s){return r.handleInputOnChange(s)}),H()(),P(6,"mat-form-field",5)(7,"input",6),We("input",function(s){return r.handleInputOnChange(s)}),H()()()()),2&i&&(U(2),Mr(r.label),U(2),pe("disabled",r.disabled)("step",r.step)("min",r.min)("max",r.max),U(),pe("value",r.value),U(2),pe("value",r.value)("disabled",r.disabled)("min",r.min)("max",r.max))},dependencies:[yd,vd,km,xJ,PT],styles:["[_nghost-%COMP%]{width:100%;margin-top:8px;display:inline-block}"]})}}return n})();const NO={positive:!1,negative:!1,neutral:!1},tLe=bi(NO,_n(Jy,rT(NO))),nLe=bi(!0,_n(d1,Wi(!0))),iLe=bi(!1,_n(c1,Wi(!1))),CJ=pn("SET_SORTING_ORDER_ASCENDING",{_as:"props",_p:void 0}),VO=pn("TOGGLE_SORTING_ORDER_ASCENDING"),rLe=bi(!0,_n(CJ,Wi(!0)),_n(VO,n=>!n)),oLe=bi(!0,_n(Xp,Wi(!0))),sLe=bi(!0,_n($0,Wi(!0))),aLe=bi(!0,_n(OE,Wi(!0))),lLe=bi(!1,_n(u1,Wi(!1))),cLe=bi(!1,_n(o1,Wi(!1))),dLe=bi(!1,_n(r1,Wi(!1))),uLe=bi(!1,_n(t1,Wi(!1))),hLe=bi(!1,_n(PE,Wi(!1))),fLe=bi(!1,_n(kE,Wi(!1))),ZO=su.SquarifiedTreeMap,mLe=bi(ZO,_n(s1,Wi(ZO))),pLe=bi(100,_n(a1,Wi(100))),eN=iA.Standard,ALe=bi(eN,_n(l1,Wi(eN))),gLe=bi(!1,_n(DE,Wi(!1))),_Le=bi(!1,_n(n1,Wi(!1))),bLe=bi(!0,_n(Z3,(n,t)=>t.value),_n(BE,n=>!n)),vLe=bi(!1,_n(J3,(n,t)=>t.value),_n(eP,n=>!n)),SJ=pn("SET_IS_FILE_EXPLORER_PINNED",{_as:"props",_p:void 0}),iN=pn("TOGGLE_IS_FILE_EXPLORER_PINNED"),xLe=jp({colorLabels:tLe,showMetricLabelNodeName:nLe,showMetricLabelNameValue:iLe,sortingOrderAscending:rLe,isSearchPanelPinned:bi(!1,_n(SJ,Wi(!1)),_n(iN,n=>!n)),isLoadingFile:oLe,isLoadingMap:sLe,mapColors:RFe,resetCameraIfNewFileIsLoaded:aLe,showOnlyBuildingsWithEdges:lLe,isEdgeMetricVisible:bLe,isWhiteBackground:cLe,invertHeight:dLe,invertArea:_Le,hideFlatBuildings:uLe,scaling:WBe,edgeHeight:GBe,amountOfEdgePreviews:qBe,amountOfTopLabels:VBe,isPresentationMode:hLe,experimentalFeaturesEnabled:fLe,screenshotToClipboardEnabled:gLe,layoutAlgorithm:mLe,maxTreeMapFiles:pLe,sharpnessMode:ALe,isColorMetricLinkedToHeightMetric:vLe,enableFloorLabels:bi(!0,_n(e1,Wi(!0)))}),CLe={colorLabels:NO,showMetricLabelNodeName:!0,showMetricLabelNameValue:!1,sortingOrderAscending:!0,isSearchPanelPinned:!1,isLoadingFile:!0,isLoadingMap:!0,mapColors:bu,resetCameraIfNewFileIsLoaded:!0,showOnlyBuildingsWithEdges:!1,isEdgeMetricVisible:!0,isWhiteBackground:!1,invertHeight:!1,invertArea:!1,hideFlatBuildings:!1,scaling:xT,edgeHeight:4,amountOfEdgePreviews:1,amountOfTopLabels:1,isPresentationMode:!1,experimentalFeaturesEnabled:!1,screenshotToClipboardEnabled:!1,layoutAlgorithm:ZO,maxTreeMapFiles:100,sharpnessMode:eN,isColorMetricLinkedToHeightMetric:!1,enableFloorLabels:!0};function TJ(n,t){return n.filter(e=>!HA(e,t))}function IJ(n,t){return FJ(n,t)?n:[...n,nu(t)]}function FJ(n,t){return n.some(e=>HA(e,t))}const SLe=(n,{path:t,color:e})=>{const i=OL(n,t);(!i||i.color!==e)&&n.set(t,{path:t,color:e});for(const[r,o]of n)if(o.path===t)o.color!==e&&n.delete(r);else if(o.path.startsWith(t)){const s=OL(n,o.path);s&&s.color===o.color&&n.delete(r)}},DJ=(n,t)=>{const e=n.findIndex(r=>r.path===t);if(-1!==e)return e;let i=-1;for(let r=0;r{const e=new Map(n.map(i=>[i.path,i]));for(const i of t.packages)SLe(e,i);return[...e.values()]}),_n(QE,(n,t)=>{const e=DJ(n,t.path);return-1!==e?function MLe(n,t){return[...n.slice(0,t),...n.slice(t+1)]}(n,e):n})),aN=[],ILe=bi(aN,_n(aP,Wi(aN)),_n(nG,(n,t)=>IJ(n,t.edge)),_n(iG,(n,t)=>TJ(n,t.edge))),lN={nodes:{},edges:{}},FLe=bi(lN,_n(nP,Wi(lN)),_n(iP,(n,t)=>({...n,[t.category]:{...n[t.category],[t.name]:t.attributeType}}))),cN=[],DLe=bi(cN,_n(rP,Wi(cN)),_n(oP,(n,t)=>IJ(n,t.item)),_n(UE,(n,t)=>function ELe(n,t){const e=[...n];for(const i of t)FJ(e,i)||e.push(i);return e}(n,t.items)),_n(HE,(n,t)=>TJ(n,t.item))),dN={},BLe=jp({markedPackages:TLe,edges:ILe,attributeTypes:FLe,attributeDescriptors:bi(dN,_n(tP,Wi(dN))),blacklist:DLe}),PLe={markedPackages:sN,edges:aN,attributeTypes:lN,attributeDescriptors:dN,blacklist:cN},uN=sm.weightedGradient,RLe=bi(uN,_n(Q0,Wi(uN))),hN=E2.NAME,LLe=bi(hN,_n(NE,Wi(hN))),OLe=bi(null,_n(gh,Wi(null))),mN={from:0,to:0},NLe=bi(mN,_n(Zd,rT(mN))),ULe=bi("",_n(tm,Wi("")),_n(_1,()=>"")),kJ=pn("SET_ALL_FOCUSED_NODES",{_as:"props",_p:void 0}),OT=pn("FOCUS_NODE",{_as:"props",_p:void 0}),jw=pn("UNFOCUS_ALL_NODES"),NT=pn("UNFOCUS_NODE");function BJ(n){return n?`/${n.split("/").reduce((e,i)=>(""===i||"."===i||(".."===i?e.pop():e.push(i)),e),[]).join("/")}`:void 0}function PJ(n,t){if(!n||!t)return!1;const e=BJ(n),i=BJ(t),r=i.endsWith("/")?i:`${i}/`;return e.startsWith(r)}const RJ=[],GLe=jp({colorMode:RLe,sortingOption:LLe,edgeMetric:OLe,colorRange:NLe,margin:$Be,searchPattern:ULe,focusedNodePath:bi(RJ,_n(kJ,(n,t)=>[...t.value]),_n(jw,()=>[]),_n(OT,(n,t)=>t.value===lu.rootPath?n:PJ(t.value,n[0])?[t.value,...n]:[t.value]),_n(NT,n=>n.slice(1))),heightMetric:bi(null,_n(_h,Wi(null))),distributionMetric:bi(null,_n(h1,Wi(null))),colorMetric:bi(null,_n(ld,Wi(null))),areaMetric:bi(null,_n(Ah,Wi(null)))}),WLe={colorMode:uN,sortingOption:hN,edgeMetric:null,colorRange:mN,margin:50,searchPattern:"",focusedNodePath:RJ,heightMetric:null,distributionMetric:null,colorMetric:null,areaMetric:null},bN=[],$Le=bi(bN,_n(g1,Wi(bN)),_n(xG,(n,t)=>[...n,{file:t.file,selectedAs:Zi.None}]),_n(MP,(n,t)=>function jLe(n,t){const e=n.filter(r=>r.file.fileMeta.fileName!==t);return e.some(r=>r.selectedAs===Zi.Partial)||(e[0]={...e[0],selectedAs:Zi.Partial}),e}(n,t.fileName)),_n(e2,(n,t)=>function XLe(n,t,e){return n.map(i=>WE(i.file,t)?{...i,selectedAs:Zi.Reference}:e&&WE(i.file,e)?{...i,selectedAs:Zi.Comparison}:{...i,selectedAs:Zi.None})}(n,t.referenceFile,t.comparisonFile)),_n(DP,(n,t)=>function KLe(n,t){return n.map(e=>WE(e.file,t)?{...e,selectedAs:Zi.Reference}:e.selectedAs===Zi.Comparison?e:{...e,selectedAs:Zi.None})}(n,t.file)),_n(FP,(n,t)=>function YLe(n,t){return n.map(e=>e.file===t?{...e,selectedAs:Zi.Comparison}:e.selectedAs===Zi.Reference?e:{...e,selectedAs:Zi.None})}(n,t.file)),_n(IP,n=>function ZLe(n){return n.map(t=>t.selectedAs===Zi.Reference?{...t,selectedAs:Zi.Comparison}:t.selectedAs===Zi.Comparison?{...t,selectedAs:Zi.Reference}:t)}(n)),_n(_1,(n,t)=>LJ(n,t.files.map(e=>e.fileMeta.fileName))),_n(EP,(n,t)=>LJ(n,t.fileNames)),_n(TP,n=>n.map(t=>({...t,selectedAs:t.selectedAs===Zi.Partial?Zi.None:Zi.Partial}))),_n(SP,n=>n.map(t=>({...t,selectedAs:Zi.Partial}))));function LJ(n,t){return n.map(e=>({...e,selectedAs:t.includes(e.file.fileMeta.fileName)?Zi.Partial:Zi.None}))}const JLe=bi(null,_n(nb,Wi(null))),eOe=bi(null,_n(ib,(n,t)=>t.value)),rOe={fileSettings:BLe,appSettings:xLe,dynamicSettings:GLe,files:$Le,appStatus:jp({hoveredNodeId:JLe,selectedBuildingId:bi(null,_n(LL,Wi(null))),rightClickedNodeData:eOe})},NJ={fileSettings:PLe,appSettings:CLe,dynamicSettings:WLe,files:bN,appStatus:{hoveredNodeId:null,selectedBuildingId:null,rightClickedNodeData:null}},oOe=n=>(t,e)=>function jBe(n){return n.type===lb.type}(e)?UJ(nu(t),e.value):n(t,e),sOe=new Set(["fileSettings.attributeTypes","fileSettings.attributeDescriptors","fileSettings.blacklist","fileSettings.edges","fileSettings.markedPackages","dynamicSettings.focusedNodePath","files"]);function UJ(n,t,e=[]){for(const[i,r]of Object.entries(t)){if(null==r||!aOe(n,i))continue;const o=[...e,i],s=o.join(".");n[i]="object"!=typeof r||sOe.has(s)?r:UJ(n[i],r,o)}return n}function aOe(n,t){return Object.prototype.hasOwnProperty.call(n,t)}function dOe(n,t){if(1&n&&(P(0,"span",2),we(1),H()),2&n){const e=He();U(),cn(" ",e.label,"")}}let Xw=(()=>{class n{constructor(e,i){this.store=e,this.state=i}applyDefaultSettings(){const e=((n,t)=>{const e={};let i=0;for(const r of n){const o=r.split(".");let s=NJ,a=e;for(const[l,c]of o.entries())void 0!==s[c]&&(a[c]||(a[c]={},i++),l===o.length-1?a[c]=s[c]:(s=s[c],a=a[c]))}return 0!==i&&AO(e),n.includes("appSettings.amountOfTopLabels")&&(e.appSettings.amountOfTopLabels=pO(vT(t))),e})(this.settingsKeys,this.state.getValue());this.store.dispatch(lb({value:e})),this.callback&&this.callback()}static{this.\u0275fac=function(i){return new(i||n)($(Xt),$(jr))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-reset-settings-button"]],inputs:{settingsKeys:"settingsKeys",tooltip:"tooltip",label:"label",callback:"callback"},decls:3,vars:2,consts:[[3,"click","title"],[1,"fa","fa-undo"],[1,"reset-settings-button-label"]],template:function(i,r){1&i&&(P(0,"button",0),We("click",function(){return r.applyDefaultSettings()}),xe(1,"i",1),At(2,dOe,2,1,"span",2),H()),2&i&&(pe("title",r.tooltip),U(2),It(2,r.label?2:-1))},styles:["button[_ngcontent-%COMP%]{color:#1b9cfc;background:none;align-items:center;display:flex;gap:4px;margin:0;padding:0}button[_ngcontent-%COMP%] .fa[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;height:40px;width:40px;font-size:18px}button[_ngcontent-%COMP%]:hover .fa[_ngcontent-%COMP%]{border-radius:100%;background-color:#9e9e9e33}"]})}}return n})();const uOe=()=>["dynamicSettings.margin","appSettings.invertArea","appSettings.enableFloorLabels"];let hOe=(()=>{class n{static{this.DEBOUNCE_TIME=400}constructor(e){this.store=e,this.margin$=this.store.select(I4e),this.enableFloorLabels$=this.store.select(F4e),this.isInvertedArea$=this.store.select(D4e),this.applyDebouncedMargin=yu(i=>{this.store.dispatch(z0({value:i}))},n.DEBOUNCE_TIME)}setEnableFloorLabel(e){this.store.dispatch(e1({value:e.checked}))}toggleInvertingArea(e){this.store.dispatch(n1({value:e.checked}))}static{this.\u0275fac=function(i){return new(i||n)($(Xt))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-area-settings-panel"]],decls:10,vars:14,consts:[[1,"options"],["title","Amount of space between buildings in percent","label","Margin",3,"value","onChange","min","max"],[3,"change","checked"],["tooltip","Reset area metric settings to their defaults","label","Reset area metric settings",3,"settingsKeys"]],template:function(i,r){1&i&&(P(0,"div",0),xe(1,"cc-slider",1),$e(2,"async"),P(3,"mat-checkbox",2),$e(4,"async"),We("change",function(s){return r.setEnableFloorLabel(s)}),we(5,"Enable Floor Labels"),H(),P(6,"mat-checkbox",2),$e(7,"async"),We("change",function(s){return r.toggleInvertingArea(s)}),we(8,"Invert Area"),H(),xe(9,"cc-reset-settings-button",3),H()),2&i&&(U(),pe("value",rt(2,7,r.margin$))("onChange",r.applyDebouncedMargin)("min",1)("max",100),U(2),pe("checked",rt(4,9,r.enableFloorLabels$)),U(3),pe("checked",rt(7,11,r.isInvertedArea$)),U(3),pe("settingsKeys",ch(13,uOe)))},dependencies:[qA,RT,Xw,Yn],styles:["cc-area-settings-panel{text-align:left;max-height:300px}cc-area-settings-panel .options{display:flex;flex-direction:column}cc-area-settings-panel .options .margin-option{position:relative}cc-area-settings-panel .options .margin-option cc-reset-settings-button{position:absolute;top:-20%;left:20%}\n"],encapsulation:2})}}return n})();const fOe=Zt(no,n=>n.amountOfTopLabels),HJ=Zt(no,n=>n.colorLabels),mOe=Zt(HJ,n=>n.negative||n.neutral||n.positive),pOe=Zt(no,n=>n.showMetricLabelNodeName),AOe=Zt(no,n=>n.showMetricLabelNameValue),gOe=Zt(no,n=>n.scaling),_Oe=Zt(no,n=>n.invertHeight),bOe=()=>["appSettings.amountOfTopLabels","appSettings.scaling.y","appSettings.invertHeight"];function vOe(n,t){if(1&n){const e=Pn();P(0,"mat-checkbox",1),$e(1,"async"),We("change",function(r){return Vt(e),Ot(He().setInvertHeight(r))}),we(2," Invert Height "),H()}2&n&&pe("checked",rt(1,1,He().invertHeight$))}let yOe=(()=>{class n{static{this.DEBOUNCE_TIME=400}constructor(e){this.store=e,this.amountOfTopLabels$=this.store.select(fOe),this.isLabelsSliderDisabled$=this.store.select(mOe),this.showMetricLabelNodeName$=this.store.select(pOe),this.showMetricLabelNodeValue$=this.store.select(AOe),this.scaling$=this.store.select(gOe),this.invertHeight$=this.store.select(_Oe),this.isDeltaState$=this.store.select(Im),this.applyDebouncedTopLabels=yu(i=>{this.store.dispatch(em({value:i}))},n.DEBOUNCE_TIME),this.applyDebouncedScalingY=yu(i=>{this.store.dispatch(V0({value:{y:i}}))},n.DEBOUNCE_TIME)}setShowMetricLabelNodeName(e){this.store.dispatch(d1({value:e.checked}))}setShowMetricLabelNameValue(e){this.store.dispatch(c1({value:e.checked}))}setInvertHeight(e){this.store.dispatch(r1({value:e.checked}))}static{this.\u0275fac=function(i){return new(i||n)($(Xt))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-height-settings-panel"]],decls:16,vars:32,consts:[["label","Labels",1,"cc-height-settings-panel-row",3,"disabled","title","min","max","value","onChange"],[3,"change","checked"],["title","Height","label","Height",1,"cc-height-settings-panel-row",3,"step","min","max","value","onChange"],[3,"checked"],["tooltip","Reset height metric settings to their defaults","label","Reset height metric settings",3,"settingsKeys"]],template:function(i,r){1&i&&(xe(0,"cc-slider",0),$e(1,"async"),$e(2,"async"),$e(3,"async"),$e(4,"async"),P(5,"mat-checkbox",1),$e(6,"async"),We("change",function(s){return r.setShowMetricLabelNodeName(s)}),we(7,"Show label node names\n"),H(),P(8,"mat-checkbox",1),$e(9,"async"),We("change",function(s){return r.setShowMetricLabelNameValue(s)}),we(10,"Show label node metrics\n"),H(),xe(11,"cc-slider",2),$e(12,"async"),At(13,vOe,3,3,"mat-checkbox",3),$e(14,"async"),xe(15,"cc-reset-settings-button",4)),2&i&&(pe("disabled",rt(1,15,r.isLabelsSliderDisabled$))("title",rt(2,17,r.isLabelsSliderDisabled$)?"Disabled because color labels are used":"Display the labels of the "+rt(3,19,r.amountOfTopLabels$)+" highest buildings")("min",0)("max",50)("value",rt(4,21,r.amountOfTopLabels$))("onChange",r.applyDebouncedTopLabels),U(5),pe("checked",rt(6,23,r.showMetricLabelNodeName$)),U(3),pe("checked",rt(9,25,r.showMetricLabelNodeValue$)),U(3),pe("step",1)("min",1)("max",5)("value",rt(12,27,r.scaling$).y)("onChange",r.applyDebouncedScalingY),U(2),It(13,rt(14,29,r.isDeltaState$)?-1:13),U(2),pe("settingsKeys",ch(31,bOe)))},dependencies:[qA,RT,Xw,Yn],encapsulation:2})}}return n})(),wOe=(()=>{class n{constructor(e){this.store=e,this.heightMetric$=this.store.select(Pw)}handleHeightMetricChanged(e){this.store.dispatch(_h({value:e}))}static{this.\u0275fac=function(i){return new(i||n)($(Xt))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-height-metric-chooser"]],decls:2,vars:4,consts:[["icon","fa-arrows-v","metricFor","heightMetric","searchPlaceholder","Height Metric (highest value)","title","Change height metric",3,"selectedMetricName","handleMetricChanged"]],template:function(i,r){1&i&&(xe(0,"cc-metric-chooser",0),$e(1,"async")),2&i&&pe("selectedMetricName",rt(1,2,r.heightMetric$))("handleMetricChanged",r.handleHeightMetricChanged)},dependencies:[$w,Yn],encapsulation:2})}}return n})();const wN=Zt(no,n=>n.isColorMetricLinkedToHeightMetric);let xOe=(()=>{class n{constructor(e){this.store=e,this.isColorMetricLinkedToHeightMetric$=this.store.select(wN)}toggleIsColorMetricLinkedToHeightMetric(){this.store.dispatch(eP())}static{this.\u0275fac=function(i){return new(i||n)($(Xt))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-link-color-metric-to-height-metric-button"]],decls:4,vars:6,consts:[[1,"link-metrics-button",3,"click","title"],[3,"ngClass"]],template:function(i,r){1&i&&(P(0,"button",0),$e(1,"async"),We("click",function(){return r.toggleIsColorMetricLinkedToHeightMetric()}),xe(2,"i",1),$e(3,"async"),H()),2&i&&(ka("title",rt(1,2,r.isColorMetricLinkedToHeightMetric$)?"Unlink Height and Color Metric":"Link Height and Color Metric"),U(2),pe("ngClass",rt(3,4,r.isColorMetricLinkedToHeightMetric$)?"fa fa-chain-broken":"fa fa-link"))},dependencies:[Kd,Yn],styles:["cc-link-color-metric-to-height-metric-button{display:flex;justify-content:center;height:100%}cc-link-color-metric-to-height-metric-button .link-metrics-button{width:50px;height:100%;padding:0;margin:0;background-color:transparent}cc-link-color-metric-to-height-metric-button .link-metrics-button .fa{color:#444}cc-link-color-metric-to-height-metric-button .link-metrics-button:hover{background-color:#c8c8c8}\n"],encapsulation:2})}}return n})(),COe=(()=>{class n{constructor(e){this.store=e,this.colorMetric$=this.store.select(Sm),this.isColorMetricLinkedToHeightMetric$=this.store.select(wN)}handleColorMetricChanged(e){this.store.dispatch(ld({value:e}))}static{this.\u0275fac=function(i){return new(i||n)($(Xt))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-color-metric-chooser"]],decls:4,vars:10,consts:[["icon","fa-paint-brush","metricFor","colorMetric","searchPlaceholder","Color Metric (highest value)",3,"selectedMetricName","handleMetricChanged","isDisabled"]],template:function(i,r){1&i&&(xe(0,"cc-metric-chooser",0),$e(1,"async"),$e(2,"async"),$e(3,"async")),2&i&&(pe("selectedMetricName",rt(1,4,r.colorMetric$))("handleMetricChanged",r.handleColorMetricChanged)("isDisabled",rt(2,6,r.isColorMetricLinkedToHeightMetric$)),fi("title",rt(3,8,r.isColorMetricLinkedToHeightMetric$)?"Currently linked to height metric":"Change color metric"))},dependencies:[$w,Yn],encapsulation:2})}}return n})();const VJ=Zt(tc,n=>n.colorMode),MOe=Zt(eb,Im,n=>({leftColor:n.positive,middleColor:n.neutral,rightColor:n.negative})),EOe=Zt($h,pZ,(n,t)=>({values:n.values,min:n.minValue,max:n.maxValue,from:t.from,to:t.to}));function QJ(n,t){let e;if(void 0===t)for(const i of n)null!=i&&(e=i)&&(e=i);else{let i=-1;for(let r of n)null!=(r=t(r,++i,n))&&(e=r)&&(e=r)}return e}function TOe(n){return n}function IOe(n){return"translate("+n+",0)"}function FOe(n){return"translate(0,"+n+")"}function DOe(n){return t=>+n(t)}function kOe(n,t){return t=Math.max(0,n.bandwidth()-2*t)/2,n.round()&&(t=Math.round(t)),e=>+n(e)+t}function BOe(){return!this.__axis}function VT(n,t){var e=[],i=null,r=null,o=6,s=6,a=3,l=typeof window<"u"&&window.devicePixelRatio>1?0:.5,c=1===n||4===n?-1:1,d=4===n||2===n?"x":"y",u=1===n||3===n?IOe:FOe;function h(f){var A=i??(t.ticks?t.ticks.apply(t,e):t.domain()),y=r??(t.tickFormat?t.tickFormat.apply(t,e):TOe),_=Math.max(o,0)+a,b=t.range(),M=+b[0]+l,C=+b[b.length-1]+l,E=(t.bandwidth?kOe:DOe)(t.copy(),l),I=f.selection?f.selection():f,V=I.selectAll(".domain").data([null]),R=I.selectAll(".tick").data(A,t).order(),K=R.exit(),k=R.enter().append("g").attr("class","tick"),W=R.select("line"),ue=R.select("text");V=V.merge(V.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),R=R.merge(k),W=W.merge(k.append("line").attr("stroke","currentColor").attr(d+"2",c*o)),ue=ue.merge(k.append("text").attr("fill","currentColor").attr(d,c*_).attr("dy",1===n?"0em":3===n?"0.71em":"0.32em")),f!==I&&(V=V.transition(f),R=R.transition(f),W=W.transition(f),ue=ue.transition(f),K=K.transition(f).attr("opacity",1e-6).attr("transform",function(Se){return isFinite(Se=E(Se))?u(Se+l):this.getAttribute("transform")}),k.attr("opacity",1e-6).attr("transform",function(Se){var Me=this.parentNode.__axis;return u((Me&&isFinite(Me=Me(Se))?Me:E(Se))+l)})),K.remove(),V.attr("d",4===n||2===n?s?"M"+c*s+","+M+"H"+l+"V"+C+"H"+c*s:"M"+l+","+M+"V"+C:s?"M"+M+","+c*s+"V"+l+"H"+C+"V"+c*s:"M"+M+","+l+"H"+C),R.attr("opacity",1).attr("transform",function(Se){return u(E(Se)+l)}),W.attr(d+"2",c*o),ue.attr(d,c*_).text(y),I.filter(BOe).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",2===n?"start":4===n?"end":"middle"),I.each(function(){this.__axis=E})}return h.scale=function(f){return arguments.length?(t=f,h):t},h.ticks=function(){return e=Array.from(arguments),h},h.tickArguments=function(f){return arguments.length?(e=null==f?[]:Array.from(f),h):e.slice()},h.tickValues=function(f){return arguments.length?(i=null==f?null:Array.from(f),h):i&&i.slice()},h.tickFormat=function(f){return arguments.length?(r=f,h):r},h.tickSize=function(f){return arguments.length?(o=s=+f,h):o},h.tickSizeInner=function(f){return arguments.length?(o=+f,h):o},h.tickSizeOuter=function(f){return arguments.length?(s=+f,h):s},h.tickPadding=function(f){return arguments.length?(a=+f,h):a},h.offset=function(f){return arguments.length?(l=+f,h):l},h}function LOe(){}function CN(n){return null==n?LOe:function(){return this.querySelector(n)}}function UOe(){return[]}function qJ(n){return null==n?UOe:function(){return this.querySelectorAll(n)}}function GJ(n){return function(){return this.matches(n)}}function WJ(n){return function(t){return t.matches(n)}}var QOe=Array.prototype.find;function qOe(){return this.firstElementChild}var WOe=Array.prototype.filter;function $Oe(){return Array.from(this.children)}function $J(n){return new Array(n.length)}function QT(n,t){this.ownerDocument=n.ownerDocument,this.namespaceURI=n.namespaceURI,this._next=null,this._parent=n,this.__data__=t}function JOe(n,t,e,i,r,o){for(var a,s=0,l=t.length,c=o.length;st?1:n>=t?0:NaN}QT.prototype={constructor:QT,appendChild:function(n){return this._parent.insertBefore(n,this._next)},insertBefore:function(n,t){return this._parent.insertBefore(n,t)},querySelector:function(n){return this._parent.querySelector(n)},querySelectorAll:function(n){return this._parent.querySelectorAll(n)}};var MN="http://www.w3.org/1999/xhtml";const jJ={svg:"http://www.w3.org/2000/svg",xhtml:MN,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function zT(n){var t=n+="",e=t.indexOf(":");return e>=0&&"xmlns"!==(t=n.slice(0,e))&&(n=n.slice(e+1)),jJ.hasOwnProperty(t)?{space:jJ[t],local:n}:n}function ANe(n){return function(){this.removeAttribute(n)}}function gNe(n){return function(){this.removeAttributeNS(n.space,n.local)}}function _Ne(n,t){return function(){this.setAttribute(n,t)}}function bNe(n,t){return function(){this.setAttributeNS(n.space,n.local,t)}}function vNe(n,t){return function(){var e=t.apply(this,arguments);null==e?this.removeAttribute(n):this.setAttribute(n,e)}}function yNe(n,t){return function(){var e=t.apply(this,arguments);null==e?this.removeAttributeNS(n.space,n.local):this.setAttributeNS(n.space,n.local,e)}}function XJ(n){return n.ownerDocument&&n.ownerDocument.defaultView||n.document&&n||n.defaultView}function xNe(n){return function(){this.style.removeProperty(n)}}function CNe(n,t,e){return function(){this.style.setProperty(n,t,e)}}function MNe(n,t,e){return function(){var i=t.apply(this,arguments);null==i?this.style.removeProperty(n):this.style.setProperty(n,i,e)}}function mb(n,t){return n.style.getPropertyValue(t)||XJ(n).getComputedStyle(n,null).getPropertyValue(t)}function SNe(n){return function(){delete this[n]}}function TNe(n,t){return function(){this[n]=t}}function INe(n,t){return function(){var e=t.apply(this,arguments);null==e?delete this[n]:this[n]=e}}function KJ(n){return n.trim().split(/^|\s+/)}function EN(n){return n.classList||new YJ(n)}function YJ(n){this._node=n,this._names=KJ(n.getAttribute("class")||"")}function ZJ(n,t){for(var e=EN(n),i=-1,r=t.length;++i=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(n){return this._names.indexOf(n)>=0}};var nee=[null];function rc(n,t){this._groups=n,this._parents=t}function iee(){return new rc([[document.documentElement]],nee)}rc.prototype=iee.prototype={constructor:rc,select:function OOe(n){"function"!=typeof n&&(n=CN(n));for(var t=this._groups,e=t.length,i=new Array(e),r=0;r=C&&(C=M+1);!(I=_[C])&&++C=0;)(s=i[r])&&(o&&4^s.compareDocumentPosition(o)&&o.parentNode.insertBefore(s,o),o=s);return this},sort:function lNe(n){function t(u,h){return u&&h?n(u.__data__,h.__data__):!u-!h}n||(n=cNe);for(var e=this._groups,i=e.length,r=new Array(i),o=0;o1?this.each((null==t?xNe:"function"==typeof t?MNe:CNe)(n,t,e??"")):mb(this.node(),n)},property:function FNe(n,t){return arguments.length>1?this.each((null==t?SNe:"function"==typeof t?INe:TNe)(n,t)):this.node()[n]},classed:function PNe(n,t){var e=KJ(n+"");if(arguments.length<2){for(var i=EN(this.node()),r=-1,o=e.length;++r=0&&(e=t.slice(i+1),t=t.slice(0,i)),{type:t,name:e}})}(n+""),o=i.length;if(!(arguments.length<2)){for(a=t?a5e:s5e,r=0;r{}};function ree(){for(var i,n=0,t=arguments.length,e={};n=0&&(i=e.slice(r+1),e=e.slice(0,r)),e&&!t.hasOwnProperty(e))throw new Error("unknown type: "+e);return{type:e,name:i}})}(n+"",e),o=-1,s=i.length;if(!(arguments.length<2)){if(null!=t&&"function"!=typeof t)throw new Error("invalid callback: "+t);for(;++o0)for(var r,o,e=new Array(r),i=0;i=0&&n._call.call(void 0,t),n=n._next;--pb}()}finally{pb=0,function y5e(){for(var n,e,t=GT,i=1/0;t;)t._call?(i>t._time&&(i=t._time),n=t,t=t._next):(e=t._next,t._next=null,t=n?n._next=e:GT=e);ex=n,TN(i)}(),GA=0}}function v5e(){var n=tx.now(),t=n-WT;t>see&&($T-=t,WT=n)}function TN(n){pb||(Zw&&(Zw=clearTimeout(Zw)),n-GA>24?(n<1/0&&(Zw=setTimeout(cee,n-tx.now()-$T)),Jw&&(Jw=clearInterval(Jw))):(Jw||(WT=tx.now(),Jw=setInterval(v5e,see)),pb=1,aee(cee)))}function dee(n,t,e){var i=new jT;return i.restart(r=>{i.stop(),n(r+t)},t=null==t?0:+t,e),i}jT.prototype=lee.prototype={constructor:jT,restart:function(n,t,e){if("function"!=typeof n)throw new TypeError("callback is not a function");e=(null==e?SN():+e)+(null==t?0:+t),!this._next&&ex!==this&&(ex?ex._next=this:GT=this,ex=this),this._call=n,this._time=e,TN()},stop:function(){this._call&&(this._call=null,this._time=1/0,TN())}};var w5e=g5e("start","end","cancel","interrupt"),x5e=[],uee=0,XT=3;function YT(n,t,e,i,r,o){var s=n.__transition;if(s){if(e in s)return}else n.__transition={};!function C5e(n,t,e){var r,i=n.__transition;function s(c){var d,u,h,f;if(1!==e.state)return l();for(d in i)if((f=i[d]).name===e.name){if(f.state===XT)return dee(s);4===f.state?(f.state=6,f.timer.stop(),f.on.call("interrupt",n,n.__data__,f.index,f.group),delete i[d]):+duee)throw new Error("too late; already scheduled");return e}function xu(n,t){var e=wd(n,t);if(e.state>XT)throw new Error("too late; already running");return e}function wd(n,t){var e=n.__transition;if(!e||!(e=e[t]))throw new Error("transition not found");return e}function xd(n,t){return n=+n,t=+t,function(e){return n*(1-e)+t*e}}var ZT,mee=180/Math.PI,kN={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function pee(n,t,e,i,r,o){var s,a,l;return(s=Math.sqrt(n*n+t*t))&&(n/=s,t/=s),(l=n*e+t*i)&&(e-=n*l,i-=t*l),(a=Math.sqrt(e*e+i*i))&&(e/=a,i/=a,l/=a),n*i180?d+=360:d-c>180&&(c+=360),h.push({i:u.push(r(u)+"rotate(",null,i)-2,x:xd(c,d)})):d&&u.push(r(u)+"rotate("+d+i)}(c.rotate,d.rotate,u,h),function a(c,d,u,h){c!==d?h.push({i:u.push(r(u)+"skewX(",null,i)-2,x:xd(c,d)}):d&&u.push(r(u)+"skewX("+d+i)}(c.skewX,d.skewX,u,h),function l(c,d,u,h,f,A){if(c!==u||d!==h){var y=f.push(r(f)+"scale(",null,",",null,")");A.push({i:y-4,x:xd(c,u)},{i:y-2,x:xd(d,h)})}else(1!==u||1!==h)&&f.push(r(f)+"scale("+u+","+h+")")}(c.scaleX,c.scaleY,d.scaleX,d.scaleY,u,h),c=d=null,function(f){for(var _,A=-1,y=h.length;++A>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===e?eI(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===e?eI(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=R5e.exec(n))?new fl(t[1],t[2],t[3],1):(t=L5e.exec(n))?new fl(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=O5e.exec(n))?eI(t[1],t[2],t[3],t[4]):(t=N5e.exec(n))?eI(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=U5e.exec(n))?Cee(t[1],t[2]/100,t[3]/100,1):(t=H5e.exec(n))?Cee(t[1],t[2]/100,t[3]/100,t[4]):_ee.hasOwnProperty(n)?yee(_ee[n]):"transparent"===n?new fl(NaN,NaN,NaN,0):null}function yee(n){return new fl(n>>16&255,n>>8&255,255&n,1)}function eI(n,t,e,i){return i<=0&&(n=t=e=NaN),new fl(n,t,e,i)}function tI(n,t,e,i){return 1===arguments.length?function z5e(n){return n instanceof nx||(n=WA(n)),n?new fl((n=n.rgb()).r,n.g,n.b,n.opacity):new fl}(n):new fl(n,t,e,i??1)}function fl(n,t,e,i){this.r=+n,this.g=+t,this.b=+e,this.opacity=+i}function wee(){return`#${jA(this.r)}${jA(this.g)}${jA(this.b)}`}function xee(){const n=nI(this.opacity);return`${1===n?"rgb(":"rgba("}${$A(this.r)}, ${$A(this.g)}, ${$A(this.b)}${1===n?")":`, ${n})`}`}function nI(n){return isNaN(n)?1:Math.max(0,Math.min(1,n))}function $A(n){return Math.max(0,Math.min(255,Math.round(n)||0))}function jA(n){return((n=$A(n))<16?"0":"")+n.toString(16)}function Cee(n,t,e,i){return i<=0?n=t=e=NaN:e<=0||e>=1?n=t=NaN:t<=0&&(n=NaN),new Cd(n,t,e,i)}function Mee(n){if(n instanceof Cd)return new Cd(n.h,n.s,n.l,n.opacity);if(n instanceof nx||(n=WA(n)),!n)return new Cd;if(n instanceof Cd)return n;var t=(n=n.rgb()).r/255,e=n.g/255,i=n.b/255,r=Math.min(t,e,i),o=Math.max(t,e,i),s=NaN,a=o-r,l=(o+r)/2;return a?(s=t===o?(e-i)/a+6*(e0&&l<1?0:s,new Cd(s,a,l,n.opacity)}function Cd(n,t,e,i){this.h=+n,this.s=+t,this.l=+e,this.opacity=+i}function Eee(n){return(n=(n||0)%360)<0?n+360:n}function iI(n){return Math.max(0,Math.min(1,n||0))}function RN(n,t,e){return 255*(n<60?t+(e-t)*n/60:n<180?e:n<240?t+(e-t)*(240-n)/60:t)}function See(n,t,e,i,r){var o=n*n,s=o*n;return((1-3*n+3*o-s)*t+(4-6*o+3*s)*e+(1+3*n+3*o-3*s)*i+s*r)/6}PN(nx,WA,{copy(n){return Object.assign(new this.constructor,this,n)},displayable(){return this.rgb().displayable()},hex:bee,formatHex:bee,formatHex8:function V5e(){return this.rgb().formatHex8()},formatHsl:function Q5e(){return Mee(this).formatHsl()},formatRgb:vee,toString:vee}),PN(fl,tI,gee(nx,{brighter(n){return n=null==n?JT:Math.pow(JT,n),new fl(this.r*n,this.g*n,this.b*n,this.opacity)},darker(n){return n=null==n?.7:Math.pow(.7,n),new fl(this.r*n,this.g*n,this.b*n,this.opacity)},rgb(){return this},clamp(){return new fl($A(this.r),$A(this.g),$A(this.b),nI(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:wee,formatHex:wee,formatHex8:function q5e(){return`#${jA(this.r)}${jA(this.g)}${jA(this.b)}${jA(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:xee,toString:xee})),PN(Cd,function G5e(n,t,e,i){return 1===arguments.length?Mee(n):new Cd(n,t,e,i??1)},gee(nx,{brighter(n){return n=null==n?JT:Math.pow(JT,n),new Cd(this.h,this.s,this.l*n,this.opacity)},darker(n){return n=null==n?.7:Math.pow(.7,n),new Cd(this.h,this.s,this.l*n,this.opacity)},rgb(){var n=this.h%360+360*(this.h<0),t=isNaN(n)||isNaN(this.s)?0:this.s,e=this.l,i=e+(e<.5?e:1-e)*t,r=2*e-i;return new fl(RN(n>=240?n-240:n+120,r,i),RN(n,r,i),RN(n<120?n+240:n-120,r,i),this.opacity)},clamp(){return new Cd(Eee(this.h),iI(this.s),iI(this.l),nI(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const n=nI(this.opacity);return`${1===n?"hsl(":"hsla("}${Eee(this.h)}, ${100*iI(this.s)}%, ${100*iI(this.l)}%${1===n?")":`, ${n})`}`}}));const LN=n=>()=>n;function Iee(n,t){var e=t-n;return e?function Tee(n,t){return function(e){return n+e*t}}(n,e):LN(isNaN(n)?t:n)}const rI=function n(t){var e=function X5e(n){return 1==(n=+n)?Iee:function(t,e){return e-t?function j5e(n,t,e){return n=Math.pow(n,e),t=Math.pow(t,e)-n,e=1/e,function(i){return Math.pow(n+i*t,e)}}(t,e,n):LN(isNaN(t)?e:t)}}(t);function i(r,o){var s=e((r=tI(r)).r,(o=tI(o)).r),a=e(r.g,o.g),l=e(r.b,o.b),c=Iee(r.opacity,o.opacity);return function(d){return r.r=s(d),r.g=a(d),r.b=l(d),r.opacity=c(d),r+""}}return i.gamma=n,i}(1);function Fee(n){return function(t){var s,a,e=t.length,i=new Array(e),r=new Array(e),o=new Array(e);for(s=0;s=1?(e=1,t-1):Math.floor(e*t),r=n[i],o=n[i+1];return See((e-i/t)*t,i>0?n[i-1]:2*r-o,r,o,ie&&(o=t.slice(e,o),a[s]?a[s]+=o:a[++s]=o),(i=i[0])===(r=r[0])?a[s]?a[s]+=r:a[++s]=r:(a[++s]=null,l.push({i:s,x:xd(i,r)})),e=NN.lastIndex;return e=0&&(t=t.slice(0,e)),!t||"start"===t})}(t)?DN:xu;return function(){var s=o(this,n),a=s.on;a!==i&&(r=(i=a).copy()).on(t,e),s.on=r}}(e,n,t))},attr:function rUe(n,t){var e=zT(n),i="transform"===e?F5e:kee;return this.attrTween(n,"function"==typeof t?(e.local?iUe:nUe)(e,i,BN(this,"attr."+n,t)):null==t?(e.local?J5e:Z5e)(e):(e.local?tUe:eUe)(e,i,t))},attrTween:function cUe(n,t){var e="attr."+n;if(arguments.length<2)return(e=this.tween(e))&&e._value;if(null==t)return this.tween(e,null);if("function"!=typeof t)throw new Error;var i=zT(n);return this.tween(e,(i.local?aUe:lUe)(i,t))},style:function RUe(n,t,e){var i="transform"==(n+="")?I5e:kee;return null==t?this.styleTween(n,function DUe(n,t){var e,i,r;return function(){var o=mb(this,n),s=(this.style.removeProperty(n),mb(this,n));return o===s?null:o===e&&s===i?r:r=t(e=o,i=s)}}(n,i)).on("end.style."+n,Bee(n)):"function"==typeof t?this.styleTween(n,function BUe(n,t,e){var i,r,o;return function(){var s=mb(this,n),a=e(this),l=a+"";return null==a&&(this.style.removeProperty(n),l=a=mb(this,n)),s===l?null:s===i&&l===r?o:(r=l,o=t(i=s,a))}}(n,i,BN(this,"style."+n,t))).each(function PUe(n,t){var e,i,r,a,o="style."+t,s="end."+o;return function(){var l=xu(this,n),c=l.on,d=null==l.value[o]?a||(a=Bee(t)):void 0;(c!==e||r!==d)&&(i=(e=c).copy()).on(s,r=d),l.on=i}}(this._id,n)):this.styleTween(n,function kUe(n,t,e){var i,o,r=e+"";return function(){var s=mb(this,n);return s===r?null:s===i?o:o=t(i=s,e)}}(n,i,t),e).on("end.style."+n,null)},styleTween:function NUe(n,t,e){var i="style."+(n+="");if(arguments.length<2)return(i=this.tween(i))&&i._value;if(null==t)return this.tween(i,null);if("function"!=typeof t)throw new Error;return this.tween(i,function OUe(n,t,e){var i,r;function o(){var s=t.apply(this,arguments);return s!==r&&(i=(r=s)&&function LUe(n,t,e){return function(i){this.style.setProperty(n,t.call(this,i),e)}}(n,s,e)),i}return o._value=t,o}(n,t,e??""))},text:function VUe(n){return this.tween("text","function"==typeof n?function HUe(n){return function(){var t=n(this);this.textContent=t??""}}(BN(this,"text",n)):function UUe(n){return function(){this.textContent=n}}(null==n?"":n+""))},textTween:function qUe(n){var t="text";if(arguments.length<1)return(t=this.tween(t))&&t._value;if(null==n)return this.tween(t,null);if("function"!=typeof n)throw new Error;return this.tween(t,function zUe(n){var t,e;function i(){var r=n.apply(this,arguments);return r!==e&&(t=(e=r)&&function QUe(n){return function(t){this.textContent=n.call(this,t)}}(r)),t}return i._value=n,i}(n))},remove:function EUe(){return this.on("end.remove",function MUe(n){return function(){var t=this.parentNode;for(var e in this.__transition)if(+e!==n)return;t&&t.removeChild(this)}}(this._id))},tween:function B5e(n,t){var e=this._id;if(n+="",arguments.length<2){for(var s,i=wd(this.node(),e).tween,r=0,o=i.length;r2&&i.state<5,i.state=6,i.timer.stop(),i.on.call(r?"interrupt":"cancel",n,n.__data__,i.index,i.group),delete e[s]):o=!1;o&&delete n.__transition}}(this,n)})},Yw.prototype.transition=function ZUe(n){var t,e;n instanceof Jh?(t=n._id,n=n._name):(t=Pee(),(e=KUe).time=SN(),n=null==n?null:n+"");for(var i=this._groups,r=i.length,o=0;o1?i[0]+i.slice(2):i,+n.slice(e+1)]}function bb(n){return(n=aI(Math.abs(n)))?n[1]:NaN}["w","e"].map(ox),["n","s"].map(ox),["n","w","e","s","nw","ne","sw","se"].map(ox);var Hee,c8e=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function lI(n){if(!(t=c8e.exec(n)))throw new Error("invalid format: "+n);var t;return new zN({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}function zN(n){this.fill=void 0===n.fill?" ":n.fill+"",this.align=void 0===n.align?">":n.align+"",this.sign=void 0===n.sign?"-":n.sign+"",this.symbol=void 0===n.symbol?"":n.symbol+"",this.zero=!!n.zero,this.width=void 0===n.width?void 0:+n.width,this.comma=!!n.comma,this.precision=void 0===n.precision?void 0:+n.precision,this.trim=!!n.trim,this.type=void 0===n.type?"":n.type+""}function Vee(n,t){var e=aI(n,t);if(!e)return n+"";var i=e[0],r=e[1];return r<0?"0."+new Array(-r).join("0")+i:i.length>r+1?i.slice(0,r+1)+"."+i.slice(r+1):i+new Array(r-i.length+2).join("0")}lI.prototype=zN.prototype,zN.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};const Qee={"%":(n,t)=>(100*n).toFixed(t),b:n=>Math.round(n).toString(2),c:n=>n+"",d:function s8e(n){return Math.abs(n=Math.round(n))>=1e21?n.toLocaleString("en").replace(/,/g,""):n.toString(10)},e:(n,t)=>n.toExponential(t),f:(n,t)=>n.toFixed(t),g:(n,t)=>n.toPrecision(t),o:n=>Math.round(n).toString(8),p:(n,t)=>Vee(100*n,t),r:Vee,s:function u8e(n,t){var e=aI(n,t);if(!e)return n+"";var i=e[0],r=e[1],o=r-(Hee=3*Math.max(-8,Math.min(8,Math.floor(r/3))))+1,s=i.length;return o===s?i:o>s?i+new Array(o-s+1).join("0"):o>0?i.slice(0,o)+"."+i.slice(o):"0."+new Array(1-o).join("0")+aI(n,Math.max(0,t+o-1))[0]},X:n=>Math.round(n).toString(16).toUpperCase(),x:n=>Math.round(n).toString(16)};function zee(n){return n}var cI,dI,Wee,qee=Array.prototype.map,Gee=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"];!function f8e(n){cI=function h8e(n){var t=void 0===n.grouping||void 0===n.thousands?zee:function a8e(n,t){return function(e,i){for(var r=e.length,o=[],s=0,a=n[0],l=0;r>0&&a>0&&(l+a+1>i&&(a=Math.max(1,i-l)),o.push(e.substring(r-=a,r+a)),!((l+=a+1)>i));)a=n[s=(s+1)%n.length];return o.reverse().join(t)}}(qee.call(n.grouping,Number),n.thousands+""),e=void 0===n.currency?"":n.currency[0]+"",i=void 0===n.currency?"":n.currency[1]+"",r=void 0===n.decimal?".":n.decimal+"",o=void 0===n.numerals?zee:function l8e(n){return function(t){return t.replace(/[0-9]/g,function(e){return n[+e]})}}(qee.call(n.numerals,String)),s=void 0===n.percent?"%":n.percent+"",a=void 0===n.minus?"\u2212":n.minus+"",l=void 0===n.nan?"NaN":n.nan+"";function c(u){var h=(u=lI(u)).fill,f=u.align,A=u.sign,y=u.symbol,_=u.zero,b=u.width,M=u.comma,C=u.precision,E=u.trim,I=u.type;"n"===I?(M=!0,I="g"):Qee[I]||(void 0===C&&(C=12),E=!0,I="g"),(_||"0"===h&&"="===f)&&(_=!0,h="0",f="=");var V="$"===y?e:"#"===y&&/[boxX]/.test(I)?"0"+I.toLowerCase():"",R="$"===y?i:/[%p]/.test(I)?s:"",K=Qee[I],k=/[defgprs%]/.test(I);function W(ue){var Z,ve,re,Se=V,Me=R;if("c"===I)Me=K(ue)+Me,ue="";else{var oe=(ue=+ue)<0||1/ue<0;if(ue=isNaN(ue)?l:K(Math.abs(ue),C),E&&(ue=function d8e(n){e:for(var r,t=n.length,e=1,i=-1;e0&&(i=0)}return i>0?n.slice(0,i)+n.slice(r+1):n}(ue)),oe&&0==+ue&&"+"!==A&&(oe=!1),Se=(oe?"("===A?A:a:"-"===A||"("===A?"":A)+Se,Me=("s"===I?Gee[8+Hee/3]:"")+Me+(oe&&"("===A?")":""),k)for(Z=-1,ve=ue.length;++Z(re=ue.charCodeAt(Z))||re>57){Me=(46===re?r+ue.slice(Z+1):ue.slice(Z))+Me,ue=ue.slice(0,Z);break}}M&&!_&&(ue=t(ue,1/0));var ae=Se.length+ue.length+Me.length,Ce=ae>1)+Se+ue+Me+Ce.slice(ae);break;default:ue=Ce+Se+ue+Me}return o(ue)}return C=void 0===C?6:/[gprs]/.test(I)?Math.max(1,Math.min(21,C)):Math.max(0,Math.min(20,C)),W.toString=function(){return u+""},W}return{format:c,formatPrefix:function d(u,h){var f=c(((u=lI(u)).type="f",u)),A=3*Math.max(-8,Math.min(8,Math.floor(bb(h)/3))),y=Math.pow(10,-A),_=Gee[8+A/3];return function(b){return f(y*b)+_}}}}(n),dI=cI.format,Wee=cI.formatPrefix}({thousands:",",grouping:[3],currency:["$",""]});const m8e=Math.sqrt(50),p8e=Math.sqrt(10),A8e=Math.sqrt(2);function uI(n,t,e){const i=(t-n)/Math.max(0,e),r=Math.floor(Math.log10(i)),o=i/Math.pow(10,r),s=o>=m8e?10:o>=p8e?5:o>=A8e?2:1;let a,l,c;return r<0?(c=Math.pow(10,-r)/s,a=Math.round(n*c),l=Math.round(t*c),a/ct&&--l,c=-c):(c=Math.pow(10,r)*s,a=Math.round(n/c),l=Math.round(t/c),a*ct&&--l),lt?1:n>=t?0:NaN}function b8e(n,t){return null==n||null==t?NaN:tn?1:t>=n?0:NaN}function $ee(n){let t,e,i;function r(a,l,c=0,d=a.length){if(c>>1;e(a[u],l)<0?c=u+1:d=u}while(chI(n(a),l),i=(a,l)=>n(a)-l):(t=n===hI||n===b8e?n:v8e,e=n,i=n),{left:r,center:function s(a,l,c=0,d=a.length){const u=r(a,l,c,d-1);return u>c&&i(a[u-1],l)>-i(a[u],l)?u-1:u},right:function o(a,l,c=0,d=a.length){if(c>>1;e(a[u],l)<=0?c=u+1:d=u}while(c0))return[];if((n=+n)==(t=+t))return[n];const i=t=r))return[];const a=o-r+1,l=new Array(a);if(i)if(s<0)for(let c=0;c0;){if((c=qN(s,a,e))===l)return i[r]=s,i[o]=a,t(i);if(c>0)s=Math.floor(s/c)*c,a=Math.ceil(a/c)*c;else{if(!(c<0))break;s=Math.ceil(s*c)/c,a=Math.floor(a*c)/c}l=c}return n},n}function $N(){var n=function L8e(){return function R8e(){var i,r,o,a,l,c,n=Kee,t=Kee,e=GN,s=vb;function d(){var h=Math.min(n.length,t.length);return s!==vb&&(s=function D8e(n,t){var e;return n>t&&(e=n,n=t,t=e),function(i){return Math.max(n,Math.min(t,i))}}(n[0],n[h-1])),a=h>2?B8e:k8e,l=c=null,u}function u(h){return null==h||isNaN(h=+h)?o:(l||(l=a(n.map(i),t,e)))(i(s(h)))}return u.invert=function(h){return s(r((c||(c=a(t,n.map(i),xd)))(h)))},u.domain=function(h){return arguments.length?(n=Array.from(h,F8e),d()):n.slice()},u.range=function(h){return arguments.length?(t=Array.from(h),d()):t.slice()},u.rangeRound=function(h){return t=Array.from(h),e=T8e,d()},u.clamp=function(h){return arguments.length?(s=!!h||vb,d()):s!==vb},u.interpolate=function(h){return arguments.length?(e=h,d()):e},u.unknown=function(h){return arguments.length?(o=h,u):o},function(h,f){return i=h,r=f,d()}}()(vb,vb)}();return n.copy=function(){return function P8e(n,t){return t.domain(n.domain()).range(n.range()).interpolate(n.interpolate()).clamp(n.clamp()).unknown(n.unknown())}(n,$N())},O8e.apply(n,arguments),Q8e(n)}function Yee(n){return"string"==typeof n?new rc([[document.querySelector(n)]],[document.documentElement]):new rc([[n]],nee)}function yb(n){return function(){return n}}function Zee(n){this._context=n}function q8e(n){return new Zee(n)}Zee.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(n,t){switch(n=+n,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(n,t):this._context.moveTo(n,t);break;case 1:this._point=2;default:this._context.lineTo(n,t)}}};const jN=Math.PI,XN=2*jN,XA=1e-6,G8e=XN-XA;function Jee(n){this._+=n[0];for(let t=1,e=n.length;t=0))throw new Error(`invalid digits: ${n}`);if(t>15)return Jee;const e=10**t;return function(i){this._+=i[0];for(let r=1,o=i.length;rXA)if(Math.abs(u*l-c*d)>XA&&o){let f=i-s,A=r-a,y=l*l+c*c,_=f*f+A*A,b=Math.sqrt(y),M=Math.sqrt(h),C=o*Math.tan((jN-Math.acos((y+h-_)/(2*b*M)))/2),E=C/M,I=C/b;Math.abs(E-1)>XA&&this._append`L${t+E*d},${e+E*u}`,this._append`A${o},${o},0,0,${+(u*f>d*A)},${this._x1=t+I*l},${this._y1=e+I*c}`}else this._append`L${this._x1=t},${this._y1=e}`}arc(t,e,i,r,o,s){if(t=+t,e=+e,s=!!s,(i=+i)<0)throw new Error(`negative radius: ${i}`);let a=i*Math.cos(r),l=i*Math.sin(r),c=t+a,d=e+l,u=1^s,h=s?r-o:o-r;null===this._x1?this._append`M${c},${d}`:(Math.abs(this._x1-c)>XA||Math.abs(this._y1-d)>XA)&&this._append`L${c},${d}`,i&&(h<0&&(h=h%XN+XN),h>G8e?this._append`A${i},${i},0,1,${u},${t-a},${e-l}A${i},${i},0,1,${u},${this._x1=c},${this._y1=d}`:h>XA&&this._append`A${i},${i},0,${+(h>=jN)},${u},${this._x1=t+i*Math.cos(o)},${this._y1=e+i*Math.sin(o)}`)}rect(t,e,i,r){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+e}h${i=+i}v${+r}h${-i}Z`}toString(){return this._}}function X8e(n){return n[0]}function K8e(n){return n[1]}function mI(n,t){this._context=n,this._t=t}function Z8e(n){return new mI(n,0)}function wb(n,t,e){this.k=n,this.x=t,this.y=e}mI.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(n,t){switch(n=+n,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(n,t):this._context.moveTo(n,t);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(n,t);else{var e=this._x*(1-this._t)+n*this._t;this._context.lineTo(e,this._y),this._context.lineTo(e,t)}}this._x=n,this._y=t}},wb.prototype={constructor:wb,scale:function(n){return 1===n?this:new wb(this.k*n,this.x,this.y)},translate:function(n,t){return 0===n&0===t?this:new wb(this.k,this.x+this.k*n,this.y+this.k*t)},apply:function(n){return[n[0]*this.k+this.x,n[1]*this.k+this.y]},applyX:function(n){return n*this.k+this.x},applyY:function(n){return n*this.k+this.y},invert:function(n){return[(n[0]-this.x)/this.k,(n[1]-this.y)/this.k]},invertX:function(n){return(n-this.x)/this.k},invertY:function(n){return(n-this.y)/this.k},rescaleX:function(n){return n.copy().domain(n.range().map(this.invertX,this).map(n.invert,n))},rescaleY:function(n){return n.copy().domain(n.range().map(this.invertY,this).map(n.invert,n))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}},new wb(1,0,0);let s6e=(()=>{class n{ngOnChanges(){this.values.length>0&&(this.percentileRanks=this.isAttributeDirectionInversed?this.calculateReversedPercentileRanks(this.values):this.calculatePercentileRanks(this.values),this.renderDiagram())}renderDiagram(){this.initializeDiagramDimesions(),this.clearDiagramContainer();const e=this.createSvg(),i=this.createGroup(e),r=this.createXScale(),o=this.createYScale();this.drawAxes(i,r,o),this.drawFrame(i),this.drawLabels(i),this.drawAreas(i,r),this.drawLine(i)}initializeDiagramDimesions(){this.frameWidth=296,this.frameBuffer=10,this.frameHeight=80,this.marginTop=10,this.marginBottom=10,this.marginLeft=66,this.marginRight=54,this.diagramWidth=this.frameWidth-this.marginLeft-this.marginRight,this.diagramHeight=this.frameHeight-this.marginTop-this.marginBottom,this.yLabelYOffset=-47}clearDiagramContainer(){Yee("#cc-range-diagram-container").selectAll("*").remove()}createSvg(){return Yee("#cc-range-diagram-container").append("svg")}createGroup(e){return e.append("g").attr("transform",`translate(${this.marginLeft}, ${this.marginTop})`)}drawFrame(e){e.append("path").attr("d",`M ${-this.frameBuffer} ${-this.frameBuffer} h${this.diagramWidth+2*this.frameBuffer} v${this.diagramHeight+2*this.frameBuffer} h${-this.diagramWidth-2*this.frameBuffer} v${-this.diagramHeight-2*this.frameBuffer}`).attr("fill","none").attr("stroke","#888").attr("stroke-width","1px")}drawAxes(e,i,r){e.append("g").attr("id","axis-x").attr("transform",`translate(0,${this.diagramHeight+this.frameBuffer})`).call(function POe(n){return VT(3,n)}(i).ticks(5)).attr("color","#888"),e.append("g").attr("id","axis-y").attr("transform",`translate(${-this.frameBuffer}, 0)`).call(function ROe(n){return VT(4,n)}(r).ticks(5).tickFormat(function(o){return o>=1e4?`${dI(".0f")(o/1e3)}k`:o>=1e3?`${dI(".1f")(o/1e3)}k`:o.toString()})).attr("color","#888")}createXScale(){return $N().domain(function SOe(n,t){let e,i;if(void 0===t)for(const r of n)null!=r&&(void 0===e?r>=r&&(e=i=r):(e>r&&(e=r),i=o&&(e=i=o):(e>o&&(e=o),ie.x)).range([0,this.diagramWidth])}createYScale(){const e=[0,QJ(this.percentileRanks,r=>r.y)],i=[QJ(this.percentileRanks,r=>r.y),0];return $N().domain(this.isAttributeDirectionInversed?i:e).range([this.diagramHeight,0])}drawLabels(e){const o=(this.diagramHeight+2*this.frameBuffer)/2-this.frameBuffer;e.append("text").attr("id","y-label").attr("class","y label").attr("transform","rotate(-90)").attr("x",-o).attr("y",this.yLabelYOffset).attr("text-anchor","middle").attr("fill","#888").text(`${this.colorMetric}`),e.append("text").attr("id","x-label").attr("class","x label").attr("text-anchor","middle").attr("x",this.diagramWidth/2).attr("y",this.diagramHeight+this.marginTop+this.marginBottom+2*this.frameBuffer).attr("fill","#888").text(`Quantiles (% of ${this.colorMetric})`)}drawAreas(e,i){const r=i(this.isAttributeDirectionInversed?this.calculateReversedPercentileFromMetricValue(this.currentRightValue):this.calculatePercentileFromMetricValue(this.currentLeftValue)),o=i(this.isAttributeDirectionInversed?this.calculateReversedPercentileFromMetricValue(this.currentLeftValue):this.calculatePercentileFromMetricValue(this.currentRightValue));e.append("rect").attr("class","left-area").attr("x",0).attr("y",-this.frameBuffer).attr("width",r).attr("height",this.diagramHeight+2*this.frameBuffer).style("fill",this.isAttributeDirectionInversed?this.rightColor:this.leftColor).style("fill-opacity","0.3"),e.append("rect").attr("class","middle-area").attr("x",r).attr("y",-this.frameBuffer).attr("width",o-r).attr("height",this.diagramHeight+2*this.frameBuffer).style("fill",this.middleColor).style("fill-opacity","0.3"),e.append("rect").attr("class","right-area").attr("x",o).attr("y",-this.frameBuffer).attr("width",this.diagramWidth-o).attr("height",this.diagramHeight+2*this.frameBuffer).style("fill",this.isAttributeDirectionInversed?this.leftColor:this.rightColor).style("fill-opacity","0.3")}drawLine(e){e.append("path").attr("id","diagram-path").datum(this.percentileRanks).attr("fill","none").attr("stroke","#888").attr("stroke-width",1).attr("d",function Y8e(n,t){var e=yb(!0),i=null,r=q8e,o=null,s=function j8e(n){let t=3;return n.digits=function(e){if(!arguments.length)return t;if(null==e)t=null;else{const i=Math.floor(e);if(!(i>=0))throw new RangeError(`invalid digits: ${e}`);t=i}return n},()=>new fI(t)}(a);function a(l){var c,u,f,d=(l=function z8e(n){return"object"==typeof n&&"length"in n?n:Array.from(n)}(l)).length,h=!1;for(null==i&&(o=r(f=s())),c=0;c<=d;++c)!(cthis.createXScale()(i.x)).y(i=>this.createYScale()(i.y)))}calculatePercentileRanks(e){const i=[...new Set(e)].sort((s,a)=>s-a),r=e.length,o=[{x:0,y:i[0]}];for(const s of i){const l=e.filter(c=>c<=s).length/r*100;o.push({x:l,y:s})}return o}calculateReversedPercentileRanks(e){const i=[...new Set(e)].sort((s,a)=>s-a).reverse(),r=e.length,o=[{x:0,y:i[0]}];for(const s of i){const l=e.filter(c=>c>=s).length/r*100;o.push({x:l,y:s})}return o.sort((s,a)=>s.x-a.x)}calculatePercentileFromMetricValue(e){if(e===this.minValue)return 0;if(e===this.maxValue)return 100;let i=null;for(const r of this.percentileRanks){if(!(r.ye))return i;i=r.x}}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-metric-color-range-diagram"]],inputs:{minValue:"minValue",maxValue:"maxValue",colorMetric:"colorMetric",values:"values",currentLeftValue:"currentLeftValue",currentRightValue:"currentRightValue",leftColor:"leftColor",middleColor:"middleColor",rightColor:"rightColor",isAttributeDirectionInversed:"isAttributeDirectionInversed"},features:[wr],decls:1,vars:0,consts:[["id","cc-range-diagram-container",1,"cc-range-diagram-container"]],template:function(i,r){1&i&&xe(0,"div",0)},styles:["#slider-label-left[_ngcontent-%COMP%], #slider-label-right[_ngcontent-%COMP%], #x-label[_ngcontent-%COMP%], #y-label[_ngcontent-%COMP%], #axis-x[_ngcontent-%COMP%], #axis-y[_ngcontent-%COMP%]{font-size:11px}#slider-label-left[text-anchor].end[_ngcontent-%COMP%], #slider-label-right[text-anchor].end[_ngcontent-%COMP%], #x-label[text-anchor].end[_ngcontent-%COMP%], #y-label[text-anchor].end[_ngcontent-%COMP%], #axis-x[text-anchor].end[_ngcontent-%COMP%], #axis-y[text-anchor].end[_ngcontent-%COMP%]{text-anchor:end}#slider-label-left[text-anchor].start[_ngcontent-%COMP%], #slider-label-right[text-anchor].start[_ngcontent-%COMP%], #x-label[text-anchor].start[_ngcontent-%COMP%], #y-label[text-anchor].start[_ngcontent-%COMP%], #axis-x[text-anchor].start[_ngcontent-%COMP%], #axis-y[text-anchor].start[_ngcontent-%COMP%]{text-anchor:start}#slider-label-left[_ngcontent-%COMP%]{font-size:11px;fill:#888;text-anchor:end;dominant-baseline:hanging}#slider-label-right[_ngcontent-%COMP%]{font-size:11px;fill:#888;text-anchor:start;dominant-baseline:hanging}.cc-range-diagram-container[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{width:100%;height:130px}[_nghost-%COMP%]{display:flex;justify-content:center}"]})}}return n})();const l6e=({thumbX:n,minValue:t,maxValue:e,sliderWidth:i})=>Math.round(t+n*((e-t)/i)),tte=({newThumbScreenX:n,sliderBoundingClientRectX:t,thumbRadius:e,sliderWidth:i,minValue:r,maxValue:o})=>{const s=n-t+e;return{updatedThumbX:s,upcomingValue:l6e({thumbX:s,minValue:r,maxValue:o,sliderWidth:i})}},u6e=["minLabel"],h6e=["maxLabel"],f6e=["currentLeftLabel"],m6e=["currentRightLabel"],p6e=["combinedCurrentLeftRightLabel"];let A6e=(()=>{class n{constructor(e){this.changeDetector=e,this.hideMinLabel=!1,this.hideMaxLabel=!1,this.doLeftRightLabelOverlap=!1}ngAfterViewChecked(){this.updateLabelDisplays()}updateLabelDisplays(){const e=this.minLabel.nativeElement.getBoundingClientRect().width,i=this.currentLeftLabel.nativeElement.getBoundingClientRect().width;this.currentLeftLabelLeftPosition=this.sliderRangePosition.leftEnd-i/2;const r=this.currentRightLabel.nativeElement.getBoundingClientRect().width,o=this.sliderWidth-this.maxLabel.nativeElement.getBoundingClientRect().width;this.currentRightLabelLeftPosition=this.sliderRangePosition.rightStart-r/2,this.hideMinLabel=this.currentLeftLabelLeftPosition<=e+4,this.hideMaxLabel=this.currentRightLabelLeftPosition+r+4>=o;const s=this.currentLeftLabelLeftPosition+i;this.doLeftRightLabelOverlap=s+4>=this.currentRightLabelLeftPosition;const a=(s+this.currentRightLabelLeftPosition)/2,l=this.combinedCurrentLeftRightLabel.nativeElement.getBoundingClientRect().width;this.combinedCurrentLeftRightLabelLeftPosition=a-l/2,this.changeDetector.detectChanges()}static{this.\u0275fac=function(i){return new(i||n)($(_o))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-range-slider-labels"]],viewQuery:function(i,r){if(1&i&&(ei(u6e,5),ei(h6e,5),ei(f6e,5),ei(m6e,5),ei(p6e,5)),2&i){let o;un(o=hn())&&(r.minLabel=o.first),un(o=hn())&&(r.maxLabel=o.first),un(o=hn())&&(r.currentLeftLabel=o.first),un(o=hn())&&(r.currentRightLabel=o.first),un(o=hn())&&(r.combinedCurrentLeftRightLabel=o.first)}},inputs:{minValue:"minValue",maxValue:"maxValue",leftValueLabel:"leftValueLabel",rightValueLabel:"rightValueLabel",sliderRangePosition:"sliderRangePosition",sliderWidth:"sliderWidth"},decls:15,vars:26,consts:[["minLabel",""],["currentLeftLabel",""],["currentRightLabel",""],["combinedCurrentLeftRightLabel",""],["maxLabel",""],[1,"cc-range-slider-label"]],template:function(i,r){1&i&&(P(0,"div",5,0),we(2),H(),P(3,"div",5,1),we(5),H(),P(6,"div",5,2),we(8),H(),P(9,"div",5,3),we(11),H(),P(12,"div",5,4),we(14),H()),2&i&&(Hi("left",0,"px")("visibility",r.hideMinLabel?"hidden":"visible"),U(2),cn(" ",r.minValue,"\n"),U(),Hi("left",r.currentLeftLabelLeftPosition,"px")("visibility",r.doLeftRightLabelOverlap?"hidden":"visible"),U(2),cn(" ",r.leftValueLabel,"\n"),U(),Hi("left",r.currentRightLabelLeftPosition,"px")("visibility",r.doLeftRightLabelOverlap?"hidden":"visible"),U(2),cn(" ",r.rightValueLabel,"\n"),U(),Hi("left",r.combinedCurrentLeftRightLabelLeftPosition,"px")("visibility",r.doLeftRightLabelOverlap?"visible":"hidden"),U(2),lh(" ",r.leftValueLabel," - ",r.rightValueLabel,"\n"),U(),Hi("right",0,"px")("visibility",r.hideMaxLabel?"hidden":"visible"),U(2),cn(" ",r.maxValue,"\n"))},styles:["cc-range-slider-labels .cc-range-slider-label{position:absolute;top:-25px;line-height:24px;font-size:14px;color:#aeaeae}\n"],encapsulation:2,changeDetection:0})}}return n})();const g6e=["rangeSliderContainer"],_6e=["leftThumb"],b6e=["rightThumb"];let v6e=(()=>{class n{constructor(){this.sliderWidth=150,this.sliderRangePosition={leftEnd:0,rightStart:0},this.thumbRadius=7,this.currentlySliding=void 0,this.resetCurrentlySlidingOnNextMouseUp=e=>{const i=()=>{this.currentlySliding=void 0,document.removeEventListener("mouseup",i),document.removeEventListener("mousemove",e)};document.addEventListener("mouseup",i)},this.handleLeftThumbMoved=e=>{const i=(({deltaX:n,thumbScreenX:t,thumbRadius:e,otherThumbScreenX:i,sliderBoundingClientRectX:r,sliderWidth:o,minValue:s,maxValue:a})=>{let l=t+n;return li&&(l=i),tte({newThumbScreenX:l,sliderBoundingClientRectX:r,thumbRadius:e,sliderWidth:o,minValue:s,maxValue:a})})({deltaX:e.movementX,thumbScreenX:this.leftThumb.nativeElement.getBoundingClientRect().x,thumbRadius:this.thumbRadius,otherThumbScreenX:this.rightThumb.nativeElement.getBoundingClientRect().x,sliderBoundingClientRectX:this.sliderContainer.nativeElement.getBoundingClientRect().x,sliderWidth:this.sliderWidth,minValue:this.minValue,maxValue:this.maxValue});this.sliderRangePosition={leftEnd:i.updatedThumbX,rightStart:this.sliderRangePosition.rightStart},this.upcomingLeftValue=i.upcomingValue,this.handleValueChange({newLeftValue:i.upcomingValue})},this.handleRightThumbMoved=e=>{const i=(({deltaX:n,thumbScreenX:t,thumbRadius:e,otherThumbScreenX:i,sliderBoundingClientRectX:r,sliderWidth:o,minValue:s,maxValue:a})=>{let l=t+n;return l>r+o-e&&(l=r+o-e),l{const o=t-n;return o<=0?{leftEnd:r,rightStart:r}:{leftEnd:(e-n)/o*r,rightStart:(i-n)/o*r}})({minValue:this.minValue,maxValue:this.maxValue,currentLeftValue:this.currentLeftValue,currentRightValue:this.currentRightValue,sliderWidth:this.sliderWidth}),e.currentLeftValue&&(this.upcomingLeftValue=this.currentLeftValue),e.currentRightValue&&(this.upcomingRightValue=this.currentRightValue))}setCurrentlySliding(e){switch(this.currentlySliding=e,this.currentlySliding){case"leftThumb":document.addEventListener("mousemove",this.handleLeftThumbMoved),this.rightThumb.nativeElement.style.zIndex="0",this.leftThumb.nativeElement.style.zIndex="1",this.resetCurrentlySlidingOnNextMouseUp(this.handleLeftThumbMoved);break;case"rightThumb":document.addEventListener("mousemove",this.handleRightThumbMoved),this.leftThumb.nativeElement.style.zIndex="0",this.rightThumb.nativeElement.style.zIndex="1",this.resetCurrentlySlidingOnNextMouseUp(this.handleRightThumbMoved)}}handleCurrentLeftInputChanged(e){const i=LO(e,this.minValue,this.currentRightValue);i!==this.currentLeftValue&&this.handleValueChange({newLeftValue:i})}handleCurrentRightInputChanged(e){const i=LO(e,this.currentLeftValue,this.maxValue);i!==this.currentRightValue&&this.handleValueChange({newRightValue:i})}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-metric-color-range-slider"]],viewQuery:function(i,r){if(1&i&&(ei(g6e,5),ei(_6e,5),ei(b6e,5)),2&i){let o;un(o=hn())&&(r.sliderContainer=o.first),un(o=hn())&&(r.leftThumb=o.first),un(o=hn())&&(r.rightThumb=o.first)}},inputs:{minValue:"minValue",maxValue:"maxValue",currentLeftValue:"currentLeftValue",currentRightValue:"currentRightValue",leftColor:"leftColor",middleColor:"middleColor",rightColor:"rightColor",handleValueChange:"handleValueChange",sliderWidth:"sliderWidth",isAttributeDirectionInversed:"isAttributeDirectionInversed"},features:[wr],decls:15,vars:28,consts:[["rangeSliderContainer",""],["leftThumb",""],["rightThumb",""],[1,"cc-range-slider-container"],["appearance","outline"],["matInput","","type","number",3,"input","value","min","max"],[1,"cc-range-slider-slider"],[1,"cc-range-slider-bar"],[1,"cc-range-slider-slider-thumb",3,"mousedown"],[3,"minValue","maxValue","leftValueLabel","rightValueLabel","sliderRangePosition","sliderWidth"]],template:function(i,r){if(1&i){const o=Pn();P(0,"div",3)(1,"mat-form-field",4)(2,"input",5),We("input",function(a){return Vt(o),Ot(r.handleCurrentLeftInputChanged(a))}),H()(),P(3,"div",6,0),xe(5,"span",7)(6,"span",7)(7,"span",7),P(8,"div",8,1),We("mousedown",function(){return Vt(o),Ot(r.setCurrentlySliding("leftThumb"))}),H(),P(10,"div",8,2),We("mousedown",function(){return Vt(o),Ot(r.setCurrentlySliding("rightThumb"))}),H(),xe(12,"cc-range-slider-labels",9),H(),P(13,"mat-form-field",4)(14,"input",5),We("input",function(a){return Vt(o),Ot(r.handleCurrentRightInputChanged(a))}),H()()()}2&i&&(U(2),pe("value",r.currentLeftValue)("min",r.minValue)("max",r.upcomingRightValue),U(3),Hi("width",r.sliderRangePosition.leftEnd,"px")("border-bottom-color",r.leftColor),U(),Hi("width",r.sliderRangePosition.rightStart-r.sliderRangePosition.leftEnd,"px")("border-bottom-color",r.middleColor),U(),Hi("width",r.sliderWidth-r.sliderRangePosition.rightStart,"px")("border-bottom-color",r.rightColor),U(),Hi("left",r.sliderRangePosition.leftEnd-r.thumbRadius,"px"),U(2),Hi("left",r.sliderRangePosition.rightStart-r.thumbRadius,"px"),U(2),pe("minValue",r.minValue)("maxValue",r.maxValue)("leftValueLabel",r.upcomingLeftValue)("rightValueLabel",r.upcomingRightValue)("sliderRangePosition",r.sliderRangePosition)("sliderWidth",r.sliderWidth),U(2),pe("value",r.currentRightValue)("min",r.upcomingLeftValue)("max",r.maxValue))},dependencies:[yd,km,A6e],styles:["cc-metric-color-range-slider .cc-range-slider-container{display:flex;align-items:center;margin:10px}cc-metric-color-range-slider .cc-range-slider-container mat-form-field{height:32px}cc-metric-color-range-slider .cc-range-slider-container mat-form-field .mat-mdc-text-field-wrapper{padding:0 4px}cc-metric-color-range-slider .cc-range-slider-container mat-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex{align-self:center}cc-metric-color-range-slider .cc-range-slider-container mat-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-infix{padding:0;min-height:28px}cc-metric-color-range-slider .cc-range-slider-container mat-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-infix .mat-mdc-input-element{min-height:inherit}cc-metric-color-range-slider .cc-range-slider-container mat-form-field .mat-mdc-form-field-subscript-wrapper.mat-mdc-form-field-bottom-align{display:none}cc-metric-color-range-slider .cc-range-slider-container .cc-range-slider-slider{display:flex;flex:1;margin:0 8px;position:relative;line-height:48px}cc-metric-color-range-slider .cc-range-slider-container .cc-range-slider-slider .cc-range-slider-bar{display:inline-block;border-bottom-width:4px;border-bottom-style:solid}cc-metric-color-range-slider .cc-range-slider-container .cc-range-slider-slider .cc-range-slider-slider-thumb{cursor:pointer;position:absolute;top:-4px;border-radius:100%;border:7px solid #1b9cfc}\n"],encapsulation:2})}}return n})();const y6e=()=>["appSettings.mapColors.positiveDelta","appSettings.mapColors.negativeDelta","appSettings.mapColors.selected"],w6e=()=>["appSettings.mapColors.positive","appSettings.mapColors.negative","appSettings.mapColors.neutral","appSettings.mapColors.selected"],x6e=()=>["appSettings.mapColors.positiveDelta","appSettings.mapColors.negativeDelta"];function C6e(n,t){if(1&n){const e=Pn();P(0,"div"),xe(1,"cc-metric-color-range-slider",4),$e(2,"async"),$e(3,"async"),$e(4,"async"),$e(5,"async"),$e(6,"async"),$e(7,"async"),$e(8,"async"),$e(9,"async"),xe(10,"cc-reset-settings-button",5)(11,"cc-metric-color-range-diagram",6),$e(12,"async"),$e(13,"async"),$e(14,"async"),$e(15,"async"),$e(16,"async"),$e(17,"async"),$e(18,"async"),$e(19,"async"),$e(20,"async"),$e(21,"async"),P(22,"mat-form-field",7)(23,"mat-label"),we(24,"Gradient Mode"),H(),P(25,"mat-select",8),$e(26,"async"),We("selectionChange",function(r){return Vt(e),Ot(He().handleColorModeChange(r.value))}),P(27,"div",9),We("mousedown",function(r){return Vt(e),Ot(r.stopPropagation())}),P(28,"mat-option",10),we(29,"Absolute"),H(),P(30,"mat-option",11),we(31,"Focused Gradient"),H(),P(32,"mat-option",12),we(33,"Weighted Gradient"),H(),P(34,"mat-option",13),we(35,"True Gradient"),H()()()()()}if(2&n){const e=He();U(),pe("minValue",rt(2,22,e.sliderValues$).min)("maxValue",rt(3,24,e.sliderValues$).max)("currentLeftValue",rt(4,26,e.sliderValues$).from)("currentRightValue",rt(5,28,e.sliderValues$).to)("leftColor",rt(6,30,e.sliderColors$).leftColor)("middleColor",rt(7,32,e.sliderColors$).middleColor)("rightColor",rt(8,34,e.sliderColors$).rightColor)("handleValueChange",e.handleValueChange)("isAttributeDirectionInversed",rt(9,36,e.isAttributeDescriptionInversed$)),U(9),pe("settingsKeys",ch(60,x6e))("callback",e.resetColorRange),U(),pe("minValue",rt(12,38,e.sliderValues$).min)("maxValue",rt(13,40,e.sliderValues$).max)("currentLeftValue",rt(14,42,e.sliderValues$).from)("currentRightValue",rt(15,44,e.sliderValues$).to)("leftColor",rt(16,46,e.sliderColors$).leftColor)("middleColor",rt(17,48,e.sliderColors$).middleColor)("rightColor",rt(18,50,e.sliderColors$).rightColor)("colorMetric",rt(19,52,e.colorMetric$))("values",rt(20,54,e.sliderValues$).values)("isAttributeDirectionInversed",rt(21,56,e.isAttributeDescriptionInversed$)),U(14),pe("value",rt(26,58,e.colorMode$))}}function M6e(n,t){if(1&n){const e=Pn();P(0,"div",1),xe(1,"cc-color-picker-for-map-color",0),P(2,"mat-checkbox",14),$e(3,"async"),We("change",function(r){return Vt(e),Ot(He().toggleColorLabel(r,"positive"))}),we(4,"Show labels"),H()(),P(5,"div",1),xe(6,"cc-color-picker-for-map-color",0),P(7,"mat-checkbox",14),$e(8,"async"),We("change",function(r){return Vt(e),Ot(He().toggleColorLabel(r,"neutral"))}),we(9,"Show labels"),H()(),P(10,"div",1),xe(11,"cc-color-picker-for-map-color",0),P(12,"mat-checkbox",14),$e(13,"async"),We("change",function(r){return Vt(e),Ot(He().toggleColorLabel(r,"negative"))}),we(14,"Show labels"),H()()}if(2&n){const e=He();U(),pe("mapColorFor","positive"),U(),pe("checked",rt(3,6,e.colorLabels$).positive),U(4),pe("mapColorFor","neutral"),U(),pe("checked",rt(8,8,e.colorLabels$).neutral),U(4),pe("mapColorFor","negative"),U(),pe("checked",rt(13,10,e.colorLabels$).negative)}}function E6e(n,t){1&n&&xe(0,"cc-color-picker-for-map-color",0)(1,"cc-color-picker-for-map-color",0),2&n&&(pe("mapColorFor","positiveDelta"),U(),pe("mapColorFor","negativeDelta"))}function S6e(n,t){if(1&n){const e=Pn();P(0,"mat-checkbox",14),We("change",function(r){return Vt(e),Ot(He().handleIsColorRangeInvertedChange(r.checked))}),we(1,"Invert Colors"),H()}2&n&&pe("checked",He().isColorRangeInverted)}function T6e(n,t){if(1&n){const e=Pn();P(0,"mat-checkbox",14),We("change",function(r){return Vt(e),Ot(He().handleAreDeltaColorsInverted(r.checked))}),we(1,"Invert Colors"),H()}2&n&&pe("checked",He().areDeltaColorsInverted)}let I6e=(()=>{class n{constructor(e,i){this.store=e,this.state=i,this.colorMode$=this.store.select(VJ),this.colorLabels$=this.store.select(HJ),this.colorMetric$=this.store.select(Sm),this.isDeltaState$=this.store.select(Im),this.sliderValues$=this.store.select(EOe),this.sliderColors$=this.store.select(MOe),this.isAttributeDescriptionInversed$=this.checkIsAttributeDirectionReversed(),this.isColorRangeInverted=!1,this.areDeltaColorsInverted=!1,this.newLeftValue=null,this.newRightValue=null,this.handleValueChange=({newLeftValue:r,newRightValue:o})=>{this.newLeftValue=r??this.newLeftValue,this.newRightValue=o??this.newRightValue,this.updateColorRangeDebounced()},this.updateColorRangeDebounced=yu(()=>{const r={};null!==this.newLeftValue&&(r.from=this.newLeftValue),null!==this.newRightValue&&(r.to=this.newRightValue),this.store.dispatch(Zd({value:r})),this.newLeftValue=null,this.newRightValue=null},400),this.resetInvertColorCheckboxes=()=>{this.isColorRangeInverted=!1,this.areDeltaColorsInverted=!1},this.resetColorRange=()=>{const r=$h(this.state.getValue());this.store.dispatch(Zd({value:CT(r)}))}}checkIsAttributeDirectionReversed(){return this.colorMetric$.pipe(Ge(e=>1===this.state.getValue().fileSettings.attributeDescriptors[e]?.direction))}handleColorModeChange(e){this.store.dispatch(Q0({value:e}))}toggleColorLabel(e,i){this.store.dispatch(Jy({value:{[i]:e.checked}}))}handleIsColorRangeInvertedChange(e){this.isColorRangeInverted=e,this.store.dispatch(RE())}handleAreDeltaColorsInverted(e){this.areDeltaColorsInverted=e,this.store.dispatch(LE())}static{this.\u0275fac=function(i){return new(i||n)($(Xt),$(jr))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-color-settings-panel"]],decls:13,vars:18,consts:[[3,"mapColorFor"],[1,"color-row"],["tooltip","Reset color values to default","label","Reset colors",3,"settingsKeys","callback"],[3,"checked"],[3,"minValue","maxValue","currentLeftValue","currentRightValue","leftColor","middleColor","rightColor","handleValueChange","isAttributeDirectionInversed"],["tooltip","Reset slider thresholds to default","label","Reset thresholds",3,"settingsKeys","callback"],[3,"minValue","maxValue","currentLeftValue","currentRightValue","leftColor","middleColor","rightColor","colorMetric","values","isAttributeDirectionInversed"],["appearance","outline","subscriptSizing","dynamic",1,"gradient-mode-selector"],[3,"selectionChange","value"],[3,"mousedown"],["value","absolute"],["value","focusedGradient"],["value","weightedGradient"],["value","trueGradient"],[3,"change","checked"]],template:function(i,r){1&i&&(At(0,C6e,36,61,"div"),$e(1,"async"),$e(2,"async"),At(3,M6e,15,12),$e(4,"async"),At(5,E6e,2,2),xe(6,"cc-color-picker-for-map-color",0),P(7,"div",1),xe(8,"cc-reset-settings-button",2),$e(9,"async"),At(10,S6e,2,1,"mat-checkbox",3),$e(11,"async"),At(12,T6e,2,1),H()),2&i&&(It(0,rt(1,6,r.isDeltaState$)||"unary"===rt(2,8,r.colorMetric$)?-1:0),U(3),It(3,rt(4,10,r.isDeltaState$)?5:3),U(3),pe("mapColorFor","selected"),U(2),pe("settingsKeys",rt(9,12,r.isDeltaState$)?ch(16,y6e):ch(17,w6e))("callback",r.resetInvertColorCheckboxes),U(2),It(10,rt(11,14,r.isDeltaState$)?12:10))},dependencies:[hO,s6e,v6e,Xw,yd,vd,Bm,ru,qA,Yn],styles:[".gradient-mode-selector[_ngcontent-%COMP%]{--mat-form-field-container-vertical-padding: 8px;--mat-form-field-container-height: 16px;margin:5px 10px;width:93%}.color-row[_ngcontent-%COMP%]{display:flex;align-items:center}cc-color-picker-for-map-color[_ngcontent-%COMP%]{width:50%}cc-reset-settings-button[_ngcontent-%COMP%]{width:50%}"]})}}return n})();const YN=Zt(no,n=>n.isEdgeMetricVisible);function F6e(n,t){1&n&&(P(0,"cc-rounded-box"),xe(1,"cc-metric-chooser-type",3),we(2),H()),2&n&&(U(),pe("metricFor","edgeMetric"),U(),cn(" ",t," "))}function D6e(n,t){if(1&n&&(P(0,"cc-metric-chooser",1),$e(1,"async"),P(2,"div",2),At(3,F6e,3,2,"cc-rounded-box"),$e(4,"async"),H()()),2&n){let e;const i=He();Qn("is-edge-metric-disabled",!rt(1,6,i.isEdgeMetricVisible$)),pe("selectedMetricName",t)("searchPlaceholder","Edge Metric (highest value)")("handleMetricChanged",i.handleEdgeMetricChanged),U(3),It(3,(e=rt(4,8,i.edgeValue$))?3:-1,e)}}let k6e=(()=>{class n{constructor(e,i){this.store=e,this.nodeSelectionService=i,this.edgeValue$=this.createEdgeValue(),this.edgeMetric$=this.store.select(Xh),this.isEdgeMetricVisible$=this.store.select(YN),this.formatHoveredEdgeValue=(r,o)=>{if(!o)return null;const s=o.edgeAttributes[r];return s?`${this.formatValue(s.incoming)} / ${this.formatValue(s.outgoing)}`:null},this.formatValue=r=>"number"==typeof r?r.toLocaleString():"-"}handleEdgeMetricChanged(e){this.store.dispatch(gh({value:e}))}createEdgeValue(){return xh([this.store.select(Xh),this.nodeSelectionService.createNodeObservable()]).pipe(Ge(([e,i])=>this.formatHoveredEdgeValue(e,i)))}static{this.\u0275fac=function(i){return new(i||n)($(Xt),$(kT))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-edge-metric-chooser"]],decls:2,vars:3,consts:[["icon","fa-exchange","type","edge","title","Change edge metric",3,"is-edge-metric-disabled","selectedMetricName","searchPlaceholder","handleMetricChanged"],["icon","fa-exchange","type","edge","title","Change edge metric",3,"selectedMetricName","searchPlaceholder","handleMetricChanged"],["hoveredInformation","",1,"cc-metric-chooser-container"],["attributeType","edges",3,"metricFor"]],template:function(i,r){if(1&i&&(At(0,D6e,5,10,"cc-metric-chooser",0),$e(1,"async")),2&i){let o;It(0,(o=rt(1,1,r.edgeMetric$))?0:-1,o)}},dependencies:[$w,pJ,AJ,Yn],styles:["cc-rounded-box[_ngcontent-%COMP%]{position:absolute;top:10%;right:28px}"]})}}return n})();const B6e=Zt(no,n=>n.edgeHeight),P6e=Zt(no,n=>n.showOnlyBuildingsWithEdges),R6e=Zt(Gs,Xh,(n,t)=>n.nodeEdgeMetricsMap.get(t)?.size??0);let L6e=(()=>{class n{constructor(e){this.store=e}ngOnInit(){this.isEdgeMetricVisible$=this.store.select(YN)}toggleEdgeMetric(){this.store.dispatch(BE())}static{this.\u0275fac=function(i){return new(i||n)($(Xt))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-edge-metric-toggle"]],decls:3,vars:3,consts:[[1,"edgeMetricCheckbox",3,"change","checked"]],template:function(i,r){1&i&&(P(0,"mat-checkbox",0),$e(1,"async"),We("change",function(){return r.toggleEdgeMetric()}),we(2," Disable edge metric\n"),H()),2&i&&pe("checked",!rt(1,1,r.isEdgeMetricVisible$))},dependencies:[qA,Yn],encapsulation:2})}}return n})();const O6e=()=>["appSettings.showOnlyBuildingsWithEdges","appSettings.amountOfEdgePreviews","appSettings.edgeHeight"];let N6e=(()=>{class n{constructor(e){this.store=e,this.amountOfBuildingsWithSelectedEdgeMetric$=this.store.select(R6e),this.edgePreviewLabel$=this.amountOfBuildingsWithSelectedEdgeMetric$.pipe(Ge(i=>`Preview the edges of up to ${i} buildings with the highest amount of incoming and outgoing edges`)),this.amountOfEdgePreviews$=this.store.select(fJ),this.edgeHeight$=this.store.select(B6e),this.showOnlyBuildingsWithEdges$=this.store.select(P6e),this.applySettingsAmountOfEdgePreviews=i=>{this.store.dispatch(Vw({value:i}))},this.applySettingsEdgeHeight=i=>{this.store.dispatch(H0({value:i}))}}applyShowOnlyBuildingsWithEdges(e){this.store.dispatch(u1({value:e.checked}))}static{this.\u0275fac=function(i){return new(i||n)($(Xt))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-edge-settings-panel"]],decls:17,vars:35,consts:[[3,"title","label","value","onChange","min","max","disabled"],["title","Adjust the curve height",3,"label","value","onChange","min","max","disabled"],[1,"wrapper"],[3,"mapColorFor"],[3,"change","checked","disabled"],["tooltip","Reset edge metric settings to their defaults","label","Reset edge metric settings",3,"settingsKeys"]],template:function(i,r){1&i&&(xe(0,"cc-slider",0),$e(1,"async"),$e(2,"async"),$e(3,"async"),$e(4,"async"),xe(5,"cc-slider",1),$e(6,"async"),$e(7,"async"),P(8,"div",2),xe(9,"cc-color-picker-for-map-color",3)(10,"cc-color-picker-for-map-color",3),H(),P(11,"mat-checkbox",4),$e(12,"async"),$e(13,"async"),We("change",function(s){return r.applyShowOnlyBuildingsWithEdges(s)}),we(14," Only show nodes with edges\n"),H(),xe(15,"cc-edge-metric-toggle")(16,"cc-reset-settings-button",5)),2&i&&(pe("title",rt(1,18,r.edgePreviewLabel$))("label","Preview")("value",rt(2,20,r.amountOfEdgePreviews$))("onChange",r.applySettingsAmountOfEdgePreviews)("min",0)("max",rt(3,22,r.amountOfBuildingsWithSelectedEdgeMetric$))("disabled",0===rt(4,24,r.amountOfBuildingsWithSelectedEdgeMetric$)),U(5),pe("label","Height")("value",rt(6,26,r.edgeHeight$))("onChange",r.applySettingsEdgeHeight)("min",1)("max",9)("disabled",0===rt(7,28,r.amountOfBuildingsWithSelectedEdgeMetric$)),U(4),pe("mapColorFor","outgoingEdge"),U(),pe("mapColorFor","incomingEdge"),U(),pe("checked",rt(12,30,r.showOnlyBuildingsWithEdges$))("disabled",0===rt(13,32,r.amountOfBuildingsWithSelectedEdgeMetric$)),U(5),pe("settingsKeys",ch(34,O6e)))},dependencies:[Xw,RT,qA,hO,L6e,Yn],encapsulation:2})}}return n})();function U6e(n,t){1&n&&(P(0,"mat-card",8),xe(1,"cc-link-color-metric-to-height-metric-button"),H(),P(2,"cc-ribbon-bar-panel",9),xe(3,"cc-color-metric-chooser"),P(4,"cc-ribbon-bar-panel-settings"),xe(5,"cc-color-settings-panel",4),H()()),2&n&&(U(2),pe("separator",!0))}function H6e(n,t){1&n&&(P(0,"cc-ribbon-bar-panel",6),xe(1,"cc-edge-metric-chooser"),P(2,"cc-ribbon-bar-panel-settings"),xe(3,"cc-edge-settings-panel",4),H()()),2&n&&pe("separator",!0)}function V6e(n,t){1&n&&(P(0,"cc-ribbon-bar-panel",7)(1,"div",10),xe(2,"i",11),P(3,"span"),we(4,"Color Settings"),H()(),P(5,"cc-ribbon-bar-panel-settings"),xe(6,"cc-color-settings-panel",4),H()()),2&n&&pe("separator",!0)("isHeaderExpandable",!0)}let Q6e=(()=>{class n{constructor(e){this.store=e,this.isDeltaState$=this.store.select(Im),this.hasEdgeMetric$=this.store.select(Gs).pipe(Ge(i=>i.edgeMetricData.length>0))}static{this.\u0275fac=function(i){return new(i||n)($(Xt))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-ribbon-bar"]],decls:21,vars:11,consts:[["id","scenario-card","title","Metric Templates"],["id","custom-configs-card","title","Custom Views"],["id","ai-card","title","Suspicious Metrics"],["id","area-metric-card","title","Area Metric Options",1,"ribbon-bar-panel-wide",3,"separator"],[1,"cc-metric-settings-panel"],["id","height-metric-card","title","Height Metric Options",1,"ribbon-bar-panel-wide",3,"separator"],["id","edge-metric-card","title","Edge Metric Options",1,"ribbon-bar-panel-wide",3,"separator"],["id","color-settings-card",1,"ribbon-bar-panel-wide",3,"separator","isHeaderExpandable"],["appearance","outlined",1,"color-height-metric-link"],["id","color-metric-card","title","Color Metric Options",1,"ribbon-bar-panel-wide",3,"separator"],[1,"color-settings-header","toggleHeader"],[1,"fa","fa-paint-brush","color-icon"]],template:function(i,r){1&i&&(xe(0,"cc-search-panel"),P(1,"cc-ribbon-bar-panel",0),xe(2,"cc-show-scenarios-button"),H(),P(3,"cc-ribbon-bar-panel",1),xe(4,"cc-custom-configs"),H(),P(5,"cc-ribbon-bar-panel",2),xe(6,"cc-artificial-intelligence"),H(),P(7,"cc-ribbon-bar-panel",3),xe(8,"cc-area-metric-chooser"),P(9,"cc-ribbon-bar-panel-settings"),xe(10,"cc-area-settings-panel",4),H()(),P(11,"cc-ribbon-bar-panel",5),xe(12,"cc-height-metric-chooser"),P(13,"cc-ribbon-bar-panel-settings"),xe(14,"cc-height-settings-panel",4),H()(),At(15,U6e,6,1),$e(16,"async"),At(17,H6e,4,1,"cc-ribbon-bar-panel",6),$e(18,"async"),At(19,V6e,7,2,"cc-ribbon-bar-panel",7),$e(20,"async")),2&i&&(U(7),pe("separator",!0),U(4),pe("separator",!0),U(4),It(15,rt(16,5,r.isDeltaState$)?-1:15),U(2),It(17,rt(18,7,r.hasEdgeMetric$)?17:-1),U(2),It(19,rt(20,9,r.isDeltaState$)?19:-1))},dependencies:[Nw,vZ,oPe,xPe,pRe,T4e,hOe,yOe,wOe,xOe,COe,I6e,k6e,N6e,mO,fO,Yn],styles:["[_nghost-%COMP%]{position:fixed;z-index:10;width:100%;display:flex;flex-wrap:nowrap}cc-ribbon-bar-panel[_ngcontent-%COMP%]{flex:0}cc-ribbon-bar-panel.ribbon-bar-panel-wide[_ngcontent-%COMP%]{flex-grow:1}mat-card.color-height-metric-link[_ngcontent-%COMP%]{display:flex;justify-content:center;flex-grow:0;padding:0;height:46px;border-radius:0;border-top:1px solid #cdcdcd}cc-ribbon-bar-panel[_ngcontent-%COMP%] cc-ribbon-bar-panel-settings[_ngcontent-%COMP%]{font-size:.9em;left:0;right:auto}cc-ribbon-bar-panel[_ngcontent-%COMP%]:last-child cc-ribbon-bar-panel-settings[_ngcontent-%COMP%]{left:auto;right:0}.color-settings-header[_ngcontent-%COMP%]{display:flex;gap:8px;line-height:24px;align-items:baseline}"]})}}return n})();const nte=()=>{const n=document.createElement("INPUT");return n.setAttribute("type","file"),n.setAttribute("accept",".json,.gz"),n.setAttribute("multiple",""),document.body.appendChild(n),n},xb="base";function ite(n,t,e,i,r,o){if(0===n.length)return;const[s]=n;let a={name:s,type:rte(n)?Oa.FILE:Oa.FOLDER,attributes:{}};rte(n)?a=function W6e(n,t,e){const i={...t};return i.attributes={height:e.scale.y},{name:n,type:Oa.FOLDER,attributes:{},children:[i]}}(s,a,i):a.children=[],function G6e(n,t){return n.some(e=>e.name===t)}(t,s)?a=t.find(d=>d.name===s):t.push(a);const l=r.find(d=>d.name===e);a.fixedPosition=function $6e(n,t,e,i){let r;if(n.type===Oa.FOLDER){const s=t.position.z-t.scale.z/2,l=e.position.z-e.scale.z/2,c=pI((e.position.x-e.scale.x/2-(t.position.x-t.scale.x/2))/t.scale.x*100,2);r={left:pI((l-s)/t.scale.z*100,2),top:c,width:pI(e.scale.z/t.scale.z*100,2),height:pI(e.scale.x/t.scale.x*100,2)}}return n.name===i&&(r=function j6e(n){const t={...n};return t.top=Math.floor(50-t.height/2),t.left=Math.floor(50-t.width/2),t}(r)),r}(a,l,i,o.name);const c=e===xb?a.name:`${e}.${a.name}`;ite(n.slice(1),a.children,c,i,r,o)}function rte(n){return 1===n.length}function pI(n,t){const e=Math.pow(10,t);return Math.round(n*e)/e}function ote(n){const t=n.replaceAll(".","/"),i=n.split(".").slice(-1);return`/${xb}/${t}/${i}`}const Z6e=JSON.parse('{"$id":"http://example.com/example.json","$schema":"http://json-schema.org/draft-07/schema","default":{},"description":"This is the JSON Schema for the GameObjectsPositions structure","examples":[{"gameObjectPositions":[{"name":"root.analysis.import.SourceCodeParser.src.test.kotlin.de.maibornwolff.codecharta.importer.sourcecodeparser.oop.core.extract.HelloWorldTest","position":{"x":69,"y":18.5,"z":228.5},"scale":{"x":9,"y":5,"z":9}},{"name":"root.analysis.import.SourceCodeParser.src.test.kotlin.de.maibornwolff.codecharta.importer.sourcecodeparser.oop.core.extract.TryCatchFinallyTest","position":{"x":66,"y":22.5,"z":177.5},"scale":{"x":1,"y":13,"z":1}}],"cycles":[{"from":"root.analysis.import.SCMLogParser.src.main.java.de.maibornwolff.codecharta.importer.scmlogparser.SCMLogParser","to":"root.analysis.import.SCMLogParser.src.main.java.de.maibornwolff.codecharta.importer.scmlogparser.SCMLogParserParameter"}]}],"required":["gameObjectPositions"],"title":"The root schema","type":"object","properties":{"gameObjectPositions":{"$id":"#/properties/gameObjectPositions","type":"array","title":"The gameObjectPositions schema","description":"Defines the position and scale of GameObjects","default":[],"examples":[[{"name":"root.analysis.import.SourceCodeParser.src.test.kotlin.de.maibornwolff.codecharta.importer.sourcecodeparser.oop.core.extract.HelloWorldTest","position":{"x":69,"y":18.5,"z":228.5},"scale":{"x":9,"y":5,"z":9}},{"name":"root.analysis.import.SourceCodeParser.src.test.kotlin.de.maibornwolff.codecharta.importer.sourcecodeparser.oop.core.extract.SwitchCaseTest","position":{"x":65,"y":22,"z":181},"scale":{"x":2,"y":12,"z":2}}]],"additionalItems":true,"items":{"$id":"#/properties/gameObjectPositions/items","anyOf":[{"$id":"#/properties/gameObjectPositions/items/anyOf/0","type":"object","title":"The first anyOf schema","description":"Defines the properties of a GameObject","default":{},"examples":[{"name":"root.analysis.import.SourceCodeParser.src.test.kotlin.de.maibornwolff.codecharta.importer.sourcecodeparser.oop.core.extract.HelloWorldTest","position":{"x":69,"y":18.5,"z":228.5},"scale":{"x":9,"y":5,"z":9}}],"required":["name","position","scale"],"properties":{"name":{"$id":"#/properties/gameObjectPositions/items/anyOf/0/properties/name","type":"string","title":"The name schema","description":"An explanation about the purpose of this instance.","default":"","examples":["root.analysis.import.SourceCodeParser.src.test.kotlin.de.maibornwolff.codecharta.importer.sourcecodeparser.oop.core.extract.HelloWorldTest"]},"position":{"$id":"#/properties/gameObjectPositions/items/anyOf/0/properties/position","type":"object","title":"The position schema","description":"The position in absolute values","default":{},"examples":[{"x":69,"y":18.5,"z":228.5}],"required":["x","y","z"],"properties":{"x":{"$id":"#/properties/gameObjectPositions/items/anyOf/0/properties/position/properties/x","type":"number","title":"The x schema","description":"x position","default":0,"examples":[69]},"y":{"$id":"#/properties/gameObjectPositions/items/anyOf/0/properties/position/properties/y","type":"number","title":"The y schema","description":"y position","default":0,"examples":[18.5]},"z":{"$id":"#/properties/gameObjectPositions/items/anyOf/0/properties/position/properties/z","type":"number","title":"The z schema","description":"z position","default":0,"examples":[228.5]}},"additionalProperties":true},"scale":{"$id":"#/properties/gameObjectPositions/items/anyOf/0/properties/scale","type":"object","title":"The scale schema","description":"The scale of GameObjects","default":{},"examples":[{"x":9,"y":5,"z":9}],"required":["x","y","z"],"properties":{"x":{"$id":"#/properties/gameObjectPositions/items/anyOf/0/properties/scale/properties/x","type":"number","title":"The x schema","description":"x scale","default":0,"examples":[9]},"y":{"$id":"#/properties/gameObjectPositions/items/anyOf/0/properties/scale/properties/y","type":"number","title":"The y schema","description":"y scale","default":0,"examples":[5]},"z":{"$id":"#/properties/gameObjectPositions/items/anyOf/0/properties/scale/properties/z","type":"number","title":"The z schema","description":"z scale","default":0,"examples":[9]}},"additionalProperties":true}},"additionalProperties":true}]}},"cycles":{"$id":"#/properties/cycles","type":"array","title":"The cycles schema","description":"Defines the cycles between GameObjects","default":[],"examples":[[{"from":"root.analysis.import.SCMLogParser.src.main.java.de.maibornwolff.codecharta.importer.scmlogparser.SCMLogParser","to":"root.analysis.import.SCMLogParser.src.main.java.de.maibornwolff.codecharta.importer.scmlogparser.SCMLogParserParameter"}]],"additionalItems":true,"items":{"$id":"#/properties/cycles/items","anyOf":[{"$id":"#/properties/cycles/items/anyOf/0","type":"object","title":"The first anyOf schema","description":"A cycle between two GameObjects","default":{},"examples":[{"from":"root.analysis.import.SCMLogParser.src.main.java.de.maibornwolff.codecharta.importer.scmlogparser.SCMLogParser","to":"root.analysis.import.SCMLogParser.src.main.java.de.maibornwolff.codecharta.importer.scmlogparser.SCMLogParserParameter"}],"required":["from","to"],"properties":{"from":{"$id":"#/properties/cycles/items/anyOf/0/properties/from","type":"string","title":"The from schema","description":"from GameObject","default":"","examples":["root.analysis.import.SCMLogParser.src.main.java.de.maibornwolff.codecharta.importer.scmlogparser.SCMLogParser"]},"to":{"$id":"#/properties/cycles/items/anyOf/0/properties/to","type":"string","title":"The to schema","description":"to GameObject","default":"","examples":["root.analysis.import.SCMLogParser.src.main.java.de.maibornwolff.codecharta.importer.scmlogparser.SCMLogParserParameter"]}},"additionalProperties":true}]}}},"additionalProperties":true}'),ste=n=>{const t=[];for(let e=0;e{const i=t.name.endsWith(".gz"),r=new FileReader;let o;i?r.readAsArrayBuffer(t):r.readAsText(t,"utf8"),r.onload=s=>{const a=s.target.result.toString();o=i?KR(s.target.result,{to:"string"}):a,a.includes("gameObjectPositions")&&function J6e(n){return new(LW())({allErrors:!0}).validate(Z6e,JSON.parse(n))}(a)&&(o=JSON.stringify(function z6e(n){const{gameObjectPositions:t,cycles:e=[]}=JSON.parse(n),i={checksum:"",data:{projectName:"GameObjects",fileChecksum:"",apiVersion:"1.3",nodes:[]}},r=[{name:xb,type:Oa.FOLDER,attributes:{},children:[]}];!function q6e(n){for(const t of n)t.name.startsWith("root")||(t.name=t.name.startsWith(".")?`root${t.name}`:`root.${t.name}`)}(t);const o=t.find(a=>"root"===a.name),s=function Y6e(n){const t=Math.max(n.x,n.z);return{name:xb,position:{x:0,y:0,z:0},scale:{x:t,y:0,z:t}}}(o.scale);t.push(s);for(const a of t){const l=a.name.split(".");l[0]!==xb&&ite(l,r[0].children,xb,a,t,o)}return i.data.nodes=r,i.data.edges=e.map(a=>function X6e(n){return{fromNodeName:ote(n.from),toNodeName:ote(n.to),attributes:{coupling:100}}}(a)),i.data.attributeTypes=function K6e(){return{edges:{coupling:om.relative}}}(),i.checksum=jE()(JSON.stringify(i.data)),i}(a)))},r.onloadend=()=>{e(o)}})});return function(e){return n.apply(this,arguments)}}();let ate=(()=>{class n{constructor(e,i){this.store=e,this.loadFileService=i,this.isUploading=!1}uploadFiles(){const e=nte();e.addEventListener("change",()=>{this.uploadFilesOnEvent(e)}),e.click()}uploadFilesOnEvent(e){var i=this;return B(function*(){try{i.isUploading=!0,i.store.dispatch(Xp({value:!0})),i.store.dispatch($0({value:!0}));const r=yield Promise.all(ste(e.files)),{customConfigs:o,ccFiles:s}=i.splitCustomConfigsAndCCFiles(e.files,r);for(const a of o)ji.importCustomConfigs(a);s.length>0&&(yield i.loadFileService.loadFiles(s))}catch{i.store.dispatch(Xp({value:!1})),i.store.dispatch($0({value:!1}))}finally{i.isUploading=!1}})()}splitCustomConfigsAndCCFiles(e,i){const r=[],o=[];for(const[s,a]of i.entries()){const l=e[s].name;l.includes(NZ)?r.push(a):o.push({fileName:l,fileSize:e[s].size,content:CP(a)})}return{customConfigs:r,ccFiles:o}}static{this.\u0275fac=function(i){return new(i||n)(ge(Xt),ge(t_))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),t7e=(()=>{class n{constructor(e){this.uploadFilesService=e}uploadFiles(){this.uploadFilesService.uploadFiles()}static{this.\u0275fac=function(i){return new(i||n)($(ate))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-upload-files-button"]],decls:1,vars:1,consts:[["title","Load cc.json files",3,"click","icon"]],template:function(i,r){1&i&&(P(0,"cc-action-icon",0),We("click",function(){return r.uploadFiles()}),H()),2&i&&pe("icon","fa fa-folder-open folder-icon")},dependencies:[VA],encapsulation:2})}}return n})();const ZN=typeof navigator<"u"&&navigator.userAgent.toLowerCase().indexOf("firefox")>0;function JN(n,t,e,i){n.addEventListener?n.addEventListener(t,e,i):n.attachEvent&&n.attachEvent("on".concat(t),e)}function sx(n,t,e,i){n.removeEventListener?n.removeEventListener(t,e,i):n.detachEvent&&n.detachEvent("on".concat(t),e)}function lte(n,t){const e=t.slice(0,t.length-1);for(let i=0;i=0;)t[e-1]+=",",t.splice(e,1),e=t.lastIndexOf("");return t}const ax={backspace:8,"\u232b":8,tab:9,clear:12,enter:13,"\u21a9":13,return:13,esc:27,escape:27,space:32,left:37,up:38,right:39,down:40,del:46,delete:46,ins:45,insert:45,home:36,end:35,pageup:33,pagedown:34,capslock:20,num_0:96,num_1:97,num_2:98,num_3:99,num_4:100,num_5:101,num_6:102,num_7:103,num_8:104,num_9:105,num_multiply:106,num_add:107,num_enter:108,num_subtract:109,num_decimal:110,num_divide:111,"\u21ea":20,",":188,".":190,"/":191,"`":192,"-":ZN?173:189,"=":ZN?61:187,";":ZN?59:186,"'":222,"[":219,"]":221,"\\":220},Mu={"\u21e7":16,shift:16,"\u2325":18,alt:18,option:18,"\u2303":17,ctrl:17,control:17,"\u2318":91,cmd:91,command:91},e5={16:"shiftKey",18:"altKey",17:"ctrlKey",91:"metaKey",shiftKey:16,ctrlKey:17,altKey:18,metaKey:91},ra={16:!1,18:!1,17:!1,91:!1},Oo={};for(let n=1;n<20;n++)ax["f".concat(n)]=111+n;let mo=[],lx=null,dte="all";const nf=new Map,cx=n=>ax[n.toLowerCase()]||Mu[n.toLowerCase()]||n.toUpperCase().charCodeAt(0);function ute(n){dte=n||"all"}function dx(){return dte||"all"}function hte(n){if(typeof n>"u")Object.keys(Oo).forEach(r=>{Array.isArray(Oo[r])&&Oo[r].forEach(o=>AI(o)),delete Oo[r]}),t5(null);else if(Array.isArray(n))n.forEach(r=>{r.key&&AI(r)});else if("object"==typeof n)n.key&&AI(n);else if("string"==typeof n){for(var t=arguments.length,e=new Array(t>1?t-1:0),i=1;i{let{key:t,scope:e,method:i,splitKey:r="+"}=n;cte(t).forEach(s=>{const a=s.split(r),l=a.length,c=a[l-1],d="*"===c?"*":cx(c);if(!Oo[d])return;e||(e=dx());const u=l>1?lte(Mu,a):[],h=[];Oo[d]=Oo[d].filter(f=>{const y=(!i||f.method===i)&&f.scope===e&&function n7e(n,t){const e=n.length>=t.length?n:t,i=n.length>=t.length?t:n;let r=!0;for(let o=0;ot5(f))})};function fte(n,t,e,i){if(t.element!==i)return;let r;if(t.scope===e||"all"===t.scope){r=t.mods.length>0;for(const o in ra)Object.prototype.hasOwnProperty.call(ra,o)&&(!ra[o]&&t.mods.indexOf(+o)>-1||ra[o]&&-1===t.mods.indexOf(+o))&&(r=!1);(0===t.mods.length&&!ra[16]&&!ra[18]&&!ra[17]&&!ra[91]||r||"*"===t.shortcut)&&(t.keys=[],t.keys=t.keys.concat(mo),!1===t.method(n,t)&&(n.preventDefault?n.preventDefault():n.returnValue=!1,n.stopPropagation&&n.stopPropagation(),n.cancelBubble&&(n.cancelBubble=!0)))}}function mte(n,t){const e=Oo["*"];let i=n.keyCode||n.which||n.charCode;if(!Eu.filter.call(this,n))return;if((93===i||224===i)&&(i=91),-1===mo.indexOf(i)&&229!==i&&mo.push(i),["ctrlKey","altKey","shiftKey","metaKey"].forEach(a=>{const l=e5[a];n[a]&&-1===mo.indexOf(l)?mo.push(l):!n[a]&&mo.indexOf(l)>-1?mo.splice(mo.indexOf(l),1):"metaKey"===a&&n[a]&&3===mo.length&&(n.ctrlKey||n.shiftKey||n.altKey||(mo=mo.slice(mo.indexOf(l))))}),i in ra){ra[i]=!0;for(const a in Mu)Mu[a]===i&&(Eu[a]=!0);if(!e)return}for(const a in ra)Object.prototype.hasOwnProperty.call(ra,a)&&(ra[a]=n[e5[a]]);n.getModifierState&&(!n.altKey||n.ctrlKey)&&n.getModifierState("AltGraph")&&(-1===mo.indexOf(17)&&mo.push(17),-1===mo.indexOf(18)&&mo.push(18),ra[17]=!0,ra[18]=!0);const r=dx();if(e)for(let a=0;a1&&(r=lte(Mu,n)),(n="*"===(n=n[n.length-1])?"*":cx(n))in Oo||(Oo[n]=[]),Oo[n].push({keyup:l,keydown:c,scope:o,mods:r,shortcut:i[a],method:e,key:i[a],splitKey:d,element:s});if(typeof s<"u"&&window){if(!nf.has(s)){const f=function(){return mte(arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.event,s)},A=function(){let y=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.event;mte(y,s),function u7e(n){let t=n.keyCode||n.which||n.charCode;const e=mo.indexOf(t);if(e>=0&&mo.splice(e,1),n.key&&"meta"===n.key.toLowerCase()&&mo.splice(0,mo.length),(93===t||224===t)&&(t=91),t in ra){ra[t]=!1;for(const i in Mu)Mu[i]===t&&(Eu[i]=!1)}}(y)};nf.set(s,{keydownListener:f,keyupListenr:A,capture:u}),JN(s,"keydown",f,u),JN(s,"keyup",A,u)}if(!lx){const f=()=>{mo=[]};lx={listener:f,capture:u},JN(window,"focus",f,u)}}}function t5(n){const t=Object.values(Oo).flat();if(t.findIndex(i=>{let{element:r}=i;return r===n})<0){const{keydownListener:i,keyupListenr:r,capture:o}=nf.get(n)||{};i&&r&&(sx(n,"keyup",r,o),sx(n,"keydown",i,o),nf.delete(n))}if((t.length<=0||nf.size<=0)&&(Object.keys(nf).forEach(r=>{const{keydownListener:o,keyupListenr:s,capture:a}=nf.get(r)||{};o&&s&&(sx(r,"keyup",s,a),sx(r,"keydown",o,a),nf.delete(r))}),nf.clear(),Object.keys(Oo).forEach(r=>delete Oo[r]),lx)){const{listener:r,capture:o}=lx;sx(window,"focus",r,o),lx=null}}const n5={getPressedKeyString:function s7e(){return mo.map(n=>(n=>Object.keys(ax).find(t=>ax[t]===n))(n)||(n=>Object.keys(Mu).find(t=>Mu[t]===n))(n)||String.fromCharCode(n))},setScope:ute,getScope:dx,deleteScope:function d7e(n,t){let e,i;n||(n=dx());for(const r in Oo)if(Object.prototype.hasOwnProperty.call(Oo,r))for(e=Oo[r],i=0;i{let{element:a}=s;return t5(a)}):i++;dx()===n&&ute(t||"all")},getPressedKeyCodes:function o7e(){return mo.slice(0)},getAllKeyCodes:function a7e(){const n=[];return Object.keys(Oo).forEach(t=>{Oo[t].forEach(e=>{let{key:i,scope:r,mods:o,shortcut:s}=e;n.push({scope:r,shortcut:s,mods:o,keys:i.split("+").map(a=>cx(a))})})}),n},isPressed:function c7e(n){return"string"==typeof n&&(n=cx(n)),-1!==mo.indexOf(n)},filter:function l7e(n){const t=n.target||n.srcElement,{tagName:e}=t;let i=!0;const r="INPUT"===e&&!["checkbox","radio","range","button","file","reset","submit","color"].includes(t.type);return(t.isContentEditable||(r||"TEXTAREA"===e||"SELECT"===e)&&!t.readOnly)&&(i=!1),i},trigger:function h7e(n){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"all";Object.keys(Oo).forEach(e=>{Oo[e].filter(r=>r.scope===t&&r.shortcut===n).forEach(r=>{r&&r.method&&r.method()})})},unbind:hte,keyMap:ax,modifier:Mu,modifierMap:e5};for(const n in n5)Object.prototype.hasOwnProperty.call(n5,n)&&(Eu[n]=n5[n]);if(typeof window<"u"){const n=window.hotkeys;Eu.noConflict=t=>(t&&window.hotkeys===Eu&&(window.hotkeys=n),Eu),window.hotkeys=Eu}var f7e=p(7239),m7e=p.n(f7e);function i5(){return(i5=B(function*(n){const t=[new ClipboardItem({[n.type]:n})];yield navigator.clipboard.write(t)})).apply(this,arguments)}const pte=Zt(no,n=>n.screenshotToClipboardEnabled);function g7e(n,t){if(1&n){const e=Pn();P(0,"cc-action-icon",2),We("click",function(){return Vt(e),Ot(He().makeScreenshotToClipboard())}),H()}if(2&n){const e=He();Qn("disabled",!e.isWriteToClipboardAllowed),ka("title",e.TITLE_CLIPBOARD_BUTTON),pe("icon","fa fa-camera")}}function _7e(n,t){if(1&n){const e=Pn();P(0,"cc-action-icon",2),We("click",function(){return Vt(e),Ot(He().makeScreenshotToFile())}),H()}2&n&&(ka("title",He().TITLE_FILE_BUTTON),pe("icon","fa fa-camera"))}let b7e=(()=>{class n{constructor(e,i,r,o,s){this.threeCameraService=e,this.threeSceneService=i,this.threeRendererService=r,this.store=o,this.state=s,this.SCREENSHOT_HOTKEY_TO_FILE="Ctrl+Alt+S",this.SCREENSHOT_HOTKEY_TO_CLIPBOARD="Ctrl+Alt+F",this.isScreenshotToClipboardEnabled$=this.store.select(pte)}ngOnInit(){this.isWriteToClipboardAllowed=function A7e(){return"clipboard"in navigator&&"write"in navigator.clipboard}(),this.TITLE_CLIPBOARD_BUTTON=this.createTitleClipboardButton(),this.TITLE_FILE_BUTTON=this.createTitleFileButton(),Eu(this.SCREENSHOT_HOTKEY_TO_FILE,()=>{this.makeScreenshotToFile()}),Eu(this.SCREENSHOT_HOTKEY_TO_CLIPBOARD,()=>{this.makeScreenshotToClipboard()})}makeScreenshotToFile(){var e=this;return B(function*(){const i=e.threeRendererService.renderer,r=e.saveRenderSettings(i),o=yield e.buildScreenShotCanvas(i);e.downloadScreenshot(o,e.state.getValue().files),e.applyRenderSettings(i,r)})()}makeScreenshotToClipboard(){var e=this;return B(function*(){if(!e.isWriteToClipboardAllowed)return;const i=e.threeRendererService.renderer,r=e.saveRenderSettings(i),o=yield e.buildScreenShotCanvas(i),s=new Promise(l=>o.toBlob(l));e.applyRenderSettings(i,r);const a=yield s;yield function p7e(n){return i5.apply(this,arguments)}(a)})()}downloadScreenshot(e,i){const r=e.toDataURL("image/png"),o=document.createElement("a");o.download=function w_e(n,t){const e=Jd(n)?"delta":"",r=GE(n).map(a=>function x_e(n){return n.file.fileMeta.fileName.replace(/(.cc)?.json$/,"")}(a)),o=function C_e(n){return n.length<=3?n.join(qE):[n.at(0),mG,n.at(-1)].join(qE)}(r);return function M_e(n,t,e){const i=[t,n].filter(o=>o.length>0).join(qE),r=255-e.length-xP.length;return i.length<=r?[i,qE,e,xP].join(""):[i.slice(0,r-1),mG,e,xP].join("")}(o,e,t)}(i,"map"),o.href=r,document.body.appendChild(o),o.click(),o.remove()}saveRenderSettings(e){const i=e.getPixelRatio(),r=new an;return e.getClearColor(r),{pixelRatio:i,clearColor:r}}applyRenderSettings(e,i){const{pixelRatio:r,clearColor:o}=i;e.setPixelRatio(r),e.setClearColor(o),e.render(this.threeSceneService.scene,this.threeCameraService.camera)}buildScreenShotCanvas(e){var i=this;return B(function*(){e.setPixelRatio(window.devicePixelRatio),e.setClearColor(new an(0,0,0),0),e.render(i.threeSceneService.scene,i.threeCameraService.camera);const r=new Set(["cc-logo","cc-tool-bar","cc-view-cube","cc-ribbon-bar","cc-file-extension-bar","cc-attribute-side-bar","cc-loading-file-progess-spinner"]),o=new Set(["legend-panel-button"]),s=document.querySelector("body")?.offsetHeight,a=document.querySelector("cc-ribbon-bar")?.offsetHeight,l=document.querySelector("cc-tool-bar")?.offsetHeight,c=document.querySelector("cc-file-extension-bar")?.offsetHeight,d=a+l+c,u=yield m7e()(document.querySelector("body"),{removeContainer:!0,backgroundColor:"#00",scrollY:-d,height:s-d,ignoreElements:h=>r.has(h.tagName.toLowerCase())||o.has(h.id)||"10000"===h.style.zIndex});return i.getCroppedCanvas(u)})()}getCroppedCanvas(e){const i=e.getContext("2d"),r=e.width,o=e.height,a=i.getImageData(0,0,r,o).data;let l=r,c=o,d=0,u=0;for(let A=0;A0&&(l=Math.min(l,A),d=Math.max(d,A),c=Math.min(c,y),u=Math.max(u,y));const h=document.createElement("canvas"),f=h.getContext("2d");return h.width=d-l+1,h.height=u-c+1,f.drawImage(e,l,c,h.width,h.height,0,0,h.width,h.height),h}createTitleClipboardButton(){return this.isWriteToClipboardAllowed?`Take a screenshot of the map with ${this.SCREENSHOT_HOTKEY_TO_CLIPBOARD} (copy to clipboard) or ${this.SCREENSHOT_HOTKEY_TO_FILE} (save as file)`:"Firefox does not support copying to clipboard"}createTitleFileButton(){return`Take a screenshot of the map with ${this.SCREENSHOT_HOTKEY_TO_FILE} (save as file) or ${this.SCREENSHOT_HOTKEY_TO_CLIPBOARD} (copy to clipboard)`}static{this.\u0275fac=function(i){return new(i||n)($(vu),$(Pc),$($i),$(Xt),$(jr))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-screenshot-button"]],decls:4,vars:6,consts:[[3,"icon","title","disabled"],[3,"icon","title"],[3,"click","icon","title"]],template:function(i,r){1&i&&(At(0,g7e,1,4,"cc-action-icon",0),$e(1,"async"),At(2,_7e,1,2,"cc-action-icon",1),$e(3,"async")),2&i&&(It(0,rt(1,2,r.isScreenshotToClipboardEnabled$)?0:-1),U(2),It(2,rt(3,4,r.isScreenshotToClipboardEnabled$)?-1:2))},dependencies:[VA,Yn],encapsulation:2})}}return n})();function v7e(n){return`\t\u2022 ${n.filePath} (${n.value})\n`}function y7e(n){return`${n.toUpperCase()}\n`}function M7e(n){return n.type===Oa.FILE&&void 0!==n.attributes}function E7e(n,t,e){for(const[i,r]of Object.entries(n.attributes)){const o=t?.[i]?.direction,s={filePath:n.path,value:r};if(e.has(i)){const a=e.get(i);S7e(a,s,o),e.set(i,a.slice(0,10))}else e.set(i,[s])}}function S7e(n,t,e){const i=function T7e(n){return 1===n?(t,e)=>t.value-e.value:(t,e)=>e.value-t.value}(e),r=n.findIndex(o=>i(t,o)<0);-1===r?n.push(t):n.splice(r,0,t)}let Ate=(()=>{class n{constructor(e){this.state=e}getClipboardText(){const r=function C7e(n,t){const e=new Map;for(const{data:i}of bo(n))M7e(i)&&E7e(i,t,e);return e}(this.getUnifiedMapNode(),this.state.getValue().fileSettings.attributeDescriptors);return function w7e(n){let t="";for(const[e,i]of n.entries()){t+=y7e(e);for(const r of i)t+=v7e(r)}return t}(r)}getUnifiedMapNode(){const{unifiedMapNode:e}=Bc(this.state.getValue());return e}static{this.\u0275fac=function(i){return new(i||n)(ge(jr))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac})}}return n})(),I7e=(()=>{class n{constructor(e){this.copyToClipboardService=e}copyNamesToClipBoard(){var e=this;return B(function*(){yield navigator.clipboard.writeText(e.copyToClipboardService.getClipboardText())})()}static{this.\u0275fac=function(i){return new(i||n)($(Ate))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-copy-to-clipboard-button"]],decls:1,vars:0,consts:[["icon","fa fa-clipboard","title","Copy filenames with highest metric values to clipboard",3,"click"]],template:function(i,r){1&i&&(P(0,"cc-action-icon",0),We("click",function(){return r.copyNamesToClipBoard()}),H())},dependencies:[VA],encapsulation:2})}}return n})();class F7e{parse(t,e={}){const i=(e=Object.assign({binary:!1},e)).binary,r=[];let o=0;t.traverse(function(b){if(b.isMesh){const M=b.geometry,C=M.index,E=M.getAttribute("position");o+=null!==C?C.count/3:E.count/3,r.push({object3d:b,geometry:M})}});let s,a=80;if(!0===i){const M=new ArrayBuffer(2*o+3*o*4*4+80+4);s=new DataView(M),s.setUint32(a,o,!0),a+=4}else s="",s+="solid exported\n";const l=new ie,c=new ie,d=new ie,u=new ie,h=new ie,f=new ie;for(let b=0,M=r.length;b>1|(21845&yo)<<1;fx[yo]=((65280&(Om=(61680&(Om=(52428&Om)>>2|(13107&Om)<<2))>>4|(3855&Om)<<4))>>8|(255&Om)<<8)>>1}var Su=function(n,t,e){for(var i=n.length,r=0,o=new Ga(t);r>l]=c}else for(a=new Ga(i),r=0;r>15-n[r]);return a},Nm=new Qr(288);for(yo=0;yo<144;++yo)Nm[yo]=8;for(yo=144;yo<256;++yo)Nm[yo]=9;for(yo=256;yo<280;++yo)Nm[yo]=7;for(yo=280;yo<288;++yo)Nm[yo]=8;var mx=new Qr(32);for(yo=0;yo<32;++yo)mx[yo]=5;var wte=Su(Nm,9,0),Cte=Su(mx,5,0),px=function(n){return(n+7)/8|0},Um=function(n,t,e){return(null==t||t<0)&&(t=0),(null==e||e>n.length)&&(e=n.length),new Qr(n.subarray(t,e))},Ete=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],_r=function(n,t,e){var i=new Error(t||Ete[n]);if(i.code=n,Error.captureStackTrace&&Error.captureStackTrace(i,_r),!e)throw i;return i},Tu=function(n,t,e){var i=t/8|0;n[i]|=e<<=7&t,n[i+1]|=e>>8},Eb=function(n,t,e){var i=t/8|0;n[i]|=e<<=7&t,n[i+1]|=e>>8,n[i+2]|=e>>16},yI=function(n,t){for(var e=[],i=0;ih&&(h=o[i].s);var f=new Ga(h+1),A=wI(e[d-1],f,0);if(A>t){i=0;var y=0,_=A-t,b=1<<_;for(o.sort(function(V,R){return f[R.s]-f[V.s]||V.f-R.f});it))break;y+=b-(1<>=_;y>0;){var C=o[i].s;f[C]=0&&y;--i){var E=o[i].s;f[E]==t&&(--f[E],++y)}A=t}return{t:new Qr(f),l:A}},wI=function(n,t,e){return-1==n.s?Math.max(wI(n.l,t,e+1),wI(n.r,t,e+1)):t[n.s]=e},s5=function(n){for(var t=n.length;t&&!n[--t];);for(var e=new Ga(++t),i=0,r=n[0],o=1,s=function(l){e[i++]=l},a=1;a<=t;++a)if(n[a]==r&&a!=t)++o;else{if(!r&&o>2){for(;o>138;o-=138)s(32754);o>2&&(s(o>10?o-11<<5|28690:o-3<<5|12305),o=0)}else if(o>3){for(s(r),--o;o>6;o-=6)s(8304);o>2&&(s(o-3<<5|8208),o=0)}for(;o--;)s(r);o=1,r=n[a]}return{c:e.subarray(0,i),n:t}},Sb=function(n,t){for(var e=0,i=0;i>8,n[r+2]=255^n[r],n[r+3]=255^n[r+1];for(var o=0;o4&&!W[hx[Se-1]];--Se);var re,oe,ae,Ce,Me=c+5<<3,Z=Sb(r,Nm)+Sb(o,mx)+s,ve=Sb(r,h)+Sb(o,y)+s+14+3*Se+Sb(R,W)+2*R[16]+3*R[17]+7*R[18];if(l>=0&&Me<=Z&&Me<=ve)return a5(t,d,n.subarray(l,l+c));if(Tu(t,d,1+(ve15&&(Tu(t,d,Nt[K]>>5&127),d+=Nt[K]>>12)}}else re=wte,oe=Nm,ae=Cte,Ce=mx;for(K=0;K255){var _e;Eb(t,d,re[257+(_e=fe>>18&31)]),d+=oe[_e+257],_e>7&&(Tu(t,d,fe>>23&31),d+=Cb[_e]);var se=31&fe;Eb(t,d,ae[se]),d+=Ce[se],se>3&&(Eb(t,d,fe>>5&8191),d+=Mb[se])}else Eb(t,d,re[fe]),d+=oe[fe]}return Eb(t,d,re[256]),d+oe[256]},Ste=new ux([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),c5=new Qr(0),Ite=function(){for(var n=new Int32Array(256),t=0;t<256;++t){for(var e=t,i=9;--i;)e=(1&e&&-306674912)^e>>>1;n[t]=e}return n}(),xI=function(){var n=-1;return{p:function(t){for(var e=n,i=0;i>>8;n=e},d:function(){return~n}}},CI=function(n,t,e,i,r){if(!r&&(r={l:1},t.dictionary)){var o=t.dictionary.subarray(-32768),s=new Qr(o.length+n.length);s.set(o),s.set(n,o.length),n=s,r.w=o.length}return function(n,t,e,i,r,o){var s=o.z||n.length,a=new Qr(i+s+5*(1+Math.ceil(s/7e3))+r),l=a.subarray(i,a.length-r),c=o.l,d=7&(o.r||0);if(t){d&&(l[0]=o.r>>3);for(var u=Ste[t-1],h=u>>13,f=8191&u,A=(1<7e3||W>24576)&&(re>423||!c)){d=l5(n,l,0,E,I,V,K,W,Se,k-Se,d),W=R=K=0,Se=k;for(var oe=0;oe<286;++oe)I[oe]=0;for(oe=0;oe<30;++oe)V[oe]=0}var ae=2,Ce=0,Qe=f,Ie=Z-ve&32767;if(re>2&&Me==C(k-Ie))for(var Ke=Math.min(h,re)-1,Nt=Math.min(32767,k),_e=Math.min(258,re);Ie<=Nt&&--Qe&&Z!=ve;){if(n[k+ae]==n[k+ae-Ie]){for(var fe=0;fe<_e&&n[k+fe]==n[k+fe-Ie];++fe);if(fe>ae){if(ae=fe,Ce=Ie,fe>Ke)break;var se=Math.min(Ie,fe-2),J=0;for(oe=0;oeJ&&(J=lt,ve=Ye)}}}Ie+=(Z=ve)-(ve=y[Z])&32767}if(Ce){E[W++]=268435456|gI[ae]<<18|o5[Ce];var Tt=31&gI[ae],me=31&o5[Ce];K+=Cb[Tt]+Mb[me],++I[257+Tt],++V[me],ue=k+ae,++R}else E[W++]=n[k],++I[n[k]]}}for(k=Math.max(k,ue);k=s&&(l[d/8|0]=c,mt=s),d=a5(l,d+1,n.subarray(k,mt))}o.i=s}return Um(a,0,i+px(d)+r)}(n,null==t.level?6:t.level,null==t.mem?r.l?Math.ceil(1.5*Math.max(8,Math.min(13,Math.log(n.length)))):20:12+t.mem,e,i,r)},MI=function(n,t){var e={};for(var i in n)e[i]=n[i];for(var i in t)e[i]=t[i];return e},To=function(n,t,e){for(;e;++t)n[t]=e,e>>>=8};function SI(n,t){return CI(n,t||{},0,0)}var g5=function(n,t,e,i){for(var r in n){var o=n[r],s=t+r,a=i;Array.isArray(o)&&(a=MI(i,o[1]),o=o[0]),o instanceof Qr?e[s]=[o,a]:(e[s+="/"]=[new Qr(0),a],g5(o,s,e,i))}},Vte=typeof TextEncoder<"u"&&new TextEncoder,_5=typeof TextDecoder<"u"&&new TextDecoder;try{_5.decode(c5,{stream:!0})}catch{}function Vm(n,t){if(t){for(var e=new Qr(n.length),i=0;i>1)),s=0,a=function(d){o[s++]=d};for(i=0;io.length){var l=new Qr(s+8+(r-i<<1));l.set(o),o=l}var c=n.charCodeAt(i);c<128||t?a(c):c<2048?(a(192|c>>6),a(128|63&c)):c>55295&&c<57344?(a(240|(c=65536+(1047552&c)|1023&n.charCodeAt(++i))>>18),a(128|c>>12&63),a(128|c>>6&63),a(128|63&c)):(a(224|c>>12),a(128|c>>6&63),a(128|63&c))}return Um(o,0,s)}var gx=function(n){var t=0;if(n)for(var e in n){var i=n[e].length;i>65535&&_r(9),t+=i+4}return t},TI=function(n,t,e,i,r,o,s,a){var l=i.length,c=e.extra,d=a&&a.length,u=gx(c);To(n,t,null!=s?33639248:67324752),t+=4,null!=s&&(n[t++]=20,n[t++]=e.os),n[t]=20,t+=2,n[t++]=e.flag<<1|(o<0&&8),n[t++]=r&&8,n[t++]=255&e.compression,n[t++]=e.compression>>8;var h=new Date(null==e.mtime?Date.now():e.mtime),f=h.getFullYear()-1980;if((f<0||f>119)&&_r(10),To(n,t,f<<25|h.getMonth()+1<<21|h.getDate()<<16|h.getHours()<<11|h.getMinutes()<<5|h.getSeconds()>>1),t+=4,-1!=o&&(To(n,t,e.crc),To(n,t+4,o<0?-o-2:o),To(n,t+8,e.size)),To(n,t+12,l),To(n,t+14,u),t+=16,null!=s&&(To(n,t,d),To(n,t+6,e.attrs),To(n,t+10,s),t+=14),n.set(i,t),t+=l,u)for(var A in c){var y=c[A],_=y.length;To(n,t,+A),To(n,t+2,_),n.set(y,t+4),t+=4+_}return d&&(n.set(a,t),t+=d),t};function X7e(n){return` \n \n \n \n \n \n`}function b5(){return(b5=B(function*(n){const{vertices:t,triangles:e,volumes:i}=function Gte(n){const t=[],e=[],i=[],r=new Map,o=new Map;for(const a of n.children)v5(a,t,e,r,1,o,i);return{vertices:t,triangles:e,volumes:i}}(n),r=function Y7e(n,t){const i=function J7e(n){let t=" \n";for(const e of n)t+=` ${e}\n`;return t+=" \n",t}(n),r=function eHe(n){let t=" \n";for(const e of n)t+=` ${e}\n`;return t+=" \n",t}(t);return'\n\n PrusaSlicer-2.7.2\n \n \n \n'+i+r+' \n \n \n \n\n'}(t,e),o=function $7e(n){let t='\n\n \n \n';for(const e of n)t+=X7e(e);return t+=" \n\n",t}(i);return function q7e(n,t){t||(t={});var e={},i=[];g5(n,"",e,t);var r=0,o=0;for(var s in e){var a=e[s],l=a[0],c=a[1],d=0==c.level?0:8,h=(u=Vm(s)).length,f=c.comment,A=f&&Vm(f),y=A&&A.length,_=gx(c.extra);h>65535&&_r(11);var b=d?SI(l,c):l,M=b.length,C=xI();C.p(l),i.push(MI(c,{size:l.length,crc:C.d(),c:b,f:u,m:A,u:h!=s.length||A&&f.length!=y,o:r,compression:d})),r+=30+h+_+M,o+=76+2*(h+_)+(y||0)+M}for(var E=new Qr(o+22),I=r,V=o-r,R=0;R\n \n \n')},Metadata:{"Slic3r_PE_model.config":Vm(o)},"[Content_Types].xml":Vm('\n\n \n \n')},{comment:"created by CodeCharta"}).buffer})).apply(this,arguments)}function v5(n,t,e,i,r,o,s,a=void 0){if(!n.visible)return;for(const d of n.children){let u=n.matrix;a&&(u=a.clone().multiply(n.matrix)),v5(d,t,e,i,r,o,s,u)}const l=function Wte(n){const t=new Map;if(n.geometry.attributes.color)for(let e=0;es);t.set(i,r)}return t}(n),c=new Map;for(const[d,u]of l.entries()){const h=e.length;$te(t,i,c,u,n,a),jte(n.geometry,e,c,u),Xte(n,d,h,e.length-1,s,r,o),r++}}function $te(n,t,e,i,r,o){const s=r.geometry.attributes.position;for(const a of i){const l=new ie(s.getX(a),s.getY(a),s.getZ(a));l.applyMatrix4(r.matrix),o&&l.applyMatrix4(o);const c=``;t.has(c)?e.set(a,t.get(c)):(n.push(c),t.set(c,n.length-1),e.set(a,n.length-1))}}function jte(n,t,e,i){if(n.index){const r=n.index;for(let o=0;o`;t.push(c)}}}else for(let r=0;r`;t.push(o)}}function Xte(n,t,e,i,r,o,s){s.has(t)||s.set(t,s.size+1);const a=s.get(t);r.push({id:o,name:"Map"===n.name?`${n.name} 0x${t}`:n.name,color:t,extruder:a,firstTriangleId:e,lastTriangleId:i})}function y5(n,t){return(n instanceof rr?[n.getX(t),n.getY(t),n.getZ(t)]:[n[t],n[t+1],n[t+2]]).map(i=>Math.round(255*i).toString(16).padStart(2,"0")).join("")}"function"==typeof queueMicrotask?queueMicrotask:"function"==typeof setTimeout&&setTimeout;class w5{constructor(t){this.isFont=!0,this.type="Font",this.data=t}generateShapes(t,e=100){const i=[],r=function iHe(n,t,e){const i=Array.from(n),r=t/e.resolution,o=(e.boundingBox.yMax-e.boundingBox.yMin+e.underlineThickness)*r,s=[];let a=0,l=0;for(let c=0;c{e.geometry=r});const i=new ec;return i.copy(t.defaultMaterial),i.polygonOffset=!0,i.polygonOffsetUnits=1,i.polygonOffsetFactor=.1,e.material=i,e.updateColor(t.numberOfColors),new Promise(r=>{r(e)})})()}changeSize(t){this.boundingBoxCalculated=!1,this.createBaseplateGeometryStrategy.create(t).then(e=>{this.geometry=e})}}class KA extends Ed{constructor(t,e,i=1,r=!0){super(t,e),this.minWidth=i,this.manualVisibility=r}setManualVisibility(t){this.manualVisibility=t,this.updateVisibility()}setCurrentWidth(t){this.currentWidth=t,this.updateVisibility()}updateVisibility(){this.visible=this.manualVisibility&&this.visibleBecauseOfColor&&(!this.currentWidth||this.currentWidth>=this.minWidth)}updateColor(t){this.visibleBecauseOfColor=this.colorChangeStrategy.execute(t,this);for(const e of this.children)e instanceof Ed&&e.updateColor(t);this.updateVisibility()}}class ml{execute(t,e){if(t<=1)return!1;let i;return i=t<4?[1,1,1]:4===t?[1,1,0]:[1,1,1],e.material.color.setRGB(i[0],i[1],i[2]),!0}}class lHe extends KA{constructor(){super("Map",new ml,1,!1)}init(t){var e=this;return B(function*(){e.material=t.originalMapMesh.clone().material,e.originalColors=t.originalMapMesh.geometry.attributes.color;const i=t.originalMapMesh.geometry.clone();return i.computeBoundingBox(),i.rotateX(Math.PI/2),e.updateMapGeometry(t,i),i.computeBoundingBox(),i.rotateZ(-Math.PI/2),e.geometry=i,e})()}updateMapGeometry(t,e){const i=t.width-2*t.mapSideOffset,o=i/e.boundingBox.max.x;return e.scale(o,o,o),e.translate(-i/2,i/2,0),this.updateMapColors(this.originalColors,e,t.numberOfColors),e}updateMapColors(t,e,i){const r=[];for(let o=0;o.75&&a>.75?c=i<4?[1,1,1]:[1,1,0]:s>.45&&a<.1?c=i<4?[1,1,1]:[1,0,0]:s<5&&a>.6?c=i<4?[1,1,1]:[0,1,0]:(console.error("Unknown color"),c=[1,1,1]),r.push(...c)}e.setAttribute("color",new Ln(r,3))}changeSize(t,e){var i=this;return B(function*(){const r=(t.width-2*t.mapSideOffset)/(e-2*t.mapSideOffset);i.geometry.scale(r,r,r)})()}updateColor(t){this.updateMapColors(this.originalColors,this.geometry,t)}}const cHe=fo;class x5 extends hl{constructor(t){super(t),this.defaultDPI=90,this.defaultUnit="px"}load(t,e,i,r){const o=this,s=new _u(o.manager);s.setPath(o.path),s.setRequestHeader(o.requestHeader),s.setWithCredentials(o.withCredentials),s.load(t,function(a){try{e(o.parse(a))}catch(l){r?r(l):console.error(l),o.manager.itemError(t)}},i,r)}parse(t){const e=this;function s(_e,fe,se,J,Ye,Ft,lt,Tt){if(0==fe||0==se)return void _e.lineTo(Tt.x,Tt.y);J=J*Math.PI/180,fe=Math.abs(fe),se=Math.abs(se);const me=(lt.x-Tt.x)/2,mt=(lt.y-Tt.y)/2,Pe=Math.cos(J)*me+Math.sin(J)*mt,ot=-Math.sin(J)*me+Math.cos(J)*mt;let ft=fe*fe,_t=se*se;const Ee=Pe*Pe,Ae=ot*ot,zt=Ee/ft+Ae/_t;if(zt>1){const nn=Math.sqrt(zt);ft=(fe*=nn)*fe,_t=(se*=nn)*se}const Tn=ft*Ae+_t*Ee;let ye=Math.sqrt(Math.max(0,(ft*_t-Tn)/Tn));Ye===Ft&&(ye=-ye);const ne=ye*fe*ot/se,bt=-ye*se*Pe/fe,Jt=Math.cos(J)*ne-Math.sin(J)*bt+(lt.x+Tt.x)/2,jt=Math.sin(J)*ne+Math.cos(J)*bt+(lt.y+Tt.y)/2,en=a(1,0,(Pe-ne)/fe,(ot-bt)/se),zn=a((Pe-ne)/fe,(ot-bt)/se,(-Pe-ne)/fe,(-ot-bt)/se)%(2*Math.PI);_e.currentPath.absellipse(Jt,jt,fe,se,en,en+zn,0===Ft,J)}function a(_e,fe,se,J){const Ye=_e*se+fe*J,Ft=Math.sqrt(_e*_e+fe*fe)*Math.sqrt(se*se+J*J);let lt=Math.acos(Math.max(-1,Math.min(1,Ye/Ft)));return _e*J-fe*se<0&&(lt=-lt),lt}function A(_e,fe){fe=Object.assign({},fe);let se={};if(_e.hasAttribute("class")){const lt=_e.getAttribute("class").split(/\s/).filter(Boolean).map(Tt=>Tt.trim());for(let Tt=0;TtNumber.EPSILON}function k(_e){const fe=_e.elements;return Math.sqrt(fe[0]*fe[0]+fe[1]*fe[1])}function W(_e){const fe=_e.elements;return Math.sqrt(fe[3]*fe[3]+fe[4]*fe[4])}const Se=[],Me={},Z=[],ve=new Ci,re=new Ci,oe=new Ci,ae=new Ci,Ce=new at,Qe=new ie,Ie=new Ci,Ke=(new DOMParser).parseFromString(t,"image/svg+xml");return function i(_e,fe){if(1!==_e.nodeType)return;const se=function E(_e){if(!(_e.hasAttribute("transform")||"use"===_e.nodeName&&(_e.hasAttribute("x")||_e.hasAttribute("y"))))return null;const fe=function I(_e){const fe=new Ci,se=ve;if("use"===_e.nodeName&&(_e.hasAttribute("x")||_e.hasAttribute("y"))){const J=C(_e.getAttribute("x")),Ye=C(_e.getAttribute("y"));fe.translate(J,Ye)}if(_e.hasAttribute("transform")){const J=_e.getAttribute("transform").split(")");for(let Ye=J.length-1;Ye>=0;Ye--){const Ft=J[Ye].trim();if(""===Ft)continue;const lt=Ft.indexOf("(");if(lt>0&<=1){let ot=0;mt.length>=2&&(ot=mt[1]),se.translate(mt[0],ot)}break;case"rotate":if(mt.length>=1){let Pe=0,ot=0,ft=0;Pe=mt[0]*Math.PI/180,mt.length>=3&&(ot=mt[1],ft=mt[2]),re.makeTranslation(-ot,-ft),oe.makeRotation(Pe),ae.multiplyMatrices(oe,re),re.makeTranslation(ot,ft),se.multiplyMatrices(re,ae)}break;case"scale":if(mt.length>=1){const Pe=mt[0];let ot=Pe;mt.length>=2&&(ot=mt[1]),se.scale(Pe,ot)}break;case"skewX":1===mt.length&&se.set(1,Math.tan(mt[0]*Math.PI/180),0,0,1,0,0,0,1);break;case"skewY":1===mt.length&&se.set(1,0,0,Math.tan(mt[0]*Math.PI/180),1,0,0,0,1);break;case"matrix":6===mt.length&&se.set(mt[0],mt[2],mt[4],mt[1],mt[3],mt[5],0,0,1)}}fe.premultiply(se)}}return fe}(_e);return Z.length>0&&fe.premultiply(Z[Z.length-1]),Ie.copy(fe),Z.push(fe),fe}(_e);let J=!1,Ye=null;switch(_e.nodeName){case"svg":case"g":fe=A(_e,fe);break;case"style":!function o(_e){if(_e.sheet&&_e.sheet.cssRules&&_e.sheet.cssRules.length)for(let fe=0;fe<_e.sheet.cssRules.length;fe++){const se=_e.sheet.cssRules[fe];if(1!==se.type)continue;const J=se.selectorText.split(/,/gm).filter(Boolean).map(Ye=>Ye.trim());for(let Ye=0;Ye""!==lt));Me[J[Ye]]=Object.assign(Me[J[Ye]]||{},Ft)}}}(_e);break;case"path":fe=A(_e,fe),_e.hasAttribute("d")&&(Ye=function r(_e){const fe=new Mm,se=new at,J=new at,Ye=new at;let Ft=!0,lt=!1;const Tt=_e.getAttribute("d");if(""===Tt||"none"===Tt)return null;const me=Tt.match(/[a-df-z][^a-df-z]*/gi);for(let mt=0,Pe=me.length;mt0&&(se.copy(Ye),fe.currentPath.currentPoint.copy(se),Ft=!0);break;default:console.warn(ot)}lt=!1}return fe}(_e));break;case"rect":fe=A(_e,fe),Ye=function l(_e){const fe=C(_e.getAttribute("x")||0),se=C(_e.getAttribute("y")||0),J=C(_e.getAttribute("rx")||_e.getAttribute("ry")||0),Ye=C(_e.getAttribute("ry")||_e.getAttribute("rx")||0),Ft=C(_e.getAttribute("width")),lt=C(_e.getAttribute("height")),Tt=.448084975506,me=new Mm;return me.moveTo(fe+J,se),me.lineTo(fe+Ft-J,se),(0!==J||0!==Ye)&&me.bezierCurveTo(fe+Ft-J*Tt,se,fe+Ft,se+Ye*Tt,fe+Ft,se+Ye),me.lineTo(fe+Ft,se+lt-Ye),(0!==J||0!==Ye)&&me.bezierCurveTo(fe+Ft,se+lt-Ye*Tt,fe+Ft-J*Tt,se+lt,fe+Ft-J,se+lt),me.lineTo(fe+J,se+lt),(0!==J||0!==Ye)&&me.bezierCurveTo(fe+J*Tt,se+lt,fe,se+lt-Ye*Tt,fe,se+lt-Ye),me.lineTo(fe,se+Ye),(0!==J||0!==Ye)&&me.bezierCurveTo(fe,se+Ye*Tt,fe+J*Tt,se,fe+J,se),me}(_e);break;case"polygon":fe=A(_e,fe),Ye=function c(_e){const J=new Mm;let Ye=0;return _e.getAttribute("points").replace(/([+-]?\d*\.?\d+(?:e[+-]?\d+)?)(?:,|\s)([+-]?\d*\.?\d+(?:e[+-]?\d+)?)/g,function fe(Ft,lt,Tt){const me=C(lt),mt=C(Tt);0===Ye?J.moveTo(me,mt):J.lineTo(me,mt),Ye++}),J.currentPath.autoClose=!0,J}(_e);break;case"polyline":fe=A(_e,fe),Ye=function d(_e){const J=new Mm;let Ye=0;return _e.getAttribute("points").replace(/([+-]?\d*\.?\d+(?:e[+-]?\d+)?)(?:,|\s)([+-]?\d*\.?\d+(?:e[+-]?\d+)?)/g,function fe(Ft,lt,Tt){const me=C(lt),mt=C(Tt);0===Ye?J.moveTo(me,mt):J.lineTo(me,mt),Ye++}),J.currentPath.autoClose=!1,J}(_e);break;case"circle":fe=A(_e,fe),Ye=function u(_e){const fe=C(_e.getAttribute("cx")||0),se=C(_e.getAttribute("cy")||0),J=C(_e.getAttribute("r")||0),Ye=new TA;Ye.absarc(fe,se,J,0,2*Math.PI);const Ft=new Mm;return Ft.subPaths.push(Ye),Ft}(_e);break;case"ellipse":fe=A(_e,fe),Ye=function h(_e){const fe=C(_e.getAttribute("cx")||0),se=C(_e.getAttribute("cy")||0),J=C(_e.getAttribute("rx")||0),Ye=C(_e.getAttribute("ry")||0),Ft=new TA;Ft.absellipse(fe,se,J,Ye,0,2*Math.PI);const lt=new Mm;return lt.subPaths.push(Ft),lt}(_e);break;case"line":fe=A(_e,fe),Ye=function f(_e){const fe=C(_e.getAttribute("x1")||0),se=C(_e.getAttribute("y1")||0),J=C(_e.getAttribute("x2")||0),Ye=C(_e.getAttribute("y2")||0),Ft=new Mm;return Ft.moveTo(fe,se),Ft.lineTo(J,Ye),Ft.currentPath.autoClose=!1,Ft}(_e);break;case"defs":J=!0;break;case"use":fe=A(_e,fe);const Tt=(_e.getAttributeNS("http://www.w3.org/1999/xlink","href")||"").substring(1),me=_e.viewportElement.getElementById(Tt);me?i(me,fe):console.warn("SVGLoader: 'use node' references non-existent node id: "+Tt)}Ye&&(void 0!==fe.fill&&"none"!==fe.fill&&Ye.color.setStyle(fe.fill,cHe),function V(_e,fe){function se(lt){Qe.set(lt.x,lt.y,1).applyMatrix3(fe),lt.set(Qe.x,Qe.y)}function J(lt){const Tt=lt.xRadius,me=lt.yRadius,mt=Math.cos(lt.aRotation),Pe=Math.sin(lt.aRotation),ot=new ie(Tt*mt,Tt*Pe,0),ft=new ie(-me*Pe,me*mt,0),_t=ot.applyMatrix3(fe),Ee=ft.applyMatrix3(fe),Ae=ve.set(_t.x,Ee.x,0,_t.y,Ee.y,0,0,0,1),zt=re.copy(Ae).invert(),ye=oe.copy(zt).transpose().multiply(zt).elements,ne=function ue(_e,fe,se){let J,Ye,Ft,lt,Tt;const me=_e+se,mt=_e-se,Pe=Math.sqrt(mt*mt+4*fe*fe);return me>0?(J=.5*(me+Pe),Tt=1/J,Ye=_e*Tt*se-fe*Tt*fe):me<0?Ye=.5*(me-Pe):(J=.5*Pe,Ye=-.5*Pe),Ft=mt>0?mt+Pe:mt-Pe,Math.abs(Ft)>2*Math.abs(fe)?(Tt=-2*fe/Ft,lt=1/Math.sqrt(1+Tt*Tt),Ft=Tt*lt):0===Math.abs(fe)?(Ft=1,lt=0):(Tt=-.5*Ft/fe,Ft=1/Math.sqrt(1+Tt*Tt),lt=Tt*Ft),mt>0&&(Tt=Ft,Ft=-lt,lt=Tt),{rt1:J,rt2:Ye,cs:Ft,sn:lt}}(ye[0],ye[1],ye[4]),bt=Math.sqrt(ne.rt1),Jt=Math.sqrt(ne.rt2);if(lt.xRadius=1/bt,lt.yRadius=1/Jt,lt.aRotation=Math.atan2(ne.sn,ne.cs),!((lt.aEndAngle-lt.aStartAngle)%(2*Math.PI){const{x:Gt,y:bn}=new ie(Math.cos(Re),Math.sin(Re),0).applyMatrix3(nn);return Math.atan2(bn,Gt)};lt.aStartAngle=St(lt.aStartAngle),lt.aEndAngle=St(lt.aEndAngle),R(fe)&&(lt.aClockwise=!lt.aClockwise)}}function Ye(lt){const Tt=k(fe),me=W(fe);lt.xRadius*=Tt,lt.yRadius*=me;const mt=Tt>Number.EPSILON?Math.atan2(fe.elements[1],fe.elements[0]):Math.atan2(-fe.elements[3],fe.elements[4]);lt.aRotation+=mt,R(fe)&&(lt.aStartAngle*=-1,lt.aEndAngle*=-1,lt.aClockwise=!lt.aClockwise)}const Ft=_e.subPaths;for(let lt=0,Tt=Ft.length;lt0?Ie.copy(Z[Z.length-1]):Ie.identity())}(Ke.documentElement,{fill:"#000",fillOpacity:1,strokeOpacity:1,strokeWidth:1,strokeLineJoin:"miter",strokeLineCap:"butt",strokeMiterLimit:4}),{paths:Se,xml:Ke.documentElement}}static createShapes(t){const r={loc:0,t:0};function o(y,_,b,M){const C=y.x,E=_.x,I=b.x,V=M.x,R=y.y,K=_.y,k=b.y,W=M.y,ue=(V-I)*(R-k)-(W-k)*(C-I),Me=(W-k)*(E-C)-(V-I)*(K-R),Z=ue/Me,ve=((E-C)*(R-k)-(K-R)*(C-I))/Me;if(0===Me&&0!==ue||Z<=0||Z>=1||ve<0||ve>1)return null;if(0===ue&&0===Me){for(let re=0;re<2;re++){if(s(0===re?b:M,y,_),0==r.loc){const oe=0===re?b:M;return{x:oe.x,y:oe.y,t:r.t}}if(2==r.loc)return{x:+(C+r.t*(E-C)).toPrecision(10),y:+(R+r.t*(K-R)).toPrecision(10),t:r.t}}return null}for(let ae=0;ae<2;ae++)if(s(0===ae?b:M,y,_),0==r.loc){const Ce=0===ae?b:M;return{x:Ce.x,y:Ce.y,t:r.t}}return{x:+(C+Z*(E-C)).toPrecision(10),y:+(R+Z*(K-R)).toPrecision(10),t:Z}}function s(y,_,b){const M=b.x-_.x,C=b.y-_.y,E=y.x-_.x,I=y.y-_.y,V=M*I-E*C;if(y.x===_.x&&y.y===_.y)return r.loc=0,void(r.t=0);if(y.x===b.x&&y.y===b.y)return r.loc=1,void(r.t=1);if(V<-Number.EPSILON)return void(r.loc=3);if(V>Number.EPSILON)return void(r.loc=4);if(M*E<0||C*I<0)return void(r.loc=5);if(Math.sqrt(M*M+C*C){const _=y.getPoints();let b=-999999999,M=999999999,C=-999999999,E=999999999;for(let I=0;I<_.length;I++){const V=_[I];V.y>b&&(b=V.y),V.yC&&(C=V.x),V.x=E&&(d=E-1),{curves:y.curves,points:_,isCW:Au.isClockWise(_),identifier:-1,boundingBox:new yFe(new at(E,M),new at(C,b))}});h=h.filter(y=>y.points.length>1);for(let y=0;yfunction c(y,_,b,M,C){(null==C||""===C)&&(C="nonzero");const E=new at;y.boundingBox.getCenter(E);const V=function l(y,_,b){const M=new at;_.getCenter(M);const C=[];return b.forEach(E=>{E.boundingBox.containsPoint(M)&&function a(y,_){const b=[],M=[];for(let C=1;CW.t<=k.t+Number.EPSILON&&W.t>=k.t-Number.EPSILON)&&(b.push(k),M.push(new at(k.x,k.y)))}}return M}(y,E.points).forEach(V=>{C.push({identifier:E.identifier,isCW:E.isCW,point:V})})}),C.sort((E,I)=>E.point.x-I.point.x),C}([new at(b,E.y),new at(M,E.y)],y.boundingBox,_);V.sort((Se,Me)=>Se.point.x-Me.point.x);const R=[],K=[];V.forEach(Se=>{Se.identifier===y.identifier?R.push(Se):K.push(Se)});const k=R[0].point.x,W=[];let ue=0;for(;ue0&&W[W.length-1]===K[ue].identifier?W.pop():W.push(K[ue].identifier),ue++;if(W.push(y.identifier),"evenodd"===C)return{identifier:y.identifier,isHole:W.length%2==0,for:W[W.length-2]};if("nonzero"===C){let Se=!0,Me=null,Z=null;for(let ve=0;ve{if(!f[y.identifier].isHole){const b=new xm;b.curves=y.curves,f.filter(C=>C.isHole&&C.for===y.identifier).forEach(C=>{const E=h[C.identifier],I=new TA;I.curves=E.curves,b.holes.push(I)}),A.push(b)}}),A}static getStrokeStyle(t,e,i,r,o){return{strokeColor:e=void 0!==e?e:"#000",strokeWidth:t=void 0!==t?t:1,strokeLineJoin:i=void 0!==i?i:"miter",strokeLineCap:r=void 0!==r?r:"butt",strokeMiterLimit:o=void 0!==o?o:4}}static pointsToStroke(t,e,i,r){const o=[],s=[],a=[];if(0===x5.pointsToStrokeWithBuffers(t,e,i,r,o,s,a))return null;const l=new vi;return l.setAttribute("position",new Ln(o,3)),l.setAttribute("normal",new Ln(s,3)),l.setAttribute("uv",new Ln(a,2)),l}static pointsToStrokeWithBuffers(t,e,i,r,o,s,a,l){const c=new at,d=new at,u=new at,h=new at,f=new at,A=new at,y=new at,_=new at,b=new at,M=new at,C=new at,E=new at,I=new at,V=new at,R=new at,K=new at,k=new at;i=void 0!==i?i:12,r=void 0!==r?r:.001,l=void 0!==l?l:0;const W=(t=function mt(Pe){let ot=!1;for(let _t=1,Ee=Pe.length-1;_t=r&&ft.push(Pe[_t]);return ft.push(Pe[Pe.length-1]),ft}(t)).length;if(W<2)return 0;const ue=t[0].equals(t[W-1]);let Se,Z,Me=t[0];const ve=e.strokeWidth/2,re=1/(W-1);let ae,Ce,Qe,Ie,oe=0,Ke=!1,Nt=0,_e=3*l,fe=2*l;se(t[0],t[1],c).multiplyScalar(ve),_.copy(t[0]).sub(c),b.copy(t[0]).add(c),M.copy(_),C.copy(b);for(let Pe=1;PeNumber.EPSILON){const _t=ve/ft;u.multiplyScalar(-_t),h.subVectors(Se,Me),f.copy(h).setLength(_t).add(u),K.copy(f).negate();const Ee=f.length(),Ae=h.length();h.divideScalar(Ae),A.subVectors(Z,Se);const zt=A.length();switch(A.divideScalar(zt),h.dot(K){r.load(i,function(a){const l=a.paths,c=[];for(const A of l){const y=A.toShapes(!0);for(const _ of y){const b=new j_(_,{depth:t.printHeight,bevelEnabled:!1});c.push(b)}}const d=_x(c);d.computeBoundingBox();const f=e.size/Math.max(d.boundingBox.max.x-d.boundingBox.min.x,d.boundingBox.max.y-d.boundingBox.min.y);d.scale(f,f,1),d.center(),"back"===e.side?d.rotateZ(Math.PI):(d.rotateZ(Math.PI),d.rotateY(Math.PI)),o(d)},void 0,function(a){console.error(`Error loading ${i}`),s(a)})})})()}}class dHe extends KA{constructor(t){super(t,new ml,120,!0),this.name="BackMWLogo"}init(t){var e=this;return B(function*(){const i=new bx;return e.geometry=yield i.create(t,{filePath:"codeCharta/assets/mw_logo_text.svg",size:.31,side:"back"}),e.position.set(0,.37,t.printHeight/2-t.baseplateHeight),e.updateColor(t.numberOfColors),e})()}}class Kte extends j_{constructor(t,e={}){const i=e.font;if(void 0===i)super();else{const r=i.generateShapes(t,e.size);e.depth=void 0!==e.height?e.height:50,void 0===e.bevelThickness&&(e.bevelThickness=10),void 0===e.bevelSize&&(e.bevelSize=8),void 0===e.bevelEnabled&&(e.bevelEnabled=!1),super(r,e)}this.type="TextGeometry"}}class Yte{create(t,e){var i=this;return B(function*(){const{font:r,side:o,text:s,xPosition:a,yPosition:l,align:c}=e;if(!s)return new vi;let{textSize:d}=e;d||(d=.025);const u="center"===c&&s.includes("\n")?i.createMultilineCenteredTextGeometry(s,r,d,t.printHeight):new Kte(s,{font:r,size:d,height:t.printHeight});return u.center(),"back"===o&&u.rotateY(Math.PI),u.computeBoundingBox(),u.translate(("front"===o?1:-1)*(("center"===c?0:(u.boundingBox.max.x-u.boundingBox.min.x)/2)+a),l,"front"===o?t.printHeight/2:t.printHeight/2-t.baseplateHeight),u})()}createMultilineCenteredTextGeometry(t,e,i,r){const o=t.split("\n"),s=[];for(const[a,l]of o.entries()){const c=new Kte(l,{font:e,size:i,height:r});c.center(),c.translate(0,-a*i*1.5,0),s.push(c)}return _x(s)}}class vx extends KA{constructor(t,e=new ml,i,r,o,s=new Yte){super(t,e,i,r),this.createTextGeometryOptions=o,this.createTextGeometryStrategy=s}init(t){var e=this;return B(function*(){return e.geometry=yield e.createTextGeometryStrategy.create(t,e.createTextGeometryOptions),e.updateColor(t.numberOfColors),e})()}updateText(t){var e=this;return B(function*(){e.geometry=yield e.createTextGeometryStrategy.create(t,e.createTextGeometryOptions),e.boundingBoxCalculated=!1})()}updateTextGeometryOptions(t){this.createTextGeometryOptions.text=t}}class uHe extends vx{constructor(t,e){const i={font:e,text:"IT Stabilization & Modernization\nmaibornwolff.de/service/it-sanierung",side:"back",xPosition:0,yPosition:.23,align:"center"};super(t,new ml,200,!0,i)}}var hHe=p(8314);class fHe extends KA{constructor(t){super(t,new ml,0,!1)}init(t){var e=this;return B(function*(){return e.geometry=yield e.create(t),e.position.set(.45,.45,t.printHeight/2-t.baseplateHeight),e.updateColor(t.numberOfColors),e})()}changeText(t){var e=this;return B(function*(){e.geometry=yield e.create(t)})()}create(t){var e=this;return B(function*(){if(!t.qrCodeText||0===t.qrCodeText.length)return new vi;const i=document.createElement("canvas");yield hHe.mo(i,t.qrCodeText,{errorCorrectionLevel:"H"});const o=i.getContext("2d").getImageData(0,0,i.width,i.height),s=[],a=.6/o.width;for(let l=0;lsuper.init,i=this;return B(function*(){const r=yield i.createColoredBackTextChildren(t);for(const o of r)i.add(o);return e().call(i,t),i})()}createTextGeometry(t,e,i){var r=this;return B(function*(){return t.create(i,{font:r.font,text:e,side:"back",xPosition:.05,yPosition:.015,align:"left"})})()}getText(){return`${this.metricDescriptionBlockOptions.nodeMetricData.name}\n${this.metricDescriptionBlockOptions.title}\n`}createColoredBackTextChildren(t){var e=this;return B(function*(){const i=e.metricDescriptionBlockOptions,r=[],o=["Value ranges:",`${i.nodeMetricData.minValue} - ${i.colorRange.from-1}`,"/",`${i.colorRange.from} - ${i.colorRange.to-1}`,"/",`${i.colorRange.to} - ${i.nodeMetricData.maxValue}`],s=[new ml,new AHe,new ml,new gHe,new ml,new _He];let a=.05;for(let l=0;l{if(e instanceof Br&&e.visible){e.geometry.computeBoundingBox();const{min:i,max:r}=e.geometry.boundingBox;t.min=Math.min(t.min,i.x),t.max=Math.max(t.max,r.x)}}),this.position.x=(t.max-t.min)/2}createColorAttributes(){return{colorIcon:"color_icon_for_3D_print.svg",colorIconScale:.075}}createHeightAttributes(){return{heightIcon:"height_icon_for_3D_print.svg",heightIconScale:.09}}createAreaAttributes(){return{areaIcon:"area_icon_for_3D_print.svg",areaIconScale:.075}}}class yHe extends Ed{constructor(t){super("BackPrintContainer",new ml),this.font=t}init(t){var e=this;return B(function*(){return e.childrenMeshes=new Map,e.childrenMeshes.set("BackMWLogo",new dHe("BackMWLogo")),e.childrenMeshes.set("BackBelowLogoText",new uHe("BackBelowLogoText",e.font)),e.childrenMeshes.set("QrCode",new fHe("QrCode")),e.childrenMeshes.set("CodeChartaLogo",new mHe("CodeChartaLogo")),e.childrenMeshes.set("CodeChartaText",new pHe("CodeChartaText",e.font)),e.childrenMeshes.set("MetricDescriptionsContainer",new vHe("MetricDescriptionsContainer",e.font)),yield Promise.all([...e.childrenMeshes.values()].map(function(){var i=B(function*(r){yield r.init(t),e.add(r)});return function(r){return i.apply(this,arguments)}}())),e.changeSize(t,1),e})()}changeSize(t,e){const i=t.width/e;this.scale.set(this.scale.x*i,this.scale.y*i,this.scale.z),this.traverse(r=>{r instanceof KA&&r.setCurrentWidth(t.width)})}isQRCodeVisible(){return this.childrenMeshes.get("QrCode").visible}updateQrCodeText(t,e){var i=this;return B(function*(){e.qrCodeText=t,yield i.childrenMeshes.get("QrCode").changeText(e)})()}updateQrCodeVisibility(t){this.childrenMeshes.get("QrCode").setManualVisibility(t)}getChildrenMeshes(){return this.childrenMeshes}}class S5{execute(t,e){let i;return i=t<4?[1,1,1]:4===t?[1,1,0]:[1,1,1],e.material.color.setRGB(i[0],i[1],i[2]),!0}}class wHe extends vx{constructor(t,e,i){let r=i.frontText;r||(r="FrontText");const o={font:e,side:"front",text:r,xPosition:0,yPosition:i.frontTextSize/2,textSize:i.frontTextSize,align:"center"};super(t,new S5,0,!0,o),this.name="Front Text"}}class xHe extends vx{constructor(t,e,i){const r={font:e,text:i.secondRowText,side:"front",xPosition:0,yPosition:-i.secondRowTextSize,textSize:i.secondRowTextSize,align:"center"};super(t,new S5,0,!1,r)}}class T5 extends Ed{constructor(t,e){super(t,new S5),this.alignment=e}changeRelativeSize(t){const e=this.getWidth();this.boundingBoxCalculated=!1;const i=t.secondRowVisible,r=i?(t.frontTextSize+t.secondRowTextSize)/t.frontTextSize:1;this.scale.x=r,this.scale.y=r;const o=i?-1:1,s="left"===this.alignment?-1:1;this.translateY(o*t.secondRowTextSize);const a=i?e/this.getWidth():this.getWidth()/e;this.translateX(2*a*s*o)}}class CHe extends T5{constructor(t){super(t,"right")}init(t,e=new bx){var i=this;return B(function*(){const r=t.frontTextSize*t.width/250;return i.geometry=yield e.create(t,{filePath:"codeCharta/assets/mw_logo.svg",size:r,side:"front"}),i.position.set(t.width/2-r/2-t.mapSideOffset/2,r/2,t.printHeight/2),t.secondRowVisible&&i.changeRelativeSize(t),i.updateColor(t.numberOfColors),i})()}changeSize(t,e){this.position.x+=(t.width-e)/2}}class MHe extends T5{constructor(t,e){super(t,"left"),this.filePath=e}init(t){var e=this;return B(function*(){const i=new bx,r=t.frontTextSize*t.width/200;return e.geometry=yield i.create(t,{filePath:e.filePath,size:r,side:"front"}),e.position.set(-t.width/2+r/2+t.mapSideOffset/2,r/2,t.printHeight/2),t.secondRowVisible&&e.changeRelativeSize(t),e.updateColor(t.numberOfColors),e})()}setColor(t){this.material.color.set(t)}rotate(){this.geometry.rotateZ(Math.PI/2)}flip(){this.geometry.rotateY(Math.PI)}changeSize(t,e){this.position.x-=(t.width-e)/2}}class EHe extends Ed{constructor(t){super("FrontPrintContainer",new ml),this.font=t}init(t){var e=this;return B(function*(){return e.childrenMeshes=new Map,e.childrenMeshes.set("FrontText",new wHe("FrontText",e.font,t)),e.childrenMeshes.set("SecondRowText",new xHe("SecondRowText",e.font,t)),e.childrenMeshes.set("FrontMWLogo",new CHe("FrontMWLogo")),yield Promise.all([...e.childrenMeshes.values()].map(function(){var i=B(function*(r){yield r.init(t),e.add(r)});return function(r){return i.apply(this,arguments)}}())),e.position.y=-t.width/2-t.mapSideOffset/2,e})()}addCustomLogo(t,e){var i=this;return B(function*(){i.childrenMeshes.has("CustomLogo")&&i.removeCustomLogo();const r=yield new MHe("CustomLogo",t).init(e);i.add(r),i.childrenMeshes.set(r.name,r)})()}rotateCustomLogo(){this.childrenMeshes.get("CustomLogo").rotate()}flipCustomLogo(){this.childrenMeshes.get("CustomLogo").flip()}removeCustomLogo(){this.remove(this.childrenMeshes.get("CustomLogo")),this.childrenMeshes.delete("CustomLogo")}updateCustomLogoColor(t){this.childrenMeshes.get("CustomLogo").setColor(t)}updateFrontText(t,e){var i=this;return B(function*(){const r=i.childrenMeshes.get("FrontText");r.updateTextGeometryOptions(t),yield r.updateText(e)})()}changeSize(t,e){this.position.y-=(t.width-e)/2;for(const i of this.childrenMeshes.values())i instanceof T5&&i.isGeneralSizeChangeMesh()&&i.changeSize(t,e)}updateSecondRowText(t,e){var i=this;return B(function*(){const r=i.childrenMeshes.get("SecondRowText");r.updateTextGeometryOptions(t),yield r.updateText(e)})()}updateSecondRowVisibility(t){const e=this.childrenMeshes.get("FrontMWLogo"),i=this.childrenMeshes.get("SecondRowText"),r=this.childrenMeshes.get("CustomLogo");i.setManualVisibility(t.secondRowVisible),e.changeRelativeSize(t),r?.changeRelativeSize(t)}getChildrenMeshes(){return this.childrenMeshes}}const Zte=JSON.parse('{"glyphs":{"0":{"x_min":73,"x_max":715,"ha":792,"o":"m 394 -29 q 153 129 242 -29 q 73 479 73 272 q 152 829 73 687 q 394 989 241 989 q 634 829 545 989 q 715 479 715 684 q 635 129 715 270 q 394 -29 546 -29 m 394 89 q 546 211 489 89 q 598 479 598 322 q 548 748 598 640 q 394 871 491 871 q 241 748 298 871 q 190 479 190 637 q 239 211 190 319 q 394 89 296 89 "},"1":{"x_min":215.671875,"x_max":574,"ha":792,"o":"m 574 0 l 442 0 l 442 697 l 215 697 l 215 796 q 386 833 330 796 q 475 986 447 875 l 574 986 l 574 0 "},"2":{"x_min":59,"x_max":731,"ha":792,"o":"m 731 0 l 59 0 q 197 314 59 188 q 457 487 199 315 q 598 691 598 580 q 543 819 598 772 q 411 867 488 867 q 272 811 328 867 q 209 630 209 747 l 81 630 q 182 901 81 805 q 408 986 271 986 q 629 909 536 986 q 731 694 731 826 q 613 449 731 541 q 378 316 495 383 q 201 122 235 234 l 731 122 l 731 0 "},"3":{"x_min":54,"x_max":737,"ha":792,"o":"m 737 284 q 635 55 737 141 q 399 -25 541 -25 q 156 52 248 -25 q 54 308 54 140 l 185 308 q 245 147 185 202 q 395 96 302 96 q 539 140 484 96 q 602 280 602 190 q 510 429 602 390 q 324 454 451 454 l 324 565 q 487 584 441 565 q 565 719 565 617 q 515 835 565 791 q 395 879 466 879 q 255 824 307 879 q 203 661 203 769 l 78 661 q 166 909 78 822 q 387 992 250 992 q 603 921 513 992 q 701 723 701 844 q 669 607 701 656 q 578 524 637 558 q 696 434 655 499 q 737 284 737 369 "},"4":{"x_min":48,"x_max":742.453125,"ha":792,"o":"m 742 243 l 602 243 l 602 0 l 476 0 l 476 243 l 48 243 l 48 368 l 476 958 l 602 958 l 602 354 l 742 354 l 742 243 m 476 354 l 476 792 l 162 354 l 476 354 "},"5":{"x_min":54.171875,"x_max":738,"ha":792,"o":"m 738 314 q 626 60 738 153 q 382 -23 526 -23 q 155 47 248 -23 q 54 256 54 125 l 183 256 q 259 132 204 174 q 382 91 314 91 q 533 149 471 91 q 602 314 602 213 q 538 469 602 411 q 386 528 475 528 q 284 506 332 528 q 197 439 237 484 l 81 439 l 159 958 l 684 958 l 684 840 l 254 840 l 214 579 q 306 627 258 612 q 407 643 354 643 q 636 552 540 643 q 738 314 738 457 "},"6":{"x_min":53,"x_max":739,"ha":792,"o":"m 739 312 q 633 62 739 162 q 400 -31 534 -31 q 162 78 257 -31 q 53 439 53 206 q 178 859 53 712 q 441 986 284 986 q 643 912 559 986 q 732 713 732 833 l 601 713 q 544 830 594 786 q 426 875 494 875 q 268 793 331 875 q 193 517 193 697 q 301 597 240 570 q 427 624 362 624 q 643 540 552 624 q 739 312 739 451 m 603 298 q 540 461 603 400 q 404 516 484 516 q 268 461 323 516 q 207 300 207 401 q 269 137 207 198 q 405 83 325 83 q 541 137 486 83 q 603 298 603 197 "},"7":{"x_min":58.71875,"x_max":730.953125,"ha":792,"o":"m 730 839 q 469 448 560 641 q 335 0 378 255 l 192 0 q 328 441 235 252 q 593 830 421 630 l 58 830 l 58 958 l 730 958 l 730 839 "},"8":{"x_min":55,"x_max":736,"ha":792,"o":"m 571 527 q 694 424 652 491 q 736 280 736 358 q 648 71 736 158 q 395 -26 551 -26 q 142 69 238 -26 q 55 279 55 157 q 96 425 55 359 q 220 527 138 491 q 120 615 153 562 q 88 726 88 668 q 171 904 88 827 q 395 986 261 986 q 618 905 529 986 q 702 727 702 830 q 670 616 702 667 q 571 527 638 565 m 394 565 q 519 610 475 565 q 563 717 563 655 q 521 823 563 781 q 392 872 474 872 q 265 824 312 872 q 224 720 224 783 q 265 613 224 656 q 394 565 312 565 m 395 91 q 545 150 488 91 q 597 280 597 204 q 546 408 597 355 q 395 465 492 465 q 244 408 299 465 q 194 280 194 356 q 244 150 194 203 q 395 91 299 91 "},"9":{"x_min":53,"x_max":739,"ha":792,"o":"m 739 524 q 619 94 739 241 q 362 -32 516 -32 q 150 47 242 -32 q 59 244 59 126 l 191 244 q 246 129 191 176 q 373 82 301 82 q 526 161 466 82 q 597 440 597 255 q 363 334 501 334 q 130 432 216 334 q 53 650 53 521 q 134 880 53 786 q 383 986 226 986 q 659 841 566 986 q 739 524 739 719 m 388 449 q 535 514 480 449 q 585 658 585 573 q 535 805 585 744 q 388 873 480 873 q 242 809 294 873 q 191 658 191 745 q 239 514 191 572 q 388 449 292 449 "},"\u03bf":{"x_min":0,"x_max":712,"ha":815,"o":"m 356 -25 q 96 88 192 -25 q 0 368 0 201 q 92 642 0 533 q 356 761 192 761 q 617 644 517 761 q 712 368 712 533 q 619 91 712 201 q 356 -25 520 -25 m 356 85 q 527 175 465 85 q 583 369 583 255 q 528 562 583 484 q 356 651 466 651 q 189 560 250 651 q 135 369 135 481 q 187 177 135 257 q 356 85 250 85 "},"S":{"x_min":0,"x_max":788,"ha":890,"o":"m 788 291 q 662 54 788 144 q 397 -26 550 -26 q 116 68 226 -26 q 0 337 0 168 l 131 337 q 200 152 131 220 q 384 85 269 85 q 557 129 479 85 q 650 270 650 183 q 490 429 650 379 q 194 513 341 470 q 33 739 33 584 q 142 964 33 881 q 388 1041 242 1041 q 644 957 543 1041 q 756 716 756 867 l 625 716 q 561 874 625 816 q 395 933 497 933 q 243 891 309 933 q 164 759 164 841 q 325 609 164 656 q 625 526 475 568 q 788 291 788 454 "},"\xa6":{"x_min":343,"x_max":449,"ha":792,"o":"m 449 462 l 343 462 l 343 986 l 449 986 l 449 462 m 449 -242 l 343 -242 l 343 280 l 449 280 l 449 -242 "},"/":{"x_min":183.25,"x_max":608.328125,"ha":792,"o":"m 608 1041 l 266 -129 l 183 -129 l 520 1041 l 608 1041 "},"\u03a4":{"x_min":-0.4375,"x_max":777.453125,"ha":839,"o":"m 777 893 l 458 893 l 458 0 l 319 0 l 319 892 l 0 892 l 0 1013 l 777 1013 l 777 893 "},"y":{"x_min":0,"x_max":684.78125,"ha":771,"o":"m 684 738 l 388 -83 q 311 -216 356 -167 q 173 -279 252 -279 q 97 -266 133 -279 l 97 -149 q 132 -155 109 -151 q 168 -160 155 -160 q 240 -114 213 -160 q 274 -26 248 -98 l 0 738 l 137 737 l 341 139 l 548 737 l 684 738 "},"\u03a0":{"x_min":0,"x_max":803,"ha":917,"o":"m 803 0 l 667 0 l 667 886 l 140 886 l 140 0 l 0 0 l 0 1012 l 803 1012 l 803 0 "},"\u0390":{"x_min":-111,"x_max":339,"ha":361,"o":"m 339 800 l 229 800 l 229 925 l 339 925 l 339 800 m -1 800 l -111 800 l -111 925 l -1 925 l -1 800 m 284 3 q 233 -10 258 -5 q 182 -15 207 -15 q 85 26 119 -15 q 42 200 42 79 l 42 737 l 167 737 l 168 215 q 172 141 168 157 q 226 101 183 101 q 248 103 239 101 q 284 112 257 104 l 284 3 m 302 1040 l 113 819 l 30 819 l 165 1040 l 302 1040 "},"g":{"x_min":0,"x_max":686,"ha":838,"o":"m 686 34 q 586 -213 686 -121 q 331 -306 487 -306 q 131 -252 216 -306 q 31 -84 31 -190 l 155 -84 q 228 -174 166 -138 q 345 -207 284 -207 q 514 -109 454 -207 q 564 89 564 -27 q 461 6 521 36 q 335 -23 401 -23 q 88 100 184 -23 q 0 370 0 215 q 87 634 0 522 q 330 758 183 758 q 457 728 398 758 q 564 644 515 699 l 564 737 l 686 737 l 686 34 m 582 367 q 529 560 582 481 q 358 652 468 652 q 189 561 250 652 q 135 369 135 482 q 189 176 135 255 q 361 85 251 85 q 529 176 468 85 q 582 367 582 255 "},"\xb2":{"x_min":0,"x_max":442,"ha":539,"o":"m 442 383 l 0 383 q 91 566 0 492 q 260 668 176 617 q 354 798 354 727 q 315 875 354 845 q 227 905 277 905 q 136 869 173 905 q 99 761 99 833 l 14 761 q 82 922 14 864 q 232 974 141 974 q 379 926 316 974 q 442 797 442 878 q 351 635 442 704 q 183 539 321 611 q 92 455 92 491 l 442 455 l 442 383 "},"\u2013":{"x_min":0,"x_max":705.5625,"ha":803,"o":"m 705 334 l 0 334 l 0 410 l 705 410 l 705 334 "},"\u039a":{"x_min":0,"x_max":819.5625,"ha":893,"o":"m 819 0 l 650 0 l 294 509 l 139 356 l 139 0 l 0 0 l 0 1013 l 139 1013 l 139 526 l 626 1013 l 809 1013 l 395 600 l 819 0 "},"\u0192":{"x_min":-46.265625,"x_max":392,"ha":513,"o":"m 392 651 l 259 651 l 79 -279 l -46 -278 l 134 651 l 14 651 l 14 751 l 135 751 q 151 948 135 900 q 304 1041 185 1041 q 334 1040 319 1041 q 392 1034 348 1039 l 392 922 q 337 931 360 931 q 271 883 287 931 q 260 793 260 853 l 260 751 l 392 751 l 392 651 "},"e":{"x_min":0,"x_max":714,"ha":813,"o":"m 714 326 l 140 326 q 200 157 140 227 q 359 87 260 87 q 488 130 431 87 q 561 245 545 174 l 697 245 q 577 48 670 123 q 358 -26 484 -26 q 97 85 195 -26 q 0 363 0 197 q 94 642 0 529 q 358 765 195 765 q 626 627 529 765 q 714 326 714 503 m 576 429 q 507 583 564 522 q 355 650 445 650 q 206 583 266 650 q 140 429 152 522 l 576 429 "},"\u03cc":{"x_min":0,"x_max":712,"ha":815,"o":"m 356 -25 q 94 91 194 -25 q 0 368 0 202 q 92 642 0 533 q 356 761 192 761 q 617 644 517 761 q 712 368 712 533 q 619 91 712 201 q 356 -25 520 -25 m 356 85 q 527 175 465 85 q 583 369 583 255 q 528 562 583 484 q 356 651 466 651 q 189 560 250 651 q 135 369 135 481 q 187 177 135 257 q 356 85 250 85 m 576 1040 l 387 819 l 303 819 l 438 1040 l 576 1040 "},"J":{"x_min":0,"x_max":588,"ha":699,"o":"m 588 279 q 287 -26 588 -26 q 58 73 126 -26 q 0 327 0 158 l 133 327 q 160 172 133 227 q 288 96 198 96 q 426 171 391 96 q 449 336 449 219 l 449 1013 l 588 1013 l 588 279 "},"\xbb":{"x_min":-1,"x_max":503,"ha":601,"o":"m 503 302 l 280 136 l 281 256 l 429 373 l 281 486 l 280 608 l 503 440 l 503 302 m 221 302 l 0 136 l 0 255 l 145 372 l 0 486 l -1 608 l 221 440 l 221 302 "},"\xa9":{"x_min":-3,"x_max":1008,"ha":1106,"o":"m 502 -7 q 123 151 263 -7 q -3 501 -3 294 q 123 851 -3 706 q 502 1011 263 1011 q 881 851 739 1011 q 1008 501 1008 708 q 883 151 1008 292 q 502 -7 744 -7 m 502 60 q 830 197 709 60 q 940 501 940 322 q 831 805 940 681 q 502 944 709 944 q 174 805 296 944 q 65 501 65 680 q 173 197 65 320 q 502 60 294 60 m 741 394 q 661 246 731 302 q 496 190 591 190 q 294 285 369 190 q 228 497 228 370 q 295 714 228 625 q 499 813 370 813 q 656 762 588 813 q 733 625 724 711 l 634 625 q 589 704 629 673 q 498 735 550 735 q 377 666 421 735 q 334 504 334 597 q 374 340 334 408 q 490 272 415 272 q 589 304 549 272 q 638 394 628 337 l 741 394 "},"\u03ce":{"x_min":0,"x_max":922,"ha":1030,"o":"m 687 1040 l 498 819 l 415 819 l 549 1040 l 687 1040 m 922 339 q 856 97 922 203 q 650 -26 780 -26 q 538 9 587 -26 q 461 103 489 44 q 387 12 436 46 q 277 -22 339 -22 q 69 97 147 -22 q 0 338 0 202 q 45 551 0 444 q 161 737 84 643 l 302 737 q 175 552 219 647 q 124 336 124 446 q 155 179 124 248 q 275 88 197 88 q 375 163 341 88 q 400 294 400 219 l 400 572 l 524 572 l 524 294 q 561 135 524 192 q 643 88 591 88 q 762 182 719 88 q 797 341 797 257 q 745 555 797 450 q 619 737 705 637 l 760 737 q 874 551 835 640 q 922 339 922 444 "},"^":{"x_min":193.0625,"x_max":598.609375,"ha":792,"o":"m 598 772 l 515 772 l 395 931 l 277 772 l 193 772 l 326 1013 l 462 1013 l 598 772 "},"\xab":{"x_min":0,"x_max":507.203125,"ha":604,"o":"m 506 136 l 284 302 l 284 440 l 506 608 l 507 485 l 360 371 l 506 255 l 506 136 m 222 136 l 0 302 l 0 440 l 222 608 l 221 486 l 73 373 l 222 256 l 222 136 "},"D":{"x_min":0,"x_max":828,"ha":935,"o":"m 389 1013 q 714 867 593 1013 q 828 521 828 729 q 712 161 828 309 q 382 0 587 0 l 0 0 l 0 1013 l 389 1013 m 376 124 q 607 247 523 124 q 681 510 681 355 q 607 771 681 662 q 376 896 522 896 l 139 896 l 139 124 l 376 124 "},"\u2219":{"x_min":0,"x_max":142,"ha":239,"o":"m 142 585 l 0 585 l 0 738 l 142 738 l 142 585 "},"\xff":{"x_min":0,"x_max":47,"ha":125,"o":"m 47 3 q 37 -7 47 -7 q 28 0 30 -7 q 39 -4 32 -4 q 45 3 45 -1 l 37 0 q 28 9 28 0 q 39 19 28 19 l 47 16 l 47 19 l 47 3 m 37 1 q 44 8 44 1 q 37 16 44 16 q 30 8 30 16 q 37 1 30 1 m 26 1 l 23 22 l 14 0 l 3 22 l 3 3 l 0 25 l 13 1 l 22 25 l 26 1 "},"w":{"x_min":0,"x_max":1009.71875,"ha":1100,"o":"m 1009 738 l 783 0 l 658 0 l 501 567 l 345 0 l 222 0 l 0 738 l 130 738 l 284 174 l 432 737 l 576 738 l 721 173 l 881 737 l 1009 738 "},"$":{"x_min":0,"x_max":700,"ha":793,"o":"m 664 717 l 542 717 q 490 825 531 785 q 381 872 450 865 l 381 551 q 620 446 540 522 q 700 241 700 370 q 618 45 700 116 q 381 -25 536 -25 l 381 -152 l 307 -152 l 307 -25 q 81 62 162 -25 q 0 297 0 149 l 124 297 q 169 146 124 204 q 307 81 215 89 l 307 441 q 80 536 148 469 q 13 725 13 603 q 96 910 13 839 q 307 982 180 982 l 307 1077 l 381 1077 l 381 982 q 574 917 494 982 q 664 717 664 845 m 307 565 l 307 872 q 187 831 233 872 q 142 724 142 791 q 180 618 142 656 q 307 565 218 580 m 381 76 q 562 237 562 96 q 517 361 562 313 q 381 423 472 409 l 381 76 "},"\\\\":{"x_min":-0.015625,"x_max":425.0625,"ha":522,"o":"m 425 -129 l 337 -129 l 0 1041 l 83 1041 l 425 -129 "},"\xb5":{"x_min":0,"x_max":697.21875,"ha":747,"o":"m 697 -4 q 629 -14 658 -14 q 498 97 513 -14 q 422 9 470 41 q 313 -23 374 -23 q 207 4 258 -23 q 119 81 156 32 l 119 -278 l 0 -278 l 0 738 l 124 738 l 124 343 q 165 173 124 246 q 308 83 216 83 q 452 178 402 83 q 493 359 493 255 l 493 738 l 617 738 l 617 214 q 623 136 617 160 q 673 92 637 92 q 697 96 684 92 l 697 -4 "},"\u0399":{"x_min":42,"x_max":181,"ha":297,"o":"m 181 0 l 42 0 l 42 1013 l 181 1013 l 181 0 "},"\u038e":{"x_min":0,"x_max":1144.5,"ha":1214,"o":"m 1144 1012 l 807 416 l 807 0 l 667 0 l 667 416 l 325 1012 l 465 1012 l 736 533 l 1004 1012 l 1144 1012 m 277 1040 l 83 799 l 0 799 l 140 1040 l 277 1040 "},"\u2019":{"x_min":0,"x_max":139,"ha":236,"o":"m 139 851 q 102 737 139 784 q 0 669 65 690 l 0 734 q 59 787 42 741 q 72 873 72 821 l 0 873 l 0 1013 l 139 1013 l 139 851 "},"\u039d":{"x_min":0,"x_max":801,"ha":915,"o":"m 801 0 l 651 0 l 131 822 l 131 0 l 0 0 l 0 1013 l 151 1013 l 670 191 l 670 1013 l 801 1013 l 801 0 "},"-":{"x_min":8.71875,"x_max":350.390625,"ha":478,"o":"m 350 317 l 8 317 l 8 428 l 350 428 l 350 317 "},"Q":{"x_min":0,"x_max":968,"ha":1072,"o":"m 954 5 l 887 -79 l 744 35 q 622 -11 687 2 q 483 -26 556 -26 q 127 130 262 -26 q 0 504 0 279 q 127 880 0 728 q 484 1041 262 1041 q 841 884 708 1041 q 968 507 968 735 q 933 293 968 398 q 832 104 899 188 l 954 5 m 723 191 q 802 330 777 248 q 828 499 828 412 q 744 790 828 673 q 483 922 650 922 q 228 791 322 922 q 142 505 142 673 q 227 221 142 337 q 487 91 323 91 q 632 123 566 91 l 520 215 l 587 301 l 723 191 "},"\u03c2":{"x_min":1,"x_max":676.28125,"ha":740,"o":"m 676 460 l 551 460 q 498 595 542 546 q 365 651 448 651 q 199 578 263 651 q 136 401 136 505 q 266 178 136 241 q 508 106 387 142 q 640 -50 640 62 q 625 -158 640 -105 q 583 -278 611 -211 l 465 -278 q 498 -182 490 -211 q 515 -80 515 -126 q 381 12 515 -15 q 134 91 197 51 q 1 388 1 179 q 100 651 1 542 q 354 761 199 761 q 587 680 498 761 q 676 460 676 599 "},"M":{"x_min":0,"x_max":954,"ha":1067,"o":"m 954 0 l 819 0 l 819 869 l 537 0 l 405 0 l 128 866 l 128 0 l 0 0 l 0 1013 l 200 1013 l 472 160 l 757 1013 l 954 1013 l 954 0 "},"\u03a8":{"x_min":0,"x_max":1006,"ha":1094,"o":"m 1006 678 q 914 319 1006 429 q 571 200 814 200 l 571 0 l 433 0 l 433 200 q 92 319 194 200 q 0 678 0 429 l 0 1013 l 139 1013 l 139 679 q 191 417 139 492 q 433 326 255 326 l 433 1013 l 571 1013 l 571 326 l 580 326 q 813 423 747 326 q 868 679 868 502 l 868 1013 l 1006 1013 l 1006 678 "},"C":{"x_min":0,"x_max":886,"ha":944,"o":"m 886 379 q 760 87 886 201 q 455 -26 634 -26 q 112 136 236 -26 q 0 509 0 283 q 118 882 0 737 q 469 1041 245 1041 q 748 955 630 1041 q 879 708 879 859 l 745 708 q 649 862 724 805 q 473 920 573 920 q 219 791 312 920 q 136 509 136 675 q 217 229 136 344 q 470 99 311 99 q 672 179 591 99 q 753 379 753 259 l 886 379 "},"!":{"x_min":0,"x_max":138,"ha":236,"o":"m 138 684 q 116 409 138 629 q 105 244 105 299 l 33 244 q 16 465 33 313 q 0 684 0 616 l 0 1013 l 138 1013 l 138 684 m 138 0 l 0 0 l 0 151 l 138 151 l 138 0 "},"{":{"x_min":0,"x_max":480.5625,"ha":578,"o":"m 480 -286 q 237 -213 303 -286 q 187 -45 187 -159 q 194 48 187 -15 q 201 141 201 112 q 164 264 201 225 q 0 314 118 314 l 0 417 q 164 471 119 417 q 201 605 201 514 q 199 665 201 644 q 193 772 193 769 q 241 941 193 887 q 480 1015 308 1015 l 480 915 q 336 866 375 915 q 306 742 306 828 q 310 662 306 717 q 314 577 314 606 q 288 452 314 500 q 176 365 256 391 q 289 275 257 337 q 314 143 314 226 q 313 84 314 107 q 310 -11 310 -5 q 339 -131 310 -94 q 480 -182 377 -182 l 480 -286 "},"X":{"x_min":-0.015625,"x_max":854.15625,"ha":940,"o":"m 854 0 l 683 0 l 423 409 l 166 0 l 0 0 l 347 519 l 18 1013 l 186 1013 l 428 637 l 675 1013 l 836 1013 l 504 520 l 854 0 "},"#":{"x_min":0,"x_max":963.890625,"ha":1061,"o":"m 963 690 l 927 590 l 719 590 l 655 410 l 876 410 l 840 310 l 618 310 l 508 -3 l 393 -2 l 506 309 l 329 310 l 215 -2 l 102 -3 l 212 310 l 0 310 l 36 410 l 248 409 l 312 590 l 86 590 l 120 690 l 347 690 l 459 1006 l 573 1006 l 462 690 l 640 690 l 751 1006 l 865 1006 l 754 690 l 963 690 m 606 590 l 425 590 l 362 410 l 543 410 l 606 590 "},"\u03b9":{"x_min":42,"x_max":284,"ha":361,"o":"m 284 3 q 233 -10 258 -5 q 182 -15 207 -15 q 85 26 119 -15 q 42 200 42 79 l 42 738 l 167 738 l 168 215 q 172 141 168 157 q 226 101 183 101 q 248 103 239 101 q 284 112 257 104 l 284 3 "},"\u0386":{"x_min":0,"x_max":906.953125,"ha":982,"o":"m 283 1040 l 88 799 l 5 799 l 145 1040 l 283 1040 m 906 0 l 756 0 l 650 303 l 251 303 l 143 0 l 0 0 l 376 1012 l 529 1012 l 906 0 m 609 421 l 452 866 l 293 421 l 609 421 "},")":{"x_min":0,"x_max":318,"ha":415,"o":"m 318 365 q 257 25 318 191 q 87 -290 197 -141 l 0 -290 q 140 21 93 -128 q 193 360 193 189 q 141 704 193 537 q 0 1024 97 850 l 87 1024 q 257 706 197 871 q 318 365 318 542 "},"\u03b5":{"x_min":0,"x_max":634.71875,"ha":714,"o":"m 634 234 q 527 38 634 110 q 300 -25 433 -25 q 98 29 183 -25 q 0 204 0 93 q 37 314 0 265 q 128 390 67 353 q 56 460 82 419 q 26 555 26 505 q 114 712 26 654 q 295 763 191 763 q 499 700 416 763 q 589 515 589 631 l 478 515 q 419 618 464 580 q 307 657 374 657 q 207 630 253 657 q 151 547 151 598 q 238 445 151 469 q 389 434 280 434 l 389 331 l 349 331 q 206 315 255 331 q 125 210 125 287 q 183 107 125 145 q 302 76 233 76 q 436 117 379 76 q 509 234 493 159 l 634 234 "},"\u0394":{"x_min":0,"x_max":952.78125,"ha":1028,"o":"m 952 0 l 0 0 l 400 1013 l 551 1013 l 952 0 m 762 124 l 476 867 l 187 124 l 762 124 "},"}":{"x_min":0,"x_max":481,"ha":578,"o":"m 481 314 q 318 262 364 314 q 282 136 282 222 q 284 65 282 97 q 293 -58 293 -48 q 241 -217 293 -166 q 0 -286 174 -286 l 0 -182 q 143 -130 105 -182 q 171 -2 171 -93 q 168 81 171 22 q 165 144 165 140 q 188 275 165 229 q 306 365 220 339 q 191 455 224 391 q 165 588 165 505 q 168 681 165 624 q 171 742 171 737 q 141 865 171 827 q 0 915 102 915 l 0 1015 q 243 942 176 1015 q 293 773 293 888 q 287 675 293 741 q 282 590 282 608 q 318 466 282 505 q 481 417 364 417 l 481 314 "},"\u2030":{"x_min":-3,"x_max":1672,"ha":1821,"o":"m 846 0 q 664 76 732 0 q 603 244 603 145 q 662 412 603 344 q 846 489 729 489 q 1027 412 959 489 q 1089 244 1089 343 q 1029 76 1089 144 q 846 0 962 0 m 845 103 q 945 143 910 103 q 981 243 981 184 q 947 340 981 301 q 845 385 910 385 q 745 342 782 385 q 709 243 709 300 q 742 147 709 186 q 845 103 781 103 m 888 986 l 284 -25 l 199 -25 l 803 986 l 888 986 m 241 468 q 58 545 126 468 q -3 715 -3 615 q 56 881 -3 813 q 238 958 124 958 q 421 881 353 958 q 483 712 483 813 q 423 544 483 612 q 241 468 356 468 m 241 855 q 137 811 175 855 q 100 710 100 768 q 136 612 100 653 q 240 572 172 572 q 344 614 306 572 q 382 713 382 656 q 347 810 382 771 q 241 855 308 855 m 1428 0 q 1246 76 1314 0 q 1185 244 1185 145 q 1244 412 1185 344 q 1428 489 1311 489 q 1610 412 1542 489 q 1672 244 1672 343 q 1612 76 1672 144 q 1428 0 1545 0 m 1427 103 q 1528 143 1492 103 q 1564 243 1564 184 q 1530 340 1564 301 q 1427 385 1492 385 q 1327 342 1364 385 q 1291 243 1291 300 q 1324 147 1291 186 q 1427 103 1363 103 "},"a":{"x_min":0,"x_max":698.609375,"ha":794,"o":"m 698 0 q 661 -12 679 -7 q 615 -17 643 -17 q 536 12 564 -17 q 500 96 508 41 q 384 6 456 37 q 236 -25 312 -25 q 65 31 130 -25 q 0 194 0 88 q 118 390 0 334 q 328 435 180 420 q 488 483 476 451 q 495 523 495 504 q 442 619 495 584 q 325 654 389 654 q 209 617 257 654 q 152 513 161 580 l 33 513 q 123 705 33 633 q 332 772 207 772 q 528 712 448 772 q 617 531 617 645 l 617 163 q 624 108 617 126 q 664 90 632 90 l 698 94 l 698 0 m 491 262 l 491 372 q 272 329 350 347 q 128 201 128 294 q 166 113 128 144 q 264 83 205 83 q 414 130 346 83 q 491 262 491 183 "},"\u2014":{"x_min":0,"x_max":941.671875,"ha":1039,"o":"m 941 334 l 0 334 l 0 410 l 941 410 l 941 334 "},"=":{"x_min":8.71875,"x_max":780.953125,"ha":792,"o":"m 780 510 l 8 510 l 8 606 l 780 606 l 780 510 m 780 235 l 8 235 l 8 332 l 780 332 l 780 235 "},"N":{"x_min":0,"x_max":801,"ha":914,"o":"m 801 0 l 651 0 l 131 823 l 131 0 l 0 0 l 0 1013 l 151 1013 l 670 193 l 670 1013 l 801 1013 l 801 0 "},"\u03c1":{"x_min":0,"x_max":712,"ha":797,"o":"m 712 369 q 620 94 712 207 q 362 -26 521 -26 q 230 2 292 -26 q 119 83 167 30 l 119 -278 l 0 -278 l 0 362 q 91 643 0 531 q 355 764 190 764 q 617 647 517 764 q 712 369 712 536 m 583 366 q 530 559 583 480 q 359 651 469 651 q 190 562 252 651 q 135 370 135 483 q 189 176 135 257 q 359 85 250 85 q 528 175 466 85 q 583 366 583 254 "},"\xaf":{"x_min":0,"x_max":941.671875,"ha":938,"o":"m 941 1033 l 0 1033 l 0 1109 l 941 1109 l 941 1033 "},"Z":{"x_min":0,"x_max":779,"ha":849,"o":"m 779 0 l 0 0 l 0 113 l 621 896 l 40 896 l 40 1013 l 779 1013 l 778 887 l 171 124 l 779 124 l 779 0 "},"u":{"x_min":0,"x_max":617,"ha":729,"o":"m 617 0 l 499 0 l 499 110 q 391 10 460 45 q 246 -25 322 -25 q 61 58 127 -25 q 0 258 0 136 l 0 738 l 125 738 l 125 284 q 156 148 125 202 q 273 82 197 82 q 433 165 369 82 q 493 340 493 243 l 493 738 l 617 738 l 617 0 "},"k":{"x_min":0,"x_max":612.484375,"ha":697,"o":"m 612 738 l 338 465 l 608 0 l 469 0 l 251 382 l 121 251 l 121 0 l 0 0 l 0 1013 l 121 1013 l 121 402 l 456 738 l 612 738 "},"\u0397":{"x_min":0,"x_max":803,"ha":917,"o":"m 803 0 l 667 0 l 667 475 l 140 475 l 140 0 l 0 0 l 0 1013 l 140 1013 l 140 599 l 667 599 l 667 1013 l 803 1013 l 803 0 "},"\u0391":{"x_min":0,"x_max":906.953125,"ha":985,"o":"m 906 0 l 756 0 l 650 303 l 251 303 l 143 0 l 0 0 l 376 1013 l 529 1013 l 906 0 m 609 421 l 452 866 l 293 421 l 609 421 "},"s":{"x_min":0,"x_max":604,"ha":697,"o":"m 604 217 q 501 36 604 104 q 292 -23 411 -23 q 86 43 166 -23 q 0 238 0 114 l 121 237 q 175 122 121 164 q 300 85 223 85 q 415 112 363 85 q 479 207 479 147 q 361 309 479 276 q 140 372 141 370 q 21 544 21 426 q 111 708 21 647 q 298 761 190 761 q 492 705 413 761 q 583 531 583 643 l 462 531 q 412 625 462 594 q 298 657 363 657 q 199 636 242 657 q 143 558 143 608 q 262 454 143 486 q 484 394 479 397 q 604 217 604 341 "},"B":{"x_min":0,"x_max":778,"ha":876,"o":"m 580 546 q 724 469 670 535 q 778 311 778 403 q 673 83 778 171 q 432 0 575 0 l 0 0 l 0 1013 l 411 1013 q 629 957 541 1013 q 732 768 732 892 q 691 633 732 693 q 580 546 650 572 m 393 899 l 139 899 l 139 588 l 379 588 q 521 624 462 588 q 592 744 592 667 q 531 859 592 819 q 393 899 471 899 m 419 124 q 566 169 504 124 q 635 303 635 219 q 559 436 635 389 q 402 477 494 477 l 139 477 l 139 124 l 419 124 "},"\u2026":{"x_min":0,"x_max":614,"ha":708,"o":"m 142 0 l 0 0 l 0 151 l 142 151 l 142 0 m 378 0 l 236 0 l 236 151 l 378 151 l 378 0 m 614 0 l 472 0 l 472 151 l 614 151 l 614 0 "},"?":{"x_min":0,"x_max":607,"ha":704,"o":"m 607 777 q 543 599 607 674 q 422 474 482 537 q 357 272 357 391 l 236 272 q 297 487 236 395 q 411 619 298 490 q 474 762 474 691 q 422 885 474 838 q 301 933 371 933 q 179 880 228 933 q 124 706 124 819 l 0 706 q 94 963 0 872 q 302 1044 177 1044 q 511 973 423 1044 q 607 777 607 895 m 370 0 l 230 0 l 230 151 l 370 151 l 370 0 "},"H":{"x_min":0,"x_max":803,"ha":915,"o":"m 803 0 l 667 0 l 667 475 l 140 475 l 140 0 l 0 0 l 0 1013 l 140 1013 l 140 599 l 667 599 l 667 1013 l 803 1013 l 803 0 "},"\u03bd":{"x_min":0,"x_max":675,"ha":761,"o":"m 675 738 l 404 0 l 272 0 l 0 738 l 133 738 l 340 147 l 541 738 l 675 738 "},"c":{"x_min":1,"x_max":701.390625,"ha":775,"o":"m 701 264 q 584 53 681 133 q 353 -26 487 -26 q 91 91 188 -26 q 1 370 1 201 q 92 645 1 537 q 353 761 190 761 q 572 688 479 761 q 690 493 666 615 l 556 493 q 487 606 545 562 q 356 650 428 650 q 186 563 246 650 q 134 372 134 487 q 188 179 134 258 q 359 88 250 88 q 492 136 437 88 q 566 264 548 185 l 701 264 "},"\xb6":{"x_min":0,"x_max":566.671875,"ha":678,"o":"m 21 892 l 52 892 l 98 761 l 145 892 l 176 892 l 178 741 l 157 741 l 157 867 l 108 741 l 88 741 l 40 871 l 40 741 l 21 741 l 21 892 m 308 854 l 308 731 q 252 691 308 691 q 227 691 240 691 q 207 696 213 695 l 207 712 l 253 706 q 288 733 288 706 l 288 763 q 244 741 279 741 q 193 797 193 741 q 261 860 193 860 q 287 860 273 860 q 308 854 302 855 m 288 842 l 263 843 q 213 796 213 843 q 248 756 213 756 q 288 796 288 756 l 288 842 m 566 988 l 502 988 l 502 -1 l 439 -1 l 439 988 l 317 988 l 317 -1 l 252 -1 l 252 602 q 81 653 155 602 q 0 805 0 711 q 101 989 0 918 q 309 1053 194 1053 l 566 1053 l 566 988 "},"\u03b2":{"x_min":0,"x_max":660,"ha":745,"o":"m 471 550 q 610 450 561 522 q 660 280 660 378 q 578 64 660 151 q 367 -22 497 -22 q 239 5 299 -22 q 126 82 178 32 l 126 -278 l 0 -278 l 0 593 q 54 903 0 801 q 318 1042 127 1042 q 519 964 436 1042 q 603 771 603 887 q 567 644 603 701 q 471 550 532 586 m 337 79 q 476 138 418 79 q 535 279 535 198 q 427 437 535 386 q 226 477 344 477 l 226 583 q 398 620 329 583 q 486 762 486 668 q 435 884 486 833 q 312 935 384 935 q 169 861 219 935 q 126 698 126 797 l 126 362 q 170 169 126 242 q 337 79 224 79 "},"\u039c":{"x_min":0,"x_max":954,"ha":1068,"o":"m 954 0 l 819 0 l 819 868 l 537 0 l 405 0 l 128 865 l 128 0 l 0 0 l 0 1013 l 199 1013 l 472 158 l 758 1013 l 954 1013 l 954 0 "},"\u038c":{"x_min":0.109375,"x_max":1120,"ha":1217,"o":"m 1120 505 q 994 132 1120 282 q 642 -29 861 -29 q 290 130 422 -29 q 167 505 167 280 q 294 883 167 730 q 650 1046 430 1046 q 999 882 868 1046 q 1120 505 1120 730 m 977 504 q 896 784 977 669 q 644 915 804 915 q 391 785 484 915 q 307 504 307 669 q 391 224 307 339 q 644 95 486 95 q 894 224 803 95 q 977 504 977 339 m 277 1040 l 83 799 l 0 799 l 140 1040 l 277 1040 "},"\u0389":{"x_min":0,"x_max":1158,"ha":1275,"o":"m 1158 0 l 1022 0 l 1022 475 l 496 475 l 496 0 l 356 0 l 356 1012 l 496 1012 l 496 599 l 1022 599 l 1022 1012 l 1158 1012 l 1158 0 m 277 1040 l 83 799 l 0 799 l 140 1040 l 277 1040 "},"\u2022":{"x_min":0,"x_max":663.890625,"ha":775,"o":"m 663 529 q 566 293 663 391 q 331 196 469 196 q 97 294 194 196 q 0 529 0 393 q 96 763 0 665 q 331 861 193 861 q 566 763 469 861 q 663 529 663 665 "},"\xa5":{"x_min":0.1875,"x_max":819.546875,"ha":886,"o":"m 563 561 l 697 561 l 696 487 l 520 487 l 482 416 l 482 380 l 697 380 l 695 308 l 482 308 l 482 0 l 342 0 l 342 308 l 125 308 l 125 380 l 342 380 l 342 417 l 303 487 l 125 487 l 125 561 l 258 561 l 0 1013 l 140 1013 l 411 533 l 679 1013 l 819 1013 l 563 561 "},"(":{"x_min":0,"x_max":318.0625,"ha":415,"o":"m 318 -290 l 230 -290 q 61 23 122 -142 q 0 365 0 190 q 62 712 0 540 q 230 1024 119 869 l 318 1024 q 175 705 219 853 q 125 360 125 542 q 176 22 125 187 q 318 -290 223 -127 "},"U":{"x_min":0,"x_max":796,"ha":904,"o":"m 796 393 q 681 93 796 212 q 386 -25 566 -25 q 101 95 208 -25 q 0 393 0 211 l 0 1013 l 138 1013 l 138 391 q 204 191 138 270 q 394 107 276 107 q 586 191 512 107 q 656 391 656 270 l 656 1013 l 796 1013 l 796 393 "},"\u03b3":{"x_min":0.5,"x_max":744.953125,"ha":822,"o":"m 744 737 l 463 54 l 463 -278 l 338 -278 l 338 54 l 154 495 q 104 597 124 569 q 13 651 67 651 l 0 651 l 0 751 l 39 753 q 168 711 121 753 q 242 594 207 676 l 403 208 l 617 737 l 744 737 "},"\u03b1":{"x_min":0,"x_max":765.5625,"ha":809,"o":"m 765 -4 q 698 -14 726 -14 q 564 97 586 -14 q 466 7 525 40 q 337 -26 407 -26 q 88 98 186 -26 q 0 369 0 212 q 88 637 0 525 q 337 760 184 760 q 465 728 407 760 q 563 637 524 696 l 563 739 l 685 739 l 685 222 q 693 141 685 168 q 748 94 708 94 q 765 96 760 94 l 765 -4 m 584 371 q 531 562 584 485 q 360 653 470 653 q 192 566 254 653 q 135 379 135 489 q 186 181 135 261 q 358 84 247 84 q 528 176 465 84 q 584 371 584 260 "},"F":{"x_min":0,"x_max":683.328125,"ha":717,"o":"m 683 888 l 140 888 l 140 583 l 613 583 l 613 458 l 140 458 l 140 0 l 0 0 l 0 1013 l 683 1013 l 683 888 "},"\xad":{"x_min":0,"x_max":705.5625,"ha":803,"o":"m 705 334 l 0 334 l 0 410 l 705 410 l 705 334 "},":":{"x_min":0,"x_max":142,"ha":239,"o":"m 142 585 l 0 585 l 0 738 l 142 738 l 142 585 m 142 0 l 0 0 l 0 151 l 142 151 l 142 0 "},"\u03a7":{"x_min":0,"x_max":854.171875,"ha":935,"o":"m 854 0 l 683 0 l 423 409 l 166 0 l 0 0 l 347 519 l 18 1013 l 186 1013 l 427 637 l 675 1013 l 836 1013 l 504 521 l 854 0 "},"*":{"x_min":116,"x_max":674,"ha":792,"o":"m 674 768 l 475 713 l 610 544 l 517 477 l 394 652 l 272 478 l 178 544 l 314 713 l 116 766 l 153 876 l 341 812 l 342 1013 l 446 1013 l 446 811 l 635 874 l 674 768 "},"\u2020":{"x_min":0,"x_max":777,"ha":835,"o":"m 458 804 l 777 804 l 777 683 l 458 683 l 458 0 l 319 0 l 319 681 l 0 683 l 0 804 l 319 804 l 319 1015 l 458 1013 l 458 804 "},"\xb0":{"x_min":0,"x_max":347,"ha":444,"o":"m 173 802 q 43 856 91 802 q 0 977 0 905 q 45 1101 0 1049 q 173 1153 90 1153 q 303 1098 255 1153 q 347 977 347 1049 q 303 856 347 905 q 173 802 256 802 m 173 884 q 238 910 214 884 q 262 973 262 937 q 239 1038 262 1012 q 173 1064 217 1064 q 108 1037 132 1064 q 85 973 85 1010 q 108 910 85 937 q 173 884 132 884 "},"V":{"x_min":0,"x_max":862.71875,"ha":940,"o":"m 862 1013 l 505 0 l 361 0 l 0 1013 l 143 1013 l 434 165 l 718 1012 l 862 1013 "},"\u039e":{"x_min":0,"x_max":734.71875,"ha":763,"o":"m 723 889 l 9 889 l 9 1013 l 723 1013 l 723 889 m 673 463 l 61 463 l 61 589 l 673 589 l 673 463 m 734 0 l 0 0 l 0 124 l 734 124 l 734 0 "},"\xa0":{"x_min":0,"x_max":0,"ha":853},"\u03ab":{"x_min":0.328125,"x_max":819.515625,"ha":889,"o":"m 588 1046 l 460 1046 l 460 1189 l 588 1189 l 588 1046 m 360 1046 l 232 1046 l 232 1189 l 360 1189 l 360 1046 m 819 1012 l 482 416 l 482 0 l 342 0 l 342 416 l 0 1012 l 140 1012 l 411 533 l 679 1012 l 819 1012 "},"\u201d":{"x_min":0,"x_max":347,"ha":454,"o":"m 139 851 q 102 737 139 784 q 0 669 65 690 l 0 734 q 59 787 42 741 q 72 873 72 821 l 0 873 l 0 1013 l 139 1013 l 139 851 m 347 851 q 310 737 347 784 q 208 669 273 690 l 208 734 q 267 787 250 741 q 280 873 280 821 l 208 873 l 208 1013 l 347 1013 l 347 851 "},"@":{"x_min":0,"x_max":1260,"ha":1357,"o":"m 1098 -45 q 877 -160 1001 -117 q 633 -203 752 -203 q 155 -29 327 -203 q 0 360 0 127 q 176 802 0 616 q 687 1008 372 1008 q 1123 854 969 1008 q 1260 517 1260 718 q 1155 216 1260 341 q 868 82 1044 82 q 772 106 801 82 q 737 202 737 135 q 647 113 700 144 q 527 82 594 82 q 367 147 420 82 q 314 312 314 212 q 401 565 314 452 q 639 690 498 690 q 810 588 760 690 l 849 668 l 938 668 q 877 441 900 532 q 833 226 833 268 q 853 182 833 198 q 902 167 873 167 q 1088 272 1012 167 q 1159 512 1159 372 q 1051 793 1159 681 q 687 925 925 925 q 248 747 415 925 q 97 361 97 586 q 226 26 97 159 q 627 -122 370 -122 q 856 -87 737 -122 q 1061 8 976 -53 l 1098 -45 m 786 488 q 738 580 777 545 q 643 615 700 615 q 483 517 548 615 q 425 322 425 430 q 457 203 425 250 q 552 156 490 156 q 722 273 665 156 q 786 488 738 309 "},"\u038a":{"x_min":0,"x_max":499,"ha":613,"o":"m 277 1040 l 83 799 l 0 799 l 140 1040 l 277 1040 m 499 0 l 360 0 l 360 1012 l 499 1012 l 499 0 "},"i":{"x_min":14,"x_max":136,"ha":275,"o":"m 136 873 l 14 873 l 14 1013 l 136 1013 l 136 873 m 136 0 l 14 0 l 14 737 l 136 737 l 136 0 "},"\u0392":{"x_min":0,"x_max":778,"ha":877,"o":"m 580 545 q 724 468 671 534 q 778 310 778 402 q 673 83 778 170 q 432 0 575 0 l 0 0 l 0 1013 l 411 1013 q 629 957 541 1013 q 732 768 732 891 q 691 632 732 692 q 580 545 650 571 m 393 899 l 139 899 l 139 587 l 379 587 q 521 623 462 587 q 592 744 592 666 q 531 859 592 819 q 393 899 471 899 m 419 124 q 566 169 504 124 q 635 302 635 219 q 559 435 635 388 q 402 476 494 476 l 139 476 l 139 124 l 419 124 "},"\u03c5":{"x_min":0,"x_max":617,"ha":725,"o":"m 617 352 q 540 94 617 199 q 308 -24 455 -24 q 76 94 161 -24 q 0 352 0 199 l 0 739 l 126 739 l 126 355 q 169 185 126 257 q 312 98 220 98 q 451 185 402 98 q 492 355 492 257 l 492 739 l 617 739 l 617 352 "},"]":{"x_min":0,"x_max":275,"ha":372,"o":"m 275 -281 l 0 -281 l 0 -187 l 151 -187 l 151 920 l 0 920 l 0 1013 l 275 1013 l 275 -281 "},"m":{"x_min":0,"x_max":1019,"ha":1128,"o":"m 1019 0 l 897 0 l 897 454 q 860 591 897 536 q 739 660 816 660 q 613 586 659 660 q 573 436 573 522 l 573 0 l 447 0 l 447 455 q 412 591 447 535 q 294 657 372 657 q 165 586 213 657 q 122 437 122 521 l 122 0 l 0 0 l 0 738 l 117 738 l 117 640 q 202 730 150 697 q 316 763 254 763 q 437 730 381 763 q 525 642 494 697 q 621 731 559 700 q 753 763 682 763 q 943 694 867 763 q 1019 512 1019 625 l 1019 0 "},"\u03c7":{"x_min":8.328125,"x_max":780.5625,"ha":815,"o":"m 780 -278 q 715 -294 747 -294 q 616 -257 663 -294 q 548 -175 576 -227 l 379 133 l 143 -277 l 9 -277 l 313 254 l 163 522 q 127 586 131 580 q 36 640 91 640 q 8 637 27 640 l 8 752 l 52 757 q 162 719 113 757 q 236 627 200 690 l 383 372 l 594 737 l 726 737 l 448 250 l 625 -69 q 670 -153 647 -110 q 743 -188 695 -188 q 780 -184 759 -188 l 780 -278 "},"\u03af":{"x_min":42,"x_max":326.71875,"ha":361,"o":"m 284 3 q 233 -10 258 -5 q 182 -15 207 -15 q 85 26 119 -15 q 42 200 42 79 l 42 737 l 167 737 l 168 215 q 172 141 168 157 q 226 101 183 101 q 248 102 239 101 q 284 112 257 104 l 284 3 m 326 1040 l 137 819 l 54 819 l 189 1040 l 326 1040 "},"\u0396":{"x_min":0,"x_max":779.171875,"ha":850,"o":"m 779 0 l 0 0 l 0 113 l 620 896 l 40 896 l 40 1013 l 779 1013 l 779 887 l 170 124 l 779 124 l 779 0 "},"R":{"x_min":0,"x_max":781.953125,"ha":907,"o":"m 781 0 l 623 0 q 587 242 590 52 q 407 433 585 433 l 138 433 l 138 0 l 0 0 l 0 1013 l 396 1013 q 636 946 539 1013 q 749 731 749 868 q 711 597 749 659 q 608 502 674 534 q 718 370 696 474 q 729 207 722 352 q 781 26 736 62 l 781 0 m 373 551 q 533 594 465 551 q 614 731 614 645 q 532 859 614 815 q 373 896 465 896 l 138 896 l 138 551 l 373 551 "},"o":{"x_min":0,"x_max":713,"ha":821,"o":"m 357 -25 q 94 91 194 -25 q 0 368 0 202 q 93 642 0 533 q 357 761 193 761 q 618 644 518 761 q 713 368 713 533 q 619 91 713 201 q 357 -25 521 -25 m 357 85 q 528 175 465 85 q 584 369 584 255 q 529 562 584 484 q 357 651 467 651 q 189 560 250 651 q 135 369 135 481 q 187 177 135 257 q 357 85 250 85 "},"K":{"x_min":0,"x_max":819.46875,"ha":906,"o":"m 819 0 l 649 0 l 294 509 l 139 355 l 139 0 l 0 0 l 0 1013 l 139 1013 l 139 526 l 626 1013 l 809 1013 l 395 600 l 819 0 "},",":{"x_min":0,"x_max":142,"ha":239,"o":"m 142 -12 q 105 -132 142 -82 q 0 -205 68 -182 l 0 -138 q 57 -82 40 -124 q 70 0 70 -51 l 0 0 l 0 151 l 142 151 l 142 -12 "},"d":{"x_min":0,"x_max":683,"ha":796,"o":"m 683 0 l 564 0 l 564 93 q 456 6 516 38 q 327 -25 395 -25 q 87 100 181 -25 q 0 365 0 215 q 90 639 0 525 q 343 763 187 763 q 564 647 486 763 l 564 1013 l 683 1013 l 683 0 m 582 373 q 529 562 582 484 q 361 653 468 653 q 190 561 253 653 q 135 365 135 479 q 189 175 135 254 q 358 85 251 85 q 529 178 468 85 q 582 373 582 258 "},"\xa8":{"x_min":-109,"x_max":247,"ha":232,"o":"m 247 1046 l 119 1046 l 119 1189 l 247 1189 l 247 1046 m 19 1046 l -109 1046 l -109 1189 l 19 1189 l 19 1046 "},"E":{"x_min":0,"x_max":736.109375,"ha":789,"o":"m 736 0 l 0 0 l 0 1013 l 725 1013 l 725 889 l 139 889 l 139 585 l 677 585 l 677 467 l 139 467 l 139 125 l 736 125 l 736 0 "},"Y":{"x_min":0,"x_max":820,"ha":886,"o":"m 820 1013 l 482 416 l 482 0 l 342 0 l 342 416 l 0 1013 l 140 1013 l 411 534 l 679 1012 l 820 1013 "},"\\"":{"x_min":0,"x_max":299,"ha":396,"o":"m 299 606 l 203 606 l 203 988 l 299 988 l 299 606 m 96 606 l 0 606 l 0 988 l 96 988 l 96 606 "},"\u2039":{"x_min":17.984375,"x_max":773.609375,"ha":792,"o":"m 773 40 l 18 376 l 17 465 l 773 799 l 773 692 l 159 420 l 773 149 l 773 40 "},"\u201e":{"x_min":0,"x_max":364,"ha":467,"o":"m 141 -12 q 104 -132 141 -82 q 0 -205 67 -182 l 0 -138 q 56 -82 40 -124 q 69 0 69 -51 l 0 0 l 0 151 l 141 151 l 141 -12 m 364 -12 q 327 -132 364 -82 q 222 -205 290 -182 l 222 -138 q 279 -82 262 -124 q 292 0 292 -51 l 222 0 l 222 151 l 364 151 l 364 -12 "},"\u03b4":{"x_min":1,"x_max":710,"ha":810,"o":"m 710 360 q 616 87 710 196 q 356 -28 518 -28 q 99 82 197 -28 q 1 356 1 192 q 100 606 1 509 q 355 703 199 703 q 180 829 288 754 q 70 903 124 866 l 70 1012 l 643 1012 l 643 901 l 258 901 q 462 763 422 794 q 636 592 577 677 q 710 360 710 485 m 584 365 q 552 501 584 447 q 451 602 521 555 q 372 611 411 611 q 197 541 258 611 q 136 355 136 472 q 190 171 136 245 q 358 85 252 85 q 528 173 465 85 q 584 365 584 252 "},"\u03ad":{"x_min":0,"x_max":634.71875,"ha":714,"o":"m 634 234 q 527 38 634 110 q 300 -25 433 -25 q 98 29 183 -25 q 0 204 0 93 q 37 313 0 265 q 128 390 67 352 q 56 459 82 419 q 26 555 26 505 q 114 712 26 654 q 295 763 191 763 q 499 700 416 763 q 589 515 589 631 l 478 515 q 419 618 464 580 q 307 657 374 657 q 207 630 253 657 q 151 547 151 598 q 238 445 151 469 q 389 434 280 434 l 389 331 l 349 331 q 206 315 255 331 q 125 210 125 287 q 183 107 125 145 q 302 76 233 76 q 436 117 379 76 q 509 234 493 159 l 634 234 m 520 1040 l 331 819 l 248 819 l 383 1040 l 520 1040 "},"\u03c9":{"x_min":0,"x_max":922,"ha":1031,"o":"m 922 339 q 856 97 922 203 q 650 -26 780 -26 q 538 9 587 -26 q 461 103 489 44 q 387 12 436 46 q 277 -22 339 -22 q 69 97 147 -22 q 0 339 0 203 q 45 551 0 444 q 161 738 84 643 l 302 738 q 175 553 219 647 q 124 336 124 446 q 155 179 124 249 q 275 88 197 88 q 375 163 341 88 q 400 294 400 219 l 400 572 l 524 572 l 524 294 q 561 135 524 192 q 643 88 591 88 q 762 182 719 88 q 797 342 797 257 q 745 556 797 450 q 619 738 705 638 l 760 738 q 874 551 835 640 q 922 339 922 444 "},"\xb4":{"x_min":0,"x_max":96,"ha":251,"o":"m 96 606 l 0 606 l 0 988 l 96 988 l 96 606 "},"\xb1":{"x_min":11,"x_max":781,"ha":792,"o":"m 781 490 l 446 490 l 446 255 l 349 255 l 349 490 l 11 490 l 11 586 l 349 586 l 349 819 l 446 819 l 446 586 l 781 586 l 781 490 m 781 21 l 11 21 l 11 115 l 781 115 l 781 21 "},"|":{"x_min":343,"x_max":449,"ha":792,"o":"m 449 462 l 343 462 l 343 986 l 449 986 l 449 462 m 449 -242 l 343 -242 l 343 280 l 449 280 l 449 -242 "},"\u03cb":{"x_min":0,"x_max":617,"ha":725,"o":"m 482 800 l 372 800 l 372 925 l 482 925 l 482 800 m 239 800 l 129 800 l 129 925 l 239 925 l 239 800 m 617 352 q 540 93 617 199 q 308 -24 455 -24 q 76 93 161 -24 q 0 352 0 199 l 0 738 l 126 738 l 126 354 q 169 185 126 257 q 312 98 220 98 q 451 185 402 98 q 492 354 492 257 l 492 738 l 617 738 l 617 352 "},"\xa7":{"x_min":0,"x_max":593,"ha":690,"o":"m 593 425 q 554 312 593 369 q 467 233 516 254 q 537 83 537 172 q 459 -74 537 -12 q 288 -133 387 -133 q 115 -69 184 -133 q 47 96 47 -6 l 166 96 q 199 7 166 40 q 288 -26 232 -26 q 371 -5 332 -26 q 420 60 420 21 q 311 201 420 139 q 108 309 210 255 q 0 490 0 383 q 33 602 0 551 q 124 687 66 654 q 75 743 93 712 q 58 812 58 773 q 133 984 58 920 q 300 1043 201 1043 q 458 987 394 1043 q 529 814 529 925 l 411 814 q 370 908 404 877 q 289 939 336 939 q 213 911 246 939 q 180 841 180 883 q 286 720 180 779 q 484 612 480 615 q 593 425 593 534 m 467 409 q 355 544 467 473 q 196 630 228 612 q 146 587 162 609 q 124 525 124 558 q 239 387 124 462 q 398 298 369 315 q 448 345 429 316 q 467 409 467 375 "},"b":{"x_min":0,"x_max":685,"ha":783,"o":"m 685 372 q 597 99 685 213 q 347 -25 501 -25 q 219 5 277 -25 q 121 93 161 36 l 121 0 l 0 0 l 0 1013 l 121 1013 l 121 634 q 214 723 157 692 q 341 754 272 754 q 591 637 493 754 q 685 372 685 526 m 554 356 q 499 550 554 470 q 328 644 437 644 q 162 556 223 644 q 108 369 108 478 q 160 176 108 256 q 330 83 221 83 q 498 169 435 83 q 554 356 554 245 "},"q":{"x_min":0,"x_max":683,"ha":876,"o":"m 683 -278 l 564 -278 l 564 97 q 474 8 533 39 q 345 -23 415 -23 q 91 93 188 -23 q 0 364 0 203 q 87 635 0 522 q 337 760 184 760 q 466 727 408 760 q 564 637 523 695 l 564 737 l 683 737 l 683 -278 m 582 375 q 527 564 582 488 q 358 652 466 652 q 190 565 253 652 q 135 377 135 488 q 189 179 135 261 q 361 84 251 84 q 530 179 469 84 q 582 375 582 260 "},"\u03a9":{"x_min":-0.171875,"x_max":969.5625,"ha":1068,"o":"m 969 0 l 555 0 l 555 123 q 744 308 675 194 q 814 558 814 423 q 726 812 814 709 q 484 922 633 922 q 244 820 334 922 q 154 567 154 719 q 223 316 154 433 q 412 123 292 199 l 412 0 l 0 0 l 0 124 l 217 124 q 68 327 122 210 q 15 572 15 444 q 144 911 15 781 q 484 1041 274 1041 q 822 909 691 1041 q 953 569 953 777 q 899 326 953 443 q 750 124 846 210 l 969 124 l 969 0 "},"\u03cd":{"x_min":0,"x_max":617,"ha":725,"o":"m 617 352 q 540 93 617 199 q 308 -24 455 -24 q 76 93 161 -24 q 0 352 0 199 l 0 738 l 126 738 l 126 354 q 169 185 126 257 q 312 98 220 98 q 451 185 402 98 q 492 354 492 257 l 492 738 l 617 738 l 617 352 m 535 1040 l 346 819 l 262 819 l 397 1040 l 535 1040 "},"z":{"x_min":-0.015625,"x_max":613.890625,"ha":697,"o":"m 613 0 l 0 0 l 0 100 l 433 630 l 20 630 l 20 738 l 594 738 l 593 636 l 163 110 l 613 110 l 613 0 "},"\u2122":{"x_min":0,"x_max":894,"ha":1000,"o":"m 389 951 l 229 951 l 229 503 l 160 503 l 160 951 l 0 951 l 0 1011 l 389 1011 l 389 951 m 894 503 l 827 503 l 827 939 l 685 503 l 620 503 l 481 937 l 481 503 l 417 503 l 417 1011 l 517 1011 l 653 580 l 796 1010 l 894 1011 l 894 503 "},"\u03ae":{"x_min":0.78125,"x_max":697,"ha":810,"o":"m 697 -278 l 572 -278 l 572 454 q 540 587 572 536 q 425 650 501 650 q 271 579 337 650 q 206 420 206 509 l 206 0 l 81 0 l 81 489 q 73 588 81 562 q 0 644 56 644 l 0 741 q 68 755 38 755 q 158 721 124 755 q 200 630 193 687 q 297 726 234 692 q 434 761 359 761 q 620 692 544 761 q 697 516 697 624 l 697 -278 m 479 1040 l 290 819 l 207 819 l 341 1040 l 479 1040 "},"\u0398":{"x_min":0,"x_max":960,"ha":1056,"o":"m 960 507 q 833 129 960 280 q 476 -32 698 -32 q 123 129 255 -32 q 0 507 0 280 q 123 883 0 732 q 476 1045 255 1045 q 832 883 696 1045 q 960 507 960 732 m 817 500 q 733 789 817 669 q 476 924 639 924 q 223 792 317 924 q 142 507 142 675 q 222 222 142 339 q 476 89 315 89 q 730 218 636 89 q 817 500 817 334 m 716 449 l 243 449 l 243 571 l 716 571 l 716 449 "},"\xae":{"x_min":-3,"x_max":1008,"ha":1106,"o":"m 503 532 q 614 562 566 532 q 672 658 672 598 q 614 747 672 716 q 503 772 569 772 l 338 772 l 338 532 l 503 532 m 502 -7 q 123 151 263 -7 q -3 501 -3 294 q 123 851 -3 706 q 502 1011 263 1011 q 881 851 739 1011 q 1008 501 1008 708 q 883 151 1008 292 q 502 -7 744 -7 m 502 60 q 830 197 709 60 q 940 501 940 322 q 831 805 940 681 q 502 944 709 944 q 174 805 296 944 q 65 501 65 680 q 173 197 65 320 q 502 60 294 60 m 788 146 l 678 146 q 653 316 655 183 q 527 449 652 449 l 338 449 l 338 146 l 241 146 l 241 854 l 518 854 q 688 808 621 854 q 766 658 766 755 q 739 563 766 607 q 668 497 713 519 q 751 331 747 472 q 788 164 756 190 l 788 146 "},"~":{"x_min":0,"x_max":833,"ha":931,"o":"m 833 958 q 778 753 833 831 q 594 665 716 665 q 402 761 502 665 q 240 857 302 857 q 131 795 166 857 q 104 665 104 745 l 0 665 q 54 867 0 789 q 237 958 116 958 q 429 861 331 958 q 594 765 527 765 q 704 827 670 765 q 729 958 729 874 l 833 958 "},"\u0395":{"x_min":0,"x_max":736.21875,"ha":778,"o":"m 736 0 l 0 0 l 0 1013 l 725 1013 l 725 889 l 139 889 l 139 585 l 677 585 l 677 467 l 139 467 l 139 125 l 736 125 l 736 0 "},"\xb3":{"x_min":0,"x_max":450,"ha":547,"o":"m 450 552 q 379 413 450 464 q 220 366 313 366 q 69 414 130 366 q 0 567 0 470 l 85 567 q 126 470 85 504 q 225 437 168 437 q 320 467 280 437 q 360 552 360 498 q 318 632 360 608 q 213 657 276 657 q 195 657 203 657 q 176 657 181 657 l 176 722 q 279 733 249 722 q 334 815 334 752 q 300 881 334 856 q 220 907 267 907 q 133 875 169 907 q 97 781 97 844 l 15 781 q 78 926 15 875 q 220 972 135 972 q 364 930 303 972 q 426 817 426 888 q 344 697 426 733 q 421 642 392 681 q 450 552 450 603 "},"[":{"x_min":0,"x_max":273.609375,"ha":371,"o":"m 273 -281 l 0 -281 l 0 1013 l 273 1013 l 273 920 l 124 920 l 124 -187 l 273 -187 l 273 -281 "},"L":{"x_min":0,"x_max":645.828125,"ha":696,"o":"m 645 0 l 0 0 l 0 1013 l 140 1013 l 140 126 l 645 126 l 645 0 "},"\u03c3":{"x_min":0,"x_max":803.390625,"ha":894,"o":"m 803 628 l 633 628 q 713 368 713 512 q 618 93 713 204 q 357 -25 518 -25 q 94 91 194 -25 q 0 368 0 201 q 94 644 0 533 q 356 761 194 761 q 481 750 398 761 q 608 739 564 739 l 803 739 l 803 628 m 360 85 q 529 180 467 85 q 584 374 584 262 q 527 566 584 490 q 352 651 463 651 q 187 559 247 651 q 135 368 135 478 q 189 175 135 254 q 360 85 251 85 "},"\u03b6":{"x_min":0,"x_max":573,"ha":642,"o":"m 573 -40 q 553 -162 573 -97 q 510 -278 543 -193 l 400 -278 q 441 -187 428 -219 q 462 -90 462 -132 q 378 -14 462 -14 q 108 45 197 -14 q 0 290 0 117 q 108 631 0 462 q 353 901 194 767 l 55 901 l 55 1012 l 561 1012 l 561 924 q 261 669 382 831 q 128 301 128 489 q 243 117 128 149 q 458 98 350 108 q 573 -40 573 80 "},"\u03b8":{"x_min":0,"x_max":674,"ha":778,"o":"m 674 496 q 601 160 674 304 q 336 -26 508 -26 q 73 153 165 -26 q 0 485 0 296 q 72 840 0 683 q 343 1045 166 1045 q 605 844 516 1045 q 674 496 674 692 m 546 579 q 498 798 546 691 q 336 935 437 935 q 178 798 237 935 q 126 579 137 701 l 546 579 m 546 475 l 126 475 q 170 233 126 348 q 338 80 230 80 q 504 233 447 80 q 546 475 546 346 "},"\u039f":{"x_min":0,"x_max":958,"ha":1054,"o":"m 485 1042 q 834 883 703 1042 q 958 511 958 735 q 834 136 958 287 q 481 -26 701 -26 q 126 130 261 -26 q 0 504 0 279 q 127 880 0 729 q 485 1042 263 1042 m 480 98 q 731 225 638 98 q 815 504 815 340 q 733 783 815 670 q 480 913 640 913 q 226 785 321 913 q 142 504 142 671 q 226 224 142 339 q 480 98 319 98 "},"\u0393":{"x_min":0,"x_max":705.28125,"ha":749,"o":"m 705 886 l 140 886 l 140 0 l 0 0 l 0 1012 l 705 1012 l 705 886 "}," ":{"x_min":0,"x_max":0,"ha":375},"%":{"x_min":-3,"x_max":1089,"ha":1186,"o":"m 845 0 q 663 76 731 0 q 602 244 602 145 q 661 412 602 344 q 845 489 728 489 q 1027 412 959 489 q 1089 244 1089 343 q 1029 76 1089 144 q 845 0 962 0 m 844 103 q 945 143 909 103 q 981 243 981 184 q 947 340 981 301 q 844 385 909 385 q 744 342 781 385 q 708 243 708 300 q 741 147 708 186 q 844 103 780 103 m 888 986 l 284 -25 l 199 -25 l 803 986 l 888 986 m 241 468 q 58 545 126 468 q -3 715 -3 615 q 56 881 -3 813 q 238 958 124 958 q 421 881 353 958 q 483 712 483 813 q 423 544 483 612 q 241 468 356 468 m 241 855 q 137 811 175 855 q 100 710 100 768 q 136 612 100 653 q 240 572 172 572 q 344 614 306 572 q 382 713 382 656 q 347 810 382 771 q 241 855 308 855 "},"P":{"x_min":0,"x_max":726,"ha":806,"o":"m 424 1013 q 640 931 555 1013 q 726 719 726 850 q 637 506 726 587 q 413 426 548 426 l 140 426 l 140 0 l 0 0 l 0 1013 l 424 1013 m 379 889 l 140 889 l 140 548 l 372 548 q 522 589 459 548 q 593 720 593 637 q 528 845 593 801 q 379 889 463 889 "},"\u0388":{"x_min":0,"x_max":1078.21875,"ha":1118,"o":"m 1078 0 l 342 0 l 342 1013 l 1067 1013 l 1067 889 l 481 889 l 481 585 l 1019 585 l 1019 467 l 481 467 l 481 125 l 1078 125 l 1078 0 m 277 1040 l 83 799 l 0 799 l 140 1040 l 277 1040 "},"\u038f":{"x_min":0.125,"x_max":1136.546875,"ha":1235,"o":"m 1136 0 l 722 0 l 722 123 q 911 309 842 194 q 981 558 981 423 q 893 813 981 710 q 651 923 800 923 q 411 821 501 923 q 321 568 321 720 q 390 316 321 433 q 579 123 459 200 l 579 0 l 166 0 l 166 124 l 384 124 q 235 327 289 210 q 182 572 182 444 q 311 912 182 782 q 651 1042 441 1042 q 989 910 858 1042 q 1120 569 1120 778 q 1066 326 1120 443 q 917 124 1013 210 l 1136 124 l 1136 0 m 277 1040 l 83 800 l 0 800 l 140 1041 l 277 1040 "},"_":{"x_min":0,"x_max":705.5625,"ha":803,"o":"m 705 -334 l 0 -334 l 0 -234 l 705 -234 l 705 -334 "},"\u03aa":{"x_min":-110,"x_max":246,"ha":275,"o":"m 246 1046 l 118 1046 l 118 1189 l 246 1189 l 246 1046 m 18 1046 l -110 1046 l -110 1189 l 18 1189 l 18 1046 m 136 0 l 0 0 l 0 1012 l 136 1012 l 136 0 "},"+":{"x_min":23,"x_max":768,"ha":792,"o":"m 768 372 l 444 372 l 444 0 l 347 0 l 347 372 l 23 372 l 23 468 l 347 468 l 347 840 l 444 840 l 444 468 l 768 468 l 768 372 "},"\xbd":{"x_min":0,"x_max":1050,"ha":1149,"o":"m 1050 0 l 625 0 q 712 178 625 108 q 878 277 722 187 q 967 385 967 328 q 932 456 967 429 q 850 484 897 484 q 759 450 798 484 q 721 352 721 416 l 640 352 q 706 502 640 448 q 851 551 766 551 q 987 509 931 551 q 1050 385 1050 462 q 976 251 1050 301 q 829 179 902 215 q 717 68 740 133 l 1050 68 l 1050 0 m 834 985 l 215 -28 l 130 -28 l 750 984 l 834 985 m 224 422 l 142 422 l 142 811 l 0 811 l 0 867 q 104 889 62 867 q 164 973 157 916 l 224 973 l 224 422 "},"\u03a1":{"x_min":0,"x_max":720,"ha":783,"o":"m 424 1013 q 637 933 554 1013 q 720 723 720 853 q 633 508 720 591 q 413 426 546 426 l 140 426 l 140 0 l 0 0 l 0 1013 l 424 1013 m 378 889 l 140 889 l 140 548 l 371 548 q 521 589 458 548 q 592 720 592 637 q 527 845 592 801 q 378 889 463 889 "},"\'":{"x_min":0,"x_max":139,"ha":236,"o":"m 139 851 q 102 737 139 784 q 0 669 65 690 l 0 734 q 59 787 42 741 q 72 873 72 821 l 0 873 l 0 1013 l 139 1013 l 139 851 "},"\xaa":{"x_min":0,"x_max":350,"ha":397,"o":"m 350 625 q 307 616 328 616 q 266 631 281 616 q 247 673 251 645 q 190 628 225 644 q 116 613 156 613 q 32 641 64 613 q 0 722 0 669 q 72 826 0 800 q 247 866 159 846 l 247 887 q 220 934 247 916 q 162 953 194 953 q 104 934 129 953 q 76 882 80 915 l 16 882 q 60 976 16 941 q 166 1011 104 1011 q 266 979 224 1011 q 308 891 308 948 l 308 706 q 311 679 308 688 q 331 670 315 670 l 350 672 l 350 625 m 247 757 l 247 811 q 136 790 175 798 q 64 726 64 773 q 83 682 64 697 q 132 667 103 667 q 207 690 174 667 q 247 757 247 718 "},"\u0385":{"x_min":0,"x_max":450,"ha":553,"o":"m 450 800 l 340 800 l 340 925 l 450 925 l 450 800 m 406 1040 l 212 800 l 129 800 l 269 1040 l 406 1040 m 110 800 l 0 800 l 0 925 l 110 925 l 110 800 "},"T":{"x_min":0,"x_max":777,"ha":835,"o":"m 777 894 l 458 894 l 458 0 l 319 0 l 319 894 l 0 894 l 0 1013 l 777 1013 l 777 894 "},"\u03a6":{"x_min":0,"x_max":915,"ha":997,"o":"m 527 0 l 389 0 l 389 122 q 110 231 220 122 q 0 509 0 340 q 110 785 0 677 q 389 893 220 893 l 389 1013 l 527 1013 l 527 893 q 804 786 693 893 q 915 509 915 679 q 805 231 915 341 q 527 122 696 122 l 527 0 m 527 226 q 712 310 641 226 q 779 507 779 389 q 712 705 779 627 q 527 787 641 787 l 527 226 m 389 226 l 389 787 q 205 698 275 775 q 136 505 136 620 q 206 308 136 391 q 389 226 276 226 "},"\u204b":{"x_min":0,"x_max":0,"ha":694},"j":{"x_min":-77.78125,"x_max":167,"ha":349,"o":"m 167 871 l 42 871 l 42 1013 l 167 1013 l 167 871 m 167 -80 q 121 -231 167 -184 q -26 -278 76 -278 l -77 -278 l -77 -164 l -41 -164 q 26 -143 11 -164 q 42 -65 42 -122 l 42 737 l 167 737 l 167 -80 "},"\u03a3":{"x_min":0,"x_max":756.953125,"ha":819,"o":"m 756 0 l 0 0 l 0 107 l 395 523 l 22 904 l 22 1013 l 745 1013 l 745 889 l 209 889 l 566 523 l 187 125 l 756 125 l 756 0 "},"\u203a":{"x_min":18.0625,"x_max":774,"ha":792,"o":"m 774 376 l 18 40 l 18 149 l 631 421 l 18 692 l 18 799 l 774 465 l 774 376 "},"<":{"x_min":17.984375,"x_max":773.609375,"ha":792,"o":"m 773 40 l 18 376 l 17 465 l 773 799 l 773 692 l 159 420 l 773 149 l 773 40 "},"\xa3":{"x_min":0,"x_max":704.484375,"ha":801,"o":"m 704 41 q 623 -10 664 5 q 543 -26 583 -26 q 359 15 501 -26 q 243 36 288 36 q 158 23 197 36 q 73 -21 119 10 l 6 76 q 125 195 90 150 q 175 331 175 262 q 147 443 175 383 l 0 443 l 0 512 l 108 512 q 43 734 43 623 q 120 929 43 854 q 358 1010 204 1010 q 579 936 487 1010 q 678 729 678 857 l 678 684 l 552 684 q 504 838 552 780 q 362 896 457 896 q 216 852 263 896 q 176 747 176 815 q 199 627 176 697 q 248 512 217 574 l 468 512 l 468 443 l 279 443 q 297 356 297 398 q 230 194 297 279 q 153 107 211 170 q 227 133 190 125 q 293 142 264 142 q 410 119 339 142 q 516 96 482 96 q 579 105 550 96 q 648 142 608 115 l 704 41 "},"t":{"x_min":0,"x_max":367,"ha":458,"o":"m 367 0 q 312 -5 339 -2 q 262 -8 284 -8 q 145 28 183 -8 q 108 143 108 64 l 108 638 l 0 638 l 0 738 l 108 738 l 108 944 l 232 944 l 232 738 l 367 738 l 367 638 l 232 638 l 232 185 q 248 121 232 140 q 307 102 264 102 q 345 104 330 102 q 367 107 360 107 l 367 0 "},"\xac":{"x_min":0,"x_max":706,"ha":803,"o":"m 706 411 l 706 158 l 630 158 l 630 335 l 0 335 l 0 411 l 706 411 "},"\u03bb":{"x_min":0,"x_max":750,"ha":803,"o":"m 750 -7 q 679 -15 716 -15 q 538 59 591 -15 q 466 214 512 97 l 336 551 l 126 0 l 0 0 l 270 705 q 223 837 247 770 q 116 899 190 899 q 90 898 100 899 l 90 1004 q 152 1011 125 1011 q 298 938 244 1011 q 373 783 326 901 l 605 192 q 649 115 629 136 q 716 95 669 95 l 736 95 q 750 97 745 97 l 750 -7 "},"W":{"x_min":0,"x_max":1263.890625,"ha":1351,"o":"m 1263 1013 l 995 0 l 859 0 l 627 837 l 405 0 l 265 0 l 0 1013 l 136 1013 l 342 202 l 556 1013 l 701 1013 l 921 207 l 1133 1012 l 1263 1013 "},">":{"x_min":18.0625,"x_max":774,"ha":792,"o":"m 774 376 l 18 40 l 18 149 l 631 421 l 18 692 l 18 799 l 774 465 l 774 376 "},"v":{"x_min":0,"x_max":675.15625,"ha":761,"o":"m 675 738 l 404 0 l 272 0 l 0 738 l 133 737 l 340 147 l 541 737 l 675 738 "},"\u03c4":{"x_min":0.28125,"x_max":644.5,"ha":703,"o":"m 644 628 l 382 628 l 382 179 q 388 120 382 137 q 436 91 401 91 q 474 94 447 91 q 504 97 501 97 l 504 0 q 454 -9 482 -5 q 401 -14 426 -14 q 278 67 308 -14 q 260 233 260 118 l 260 628 l 0 628 l 0 739 l 644 739 l 644 628 "},"\u03be":{"x_min":0,"x_max":624.9375,"ha":699,"o":"m 624 -37 q 608 -153 624 -96 q 563 -278 593 -211 l 454 -278 q 491 -183 486 -200 q 511 -83 511 -126 q 484 -23 511 -44 q 370 1 452 1 q 323 0 354 1 q 283 -1 293 -1 q 84 76 169 -1 q 0 266 0 154 q 56 431 0 358 q 197 538 108 498 q 94 613 134 562 q 54 730 54 665 q 77 823 54 780 q 143 901 101 867 l 27 901 l 27 1012 l 576 1012 l 576 901 l 380 901 q 244 863 303 901 q 178 745 178 820 q 312 600 178 636 q 532 582 380 582 l 532 479 q 276 455 361 479 q 118 281 118 410 q 165 173 118 217 q 274 120 208 133 q 494 101 384 110 q 624 -37 624 76 "},"&":{"x_min":-3,"x_max":894.25,"ha":992,"o":"m 894 0 l 725 0 l 624 123 q 471 0 553 40 q 306 -41 390 -41 q 168 -7 231 -41 q 62 92 105 26 q 14 187 31 139 q -3 276 -3 235 q 55 433 -3 358 q 248 581 114 508 q 170 689 196 640 q 137 817 137 751 q 214 985 137 922 q 384 1041 284 1041 q 548 988 483 1041 q 622 824 622 928 q 563 666 622 739 q 431 556 516 608 l 621 326 q 649 407 639 361 q 663 493 653 426 l 781 493 q 703 229 781 352 l 894 0 m 504 818 q 468 908 504 877 q 384 940 433 940 q 293 907 331 940 q 255 818 255 875 q 289 714 255 767 q 363 628 313 678 q 477 729 446 682 q 504 818 504 771 m 556 209 l 314 499 q 179 395 223 449 q 135 283 135 341 q 146 222 135 253 q 183 158 158 192 q 333 80 241 80 q 556 209 448 80 "},"\u039b":{"x_min":0,"x_max":862.5,"ha":942,"o":"m 862 0 l 719 0 l 426 847 l 143 0 l 0 0 l 356 1013 l 501 1013 l 862 0 "},"I":{"x_min":41,"x_max":180,"ha":293,"o":"m 180 0 l 41 0 l 41 1013 l 180 1013 l 180 0 "},"G":{"x_min":0,"x_max":921,"ha":1011,"o":"m 921 0 l 832 0 l 801 136 q 655 15 741 58 q 470 -28 568 -28 q 126 133 259 -28 q 0 499 0 284 q 125 881 0 731 q 486 1043 259 1043 q 763 957 647 1043 q 905 709 890 864 l 772 709 q 668 866 747 807 q 486 926 589 926 q 228 795 322 926 q 142 507 142 677 q 228 224 142 342 q 483 94 323 94 q 712 195 625 94 q 796 435 796 291 l 477 435 l 477 549 l 921 549 l 921 0 "},"\u03b0":{"x_min":0,"x_max":617,"ha":725,"o":"m 524 800 l 414 800 l 414 925 l 524 925 l 524 800 m 183 800 l 73 800 l 73 925 l 183 925 l 183 800 m 617 352 q 540 93 617 199 q 308 -24 455 -24 q 76 93 161 -24 q 0 352 0 199 l 0 738 l 126 738 l 126 354 q 169 185 126 257 q 312 98 220 98 q 451 185 402 98 q 492 354 492 257 l 492 738 l 617 738 l 617 352 m 489 1040 l 300 819 l 216 819 l 351 1040 l 489 1040 "},"`":{"x_min":0,"x_max":138.890625,"ha":236,"o":"m 138 699 l 0 699 l 0 861 q 36 974 0 929 q 138 1041 72 1020 l 138 977 q 82 931 95 969 q 69 839 69 893 l 138 839 l 138 699 "},"\xb7":{"x_min":0,"x_max":142,"ha":239,"o":"m 142 585 l 0 585 l 0 738 l 142 738 l 142 585 "},"\u03a5":{"x_min":0.328125,"x_max":819.515625,"ha":889,"o":"m 819 1013 l 482 416 l 482 0 l 342 0 l 342 416 l 0 1013 l 140 1013 l 411 533 l 679 1013 l 819 1013 "},"r":{"x_min":0,"x_max":355.5625,"ha":432,"o":"m 355 621 l 343 621 q 179 569 236 621 q 122 411 122 518 l 122 0 l 0 0 l 0 737 l 117 737 l 117 604 q 204 719 146 686 q 355 753 262 753 l 355 621 "},"x":{"x_min":0,"x_max":675,"ha":764,"o":"m 675 0 l 525 0 l 331 286 l 144 0 l 0 0 l 256 379 l 12 738 l 157 737 l 336 473 l 516 738 l 661 738 l 412 380 l 675 0 "},"\u03bc":{"x_min":0,"x_max":696.609375,"ha":747,"o":"m 696 -4 q 628 -14 657 -14 q 498 97 513 -14 q 422 8 470 41 q 313 -24 374 -24 q 207 3 258 -24 q 120 80 157 31 l 120 -278 l 0 -278 l 0 738 l 124 738 l 124 343 q 165 172 124 246 q 308 82 216 82 q 451 177 402 82 q 492 358 492 254 l 492 738 l 616 738 l 616 214 q 623 136 616 160 q 673 92 636 92 q 696 95 684 92 l 696 -4 "},"h":{"x_min":0,"x_max":615,"ha":724,"o":"m 615 472 l 615 0 l 490 0 l 490 454 q 456 590 490 535 q 338 654 416 654 q 186 588 251 654 q 122 436 122 522 l 122 0 l 0 0 l 0 1013 l 122 1013 l 122 633 q 218 727 149 694 q 362 760 287 760 q 552 676 484 760 q 615 472 615 600 "},".":{"x_min":0,"x_max":142,"ha":239,"o":"m 142 0 l 0 0 l 0 151 l 142 151 l 142 0 "},"\u03c6":{"x_min":-2,"x_max":878,"ha":974,"o":"m 496 -279 l 378 -279 l 378 -17 q 101 88 204 -17 q -2 367 -2 194 q 68 626 -2 510 q 283 758 151 758 l 283 646 q 167 537 209 626 q 133 373 133 462 q 192 177 133 254 q 378 93 259 93 l 378 758 q 445 764 426 763 q 476 765 464 765 q 765 659 653 765 q 878 377 878 553 q 771 96 878 209 q 496 -17 665 -17 l 496 -279 m 496 93 l 514 93 q 687 183 623 93 q 746 380 746 265 q 691 569 746 491 q 522 658 629 658 l 496 656 l 496 93 "},";":{"x_min":0,"x_max":142,"ha":239,"o":"m 142 585 l 0 585 l 0 738 l 142 738 l 142 585 m 142 -12 q 105 -132 142 -82 q 0 -206 68 -182 l 0 -138 q 58 -82 43 -123 q 68 0 68 -56 l 0 0 l 0 151 l 142 151 l 142 -12 "},"f":{"x_min":0,"x_max":378,"ha":472,"o":"m 378 638 l 246 638 l 246 0 l 121 0 l 121 638 l 0 638 l 0 738 l 121 738 q 137 935 121 887 q 290 1028 171 1028 q 320 1027 305 1028 q 378 1021 334 1026 l 378 908 q 323 918 346 918 q 257 870 273 918 q 246 780 246 840 l 246 738 l 378 738 l 378 638 "},"\u201c":{"x_min":1,"x_max":348.21875,"ha":454,"o":"m 140 670 l 1 670 l 1 830 q 37 943 1 897 q 140 1011 74 990 l 140 947 q 82 900 97 940 q 68 810 68 861 l 140 810 l 140 670 m 348 670 l 209 670 l 209 830 q 245 943 209 897 q 348 1011 282 990 l 348 947 q 290 900 305 940 q 276 810 276 861 l 348 810 l 348 670 "},"A":{"x_min":0.03125,"x_max":906.953125,"ha":1008,"o":"m 906 0 l 756 0 l 648 303 l 251 303 l 142 0 l 0 0 l 376 1013 l 529 1013 l 906 0 m 610 421 l 452 867 l 293 421 l 610 421 "},"\u2018":{"x_min":1,"x_max":139.890625,"ha":236,"o":"m 139 670 l 1 670 l 1 830 q 37 943 1 897 q 139 1011 74 990 l 139 947 q 82 900 97 940 q 68 810 68 861 l 139 810 l 139 670 "},"\u03ca":{"x_min":-70,"x_max":283,"ha":361,"o":"m 283 800 l 173 800 l 173 925 l 283 925 l 283 800 m 40 800 l -70 800 l -70 925 l 40 925 l 40 800 m 283 3 q 232 -10 257 -5 q 181 -15 206 -15 q 84 26 118 -15 q 41 200 41 79 l 41 737 l 166 737 l 167 215 q 171 141 167 157 q 225 101 182 101 q 247 103 238 101 q 283 112 256 104 l 283 3 "},"\u03c0":{"x_min":-0.21875,"x_max":773.21875,"ha":857,"o":"m 773 -7 l 707 -11 q 575 40 607 -11 q 552 174 552 77 l 552 226 l 552 626 l 222 626 l 222 0 l 97 0 l 97 626 l 0 626 l 0 737 l 773 737 l 773 626 l 676 626 l 676 171 q 695 103 676 117 q 773 90 714 90 l 773 -7 "},"\u03ac":{"x_min":0,"x_max":765.5625,"ha":809,"o":"m 765 -4 q 698 -14 726 -14 q 564 97 586 -14 q 466 7 525 40 q 337 -26 407 -26 q 88 98 186 -26 q 0 369 0 212 q 88 637 0 525 q 337 760 184 760 q 465 727 407 760 q 563 637 524 695 l 563 738 l 685 738 l 685 222 q 693 141 685 168 q 748 94 708 94 q 765 95 760 94 l 765 -4 m 584 371 q 531 562 584 485 q 360 653 470 653 q 192 566 254 653 q 135 379 135 489 q 186 181 135 261 q 358 84 247 84 q 528 176 465 84 q 584 371 584 260 m 604 1040 l 415 819 l 332 819 l 466 1040 l 604 1040 "},"O":{"x_min":0,"x_max":958,"ha":1057,"o":"m 485 1041 q 834 882 702 1041 q 958 512 958 734 q 834 136 958 287 q 481 -26 702 -26 q 126 130 261 -26 q 0 504 0 279 q 127 880 0 728 q 485 1041 263 1041 m 480 98 q 731 225 638 98 q 815 504 815 340 q 733 783 815 669 q 480 912 640 912 q 226 784 321 912 q 142 504 142 670 q 226 224 142 339 q 480 98 319 98 "},"n":{"x_min":0,"x_max":615,"ha":724,"o":"m 615 463 l 615 0 l 490 0 l 490 454 q 453 592 490 537 q 331 656 410 656 q 178 585 240 656 q 117 421 117 514 l 117 0 l 0 0 l 0 738 l 117 738 l 117 630 q 218 728 150 693 q 359 764 286 764 q 552 675 484 764 q 615 463 615 593 "},"l":{"x_min":41,"x_max":166,"ha":279,"o":"m 166 0 l 41 0 l 41 1013 l 166 1013 l 166 0 "},"\xa4":{"x_min":40.09375,"x_max":728.796875,"ha":825,"o":"m 728 304 l 649 224 l 512 363 q 383 331 458 331 q 256 363 310 331 l 119 224 l 40 304 l 177 441 q 150 553 150 493 q 184 673 150 621 l 40 818 l 119 898 l 267 749 q 321 766 291 759 q 384 773 351 773 q 447 766 417 773 q 501 749 477 759 l 649 898 l 728 818 l 585 675 q 612 618 604 648 q 621 553 621 587 q 591 441 621 491 l 728 304 m 384 682 q 280 643 318 682 q 243 551 243 604 q 279 461 243 499 q 383 423 316 423 q 487 461 449 423 q 525 553 525 500 q 490 641 525 605 q 384 682 451 682 "},"\u03ba":{"x_min":0,"x_max":632.328125,"ha":679,"o":"m 632 0 l 482 0 l 225 384 l 124 288 l 124 0 l 0 0 l 0 738 l 124 738 l 124 446 l 433 738 l 596 738 l 312 466 l 632 0 "},"p":{"x_min":0,"x_max":685,"ha":786,"o":"m 685 364 q 598 96 685 205 q 350 -23 504 -23 q 121 89 205 -23 l 121 -278 l 0 -278 l 0 738 l 121 738 l 121 633 q 220 726 159 691 q 351 761 280 761 q 598 636 504 761 q 685 364 685 522 m 557 371 q 501 560 557 481 q 330 651 437 651 q 162 559 223 651 q 108 366 108 479 q 162 177 108 254 q 333 87 224 87 q 502 178 441 87 q 557 371 557 258 "},"\u2021":{"x_min":0,"x_max":777,"ha":835,"o":"m 458 238 l 458 0 l 319 0 l 319 238 l 0 238 l 0 360 l 319 360 l 319 681 l 0 683 l 0 804 l 319 804 l 319 1015 l 458 1013 l 458 804 l 777 804 l 777 683 l 458 683 l 458 360 l 777 360 l 777 238 l 458 238 "},"\u03c8":{"x_min":0,"x_max":808,"ha":907,"o":"m 465 -278 l 341 -278 l 341 -15 q 87 102 180 -15 q 0 378 0 210 l 0 739 l 133 739 l 133 379 q 182 195 133 275 q 341 98 242 98 l 341 922 l 465 922 l 465 98 q 623 195 563 98 q 675 382 675 278 l 675 742 l 808 742 l 808 381 q 720 104 808 213 q 466 -13 627 -13 l 465 -278 "},"\u03b7":{"x_min":0.78125,"x_max":697,"ha":810,"o":"m 697 -278 l 572 -278 l 572 454 q 540 587 572 536 q 425 650 501 650 q 271 579 337 650 q 206 420 206 509 l 206 0 l 81 0 l 81 489 q 73 588 81 562 q 0 644 56 644 l 0 741 q 68 755 38 755 q 158 720 124 755 q 200 630 193 686 q 297 726 234 692 q 434 761 359 761 q 620 692 544 761 q 697 516 697 624 l 697 -278 "}},"cssFontWeight":"normal","ascender":1189,"underlinePosition":-100,"cssFontStyle":"normal","boundingBox":{"yMin":-334,"xMin":-111,"yMax":1189,"xMax":1672},"resolution":1000,"original_font_information":{"postscript_name":"Helvetiker-Regular","version_string":"Version 1.00 2004 initial release","vendor_url":"http://www.magenta.gr/","full_font_name":"Helvetiker","font_family_name":"Helvetiker","copyright":"Copyright (c) \u039cagenta ltd, 2004","description":"","trademark":"","designer":"","designer_url":"","unique_font_identifier":"\u039cagenta ltd:Helvetiker:22-10-104","license_url":"http://www.ellak.gr/fonts/MgOpen/license.html","license_description":"Copyright (c) 2004 by MAGENTA Ltd. All Rights Reserved.\\r\\n\\r\\nPermission is hereby granted, free of charge, to any person obtaining a copy of the fonts accompanying this license (\\"Fonts\\") and associated documentation files (the \\"Font Software\\"), to reproduce and distribute the Font Software, including without limitation the rights to use, copy, merge, publish, distribute, and/or sell copies of the Font Software, and to permit persons to whom the Font Software is furnished to do so, subject to the following conditions: \\r\\n\\r\\nThe above copyright and this permission notice shall be included in all copies of one or more of the Font Software typefaces.\\r\\n\\r\\nThe Font Software may be modified, altered, or added to, and in particular the designs of glyphs or characters in the Fonts may be modified and additional glyphs or characters may be added to the Fonts, only if the fonts are renamed to names not containing the word \\"MgOpen\\", or if the modifications are accepted for inclusion in the Font Software itself by the each appointed Administrator.\\r\\n\\r\\nThis License becomes null and void to the extent applicable to Fonts or Font Software that has been modified and is distributed under the \\"MgOpen\\" name.\\r\\n\\r\\nThe Font Software may be sold as part of a larger software package but no copy of one or more of the Font Software typefaces may be sold by itself. \\r\\n\\r\\nTHE FONT SOFTWARE IS PROVIDED \\"AS IS\\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL MAGENTA OR PERSONS OR BODIES IN CHARGE OF ADMINISTRATION AND MAINTENANCE OF THE FONT SOFTWARE BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.","manufacturer_name":"\u039cagenta ltd","font_sub_family_name":"Regular"},"descender":-334,"familyName":"Helvetiker","lineHeight":1522,"underlineThickness":50}');class SHe{constructor(t,e=new EHe(new w5(Zte)),i=new yHe(new w5(Zte)),r=new aHe,o=new lHe){this.geometryOptions=t,this.frontPrintContainerMesh=e,this.backPrintContainerMesh=i,this.baseplateMesh=r,this.mapMesh=o,this.printMesh=new Br,this.printMesh.name="PrintMesh"}initialize(){var t=this;return B(function*(){t.baseplateMesh=yield t.baseplateMesh.init(t.geometryOptions),t.printMesh.add(t.baseplateMesh),t.mapMesh=yield t.mapMesh.init(t.geometryOptions),t.printMesh.add(t.mapMesh),t.frontPrintContainerMesh=yield t.frontPrintContainerMesh.init(t.geometryOptions),t.printMesh.add(t.frontPrintContainerMesh),t.backPrintContainerMesh=yield t.backPrintContainerMesh.init(t.geometryOptions),t.printMesh.add(t.backPrintContainerMesh),t.calculateCurrentSize()})()}getThreeMesh(){return this.printMesh}getMapMesh(){return this.mapMesh}getSize(){return this.currentSize}updateSize(t){var e=this;return B(function*(){e.geometryOptions.width=t;const i=e.currentSize.x;return yield Promise.all([...e.printMesh.children].map(function(){var r=B(function*(o){o instanceof Ed&&o.isGeneralSizeChangeMesh()&&o.changeSize(e.geometryOptions,i)});return function(o){return r.apply(this,arguments)}}())),e.calculateCurrentSize(),e.backPrintContainerMesh.isQRCodeVisible()})()}updateNumberOfColors(t){this.geometryOptions.numberOfColors=t;for(const e of this.printMesh.children)e instanceof Ed&&e.updateColor(t)}addCustomLogo(t){var e=this;return B(function*(){e.frontPrintContainerMesh.addCustomLogo(t,e.geometryOptions)})()}rotateCustomLogo(){this.frontPrintContainerMesh.rotateCustomLogo()}flipCustomLogo(){this.frontPrintContainerMesh.flipCustomLogo()}removeCustomLogo(){this.frontPrintContainerMesh.removeCustomLogo()}updateCustomLogoColor(t){this.frontPrintContainerMesh.updateCustomLogoColor(t)}updateFrontText(t){this.frontPrintContainerMesh.updateFrontText(t,this.geometryOptions)}updateSecondRowVisibility(t){this.geometryOptions.secondRowVisible!==t&&(this.geometryOptions.secondRowVisible=t,this.frontPrintContainerMesh.updateSecondRowVisibility(this.geometryOptions),this.baseplateMesh.changeSize(this.geometryOptions))}updateSecondRowText(t){var e=this;return B(function*(){yield e.frontPrintContainerMesh.updateSecondRowText(t,e.geometryOptions)})()}calculateCurrentSize(){const t=this.baseplateMesh.getWidth(),e=this.baseplateMesh.getDepth(),i=this.baseplateMesh.getHeight()+this.mapMesh.getHeight();this.currentSize=new ie(t,e,i)}updateQrCodeText(t){var e=this;return B(function*(){yield e.backPrintContainerMesh.updateQrCodeText(t,e.geometryOptions)})()}updateQrCodeVisibility(t){this.backPrintContainerMesh.updateQrCodeVisibility(t)}}function Jte(n,t,e,i,r){const a=n.z,l=n.x,c=n.y-e;return t.geometry.boundingBox||t.geometry.computeBoundingBox(),Math.min(l,c,(a-i)*t.geometry.boundingBox.max.x/(t.geometry.boundingBox.max.z-t.geometry.boundingBox.min.z)+2*r)}const THe=["rendererContainer"],IHe=["fileInput"],FHe=()=>["Color"];function DHe(n,t){if(1&n&&(P(0,"mat-option",9),we(1),P(2,"span",35),we(3),H()()),2&n){const e=t.$implicit;pe("value",e),U(),cn("",e.name," "),U(2),$k(" (x: ",e.x,"cm, y: ",e.y,"cm, z: ",e.z,"cm, colors ",e.numberOfColors," )")}}let ene=(()=>{class n{constructor(e,i){this.state=e,this.threeSceneService=i,this.logoColor="#ffffff",this.isFileSelected=!1,this.isPrintMeshLoaded=!1,this.secondRow={defaultText:(new Date).toLocaleDateString(),name:"Second Row Text",isVisible:!1,currentText:void 0},this.qrCode={defaultText:"maibornwolff.de/service/it-sanierung",name:"QrCode",isVisible:!1,currentText:void 0},this.printers=[{name:"Prusa MK3S (single color)",x:245,y:205,z:205,numberOfColors:1},{name:"BambuLab A1 + AMS Lite",x:251,y:251,z:251,numberOfColors:4},{name:"Prusa XL (5 colors)",x:355,y:335,z:355,numberOfColors:5}],this.selectedPrinter=this.printers[2],this.layerHeight=.2,this.frontTextSize=8,this.secondRowTextSize=6,this.frontPrintDepth=.6,this.mapSideOffset=10,this.baseplateHeight=1,this.logoSize=10,this.maxWidth=Jte(new ie(this.selectedPrinter.x,this.selectedPrinter.y,this.selectedPrinter.z),this.threeSceneService.getMapMesh().getThreeMesh(),this.frontTextSize,this.baseplateHeight,this.mapSideOffset),this.currentSize=new ie,this.currentSize.x=this.maxWidth,this.wantedWidth=this.maxWidth,this.currentNumberOfColors=this.selectedPrinter.numberOfColors,this.isPrintMeshLoaded=!1,this.secondRow.currentText=this.secondRow.defaultText,this.qrCode.currentText=this.qrCode.defaultText,this.areaMetric=this.state.getValue().dynamicSettings.areaMetric,this.heightMetric=this.state.getValue().dynamicSettings.heightMetric,this.colorMetric=this.state.getValue().dynamicSettings.colorMetric;const r=GE(this.state.getValue().files),o=this.state.getValue().fileSettings.blacklist,s=wG(r,o);this.nodeMetricData=s.filter(a=>a.name===this.areaMetric||a.name===this.heightMetric||a.name===this.colorMetric)}ngAfterViewInit(){var e=this;return B(function*(){yield e.createScene(),e.isPrintMeshLoaded=!0})()}onScaleChange(){this.previewMesh.updateSize(this.wantedWidth).then(e=>{this.qrCode.isVisible=e}),this.currentSize=this.previewMesh.getSize()}onFrontTextChange(){this.previewMesh.updateFrontText(this.frontText)}onFileSelected(e){const i=e.target.files[0];if(i){this.isFileSelected=!0;const r=new FileReader;r.readAsDataURL(i),r.onload=()=>{this.previewMesh.addCustomLogo(r.result)}}else this.isFileSelected=!1}onRotateLogo(){this.previewMesh.rotateCustomLogo()}onFlipLogo(){this.previewMesh.flipCustomLogo()}onRemoveLogo(){this.isFileSelected=!1,this.fileInput.nativeElement.value="",this.previewMesh.removeCustomLogo()}onSelectedPrinterChange(){const e=this.selectedPrinter.numberOfColors;this.currentNumberOfColors!==e&&(this.previewMesh.updateNumberOfColors(e),this.currentNumberOfColors=e),this.makeMapMaxSize(),this.updateCameraPosition(this.printPreviewScene.getObjectByName("camera"))}onLogoColorChange(e){this.logoColor=e,this.previewMesh.updateCustomLogoColor(this.logoColor)}onQrCodeTextChange(){this.onTextChange(this.qrCode),this.previewMesh.updateQrCodeText(this.qrCode.currentText),this.previewMesh.updateQrCodeVisibility(this.qrCode.isVisible)}onQrCodeVisibilityChange(e){this.qrCode.isVisible!==e.checked&&(this.qrCode.isVisible=e.checked,this.previewMesh.updateQrCodeVisibility(this.qrCode.isVisible))}onSecondRowTextChange(){this.onTextChange(this.secondRow),this.previewMesh.updateSecondRowText(this.secondRow.currentText),this.previewMesh.updateSecondRowVisibility(this.secondRow.isVisible)}onSecondRowVisibilityChange(e){this.secondRow.isVisible!==e.checked&&(this.secondRow.isVisible=e.checked,this.previewMesh.updateSecondRowVisibility(this.secondRow.isVisible))}onTextChange(e){""!==e.currentText?e.isVisible||(e.isVisible=!0):e.isVisible=!1}createScene(){var e=this;return B(function*(){const i=new MS;i.name="printPreviewScene",e.printPreviewScene=i,i.background=new an(15527388);const r=e.threeSceneService.scene.clone().children[3];r.name="lights",i.add(r);const o=new Ls(45,1.15,50,2e5);o.name="camera",o.up=new ie(0,0,1),i.add(o),e.initRenderer(i,o),e.previewMesh=new SHe(e.initGeometryOptions()),yield e.previewMesh.initialize(),e.currentSize=e.previewMesh.getSize(),i.add(e.previewMesh.getThreeMesh()),e.updateCameraPosition(o)})()}initRenderer(e,i){const r=this.getGL(),o=new at;r.getSize(o);const s=this.rendererContainer.nativeElement.offsetWidth;r.setSize(s,o.y*(s/o.x),!0),this.rendererContainer.nativeElement.appendChild(r.domElement);const l=new jL(i,r.domElement),c=function(){requestAnimationFrame(c),l.update(),r.render(e,i)};c()}getGL(){return new CS}updateCameraPosition(e){e.position.set(.2*-this.currentSize.x,1.2*-this.currentSize.y,3*this.currentSize.z)}download3MFFile(){var e=this;return B(function*(){const i=yield function nHe(n){return b5.apply(this,arguments)}(e.printPreviewScene.getObjectByName("PrintMesh"));e.downloadFile(i,"3mf")})()}makeMapMaxSize(){this.wantedWidth=Jte(new ie(this.selectedPrinter.x,this.selectedPrinter.y,this.selectedPrinter.z),this.threeSceneService.getMapMesh().getThreeMesh(),this.frontTextSize,this.baseplateHeight,this.mapSideOffset),this.previewMesh.updateSize(this.wantedWidth).then(e=>{this.qrCode.isVisible=e}),this.currentSize=this.previewMesh.getSize(),this.maxWidth=this.currentSize.x}downloadStlFile(){const e=(new F7e).parse(this.previewMesh.getMapMesh(),{binary:!0});this.downloadFile(e,"stl")}initGeometryOptions(){const e=this.state.getValue().fileSettings.attributeDescriptors,i=ob,r=e[this.areaMetric]?.title||i.get(this.areaMetric),o=e[this.heightMetric]?.title||i.get(this.heightMetric),s=e[this.colorMetric]?.title||i.get(this.colorMetric);return{originalMapMesh:this.threeSceneService.getMapMesh().getThreeMesh(),width:this.wantedWidth,areaMetricTitle:r,areaMetricData:this.nodeMetricData.find(a=>a.name===this.areaMetric),heightMetricTitle:o,heightMetricData:this.nodeMetricData.find(a=>a.name===this.heightMetric),colorMetricTitle:s,colorMetricData:this.nodeMetricData.find(a=>a.name===this.colorMetric),colorRange:this.state.getValue().dynamicSettings.colorRange,frontText:this.frontText,secondRowText:this.secondRow.currentText,secondRowVisible:this.secondRow.isVisible,qrCodeText:this.qrCode.currentText,defaultMaterial:this.threeSceneService.getMapMesh().getThreeMesh().material[0].clone(),numberOfColors:this.currentNumberOfColors,layerHeight:this.layerHeight,frontTextSize:this.frontTextSize,secondRowTextSize:this.secondRowTextSize,printHeight:this.frontPrintDepth,mapSideOffset:this.mapSideOffset,baseplateHeight:this.baseplateHeight,logoSize:this.logoSize}}downloadFile(e,i){const r=bh(this.state.getValue()),o=Bc(this.state.getValue()).unifiedFileMeta?.fileName,s=`${Em.getNewFileName(o,Jd(r))}.${i}`;MO.downloadData(e,s)}static{this.\u0275fac=function(i){return new(i||n)($(jr),$(Pc))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-export-3D-map-dialog"]],viewQuery:function(i,r){if(1&i&&(ei(THe,5),ei(IHe,5)),2&i){let o;un(o=hn())&&(r.rendererContainer=o.first),un(o=hn())&&(r.fileInput=o.first)}},inputs:{logoColor:"logoColor"},decls:84,vars:25,consts:[["rendererContainer",""],["slider",""],["fileInput",""],["color","primary"],[1,"cc-export-3D-map-dialog"],[1,"preview"],["appearance","outline",1,"cc-export-3D-map-dialog-content"],["appearance","outline"],["data-testid","selectPrinter",3,"selectionChange","valueChange","value"],["data-testid","selectedPrinter",3,"value"],["appearance","outlined"],[1,"slider-container"],["data-testid","onScaleChange","discrete","true","min","100","step","1",3,"change","max"],["matSliderThumb","",3,"ngModelChange","ngModel"],["data-testid","printSizeOverview"],["matInput","","data-testid","frontText",3,"ngModelChange","input","ngModel","placeholder"],[1,"cc-manual-visibility-content"],["data-testid","secondRowToggle",3,"change","checked"],["appearance","outline",3,"hidden"],["matInput","","data-testid","secondRowText",3,"ngModelChange","input","ngModel"],["data-testid","qrCodeToggle",3,"change","checked"],["matInput","","data-testid","qrCodeText",3,"ngModelChange","input","ngModel"],["type","file","accept",".svg",1,"cc-file-input",3,"change"],["mat-button","","title","Remove Logo Button",3,"click","hidden"],[1,"fa","fa-times"],[3,"hidden"],["mat-button","","title","Rotate Logo Button",3,"click"],[1,"fa","fa-rotate-right"],["mat-button","","title","Flip Logo Button",3,"click"],[1,"fa","fa-arrows-h"],[3,"onColorChange","hexColor","labels"],["align","end"],["mat-button","","title","Download 3MF Button",3,"click","disabled"],[1,"fa","fa-download"],["mat-button","","title","Download Stl Button",3,"click","disabled"],[1,"cc-printer-specs"]],template:function(i,r){if(1&i){const o=Pn();P(0,"mat-toolbar",3),we(1,"3D Print CodeCharta Map"),H(),P(2,"div",4),xe(3,"div",5,0),P(5,"mat-dialog-content",6)(6,"mat-form-field",7)(7,"mat-label"),we(8,"Printer preset"),H(),P(9,"mat-select",8),We("selectionChange",function(){return Vt(o),Ot(r.onSelectedPrinterChange())}),td("valueChange",function(a){return Vt(o),jd(r.selectedPrinter,a)||(r.selectedPrinter=a),Ot(a)}),P(10,"mat-select-trigger"),we(11),H(),Rr(12,DHe,4,6,"mat-option",9,Hr),H()(),P(14,"mat-card",10)(15,"mat-card-header"),we(16,"Scale:"),H(),P(17,"mat-card-content")(18,"div",11)(19,"mat-slider",12),We("change",function(){return Vt(o),Ot(r.onScaleChange())}),P(20,"input",13,1),td("ngModelChange",function(a){return Vt(o),jd(r.wantedWidth,a)||(r.wantedWidth=a),Ot(a)}),H()()(),P(22,"div",14)(23,"span"),we(24),H(),xe(25,"br"),P(26,"span"),we(27),H(),xe(28,"br"),P(29,"span"),we(30),H()()()(),P(31,"mat-form-field",7)(32,"mat-label"),we(33,"Bottom center label text"),H(),P(34,"input",15),td("ngModelChange",function(a){return Vt(o),jd(r.frontText,a)||(r.frontText=a),Ot(a)}),We("input",function(){return Vt(o),Ot(r.onFrontTextChange())}),H()(),P(35,"mat-card",10)(36,"mat-card-header"),we(37,"Second row center text"),H(),P(38,"mat-card-content",16)(39,"mat-slide-toggle",17),We("change",function(a){return Vt(o),Ot(r.onSecondRowVisibilityChange(a))}),we(40," Show second row text "),H(),P(41,"mat-form-field",18)(42,"mat-label"),we(43,"Text"),H(),P(44,"input",19),td("ngModelChange",function(a){return Vt(o),jd(r.secondRow.currentText,a)||(r.secondRow.currentText=a),Ot(a)}),We("input",function(){return Vt(o),Ot(r.onSecondRowTextChange())}),H()()()(),P(45,"mat-card",10)(46,"mat-card-header"),we(47,"QR-Code"),H(),P(48,"mat-card-content",16)(49,"mat-slide-toggle",20),We("change",function(a){return Vt(o),Ot(r.onQrCodeVisibilityChange(a))}),we(50," Show QR-Code "),H(),P(51,"mat-form-field",18)(52,"mat-label"),we(53,"QR-Code text"),H(),P(54,"input",21),td("ngModelChange",function(a){return Vt(o),jd(r.qrCode.currentText,a)||(r.qrCode.currentText=a),Ot(a)}),We("input",function(){return Vt(o),Ot(r.onQrCodeTextChange())}),H()()()(),P(55,"mat-card",10)(56,"mat-card-header"),we(57,"Bottom left logo (SVG):"),H(),P(58,"mat-card-content")(59,"input",22,2),We("change",function(a){return Vt(o),Ot(r.onFileSelected(a))}),H(),P(61,"button",23),We("click",function(){return Vt(o),Ot(r.onRemoveLogo())}),P(62,"span"),xe(63,"i",24),we(64," Remove Logo"),H()(),P(65,"div",25)(66,"button",26),We("click",function(){return Vt(o),Ot(r.onRotateLogo())}),P(67,"span"),xe(68,"i",27),we(69," Rotate Logo"),H()(),P(70,"button",28),We("click",function(){return Vt(o),Ot(r.onFlipLogo())}),P(71,"span"),xe(72,"i",29),we(73," Flip Logo"),H()(),P(74,"cc-labelled-color-picker",30),We("onColorChange",function(a){return Vt(o),Ot(r.onLogoColorChange(a))}),H()()()()(),P(75,"mat-dialog-actions",31)(76,"button",32),We("click",function(){return Vt(o),Ot(r.download3MFFile())}),P(77,"span"),xe(78,"i",33),we(79," Download 3MF"),H()(),P(80,"button",34),We("click",function(){return Vt(o),Ot(r.downloadStlFile())}),P(81,"span"),xe(82,"i",33),we(83," Download minimal STL"),H()()()()}2&i&&(U(9),ed("value",r.selectedPrinter),U(2),cn(" ",r.selectedPrinter.name," "),U(),Lr(r.printers),U(7),pe("max",r.maxWidth),U(),ed("ngModel",r.wantedWidth),U(4),lh("Width: ",(r.currentSize.x/10).toFixed(1),"cm (max. ",(r.selectedPrinter.x/10).toFixed(1),")"),U(3),lh("Depth: ",(r.currentSize.y/10).toFixed(1),"cm (max. ",(r.selectedPrinter.y/10).toFixed(1),")"),U(3),lh("Height: ",(r.currentSize.z/10).toFixed(1),"cm (max. ",(r.selectedPrinter.z/10).toFixed(1),")"),U(4),ed("ngModel",r.frontText),pe("placeholder","CodeCharta"),U(5),pe("checked",r.secondRow.isVisible),U(2),pe("hidden",r.secondRow.isVisible),U(3),ed("ngModel",r.secondRow.currentText),U(5),pe("checked",r.qrCode.isVisible),U(2),pe("hidden",r.qrCode.isVisible),U(3),ed("ngModel",r.qrCode.currentText),U(7),pe("hidden",!r.isFileSelected),U(4),pe("hidden",!r.isFileSelected),U(9),pe("hexColor",r.logoColor)("labels",ch(24,FHe)),U(2),pe("disabled",!r.isPrintMeshLoaded),U(4),pe("disabled",!r.isPrintMeshLoaded))},dependencies:[yd,vd,Bm,YZ,ru,vs,ud,Ec,Nw,AZ,gZ,UA,km,xJ,PT,cb,Yf,L0,N0,uO],styles:[".cc-printer-specs[_ngcontent-%COMP%]{color:#888}.cc-file-input[_ngcontent-%COMP%]{margin-top:16px}"]})}}return n})(),kHe=(()=>{class n{constructor(e,i,r){this.dialog=e,this.state=i,this.store=r}export3DMap(){this.state.getValue().dynamicSettings.colorMode!==sm.absolute?this.dialog.open(nA,{data:this.buildErrorDialog()}):this.dialog.open(ene,{panelClass:"cc-export-3D-map-dialog"})}buildErrorDialog(){return{title:"Map could not be exported",message:'

    3D map can only be exported when color mode is set to absolute.
    You can change this under Color Metric Options or use "Change and continue" to directly change the color mode and continue.

    ',resolveErrorData:{buttonText:"Change and continue",onResolveErrorClick:()=>{this.store.dispatch(Q0({value:sm.absolute})),this.store.select(VJ).pipe(zo(1)).subscribe(s=>{s===sm.absolute&&setTimeout(()=>{this.dialog.open(ene,{panelClass:"cc-export-3D-map-dialog"})},100)})}}}}static{this.\u0275fac=function(i){return new(i||n)($(Ws),$(jr),$(Xt))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-export-3d-map-button"]],decls:1,vars:1,consts:[["title","Download 3MF code file",3,"click","icon"]],template:function(i,r){1&i&&(P(0,"cc-action-icon",0),We("click",function(){return r.export3DMap()}),H()),2&i&&pe("icon","fa fa-print")},dependencies:[VA],encapsulation:2})}}return n})();const OHe=Zt(bh,n=>pG(n)),tne=Zt(Gs,rb,Sm,Pw,(n,t,e,i)=>((n,t)=>t.every(e=>((n,t)=>n.some(e=>e.name===t))(n,e)))(n.nodeMetricData,[t,e,i])),NHe=Zt(tc,n=>(n=>Object.entries(n).every(([t,e])=>((n,t)=>"edgeMetric"===n||null!==t&&("object"!=typeof t||Object.values(t).every(e=>null!==e)))(t,e)))(n)),UHe=(Zt(Gs,OHe,tne,NHe,(n,t,e,i)=>!(null===n.nodeMetricData||!t||!e||!i)),n=>n.some(t=>"rloc"===t.name)?"rloc":"unary"),HHe=["rloc","real_lines_of_code","loc","lines_of_code","lines","statements","functions"],nne=["complexity","mcc","cognitive_complexity","sonar_complexity","sonar_cognitive_complexity","max_nesting_level","indentation_level"];function VHe(n){return n.some(t=>t.maxValue>0)}let qHe=(()=>{class n{constructor(e){this.store=e,this.resetChosenDistributionMetric$=ho(()=>this.store.select(Gs).pipe(Ge(i=>i.nodeMetricData),Vi(VHe),od(this.store.select(tne)),Vi(([,i])=>!i),Dr(([i])=>{ine(this.store,i)})),{dispatch:!1})}static{this.\u0275fac=function(i){return new(i||n)(ge(Xt))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac})}}return n})();function ine(n,t){n.dispatch(h1({value:UHe(t)}));let[e,i,r]=function zHe(n){const t=[],e={AreaMetric:HHe,HeightMetric:nne,ColorMetric:nne},i=new Set(n.map(r=>r.name));for(const r in e)for(const o of e[r])if(i.has(o)){t.push(o);break}return t}(t);(!e||!i||!r)&&([e,i,r]=function QHe(n,t){const e=[];let i;for(const r of n)if(r.maxValue&&(e.push(r.name),i=r.name,0==--t))return e;if(!i)throw new Error("there are no metrics available");for(;t-- >0;)e.push(i);return e}(t,3)),n.dispatch(Ah({value:e})),n.dispatch(_h({value:i})),n.dispatch(ld({value:r}))}let GHe=(()=>{class n{constructor(e,i,r,o){this.store=e,this.httpClient=i,this.loadFileService=r,this.loadInitialFileService=o,this.urlUtils=new fj(this.httpClient)}resetMap(){var e=this;return B(function*(){if(yield function A_e(){return vP.apply(this,arguments)}(),e.store.dispatch(lb({value:NJ})),e.loadInitialFileService.checkFileQueryParameterPresent())try{const r=yield e.urlUtils.getFileDataFromQueryParam();e.loadFileService.loadFiles(r),e.loadInitialFileService.setRenderStateFromUrl()}catch{e.loadFileService.loadFiles([H2,V2])}else e.loadFileService.loadFiles([H2,V2]);e.resetMetrics()})()}resetMetrics(){this.store.select(Gs).pipe(Uw(),Dr(e=>{ine(this.store,e.nodeMetricData)})).subscribe()}static{this.\u0275fac=function(i){return new(i||n)($(Xt),$(Ly),$(t_),$(YR))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-confirm-reset-map-dialog"]],decls:12,vars:0,consts:[["xmlns","http://www.w3.org/1999/html",1,"header"],[1,"dialog-content"],["mat-button","","mat-dialog-close",""],["mat-button","","mat-dialog-close","","cdkFocusInitial","",3,"click"]],template:function(i,r){1&i&&(P(0,"mat-toolbar",0)(1,"h2"),we(2,"Confirm reset map to default"),H()(),P(3,"mat-dialog-content")(4,"div",1)(5,"p"),we(6,"Uploaded maps, selected metrics and settings are reset to default"),H()()(),P(7,"mat-dialog-actions")(8,"button",2),we(9,"No"),H(),P(10,"button",3),We("click",function(){return r.resetMap()}),we(11,"Yes"),H()())},dependencies:[vs,Mc,ud,Ec,UA],encapsulation:2})}}return n})(),WHe=(()=>{class n{constructor(e){this.dialog=e}showConfirmResetStateDialog(){this.dialog.open(GHe,{panelClass:"cc-confirm-reset-map-dialog"})}static{this.\u0275fac=function(i){return new(i||n)($(Ws))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-reset-map-button"]],decls:1,vars:1,consts:[["title","Reset map to default",3,"click","icon"]],template:function(i,r){1&i&&(P(0,"cc-action-icon",0),We("click",function(){return r.showConfirmResetStateDialog()}),H()),2&i&&pe("icon","fa fa-undo")},dependencies:[VA],encapsulation:2})}}return n})();const $He=Zt(eb,n=>`linear-gradient(${n.positiveDelta} 50%, ${n.negativeDelta} 50%)`);function jHe(n,t){if(1&n&&(P(0,"mat-option",2),we(1),$e(2,"removeExtension"),H()),2&n){const e=t.$implicit;pe("value",e.file),U(),cn(" ",rt(2,2,e.file.fileMeta.fileName)," ")}}function XHe(n,t){if(1&n&&(P(0,"mat-option",2),we(1),$e(2,"removeExtension"),H()),2&n){const e=t.$implicit;pe("value",e.file),U(),cn(" ",rt(2,2,e.file.fileMeta.fileName)," ")}}let KHe=(()=>{class n{constructor(e){this.store=e,this.files$=this.store.select(bh),this.referenceFile$=this.store.select(qW),this.comparisonFile$=this.files$.pipe(Ge(i=>i.find(r=>r.selectedAs===Zi.Comparison)?.file)),this.possibleComparisonFiles$=this.files$.pipe(Ge(i=>i.filter(r=>r.selectedAs!==Zi.Reference))),this.pictogramBackground$=this.store.select($He)}handleDeltaReferenceFileChange(e){this.store.dispatch(DP({file:e}))}handleDeltaComparisonFileChange(e){this.store.dispatch(FP({file:e}))}switchReferenceAndComparison(){this.store.dispatch(IP())}static{this.\u0275fac=function(i){return new(i||n)($(Xt))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-file-panel-delta-selector"]],decls:16,vars:17,consts:[[1,"delta-select-wrapper"],["panelClass","cc-file-select",1,"delta-select",3,"selectionChange","value"],[3,"value"],["title","Switch reference and comparison file",1,"reference-comparison-switch",3,"click","disabled"],[1,"fa","fa-arrows-h"],["placeholder","select comparison file","panelClass","cc-file-select",1,"delta-select",3,"selectionChange","value"],[1,"pictogram"]],template:function(i,r){1&i&&(P(0,"div",0)(1,"mat-select",1),$e(2,"async"),We("selectionChange",function(s){return r.handleDeltaReferenceFileChange(s.value)}),Rr(3,jHe,3,4,"mat-option",2,Hr),$e(5,"async"),H(),P(6,"button",3),$e(7,"async"),We("click",function(){return r.switchReferenceAndComparison()}),xe(8,"i",4),H(),P(9,"mat-select",5),$e(10,"async"),We("selectionChange",function(s){return r.handleDeltaComparisonFileChange(s.value)}),Rr(11,XHe,3,4,"mat-option",2,Hr),$e(13,"async"),H(),xe(14,"div",6),$e(15,"async"),H()),2&i&&(U(),pe("value",rt(2,5,r.referenceFile$)),U(2),Lr(rt(5,7,r.files$)),U(3),pe("disabled",void 0===rt(7,9,r.comparisonFile$)),U(3),pe("value",rt(10,11,r.comparisonFile$)),U(2),Lr(rt(13,13,r.possibleComparisonFiles$)),U(3),Hi("background",rt(15,15,r.pictogramBackground$)))},dependencies:[Bm,ru,Yn,ZL],styles:[".delta-select-wrapper[_ngcontent-%COMP%]{display:flex;gap:12px}.delta-select[_ngcontent-%COMP%]{width:200px;font-size:10pt}.reference-comparison-switch[_ngcontent-%COMP%]{background-color:#1b9cfc;margin:0;height:24px;width:36px;border-radius:5px}.reference-comparison-switch[disabled][_ngcontent-%COMP%]{background-color:#ccc}.reference-comparison-switch[_ngcontent-%COMP%]:hover{background-color:#0374c9}.reference-comparison-switch[_ngcontent-%COMP%]:hover[disabled]{background-color:#ccc}.reference-comparison-switch[_ngcontent-%COMP%] .fa[_ngcontent-%COMP%]{vertical-align:middle;color:#fff}.pictogram[_ngcontent-%COMP%]{display:inline-flex;width:10px;margin-right:5px;margin-left:5px;height:22px;border-radius:2px;align-self:center;vertical-align:bottom}"]})}}return n})(),YHe=(()=>{class n{constructor(e){this.store=e}onRemoveFile(e,i){this.store.dispatch(MP({fileName:e})),i.stopPropagation(),i.preventDefault()}static{this.\u0275fac=function(i){return new(i||n)($(Xt))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-remove-file-button"]],inputs:{filename:"filename"},decls:2,vars:0,consts:[["title","Remove map",3,"click"],[1,"fa","fa-trash","delete-symbol"]],template:function(i,r){1&i&&(P(0,"button",0),We("click",function(s){return r.onRemoveFile(r.filename,s)}),xe(1,"i",1),H())},styles:["button[_ngcontent-%COMP%]{padding:8px 10px}button[_ngcontent-%COMP%]:hover{border-radius:50%}"]})}}return n})();function ZHe(n,t){1&n&&xe(0,"cc-remove-file-button",4),2&n&&pe("filename",He().$implicit.file.fileMeta.fileName)}function JHe(n,t){if(1&n&&(P(0,"mat-option",3),we(1),$e(2,"removeExtension"),At(3,ZHe,1,1,"cc-remove-file-button",4),H()),2&n){const e=t.$implicit,i=He();pe("value",e.file),U(),cn(" ",rt(2,3,e.file.fileMeta.fileName)," "),U(2),It(3,i.fileStates.length>1?3:-1)}}let e9e=(()=>{class n{constructor(e){this.store=e,this.fileStates=[],this.selectedFilesInUI=[],this.selectedFilesInStore=[],this.filesSubscription=this.store.select(bh).subscribe(i=>{this.fileStates=i,this.selectedFilesInStore=i.filter(r=>r.selectedAs===Zi.Partial).map(r=>r.file),this.selectedFilesInUI=this.selectedFilesInStore})}ngOnDestroy(){this.filesSubscription.unsubscribe()}handleSelectedFilesChanged(e){this.selectedFilesInUI=e,e.length>0&&this.store.dispatch(_1({files:e}))}handleOpenedChanged(e){e||(this.selectedFilesInUI=this.selectedFilesInStore)}handleSelectZeroFiles(){this.selectedFilesInUI=[]}handleInvertSelectedFiles(){this.selectedFilesInUI.length===this.fileStates.length?this.selectedFilesInUI=[]:this.store.dispatch(TP())}handleSelectAllFiles(){this.store.dispatch(SP())}static{this.\u0275fac=function(i){return new(i||n)($(Xt))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-file-panel-file-selector"]],decls:10,vars:1,consts:[["panelClass","cc-file-select","multiple","",1,"cc-standard-select",3,"valueChange","selectionChange","openedChange","value"],[1,"cc-file-selection-actions"],[1,"cc-file-select-action-button",3,"click"],[1,"cc-file-name",3,"value"],[3,"filename"]],template:function(i,r){1&i&&(P(0,"mat-select",0),td("valueChange",function(s){return jd(r.selectedFilesInUI,s)||(r.selectedFilesInUI=s),s}),We("selectionChange",function(s){return r.handleSelectedFilesChanged(s.value)})("openedChange",function(s){return r.handleOpenedChanged(s)}),P(1,"div",1)(2,"button",2),We("click",function(){return r.handleSelectAllFiles()}),we(3,"All"),H(),P(4,"button",2),We("click",function(){return r.handleSelectZeroFiles()}),we(5,"None"),H(),P(6,"button",2),We("click",function(){return r.handleInvertSelectedFiles()}),we(7,"Invert"),H()(),Rr(8,JHe,4,5,"mat-option",3,Hr),H()),2&i&&(ed("value",r.selectedFilesInUI),U(8),Lr(r.fileStates))},dependencies:[Bm,ru,YHe,ZL],styles:[".cc-standard-select[_ngcontent-%COMP%]{width:200px;font-size:10pt}"]})}}return n})();function I5(){return le((n,t)=>{let e,i=!1;n.subscribe(Be(t,r=>{const o=e;e=r,i&&t.next([o,r]),i=!0}))})}let rne=(()=>{class n{constructor(e,i){this.store=e,this.state=i,this.lastSetFilesOfPreviousMode=[],this.subscription=this.store.select(bh).pipe(I5(),Vi(([r,o])=>Jd(r)!==Jd(o)||0===o.length),Dr(([r,o])=>{this.lastSetFilesOfPreviousMode=0===o.length?o:r})).subscribe()}ngOnDestroy(){this.subscription.unsubscribe()}toggle(){if(0===this.lastSetFilesOfPreviousMode.length||Jd(this.lastSetFilesOfPreviousMode)){const i=bh(this.state.getValue());this.lastSetFilesOfPreviousMode=this.filterNoneExisting(i,this.lastSetFilesOfPreviousMode);const r=this.lastSetFilesOfPreviousMode.find(s=>s.selectedAs===Zi.Reference)??i.find(s=>s.selectedAs===Zi.Partial),o=this.lastSetFilesOfPreviousMode.find(s=>s.selectedAs===Zi.Comparison);this.store.dispatch(e2({referenceFile:r.file,comparisonFile:o?.file}))}else this.store.dispatch(g1({value:this.lastSetFilesOfPreviousMode}))}filterNoneExisting(e,i){return i.filter(r=>e.find(o=>WE(o.file,r.file)))}static{this.\u0275fac=function(i){return new(i||n)(ge(Xt),ge(jr))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac})}}return n})(),t9e=(()=>{class n{constructor(e,i){this.store=e,this.fileSelectionModeService=i,this.isDeltaState$=this.store.select(Im)}static{this.\u0275fac=function(i){return new(i||n)($(Xt),$(rne))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-file-panel-state-buttons"]],decls:10,vars:14,consts:[["mat-button","",1,"state-selector-button","left",3,"click","disabled"],[1,"text"],["mat-button","",1,"state-selector-button","right",3,"click","disabled"]],template:function(i,r){1&i&&(P(0,"button",0),$e(1,"async"),$e(2,"async"),We("click",function(){return r.fileSelectionModeService.toggle()}),P(3,"span",1),we(4,"Standard"),H()(),P(5,"button",2),$e(6,"async"),$e(7,"async"),We("click",function(){return r.fileSelectionModeService.toggle()}),P(8,"span",1),we(9,"Delta"),H()()),2&i&&(Qn("current",!rt(1,6,r.isDeltaState$)),pe("disabled",!rt(2,8,r.isDeltaState$)),U(5),Qn("current",rt(6,10,r.isDeltaState$)),pe("disabled",rt(7,12,r.isDeltaState$)))},dependencies:[vs,Yn],styles:[".state-selector-button[_ngcontent-%COMP%]{height:24px;width:66px;margin:0;padding:0;background-color:#fff;font-size:10pt}.state-selector-button[_ngcontent-%COMP%]:hover{background-color:#e6e6e6f5}.state-selector-button.left[_ngcontent-%COMP%]{border-radius:5px 0 0 5px}.state-selector-button.right[_ngcontent-%COMP%]{border-radius:0 5px 5px 0}.state-selector-button.current[_ngcontent-%COMP%]{background-color:#1b9cfc;color:#fff}.state-selector-button.current[_ngcontent-%COMP%]:hover{background-color:#1b9cfc}"]})}}return n})();function n9e(n,t){1&n&&xe(0,"cc-file-panel-file-selector")}function i9e(n,t){1&n&&xe(0,"cc-file-panel-delta-selector")}let r9e=(()=>{class n{constructor(e){this.store=e,this.isDeltaState$=this.store.select(Im)}static{this.\u0275fac=function(i){return new(i||n)($(Xt))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-file-panel"]],decls:4,vars:3,template:function(i,r){1&i&&(xe(0,"cc-file-panel-state-buttons"),At(1,n9e,1,0,"cc-file-panel-file-selector"),$e(2,"async"),At(3,i9e,1,0)),2&i&&(U(),It(1,rt(2,1,r.isDeltaState$)?3:1))},dependencies:[KHe,e9e,t9e,Yn],styles:["[_nghost-%COMP%]{display:flex;gap:inherit}.hidden[_nghost-%COMP%]{display:none}"]})}}return n})();const o9e=Zt(JZ,n=>n&&{path:n.path.slice(1).split("/"),isFile:"File"===n.type});function s9e(n,t){if(1&n&&xe(0,"i",2),2&n){const e=He(2);Qn("fa-file-o",e.isFile)("fa-folder",!e.isFile)}}function a9e(n,t){1&n&&xe(0,"i",1)}function l9e(n,t){if(1&n&&(P(0,"span"),At(1,s9e,1,4,"i",0),P(2,"span"),we(3),H(),At(4,a9e,1,0,"i",1),H()),2&n){const e=t.$implicit,i=t.$index,r=t.$count;U(),It(1,i===r-1?1:-1),U(),Qn("bold",i===r-1),U(),Mr(e),U(),It(4,i!==r-1?4:-1)}}function c9e(n,t){1&n&&Rr(0,l9e,5,5,"span",null,Hr),2&n&&Lr(t.path)}let d9e=(()=>{class n{constructor(e){this.store=e,this.hoveredNodePathPanelData$=this.store.select(o9e)}static{this.\u0275fac=function(i){return new(i||n)($(Xt))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-hovered-node-path-panel"]],decls:2,vars:3,consts:[[1,"fa",3,"fa-file-o","fa-folder"],[1,"fa","fa-angle-right"],[1,"fa"]],template:function(i,r){if(1&i&&(At(0,c9e,2,0),$e(1,"async")),2&i){let o;It(0,(o=rt(1,1,r.hoveredNodePathPanelData$))?0:-1,o)}},dependencies:[Yn],styles:["[_nghost-%COMP%]{width:100%;min-width:400px;display:inline-block;vertical-align:middle;margin:0 8px;font-size:10pt;overflow:hidden;white-space:nowrap}[_nghost-%COMP%] .bold[_ngcontent-%COMP%]{font-weight:600}[_nghost-%COMP%] i[_ngcontent-%COMP%]{margin:0 4px}"]})}}return n})();const u9e=Zt(no,n=>n.isLoadingMap),h9e=["determinateSpinner"];function f9e(n,t){if(1&n&&(kl(),P(0,"svg",11),xe(1,"circle",12),H()),2&n){const e=He();fi("viewBox",e._viewBox()),U(),Hi("stroke-dasharray",e._strokeCircumference(),"px")("stroke-dashoffset",e._strokeCircumference()/2,"px")("stroke-width",e._circleStrokeWidth(),"%"),fi("r",e._circleRadius())}}const m9e=new ut("mat-progress-spinner-default-options",{providedIn:"root",factory:function p9e(){return{diameter:one}}}),one=100;let sne=(()=>{class n{get color(){return this._color||this._defaultColor}set color(e){this._color=e}constructor(e,i,r){this._elementRef=e,this._defaultColor="primary",this._value=0,this._diameter=one,this._noopAnimations="NoopAnimations"===i&&!!r&&!r._forceAnimations,this.mode="mat-spinner"===e.nativeElement.nodeName.toLowerCase()?"indeterminate":"determinate",r&&(r.color&&(this.color=this._defaultColor=r.color),r.diameter&&(this.diameter=r.diameter),r.strokeWidth&&(this.strokeWidth=r.strokeWidth))}get value(){return"determinate"===this.mode?this._value:0}set value(e){this._value=Math.max(0,Math.min(100,e||0))}get diameter(){return this._diameter}set diameter(e){this._diameter=e||0}get strokeWidth(){return this._strokeWidth??this.diameter/10}set strokeWidth(e){this._strokeWidth=e||0}_circleRadius(){return(this.diameter-10)/2}_viewBox(){const e=2*this._circleRadius()+this.strokeWidth;return`0 0 ${e} ${e}`}_strokeCircumference(){return 2*Math.PI*this._circleRadius()}_strokeDashOffset(){return"determinate"===this.mode?this._strokeCircumference()*(100-this._value)/100:null}_circleStrokeWidth(){return this.strokeWidth/this.diameter*100}static{this.\u0275fac=function(i){return new(i||n)($(Vn),$(ps,8),$(m9e))}}static{this.\u0275cmp=vt({type:n,selectors:[["mat-progress-spinner"],["mat-spinner"]],viewQuery:function(i,r){if(1&i&&ei(h9e,5),2&i){let o;un(o=hn())&&(r._determinateCircle=o.first)}},hostAttrs:["role","progressbar","tabindex","-1",1,"mat-mdc-progress-spinner","mdc-circular-progress"],hostVars:18,hostBindings:function(i,r){2&i&&(fi("aria-valuemin",0)("aria-valuemax",100)("aria-valuenow","determinate"===r.mode?r.value:null)("mode",r.mode),nl("mat-"+r.color),Hi("width",r.diameter,"px")("height",r.diameter,"px")("--mdc-circular-progress-size",r.diameter+"px")("--mdc-circular-progress-active-indicator-width",r.diameter+"px"),Qn("_mat-animation-noopable",r._noopAnimations)("mdc-circular-progress--indeterminate","indeterminate"===r.mode))},inputs:{color:"color",mode:"mode",value:[Ct.HasDecoratorInputTransform,"value","value",ha],diameter:[Ct.HasDecoratorInputTransform,"diameter","diameter",ha],strokeWidth:[Ct.HasDecoratorInputTransform,"strokeWidth","strokeWidth",ha]},exportAs:["matProgressSpinner"],standalone:!0,features:[es,Or],decls:14,vars:11,consts:[["circle",""],["determinateSpinner",""],["aria-hidden","true",1,"mdc-circular-progress__determinate-container"],["xmlns","http://www.w3.org/2000/svg","focusable","false",1,"mdc-circular-progress__determinate-circle-graphic"],["cx","50%","cy","50%",1,"mdc-circular-progress__determinate-circle"],["aria-hidden","true",1,"mdc-circular-progress__indeterminate-container"],[1,"mdc-circular-progress__spinner-layer"],[1,"mdc-circular-progress__circle-clipper","mdc-circular-progress__circle-left"],[3,"ngTemplateOutlet"],[1,"mdc-circular-progress__gap-patch"],[1,"mdc-circular-progress__circle-clipper","mdc-circular-progress__circle-right"],["xmlns","http://www.w3.org/2000/svg","focusable","false",1,"mdc-circular-progress__indeterminate-circle-graphic"],["cx","50%","cy","50%"]],template:function(i,r){if(1&i&&(At(0,f9e,2,8,"ng-template",null,0,Qf),P(2,"div",2,1),kl(),P(4,"svg",3),xe(5,"circle",4),H()(),Hg(),P(6,"div",5)(7,"div",6)(8,"div",7),E0(9,8),H(),P(10,"div",9),E0(11,8),H(),P(12,"div",10),E0(13,8),H()()()),2&i){const o=Po(1);U(4),fi("viewBox",r._viewBox()),U(),Hi("stroke-dasharray",r._strokeCircumference(),"px")("stroke-dashoffset",r._strokeDashOffset(),"px")("stroke-width",r._circleStrokeWidth(),"%"),fi("r",r._circleRadius()),U(4),pe("ngTemplateOutlet",o),U(2),pe("ngTemplateOutlet",o),U(2),pe("ngTemplateOutlet",o)}},dependencies:[Sy],styles:["@keyframes mdc-circular-progress-container-rotate{to{transform:rotate(360deg)}}@keyframes mdc-circular-progress-spinner-layer-rotate{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}100%{transform:rotate(1080deg)}}@keyframes mdc-circular-progress-color-1-fade-in-out{from{opacity:.99}25%{opacity:.99}26%{opacity:0}89%{opacity:0}90%{opacity:.99}to{opacity:.99}}@keyframes mdc-circular-progress-color-2-fade-in-out{from{opacity:0}15%{opacity:0}25%{opacity:.99}50%{opacity:.99}51%{opacity:0}to{opacity:0}}@keyframes mdc-circular-progress-color-3-fade-in-out{from{opacity:0}40%{opacity:0}50%{opacity:.99}75%{opacity:.99}76%{opacity:0}to{opacity:0}}@keyframes mdc-circular-progress-color-4-fade-in-out{from{opacity:0}65%{opacity:0}75%{opacity:.99}90%{opacity:.99}to{opacity:0}}@keyframes mdc-circular-progress-left-spin{from{transform:rotate(265deg)}50%{transform:rotate(130deg)}to{transform:rotate(265deg)}}@keyframes mdc-circular-progress-right-spin{from{transform:rotate(-265deg)}50%{transform:rotate(-130deg)}to{transform:rotate(-265deg)}}.mdc-circular-progress{display:inline-flex;position:relative;direction:ltr;line-height:0;transition:opacity 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-circular-progress__determinate-container,.mdc-circular-progress__indeterminate-circle-graphic,.mdc-circular-progress__indeterminate-container,.mdc-circular-progress__spinner-layer{position:absolute;width:100%;height:100%}.mdc-circular-progress__determinate-container{transform:rotate(-90deg)}.mdc-circular-progress__indeterminate-container{font-size:0;letter-spacing:0;white-space:nowrap;opacity:0}.mdc-circular-progress__determinate-circle-graphic,.mdc-circular-progress__indeterminate-circle-graphic{fill:rgba(0,0,0,0)}.mdc-circular-progress__determinate-circle{transition:stroke-dashoffset 500ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-circular-progress__gap-patch{position:absolute;top:0;left:47.5%;box-sizing:border-box;width:5%;height:100%;overflow:hidden}.mdc-circular-progress__gap-patch .mdc-circular-progress__indeterminate-circle-graphic{left:-900%;width:2000%;transform:rotate(180deg)}.mdc-circular-progress__circle-clipper{display:inline-flex;position:relative;width:50%;height:100%;overflow:hidden}.mdc-circular-progress__circle-clipper .mdc-circular-progress__indeterminate-circle-graphic{width:200%}.mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{left:-100%}.mdc-circular-progress--indeterminate .mdc-circular-progress__determinate-container{opacity:0}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{opacity:1}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{animation:mdc-circular-progress-container-rotate 1568.2352941176ms linear infinite}.mdc-circular-progress--indeterminate .mdc-circular-progress__spinner-layer{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-1{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-1-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-2{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-2-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-3{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-3-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-4{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-4-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-left .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--closed{opacity:0}.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:var(--mdc-circular-progress-active-indicator-color)}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}.mat-mdc-progress-spinner circle{stroke-width:var(--mdc-circular-progress-active-indicator-width)}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-1 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-2 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-3 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-4 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}.mat-mdc-progress-spinner .mdc-circular-progress{width:var(--mdc-circular-progress-size) !important;height:var(--mdc-circular-progress-size) !important}.mat-mdc-progress-spinner{display:block;overflow:hidden;line-height:0}.mat-mdc-progress-spinner._mat-animation-noopable,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__determinate-circle{transition:none}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-circle-graphic,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__spinner-layer,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container{animation:none}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container circle{stroke-dasharray:0 !important}.cdk-high-contrast-active .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic,.cdk-high-contrast-active .mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle{stroke:currentColor;stroke:CanvasText}"],encapsulation:2,changeDetection:0})}}return n})(),ane=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[gn,hr]})}}return n})(),g9e=(()=>{class n{constructor(e){this.isLoadingMap$=e.select(u9e)}static{this.\u0275fac=function(i){return new(i||n)($(Xt))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-loading-map-progress-spinner"]],decls:2,vars:4,consts:[["id","loading-gif-map","mode","indeterminate","diameter","22","title","Rendering map"]],template:function(i,r){1&i&&(xe(0,"mat-progress-spinner",0),$e(1,"async")),2&i&&Hi("visibility",rt(1,2,r.isLoadingMap$)?"visible":"hidden")},dependencies:[sne,Yn],styles:["[_nghost-%COMP%]{display:inline-block;vertical-align:middle}"]})}}return n})();const _9e=Zt(no,n=>n.isPresentationMode);let b9e=(()=>{class n{constructor(e,i){this.store=e,this.elementReference=i,this.isPresentationModeEnabled$=this.store.select(_9e)}setPresentationModeEnabled(e){this.store.dispatch(PE({value:e.checked})),this.elementReference.nativeElement.querySelector("mat-slide-toggle").classList.remove("cdk-focused"),this.elementReference.nativeElement.querySelector("mat-slide-toggle").classList.remove("cdk-program-focused"),this.elementReference.nativeElement.querySelector("mat-slide-toggle").classList.remove("mat-mdc-slide-toggle-focused")}static{this.\u0275fac=function(i){return new(i||n)($(Xt),$(Vn))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-presentation-mode-button"]],decls:6,vars:6,consts:[["aria-label","Presentation Mode Toggle",1,"cc-presentation-mode-button",3,"change","checked","title"],[1,"presentation-mode-icon","fa","fa-television"]],template:function(i,r){1&i&&(P(0,"mat-slide-toggle",0),$e(1,"async"),$e(2,"async"),We("change",function(s){return r.setPresentationModeEnabled(s)}),xe(3,"i",1),P(4,"span"),we(5,"Presentation Mode"),H()()),2&i&&pe("checked",rt(1,2,r.isPresentationModeEnabled$))("title",rt(2,4,r.isPresentationModeEnabled$)?"Disable flashlight hover effect":"Enable flashlight hover effect")},dependencies:[cb,Yn],styles:["i[_ngcontent-%COMP%]{margin-right:4px}"]})}}return n})();const v9e=Zt(no,n=>n.experimentalFeaturesEnabled),y9e=Zt(no,n=>n.hideFlatBuildings),lne=Zt(no,n=>n.resetCameraIfNewFileIsLoaded),cne=Zt(no,n=>n.layoutAlgorithm),w9e=Zt(no,n=>n.maxTreeMapFiles);function x9e(n,t){if(1&n&&(P(0,"mat-option",2),we(1),H()),2&n){const e=t.$implicit;pe("value",e),U(),cn(" ",e," ")}}function C9e(n,t){if(1&n&&(xe(0,"cc-slider",3),$e(1,"async")),2&n){const e=He();pe("label","Maximum TreeMap Files")("min",1)("max",1e3)("value",rt(1,5,e.maxTreeMapFiles$))("onChange",e.handleChangeMaxTreeMapFiles)}}let M9e=(()=>{class n{constructor(e){this.store=e,this.layoutAlgorithms=Object.values(su),this.layoutAlgorithm$=this.store.select(cne),this.maxTreeMapFiles$=this.store.select(w9e),this.handleChangeMaxTreeMapFiles=yu(i=>{this.store.dispatch(a1({value:i}))},400)}handleSelectedLayoutAlgorithmChanged(e){this.store.dispatch(s1({value:e.value}))}static{this.\u0275fac=function(i){return new(i||n)($(Xt))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-map-layout-selection"]],decls:9,vars:6,consts:[["appearance","outline","subscriptSizing","dynamic"],[3,"selectionChange","value"],[3,"value"],[1,"cc-tree-maps-max-tree-map-files",3,"label","min","max","value","onChange"]],template:function(i,r){1&i&&(P(0,"mat-form-field",0)(1,"mat-label"),we(2,"Map Layout"),H(),P(3,"mat-select",1),$e(4,"async"),We("selectionChange",function(s){return r.handleSelectedLayoutAlgorithmChanged(s)}),Rr(5,x9e,2,2,"mat-option",2,Hr),H()(),At(7,C9e,2,7,"cc-slider",3),$e(8,"async")),2&i&&(U(3),pe("value",rt(4,2,r.layoutAlgorithm$)),U(2),Lr(r.layoutAlgorithms),U(2),It(7,"TreeMapStreet"===rt(8,4,r.layoutAlgorithm$)?7:-1))},dependencies:[yd,vd,Bm,ru,RT,Yn],encapsulation:2})}}return n})();function E9e(n,t){if(1&n&&(P(0,"mat-option",2),we(1),H()),2&n){const e=t.$implicit;pe("value",e),U(),cn(" ",e," ")}}let S9e=(()=>{class n{constructor(e){this.store=e,this.sharpnessModes=Object.values(iA),this.sharpnessMode$=this.store.select(mj)}handleSelectedSharpnessModeChanged(e){this.store.dispatch(l1({value:e.value}))}static{this.\u0275fac=function(i){return new(i||n)($(Xt))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-display-quality-selection"]],decls:7,vars:3,consts:[["appearance","outline","subscriptSizing","dynamic"],[3,"selectionChange","value"],[3,"value"]],template:function(i,r){1&i&&(P(0,"mat-form-field",0)(1,"mat-label"),we(2,"Display Quality"),H(),P(3,"mat-select",1),$e(4,"async"),We("selectionChange",function(s){return r.handleSelectedSharpnessModeChanged(s)}),Rr(5,E9e,2,2,"mat-option",2,Hr),H()()),2&i&&(U(3),pe("value",rt(4,1,r.sharpnessMode$)),U(2),Lr(r.sharpnessModes))},dependencies:[yd,vd,Bm,ru,Yn],encapsulation:2})}}return n})();const T9e=()=>["appSettings.hideFlatBuildings","appSettings.isWhiteBackground","appSettings.resetCameraIfNewFileIsLoaded","appSettings.layoutAlgorithm","appSettings.maxTreeMapFiles"];let I9e=(()=>{class n{constructor(e){this.store=e,this.screenshotToClipboardEnabled$=this.store.select(pte),this.experimentalFeaturesEnabled$=this.store.select(v9e),this.isWhiteBackground$=this.store.select(DY),this.hideFlatBuildings$=this.store.select(y9e),this.resetCameraIfNewFileIsLoaded$=this.store.select(lne)}handleResetCameraIfNewFileIsLoadedChanged(e){this.store.dispatch(OE({value:e.checked}))}handleHideFlatBuildingsChanged(e){this.store.dispatch(t1({value:e.checked}))}handleIsWhiteBackgroundChanged(e){this.store.dispatch(o1({value:e.checked}))}handleExperimentalFeaturesEnabledChanged(e){this.store.dispatch(kE({value:e.checked}))}handleScreenshotToClipboardEnabledChanged(e){this.store.dispatch(DE({value:e.checked}))}static{this.\u0275fac=function(i){return new(i||n)($(Xt))}}static{this.\u0275cmp=vt({type:n,selectors:[["ng-component"]],decls:36,vars:17,consts:[["xmlns","http://www.w3.org/1999/html",1,"header"],[1,"cc-global-configuration-dialog-content"],[3,"change","checked"],["tooltip","Reset global settings to their defaults","label","Reset global settings",3,"settingsKeys"],[1,"cc-global-configuration-links-list"],["href","https://github.com/MaibornWolff/codecharta/blob/main/README.md","target","_blank","rel","noopener noreferrer",1,"weblink"],[1,"fa","fa-external-link","icon-link"],["href","https://github.com/MaibornWolff/codecharta/","target","_blank","rel","noopener noreferrer",1,"weblink"],["href","https://github.com/MaibornWolff/codecharta/wiki","target","_blank","rel","noopener noreferrer",1,"weblink"],["align","end"],["mat-flat-button","","mat-dialog-close",""]],template:function(i,r){1&i&&(P(0,"mat-toolbar",0)(1,"h2"),we(2,"Global Configuration"),H()(),P(3,"mat-dialog-content")(4,"div",1),xe(5,"cc-map-layout-selection")(6,"cc-display-quality-selection"),P(7,"mat-slide-toggle",2),$e(8,"async"),We("change",function(s){return r.handleHideFlatBuildingsChanged(s)}),we(9," Hide Flattened Buildings "),H(),P(10,"mat-slide-toggle",2),$e(11,"async"),We("change",function(s){return r.handleResetCameraIfNewFileIsLoadedChanged(s)}),we(12," Reset Camera when changing map "),H(),P(13,"mat-slide-toggle",2),$e(14,"async"),We("change",function(s){return r.handleIsWhiteBackgroundChanged(s)}),we(15," White Background "),H(),P(16,"mat-slide-toggle",2),$e(17,"async"),We("change",function(s){return r.handleExperimentalFeaturesEnabledChanged(s)}),we(18," Enable Experimental Features "),H(),P(19,"mat-slide-toggle",2),$e(20,"async"),We("change",function(s){return r.handleScreenshotToClipboardEnabledChanged(s)}),we(21," Screenshot to clipboard "),H(),xe(22,"cc-reset-settings-button",3),P(23,"div",4)(24,"a",5),xe(25,"em",6),we(26,"How-to "),H(),P(27,"a",7),xe(28,"em",6),we(29,"Github "),H(),P(30,"a",8),xe(31,"em",6),we(32,"Wiki "),H()()()(),P(33,"mat-dialog-actions",9)(34,"button",10),we(35,"Close"),H()()),2&i&&(U(7),pe("checked",rt(8,6,r.hideFlatBuildings$)),U(3),pe("checked",rt(11,8,r.resetCameraIfNewFileIsLoaded$)),U(3),pe("checked",rt(14,10,r.isWhiteBackground$)),U(3),pe("checked",rt(17,12,r.experimentalFeaturesEnabled$)),U(3),pe("checked",rt(20,14,r.screenshotToClipboardEnabled$)),U(3),pe("settingsKeys",ch(16,T9e)))},dependencies:[vs,Mc,ud,Ec,UA,cb,Xw,M9e,S9e,Yn],styles:[".cc-global-configuration-dialog-content[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:26px}.cc-global-configuration-links-list[_ngcontent-%COMP%]{display:flex;gap:16px}.cc-global-configuration-links-list[_ngcontent-%COMP%] .weblink[_ngcontent-%COMP%]{display:block;color:#000000de;text-decoration:none}.cc-global-configuration-links-list[_ngcontent-%COMP%] .weblink[_ngcontent-%COMP%] .fa[_ngcontent-%COMP%]{margin:8px}"]})}}return n})(),F9e=(()=>{class n{constructor(e){this.dialog=e}showGlobalConfiguration(){this.dialog.open(I9e,{panelClass:"cc-global-configuration-dialog"})}static{this.\u0275fac=function(i){return new(i||n)($(Ws))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-global-configuration-button"]],decls:4,vars:1,consts:[["mat-button","","title","Global Configuration",3,"click"],[3,"icon"]],template:function(i,r){1&i&&(P(0,"button",0),We("click",function(){return r.showGlobalConfiguration()}),P(1,"span"),we(2,"Global Configuration"),H(),xe(3,"cc-action-icon",1),H()),2&i&&(U(3),pe("icon","fa fa-cog"))},dependencies:[vs,VA],styles:["button[_ngcontent-%COMP%]{margin:0}button[_ngcontent-%COMP%] cc-action-icon[_ngcontent-%COMP%]{margin-left:12px}button[_ngcontent-%COMP%]:hover cc-action-icon[_ngcontent-%COMP%]{background-color:#0374c9}span[_ngcontent-%COMP%]{font-size:10pt}"]})}}return n})();function D9e(n,t){1&n&&xe(0,"cc-file-panel")}function k9e(n,t){1&n&&xe(0,"cc-hovered-node-path-panel")}let B9e=(()=>{class n{constructor(e){this.store=e,this.hoveredNodeId$=this.store.select(kw)}static{this.\u0275fac=function(i){return new(i||n)($(Xt))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-tool-bar"]],decls:12,vars:3,consts:[[1,"right-aligned"]],template:function(i,r){1&i&&(xe(0,"cc-upload-files-button")(1,"cc-screenshot-button")(2,"cc-copy-to-clipboard-button")(3,"cc-export-3d-map-button")(4,"cc-reset-map-button"),At(5,D9e,1,0,"cc-file-panel"),$e(6,"async"),At(7,k9e,1,0),P(8,"div",0),xe(9,"cc-loading-map-progress-spinner")(10,"cc-presentation-mode-button")(11,"cc-global-configuration-button"),H()),2&i&&(U(5),It(5,null===rt(6,1,r.hoveredNodeId$)?5:7))},dependencies:[t7e,b7e,I7e,kHe,WHe,r9e,d9e,g9e,b9e,F9e,Yn],styles:["[_nghost-%COMP%]{display:flex;gap:8px;padding-left:8px;align-items:center;background-color:#f0f0f0;height:35px;border-bottom:1px solid #cdcdcd}[_nghost-%COMP%] .right-aligned[_ngcontent-%COMP%]{position:absolute;right:4px;display:inline-flex;align-items:center;width:400px;justify-content:space-between}"]})}}return n})(),dne=(()=>{class n{static{this.NO_EXTENSION="None"}static{this.OTHER_EXTENSION="other"}static{this.OTHER_GROUP_THRESHOLD_VALUE=3}static getMetricDistribution(e,i){if(!e)return[];const r=new Map;let o=0;for(const a of bo(e))if(Ro(a)&&!a.data.isExcluded){const l=a.data.attributes[i],c=n.estimateFileExtension(a.data.name),d=r.get(c);o+=l,d?d.absoluteMetricValue+=l:r.set(c,n.getDistributionObject(c,l))}if(0===o)return[n.getNoneExtension()];let s=[];for(const a of r.values())0!==a.absoluteMetricValue&&(a.relativeMetricValue=100*a.absoluteMetricValue/o,s.push(a));return s.sort((a,l)=>l.absoluteMetricValue-a.absoluteMetricValue),s=n.getMetricDistributionWithOthers(s),s.length>0?s:[n.getNoneExtension()]}static getMetricDistributionWithOthers(e){const i=n.getOtherExtension(),r=[];for(const o of e)o.relativeMetricValue>n.OTHER_GROUP_THRESHOLD_VALUE?r.push(o):(i.absoluteMetricValue+=o.absoluteMetricValue,i.relativeMetricValue+=o.relativeMetricValue);return i.relativeMetricValue>0&&r.push(i),r}static getOtherExtension(){return{fileExtension:n.OTHER_EXTENSION,absoluteMetricValue:0,relativeMetricValue:0,color:n.getColor(n.OTHER_EXTENSION)}}static getDistributionObject(e,i){return{fileExtension:e,absoluteMetricValue:i,relativeMetricValue:0,color:n.getColor(e)}}static estimateFileExtension(e){const i=e.lastIndexOf(".");return i>0&&i!==e.length?e.slice(i+1).toLowerCase():n.NO_EXTENSION}static getNoneExtension(){return{fileExtension:n.NO_EXTENSION,absoluteMetricValue:null,relativeMetricValue:100,color:n.getColor(n.NO_EXTENSION)}}static getColor(e){if(e===n.NO_EXTENSION||e===n.OTHER_EXTENSION)return"#676867";let i=0;for(let r=0;rn.distributionMetric),P9e=Zt(Bc,une,(n,t)=>dne.getMetricDistribution(n.unifiedMapNode,t));let R9e=(()=>{class n{constructor(e){this.store=e,this.distributionMetric$=this.store.select(une)}handleDistributionMetricChanged(e){this.store.dispatch(h1({value:e}))}static{this.\u0275fac=function(i){return new(i||n)($(Xt))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-distribution-metric-chooser"]],decls:3,vars:5,consts:[[1,"fa","fa-pie-chart"],[3,"selectedMetricName","searchPlaceholder","handleMetricChanged"]],template:function(i,r){1&i&&(xe(0,"i",0)(1,"cc-metric-chooser",1),$e(2,"async")),2&i&&(U(),pe("selectedMetricName",rt(2,3,r.distributionMetric$))("searchPlaceholder","Distribution Metric (highest value)")("handleMetricChanged",r.handleDistributionMetricChanged))},dependencies:[$w,Yn],styles:["[_nghost-%COMP%]{width:210px;display:flex;align-items:center;font-size:12px;gap:6px;margin-left:5px;margin-right:5px}"]})}}return n})();function L9e(n,t){if(1&n){const e=Pn();P(0,"span",7),We("click",function(){return Vt(e),Ot(He().toggleShowAbsoluteValues())}),P(1,"div",8),We("mouseover",function(){const r=Vt(e).$implicit;return Ot(He().onHoverFileExtensionBar(r.fileExtension))})("mouseleave",function(){return Vt(e),Ot(He().onUnhoverFileExtensionBar())}),we(2),H()()}if(2&n){const e=t.$implicit,i=He();Hi("width",e.relativeMetricValue+"%")("background",e.color),U(),ka("title",e.fileExtension.toString()+" "+(i.showAbsoluteValues?e.absoluteMetricValue.toFixed(0):e.relativeMetricValue.toFixed(2)+"%")),U(),lh(" ",e.relativeMetricValue>=e.fileExtension.length/2+1?e.fileExtension:""," ",i.showAbsoluteValues?e.absoluteMetricValue.toLocaleString():e.relativeMetricValue.toFixed(2)+"%"," ")}}function O9e(n,t){if(1&n&&(P(0,"div",6),xe(1,"span",9),we(2),P(3,"span",10),we(4),H()()),2&n){const e=t.$implicit,i=He();U(),Hi("background",e.color),U(),cn("",e.fileExtension," : "),U(2),cn(" ",i.showAbsoluteValues?e.absoluteMetricValue.toLocaleString():e.relativeMetricValue.toFixed(2)+"%"," ")}}let N9e=(()=>{class n{constructor(e,i){this.store=e,this.threeSceneService=i,this.showAbsoluteValues=!1,this.showDetails=!1,this.store.select(P9e).subscribe(r=>{this.metricDistribution=r})}onHoverFileExtensionBar(e){const i=new Set;for(const r of this.metricDistribution)"other"!==r.fileExtension&&i.add(r.fileExtension);for(const r of this.threeSceneService.getMapMesh().getMeshDescription().buildings)if(r.node.isLeaf){const o=dne.estimateFileExtension(r.node.name);(o===e||"other"===e&&!i.has(o))&&this.threeSceneService.addBuildingToHighlightingList(r)}this.threeSceneService.highlightBuildings()}onUnhoverFileExtensionBar(){this.threeSceneService.clearHighlight()}toggleShowDetails(){this.showDetails=!this.showDetails}toggleShowAbsoluteValues(){this.showAbsoluteValues=!this.showAbsoluteValues}static{this.\u0275fac=function(i){return new(i||n)($(Xt),$(Pc))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-file-extension-bar"]],decls:10,vars:5,consts:[[1,"cc-distribution"],["title","Distribution metric"],[1,"cc-bar"],[1,"cc-bar-section",3,"width","background"],[1,"cc-show-details-button",3,"click"],[1,"cc-distribution-details",3,"click"],[1,"cc-distribution-details-entry"],[1,"cc-bar-section",3,"click"],[1,"cc-bar-section-text",3,"mouseover","mouseleave","title"],[1,"cc-dot"],[1,"cc-detail-metric-value"]],template:function(i,r){1&i&&(P(0,"div",0),xe(1,"cc-distribution-metric-chooser",1),P(2,"div",2),Rr(3,L9e,3,7,"span",3,Hr),H(),P(5,"button",4),We("click",function(){return r.toggleShowDetails()}),xe(6,"i"),H()(),P(7,"div",5),We("click",function(){return r.toggleShowAbsoluteValues()}),Rr(8,O9e,5,4,"div",6,Hr),H()),2&i&&(U(3),Lr(r.metricDistribution),U(3),ah("fa ",r.showDetails?"fa-caret-up":"fa-caret-down",""),U(),Qn("cc-hidden",!r.showDetails),U(),Lr(r.metricDistribution))},dependencies:[R9e],styles:['#mat-select-2-panel[_ngcontent-%COMP%]{left:-24px;top:98px}[_nghost-%COMP%]{z-index:30;background-color:#fff}[_nghost-%COMP%] .cc-distribution[_ngcontent-%COMP%]{display:flex;height:17px}[_nghost-%COMP%] .cc-distribution[_ngcontent-%COMP%] .cc-bar[_ngcontent-%COMP%]{flex:1}[_nghost-%COMP%] .cc-distribution[_ngcontent-%COMP%] .cc-bar[_ngcontent-%COMP%] .cc-bar-section[_ngcontent-%COMP%]{height:100%;display:inline-block;overflow:hidden;color:#fff;text-align:center;cursor:pointer;outline:none}[_nghost-%COMP%] .cc-distribution[_ngcontent-%COMP%] .cc-bar[_ngcontent-%COMP%] .cc-bar-section[_ngcontent-%COMP%]:not(:last-child){border-right:1px solid white}[_nghost-%COMP%] .cc-distribution[_ngcontent-%COMP%] .cc-bar[_ngcontent-%COMP%] .cc-bar-section[_ngcontent-%COMP%] .cc-bar-section-text[_ngcontent-%COMP%]{font-size:10px;margin:2px 0;white-space:nowrap;padding:0 10px;text-overflow:""}[_nghost-%COMP%] .cc-show-details-button[_ngcontent-%COMP%]{line-height:10px;width:45px;margin:0;padding:0;background-color:#e6e6e6f5}[_nghost-%COMP%] .cc-distribution-details[_ngcontent-%COMP%]{border-top:1px solid #cdcdcd;height:25px;transition:all linear .2s}[_nghost-%COMP%] .cc-distribution-details.cc-hidden[_ngcontent-%COMP%]{height:0;border-top:0 solid #cdcdcd}[_nghost-%COMP%] .cc-distribution-details[_ngcontent-%COMP%]:hover{cursor:pointer}[_nghost-%COMP%] .cc-distribution-details[_ngcontent-%COMP%] .cc-distribution-details-entry[_ngcontent-%COMP%]{display:inline-block;font-size:15px;color:#000;margin:3px 0 3px 30px}[_nghost-%COMP%] .cc-distribution-details[_ngcontent-%COMP%] .cc-distribution-details-entry[_ngcontent-%COMP%] .cc-dot[_ngcontent-%COMP%]{height:10px;width:10px;border-radius:50%;display:inline-block;margin-right:8px}[_nghost-%COMP%] .cc-distribution-details[_ngcontent-%COMP%] .cc-distribution-details-entry[_ngcontent-%COMP%] .cc-detail-metric-value[_ngcontent-%COMP%]{color:gray}']})}}return n})(),U9e=(()=>{class n{constructor(e){this.isLoadingFile$=e.select(ZR)}static{this.\u0275fac=function(i){return new(i||n)($(Xt))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-loading-file-progress-spinner"]],decls:3,vars:4,consts:[["id","loading-gif-file"],["mode","indeterminate","diameter","96"]],template:function(i,r){1&i&&(P(0,"div",0),$e(1,"async"),xe(2,"mat-progress-spinner",1),H()),2&i&&Hi("visibility",rt(1,2,r.isLoadingFile$)?"visible":"hidden")},dependencies:[sne,Yn],styles:["#loading-gif-file[_ngcontent-%COMP%]{position:fixed;left:0;top:0;width:100%;height:100%;z-index:40;background-color:#fffc;display:inline-block;text-align:center}#loading-gif-file[_ngcontent-%COMP%] mat-progress-spinner.mat-mdc-progress-spinner[_ngcontent-%COMP%]{display:inline-block;margin:22% auto 0}"]})}}return n})(),H9e=(()=>{class n{constructor(e,i){this.store=e,this.loadInitialFileService=i,this.isInitialized=!1}ngOnInit(){var e=this;return B(function*(){e.store.dispatch(Xp({value:!0})),yield e.loadInitialFileService.loadFilesOrSampleFiles(),e.isInitialized=!0})()}static{this.\u0275fac=function(i){return new(i||n)($(Xt),$(YR))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-code-charta"]],decls:8,vars:2,template:function(i,r){1&i&&(P(0,"div"),xe(1,"cc-tool-bar")(2,"cc-file-extension-bar")(3,"cc-ribbon-bar")(4,"cc-code-map")(5,"cc-legend-panel")(6,"cc-loading-file-progress-spinner")(7,"cc-logo"),H()),2&i&&Hi("visibility",r.isInitialized?"visible":"hidden")},dependencies:[nCe,JDe,_Be,Q6e,B9e,N9e,U9e],encapsulation:2})}}return n})(),V9e=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[gn]})}}return n})();function hne(n){return new dt(3e3,!1)}function Qm(n){switch(n.length){case 0:return new k1;case 1:return n[0];default:return new MW(n)}}function fne(n,t,e=new Map,i=new Map){const r=[],o=[];let s=-1,a=null;if(t.forEach(l=>{const c=l.get("offset"),d=c==s,u=d&&a||new Map;l.forEach((h,f)=>{let A=f,y=h;if("offset"!==f)switch(A=n.normalizePropertyName(A,r),y){case"!":y=e.get(f);break;case Eh:y=i.get(f);break;default:y=n.normalizeStyleValue(f,A,y,r)}u.set(A,y)}),d||o.push(u),a=u,s=c}),r.length)throw function dVe(n){return new dt(3502,!1)}();return o}function F5(n,t,e,i){switch(t){case"start":n.onStart(()=>i(e&&D5(e,"start",n)));break;case"done":n.onDone(()=>i(e&&D5(e,"done",n)));break;case"destroy":n.onDestroy(()=>i(e&&D5(e,"destroy",n)))}}function D5(n,t,e){const o=k5(n.element,n.triggerName,n.fromState,n.toState,t||n.phaseName,e.totalTime??n.totalTime,!!e.disabled),s=n._data;return null!=s&&(o._data=s),o}function k5(n,t,e,i,r="",o=0,s){return{element:n,triggerName:t,fromState:e,toState:i,phaseName:r,totalTime:o,disabled:!!s}}function oc(n,t,e){let i=n.get(t);return i||n.set(t,i=e),i}function mne(n){const t=n.indexOf(":");return[n.substring(1,t),n.slice(t+1)]}const wVe=typeof document>"u"?null:document.documentElement;function B5(n){const t=n.parentNode||n.host||null;return t===wVe?null:t}let YA=null,pne=!1;function Ane(n,t){for(;t;){if(t===n)return!0;t=B5(t)}return!1}function gne(n,t,e){if(e)return Array.from(n.querySelectorAll(t));const i=n.querySelector(t);return i?[i]:[]}let P5=(()=>{class n{validateStyleProperty(e){return function CVe(n){YA||(YA=function MVe(){return typeof document<"u"?document.body:null}()||{},pne=!!YA.style&&"WebkitAppearance"in YA.style);let t=!0;return YA.style&&!function xVe(n){return"ebkit"==n.substring(1,6)}(n)&&(t=n in YA.style,!t&&pne&&(t="Webkit"+n.charAt(0).toUpperCase()+n.slice(1)in YA.style)),t}(e)}matchesElement(e,i){return!1}containsElement(e,i){return Ane(e,i)}getParentElement(e){return B5(e)}query(e,i,r){return gne(e,i,r)}computeStyle(e,i,r){return r||""}animate(e,i,r,o,s,a=[],l){return new k1(r,o)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac})}}return n})();class R5{static{this.NOOP=new P5}}class L5{}const SVe=1e3,O5="ng-enter",FI="ng-leave",DI="ng-trigger",kI=".ng-trigger",bne="ng-animating",N5=".ng-animating";function rf(n){if("number"==typeof n)return n;const t=n.match(/^(-?[\.\d]+)(m?s)/);return!t||t.length<2?0:U5(parseFloat(t[1]),t[2])}function U5(n,t){return"s"===t?n*SVe:n}function BI(n,t,e){return n.hasOwnProperty("duration")?n:function IVe(n,t,e){let r,o=0,s="";if("string"==typeof n){const a=n.match(/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i);if(null===a)return t.push(hne()),{duration:0,delay:0,easing:""};r=U5(parseFloat(a[1]),a[2]);const l=a[3];null!=l&&(o=U5(parseFloat(l),a[4]));const c=a[5];c&&(s=c)}else r=n;if(!e){let a=!1,l=t.length;r<0&&(t.push(function Q9e(){return new dt(3100,!1)}()),a=!0),o<0&&(t.push(function z9e(){return new dt(3101,!1)}()),a=!0),a&&t.splice(l,0,hne())}return{duration:r,delay:o,easing:s}}(n,t,e)}function Iu(n,t,e){t.forEach((i,r)=>{const o=V5(r);e&&!e.has(r)&&e.set(r,n.style[o]),n.style[o]=i})}function ZA(n,t){t.forEach((e,i)=>{const r=V5(i);n.style[r]=""})}function yx(n){return Array.isArray(n)?1==n.length?n[0]:function vye(n,t=null){return{type:mi.Sequence,steps:n,options:t}}(n):n}const H5=new RegExp("{{\\s*(.+?)\\s*}}","g");function yne(n){let t=[];if("string"==typeof n){let e;for(;e=H5.exec(n);)t.push(e[1]);H5.lastIndex=0}return t}function wx(n,t,e){const i=`${n}`,r=i.replace(H5,(o,s)=>{let a=t[s];return null==a&&(e.push(function G9e(n){return new dt(3003,!1)}()),a=""),a.toString()});return r==i?n:r}const kVe=/-+([a-z0-9])/g;function V5(n){return n.replace(kVe,(...t)=>t[1].toUpperCase())}function sc(n,t,e){switch(t.type){case mi.Trigger:return n.visitTrigger(t,e);case mi.State:return n.visitState(t,e);case mi.Transition:return n.visitTransition(t,e);case mi.Sequence:return n.visitSequence(t,e);case mi.Group:return n.visitGroup(t,e);case mi.Animate:return n.visitAnimate(t,e);case mi.Keyframes:return n.visitKeyframes(t,e);case mi.Style:return n.visitStyle(t,e);case mi.Reference:return n.visitReference(t,e);case mi.AnimateChild:return n.visitAnimateChild(t,e);case mi.AnimateRef:return n.visitAnimateRef(t,e);case mi.Query:return n.visitQuery(t,e);case mi.Stagger:return n.visitStagger(t,e);default:throw function W9e(n){return new dt(3004,!1)}()}}const RVe=new Set(["width","height","minWidth","minHeight","maxWidth","maxHeight","left","top","bottom","right","fontSize","outlineWidth","outlineOffset","paddingTop","paddingLeft","paddingBottom","paddingRight","marginTop","marginLeft","marginBottom","marginRight","borderRadius","borderWidth","borderTopWidth","borderLeftWidth","borderRightWidth","borderBottomWidth","textIndent","perspective"]);class wne extends L5{normalizePropertyName(t,e){return V5(t)}normalizeStyleValue(t,e,i,r){let o="";const s=i.toString().trim();if(RVe.has(e)&&0!==i&&"0"!==i)if("number"==typeof i)o="px";else{const a=i.match(/^[+-]?[\d\.]+([a-z]*)$/);a&&0==a[1].length&&r.push(function $9e(n,t){return new dt(3005,!1)}())}return s+o}}const PI="*";const RI=new Set(["true","1"]),LI=new Set(["false","0"]);function xne(n,t){const e=RI.has(n)||LI.has(n),i=RI.has(t)||LI.has(t);return(r,o)=>{let s=n==PI||n==r,a=t==PI||t==o;return!s&&e&&"boolean"==typeof r&&(s=r?RI.has(n):LI.has(n)),!a&&i&&"boolean"==typeof o&&(a=o?RI.has(t):LI.has(t)),s&&a}}const UVe=new RegExp("s*:selfs*,?","g");function z5(n,t,e,i){return new HVe(n).build(t,e,i)}class HVe{constructor(t){this._driver=t}build(t,e,i){const r=new zVe(e);return this._resetContextStyleTimingState(r),sc(this,yx(t),r)}_resetContextStyleTimingState(t){t.currentQuerySelector="",t.collectedStyles=new Map,t.collectedStyles.set("",new Map),t.currentTime=0}visitTrigger(t,e){let i=e.queryCount=0,r=e.depCount=0;const o=[],s=[];return"@"==t.name.charAt(0)&&e.errors.push(function j9e(){return new dt(3006,!1)}()),t.definitions.forEach(a=>{if(this._resetContextStyleTimingState(e),a.type==mi.State){const l=a,c=l.name;c.toString().split(/\s*,\s*/).forEach(d=>{l.name=d,o.push(this.visitState(l,e))}),l.name=c}else if(a.type==mi.Transition){const l=this.visitTransition(a,e);i+=l.queryCount,r+=l.depCount,s.push(l)}else e.errors.push(function X9e(){return new dt(3007,!1)}())}),{type:mi.Trigger,name:t.name,states:o,transitions:s,queryCount:i,depCount:r,options:null}}visitState(t,e){const i=this.visitStyle(t.styles,e),r=t.options&&t.options.params||null;if(i.containsDynamicStyles){const o=new Set,s=r||{};i.styles.forEach(a=>{a instanceof Map&&a.forEach(l=>{yne(l).forEach(c=>{s.hasOwnProperty(c)||o.add(c)})})}),o.size&&e.errors.push(function K9e(n,t){return new dt(3008,!1)}(0,o.values()))}return{type:mi.State,name:t.name,style:i,options:r?{params:r}:null}}visitTransition(t,e){e.queryCount=0,e.depCount=0;const i=sc(this,yx(t.animation),e),r=function LVe(n,t){const e=[];return"string"==typeof n?n.split(/\s*,\s*/).forEach(i=>function OVe(n,t,e){if(":"==n[0]){const l=function NVe(n,t){switch(n){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(e,i)=>parseFloat(i)>parseFloat(e);case":decrement":return(e,i)=>parseFloat(i) *"}}(n,e);if("function"==typeof l)return void t.push(l);n=l}const i=n.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(null==i||i.length<4)return e.push(function oVe(n){return new dt(3015,!1)}()),t;const r=i[1],o=i[2],s=i[3];t.push(xne(r,s)),"<"==o[0]&&(r!=PI||s!=PI)&&t.push(xne(s,r))}(i,e,t)):e.push(n),e}(t.expr,e.errors);return{type:mi.Transition,matchers:r,animation:i,queryCount:e.queryCount,depCount:e.depCount,options:JA(t.options)}}visitSequence(t,e){return{type:mi.Sequence,steps:t.steps.map(i=>sc(this,i,e)),options:JA(t.options)}}visitGroup(t,e){const i=e.currentTime;let r=0;const o=t.steps.map(s=>{e.currentTime=i;const a=sc(this,s,e);return r=Math.max(r,e.currentTime),a});return e.currentTime=r,{type:mi.Group,steps:o,options:JA(t.options)}}visitAnimate(t,e){const i=function GVe(n,t){if(n.hasOwnProperty("duration"))return n;if("number"==typeof n)return q5(BI(n,t).duration,0,"");const e=n;if(e.split(/\s+/).some(o=>"{"==o.charAt(0)&&"{"==o.charAt(1))){const o=q5(0,0,"");return o.dynamic=!0,o.strValue=e,o}const r=BI(e,t);return q5(r.duration,r.delay,r.easing)}(t.timings,e.errors);e.currentAnimateTimings=i;let r,o=t.styles?t.styles:qo({});if(o.type==mi.Keyframes)r=this.visitKeyframes(o,e);else{let s=t.styles,a=!1;if(!s){a=!0;const c={};i.easing&&(c.easing=i.easing),s=qo(c)}e.currentTime+=i.duration+i.delay;const l=this.visitStyle(s,e);l.isEmptyStep=a,r=l}return e.currentAnimateTimings=null,{type:mi.Animate,timings:i,style:r,options:null}}visitStyle(t,e){const i=this._makeStyleAst(t,e);return this._validateStyleAst(i,e),i}_makeStyleAst(t,e){const i=[],r=Array.isArray(t.styles)?t.styles:[t.styles];for(let a of r)"string"==typeof a?a===Eh?i.push(a):e.errors.push(new dt(3002,!1)):i.push(new Map(Object.entries(a)));let o=!1,s=null;return i.forEach(a=>{if(a instanceof Map&&(a.has("easing")&&(s=a.get("easing"),a.delete("easing")),!o))for(let l of a.values())if(l.toString().indexOf("{{")>=0){o=!0;break}}),{type:mi.Style,styles:i,easing:s,offset:t.offset,containsDynamicStyles:o,options:null}}_validateStyleAst(t,e){const i=e.currentAnimateTimings;let r=e.currentTime,o=e.currentTime;i&&o>0&&(o-=i.duration+i.delay),t.styles.forEach(s=>{"string"!=typeof s&&s.forEach((a,l)=>{const c=e.collectedStyles.get(e.currentQuerySelector),d=c.get(l);let u=!0;d&&(o!=r&&o>=d.startTime&&r<=d.endTime&&(e.errors.push(function Z9e(n,t,e,i,r){return new dt(3010,!1)}()),u=!1),o=d.startTime),u&&c.set(l,{startTime:o,endTime:r}),e.options&&function DVe(n,t,e){const i=t.params||{},r=yne(n);r.length&&r.forEach(o=>{i.hasOwnProperty(o)||e.push(function q9e(n){return new dt(3001,!1)}())})}(a,e.options,e.errors)})})}visitKeyframes(t,e){const i={type:mi.Keyframes,styles:[],options:null};if(!e.currentAnimateTimings)return e.errors.push(function J9e(){return new dt(3011,!1)}()),i;let o=0;const s=[];let a=!1,l=!1,c=0;const d=t.steps.map(b=>{const M=this._makeStyleAst(b,e);let C=null!=M.offset?M.offset:function qVe(n){if("string"==typeof n)return null;let t=null;if(Array.isArray(n))n.forEach(e=>{if(e instanceof Map&&e.has("offset")){const i=e;t=parseFloat(i.get("offset")),i.delete("offset")}});else if(n instanceof Map&&n.has("offset")){const e=n;t=parseFloat(e.get("offset")),e.delete("offset")}return t}(M.styles),E=0;return null!=C&&(o++,E=M.offset=C),l=l||E<0||E>1,a=a||E0&&o{const C=h>0?M==f?1:h*M:s[M],E=C*_;e.currentTime=A+y.delay+E,y.duration=E,this._validateStyleAst(b,e),b.offset=C,i.styles.push(b)}),i}visitReference(t,e){return{type:mi.Reference,animation:sc(this,yx(t.animation),e),options:JA(t.options)}}visitAnimateChild(t,e){return e.depCount++,{type:mi.AnimateChild,options:JA(t.options)}}visitAnimateRef(t,e){return{type:mi.AnimateRef,animation:this.visitReference(t.animation,e),options:JA(t.options)}}visitQuery(t,e){const i=e.currentQuerySelector,r=t.options||{};e.queryCount++,e.currentQuery=t;const[o,s]=function VVe(n){const t=!!n.split(/\s*,\s*/).find(e=>":self"==e);return t&&(n=n.replace(UVe,"")),n=n.replace(/@\*/g,kI).replace(/@\w+/g,e=>kI+"-"+e.slice(1)).replace(/:animating/g,N5),[n,t]}(t.selector);e.currentQuerySelector=i.length?i+" "+o:o,oc(e.collectedStyles,e.currentQuerySelector,new Map);const a=sc(this,yx(t.animation),e);return e.currentQuery=null,e.currentQuerySelector=i,{type:mi.Query,selector:o,limit:r.limit||0,optional:!!r.optional,includeSelf:s,animation:a,originalSelector:t.selector,options:JA(t.options)}}visitStagger(t,e){e.currentQuery||e.errors.push(function iVe(){return new dt(3013,!1)}());const i="full"===t.timings?{duration:0,delay:0,easing:"full"}:BI(t.timings,e.errors,!0);return{type:mi.Stagger,animation:sc(this,yx(t.animation),e),timings:i,options:null}}}class zVe{constructor(t){this.errors=t,this.queryCount=0,this.depCount=0,this.currentTransition=null,this.currentQuery=null,this.currentQuerySelector=null,this.currentAnimateTimings=null,this.currentTime=0,this.collectedStyles=new Map,this.options=null,this.unsupportedCSSPropertiesFound=new Set}}function JA(n){return n?(n={...n}).params&&(n.params=function QVe(n){return n?{...n}:null}(n.params)):n={},n}function q5(n,t,e){return{duration:n,delay:t,easing:e}}function G5(n,t,e,i,r,o,s=null,a=!1){return{type:1,element:n,keyframes:t,preStyleProps:e,postStyleProps:i,duration:r,delay:o,totalTime:r+o,easing:s,subTimeline:a}}class OI{constructor(){this._map=new Map}get(t){return this._map.get(t)||[]}append(t,e){let i=this._map.get(t);i||this._map.set(t,i=[]),i.push(...e)}has(t){return this._map.has(t)}clear(){this._map.clear()}}const jVe=new RegExp(":enter","g"),KVe=new RegExp(":leave","g");function W5(n,t,e,i,r,o=new Map,s=new Map,a,l,c=[]){return(new YVe).buildKeyframes(n,t,e,i,r,o,s,a,l,c)}class YVe{buildKeyframes(t,e,i,r,o,s,a,l,c,d=[]){c=c||new OI;const u=new $5(t,e,c,r,o,d,[]);u.options=l;const h=l.delay?rf(l.delay):0;u.currentTimeline.delayNextStep(h),u.currentTimeline.setStyles([s],null,u.errors,l),sc(this,i,u);const f=u.timelines.filter(A=>A.containsAnimation());if(f.length&&a.size){let A;for(let y=f.length-1;y>=0;y--){const _=f[y];if(_.element===e){A=_;break}}A&&!A.allowOnlyTimelineStyles()&&A.setStyles([a],null,u.errors,l)}return f.length?f.map(A=>A.buildKeyframes()):[G5(e,[],[],[],0,h,"",!1)]}visitTrigger(t,e){}visitState(t,e){}visitTransition(t,e){}visitAnimateChild(t,e){const i=e.subInstructions.get(e.element);if(i){const r=e.createSubContext(t.options),o=e.currentTimeline.currentTime,s=this._visitSubInstructions(i,r,r.options);o!=s&&e.transformIntoNewTimeline(s)}e.previousNode=t}visitAnimateRef(t,e){const i=e.createSubContext(t.options);i.transformIntoNewTimeline(),this._applyAnimationRefDelays([t.options,t.animation.options],e,i),this.visitReference(t.animation,i),e.transformIntoNewTimeline(i.currentTimeline.currentTime),e.previousNode=t}_applyAnimationRefDelays(t,e,i){for(const r of t){const o=r?.delay;if(o){const s="number"==typeof o?o:rf(wx(o,r?.params??{},e.errors));i.delayNextStep(s)}}}_visitSubInstructions(t,e,i){let o=e.currentTimeline.currentTime;const s=null!=i.duration?rf(i.duration):null,a=null!=i.delay?rf(i.delay):null;return 0!==s&&t.forEach(l=>{const c=e.appendInstructionToTimeline(l,s,a);o=Math.max(o,c.duration+c.delay)}),o}visitReference(t,e){e.updateOptions(t.options,!0),sc(this,t.animation,e),e.previousNode=t}visitSequence(t,e){const i=e.subContextCount;let r=e;const o=t.options;if(o&&(o.params||o.delay)&&(r=e.createSubContext(o),r.transformIntoNewTimeline(),null!=o.delay)){r.previousNode.type==mi.Style&&(r.currentTimeline.snapshotCurrentStyles(),r.previousNode=NI);const s=rf(o.delay);r.delayNextStep(s)}t.steps.length&&(t.steps.forEach(s=>sc(this,s,r)),r.currentTimeline.applyStylesToKeyframe(),r.subContextCount>i&&r.transformIntoNewTimeline()),e.previousNode=t}visitGroup(t,e){const i=[];let r=e.currentTimeline.currentTime;const o=t.options&&t.options.delay?rf(t.options.delay):0;t.steps.forEach(s=>{const a=e.createSubContext(t.options);o&&a.delayNextStep(o),sc(this,s,a),r=Math.max(r,a.currentTimeline.currentTime),i.push(a.currentTimeline)}),i.forEach(s=>e.currentTimeline.mergeTimelineCollectedStyles(s)),e.transformIntoNewTimeline(r),e.previousNode=t}_visitTiming(t,e){if(t.dynamic){const i=t.strValue;return BI(e.params?wx(i,e.params,e.errors):i,e.errors)}return{duration:t.duration,delay:t.delay,easing:t.easing}}visitAnimate(t,e){const i=e.currentAnimateTimings=this._visitTiming(t.timings,e),r=e.currentTimeline;i.delay&&(e.incrementTime(i.delay),r.snapshotCurrentStyles());const o=t.style;o.type==mi.Keyframes?this.visitKeyframes(o,e):(e.incrementTime(i.duration),this.visitStyle(o,e),r.applyStylesToKeyframe()),e.currentAnimateTimings=null,e.previousNode=t}visitStyle(t,e){const i=e.currentTimeline,r=e.currentAnimateTimings;!r&&i.hasCurrentStyleProperties()&&i.forwardFrame();const o=r&&r.easing||t.easing;t.isEmptyStep?i.applyEmptyStep(o):i.setStyles(t.styles,o,e.errors,e.options),e.previousNode=t}visitKeyframes(t,e){const i=e.currentAnimateTimings,r=e.currentTimeline.duration,o=i.duration,a=e.createSubContext().currentTimeline;a.easing=i.easing,t.styles.forEach(l=>{a.forwardTime((l.offset||0)*o),a.setStyles(l.styles,l.easing,e.errors,e.options),a.applyStylesToKeyframe()}),e.currentTimeline.mergeTimelineCollectedStyles(a),e.transformIntoNewTimeline(r+o),e.previousNode=t}visitQuery(t,e){const i=e.currentTimeline.currentTime,r=t.options||{},o=r.delay?rf(r.delay):0;o&&(e.previousNode.type===mi.Style||0==i&&e.currentTimeline.hasCurrentStyleProperties())&&(e.currentTimeline.snapshotCurrentStyles(),e.previousNode=NI);let s=i;const a=e.invokeQuery(t.selector,t.originalSelector,t.limit,t.includeSelf,!!r.optional,e.errors);e.currentQueryTotal=a.length;let l=null;a.forEach((c,d)=>{e.currentQueryIndex=d;const u=e.createSubContext(t.options,c);o&&u.delayNextStep(o),c===e.element&&(l=u.currentTimeline),sc(this,t.animation,u),u.currentTimeline.applyStylesToKeyframe(),s=Math.max(s,u.currentTimeline.currentTime)}),e.currentQueryIndex=0,e.currentQueryTotal=0,e.transformIntoNewTimeline(s),l&&(e.currentTimeline.mergeTimelineCollectedStyles(l),e.currentTimeline.snapshotCurrentStyles()),e.previousNode=t}visitStagger(t,e){const i=e.parentContext,r=e.currentTimeline,o=t.timings,s=Math.abs(o.duration),a=s*(e.currentQueryTotal-1);let l=s*e.currentQueryIndex;switch(o.duration<0?"reverse":o.easing){case"reverse":l=a-l;break;case"full":l=i.currentStaggerTime}const d=e.currentTimeline;l&&d.delayNextStep(l);const u=d.currentTime;sc(this,t.animation,e),e.previousNode=t,i.currentStaggerTime=r.currentTime-u+(r.startTime-i.currentTimeline.startTime)}}const NI={};class $5{constructor(t,e,i,r,o,s,a,l){this._driver=t,this.element=e,this.subInstructions=i,this._enterClassName=r,this._leaveClassName=o,this.errors=s,this.timelines=a,this.parentContext=null,this.currentAnimateTimings=null,this.previousNode=NI,this.subContextCount=0,this.options={},this.currentQueryIndex=0,this.currentQueryTotal=0,this.currentStaggerTime=0,this.currentTimeline=l||new UI(this._driver,e,0),a.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(t,e){if(!t)return;const i=t;let r=this.options;null!=i.duration&&(r.duration=rf(i.duration)),null!=i.delay&&(r.delay=rf(i.delay));const o=i.params;if(o){let s=r.params;s||(s=this.options.params={}),Object.keys(o).forEach(a=>{(!e||!s.hasOwnProperty(a))&&(s[a]=wx(o[a],s,this.errors))})}}_copyOptions(){const t={};if(this.options){const e=this.options.params;if(e){const i=t.params={};Object.keys(e).forEach(r=>{i[r]=e[r]})}}return t}createSubContext(t=null,e,i){const r=e||this.element,o=new $5(this._driver,r,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(r,i||0));return o.previousNode=this.previousNode,o.currentAnimateTimings=this.currentAnimateTimings,o.options=this._copyOptions(),o.updateOptions(t),o.currentQueryIndex=this.currentQueryIndex,o.currentQueryTotal=this.currentQueryTotal,o.parentContext=this,this.subContextCount++,o}transformIntoNewTimeline(t){return this.previousNode=NI,this.currentTimeline=this.currentTimeline.fork(this.element,t),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(t,e,i){const r={duration:e??t.duration,delay:this.currentTimeline.currentTime+(i??0)+t.delay,easing:""},o=new ZVe(this._driver,t.element,t.keyframes,t.preStyleProps,t.postStyleProps,r,t.stretchStartingKeyframe);return this.timelines.push(o),r}incrementTime(t){this.currentTimeline.forwardTime(this.currentTimeline.duration+t)}delayNextStep(t){t>0&&this.currentTimeline.delayNextStep(t)}invokeQuery(t,e,i,r,o,s){let a=[];if(r&&a.push(this.element),t.length>0){t=(t=t.replace(jVe,"."+this._enterClassName)).replace(KVe,"."+this._leaveClassName);let c=this._driver.query(this.element,t,1!=i);0!==i&&(c=i<0?c.slice(c.length+i,c.length):c.slice(0,i)),a.push(...c)}return!o&&0==a.length&&s.push(function rVe(n){return new dt(3014,!1)}()),a}}class UI{constructor(t,e,i,r){this._driver=t,this.element=e,this.startTime=i,this._elementTimelineStylesLookup=r,this.duration=0,this.easing=null,this._previousKeyframe=new Map,this._currentKeyframe=new Map,this._keyframes=new Map,this._styleSummary=new Map,this._localTimelineStyles=new Map,this._pendingStyles=new Map,this._backFill=new Map,this._currentEmptyStepKeyframe=null,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(e),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(e,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.hasCurrentStyleProperties();default:return!0}}hasCurrentStyleProperties(){return this._currentKeyframe.size>0}get currentTime(){return this.startTime+this.duration}delayNextStep(t){const e=1===this._keyframes.size&&this._pendingStyles.size;this.duration||e?(this.forwardTime(this.currentTime+t),e&&this.snapshotCurrentStyles()):this.startTime+=t}fork(t,e){return this.applyStylesToKeyframe(),new UI(this._driver,t,e||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=new Map,this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=1,this._loadKeyframe()}forwardTime(t){this.applyStylesToKeyframe(),this.duration=t,this._loadKeyframe()}_updateStyle(t,e){this._localTimelineStyles.set(t,e),this._globalTimelineStyles.set(t,e),this._styleSummary.set(t,{time:this.currentTime,value:e})}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(t){t&&this._previousKeyframe.set("easing",t);for(let[e,i]of this._globalTimelineStyles)this._backFill.set(e,i||Eh),this._currentKeyframe.set(e,Eh);this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(t,e,i,r){e&&this._previousKeyframe.set("easing",e);const o=r&&r.params||{},s=function JVe(n,t){const e=new Map;let i;return n.forEach(r=>{if("*"===r){i??=t.keys();for(let o of i)e.set(o,Eh)}else for(let[o,s]of r)e.set(o,s)}),e}(t,this._globalTimelineStyles);for(let[a,l]of s){const c=wx(l,o,i);this._pendingStyles.set(a,c),this._localTimelineStyles.has(a)||this._backFill.set(a,this._globalTimelineStyles.get(a)??Eh),this._updateStyle(a,c)}}applyStylesToKeyframe(){0!=this._pendingStyles.size&&(this._pendingStyles.forEach((t,e)=>{this._currentKeyframe.set(e,t)}),this._pendingStyles.clear(),this._localTimelineStyles.forEach((t,e)=>{this._currentKeyframe.has(e)||this._currentKeyframe.set(e,t)}))}snapshotCurrentStyles(){for(let[t,e]of this._localTimelineStyles)this._pendingStyles.set(t,e),this._updateStyle(t,e)}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){const t=[];for(let e in this._currentKeyframe)t.push(e);return t}mergeTimelineCollectedStyles(t){t._styleSummary.forEach((e,i)=>{const r=this._styleSummary.get(i);(!r||e.time>r.time)&&this._updateStyle(i,e.value)})}buildKeyframes(){this.applyStylesToKeyframe();const t=new Set,e=new Set,i=1===this._keyframes.size&&0===this.duration;let r=[];this._keyframes.forEach((a,l)=>{const c=new Map([...this._backFill,...a]);c.forEach((d,u)=>{"!"===d?t.add(u):d===Eh&&e.add(u)}),i||c.set("offset",l/this.duration),r.push(c)});const o=[...t.values()],s=[...e.values()];if(i){const a=r[0],l=new Map(a);a.set("offset",0),l.set("offset",1),r=[a,l]}return G5(this.element,r,o,s,this.duration,this.startTime,this.easing,!1)}}class ZVe extends UI{constructor(t,e,i,r,o,s,a=!1){super(t,e,s.delay),this.keyframes=i,this.preStyleProps=r,this.postStyleProps=o,this._stretchStartingKeyframe=a,this.timings={duration:s.duration,delay:s.delay,easing:s.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let t=this.keyframes,{delay:e,duration:i,easing:r}=this.timings;if(this._stretchStartingKeyframe&&e){const o=[],s=i+e,a=e/s,l=new Map(t[0]);l.set("offset",0),o.push(l);const c=new Map(t[0]);c.set("offset",Ene(a)),o.push(c);const d=t.length-1;for(let u=1;u<=d;u++){let h=new Map(t[u]);const f=h.get("offset");h.set("offset",Ene((e+f*i)/s)),o.push(h)}i=s,e=0,r="",t=o}return G5(this.element,t,this.preStyleProps,this.postStyleProps,i,e,r,!0)}}function Ene(n,t=3){const e=Math.pow(10,t-1);return Math.round(n*e)/e}function Sne(n,t,e,i,r,o,s,a,l,c,d,u,h){return{type:0,element:n,triggerName:t,isRemovalTransition:r,fromState:e,fromStyles:o,toState:i,toStyles:s,timelines:a,queriedElements:l,preStyleProps:c,postStyleProps:d,totalTime:u,errors:h}}const j5={};class Tne{constructor(t,e,i){this._triggerName=t,this.ast=e,this._stateStyles=i}match(t,e,i,r){return function eQe(n,t,e,i,r){return n.some(o=>o(t,e,i,r))}(this.ast.matchers,t,e,i,r)}buildStyles(t,e,i){let r=this._stateStyles.get("*");return void 0!==t&&(r=this._stateStyles.get(t?.toString())||r),r?r.buildStyles(e,i):new Map}build(t,e,i,r,o,s,a,l,c,d){const u=[],h=this.ast.options&&this.ast.options.params||j5,A=this.buildStyles(i,a&&a.params||j5,u),y=l&&l.params||j5,_=this.buildStyles(r,y,u),b=new Set,M=new Map,C=new Map,E="void"===r,I={params:Ine(y,h),delay:this.ast.options?.delay},V=d?[]:W5(t,e,this.ast.animation,o,s,A,_,I,c,u);let R=0;return V.forEach(K=>{R=Math.max(K.duration+K.delay,R)}),u.length?Sne(e,this._triggerName,i,r,E,A,_,[],[],M,C,R,u):(V.forEach(K=>{const k=K.element,W=oc(M,k,new Set);K.preStyleProps.forEach(Se=>W.add(Se));const ue=oc(C,k,new Set);K.postStyleProps.forEach(Se=>ue.add(Se)),k!==e&&b.add(k)}),Sne(e,this._triggerName,i,r,E,A,_,V,[...b.values()],M,C,R))}}function Ine(n,t){const e={...t};return Object.entries(n).forEach(([i,r])=>{null!=r&&(e[i]=r)}),e}class tQe{constructor(t,e,i){this.styles=t,this.defaultParams=e,this.normalizer=i}buildStyles(t,e){const i=new Map,r=Ine(t,this.defaultParams);return this.styles.styles.forEach(o=>{"string"!=typeof o&&o.forEach((s,a)=>{s&&(s=wx(s,r,e));const l=this.normalizer.normalizePropertyName(a,e);s=this.normalizer.normalizeStyleValue(a,l,s,e),i.set(a,s)})}),i}}class iQe{constructor(t,e,i){this.name=t,this.ast=e,this._normalizer=i,this.transitionFactories=[],this.states=new Map,e.states.forEach(r=>{this.states.set(r.name,new tQe(r.style,r.options&&r.options.params||{},i))}),Fne(this.states,"true","1"),Fne(this.states,"false","0"),e.transitions.forEach(r=>{this.transitionFactories.push(new Tne(t,r,this.states))}),this.fallbackTransition=function rQe(n,t,e){return new Tne(n,{type:mi.Transition,animation:{type:mi.Sequence,steps:[],options:null},matchers:[(s,a)=>!0],options:null,queryCount:0,depCount:0},t)}(t,this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(t,e,i,r){return this.transitionFactories.find(s=>s.match(t,e,i,r))||null}matchStyles(t,e,i){return this.fallbackTransition.buildStyles(t,e,i)}}function Fne(n,t,e){n.has(t)?n.has(e)||n.set(e,n.get(t)):n.has(e)&&n.set(t,n.get(e))}const oQe=new OI;class sQe{constructor(t,e,i){this.bodyNode=t,this._driver=e,this._normalizer=i,this._animations=new Map,this._playersById=new Map,this.players=[]}register(t,e){const i=[],o=z5(this._driver,e,i,[]);if(i.length)throw function uVe(n){return new dt(3503,!1)}();this._animations.set(t,o)}_buildPlayer(t,e,i){const r=t.element,o=fne(this._normalizer,t.keyframes,e,i);return this._driver.animate(r,o,t.duration,t.delay,t.easing,[],!0)}create(t,e,i={}){const r=[],o=this._animations.get(t);let s;const a=new Map;if(o?(s=W5(this._driver,e,o,O5,FI,new Map,new Map,i,oQe,r),s.forEach(d=>{const u=oc(a,d.element,new Map);d.postStyleProps.forEach(h=>u.set(h,null))})):(r.push(function hVe(){return new dt(3300,!1)}()),s=[]),r.length)throw function fVe(n){return new dt(3504,!1)}();a.forEach((d,u)=>{d.forEach((h,f)=>{d.set(f,this._driver.computeStyle(u,f,Eh))})});const c=Qm(s.map(d=>{const u=a.get(d.element);return this._buildPlayer(d,new Map,u)}));return this._playersById.set(t,c),c.onDestroy(()=>this.destroy(t)),this.players.push(c),c}destroy(t){const e=this._getPlayer(t);e.destroy(),this._playersById.delete(t);const i=this.players.indexOf(e);i>=0&&this.players.splice(i,1)}_getPlayer(t){const e=this._playersById.get(t);if(!e)throw function mVe(n){return new dt(3301,!1)}();return e}listen(t,e,i,r){const o=k5(e,"","","");return F5(this._getPlayer(t),i,o,r),()=>{}}command(t,e,i,r){if("register"==i)return void this.register(t,r[0]);if("create"==i)return void this.create(t,e,r[0]||{});const o=this._getPlayer(t);switch(i){case"play":o.play();break;case"pause":o.pause();break;case"reset":o.reset();break;case"restart":o.restart();break;case"finish":o.finish();break;case"init":o.init();break;case"setPosition":o.setPosition(parseFloat(r[0]));break;case"destroy":this.destroy(t)}}}const Dne="ng-animate-queued",X5="ng-animate-disabled",uQe=[],kne={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},hQe={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},Sd="__ng_removed";class K5{get params(){return this.options.params}constructor(t,e=""){this.namespaceId=e;const i=t&&t.hasOwnProperty("value");if(this.value=function AQe(n){return n??null}(i?t.value:t),i){const{value:o,...s}=t;this.options=s}else this.options={};this.options.params||(this.options.params={})}absorbOptions(t){const e=t.params;if(e){const i=this.options.params;Object.keys(e).forEach(r=>{null==i[r]&&(i[r]=e[r])})}}}const xx="void",Y5=new K5(xx);class fQe{constructor(t,e,i){this.id=t,this.hostElement=e,this._engine=i,this.players=[],this._triggers=new Map,this._queue=[],this._elementListeners=new Map,this._hostClassName="ng-tns-"+t,Lc(e,this._hostClassName)}listen(t,e,i,r){if(!this._triggers.has(e))throw function pVe(n,t){return new dt(3302,!1)}();if(null==i||0==i.length)throw function AVe(n){return new dt(3303,!1)}();if(!function gQe(n){return"start"==n||"done"==n}(i))throw function gVe(n,t){return new dt(3400,!1)}();const o=oc(this._elementListeners,t,[]),s={name:e,phase:i,callback:r};o.push(s);const a=oc(this._engine.statesByElement,t,new Map);return a.has(e)||(Lc(t,DI),Lc(t,DI+"-"+e),a.set(e,Y5)),()=>{this._engine.afterFlush(()=>{const l=o.indexOf(s);l>=0&&o.splice(l,1),this._triggers.has(e)||a.delete(e)})}}register(t,e){return!this._triggers.has(t)&&(this._triggers.set(t,e),!0)}_getTrigger(t){const e=this._triggers.get(t);if(!e)throw function _Ve(n){return new dt(3401,!1)}();return e}trigger(t,e,i,r=!0){const o=this._getTrigger(e),s=new Z5(this.id,e,t);let a=this._engine.statesByElement.get(t);a||(Lc(t,DI),Lc(t,DI+"-"+e),this._engine.statesByElement.set(t,a=new Map));let l=a.get(e);const c=new K5(i,this.id);if(!(i&&i.hasOwnProperty("value"))&&l&&c.absorbOptions(l.options),a.set(e,c),l||(l=Y5),c.value!==xx&&l.value===c.value){if(!function vQe(n,t){const e=Object.keys(n),i=Object.keys(t);if(e.length!=i.length)return!1;for(let r=0;r{ZA(t,_),Iu(t,b)})}return}const h=oc(this._engine.playersByElement,t,[]);h.forEach(y=>{y.namespaceId==this.id&&y.triggerName==e&&y.queued&&y.destroy()});let f=o.matchTransition(l.value,c.value,t,c.params),A=!1;if(!f){if(!r)return;f=o.fallbackTransition,A=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:t,triggerName:e,transition:f,fromState:l,toState:c,player:s,isFallbackTransition:A}),A||(Lc(t,Dne),s.onStart(()=>{Ib(t,Dne)})),s.onDone(()=>{let y=this.players.indexOf(s);y>=0&&this.players.splice(y,1);const _=this._engine.playersByElement.get(t);if(_){let b=_.indexOf(s);b>=0&&_.splice(b,1)}}),this.players.push(s),h.push(s),s}deregister(t){this._triggers.delete(t),this._engine.statesByElement.forEach(e=>e.delete(t)),this._elementListeners.forEach((e,i)=>{this._elementListeners.set(i,e.filter(r=>r.name!=t))})}clearElementCache(t){this._engine.statesByElement.delete(t),this._elementListeners.delete(t);const e=this._engine.playersByElement.get(t);e&&(e.forEach(i=>i.destroy()),this._engine.playersByElement.delete(t))}_signalRemovalForInnerTriggers(t,e){const i=this._engine.driver.query(t,kI,!0);i.forEach(r=>{if(r[Sd])return;const o=this._engine.fetchNamespacesByElement(r);o.size?o.forEach(s=>s.triggerLeaveAnimation(r,e,!1,!0)):this.clearElementCache(r)}),this._engine.afterFlushAnimationsDone(()=>i.forEach(r=>this.clearElementCache(r)))}triggerLeaveAnimation(t,e,i,r){const o=this._engine.statesByElement.get(t),s=new Map;if(o){const a=[];if(o.forEach((l,c)=>{if(s.set(c,l.value),this._triggers.has(c)){const d=this.trigger(t,c,xx,r);d&&a.push(d)}}),a.length)return this._engine.markElementAsRemoved(this.id,t,!0,e,s),i&&Qm(a).onDone(()=>this._engine.processLeaveNode(t)),!0}return!1}prepareLeaveAnimationListeners(t){const e=this._elementListeners.get(t),i=this._engine.statesByElement.get(t);if(e&&i){const r=new Set;e.forEach(o=>{const s=o.name;if(r.has(s))return;r.add(s);const l=this._triggers.get(s).fallbackTransition,c=i.get(s)||Y5,d=new K5(xx),u=new Z5(this.id,s,t);this._engine.totalQueuedPlayers++,this._queue.push({element:t,triggerName:s,transition:l,fromState:c,toState:d,player:u,isFallbackTransition:!0})})}}removeNode(t,e){const i=this._engine;if(t.childElementCount&&this._signalRemovalForInnerTriggers(t,e),this.triggerLeaveAnimation(t,e,!0))return;let r=!1;if(i.totalAnimations){const o=i.players.length?i.playersByQueriedElement.get(t):[];if(o&&o.length)r=!0;else{let s=t;for(;s=s.parentNode;)if(i.statesByElement.get(s)){r=!0;break}}}if(this.prepareLeaveAnimationListeners(t),r)i.markElementAsRemoved(this.id,t,!1,e);else{const o=t[Sd];(!o||o===kne)&&(i.afterFlush(()=>this.clearElementCache(t)),i.destroyInnerAnimations(t),i._onRemovalComplete(t,e))}}insertNode(t,e){Lc(t,this._hostClassName)}drainQueuedTransitions(t){const e=[];return this._queue.forEach(i=>{const r=i.player;if(r.destroyed)return;const o=i.element,s=this._elementListeners.get(o);s&&s.forEach(a=>{if(a.name==i.triggerName){const l=k5(o,i.triggerName,i.fromState.value,i.toState.value);l._data=t,F5(i.player,a.phase,l,a.callback)}}),r.markedForDestroy?this._engine.afterFlush(()=>{r.destroy()}):e.push(i)}),this._queue=[],e.sort((i,r)=>{const o=i.transition.ast.depCount,s=r.transition.ast.depCount;return 0==o||0==s?o-s:this._engine.driver.containsElement(i.element,r.element)?1:-1})}destroy(t){this.players.forEach(e=>e.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,t)}}class mQe{_onRemovalComplete(t,e){this.onRemovalComplete(t,e)}constructor(t,e,i,r){this.bodyNode=t,this.driver=e,this._normalizer=i,this.scheduler=r,this.players=[],this.newHostElements=new Map,this.playersByElement=new Map,this.playersByQueriedElement=new Map,this.statesByElement=new Map,this.disabledNodes=new Set,this.totalAnimations=0,this.totalQueuedPlayers=0,this._namespaceLookup={},this._namespaceList=[],this._flushFns=[],this._whenQuietFns=[],this.namespacesByHostElement=new Map,this.collectedEnterElements=[],this.collectedLeaveElements=[],this.onRemovalComplete=(o,s)=>{}}get queuedPlayers(){const t=[];return this._namespaceList.forEach(e=>{e.players.forEach(i=>{i.queued&&t.push(i)})}),t}createNamespace(t,e){const i=new fQe(t,e,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,e)?this._balanceNamespaceList(i,e):(this.newHostElements.set(e,i),this.collectEnterElement(e)),this._namespaceLookup[t]=i}_balanceNamespaceList(t,e){const i=this._namespaceList,r=this.namespacesByHostElement;if(i.length-1>=0){let s=!1,a=this.driver.getParentElement(e);for(;a;){const l=r.get(a);if(l){const c=i.indexOf(l);i.splice(c+1,0,t),s=!0;break}a=this.driver.getParentElement(a)}s||i.unshift(t)}else i.push(t);return r.set(e,t),t}register(t,e){let i=this._namespaceLookup[t];return i||(i=this.createNamespace(t,e)),i}registerTrigger(t,e,i){let r=this._namespaceLookup[t];r&&r.register(e,i)&&this.totalAnimations++}destroy(t,e){t&&(this.afterFlush(()=>{}),this.afterFlushAnimationsDone(()=>{const i=this._fetchNamespace(t);this.namespacesByHostElement.delete(i.hostElement);const r=this._namespaceList.indexOf(i);r>=0&&this._namespaceList.splice(r,1),i.destroy(e),delete this._namespaceLookup[t]}))}_fetchNamespace(t){return this._namespaceLookup[t]}fetchNamespacesByElement(t){const e=new Set,i=this.statesByElement.get(t);if(i)for(let r of i.values())if(r.namespaceId){const o=this._fetchNamespace(r.namespaceId);o&&e.add(o)}return e}trigger(t,e,i,r){if(HI(e)){const o=this._fetchNamespace(t);if(o)return o.trigger(e,i,r),!0}return!1}insertNode(t,e,i,r){if(!HI(e))return;const o=e[Sd];if(o&&o.setForRemoval){o.setForRemoval=!1,o.setForMove=!0;const s=this.collectedLeaveElements.indexOf(e);s>=0&&this.collectedLeaveElements.splice(s,1)}if(t){const s=this._fetchNamespace(t);s&&s.insertNode(e,i)}r&&this.collectEnterElement(e)}collectEnterElement(t){this.collectedEnterElements.push(t)}markElementAsDisabled(t,e){e?this.disabledNodes.has(t)||(this.disabledNodes.add(t),Lc(t,X5)):this.disabledNodes.has(t)&&(this.disabledNodes.delete(t),Ib(t,X5))}removeNode(t,e,i){if(HI(e)){this.scheduler?.notify();const r=t?this._fetchNamespace(t):null;r?r.removeNode(e,i):this.markElementAsRemoved(t,e,!1,i);const o=this.namespacesByHostElement.get(e);o&&o.id!==t&&o.removeNode(e,i)}else this._onRemovalComplete(e,i)}markElementAsRemoved(t,e,i,r,o){this.collectedLeaveElements.push(e),e[Sd]={namespaceId:t,setForRemoval:r,hasAnimation:i,removedBeforeQueried:!1,previousTriggersValues:o}}listen(t,e,i,r,o){return HI(e)?this._fetchNamespace(t).listen(e,i,r,o):()=>{}}_buildInstruction(t,e,i,r,o){return t.transition.build(this.driver,t.element,t.fromState.value,t.toState.value,i,r,t.fromState.options,t.toState.options,e,o)}destroyInnerAnimations(t){let e=this.driver.query(t,kI,!0);e.forEach(i=>this.destroyActiveAnimationsForElement(i)),0!=this.playersByQueriedElement.size&&(e=this.driver.query(t,N5,!0),e.forEach(i=>this.finishActiveQueriedAnimationOnElement(i)))}destroyActiveAnimationsForElement(t){const e=this.playersByElement.get(t);e&&e.forEach(i=>{i.queued?i.markedForDestroy=!0:i.destroy()})}finishActiveQueriedAnimationOnElement(t){const e=this.playersByQueriedElement.get(t);e&&e.forEach(i=>i.finish())}whenRenderingDone(){return new Promise(t=>{if(this.players.length)return Qm(this.players).onDone(()=>t());t()})}processLeaveNode(t){const e=t[Sd];if(e&&e.setForRemoval){if(t[Sd]=kne,e.namespaceId){this.destroyInnerAnimations(t);const i=this._fetchNamespace(e.namespaceId);i&&i.clearElementCache(t)}this._onRemovalComplete(t,e.setForRemoval)}t.classList?.contains(X5)&&this.markElementAsDisabled(t,!1),this.driver.query(t,".ng-animate-disabled",!0).forEach(i=>{this.markElementAsDisabled(i,!1)})}flush(t=-1){let e=[];if(this.newHostElements.size&&(this.newHostElements.forEach((i,r)=>this._balanceNamespaceList(i,r)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let i=0;ii()),this._flushFns=[],this._whenQuietFns.length){const i=this._whenQuietFns;this._whenQuietFns=[],e.length?Qm(e).onDone(()=>{i.forEach(r=>r())}):i.forEach(r=>r())}}reportError(t){throw function bVe(n){return new dt(3402,!1)}()}_flushAnimations(t,e){const i=new OI,r=[],o=new Map,s=[],a=new Map,l=new Map,c=new Map,d=new Set;this.disabledNodes.forEach(re=>{d.add(re);const oe=this.driver.query(re,".ng-animate-queued",!0);for(let ae=0;ae{const ae=O5+y++;A.set(oe,ae),re.forEach(Ce=>Lc(Ce,ae))});const _=[],b=new Set,M=new Set;for(let re=0;reb.add(Ce)):M.add(oe))}const C=new Map,E=Rne(h,Array.from(b));E.forEach((re,oe)=>{const ae=FI+y++;C.set(oe,ae),re.forEach(Ce=>Lc(Ce,ae))}),t.push(()=>{f.forEach((re,oe)=>{const ae=A.get(oe);re.forEach(Ce=>Ib(Ce,ae))}),E.forEach((re,oe)=>{const ae=C.get(oe);re.forEach(Ce=>Ib(Ce,ae))}),_.forEach(re=>{this.processLeaveNode(re)})});const I=[],V=[];for(let re=this._namespaceList.length-1;re>=0;re--)this._namespaceList[re].drainQueuedTransitions(e).forEach(ae=>{const Ce=ae.player,Qe=ae.element;if(I.push(Ce),this.collectedEnterElements.length){const J=Qe[Sd];if(J&&J.setForMove){if(J.previousTriggersValues&&J.previousTriggersValues.has(ae.triggerName)){const Ye=J.previousTriggersValues.get(ae.triggerName),Ft=this.statesByElement.get(ae.element);if(Ft&&Ft.has(ae.triggerName)){const lt=Ft.get(ae.triggerName);lt.value=Ye,Ft.set(ae.triggerName,lt)}}return void Ce.destroy()}}const Ie=!u||!this.driver.containsElement(u,Qe),Ke=C.get(Qe),Nt=A.get(Qe),_e=this._buildInstruction(ae,i,Nt,Ke,Ie);if(_e.errors&&_e.errors.length)return void V.push(_e);if(Ie)return Ce.onStart(()=>ZA(Qe,_e.fromStyles)),Ce.onDestroy(()=>Iu(Qe,_e.toStyles)),void r.push(Ce);if(ae.isFallbackTransition)return Ce.onStart(()=>ZA(Qe,_e.fromStyles)),Ce.onDestroy(()=>Iu(Qe,_e.toStyles)),void r.push(Ce);const fe=[];_e.timelines.forEach(J=>{J.stretchStartingKeyframe=!0,this.disabledNodes.has(J.element)||fe.push(J)}),_e.timelines=fe,i.append(Qe,_e.timelines),s.push({instruction:_e,player:Ce,element:Qe}),_e.queriedElements.forEach(J=>oc(a,J,[]).push(Ce)),_e.preStyleProps.forEach((J,Ye)=>{if(J.size){let Ft=l.get(Ye);Ft||l.set(Ye,Ft=new Set),J.forEach((lt,Tt)=>Ft.add(Tt))}}),_e.postStyleProps.forEach((J,Ye)=>{let Ft=c.get(Ye);Ft||c.set(Ye,Ft=new Set),J.forEach((lt,Tt)=>Ft.add(Tt))})});if(V.length){const re=[];V.forEach(oe=>{re.push(function vVe(n,t){return new dt(3505,!1)}())}),I.forEach(oe=>oe.destroy()),this.reportError(re)}const R=new Map,K=new Map;s.forEach(re=>{const oe=re.element;i.has(oe)&&(K.set(oe,oe),this._beforeAnimationBuild(re.player.namespaceId,re.instruction,R))}),r.forEach(re=>{const oe=re.element;this._getPreviousPlayers(oe,!1,re.namespaceId,re.triggerName,null).forEach(Ce=>{oc(R,oe,[]).push(Ce),Ce.destroy()})});const k=_.filter(re=>One(re,l,c)),W=new Map;Pne(W,this.driver,M,c,Eh).forEach(re=>{One(re,l,c)&&k.push(re)});const Se=new Map;f.forEach((re,oe)=>{Pne(Se,this.driver,new Set(re),l,"!")}),k.forEach(re=>{const oe=W.get(re),ae=Se.get(re);W.set(re,new Map([...oe?.entries()??[],...ae?.entries()??[]]))});const Me=[],Z=[],ve={};s.forEach(re=>{const{element:oe,player:ae,instruction:Ce}=re;if(i.has(oe)){if(d.has(oe))return ae.onDestroy(()=>Iu(oe,Ce.toStyles)),ae.disabled=!0,ae.overrideTotalTime(Ce.totalTime),void r.push(ae);let Qe=ve;if(K.size>1){let Ke=oe;const Nt=[];for(;Ke=Ke.parentNode;){const _e=K.get(Ke);if(_e){Qe=_e;break}Nt.push(Ke)}Nt.forEach(_e=>K.set(_e,Qe))}const Ie=this._buildAnimation(ae.namespaceId,Ce,R,o,Se,W);if(ae.setRealPlayer(Ie),Qe===ve)Me.push(ae);else{const Ke=this.playersByElement.get(Qe);Ke&&Ke.length&&(ae.parentPlayer=Qm(Ke)),r.push(ae)}}else ZA(oe,Ce.fromStyles),ae.onDestroy(()=>Iu(oe,Ce.toStyles)),Z.push(ae),d.has(oe)&&r.push(ae)}),Z.forEach(re=>{const oe=o.get(re.element);if(oe&&oe.length){const ae=Qm(oe);re.setRealPlayer(ae)}}),r.forEach(re=>{re.parentPlayer?re.syncPlayerEvents(re.parentPlayer):re.destroy()});for(let re=0;re<_.length;re++){const oe=_[re],ae=oe[Sd];if(Ib(oe,FI),ae&&ae.hasAnimation)continue;let Ce=[];if(a.size){let Ie=a.get(oe);Ie&&Ie.length&&Ce.push(...Ie);let Ke=this.driver.query(oe,N5,!0);for(let Nt=0;Nt!Ie.destroyed);Qe.length?_Qe(this,oe,Qe):this.processLeaveNode(oe)}return _.length=0,Me.forEach(re=>{this.players.push(re),re.onDone(()=>{re.destroy();const oe=this.players.indexOf(re);this.players.splice(oe,1)}),re.play()}),Me}afterFlush(t){this._flushFns.push(t)}afterFlushAnimationsDone(t){this._whenQuietFns.push(t)}_getPreviousPlayers(t,e,i,r,o){let s=[];if(e){const a=this.playersByQueriedElement.get(t);a&&(s=a)}else{const a=this.playersByElement.get(t);if(a){const l=!o||o==xx;a.forEach(c=>{c.queued||!l&&c.triggerName!=r||s.push(c)})}}return(i||r)&&(s=s.filter(a=>!(i&&i!=a.namespaceId||r&&r!=a.triggerName))),s}_beforeAnimationBuild(t,e,i){const o=e.element,s=e.isRemovalTransition?void 0:t,a=e.isRemovalTransition?void 0:e.triggerName;for(const l of e.timelines){const c=l.element,d=c!==o,u=oc(i,c,[]);this._getPreviousPlayers(c,d,s,a,e.toState).forEach(f=>{const A=f.getRealPlayer();A.beforeDestroy&&A.beforeDestroy(),f.destroy(),u.push(f)})}ZA(o,e.fromStyles)}_buildAnimation(t,e,i,r,o,s){const a=e.triggerName,l=e.element,c=[],d=new Set,u=new Set,h=e.timelines.map(A=>{const y=A.element;d.add(y);const _=y[Sd];if(_&&_.removedBeforeQueried)return new k1(A.duration,A.delay);const b=y!==l,M=function bQe(n){const t=[];return Lne(n,t),t}((i.get(y)||uQe).map(R=>R.getRealPlayer())).filter(R=>!!R.element&&R.element===y),C=o.get(y),E=s.get(y),I=fne(this._normalizer,A.keyframes,C,E),V=this._buildPlayer(A,I,M);if(A.subTimeline&&r&&u.add(y),b){const R=new Z5(t,a,y);R.setRealPlayer(V),c.push(R)}return V});c.forEach(A=>{oc(this.playersByQueriedElement,A.element,[]).push(A),A.onDone(()=>function pQe(n,t,e){let i=n.get(t);if(i){if(i.length){const r=i.indexOf(e);i.splice(r,1)}0==i.length&&n.delete(t)}return i}(this.playersByQueriedElement,A.element,A))}),d.forEach(A=>Lc(A,bne));const f=Qm(h);return f.onDestroy(()=>{d.forEach(A=>Ib(A,bne)),Iu(l,e.toStyles)}),u.forEach(A=>{oc(r,A,[]).push(f)}),f}_buildPlayer(t,e,i){return e.length>0?this.driver.animate(t.element,e,t.duration,t.delay,t.easing,i):new k1(t.duration,t.delay)}}class Z5{constructor(t,e,i){this.namespaceId=t,this.triggerName=e,this.element=i,this._player=new k1,this._containsRealPlayer=!1,this._queuedCallbacks=new Map,this.destroyed=!1,this.parentPlayer=null,this.markedForDestroy=!1,this.disabled=!1,this.queued=!0,this.totalTime=0}setRealPlayer(t){this._containsRealPlayer||(this._player=t,this._queuedCallbacks.forEach((e,i)=>{e.forEach(r=>F5(t,i,void 0,r))}),this._queuedCallbacks.clear(),this._containsRealPlayer=!0,this.overrideTotalTime(t.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(t){this.totalTime=t}syncPlayerEvents(t){const e=this._player;e.triggerCallback&&t.onStart(()=>e.triggerCallback("start")),t.onDone(()=>this.finish()),t.onDestroy(()=>this.destroy())}_queueEvent(t,e){oc(this._queuedCallbacks,t,[]).push(e)}onDone(t){this.queued&&this._queueEvent("done",t),this._player.onDone(t)}onStart(t){this.queued&&this._queueEvent("start",t),this._player.onStart(t)}onDestroy(t){this.queued&&this._queueEvent("destroy",t),this._player.onDestroy(t)}init(){this._player.init()}hasStarted(){return!this.queued&&this._player.hasStarted()}play(){!this.queued&&this._player.play()}pause(){!this.queued&&this._player.pause()}restart(){!this.queued&&this._player.restart()}finish(){this._player.finish()}destroy(){this.destroyed=!0,this._player.destroy()}reset(){!this.queued&&this._player.reset()}setPosition(t){this.queued||this._player.setPosition(t)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(t){const e=this._player;e.triggerCallback&&e.triggerCallback(t)}}function HI(n){return n&&1===n.nodeType}function Bne(n,t){const e=n.style.display;return n.style.display=t??"none",e}function Pne(n,t,e,i,r){const o=[];e.forEach(l=>o.push(Bne(l)));const s=[];i.forEach((l,c)=>{const d=new Map;l.forEach(u=>{const h=t.computeStyle(c,u,r);d.set(u,h),(!h||0==h.length)&&(c[Sd]=hQe,s.push(c))}),n.set(c,d)});let a=0;return e.forEach(l=>Bne(l,o[a++])),s}function Rne(n,t){const e=new Map;if(n.forEach(a=>e.set(a,[])),0==t.length)return e;const r=new Set(t),o=new Map;function s(a){if(!a)return 1;let l=o.get(a);if(l)return l;const c=a.parentNode;return l=e.has(c)?c:r.has(c)?1:s(c),o.set(a,l),l}return t.forEach(a=>{const l=s(a);1!==l&&e.get(l).push(a)}),e}function Lc(n,t){n.classList?.add(t)}function Ib(n,t){n.classList?.remove(t)}function _Qe(n,t,e){Qm(e).onDone(()=>n.processLeaveNode(t))}function Lne(n,t){for(let e=0;er.add(o)):t.set(n,i),e.delete(n),!0}class Cx{constructor(t,e,i,r){this._driver=e,this._normalizer=i,this._triggerCache={},this.onRemovalComplete=(o,s)=>{},this._transitionEngine=new mQe(t.body,e,i,r),this._timelineEngine=new sQe(t.body,e,i),this._transitionEngine.onRemovalComplete=(o,s)=>this.onRemovalComplete(o,s)}registerTrigger(t,e,i,r,o){const s=t+"-"+r;let a=this._triggerCache[s];if(!a){const l=[],d=z5(this._driver,o,l,[]);if(l.length)throw function cVe(n,t){return new dt(3404,!1)}();a=function nQe(n,t,e){return new iQe(n,t,e)}(r,d,this._normalizer),this._triggerCache[s]=a}this._transitionEngine.registerTrigger(e,r,a)}register(t,e){this._transitionEngine.register(t,e)}destroy(t,e){this._transitionEngine.destroy(t,e)}onInsert(t,e,i,r){this._transitionEngine.insertNode(t,e,i,r)}onRemove(t,e,i){this._transitionEngine.removeNode(t,e,i)}disableAnimations(t,e){this._transitionEngine.markElementAsDisabled(t,e)}process(t,e,i,r){if("@"==i.charAt(0)){const[o,s]=mne(i);this._timelineEngine.command(o,e,s,r)}else this._transitionEngine.trigger(t,e,i,r)}listen(t,e,i,r,o){if("@"==i.charAt(0)){const[s,a]=mne(i);return this._timelineEngine.listen(s,e,a,o)}return this._transitionEngine.listen(t,e,i,r,o)}flush(t=-1){this._transitionEngine.flush(t)}get players(){return[...this._transitionEngine.players,...this._timelineEngine.players]}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}afterFlushAnimationsDone(t){this._transitionEngine.afterFlushAnimationsDone(t)}}class Mx{static{this.initialStylesByElement=new WeakMap}constructor(t,e,i){this._element=t,this._startStyles=e,this._endStyles=i,this._state=0;let r=Mx.initialStylesByElement.get(t);r||Mx.initialStylesByElement.set(t,r=new Map),this._initialStyles=r}start(){this._state<1&&(this._startStyles&&Iu(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(Iu(this._element,this._initialStyles),this._endStyles&&(Iu(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(Mx.initialStylesByElement.delete(this._element),this._startStyles&&(ZA(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(ZA(this._element,this._endStyles),this._endStyles=null),Iu(this._element,this._initialStyles),this._state=3)}}const Hne="@.disabled";class Vne{constructor(t,e,i,r){this.namespaceId=t,this.delegate=e,this.engine=i,this._onDestroy=r,this.\u0275type=0}get data(){return this.delegate.data}destroyNode(t){this.delegate.destroyNode?.(t)}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.engine.afterFlushAnimationsDone(()=>{queueMicrotask(()=>{this.delegate.destroy()})}),this._onDestroy?.()}createElement(t,e){return this.delegate.createElement(t,e)}createComment(t){return this.delegate.createComment(t)}createText(t){return this.delegate.createText(t)}appendChild(t,e){this.delegate.appendChild(t,e),this.engine.onInsert(this.namespaceId,e,t,!1)}insertBefore(t,e,i,r=!0){this.delegate.insertBefore(t,e,i),this.engine.onInsert(this.namespaceId,e,t,r)}removeChild(t,e,i){this.engine.onRemove(this.namespaceId,e,this.delegate)}selectRootElement(t,e){return this.delegate.selectRootElement(t,e)}parentNode(t){return this.delegate.parentNode(t)}nextSibling(t){return this.delegate.nextSibling(t)}setAttribute(t,e,i,r){this.delegate.setAttribute(t,e,i,r)}removeAttribute(t,e,i){this.delegate.removeAttribute(t,e,i)}addClass(t,e){this.delegate.addClass(t,e)}removeClass(t,e){this.delegate.removeClass(t,e)}setStyle(t,e,i,r){this.delegate.setStyle(t,e,i,r)}removeStyle(t,e,i){this.delegate.removeStyle(t,e,i)}setProperty(t,e,i){"@"==e.charAt(0)&&e==Hne?this.disableAnimations(t,!!i):this.delegate.setProperty(t,e,i)}setValue(t,e){this.delegate.setValue(t,e)}listen(t,e,i){return this.delegate.listen(t,e,i)}disableAnimations(t,e){this.engine.disableAnimations(t,e)}}class xQe extends Vne{constructor(t,e,i,r,o){super(e,i,r,o),this.factory=t,this.namespaceId=e}setProperty(t,e,i){"@"==e.charAt(0)?"."==e.charAt(1)&&e==Hne?this.disableAnimations(t,i=void 0===i||!!i):this.engine.process(this.namespaceId,t,e.slice(1),i):this.delegate.setProperty(t,e,i)}listen(t,e,i){if("@"==e.charAt(0)){const r=function CQe(n){switch(n){case"body":return document.body;case"document":return document;case"window":return window;default:return n}}(t);let o=e.slice(1),s="";return"@"!=o.charAt(0)&&([o,s]=function MQe(n){const t=n.indexOf(".");return[n.substring(0,t),n.slice(t+1)]}(o)),this.engine.listen(this.namespaceId,r,o,s,a=>{this.factory.scheduleListenerCallback(a._data||-1,i,a)})}return this.delegate.listen(t,e,i)}}class EQe{constructor(t,e,i){this.delegate=t,this.engine=e,this._zone=i,this._currentId=0,this._microtaskId=1,this._animationCallbacksBuffer=[],this._rendererCache=new Map,this._cdRecurDepth=0,e.onRemovalComplete=(r,o)=>{const s=o?.parentNode(r);s&&o.removeChild(s,r)}}createRenderer(t,e){const r=this.delegate.createRenderer(t,e);if(!t||!e?.data?.animation){const c=this._rendererCache;let d=c.get(r);return d||(d=new Vne("",r,this.engine,()=>c.delete(r)),c.set(r,d)),d}const o=e.id,s=e.id+"-"+this._currentId;this._currentId++,this.engine.register(s,t);const a=c=>{Array.isArray(c)?c.forEach(a):this.engine.registerTrigger(o,s,t,c.name,c)};return e.data.animation.forEach(a),new xQe(this,s,r,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){queueMicrotask(()=>{this._microtaskId++})}scheduleListenerCallback(t,e,i){if(t>=0&&te(i));const r=this._animationCallbacksBuffer;0==r.length&&queueMicrotask(()=>{this._zone.run(()=>{r.forEach(o=>{const[s,a]=o;s(a)}),this._animationCallbacksBuffer=[]})}),r.push([e,i])}end(){this._cdRecurDepth--,0==this._cdRecurDepth&&this._zone.runOutsideAngular(()=>{this._scheduleCountTask(),this.engine.flush(this._microtaskId)}),this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.engine.whenRenderingDone()}}const zne=[{provide:R5,useClass:P5},{provide:ps,useValue:"NoopAnimations"},...[{provide:L5,useFactory:function TQe(){return new wne}},{provide:Cx,useClass:(()=>{class n extends Cx{constructor(e,i,r){super(e,i,r,qt(sM,{optional:!0}))}ngOnDestroy(){this.flush()}static{this.\u0275fac=function(i){return new(i||n)(ge(Bi),ge(R5),ge(L5))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac})}}return n})()},{provide:ok,useFactory:function IQe(n,t,e){return new EQe(n,t,e)},deps:[VB,Cx,kn]}]];let eU=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({providers:zne,imports:[_Q]})}}return n})();const qne=["*"],Wne=["unscopedContent"],DQe=["text"],kQe=[[["","matListItemAvatar",""],["","matListItemIcon",""]],[["","matListItemTitle",""]],[["","matListItemLine",""]],"*",[["","matListItemMeta",""]],[["mat-divider"]]],BQe=["[matListItemAvatar],[matListItemIcon]","[matListItemTitle]","[matListItemLine]","*","[matListItemMeta]","mat-divider"],$ne=new ut("ListOption");let jne=(()=>{class n{constructor(e){this._elementRef=e}static{this.\u0275fac=function(i){return new(i||n)($(Vn))}}static{this.\u0275dir=$t({type:n,selectors:[["","matListItemTitle",""]],hostAttrs:[1,"mat-mdc-list-item-title","mdc-list-item__primary-text"],standalone:!0})}}return n})(),Xne=(()=>{class n{constructor(e){this._elementRef=e}static{this.\u0275fac=function(i){return new(i||n)($(Vn))}}static{this.\u0275dir=$t({type:n,selectors:[["","matListItemLine",""]],hostAttrs:[1,"mat-mdc-list-item-line","mdc-list-item__secondary-text"],standalone:!0})}}return n})(),YQe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=$t({type:n,selectors:[["","matListItemMeta",""]],hostAttrs:[1,"mat-mdc-list-item-meta","mdc-list-item__end"],standalone:!0})}}return n})(),Kne=(()=>{class n{constructor(e){this._listOption=e}_isAlignedAtStart(){return!this._listOption||"after"===this._listOption?._getTogglePosition()}static{this.\u0275fac=function(i){return new(i||n)($($ne,8))}}static{this.\u0275dir=$t({type:n,hostVars:4,hostBindings:function(i,r){2&i&&Qn("mdc-list-item__start",r._isAlignedAtStart())("mdc-list-item__end",!r._isAlignedAtStart())},standalone:!0})}}return n})(),ZQe=(()=>{class n extends Kne{static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=Zr(n)))(r||n)}})()}static{this.\u0275dir=$t({type:n,selectors:[["","matListItemAvatar",""]],hostAttrs:[1,"mat-mdc-list-item-avatar"],standalone:!0,features:[_i]})}}return n})(),JQe=(()=>{class n extends Kne{static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=Zr(n)))(r||n)}})()}static{this.\u0275dir=$t({type:n,selectors:[["","matListItemIcon",""]],hostAttrs:[1,"mat-mdc-list-item-icon"],standalone:!0,features:[_i]})}}return n})();const eze=new ut("MAT_LIST_CONFIG");let Fb=(()=>{class n{constructor(){this._isNonInteractive=!0,this._disableRipple=!1,this._disabled=!1,this._defaultOptions=qt(eze,{optional:!0})}get disableRipple(){return this._disableRipple}set disableRipple(e){this._disableRipple=ta(e)}get disabled(){return this._disabled}set disabled(e){this._disabled=ta(e)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=$t({type:n,hostVars:1,hostBindings:function(i,r){2&i&&fi("aria-disabled",r.disabled)},inputs:{disableRipple:"disableRipple",disabled:"disabled"},standalone:!0})}}return n})(),tU=(()=>{class n{set lines(e){this._explicitLines=im(e,null),this._updateItemLines(!1)}get disableRipple(){return this.disabled||this._disableRipple||this._noopAnimations||!!this._listBase?.disableRipple}set disableRipple(e){this._disableRipple=ta(e)}get disabled(){return this._disabled||!!this._listBase?.disabled}set disabled(e){this._disabled=ta(e)}get rippleDisabled(){return this.disableRipple||!!this.rippleConfig.disabled}constructor(e,i,r,o,s,a){this._elementRef=e,this._ngZone=i,this._listBase=r,this._platform=o,this._explicitLines=null,this._disableRipple=!1,this._disabled=!1,this._subscriptions=new Kn,this._rippleRenderer=null,this._hasUnscopedTextContent=!1,this.rippleConfig=s||{},this._hostElement=this._elementRef.nativeElement,this._isButtonElement="button"===this._hostElement.nodeName.toLowerCase(),this._noopAnimations="NoopAnimations"===a,r&&!r._isNonInteractive&&this._initInteractiveListItem(),this._isButtonElement&&!this._hostElement.hasAttribute("type")&&this._hostElement.setAttribute("type","button")}ngAfterViewInit(){this._monitorProjectedLinesAndTitle(),this._updateItemLines(!0)}ngOnDestroy(){this._subscriptions.unsubscribe(),null!==this._rippleRenderer&&this._rippleRenderer._removeTriggerEvents()}_hasIconOrAvatar(){return!(!this._avatars.length&&!this._icons.length)}_initInteractiveListItem(){this._hostElement.classList.add("mat-mdc-list-item-interactive"),this._rippleRenderer=new D1(this,this._ngZone,this._hostElement,this._platform),this._rippleRenderer.setupTriggerEvents(this._hostElement)}_monitorProjectedLinesAndTitle(){this._ngZone.runOutsideAngular(()=>{this._subscriptions.add(ql(this._lines.changes,this._titles.changes).subscribe(()=>this._updateItemLines(!1)))})}_updateItemLines(e){if(!this._lines||!this._titles||!this._unscopedContent)return;e&&this._checkDomForUnscopedTextContent();const i=this._explicitLines??this._inferLinesFromContent(),r=this._unscopedContent.nativeElement;if(this._hostElement.classList.toggle("mat-mdc-list-item-single-line",i<=1),this._hostElement.classList.toggle("mdc-list-item--with-one-line",i<=1),this._hostElement.classList.toggle("mdc-list-item--with-two-lines",2===i),this._hostElement.classList.toggle("mdc-list-item--with-three-lines",3===i),this._hasUnscopedTextContent){const o=0===this._titles.length&&1===i;r.classList.toggle("mdc-list-item__primary-text",o),r.classList.toggle("mdc-list-item__secondary-text",!o)}else r.classList.remove("mdc-list-item__primary-text"),r.classList.remove("mdc-list-item__secondary-text")}_inferLinesFromContent(){let e=this._titles.length+this._lines.length;return this._hasUnscopedTextContent&&(e+=1),e}_checkDomForUnscopedTextContent(){this._hasUnscopedTextContent=Array.from(this._unscopedContent.nativeElement.childNodes).filter(e=>e.nodeType!==e.COMMENT_NODE).some(e=>!(!e.textContent||!e.textContent.trim()))}static{this.\u0275fac=function(i){return new(i||n)($(Vn),$(kn),$(Fb,8),$(eo),$(J0,8),$(ps,8))}}static{this.\u0275dir=$t({type:n,contentQueries:function(i,r,o){if(1&i&&(Vr(o,ZQe,4),Vr(o,JQe,4)),2&i){let s;un(s=hn())&&(r._avatars=s),un(s=hn())&&(r._icons=s)}},hostVars:4,hostBindings:function(i,r){2&i&&(fi("aria-disabled",r.disabled)("disabled",r._isButtonElement&&r.disabled||null),Qn("mdc-list-item--disabled",r.disabled))},inputs:{lines:"lines",disableRipple:"disableRipple",disabled:"disabled"},standalone:!0})}}return n})(),Yne=(()=>{class n extends Fb{static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=Zr(n)))(r||n)}})()}static{this.\u0275cmp=vt({type:n,selectors:[["mat-list"]],hostAttrs:[1,"mat-mdc-list","mat-mdc-list-base","mdc-list"],exportAs:["matList"],standalone:!0,features:[ui([{provide:Fb,useExisting:n}]),_i,Or],ngContentSelectors:qne,decls:1,vars:0,template:function(i,r){1&i&&($r(),Gn(0))},styles:['@media screen and (forced-colors: active),(-ms-high-contrast: active){.mdc-list-divider::after{content:"";display:block;border-bottom-width:1px;border-bottom-style:solid}}.mdc-list{margin:0;padding:8px 0;list-style-type:none}.mdc-list:focus{outline:none}.mdc-list-item__wrapper{display:block}.mdc-list-item{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;align-items:stretch;cursor:pointer}.mdc-list-item:focus{outline:none}.mdc-list-item.mdc-list-item--with-one-line{height:48px}.mdc-list-item.mdc-list-item--with-two-lines{height:64px}.mdc-list-item.mdc-list-item--with-three-lines{height:88px}.mdc-list-item.mdc-list-item--with-one-line .mdc-list-item__start{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--with-three-lines .mdc-list-item__start{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--with-one-line .mdc-list-item__end{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-two-lines .mdc-list-item__end{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--disabled,.mdc-list-item.mdc-list-item--non-interactive{cursor:auto}.mdc-list-item:not(.mdc-list-item--selected):focus::before,.mdc-list-item.mdc-ripple-upgraded--background-focused::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}@media screen and (forced-colors: active){.mdc-list-item:not(.mdc-list-item--selected):focus::before,.mdc-list-item.mdc-ripple-upgraded--background-focused::before{border-color:CanvasText}}.mdc-list-item.mdc-list-item--selected::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:3px double rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}@media screen and (forced-colors: active){.mdc-list-item.mdc-list-item--selected::before{border-color:CanvasText}}.mdc-list-item.mdc-list-item--selected:focus::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:3px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}@media screen and (forced-colors: active){.mdc-list-item.mdc-list-item--selected:focus::before{border-color:CanvasText}}a.mdc-list-item{color:inherit;text-decoration:none}.mdc-list-item__start{fill:currentColor;flex-shrink:0;pointer-events:none}.mdc-list-item__end{flex-shrink:0;pointer-events:none}.mdc-list-item__content{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;align-self:center;flex:1;pointer-events:none}.mdc-list-item--with-two-lines .mdc-list-item__content,.mdc-list-item--with-three-lines .mdc-list-item__content{align-self:stretch}.mdc-list-item__content[for]{pointer-events:none}.mdc-list-item__primary-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mdc-list-item--with-two-lines .mdc-list-item__primary-text,.mdc-list-item--with-three-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before,.mdc-list-item--with-three-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after,.mdc-list-item--with-three-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item__secondary-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;display:block;margin-top:0;line-height:normal}.mdc-list-item__secondary-text::before{display:inline-block;width:0;height:20px;content:"";vertical-align:0}.mdc-list-item--with-three-lines .mdc-list-item__secondary-text{white-space:normal;line-height:20px}.mdc-list-item--with-overline .mdc-list-item__secondary-text{white-space:nowrap;line-height:auto}.mdc-list-item__overline-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:24px;content:"";vertical-align:0}.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-three-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-three-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-three-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-avatar.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-avatar.mdc-list-item,.mdc-list-item--with-leading-avatar.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-avatar .mdc-list-item__start{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-leading-avatar .mdc-list-item__start,.mdc-list-item--with-leading-avatar .mdc-list-item__start[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-avatar.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-avatar .mdc-list-item__start{border-radius:50%}.mdc-list-item--with-leading-icon.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-icon.mdc-list-item,.mdc-list-item--with-leading-icon.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-icon .mdc-list-item__start{margin-left:16px;margin-right:32px}[dir=rtl] .mdc-list-item--with-leading-icon .mdc-list-item__start,.mdc-list-item--with-leading-icon .mdc-list-item__start[dir=rtl]{margin-left:32px;margin-right:16px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-icon.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-thumbnail.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-thumbnail.mdc-list-item,.mdc-list-item--with-leading-thumbnail.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-thumbnail .mdc-list-item__start{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-leading-thumbnail .mdc-list-item__start,.mdc-list-item--with-leading-thumbnail .mdc-list-item__start[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-image.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-image.mdc-list-item,.mdc-list-item--with-leading-image.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-image .mdc-list-item__start{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-leading-image .mdc-list-item__start,.mdc-list-item--with-leading-image .mdc-list-item__start[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-image.mdc-list-item--with-one-line{height:72px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:8px}.mdc-list-item--with-leading-video.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-video.mdc-list-item,.mdc-list-item--with-leading-video.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-video .mdc-list-item__start{margin-left:0;margin-right:16px}[dir=rtl] .mdc-list-item--with-leading-video .mdc-list-item__start,.mdc-list-item--with-leading-video .mdc-list-item__start[dir=rtl]{margin-left:16px;margin-right:0}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-video.mdc-list-item--with-one-line{height:72px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-checkbox.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-checkbox.mdc-list-item,.mdc-list-item--with-leading-checkbox.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-checkbox .mdc-list-item__start{margin-left:8px;margin-right:24px}[dir=rtl] .mdc-list-item--with-leading-checkbox .mdc-list-item__start,.mdc-list-item--with-leading-checkbox .mdc-list-item__start[dir=rtl]{margin-left:24px;margin-right:8px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:8px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-radio.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-radio.mdc-list-item,.mdc-list-item--with-leading-radio.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-radio .mdc-list-item__start{margin-left:8px;margin-right:24px}[dir=rtl] .mdc-list-item--with-leading-radio .mdc-list-item__start,.mdc-list-item--with-leading-radio .mdc-list-item__start[dir=rtl]{margin-left:24px;margin-right:8px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:8px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-radio.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-switch.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-switch.mdc-list-item,.mdc-list-item--with-leading-switch.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-switch .mdc-list-item__start{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-leading-switch .mdc-list-item__start,.mdc-list-item--with-leading-switch .mdc-list-item__start[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:16px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-switch.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-trailing-icon.mdc-list-item{padding-left:auto;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-icon.mdc-list-item,.mdc-list-item--with-trailing-icon.mdc-list-item[dir=rtl]{padding-left:0;padding-right:auto}.mdc-list-item--with-trailing-icon .mdc-list-item__end{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-trailing-icon .mdc-list-item__end,.mdc-list-item--with-trailing-icon .mdc-list-item__end[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-trailing-meta.mdc-list-item--with-two-lines .mdc-list-item__end{align-self:flex-start;margin-top:0}.mdc-list-item--with-trailing-meta.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:0}.mdc-list-item--with-trailing-meta.mdc-list-item{padding-left:auto;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-meta.mdc-list-item,.mdc-list-item--with-trailing-meta.mdc-list-item[dir=rtl]{padding-left:0;padding-right:auto}.mdc-list-item--with-trailing-meta .mdc-list-item__end{margin-left:28px;margin-right:16px}[dir=rtl] .mdc-list-item--with-trailing-meta .mdc-list-item__end,.mdc-list-item--with-trailing-meta .mdc-list-item__end[dir=rtl]{margin-left:16px;margin-right:28px}.mdc-list-item--with-trailing-meta.mdc-list-item--with-two-lines .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-trailing-meta.mdc-list-item--with-two-lines .mdc-list-item__end::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-trailing-meta.mdc-list-item--with-three-lines .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-trailing-meta.mdc-list-item--with-three-lines .mdc-list-item__end::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-trailing-meta .mdc-list-item__end{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-caption-font-family);font-size:var(--mdc-typography-caption-font-size);line-height:var(--mdc-typography-caption-line-height);font-weight:var(--mdc-typography-caption-font-weight);letter-spacing:var(--mdc-typography-caption-letter-spacing);text-decoration:var(--mdc-typography-caption-text-decoration);text-transform:var(--mdc-typography-caption-text-transform)}.mdc-list-item--with-trailing-checkbox.mdc-list-item{padding-left:auto;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-checkbox.mdc-list-item,.mdc-list-item--with-trailing-checkbox.mdc-list-item[dir=rtl]{padding-left:0;padding-right:auto}.mdc-list-item--with-trailing-checkbox .mdc-list-item__end{margin-left:24px;margin-right:8px}[dir=rtl] .mdc-list-item--with-trailing-checkbox .mdc-list-item__end,.mdc-list-item--with-trailing-checkbox .mdc-list-item__end[dir=rtl]{margin-left:8px;margin-right:24px}.mdc-list-item--with-trailing-checkbox.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:8px}.mdc-list-item--with-trailing-radio.mdc-list-item{padding-left:auto;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-radio.mdc-list-item,.mdc-list-item--with-trailing-radio.mdc-list-item[dir=rtl]{padding-left:0;padding-right:auto}.mdc-list-item--with-trailing-radio .mdc-list-item__end{margin-left:24px;margin-right:8px}[dir=rtl] .mdc-list-item--with-trailing-radio .mdc-list-item__end,.mdc-list-item--with-trailing-radio .mdc-list-item__end[dir=rtl]{margin-left:8px;margin-right:24px}.mdc-list-item--with-trailing-radio.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:8px}.mdc-list-item--with-trailing-switch.mdc-list-item{padding-left:auto;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-switch.mdc-list-item,.mdc-list-item--with-trailing-switch.mdc-list-item[dir=rtl]{padding-left:0;padding-right:auto}.mdc-list-item--with-trailing-switch .mdc-list-item__end{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-trailing-switch .mdc-list-item__end,.mdc-list-item--with-trailing-switch .mdc-list-item__end[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-trailing-switch.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:16px}.mdc-list-item--with-overline.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-overline.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:20px;content:"";vertical-align:0}.mdc-list-item--with-overline.mdc-list-item--with-three-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-overline.mdc-list-item--with-three-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:20px;content:"";vertical-align:0}.mdc-list-item{padding-left:16px;padding-right:16px}[dir=rtl] .mdc-list-item,.mdc-list-item[dir=rtl]{padding-left:16px;padding-right:16px}.mdc-list-group .mdc-deprecated-list{padding:0}.mdc-list-group__subheader{margin:calc((3rem - 1.5rem)/2) 16px}.mdc-list-divider{padding:0;background-clip:content-box}.mdc-list-divider.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-text.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-icon.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-image.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-avatar.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-switch.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-radio.mdc-list-divider--with-leading-inset{padding-left:16px;padding-right:auto}[dir=rtl] .mdc-list-divider.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-text.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-icon.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-image.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-avatar.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-switch.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-radio.mdc-list-divider--with-leading-inset,.mdc-list-divider.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-text.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-icon.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-image.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-avatar.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-switch.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-radio.mdc-list-divider--with-leading-inset[dir=rtl]{padding-left:auto;padding-right:16px}.mdc-list-divider.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-text.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-icon.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-image.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-avatar.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-switch.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-radio.mdc-list-divider--with-trailing-inset{padding-left:auto;padding-right:16px}[dir=rtl] .mdc-list-divider.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-text.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-icon.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-image.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-avatar.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-switch.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-radio.mdc-list-divider--with-trailing-inset,.mdc-list-divider.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-text.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-icon.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-image.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-avatar.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-switch.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-radio.mdc-list-divider--with-trailing-inset[dir=rtl]{padding-left:16px;padding-right:auto}.mdc-list-divider--with-leading-video.mdc-list-divider--with-leading-inset{padding-left:0px;padding-right:auto}[dir=rtl] .mdc-list-divider--with-leading-video.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-video.mdc-list-divider--with-leading-inset[dir=rtl]{padding-left:auto;padding-right:0px}[dir=rtl] .mdc-list-divider,.mdc-list-divider[dir=rtl]{padding:0}.mdc-list-item{background-color:var(--mdc-list-list-item-container-color)}.mdc-list-item.mdc-list-item--selected{background-color:var(--mdc-list-list-item-selected-container-color)}.mdc-list-item--with-one-line{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item--with-one-line.mdc-list-item--with-leading-avatar,.mdc-list-item--with-one-line.mdc-list-item--with-leading-icon,.mdc-list-item--with-one-line.mdc-list-item--with-leading-thumbnail,.mdc-list-item--with-one-line.mdc-list-item--with-leading-checkbox,.mdc-list-item--with-one-line.mdc-list-item--with-leading-radio,.mdc-list-item--with-one-line.mdc-list-item--with-leading-switch{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item--with-one-line.mdc-list-item--with-leading-image,.mdc-list-item--with-one-line.mdc-list-item--with-leading-video{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item--with-two-lines{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item--with-two-lines.mdc-list-item--with-leading-avatar,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-icon,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-thumbnail,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-checkbox,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-radio,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-switch,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-image,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-video{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item--with-three-lines{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item.mdc-list-item--with-one-line{height:var(--mdc-list-list-item-one-line-container-height)}.mdc-list-item.mdc-list-item--with-two-lines{height:var(--mdc-list-list-item-two-line-container-height)}.mdc-list-item.mdc-list-item--with-three-lines{height:var(--mdc-list-list-item-three-line-container-height)}.mdc-list-item__primary-text{color:var(--mdc-list-list-item-label-text-color)}.mdc-list-item__primary-text{font-family:var(--mdc-list-list-item-label-text-font);line-height:var(--mdc-list-list-item-label-text-line-height);font-size:var(--mdc-list-list-item-label-text-size);font-weight:var(--mdc-list-list-item-label-text-weight);letter-spacing:var(--mdc-list-list-item-label-text-tracking)}.mdc-list-item__secondary-text{color:var(--mdc-list-list-item-supporting-text-color)}.mdc-list-item__secondary-text{font-family:var(--mdc-list-list-item-supporting-text-font);line-height:var(--mdc-list-list-item-supporting-text-line-height);font-size:var(--mdc-list-list-item-supporting-text-size);font-weight:var(--mdc-list-list-item-supporting-text-weight);letter-spacing:var(--mdc-list-list-item-supporting-text-tracking)}.mdc-list-item--with-leading-icon .mdc-list-item__start{color:var(--mdc-list-list-item-leading-icon-color)}.mdc-list-item--with-leading-icon .mdc-list-item__start{width:var(--mdc-list-list-item-leading-icon-size);height:var(--mdc-list-list-item-leading-icon-size)}.mdc-list-item--with-leading-icon .mdc-list-item__start>i{font-size:var(--mdc-list-list-item-leading-icon-size)}.mdc-list-item--with-leading-icon .mdc-list-item__start .mdc-list-item__icon{font-size:var(--mdc-list-list-item-leading-icon-size);width:var(--mdc-list-list-item-leading-icon-size);height:var(--mdc-list-list-item-leading-icon-size)}.mdc-list-item--with-leading-icon .mdc-list-item__start .mdc-list-item__icon,.mdc-list-item--with-leading-icon .mdc-list-item__start .mdc-list-item__icon>.materialdesignWizIconSvgsSvgIcon{display:block}.mdc-list-item--with-leading-avatar .mdc-list-item__start{width:var(--mdc-list-list-item-leading-avatar-size);height:var(--mdc-list-list-item-leading-avatar-size)}.mdc-list-item.mdc-list-item--with-trailing-meta .mdc-list-item__end{color:var(--mdc-list-list-item-trailing-supporting-text-color)}.mdc-list-item--with-trailing-meta .mdc-list-item__end{font-family:var(--mdc-list-list-item-trailing-supporting-text-font);line-height:var(--mdc-list-list-item-trailing-supporting-text-line-height);font-size:var(--mdc-list-list-item-trailing-supporting-text-size);font-weight:var(--mdc-list-list-item-trailing-supporting-text-weight);letter-spacing:var(--mdc-list-list-item-trailing-supporting-text-tracking)}.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mdc-list-list-item-trailing-icon-color)}.mdc-list-item--with-trailing-icon .mdc-list-item__end{width:var(--mdc-list-list-item-trailing-icon-size);height:var(--mdc-list-list-item-trailing-icon-size)}.mdc-list-item--with-trailing-icon .mdc-list-item__end>i{font-size:var(--mdc-list-list-item-trailing-icon-size)}.mdc-list-item--with-trailing-icon .mdc-list-item__end .mdc-list-item__icon{font-size:var(--mdc-list-list-item-trailing-icon-size);width:var(--mdc-list-list-item-trailing-icon-size);height:var(--mdc-list-list-item-trailing-icon-size)}.mdc-list-item--with-trailing-icon .mdc-list-item__end .mdc-list-item__icon,.mdc-list-item--with-trailing-icon .mdc-list-item__end .mdc-list-item__icon>.materialdesignWizIconSvgsSvgIcon{display:block}.mdc-list-item--selected.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mdc-list-list-item-selected-trailing-icon-color)}.mdc-list-item--disabled .mdc-list-item__start,.mdc-list-item--disabled .mdc-list-item__content,.mdc-list-item--disabled .mdc-list-item__end{opacity:1}.mdc-list-item--disabled .mdc-list-item__primary-text,.mdc-list-item--disabled .mdc-list-item__secondary-text,.mdc-list-item--disabled .mdc-list-item__overline-text{opacity:var(--mdc-list-list-item-disabled-label-text-opacity)}.mdc-list-item--disabled.mdc-list-item--with-leading-icon .mdc-list-item__start{color:var(--mdc-list-list-item-disabled-leading-icon-color)}.mdc-list-item--disabled.mdc-list-item--with-leading-icon .mdc-list-item__start{opacity:var(--mdc-list-list-item-disabled-leading-icon-opacity)}.mdc-list-item--disabled.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mdc-list-list-item-disabled-trailing-icon-color)}.mdc-list-item--disabled.mdc-list-item--with-trailing-icon .mdc-list-item__end{opacity:var(--mdc-list-list-item-disabled-trailing-icon-opacity)}.mdc-list-item:hover .mdc-list-item__primary-text{color:var(--mdc-list-list-item-hover-label-text-color)}.mdc-list-item--with-leading-icon:hover .mdc-list-item__start{color:var(--mdc-list-list-item-hover-leading-icon-color)}.mdc-list-item--with-trailing-icon:hover .mdc-list-item__end{color:var(--mdc-list-list-item-hover-trailing-icon-color)}.mdc-list-item:focus .mdc-list-item__primary-text{color:var(--mdc-list-list-item-focus-label-text-color)}.mdc-list-item.mdc-list-item--disabled .mdc-list-item__primary-text{color:var(--mdc-list-list-item-disabled-label-text-color)}.mdc-list-item:hover::before{background-color:var(--mdc-list-list-item-hover-state-layer-color);opacity:var(--mdc-list-list-item-hover-state-layer-opacity)}.mdc-list-item.mdc-list-item--disabled::before{background-color:var(--mdc-list-list-item-disabled-state-layer-color);opacity:var(--mdc-list-list-item-disabled-state-layer-opacity)}.mdc-list-item:focus::before{background-color:var(--mdc-list-list-item-focus-state-layer-color);opacity:var(--mdc-list-list-item-focus-state-layer-opacity)}.mdc-list-item--disabled .mdc-radio,.mdc-list-item--disabled .mdc-checkbox{opacity:var(--mdc-list-list-item-disabled-label-text-opacity)}.mdc-list-item--with-leading-avatar .mat-mdc-list-item-avatar{border-radius:var(--mdc-list-list-item-leading-avatar-shape);background-color:var(--mdc-list-list-item-leading-avatar-color)}.mat-mdc-list-item-icon{font-size:var(--mdc-list-list-item-leading-icon-size)}.cdk-high-contrast-active a.mdc-list-item--activated::after{content:"";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}.cdk-high-contrast-active a.mdc-list-item--activated [dir=rtl]::after{right:auto;left:16px}.mat-mdc-list-base{display:block}.mat-mdc-list-base .mdc-list-item__start,.mat-mdc-list-base .mdc-list-item__end,.mat-mdc-list-base .mdc-list-item__content{pointer-events:auto}.mat-mdc-list-item,.mat-mdc-list-option{width:100%;box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-list-item:not(.mat-mdc-list-item-interactive),.mat-mdc-list-option:not(.mat-mdc-list-item-interactive){cursor:default}.mat-mdc-list-item .mat-divider-inset,.mat-mdc-list-option .mat-divider-inset{position:absolute;left:0;right:0;bottom:0}.mat-mdc-list-item .mat-mdc-list-item-avatar~.mat-divider-inset,.mat-mdc-list-option .mat-mdc-list-item-avatar~.mat-divider-inset{margin-left:72px}[dir=rtl] .mat-mdc-list-item .mat-mdc-list-item-avatar~.mat-divider-inset,[dir=rtl] .mat-mdc-list-option .mat-mdc-list-item-avatar~.mat-divider-inset{margin-right:72px}.mat-mdc-list-item-interactive::before{top:0;left:0;right:0;bottom:0;position:absolute;content:"";opacity:0;pointer-events:none}.mat-mdc-list-item>.mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-mdc-list-item:focus>.mat-mdc-focus-indicator::before{content:""}.mat-mdc-list-item.mdc-list-item--with-three-lines .mat-mdc-list-item-line.mdc-list-item__secondary-text{white-space:nowrap;line-height:normal}.mat-mdc-list-item.mdc-list-item--with-three-lines .mat-mdc-list-item-unscoped-content.mdc-list-item__secondary-text{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}mat-action-list button{background:none;color:inherit;border:none;font:inherit;outline:inherit;-webkit-tap-highlight-color:rgba(0,0,0,0);text-align:start}mat-action-list button::-moz-focus-inner{border:0}.mdc-list-item--with-leading-icon .mdc-list-item__start{margin-inline-start:var(--mat-list-list-item-leading-icon-start-space);margin-inline-end:var(--mat-list-list-item-leading-icon-end-space)}a.mdc-list-item.mdc-list-item--activated{background-color:var(--mat-list-active-indicator-color)}a.mdc-list-item.mdc-list-item--activated.mdc-list-item{border-radius:var(--mat-list-active-indicator-shape)}'],encapsulation:2,changeDetection:0})}}return n})(),Zne=(()=>{class n extends tU{get activated(){return this._activated}set activated(e){this._activated=ta(e)}constructor(e,i,r,o,s,a){super(e,i,r,o,s,a),this._activated=!1}_getAriaCurrent(){return"A"===this._hostElement.nodeName&&this._activated?"page":null}static{this.\u0275fac=function(i){return new(i||n)($(Vn),$(kn),$(Fb,8),$(eo),$(J0,8),$(ps,8))}}static{this.\u0275cmp=vt({type:n,selectors:[["mat-list-item"],["a","mat-list-item",""],["button","mat-list-item",""]],contentQueries:function(i,r,o){if(1&i&&(Vr(o,Xne,5),Vr(o,jne,5),Vr(o,YQe,5)),2&i){let s;un(s=hn())&&(r._lines=s),un(s=hn())&&(r._titles=s),un(s=hn())&&(r._meta=s)}},viewQuery:function(i,r){if(1&i&&(ei(Wne,5),ei(DQe,5)),2&i){let o;un(o=hn())&&(r._unscopedContent=o.first),un(o=hn())&&(r._itemText=o.first)}},hostAttrs:[1,"mat-mdc-list-item","mdc-list-item"],hostVars:11,hostBindings:function(i,r){2&i&&(fi("aria-current",r._getAriaCurrent()),Qn("mdc-list-item--activated",r.activated)("mdc-list-item--with-leading-avatar",0!==r._avatars.length)("mdc-list-item--with-leading-icon",0!==r._icons.length)("mdc-list-item--with-trailing-meta",0!==r._meta.length)("_mat-animation-noopable",r._noopAnimations))},inputs:{activated:"activated"},exportAs:["matListItem"],standalone:!0,features:[_i,Or],ngContentSelectors:BQe,decls:10,vars:0,consts:[["unscopedContent",""],[1,"mdc-list-item__content"],[1,"mat-mdc-list-item-unscoped-content",3,"cdkObserveContent"],[1,"mat-mdc-focus-indicator"]],template:function(i,r){if(1&i){const o=Pn();$r(kQe),Gn(0),P(1,"span",1),Gn(2,1),Gn(3,2),P(4,"span",2,0),We("cdkObserveContent",function(){return Vt(o),Ot(r._updateItemLines(!0))}),Gn(6,3),H()(),Gn(7,4),Gn(8,5),xe(9,"div",3)}},dependencies:[VG],encapsulation:2,changeDetection:0})}}return n})(),eie=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[GP,gn,hr,e_,AW,CO]})}}return n})(),oze=0;const nU=new ut("CdkAccordion");let sze=(()=>{class n{constructor(){this._stateChanges=new Hn,this._openCloseAllActions=new Hn,this.id="cdk-accordion-"+oze++,this.multi=!1}openAll(){this.multi&&this._openCloseAllActions.next(!0)}closeAll(){this._openCloseAllActions.next(!1)}ngOnChanges(e){this._stateChanges.next(e)}ngOnDestroy(){this._stateChanges.complete(),this._openCloseAllActions.complete()}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=$t({type:n,selectors:[["cdk-accordion"],["","cdkAccordion",""]],inputs:{multi:[Ct.HasDecoratorInputTransform,"multi","multi",Zn]},exportAs:["cdkAccordion"],standalone:!0,features:[ui([{provide:nU,useExisting:n}]),es,wr]})}}return n})(),aze=0,lze=(()=>{class n{get expanded(){return this._expanded}set expanded(e){this._expanded!==e&&(this._expanded=e,this.expandedChange.emit(e),e?(this.opened.emit(),this._expansionDispatcher.notify(this.id,this.accordion?this.accordion.id:this.id)):this.closed.emit(),this._changeDetectorRef.markForCheck())}constructor(e,i,r){this.accordion=e,this._changeDetectorRef=i,this._expansionDispatcher=r,this._openCloseAllSubscription=Kn.EMPTY,this.closed=new Bn,this.opened=new Bn,this.destroyed=new Bn,this.expandedChange=new Bn,this.id="cdk-accordion-child-"+aze++,this._expanded=!1,this.disabled=!1,this._removeUniqueSelectionListener=()=>{},this._removeUniqueSelectionListener=r.listen((o,s)=>{this.accordion&&!this.accordion.multi&&this.accordion.id===s&&this.id!==o&&(this.expanded=!1)}),this.accordion&&(this._openCloseAllSubscription=this._subscribeToOpenCloseAllActions())}ngOnDestroy(){this.opened.complete(),this.closed.complete(),this.destroyed.emit(),this.destroyed.complete(),this._removeUniqueSelectionListener(),this._openCloseAllSubscription.unsubscribe()}toggle(){this.disabled||(this.expanded=!this.expanded)}close(){this.disabled||(this.expanded=!1)}open(){this.disabled||(this.expanded=!0)}_subscribeToOpenCloseAllActions(){return this.accordion._openCloseAllActions.subscribe(e=>{this.disabled||(this.expanded=e)})}static{this.\u0275fac=function(i){return new(i||n)($(nU,12),$(_o),$(WY))}}static{this.\u0275dir=$t({type:n,selectors:[["cdk-accordion-item"],["","cdkAccordionItem",""]],inputs:{expanded:[Ct.HasDecoratorInputTransform,"expanded","expanded",Zn],disabled:[Ct.HasDecoratorInputTransform,"disabled","disabled",Zn]},outputs:{closed:"closed",opened:"opened",destroyed:"destroyed",expandedChange:"expandedChange"},exportAs:["cdkAccordionItem"],standalone:!0,features:[ui([{provide:nU,useValue:void 0}]),es]})}}return n})(),cze=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({})}}return n})();const dze=["body"],uze=[[["mat-expansion-panel-header"]],"*",[["mat-action-row"]]],hze=["mat-expansion-panel-header","*","mat-action-row"];function fze(n,t){}const mze=[[["mat-panel-title"]],[["mat-panel-description"]],"*"],pze=["mat-panel-title","mat-panel-description","*"];function Aze(n,t){1&n&&(P(0,"span",1),kl(),P(1,"svg",2),xe(2,"path",3),H()()),2&n&&pe("@indicatorRotate",He()._getExpandedState())}const iU=new ut("MAT_ACCORDION"),tie="225ms cubic-bezier(0.4,0.0,0.2,1)",nie={indicatorRotate:Sh("indicatorRotate",[Cc("collapsed, void",qo({transform:"rotate(0deg)"})),Cc("expanded",qo({transform:"rotate(180deg)"})),Gl("expanded <=> collapsed, void => collapsed",xc(tie))]),bodyExpansion:Sh("bodyExpansion",[Cc("collapsed, void",qo({height:"0px",visibility:"hidden"})),Cc("expanded",qo({height:"*",visibility:""})),Gl("expanded <=> collapsed, void => collapsed",xc(tie))])},iie=new ut("MAT_EXPANSION_PANEL");let gze=(()=>{class n{constructor(e,i){this._template=e,this._expansionPanel=i}static{this.\u0275fac=function(i){return new(i||n)($(Vl),$(iie,8))}}static{this.\u0275dir=$t({type:n,selectors:[["ng-template","matExpansionPanelContent",""]],standalone:!0})}}return n})(),_ze=0;const rie=new ut("MAT_EXPANSION_PANEL_DEFAULT_OPTIONS");let oie=(()=>{class n extends lze{get hideToggle(){return this._hideToggle||this.accordion&&this.accordion.hideToggle}set hideToggle(e){this._hideToggle=e}get togglePosition(){return this._togglePosition||this.accordion&&this.accordion.togglePosition}set togglePosition(e){this._togglePosition=e}constructor(e,i,r,o,s,a,l){super(e,i,r),this._viewContainerRef=o,this._animationMode=a,this._hideToggle=!1,this.afterExpand=new Bn,this.afterCollapse=new Bn,this._inputChanges=new Hn,this._headerId="mat-expansion-panel-header-"+_ze++,this.accordion=e,this._document=s,this._animationsDisabled="NoopAnimations"===a,l&&(this.hideToggle=l.hideToggle)}_hasSpacing(){return!!this.accordion&&this.expanded&&"default"===this.accordion.displayMode}_getExpandedState(){return this.expanded?"expanded":"collapsed"}toggle(){this.expanded=!this.expanded}close(){this.expanded=!1}open(){this.expanded=!0}ngAfterContentInit(){this._lazyContent&&this._lazyContent._expansionPanel===this&&this.opened.pipe(dd(null),Vi(()=>this.expanded&&!this._portal),zo(1)).subscribe(()=>{this._portal=new M1(this._lazyContent._template,this._viewContainerRef)})}ngOnChanges(e){this._inputChanges.next(e)}ngOnDestroy(){super.ngOnDestroy(),this._inputChanges.complete()}_containsFocus(){if(this._body){const e=this._document.activeElement,i=this._body.nativeElement;return e===i||i.contains(e)}return!1}_animationStarted(e){!sie(e)&&!this._animationsDisabled&&this._body&&this._body?.nativeElement.setAttribute("inert","")}_animationDone(e){sie(e)||("expanded"===e.toState?this.afterExpand.emit():"collapsed"===e.toState&&this.afterCollapse.emit(),!this._animationsDisabled&&this._body&&this._body.nativeElement.removeAttribute("inert"))}static{this.\u0275fac=function(i){return new(i||n)($(iU,12),$(_o),$(WY),$(ua),$(Bi),$(ps,8),$(rie,8))}}static{this.\u0275cmp=vt({type:n,selectors:[["mat-expansion-panel"]],contentQueries:function(i,r,o){if(1&i&&Vr(o,gze,5),2&i){let s;un(s=hn())&&(r._lazyContent=s.first)}},viewQuery:function(i,r){if(1&i&&ei(dze,5),2&i){let o;un(o=hn())&&(r._body=o.first)}},hostAttrs:[1,"mat-expansion-panel"],hostVars:6,hostBindings:function(i,r){2&i&&Qn("mat-expanded",r.expanded)("_mat-animation-noopable",r._animationsDisabled)("mat-expansion-panel-spacing",r._hasSpacing())},inputs:{hideToggle:[Ct.HasDecoratorInputTransform,"hideToggle","hideToggle",Zn],togglePosition:"togglePosition"},outputs:{afterExpand:"afterExpand",afterCollapse:"afterCollapse"},exportAs:["matExpansionPanel"],standalone:!0,features:[ui([{provide:iU,useValue:void 0},{provide:iie,useExisting:n}]),es,_i,wr,Or],ngContentSelectors:hze,decls:7,vars:4,consts:[["body",""],["role","region",1,"mat-expansion-panel-content",3,"id"],[1,"mat-expansion-panel-body"],[3,"cdkPortalOutlet"]],template:function(i,r){if(1&i){const o=Pn();$r(uze),Gn(0),P(1,"div",1,0),We("@bodyExpansion.start",function(a){return Vt(o),Ot(r._animationStarted(a))})("@bodyExpansion.done",function(a){return Vt(o),Ot(r._animationDone(a))}),P(3,"div",2),Gn(4,1),At(5,fze,0,0,"ng-template",3),H(),Gn(6,2),H()}2&i&&(U(),pe("@bodyExpansion",r._getExpandedState())("id",r.id),fi("aria-labelledby",r._headerId),U(4),pe("cdkPortalOutlet",r._portal))},dependencies:[l2],styles:['.mat-expansion-panel{box-sizing:content-box;display:block;margin:0;overflow:hidden;transition:margin 225ms cubic-bezier(0.4, 0, 0.2, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);position:relative;background:var(--mat-expansion-container-background-color);color:var(--mat-expansion-container-text-color);border-radius:var(--mat-expansion-container-shape)}.mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)}.mat-accordion .mat-expansion-panel:not(.mat-expanded),.mat-accordion .mat-expansion-panel:not(.mat-expansion-panel-spacing){border-radius:0}.mat-accordion .mat-expansion-panel:first-of-type{border-top-right-radius:var(--mat-expansion-container-shape);border-top-left-radius:var(--mat-expansion-container-shape)}.mat-accordion .mat-expansion-panel:last-of-type{border-bottom-right-radius:var(--mat-expansion-container-shape);border-bottom-left-radius:var(--mat-expansion-container-shape)}.cdk-high-contrast-active .mat-expansion-panel{outline:solid 1px}.mat-expansion-panel.ng-animate-disabled,.ng-animate-disabled .mat-expansion-panel,.mat-expansion-panel._mat-animation-noopable{transition:none}.mat-expansion-panel-content{display:flex;flex-direction:column;overflow:visible;font-family:var(--mat-expansion-container-text-font);font-size:var(--mat-expansion-container-text-size);font-weight:var(--mat-expansion-container-text-weight);line-height:var(--mat-expansion-container-text-line-height);letter-spacing:var(--mat-expansion-container-text-tracking)}.mat-expansion-panel-content[style*="visibility: hidden"] *{visibility:hidden !important}.mat-expansion-panel-body{padding:0 24px 16px}.mat-expansion-panel-spacing{margin:16px 0}.mat-accordion>.mat-expansion-panel-spacing:first-child,.mat-accordion>*:first-child:not(.mat-expansion-panel) .mat-expansion-panel-spacing{margin-top:0}.mat-accordion>.mat-expansion-panel-spacing:last-child,.mat-accordion>*:last-child:not(.mat-expansion-panel) .mat-expansion-panel-spacing{margin-bottom:0}.mat-action-row{border-top-style:solid;border-top-width:1px;display:flex;flex-direction:row;justify-content:flex-end;padding:16px 8px 16px 24px;border-top-color:var(--mat-expansion-actions-divider-color)}.mat-action-row .mat-button-base,.mat-action-row .mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-action-row .mat-button-base,[dir=rtl] .mat-action-row .mat-mdc-button-base{margin-left:0;margin-right:8px}'],encapsulation:2,data:{animation:[nie.bodyExpansion]},changeDetection:0})}}return n})();function sie(n){return"void"===n.fromState}let aie=(()=>{class n{constructor(e,i,r,o,s,a,l){this.panel=e,this._element=i,this._focusMonitor=r,this._changeDetectorRef=o,this._animationMode=a,this._parentChangeSubscription=Kn.EMPTY,this.tabIndex=0;const c=e.accordion?e.accordion._stateChanges.pipe(Vi(d=>!(!d.hideToggle&&!d.togglePosition))):U0;this.tabIndex=parseInt(l||"")||0,this._parentChangeSubscription=ql(e.opened,e.closed,c,e._inputChanges.pipe(Vi(d=>!!(d.hideToggle||d.disabled||d.togglePosition)))).subscribe(()=>this._changeDetectorRef.markForCheck()),e.closed.pipe(Vi(()=>e._containsFocus())).subscribe(()=>r.focusVia(i,"program")),s&&(this.expandedHeight=s.expandedHeight,this.collapsedHeight=s.collapsedHeight)}get disabled(){return this.panel.disabled}_toggle(){this.disabled||this.panel.toggle()}_isExpanded(){return this.panel.expanded}_getExpandedState(){return this.panel._getExpandedState()}_getPanelId(){return this.panel.id}_getTogglePosition(){return this.panel.togglePosition}_showToggle(){return!this.panel.hideToggle&&!this.panel.disabled}_getHeaderHeight(){const e=this._isExpanded();return e&&this.expandedHeight?this.expandedHeight:!e&&this.collapsedHeight?this.collapsedHeight:null}_keydown(e){switch(e.keyCode){case 32:case 13:cd(e)||(e.preventDefault(),this._toggle());break;default:return void(this.panel.accordion&&this.panel.accordion._handleHeaderKeydown(e))}}focus(e,i){e?this._focusMonitor.focusVia(this._element,e,i):this._element.nativeElement.focus(i)}ngAfterViewInit(){this._focusMonitor.monitor(this._element).subscribe(e=>{e&&this.panel.accordion&&this.panel.accordion._handleHeaderFocus(this)})}ngOnDestroy(){this._parentChangeSubscription.unsubscribe(),this._focusMonitor.stopMonitoring(this._element)}static{this.\u0275fac=function(i){return new(i||n)($(oie,1),$(Vn),$(Ch),$(_o),$(rie,8),$(ps,8),Ll("tabindex"))}}static{this.\u0275cmp=vt({type:n,selectors:[["mat-expansion-panel-header"]],hostAttrs:["role","button",1,"mat-expansion-panel-header","mat-focus-indicator"],hostVars:15,hostBindings:function(i,r){1&i&&We("click",function(){return r._toggle()})("keydown",function(s){return r._keydown(s)}),2&i&&(fi("id",r.panel._headerId)("tabindex",r.disabled?-1:r.tabIndex)("aria-controls",r._getPanelId())("aria-expanded",r._isExpanded())("aria-disabled",r.panel.disabled),Hi("height",r._getHeaderHeight()),Qn("mat-expanded",r._isExpanded())("mat-expansion-toggle-indicator-after","after"===r._getTogglePosition())("mat-expansion-toggle-indicator-before","before"===r._getTogglePosition())("_mat-animation-noopable","NoopAnimations"===r._animationMode))},inputs:{expandedHeight:"expandedHeight",collapsedHeight:"collapsedHeight",tabIndex:[Ct.HasDecoratorInputTransform,"tabIndex","tabIndex",e=>null==e?0:ha(e)]},standalone:!0,features:[es,Or],ngContentSelectors:pze,decls:5,vars:3,consts:[[1,"mat-content"],[1,"mat-expansion-indicator"],["xmlns","http://www.w3.org/2000/svg","viewBox","0 -960 960 960","aria-hidden","true","focusable","false"],["d","M480-345 240-585l56-56 184 184 184-184 56 56-240 240Z"]],template:function(i,r){1&i&&($r(mze),P(0,"span",0),Gn(1),Gn(2,1),Gn(3,2),H(),At(4,Aze,3,1,"span",1)),2&i&&(Qn("mat-content-hide-toggle",!r._showToggle()),U(4),It(4,r._showToggle()?4:-1))},styles:['.mat-expansion-panel-header{display:flex;flex-direction:row;align-items:center;padding:0 24px;border-radius:inherit;transition:height 225ms cubic-bezier(0.4, 0, 0.2, 1);height:var(--mat-expansion-header-collapsed-state-height);font-family:var(--mat-expansion-header-text-font);font-size:var(--mat-expansion-header-text-size);font-weight:var(--mat-expansion-header-text-weight);line-height:var(--mat-expansion-header-text-line-height);letter-spacing:var(--mat-expansion-header-text-tracking)}.mat-expansion-panel-header.mat-expanded{height:var(--mat-expansion-header-expanded-state-height)}.mat-expansion-panel-header[aria-disabled=true]{color:var(--mat-expansion-header-disabled-state-text-color)}.mat-expansion-panel-header:not([aria-disabled=true]){cursor:pointer}.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover{background:var(--mat-expansion-header-hover-state-layer-color)}@media(hover: none){.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover{background:var(--mat-expansion-container-background-color)}}.mat-expansion-panel .mat-expansion-panel-header:not([aria-disabled=true]).cdk-keyboard-focused,.mat-expansion-panel .mat-expansion-panel-header:not([aria-disabled=true]).cdk-program-focused{background:var(--mat-expansion-header-focus-state-layer-color)}.mat-expansion-panel-header._mat-animation-noopable{transition:none}.mat-expansion-panel-header:focus,.mat-expansion-panel-header:hover{outline:none}.mat-expansion-panel-header.mat-expanded:focus,.mat-expansion-panel-header.mat-expanded:hover{background:inherit}.mat-expansion-panel-header.mat-expansion-toggle-indicator-before{flex-direction:row-reverse}.mat-expansion-panel-header.mat-expansion-toggle-indicator-before .mat-expansion-indicator{margin:0 16px 0 0}[dir=rtl] .mat-expansion-panel-header.mat-expansion-toggle-indicator-before .mat-expansion-indicator{margin:0 0 0 16px}.mat-content{display:flex;flex:1;flex-direction:row;overflow:hidden}.mat-content.mat-content-hide-toggle{margin-right:8px}[dir=rtl] .mat-content.mat-content-hide-toggle{margin-right:0;margin-left:8px}.mat-expansion-toggle-indicator-before .mat-content.mat-content-hide-toggle{margin-left:24px;margin-right:0}[dir=rtl] .mat-expansion-toggle-indicator-before .mat-content.mat-content-hide-toggle{margin-right:24px;margin-left:0}.mat-expansion-panel-header-title{color:var(--mat-expansion-header-text-color)}.mat-expansion-panel-header-title,.mat-expansion-panel-header-description{display:flex;flex-grow:1;flex-basis:0;margin-right:16px;align-items:center}[dir=rtl] .mat-expansion-panel-header-title,[dir=rtl] .mat-expansion-panel-header-description{margin-right:0;margin-left:16px}.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description{color:inherit}.mat-expansion-panel-header-description{flex-grow:2;color:var(--mat-expansion-header-description-color)}.mat-expansion-indicator::after{border-style:solid;border-width:0 2px 2px 0;content:"";display:inline-block;padding:3px;transform:rotate(45deg);vertical-align:middle;color:var(--mat-expansion-header-indicator-color);display:inline-block;display:var(--mat-expansion-legacy-header-indicator-display, inline-block)}.mat-expansion-indicator svg{width:24px;height:24px;margin:0 -8px;vertical-align:middle;fill:var(--mat-expansion-header-indicator-color);display:none;display:var(--mat-expansion-header-indicator-display, none)}.cdk-high-contrast-active .mat-expansion-panel-content{border-top:1px solid;border-top-left-radius:0;border-top-right-radius:0}'],encapsulation:2,data:{animation:[nie.indicatorRotate]},changeDetection:0})}}return n})(),bze=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=$t({type:n,selectors:[["mat-panel-title"]],hostAttrs:[1,"mat-expansion-panel-header-title"],standalone:!0})}}return n})(),vze=(()=>{class n extends sze{constructor(){super(...arguments),this._ownHeaders=new th,this.hideToggle=!1,this.displayMode="default",this.togglePosition="after"}ngAfterContentInit(){this._headers.changes.pipe(dd(this._headers)).subscribe(e=>{this._ownHeaders.reset(e.filter(i=>i.panel.accordion===this)),this._ownHeaders.notifyOnChanges()}),this._keyManager=new XP(this._ownHeaders).withWrap().withHomeAndEnd()}_handleHeaderKeydown(e){this._keyManager.onKeydown(e)}_handleHeaderFocus(e){this._keyManager.updateActiveItem(e)}ngOnDestroy(){super.ngOnDestroy(),this._keyManager?.destroy(),this._ownHeaders.destroy()}static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=Zr(n)))(r||n)}})()}static{this.\u0275dir=$t({type:n,selectors:[["mat-accordion"]],contentQueries:function(i,r,o){if(1&i&&Vr(o,aie,5),2&i){let s;un(s=hn())&&(r._headers=s)}},hostAttrs:[1,"mat-accordion"],hostVars:2,hostBindings:function(i,r){2&i&&Qn("mat-accordion-multi",r.multi)},inputs:{hideToggle:[Ct.HasDecoratorInputTransform,"hideToggle","hideToggle",Zn],displayMode:"displayMode",togglePosition:"togglePosition"},exportAs:["matAccordion"],standalone:!0,features:[ui([{provide:iU,useExisting:n}]),es,_i]})}}return n})(),lie=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[hr,cze,E1]})}}return n})();const yze=[ZZ,dO,fR,CO,GY,tA,_Z,YY,tA,bJ,BZ,zw,wO,ane,eie,lie,OO,OZ,eU,rd];let Xi=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[eU,yze,ZZ,dO,fR,CO,GY,tA,_Z,YY,tA,bJ,BZ,zw,wO,ane,eie,lie,OO,OZ,eU,rd]})}}return n})(),wze=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[gn,Xi]})}}return n})(),xze=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[gn]})}}return n})(),cie=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({})}}return n})(),rU=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({})}}return n})(),Cze=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[gn,Xi,wze,xze,cie,rU]})}}return n})(),Mze=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[gn,V9e,Cze]})}}return n})(),die=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[gn]})}}return n})(),uie=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({})}}return n})(),Eze=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[gn,die,uie]})}}return n})(),Ex=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({providers:[kT],imports:[gn,Xi,rd,rU,Eze]})}}return n})(),Sze=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[gn,Ex]})}}return n})(),Tze=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[gn,Sze]})}}return n})(),hie=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[gn,Pke,Xi]})}}return n})(),oU=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[gn,hie]})}}return n})(),Ize=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[gn,oU]})}}return n})(),sU=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[gn,oU]})}}return n})(),Fze=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[gn,Xi,Ize,sU,rU]})}}return n})(),Dze=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[gn,Xi]})}}return n})(),kze=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[gn]})}}return n})(),Bze=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[gn,Ex]})}}return n})(),Pze=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[gn,Ex]})}}return n})(),Rze=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[gn,Ex]})}}return n})(),Lze=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[gn,Ex,die,uie]})}}return n})(),Oze=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[gn,rd,Gy,Xi]})}}return n})(),Db=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({})}}return n})(),Nze=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({providers:[gO],imports:[gn,Xi,Oze,Db]})}}return n})(),Sx=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[gn,Xi]})}}return n})(),QI=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[Xi,gn]})}}return n})(),Uze=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[gn,Sx,QI,Xi,sU]})}}return n})(),Gze=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[hr,hr]})}}return n})(),gie=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({})}}return n})(),tg=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[gn]})}}return n})(),Wze=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[gn,Xi,tA,gn,dO,Gze,fR,tA,tg,gie,Db]})}}return n})(),$ze=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[gn,Xi,tA,Wze,Db]})}}return n})(),jze=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[gn,Xi,QI,Sx]})}}return n})(),Xze=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({})}}return n})(),Kze=(()=>{class n{constructor(e){this.data=e}static{this.\u0275fac=function(i){return new(i||n)($(B1))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-confirmation-dialog"]],decls:10,vars:4,consts:[[1,"confirmation-message"],["mat-dialog-title",""],["mat-dialog-content",""],["mat-dialog-actions",""],["mat-button","",3,"mat-dialog-close"],["mat-button","","cdkFocusInitial","",1,"submit-button",3,"mat-dialog-close"]],template:function(i,r){1&i&&(P(0,"div",0)(1,"h1",1),we(2),H(),P(3,"div",2),we(4),H()(),P(5,"div",3)(6,"button",4),we(7,"CANCEL"),H(),P(8,"button",5),we(9,"OK"),H()()),2&i&&(U(2),Mr(r.data.title),U(2),Mr(r.data.message),U(2),pe("mat-dialog-close",!1),U(2),pe("mat-dialog-close",!0))},dependencies:[vs,Mc,C2,ud,Ec],encapsulation:2})}}return n})();function eqe(n,t){if(1&n){const e=Pn();P(0,"span",0),we(1,"Do you want to download and then purge old unused Configs to make space for new ones?"),H(),P(2,"button",1),We("click",function(){return Vt(e),Ot(He().showPurgeConfirmDialog())}),we(3," DOWNLOAD & PURGE... "),H()}}let tqe=(()=>{class n{constructor(e){this.dialog=e,this.isLocalStorageSizeValid=!0}ngOnInit(){this.isLocalStorageSizeValid=(()=>{let t="";for(const[i,r]of Object.entries(localStorage))t+=i+r;return 3+16*t.length/8/1024<=768})()}showPurgeConfirmDialog(){const e=function Jze(){const n=new Set,t=ji.getCustomConfigs(),e=new Map;for(const[r,o]of t.entries())void 0===o?.creationTime&&(o.creationTime=Date.now()),(Date.now()-o.creationTime)/2592e6>=6&&(e.set(r,ji.createExportCustomConfigFromConfig(o)),n.add(o));return e.size>0&&ji.downloadCustomConfigs(e),n}();0!==e.size?this.dialog.open(Kze,{panelClass:"cc-confirmation-dialog",data:{title:"Confirm to purge old Configs",message:"Are you sure to delete old Configs now?"}}).afterClosed().subscribe(r=>{r&&ji.deleteCustomConfigs([...e])}):this.dialog.open(nA,{data:{title:"Download Error",message:"Could not download and purge old configs automatically! Please try it by yourself."}})}static{this.\u0275fac=function(i){return new(i||n)($(Ws))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-download-and-purge-configs"]],decls:1,vars:1,consts:[[1,"exceed-local-storage-message"],["mat-flat-button","","title","Download old unused Custom Views as a backup file and then delete them in the browser.",1,"exceed-local-storage-button",3,"click"]],template:function(i,r){1&i&&At(0,eqe,4,0),2&i&&It(0,r.isLocalStorageSizeValid?-1:0)},dependencies:[vs],styles:["[_nghost-%COMP%]{text-align:right;display:flex;flex-wrap:wrap;justify-content:center}.exceed-local-storage-message[_ngcontent-%COMP%]{display:block;text-align:left;padding:0 16px;color:#b02929}.exceed-local-storage-button[_ngcontent-%COMP%]{color:#fff;background-color:#b02929}.exceed-local-storage-button[_ngcontent-%COMP%]:hover{background-color:#8c1f1f}"]})}}return n})(),_ie=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[Xi,Gy,rd,gn,eR]})}}return n})(),nqe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[Xi,Gy,rd,gn,_ie,Db]})}}return n})();IM(SO,[yd,vd,bO,wZ,vs,Mc,ud,Ec,UA,km,RZ,Yf,L0,yE,N0,vE,tqe],[]);let iqe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({providers:[EO]})}}return n})(),rqe=(()=>{class n{constructor(e){this.data=e}static{this.\u0275fac=function(i){return new(i||n)($(B1))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-custom-config-note-dialog"]],decls:11,vars:2,consts:[[1,"cc-custom-config-note-dialog-container"],["mat-dialog-content","",1,"cc-note-input-container"],["appearance","fill",1,"note-input"],["matInput","","cdkAutosizeMinRows","10","cdkTextareaAutosize","",3,"ngModelChange","ngModel"],["mat-dialog-actions","",1,"cc-note-dialog-action-buttons"],["mat-flat-button","",3,"mat-dialog-close"]],template:function(i,r){1&i&&(P(0,"div",0)(1,"div",1)(2,"mat-form-field",2)(3,"mat-label"),we(4,"Custom Note"),H(),P(5,"textarea",3),td("ngModelChange",function(s){return jd(r.data,s)||(r.data=s),s}),H()()(),P(6,"div",4)(7,"button",5),we(8,"Cancel"),H(),P(9,"button",5),we(10,"Ok"),H()()()),2&i&&(U(5),ed("ngModel",r.data),U(4),pe("mat-dialog-close",r.data))},dependencies:[yd,vd,vs,Mc,ud,Ec,km,RZ,Yf,L0,N0],styles:["[_nghost-%COMP%] .cc-custom-config-note-dialog-container[_ngcontent-%COMP%]{padding:20px 24px}[_nghost-%COMP%] .cc-custom-config-note-dialog-container[_ngcontent-%COMP%] .cc-note-input-container[_ngcontent-%COMP%]{padding:0}[_nghost-%COMP%] .cc-custom-config-note-dialog-container[_ngcontent-%COMP%] .cc-note-input-container[_ngcontent-%COMP%] .note-input[_ngcontent-%COMP%]{width:100%}[_nghost-%COMP%] .cc-custom-config-note-dialog-container[_ngcontent-%COMP%] .cc-note-dialog-action-buttons[_ngcontent-%COMP%]{justify-content:flex-end;padding:0}[_nghost-%COMP%] .cc-custom-config-note-dialog-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{padding:12px;margin:0 0 0 10px;color:#1b9cfc;background-color:#8a848414}[_nghost-%COMP%] .cc-custom-config-note-dialog-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:hover{background-color:#0000000d;color:#1b9cfc}"]})}}return n})(),oqe=(()=>{class n{constructor(e){this.dialog=e}openDialog(){this.customConfigNote=this.customConfigItem.note,this.dialog.open(rqe,{width:"600px",data:this.customConfigNote}).afterClosed().subscribe(i=>{void 0!==i&&this.customConfigNote!==i&&(this.customConfigNote=i,ji.editCustomConfigNote(this.customConfigItem.id,i))})}static{this.\u0275fac=function(i){return new(i||n)($(Ws))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-custom-config-note-dialog-button"]],inputs:{customConfigItem:"customConfigItem"},decls:2,vars:0,consts:[["title","Edit/View Note",1,"custom-config-note-dialog-button",3,"click"],[1,"fa","fa-pencil"]],template:function(i,r){1&i&&(P(0,"button",0),We("click",function(){return r.openDialog()}),xe(1,"i",1),H())},styles:["button[_ngcontent-%COMP%]{font-size:16px;padding:8px 10px;margin:0;background-color:transparent}button[_ngcontent-%COMP%]:hover{background-color:#0000000d;color:#1b9cfc;border-radius:50%}"]})}}return n})();function bie(n,t){const{mapSelectionMode:e,assignedMaps:i}=qw(t),r=[];for(const o of n.assignedMaps.keys())i.has(o)||r.push(n.assignedMaps.get(o));return{mapSelectionMode:n.mapSelectionMode!==e?n.mapSelectionMode:"",mapNames:r}}let sqe=(()=>{class n{constructor(e){this.state=e}transform(e){const{mapSelectionMode:i,mapNames:r}=bie(e,this.state.getValue());return r.length>0||i.length>0?"rgb(204, 204, 204)":"rgba(0, 0, 0, 0.87)"}static{this.\u0275fac=function(i){return new(i||n)($(jr,16))}}static{this.\u0275pipe=dr({name:"customConfig2ApplicableColor",type:n,pure:!0})}}return n})(),aqe=(()=>{class n{transform(e){const{mapColors:i,mapSelectionMode:r}=e;return r===TT.MULTIPLE?[i.positive,i.neutral,i.negative,i.selected]:[i.positiveDelta,i.negativeDelta,i.selected]}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=dr({name:"customConfigColorSchemaBySelectionMode",type:n,pure:!0})}}return n})();function lqe(n,t){if(1&n&&(P(0,"p",2),xe(1,"i",8),we(2),H()),2&n){const e=He();U(2),cn(" ",e.customConfigItem.metrics.edgeMetric,"")}}function cqe(n,t){if(1&n&&(P(0,"div",7),xe(1,"span",9),H()),2&n){const e=t.$implicit,i=He();U(),Hi("background-color",i.customConfigItem.isApplicable?e:"rgb(204, 204, 204)")}}let dqe=(()=>{class n{constructor(e,i,r,o){this.store=e,this.threeCameraService=i,this.threeOrbitControlsService=r,this.threeRendererService=o}applyCustomConfig(){ji.applyCustomConfig(this.customConfigItem.id,this.store,this.threeCameraService,this.threeOrbitControlsService,this.threeRendererService)}static{this.\u0275fac=function(i){return new(i||n)($(Xt),$(vu),$(nc),$($i))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-apply-custom-config-button"]],inputs:{customConfigItem:"customConfigItem"},decls:17,vars:12,consts:[["mat-dialog-close","",3,"click","disabled","title"],[1,"config-metric-list"],[1,"config-metric"],[1,"fa","fa-arrows-alt"],[1,"fa","fa-arrows-v"],[1,"fa","fa-paint-brush"],[1,"color-schema-container"],[1,"color-swatch-container"],[1,"fa","fa-exchange"],[1,"color-swatch"]],template:function(i,r){1&i&&(P(0,"button",0),$e(1,"customConfig2ApplicableColor"),We("click",function(){return r.applyCustomConfig()}),P(2,"div",1)(3,"p",2),xe(4,"i",3),we(5),H(),P(6,"p",2),xe(7,"i",4),we(8),H(),P(9,"p",2),xe(10,"i",5),we(11),H(),At(12,lqe,3,1,"p",2),P(13,"div",6),Rr(14,cqe,2,2,"div",7,Hr),$e(16,"customConfigColorSchemaBySelectionMode"),H()()()),2&i&&(Hi("color",rt(1,8,r.customConfigItem)),ka("title",r.customConfigItem.name),pe("disabled",!r.customConfigItem.isApplicable),U(5),cn(" ",r.customConfigItem.metrics.areaMetric,""),U(3),cn(" ",r.customConfigItem.metrics.heightMetric,""),U(3),cn(" ",r.customConfigItem.metrics.colorMetric,""),U(),It(12,r.customConfigItem.metrics.edgeMetric?12:-1),U(2),Lr(rt(16,10,r.customConfigItem)))},dependencies:[Mc,sqe,aqe],styles:["[_nghost-%COMP%]{display:flex;flex:1}[_nghost-%COMP%] button[_ngcontent-%COMP%]{flex-direction:row;width:100%;margin:0;background-color:transparent}[_nghost-%COMP%] button[_ngcontent-%COMP%]:disabled{cursor:default}[_nghost-%COMP%] button[_ngcontent-%COMP%] .config-metric-list[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:10px}[_nghost-%COMP%] button[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-size:15px;margin:0;text-align:left}[_nghost-%COMP%] button[_ngcontent-%COMP%] p.config-name[_ngcontent-%COMP%]{flex:1 1 auto;width:100%}[_nghost-%COMP%] button[_ngcontent-%COMP%] p.config-metric[_ngcontent-%COMP%]{flex:0 0 9em}[_nghost-%COMP%] button[_ngcontent-%COMP%] .color-schema-container[_ngcontent-%COMP%]{display:flex;align-items:center;gap:2px}[_nghost-%COMP%] button[_ngcontent-%COMP%] .color-schema-container[_ngcontent-%COMP%] .color-swatch-container[_ngcontent-%COMP%] .color-swatch[_ngcontent-%COMP%]{display:inline-block;width:16px;height:16px}"]})}}return n})(),uqe=(()=>{class n{constructor(e){this.state=e}transform(e){const{mapSelectionMode:i,mapNames:r}=bie(e,this.state.getValue());return r.length>0&&i.length>0?`This view is partially applicable. To complete your view, please switch to the ${i} mode and select the following map(s): ${r.join(", ")}.`:r.length>0?`To fulfill your view, please select the following map(s): ${r.join(", ")}.`:i.length>0?`This view is partially applicable. To complete your view, please switch to the ${i} mode.`:"Apply Custom View"}static{this.\u0275fac=function(i){return new(i||n)($(jr,16))}}static{this.\u0275pipe=dr({name:"customConfig2ApplicableMessage",type:n,pure:!0})}}return n})(),hqe=(()=>{class n{transform(e,i){const r=i.toLocaleLowerCase().trimEnd();return e.filter(o=>this.isItemMatchingSearchTerm(o,r))}isItemMatchingSearchTerm(e,i){const r=e.name.toLocaleLowerCase().includes(i),o=e.mapSelectionMode.toLocaleLowerCase().includes(i),s=Object.values(e.metrics).some(a=>a?.toLocaleLowerCase().includes(i));return r||o||s}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=dr({name:"filterCustomConfigDataBySearchTerm",type:n,pure:!0})}}return n})();const fqe=["matExpansionPanel"];function mqe(n,t){if(1&n){const e=Pn();P(0,"mat-list-item",5),$e(1,"customConfig2ApplicableMessage"),P(2,"div",6)(3,"p",7)(4,"strong")(5,"span",8),We("click",function(){const r=Vt(e).$implicit;return Ot(He(4).applyCustomConfig(r.id))}),we(6),$e(7,"truncateText"),H()()()(),P(8,"div",9)(9,"p",10)(10,"span",8),We("click",function(){const r=Vt(e).$implicit;return Ot(He(4).applyCustomConfig(r.id))}),we(11),$e(12,"truncateText"),H()(),xe(13,"cc-custom-config-note-dialog-button",11),H(),P(14,"div",12),xe(15,"cc-apply-custom-config-button",11),P(16,"button",13),We("click",function(){const r=Vt(e).$implicit,o=He(3).$implicit;return Ot(He().removeCustomConfig(r.id,o.key))}),xe(17,"i",14),H()()()}if(2&n){const e=t.$implicit;ka("title",rt(1,6,e)),U(3),ka("title",e.name),U(3),cn(" ",Mo(7,8,e.name,75)," "),U(5),cn(" ",e.note?Mo(12,11,e.note,95):"Add Note"," "),U(2),pe("customConfigItem",e),U(2),pe("customConfigItem",e)}}function pqe(n,t){if(1&n&&(P(0,"mat-list"),Rr(1,mqe,18,14,"mat-list-item",5,Hr),H()),2&n){const e=He();U(),Lr(e)}}function Aqe(n,t){1&n&&(P(0,"div",4)(1,"p"),we(2,"No configurations found."),H()())}function gqe(n,t){if(1&n&&At(0,pqe,3,0,"mat-list")(1,Aqe,3,0,"div",4),2&n){const e=t;It(0,e.length>0?0:-1),U(),It(1,0===e.length?1:-1)}}function _qe(n,t){if(1&n){const e=Pn();P(0,"mat-expansion-panel",1,0)(2,"mat-expansion-panel-header",2),We("click",function(){const r=Vt(e).$implicit;return Ot(He().toggleGroupExpansion(r.key))}),P(3,"mat-panel-title",3),we(4," Custom View(s) in "),P(5,"strong"),we(6),$e(7,"titlecase"),H(),we(8),H()(),At(9,gqe,2,2),$e(10,"filterCustomConfigDataBySearchTerm"),H()}if(2&n){let e;const i=t.$implicit,r=He();pe("expanded",r.isGroupExpanded(i.key)||r.searchTerm.length>0),U(6),cn(" ",rt(7,4,i.value.mapSelectionMode)," "),U(2),cn(" mode for ",i.value.mapNames," "),U(),It(9,(e=Mo(10,6,i.value.customConfigItems,r.searchTerm))?9:-1,e)}}let bqe=(()=>{class n{constructor(e,i,r,o){this.store=e,this.threeCameraService=i,this.threeOrbitControlsService=r,this.threeRendererService=o,this.searchTerm="",this.expandedStates={},this.manuallyToggled=new Set}ngOnChanges(e){if(e.searchTerm)if(e.searchTerm.currentValue.length>0)for(const i of Object.keys(this.expandedStates))this.expandedStates[i]=!0;else for(const i of Object.keys(this.expandedStates))this.manuallyToggled.has(i)||(this.expandedStates[i]=!1)}isGroupExpanded(e){return this.searchTerm.length>0?!this.manuallyToggled.has(e)||this.expandedStates[e]:this.expandedStates[e]||!1}toggleGroupExpansion(e){this.expandedStates[e]=!this.isGroupExpanded(e),this.manuallyToggled.add(e)}removeCustomConfig(e,i){ji.deleteCustomConfig(e),this.expandedStates[i]=!0}applyCustomConfig(e){ji.applyCustomConfig(e,this.store,this.threeCameraService,this.threeOrbitControlsService,this.threeRendererService)}static{this.\u0275fac=function(i){return new(i||n)($(Xt),$(vu),$(nc),$($i))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-custom-config-item-group"]],viewQuery:function(i,r){if(1&i&&ei(fqe,5),2&i){let o;un(o=hn())&&(r.matExpansionPanel=o.first)}},inputs:{customConfigItemGroups:"customConfigItemGroups",searchTerm:"searchTerm"},features:[wr],decls:3,vars:2,consts:[["matExpansionPanel",""],[1,"custom-config-item-group",3,"expanded"],[3,"click"],[1,"custom-config-item-group-title"],[1,"no-configs-found-message"],[3,"title"],[1,"metrics-box"],[1,"config-item-name",3,"title"],["mat-dialog-close","",3,"click"],[1,"custom-config-note"],[1,"custom-config-note-content"],[3,"customConfigItem"],[1,"custom-config-action-buttons"],["title","Remove Custom View",1,"remove-button",3,"click"],[1,"fa","fa-trash"]],template:function(i,r){1&i&&(Rr(0,_qe,11,9,"mat-expansion-panel",1,Hr),$e(2,"keyvalue")),2&i&&Lr(rt(2,0,r.customConfigItemGroups))},dependencies:[Mc,Yne,Zne,oie,aie,bze,oqe,dqe,$V,nE,WZ,uqe,hqe],styles:[".custom-config-item-group-title[_ngcontent-%COMP%]{color:#000000de;display:inline-block}.metrics-box[_ngcontent-%COMP%]{margin-top:10px}.custom-config-note[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;margin-top:5px}.custom-config-action-buttons[_ngcontent-%COMP%]{display:flex;align-items:center;margin-bottom:5px}p[_ngcontent-%COMP%]{font-size:15px;margin:0;white-space:pre-line}p.custom-config-note-content[_ngcontent-%COMP%]{margin-right:7px;font-size:13px}button[_ngcontent-%COMP%]{background-color:transparent}button.remove-button[_ngcontent-%COMP%]{font-size:16px;padding:8px 10px;margin:0}button.remove-button[_ngcontent-%COMP%]:hover{background-color:#0000000d;color:#1b9cfc;border-radius:50%}"]})}}return n})(),vqe=(()=>{class n{upload(){const e=nte();e.addEventListener("change",()=>{this.uploadOnEvent(e)}),e.click()}uploadOnEvent(e){return B(function*(){const i=yield Promise.all(ste(e.files));for(const r of i)try{ji.importCustomConfigs(r)}catch{}})()}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-upload-custom-config-button"]],decls:2,vars:0,consts:[["title","Upload Custom View (.cc.config.json file).",1,"action-button",3,"click"],[1,"fa","fa-folder-open"]],template:function(i,r){1&i&&(P(0,"button",0),We("click",function(){return r.upload()}),xe(1,"i",1),H())},styles:["button[_ngcontent-%COMP%]{margin:0 3px;min-width:12%;height:48px;width:48px;border-radius:100%;line-height:48px;background-color:#fff;color:#1b9cfc}button[_ngcontent-%COMP%]:disabled, button[disabled][_ngcontent-%COMP%]{background-color:#e6e6e6;color:#ccc}button[_ngcontent-%COMP%] i.fa[_ngcontent-%COMP%]{font-size:12px;margin-left:0}"]})}}return n})(),yqe=(()=>{class n{constructor(e){this.dialog=e}showAddCustomConfigDialog(){this.dialog.open(SO,{panelClass:"cc-add-custom-config-dialog"})}static{this.\u0275fac=function(i){return new(i||n)($(Ws))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-add-custom-config-button"]],decls:2,vars:0,consts:[["title","Create new Custom View",3,"click"],[1,"fa","fa-plus"]],template:function(i,r){1&i&&(P(0,"button",0),We("click",function(){return r.showAddCustomConfigDialog()}),xe(1,"i",1),H())},styles:["button[_ngcontent-%COMP%]{margin:0 3px;min-width:12%;height:48px;width:48px;border-radius:100%;line-height:48px;background-color:#fff;color:#1b9cfc}button[_ngcontent-%COMP%]:disabled, button[disabled][_ngcontent-%COMP%]{background-color:#e6e6e6;color:#ccc}button[_ngcontent-%COMP%] i.fa[_ngcontent-%COMP%]{font-size:12px;margin-left:0}"]})}}return n})(),Mqe=(()=>{class n{constructor(e){this.downloadCustomConfigService=e}ngOnInit(){this.subscription=this.downloadCustomConfigService.downloadableCustomConfigs$.subscribe(e=>{this.downloadableConfigs=e})}ngOnDestroy(){this.subscription.unsubscribe()}downloadPreloadedCustomConfigs(){!function Cqe(n){const t={downloadApiVersion:"1.0.1",timestamp:Date.now(),customConfigs:n},e=Em.getNewTimestamp()+".cc.config.json";MO.downloadData(JSON.stringify(t,S2),e)}(this.downloadableConfigs)}static{this.\u0275fac=function(i){return new(i||n)($(EO))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-download-custom-configs-button"]],decls:2,vars:1,consts:[["title","Download Custom View related to currently uploaded maps, if any.",3,"click","disabled"],[1,"fa","fa-download"]],template:function(i,r){1&i&&(P(0,"button",0),We("click",function(){return r.downloadPreloadedCustomConfigs()}),xe(1,"i",1),H()),2&i&&pe("disabled",0===r.downloadableConfigs.size)},styles:["button[_ngcontent-%COMP%]{margin:0 3px;min-width:12%;height:48px;width:48px;border-radius:100%;line-height:48px;background-color:#fff;color:#1b9cfc}button[_ngcontent-%COMP%]:disabled, button[disabled][_ngcontent-%COMP%]{background-color:#e6e6e6;color:#ccc}button[_ngcontent-%COMP%] i.fa[_ngcontent-%COMP%]{font-size:12px;margin-left:0}"]})}}return n})(),Eqe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[Xi,gn,_ie,Xze,nqe,iqe,rd,gie,Db]})}}return n})();IM(HZ,[yd,vd,CZ,Ec,UA,km,vze,Kd,vqe,yqe,Mqe,bqe],[Yn]);let Sqe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[gn,Xi,QI,Sx]})}}return n})(),Tqe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[gn,wO]})}}return n})(),Iqe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[gn,Xi]})}}return n})(),Fqe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[gn,sU,Tqe,Iqe,Sx,Xi]})}}return n})(),Dqe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[gn,Db]})}}return n})();const kqe=Zt(eu,n=>0===n.length);let Bqe=(()=>{class n{constructor(e){this.hideBlacklistItemsIndicator$=e.select(kqe)}static{this.\u0275fac=function(i){return new(i||n)($(Xt))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-search-panel-mode-selector"]],inputs:{searchPanelMode:"searchPanelMode",updateSearchPanelMode:"updateSearchPanelMode"},decls:4,vars:3,consts:[["id","blacklist","value","blacklist",3,"click"],[1,"fa","fa-eye-slash"],[1,"has-blacklist-items-indicator",3,"hidden"]],template:function(i,r){1&i&&(P(0,"mat-button-toggle",0),We("click",function(){return r.updateSearchPanelMode("blacklist")}),xe(1,"i",1)(2,"div",2),$e(3,"async"),H()),2&i&&(U(2),pe("hidden",rt(3,1,r.hideBlacklistItemsIndicator$)))},dependencies:[Rw,Yn],styles:["cc-search-panel-mode-selector mat-button-toggle{height:100%;align-items:center}cc-search-panel-mode-selector .has-blacklist-items-indicator{position:absolute;margin-left:18px;margin-top:-32px;border-radius:50%;background-color:red;width:5px;height:5px}cc-search-panel-mode-selector .mat-button-toggle-checked .mat-pseudo-checkbox{display:none}\n"],encapsulation:2})}}return n})();const vie=n=>Zt(eu,t=>Pqe(n,t)),Pqe=(n,t)=>{const e=t.filter(i=>i.type===n);return e.sort((i,r)=>i.path.localeCompare(r.path)),e};function Rqe(n,t){1&n&&(P(0,"mat-list-item"),we(1,"Add pattern via search or node context-menu"),H())}function Lqe(n,t){if(1&n){const e=Pn();P(0,"mat-list-item",3)(1,"button",4),We("click",function(){const r=Vt(e).$implicit;return Ot(He(2).removeBlacklistEntry(r))}),xe(2,"em",5),we(3),H()()}if(2&n){const e=t.$implicit;pe("title",e.path),U(3),cn(" ",e.path," ")}}function Oqe(n,t){if(1&n&&(P(0,"div"),At(1,Rqe,2,0,"mat-list-item"),Rr(2,Lqe,4,2,"mat-list-item",3,Hr),H()),2&n){const e=t;U(),It(1,0===e.length?1:-1),U(),Lr(e)}}function Nqe(n,t){1&n&&(P(0,"mat-list-item"),we(1,"Add pattern via search or node context-menu"),H())}function Uqe(n,t){if(1&n){const e=Pn();P(0,"mat-list-item",3)(1,"button",4),We("click",function(){const r=Vt(e).$implicit;return Ot(He(2).removeBlacklistEntry(r))}),xe(2,"em",5),we(3),H()()}if(2&n){const e=t.$implicit;pe("title",e.path),U(3),cn(" ",e.path," ")}}function Hqe(n,t){if(1&n&&(P(0,"div"),At(1,Nqe,2,0,"mat-list-item"),Rr(2,Uqe,4,2,"mat-list-item",3,Hr),H()),2&n){const e=t;U(),It(1,0===e.length?1:-1),U(),Lr(e)}}let Vqe=(()=>{class n{constructor(e){this.store=e,this.flattenedItems$=this.store.select(vie("flatten")),this.excludedItems$=this.store.select(vie("exclude"))}removeBlacklistEntry(e){this.store.dispatch(HE({item:e}))}static{this.\u0275fac=function(i){return new(i||n)($(Xt))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-blacklist-panel"]],decls:14,vars:6,consts:[[1,"header-text"],["matTooltip","Flattened nodes are shown as flat/short buildings and are included in folder metrics",1,"fa","fa-question-circle-o"],["matTooltip","Excluded buildings are not shown in the map and are not included in folder metrics",1,"fa","fa-question-circle-o"],[3,"title"],["mat-button","",3,"click"],["title","Remove list item",1,"fa","fa-minus-square"]],template:function(i,r){if(1&i&&(P(0,"mat-list")(1,"div")(2,"h3",0),we(3,"Flattened"),H(),xe(4,"em",1),H(),At(5,Oqe,4,1,"div"),$e(6,"async"),H(),P(7,"mat-list")(8,"div")(9,"h3",0),we(10,"Excluded"),H(),xe(11,"em",2),H(),At(12,Hqe,4,1,"div"),$e(13,"async"),H()),2&i){let o,s;U(5),It(5,(o=rt(6,2,r.flattenedItems$))?5:-1,o),U(7),It(12,(s=rt(13,4,r.excludedItems$))?12:-1,s)}},dependencies:[vs,qY,Yne,Zne,Yn],styles:["cc-blacklist-panel .header-text{display:inline-block;margin:0 .25em 0 0}cc-blacklist-panel mat-list.mat-mdc-list.mat-mdc-list-base mat-list-item{border-top:1px solid rgba(0,0,0,.12)}cc-blacklist-panel mat-list.mat-mdc-list.mat-mdc-list-base mat-list-item .mdc-list-item__content{padding:0}cc-blacklist-panel mat-list.mat-mdc-list.mat-mdc-list-base mat-list-item .mdc-list-item__content button{width:100%;text-align:start}cc-blacklist-panel mat-list.mat-mdc-list.mat-mdc-list-base mat-list-item .mdc-list-item__content button .fa{padding-right:8px}\n"],encapsulation:2})}}return n})(),Qqe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[gn,Xi]})}}return n})(),zqe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[gn,Xi]})}}return n})(),qqe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[gn]})}}return n})(),yie=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[Xi]})}}return n})();const lU=Zt(tb,n=>""===n||"!"===n||","===n),GI=n=>(n=n.trim()).startsWith("*")||n.endsWith("*")||n.startsWith("/")||n.startsWith("./")||n.startsWith('"')||n.endsWith('"')||n.startsWith("!")?n:`*${n}*`,wie=(n,t,e)=>{const i=e.trim().split(",");if(e.trim().startsWith("!")){i[0]=i[0].slice(1);for(const r of i){const o=`!${GI(r)}`;if(n.some(s=>o===s.path&&t===s.type))return!0}return!1}for(const r of i)if(n.some(o=>GI(r)===o.path&&t===o.type))return!0;return!1},Gqe=Zt(tb,lU,eu,(n,t,e)=>!!t||wie(e,"flatten",n)),Wqe=Zt(tb,lU,eu,(n,t,e)=>!!t||wie(e,"exclude",n)),$qe=(n,t)=>{const e=[],i=t.split(",");if(i[0].startsWith("!")){i[0]=i[0].slice(1);for(const r of i)r.length>0&&e.push({path:`!${GI(r)}`,type:n})}else for(let r of i)if(r.length>0){if(r.startsWith("!"))break;r=GI(r),e.push({path:r,type:n})}return e},jqe=(n,t,e)=>{const i=[...t,...e];for(const{file:r}of n)if(!Xqe(r,i))return!1;return!0},Xqe=(n,t)=>{for(const e of bo(n.map))if(Kqe(e,t))return!1;return!0},Kqe=(n,t)=>Ro(n)&&n.data.path&&!vh(n.data.path,t,"exclude");let xie=(()=>{class n{constructor(e,i,r){this.actions$=e,this.store=i,this.dialog=r,this.doBlacklistItemsResultInEmptyMap$=this.actions$.pipe(La(sP),od(this.store.select(tu),this.store.select(eu)),Ge(([o,s,a])=>({items:o.items,resultsInEmptyMap:jqe(s,a,o.items)})),Qw()),this.showErrorDialogIfBlacklistItemsResultInEmptyMap$=ho(()=>this.doBlacklistItemsResultInEmptyMap$.pipe(Vi(o=>o.resultsInEmptyMap),Dr(()=>{this.dialog.open(nA,{data:{title:"Blacklist Error",message:"Excluding all buildings is not possible."}})})),{dispatch:!1}),this.addBlacklistItems$=ho(()=>this.doBlacklistItemsResultInEmptyMap$.pipe(Vi(o=>!o.resultsInEmptyMap),Ge(o=>UE({items:o.items}))))}static{this.\u0275fac=function(i){return new(i||n)(ge(sd),ge(Xt),ge(Ws))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac})}}return n})(),Zqe=(()=>{class n{constructor(e,i,r){this.actions$=e,this.store=i,this.addBlacklistItemsIfNotResultsInEmptyMapEffect=r,this.searchPattern2BlacklistItems$=this.actions$.pipe(La("BlacklistSearchPatternAction"),od(this.store.select(tb)),Ge(([o,s])=>({type:o.action.type,blacklistItems:$qe(o.action.type,s)})),Qw()),this.flattenSearchPattern$=ho(()=>this.searchPattern2BlacklistItems$.pipe(Vi(o=>"flatten"===o.type),Dr(o=>{this.store.dispatch(UE({items:o.blacklistItems})),this.store.dispatch(tm({value:""}))})),{dispatch:!1}),this.excludeSearchPattern$=ho(()=>this.searchPattern2BlacklistItems$.pipe(Vi(o=>"exclude"===o.type),Dr(()=>{this.addBlacklistItemsIfNotResultsInEmptyMapEffect.doBlacklistItemsResultInEmptyMap$.pipe(zo(1),Vi(o=>!o.resultsInEmptyMap),Dr(()=>{this.store.dispatch(tm({value:""}))})).subscribe()}),Ge(o=>sP({items:o.blacklistItems}))))}static{this.\u0275fac=function(i){return new(i||n)(ge(sd),ge(Xt),ge(xie))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac})}}return n})();function Jqe(n,t){if(1&n){const e=Pn();P(0,"button",12),We("click",function(){return Vt(e),Ot(He().resetSearchPattern())}),xe(1,"i",13),H()}}let eGe=(()=>{class n{constructor(e){this.store=e,this.searchPattern$=this.store.select(tb),this.isSearchPatternEmpty$=this.store.select(lU),this.isFlattenPatternDisabled$=this.store.select(Gqe),this.isExcludePatternDisabled$=this.store.select(Wqe),this.setSearchPatternDebounced=yu(i=>this.setSearchPattern(i),400)}setSearchPattern(e){this.store.dispatch(tm({value:e.target.value}))}resetSearchPattern(){this.store.dispatch(tm({value:""}))}blacklistSearchPattern(e){this.store.dispatch((n=>({type:"BlacklistSearchPatternAction",action:{type:n}}))(e))}static{this.\u0275fac=function(i){return new(i||n)($(Xt))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-search-bar"]],decls:21,vars:13,consts:[["menu","matMenu"],[1,"fa","fa-search","search-icon"],[1,"ccSearchInput"],["type","text","placeholder","Search: *.js, **/app/*",3,"input","value"],["data-testid","search-bar-clear-button",1,"small-action-button","clear-icon"],["title","Add to Blacklist",1,"small-action-button",3,"matMenuTriggerFor"],[1,"fa","fa-ellipsis-h"],["mat-menu-item","","disabled",""],["mat-menu-item","","data-testid","search-bar-flatten-button",3,"click","disabled"],[1,"fa","fa-eye-slash"],["mat-menu-item","","data-testid","search-bar-exclude-button",3,"click","disabled"],[1,"fa","fa-ban"],["data-testid","search-bar-clear-button",1,"small-action-button","clear-icon",3,"click"],[1,"fa","fa-times"]],template:function(i,r){if(1&i){const o=Pn();xe(0,"i",1),P(1,"div",2)(2,"input",3),$e(3,"async"),We("input",function(a){return Vt(o),Ot(r.setSearchPatternDebounced(a))}),H(),At(4,Jqe,2,0,"button",4),$e(5,"async"),H(),P(6,"button",5),xe(7,"i",6),H(),P(8,"mat-menu",null,0)(10,"button",7),we(11,"Add Pattern to Blacklist"),H(),xe(12,"mat-divider"),P(13,"button",8),$e(14,"async"),We("click",function(){return Vt(o),Ot(r.blacklistSearchPattern("flatten"))}),xe(15,"i",9),we(16," Flatten "),H(),P(17,"button",10),$e(18,"async"),We("click",function(){return Vt(o),Ot(r.blacklistSearchPattern("exclude"))}),xe(19,"i",11),we(20," Exclude "),H()()}if(2&i){const o=Po(9);U(2),pe("value",rt(3,5,r.searchPattern$)),U(2),It(4,rt(5,7,r.isSearchPatternEmpty$)?-1:4),U(2),pe("matMenuTriggerFor",o),U(7),pe("disabled",rt(14,9,r.isFlattenPatternDisabled$)),U(4),pe("disabled",rt(18,11,r.isExcludePatternDisabled$))}},dependencies:[wu,_T,ab,xO,Yn],styles:["cc-search-bar{display:inline-block;text-wrap:nowrap}cc-search-bar .search-icon{margin-right:8px;min-width:16px}cc-search-bar .ccSearchInput{display:inline-block;position:relative}cc-search-bar .ccSearchInput input{width:204px;border-width:0 0 1px;border-color:#d3d3d3;outline:0;font-size:11pt;height:24px}cc-search-bar .ccSearchInput input:focus{border-color:#0374c9;box-shadow:0 1px #0374c9}cc-search-bar .ccSearchInput>*{vertical-align:middle;display:inline-block;position:relative;height:30px}cc-search-bar .ccSearchInput .clear-icon{position:absolute;right:0;margin:0;height:24px;width:24px;display:flex;justify-content:center;align-items:center;top:0}cc-search-bar button{background-color:transparent;box-shadow:none;margin-top:2px;font-size:14px}cc-search-bar button.small-action-button{margin:0 5px;display:inline-block;height:24px;width:24px;vertical-align:top}cc-search-bar button:hover{background-color:#d3d3d3;border-radius:50%}\n"],encapsulation:2})}}return n})();const WI=(n,t,e)=>t.reduce((i,r)=>vh(r.path,e,n)?i+1:i,0),tGe=Zt(yY,eu,vT,(n,t,e)=>{const i=n.filter(r=>Ro(r));return{fileCount:`${i.length}/${e.length}`,flattenCount:`${WI("flatten",i,t)}/${WI("flatten",e,t)}`,excludeCount:`${WI("exclude",i,t)}/${WI("exclude",e,t)}`}}),Cie=Zt(no,n=>n.sortingOrderAscending);let nGe=(()=>{class n{constructor(e){this.store=e}ngOnInit(){this.sortingOrderAscending$=this.store.select(Cie)}onClick(){this.store.dispatch(VO())}static{this.\u0275fac=function(i){return new(i||n)($(Xt))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-sorting-button"]],decls:4,vars:7,consts:[[1,"box-rounded","submenu-button",3,"click","title"],[3,"className"]],template:function(i,r){1&i&&(P(0,"button",0),$e(1,"async"),We("click",function(){return r.onClick()}),xe(2,"i",1),$e(3,"async"),H()),2&i&&(Jc("title","Toggle sort order (currently ",rt(1,3,r.sortingOrderAscending$)?"ascending":"descending",")"),U(2),pe("className",rt(3,5,r.sortingOrderAscending$)?"fa fa-sort-amount-asc":"fa fa-sort-amount-desc"))},dependencies:[Yn],encapsulation:2})}}return n})();const Mie=Zt(tc,n=>n.sortingOption);function iGe(n,t){if(1&n&&(P(0,"mat-option",1),we(1),H()),2&n){const e=t.$implicit;pe("value",e),U(),cn(" ",e," ")}}let rGe=(()=>{class n{constructor(e){this.store=e,this.sortingOptions=Object.values(E2),this.selectedSortingOption$=e.select(Mie)}handleSelectedSortingOptionChanged(e){this.store.dispatch(NE(e.value))}static{this.\u0275fac=function(i){return new(i||n)($(Xt))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-sorting-option"]],decls:4,vars:3,consts:[["title","Sort by","panelClass","cc-sorting-option",1,"sorting-option-select",3,"selectionChange","value"],[3,"value"]],template:function(i,r){1&i&&(P(0,"mat-select",0),$e(1,"async"),We("selectionChange",function(s){return r.handleSelectedSortingOptionChanged(s)}),Rr(2,iGe,2,2,"mat-option",1,Hr),H()),2&i&&(pe("value",rt(1,1,r.selectedSortingOption$)),U(2),Lr(r.sortingOptions))},dependencies:[Bm,ru,Yn],styles:[".sorting-option-select{max-width:88px}\n"],encapsulation:2})}}return n})(),oGe=(()=>{class n{constructor(e){this.store=e}ngOnInit(){this.isSearchPanelPinned$=this.store.select(bZ)}onClick(){this.store.dispatch(iN())}static{this.\u0275fac=function(i){return new(i||n)($(Xt))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-thumb-tack-button"]],decls:3,vars:3,consts:[["title","Pin file explorer",1,"box-rounded","submenu-button",3,"click","ngClass"],[1,"fa","fa-thumb-tack"]],template:function(i,r){1&i&&(P(0,"button",0),$e(1,"async"),We("click",function(){return r.onClick()}),xe(2,"i",1),H()),2&i&&pe("ngClass",rt(1,1,r.isSearchPanelPinned$)?"pinned":"")},dependencies:[Kd,Yn],styles:[".pinned{background-color:#979797}\n"],encapsulation:2})}}return n})();function sGe(n,t){if(1&n&&(P(0,"span",0),we(1),xe(2,"i",1),H(),P(3,"span",2),we(4),xe(5,"img",3),H(),P(6,"span",4),we(7),xe(8,"i",5),H(),P(9,"div",6),xe(10,"cc-thumb-tack-button"),H(),P(11,"div",6),xe(12,"cc-sorting-button")(13,"cc-sorting-option"),H()),2&n){const e=t;U(),Mr(e.fileCount),U(3),Mr(e.flattenCount),U(3),Mr(e.excludeCount)}}let aGe=(()=>{class n{constructor(e){this.matchingFileCounters$=e.select(tGe)}static{this.\u0275fac=function(i){return new(i||n)($(Xt))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-matching-files-counter"]],decls:2,vars:3,consts:[["title","Files matching search pattern",1,"box-rounded","node-count"],[1,"fa","fa-file"],["title","Files flattened",1,"box-rounded","node-count",2,"display","inline-flex"],["alt","flattenIcon","src","codeCharta/assets/flatten.png",1,"fa","png-icon-files-counter"],["title","Files excluded",1,"box-rounded","node-count"],[1,"fa","fa-ban"],[1,"clickable-component"]],template:function(i,r){if(1&i&&(At(0,sGe,14,3),$e(1,"async")),2&i){let o;It(0,(o=rt(1,1,r.matchingFileCounters$))?0:-1,o)}},dependencies:[nGe,rGe,oGe,Yn],styles:["cc-matching-files-counter .node-count{background:#eee;color:#000;padding:4px 8px;margin-right:8px}cc-matching-files-counter .node-count i{margin-left:6px}cc-matching-files-counter .box-rounded{display:inline-block;font-weight:400;line-height:17px;font-size:10pt;margin-top:2px;min-width:20px;border-radius:4px;text-align:center}cc-matching-files-counter .png-icon-files-counter{width:19px;height:16px;margin-left:6px}cc-matching-files-counter cc-thumb-tack-button button{height:25px;background:#e6e6e6;padding:1px 8px}cc-matching-files-counter cc-sorting-button button{height:25px;background:#e6e6e6;padding:1px 8px}cc-matching-files-counter cc-sorting-option .mat-mdc-select{width:105px;padding:2px 8px;font-weight:400;line-height:17px;font-size:10pt}cc-matching-files-counter .clickable-component{display:inline-block;color:#000;margin-left:-9px}\n"],encapsulation:2})}}return n})();function sf(n){if("object"!=typeof n)return n;var t,e,i=Object.prototype.toString.call(n);if("[object Object]"===i){if(n.constructor!==Object&&"function"==typeof n.constructor)for(t in e=new n.constructor,n)n.hasOwnProperty(t)&&e[t]!==n[t]&&(e[t]=sf(n[t]));else for(t in e={},n)"__proto__"===t?Object.defineProperty(e,t,{value:sf(n[t]),configurable:!0,enumerable:!0,writable:!0}):e[t]=sf(n[t]);return e}if("[object Array]"===i){for(t=n.length,e=Array(t);t--;)e[t]=sf(n[t]);return e}return"[object Set]"===i?(e=new Set,n.forEach(function(r){e.add(sf(r))}),e):"[object Map]"===i?(e=new Map,n.forEach(function(r,o){e.set(sf(o),sf(r))}),e):"[object Date]"===i?new Date(+n):"[object RegExp]"===i?((e=new RegExp(n.source,n.flags)).lastIndex=n.lastIndex,e):"[object DataView]"===i?new n.constructor(sf(n.buffer)):"[object ArrayBuffer]"===i?n.slice(0):"Array]"===i.slice(-6)?new n.constructor(n):n}const lGe=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"}),cGe=(n,t)=>lGe.compare(n.name,t.name),dGe=(n,t)=>n.attributes.unary-t.attributes.unary,Eie=(n,t,e)=>{if(!n)return;for(let r=0;r{const e=n===E2.NUMBER_OF_FILES?dGe:cGe;return t?e:(i,r)=>-1*e(i,r)})(t,e);return n.children=((n,t)=>{const e=[],i=[];for(const r of t.children)r.type===Oa.FOLDER?e.push(r):i.push(r);return e.sort(n),i.sort(n),[...e,...i]})(i,n),n},fGe=Zt(Bc,Mie,Cie,(n,t,e)=>Eie(sf(n.unifiedMapNode),t,e)),Sie=Zt(XL,n=>n.rightClickedNodeData);let Tie=(()=>{class n{transform(e,i){return cU(e,i)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=dr({name:"areaMetricValid",type:n,pure:!0})}}return n})();function cU(n,t){return n.deltas?.[t]<0||n.attributes?.[t]>0}let mGe=(()=>{class n{transform(e,i){return Ro(e)?"fa fa-file-o":i?"fa fa-folder-open":"fa fa-folder"}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=dr({name:"mapTreeViewItemIconClass",type:n,pure:!0})}}return n})(),pGe=(()=>{class n{static{this.defaultColor="#000000"}static{this.areMetricZeroColor="#BDBDBD"}constructor(e){this.state=e}transform(e){const{areaMetric:i}=this.state.getValue().dynamicSettings;return cU(e,i)?Ro(e)?void 0:KE(e,this.state.getValue().fileSettings.markedPackages)||n.defaultColor:n.areMetricZeroColor}static{this.\u0275fac=function(i){return new(i||n)($(jr,16))}}static{this.\u0275pipe=dr({name:"mapTreeViewItemIconColor",type:n,pure:!1})}}return n})(),AGe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-map-tree-view-item-icon"]],inputs:{node:"node",isOpen:"isOpen"},decls:3,vars:9,consts:[["role","img","aria-hidden","true"]],template:function(i,r){1&i&&(xe(0,"span",0),$e(1,"mapTreeViewItemIconClass"),$e(2,"mapTreeViewItemIconColor")),2&i&&(nl(Mo(1,4,r.node,r.isOpen)),Hi("color",rt(2,7,r.node)))},dependencies:[mGe,pGe],encapsulation:2})}}return n})();const gGe=Zt(Bc,n=>n.unifiedMapNode?.attributes.unary);let Iie=(()=>{class n{transform(e){return Ro(e)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=dr({name:"isNodeLeaf",type:n,pure:!0})}}return n})();function _Ge(n,t){if(1&n&&(P(0,"span"),we(1),$e(2,"async"),H()),2&n){const e=He(2);U(),cn("",(100*e.unaryValue/rt(2,1,e.rootUnary$)).toFixed(0),"%")}}function bGe(n,t){1&n&&we(0,"File")}function vGe(n,t){1&n&&we(0,"Files")}function yGe(n,t){if(1&n&&(P(0,"span",2),we(1),At(2,bGe,1,0,"ng-template",3)(3,vGe,1,0,"ng-template",4),H()),2&n){const e=He(2);pe("ngPlural",e.unaryValue),U(),cn(" ",e.unaryValue," ")}}function wGe(n,t){if(1&n&&(P(0,"span",1),At(1,_Ge,3,3,"span")(2,yGe,4,2),H()),2&n){const e=He();U(),It(1,e.isHovered?2:1)}}let xGe=(()=>{class n{constructor(e){this.searchedNodePaths$=e.select(UL),this.rootUnary$=e.select(gGe),this.areaMetric$=e.select(rb)}static{this.\u0275fac=function(i){return new(i||n)($(Xt))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-map-tree-view-item-name"]],inputs:{node:"node",isHovered:"isHovered",unaryValue:"unaryValue",unaryPercentage:"unaryPercentage"},decls:7,vars:17,consts:[[1,"node-name"],[1,"unary-number"],[3,"ngPlural"],["ngPluralCase","=1"],["ngPluralCase","other"]],template:function(i,r){1&i&&(P(0,"span",0),$e(1,"async"),$e(2,"areaMetricValid"),$e(3,"async"),we(4),H(),At(5,wGe,3,1,"span",1),$e(6,"isNodeLeaf")),2&i&&(Qn("flattened",r.node.isFlattened)("noAreaMetric",!Mo(2,10,r.node,rt(1,8,r.areaMetric$)))("tree-search-result",rt(3,13,r.searchedNodePaths$).has(r.node.path)),U(4),cn(" ",r.node.name,"\n"),U(),It(5,rt(6,15,r.node)?-1:5))},dependencies:[kB,WV,Yn,Tie,Iie],encapsulation:2})}}return n})();function CGe(n,t){1&n&&xe(0,"i",1)}let MGe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-map-tree-view-item-option-buttons"]],inputs:{isFlattened:"isFlattened",openNodeContextMenu:"openNodeContextMenu"},decls:5,vars:1,consts:[["role","button","aria-hidden","true",1,"right-aligned"],["title","Flattened",1,"flattened","fa","fa-eye-slash"],[1,"small-action-button"],["title","Open Node-Context-Menu",3,"click"],[1,"fa","fa-ellipsis-h"]],template:function(i,r){1&i&&(P(0,"span",0),At(1,CGe,1,0,"i",1),P(2,"div",2)(3,"button",3),We("click",function(s){return r.openNodeContextMenu(s)}),xe(4,"i",4),H()()()),2&i&&(U(),It(1,r.isFlattened?1:-1))},styles:["button[_ngcontent-%COMP%]{display:inline-block;height:19px;width:24px;min-height:0;margin:0;background-color:transparent;box-shadow:none;vertical-align:top}button[_ngcontent-%COMP%]:hover{background-color:#ddd;color:#000000de}button[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{position:absolute;top:2px;left:6px}"]})}}return n})();function EGe(n,t){if(1&n&&xe(0,"cc-map-tree-view-item-option-buttons",4),2&n){const e=He(2);pe("isFlattened",e.node.isFlattened)("openNodeContextMenu",e.openNodeContextMenu)}}function SGe(n,t){if(1&n&&(P(0,"div"),xe(1,"cc-map-tree-view-level",5),H()),2&n){const e=t.$implicit,i=He(3);U(),pe("node",e)("depth",i.depth+1)}}function TGe(n,t){1&n&&Rr(0,SGe,2,2,"div",null,Hr),2&n&&Lr(He(2).node.children)}function IGe(n,t){if(1&n){const e=Pn();P(0,"div"),$e(1,"isNodeLeaf"),P(2,"div",1),$e(3,"async"),$e(4,"async"),$e(5,"async"),$e(6,"areaMetricValid"),We("mouseenter",function(){return Vt(e),Ot(He().onMouseEnter())})("mouseleave",function(){return Vt(e),Ot(He().onMouseLeave())})("click",function(){return Vt(e),Ot(He().onClick())})("contextmenu",function(r){return Vt(e),Ot(He().openNodeContextMenu(r))}),xe(7,"cc-map-tree-view-item-icon",2)(8,"cc-map-tree-view-item-name",3),$e(9,"async"),At(10,EGe,1,2,"cc-map-tree-view-item-option-buttons",4),$e(11,"async"),$e(12,"async"),$e(13,"areaMetricValid"),H(),P(14,"div"),At(15,TGe,2,0),H()()}if(2&n){let e;const i=He();(function K7(n,t,e,i,r){Zc(Uo,Wd,_0(Pt(),n,t,e,i,r),!0)})("tree-element-",i.depth," ",rt(1,23,i.node)?"tree-leaf":"tree-parent",""),U(2),ah("tree-element-label-",i.depth," tree-element-label"),Qn("hovered",rt(3,25,i.hoveredNodeId$)===i.node.id)("marked",(null==(e=rt(4,27,i.rightClickedNodeData$))?null:e.nodeId)===i.node.id),ka("id",i.node.path),pe("title",Mo(6,31,i.node,rt(5,29,i.areaMetric$))?"":"No Node Area for Chosen Metric"),U(5),pe("node",i.node)("isOpen",i.isOpen),U(),pe("node",i.node)("isHovered",rt(9,34,i.hoveredNodeId$)===i.node.id)("unaryValue",i.node.attributes.unary),U(2),It(10,rt(11,36,i.hoveredNodeId$)===i.node.id&&Mo(13,40,i.node,rt(12,38,i.areaMetric$))?10:-1),U(4),ah("tree-element-children tree-element-children-",i.depth,""),U(),It(15,i.isOpen?15:-1)}}let FGe=(()=>{class n{constructor(e,i,r,o,s){this.store=e,this.threeSceneService=i,this.idToBuildingService=r,this.threeRendererService=o,this.codeMapMouseEventService=s,this.hoveredNodeId$=this.store.select(kw),this.rightClickedNodeData$=this.store.select(Sie),this.areaMetric$=this.store.select(rb),this.isOpen=!1,this.areMetricValid=!1,this.openNodeContextMenu=a=>{a.preventDefault(),a.stopPropagation(),this.areaMetric$.subscribe(l=>this.areMetricValid=cU(this.node,l)).unsubscribe(),this.areMetricValid&&(this.store.dispatch(ib({value:{nodeId:this.node.id,xPositionOfRightClickEvent:a.clientX,yPositionOfRightClickEvent:a.clientY}})),document.querySelector(".tree-element-0").addEventListener("scroll",this.scrollFunction))},this.scrollFunction=()=>{this.store.dispatch(ib({value:null})),document.querySelector(".tree-element-0").removeEventListener("scroll",this.scrollFunction)}}ngOnInit(){this.isOpen=0===this.depth}onMouseEnter(){const e=this.idToBuildingService.get(this.node.id),i=this.threeSceneService.labels?.children;this.codeMapMouseEventService.setLabelHoveredLeaf(e,i),this.codeMapMouseEventService.hoverNode(this.node.id),this.store.dispatch(nb({value:this.node.id}))}onMouseLeave(){this.threeSceneService.resetLabel(),this.codeMapMouseEventService.unhoverNode(),this.codeMapMouseEventService.clearLabelHoveredBuilding(),this.store.dispatch(nb({value:null}))}onClick(){this.isOpen=!this.isOpen;const e=this.idToBuildingService.get(this.node.id);this.codeMapMouseEventService.drawLabelSelectedBuilding(e),this.threeSceneService.selectBuilding(e),this.threeSceneService.clearConstantHighlight(),this.threeRendererService.render()}static{this.\u0275fac=function(i){return new(i||n)($(Xt),$(Pc),$(Iw),$($i),$(Bw))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-map-tree-view-level"]],inputs:{node:"node",depth:"depth"},decls:1,vars:1,consts:[[3,"class"],[3,"mouseenter","mouseleave","click","contextmenu","id","title"],[3,"node","isOpen"],[3,"node","isHovered","unaryValue"],[3,"isFlattened","openNodeContextMenu"],[3,"node","depth"]],template:function(i,r){1&i&&At(0,IGe,16,43,"div",0),2&i&&It(0,r.node.isExcluded?-1:0)},dependencies:[AGe,xGe,MGe,n,Yn,Tie,Iie],encapsulation:2})}}return n})();function DGe(n,t){1&n&&xe(0,"cc-map-tree-view-level",0),2&n&&pe("node",t)("depth",0)}let kGe=(()=>{class n{constructor(e){this.mapTreeViewNode$=e.select(fGe)}static{this.\u0275fac=function(i){return new(i||n)($(Xt))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-map-tree-view"]],decls:2,vars:3,consts:[[3,"node","depth"]],template:function(i,r){if(1&i&&(At(0,DGe,1,2,"cc-map-tree-view-level",0),$e(1,"async")),2&i){let o;It(0,(o=rt(1,1,r.mapTreeViewNode$))?0:-1,o)}},dependencies:[FGe,Yn],styles:["cc-map-tree-view .tree-element-0{overflow-y:auto;max-height:400px;margin-left:3px;margin-top:10px}cc-map-tree-view .tree-element-0 div{margin:0;padding:0;position:relative}cc-map-tree-view .tree-element-0 .tree-element-children{margin-left:19px}cc-map-tree-view .tree-element-label{cursor:default}cc-map-tree-view .tree-element-label{cursor:pointer}cc-map-tree-view .tree-element-label:focus{outline:none}cc-map-tree-view .tree-element-label:hover,cc-map-tree-view .tree-element-label.hovered{background-color:#efefef;border-radius:2px}cc-map-tree-view .tree-element-label.marked{background-color:#efefef;border-radius:2px}cc-map-tree-view .tree-element-label .unary-number{color:#a3a3a3;font-size:.8em;margin-top:1px}cc-map-tree-view .tree-element-label .node-type-icon{display:inline-block;width:14px;margin-left:2px}cc-map-tree-view .tree-element-label .node-name.flattened{color:gray}cc-map-tree-view .tree-element-label .node-name.noAreaMetric{color:#bdbdbd}cc-map-tree-view .tree-element-label .right-aligned{position:absolute;right:6px}cc-map-tree-view .tree-element-label .right-aligned i.flattened{color:gray}cc-map-tree-view .tree-search-result{background-color:#fc801bab}\n"],encapsulation:2})}}return n})(),BGe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[gn,Xi,Qqe,zqe,qqe,yie]})}}return n})();IM(vZ,[eGe,aGe,kGe,mO,fO,Bqe,Vqe],[]);let PGe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[gn,Xi,BGe,Nze,Eqe,$ze,Bze,jze,Sqe,Pze,Dqe,Rze,Fqe,Lze,Uze,yie]})}}return n})(),RGe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[tg]})}}return n})(),LGe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[gn,Xi]})}}return n})(),OGe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[gn,Xi,QI]})}}return n})(),NGe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[Xi,Sx,OGe,LGe,tg]})}}return n})(),UGe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[gn]})}}return n})(),HGe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[gn,tg]})}}return n})(),VGe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({providers:[rne],imports:[gn,Xi,rd,cie]})}}return n})(),QGe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({providers:[Ate],imports:[gn,tg]})}}return n})(),zGe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[gn,Xi]})}}return n})(),qGe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[gn,tg,JQ,Xi,OO,rd,oU]})}}return n})(),GGe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[gn,Xi]})}}return n})(),WGe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[gn,tg,Xi,Gy,rd]})}}return n})(),$Ge=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[gn,RGe,HGe,QGe,qGe,WGe,VGe,UGe,GGe,zGe,NGe]})}}return n})(),jGe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[kze,gn,Mze,Fze,PGe,$Ge,Tze,Dze]})}}return n})();let ng={async:!1,baseUrl:null,breaks:!1,extensions:null,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,hooks:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1};const Die=/[&<>"']/,YGe=new RegExp(Die.source,"g"),kie=/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,ZGe=new RegExp(kie.source,"g"),JGe={"&":"&","<":"<",">":">",'"':""","'":"'"},Bie=n=>JGe[n];function ya(n,t){if(t){if(Die.test(n))return n.replace(YGe,Bie)}else if(kie.test(n))return n.replace(ZGe,Bie);return n}const eWe=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function Pie(n){return n.replace(eWe,(t,e)=>"colon"===(e=e.toLowerCase())?":":"#"===e.charAt(0)?"x"===e.charAt(1)?String.fromCharCode(parseInt(e.substring(2),16)):String.fromCharCode(+e.substring(1)):"")}const tWe=/(^|[^\[])\^/g;function io(n,t){n="string"==typeof n?n:n.source,t=t||"";const e={replace:(i,r)=>(r=(r=r.source||r).replace(tWe,"$1"),n=n.replace(i,r),e),getRegex:()=>new RegExp(n,t)};return e}const nWe=/[^\w:]/g,iWe=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function Rie(n,t,e){if(n){let i;try{i=decodeURIComponent(Pie(e)).replace(nWe,"").toLowerCase()}catch{return null}if(0===i.indexOf("javascript:")||0===i.indexOf("vbscript:")||0===i.indexOf("data:"))return null}t&&!iWe.test(e)&&(e=function aWe(n,t){$I[" "+n]||($I[" "+n]=rWe.test(n)?n+"/":XI(n,"/",!0));const e=-1===(n=$I[" "+n]).indexOf(":");return"//"===t.substring(0,2)?e?t:n.replace(oWe,"$1")+t:"/"===t.charAt(0)?e?t:n.replace(sWe,"$1")+t:n+t}(t,e));try{e=encodeURI(e).replace(/%25/g,"%")}catch{return null}return e}const $I={},rWe=/^[^:]+:\/*[^/]*$/,oWe=/^([^:]+:)[\s\S]*$/,sWe=/^([^:]+:\/*[^/]*)[\s\S]*$/,jI={exec:function(){}};function Lie(n,t){const i=n.replace(/\|/g,(o,s,a)=>{let l=!1,c=s;for(;--c>=0&&"\\"===a[c];)l=!l;return l?"|":" |"}).split(/ \|/);let r=0;if(i[0].trim()||i.shift(),i.length>0&&!i[i.length-1].trim()&&i.pop(),i.length>t)i.splice(t);else for(;i.length1;)1&t&&(e+=n),t>>=1,n+=n;return e+n}function Nie(n,t,e,i){const r=t.href,o=t.title?ya(t.title):null,s=n[1].replace(/\\([\[\]])/g,"$1");if("!"!==n[0].charAt(0)){i.state.inLink=!0;const a={type:"link",raw:e,href:r,title:o,text:s,tokens:i.inlineTokens(s)};return i.state.inLink=!1,a}return{type:"image",raw:e,href:r,title:o,text:ya(s)}}class dU{constructor(t){this.options=t||ng}space(t){const e=this.rules.block.newline.exec(t);if(e&&e[0].length>0)return{type:"space",raw:e[0]}}code(t){const e=this.rules.block.code.exec(t);if(e){const i=e[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:e[0],codeBlockStyle:"indented",text:this.options.pedantic?i:XI(i,"\n")}}}fences(t){const e=this.rules.block.fences.exec(t);if(e){const i=e[0],r=function dWe(n,t){const e=n.match(/^(\s+)(?:```)/);if(null===e)return t;const i=e[1];return t.split("\n").map(r=>{const o=r.match(/^\s+/);if(null===o)return r;const[s]=o;return s.length>=i.length?r.slice(i.length):r}).join("\n")}(i,e[3]||"");return{type:"code",raw:i,lang:e[2]?e[2].trim().replace(this.rules.inline._escapes,"$1"):e[2],text:r}}}heading(t){const e=this.rules.block.heading.exec(t);if(e){let i=e[2].trim();if(/#$/.test(i)){const r=XI(i,"#");(this.options.pedantic||!r||/ $/.test(r))&&(i=r.trim())}return{type:"heading",raw:e[0],depth:e[1].length,text:i,tokens:this.lexer.inline(i)}}}hr(t){const e=this.rules.block.hr.exec(t);if(e)return{type:"hr",raw:e[0]}}blockquote(t){const e=this.rules.block.blockquote.exec(t);if(e){const i=e[0].replace(/^ *>[ \t]?/gm,""),r=this.lexer.state.top;this.lexer.state.top=!0;const o=this.lexer.blockTokens(i);return this.lexer.state.top=r,{type:"blockquote",raw:e[0],tokens:o,text:i}}}list(t){let e=this.rules.block.list.exec(t);if(e){let i,r,o,s,a,l,c,d,u,h,f,A,y=e[1].trim();const _=y.length>1,b={type:"list",raw:"",ordered:_,start:_?+y.slice(0,-1):"",loose:!1,items:[]};y=_?`\\d{1,9}\\${y.slice(-1)}`:`\\${y}`,this.options.pedantic&&(y=_?y:"[*+-]");const M=new RegExp(`^( {0,3}${y})((?:[\t ][^\\n]*)?(?:\\n|$))`);for(;t&&(A=!1,(e=M.exec(t))&&!this.rules.block.hr.test(t));){if(i=e[0],t=t.substring(i.length),d=e[2].split("\n",1)[0].replace(/^\t+/,E=>" ".repeat(3*E.length)),u=t.split("\n",1)[0],this.options.pedantic?(s=2,f=d.trimLeft()):(s=e[2].search(/[^ ]/),s=s>4?1:s,f=d.slice(s),s+=e[1].length),l=!1,!d&&/^ *$/.test(u)&&(i+=u+"\n",t=t.substring(u.length+1),A=!0),!A){const E=new RegExp(`^ {0,${Math.min(3,s-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ \t][^\\n]*)?(?:\\n|$))`),I=new RegExp(`^ {0,${Math.min(3,s-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),V=new RegExp(`^ {0,${Math.min(3,s-1)}}(?:\`\`\`|~~~)`),R=new RegExp(`^ {0,${Math.min(3,s-1)}}#`);for(;t&&(h=t.split("\n",1)[0],u=h,this.options.pedantic&&(u=u.replace(/^ {1,4}(?=( {4})*[^ ])/g," ")),!(V.test(u)||R.test(u)||E.test(u)||I.test(t)));){if(u.search(/[^ ]/)>=s||!u.trim())f+="\n"+u.slice(s);else{if(l||d.search(/[^ ]/)>=4||V.test(d)||R.test(d)||I.test(d))break;f+="\n"+u}!l&&!u.trim()&&(l=!0),i+=h+"\n",t=t.substring(h.length+1),d=u.slice(s)}}b.loose||(c?b.loose=!0:/\n *\n *$/.test(i)&&(c=!0)),this.options.gfm&&(r=/^\[[ xX]\] /.exec(f),r&&(o="[ ] "!==r[0],f=f.replace(/^\[[ xX]\] +/,""))),b.items.push({type:"list_item",raw:i,task:!!r,checked:o,loose:!1,text:f}),b.raw+=i}b.items[b.items.length-1].raw=i.trimRight(),b.items[b.items.length-1].text=f.trimRight(),b.raw=b.raw.trimRight();const C=b.items.length;for(a=0;a"space"===V.type),I=E.length>0&&E.some(V=>/\n.*\n/.test(V.raw));b.loose=I}if(b.loose)for(a=0;a$/,"$1").replace(this.rules.inline._escapes,"$1"):"",o=e[3]?e[3].substring(1,e[3].length-1).replace(this.rules.inline._escapes,"$1"):e[3];return{type:"def",tag:i,raw:e[0],href:r,title:o}}}table(t){const e=this.rules.block.table.exec(t);if(e){const i={type:"table",header:Lie(e[1]).map(r=>({text:r})),align:e[2].replace(/^ *|\| *$/g,"").split(/ *\| */),rows:e[3]&&e[3].trim()?e[3].replace(/\n[ \t]*$/,"").split("\n"):[]};if(i.header.length===i.align.length){i.raw=e[0];let o,s,a,l,r=i.align.length;for(o=0;o({text:c}));for(r=i.header.length,s=0;s/i.test(e[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(e[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(e[0])&&(this.lexer.state.inRawBlock=!1),{type:this.options.sanitize?"text":"html",raw:e[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(e[0]):ya(e[0]):e[0]}}link(t){const e=this.rules.inline.link.exec(t);if(e){const i=e[2].trim();if(!this.options.pedantic&&/^$/.test(i))return;const s=XI(i.slice(0,-1),"\\");if((i.length-s.length)%2==0)return}else{const s=function lWe(n,t){if(-1===n.indexOf(t[1]))return-1;const e=n.length;let i=0,r=0;for(;r-1){const l=(0===e[0].indexOf("!")?5:4)+e[1].length+s;e[2]=e[2].substring(0,s),e[0]=e[0].substring(0,l).trim(),e[3]=""}}let r=e[2],o="";if(this.options.pedantic){const s=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(r);s&&(r=s[1],o=s[3])}else o=e[3]?e[3].slice(1,-1):"";return r=r.trim(),/^$/.test(i)?r.slice(1):r.slice(1,-1)),Nie(e,{href:r&&r.replace(this.rules.inline._escapes,"$1"),title:o&&o.replace(this.rules.inline._escapes,"$1")},e[0],this.lexer)}}reflink(t,e){let i;if((i=this.rules.inline.reflink.exec(t))||(i=this.rules.inline.nolink.exec(t))){let r=(i[2]||i[1]).replace(/\s+/g," ");if(r=e[r.toLowerCase()],!r){const o=i[0].charAt(0);return{type:"text",raw:o,text:o}}return Nie(i,r,i[0],this.lexer)}}emStrong(t,e,i=""){let r=this.rules.inline.emStrong.lDelim.exec(t);if(!r||r[3]&&i.match(/[\p{L}\p{N}]/u))return;const o=r[1]||r[2]||"";if(!o||o&&(""===i||this.rules.inline.punctuation.exec(i))){const s=r[0].length-1;let a,l,c=s,d=0;const u="*"===r[0][0]?this.rules.inline.emStrong.rDelimAst:this.rules.inline.emStrong.rDelimUnd;for(u.lastIndex=0,e=e.slice(-1*t.length+s);null!=(r=u.exec(e));){if(a=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!a)continue;if(l=a.length,r[3]||r[4]){c+=l;continue}if((r[5]||r[6])&&s%3&&!((s+l)%3)){d+=l;continue}if(c-=l,c>0)continue;l=Math.min(l,l+c+d);const h=t.slice(0,s+r.index+(r[0].length-a.length)+l);if(Math.min(s,l)%2){const A=h.slice(1,-1);return{type:"em",raw:h,text:A,tokens:this.lexer.inlineTokens(A)}}const f=h.slice(2,-2);return{type:"strong",raw:h,text:f,tokens:this.lexer.inlineTokens(f)}}}}codespan(t){const e=this.rules.inline.code.exec(t);if(e){let i=e[2].replace(/\n/g," ");const r=/[^ ]/.test(i),o=/^ /.test(i)&&/ $/.test(i);return r&&o&&(i=i.substring(1,i.length-1)),i=ya(i,!0),{type:"codespan",raw:e[0],text:i}}}br(t){const e=this.rules.inline.br.exec(t);if(e)return{type:"br",raw:e[0]}}del(t){const e=this.rules.inline.del.exec(t);if(e)return{type:"del",raw:e[0],text:e[2],tokens:this.lexer.inlineTokens(e[2])}}autolink(t,e){const i=this.rules.inline.autolink.exec(t);if(i){let r,o;return"@"===i[2]?(r=ya(this.options.mangle?e(i[1]):i[1]),o="mailto:"+r):(r=ya(i[1]),o=r),{type:"link",raw:i[0],text:r,href:o,tokens:[{type:"text",raw:r,text:r}]}}}url(t,e){let i;if(i=this.rules.inline.url.exec(t)){let r,o;if("@"===i[2])r=ya(this.options.mangle?e(i[0]):i[0]),o="mailto:"+r;else{let s;do{s=i[0],i[0]=this.rules.inline._backpedal.exec(i[0])[0]}while(s!==i[0]);r=ya(i[0]),o="www."===i[1]?"http://"+i[0]:i[0]}return{type:"link",raw:i[0],text:r,href:o,tokens:[{type:"text",raw:r,text:r}]}}}inlineText(t,e){const i=this.rules.inline.text.exec(t);if(i){let r;return r=this.lexer.state.inRawBlock?this.options.sanitize?this.options.sanitizer?this.options.sanitizer(i[0]):ya(i[0]):i[0]:ya(this.options.smartypants?e(i[0]):i[0]),{type:"text",raw:i[0],text:r}}}}const ti={newline:/^(?: *(?:\n|$))+/,code:/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,hr:/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/,html:"^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n *)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))",def:/^ {0,3}\[(label)\]: *(?:\n *)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/,table:jI,lheading:/^((?:.|\n(?!\n))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,text:/^[^\n]+/,_label:/(?!\s*\])(?:\\.|[^\[\]\\])+/,_title:/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/};ti.def=io(ti.def).replace("label",ti._label).replace("title",ti._title).getRegex(),ti.bullet=/(?:[*+-]|\d{1,9}[.)])/,ti.listItemStart=io(/^( *)(bull) */).replace("bull",ti.bullet).getRegex(),ti.list=io(ti.list).replace(/bull/g,ti.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+ti.def.source+")").getRegex(),ti._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",ti._comment=/|$)/,ti.html=io(ti.html,"i").replace("comment",ti._comment).replace("tag",ti._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),ti.paragraph=io(ti._paragraph).replace("hr",ti.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",ti._tag).getRegex(),ti.blockquote=io(ti.blockquote).replace("paragraph",ti.paragraph).getRegex(),ti.normal={...ti},ti.gfm={...ti.normal,table:"^ *([^\\n ].*\\|.*)\\n {0,3}(?:\\| *)?(:?-+:? *(?:\\| *:?-+:? *)*)(?:\\| *)?(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"},ti.gfm.table=io(ti.gfm.table).replace("hr",ti.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",ti._tag).getRegex(),ti.gfm.paragraph=io(ti._paragraph).replace("hr",ti.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("table",ti.gfm.table).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",ti._tag).getRegex(),ti.pedantic={...ti.normal,html:io("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",ti._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:jI,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:io(ti.normal._paragraph).replace("hr",ti.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",ti.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()};const On={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:jI,tag:"^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(ref)\]/,nolink:/^!?\[(ref)\](?:\[\])?/,reflinkSearch:"reflink|nolink(?!\\()",emStrong:{lDelim:/^(?:\*+(?:([punct_])|[^\s*]))|^_+(?:([punct*])|([^\s_]))/,rDelimAst:/^(?:[^_*\\]|\\.)*?\_\_(?:[^_*\\]|\\.)*?\*(?:[^_*\\]|\\.)*?(?=\_\_)|(?:[^*\\]|\\.)+(?=[^*])|[punct_](\*+)(?=[\s]|$)|(?:[^punct*_\s\\]|\\.)(\*+)(?=[punct_\s]|$)|[punct_\s](\*+)(?=[^punct*_\s])|[\s](\*+)(?=[punct_])|[punct_](\*+)(?=[punct_])|(?:[^punct*_\s\\]|\\.)(\*+)(?=[^punct*_\s])/,rDelimUnd:/^(?:[^_*\\]|\\.)*?\*\*(?:[^_*\\]|\\.)*?\_(?:[^_*\\]|\\.)*?(?=\*\*)|(?:[^_\\]|\\.)+(?=[^_])|[punct*](\_+)(?=[\s]|$)|(?:[^punct*_\s\\]|\\.)(\_+)(?=[punct*\s]|$)|[punct*\s](\_+)(?=[^punct*_\s])|[\s](\_+)(?=[punct*])|[punct*](\_+)(?=[punct*])/},code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:jI,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\.5&&(i="x"+i.toString(16)),t+="&#"+i+";";return t}On._punctuation="!\"#$%&'()+\\-.,/:;<=>?@\\[\\]`^{|}~",On.punctuation=io(On.punctuation).replace(/punctuation/g,On._punctuation).getRegex(),On.blockSkip=/\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g,On.escapedEmSt=/(?:^|[^\\])(?:\\\\)*\\[*_]/g,On._comment=io(ti._comment).replace("(?:--\x3e|$)","--\x3e").getRegex(),On.emStrong.lDelim=io(On.emStrong.lDelim).replace(/punct/g,On._punctuation).getRegex(),On.emStrong.rDelimAst=io(On.emStrong.rDelimAst,"g").replace(/punct/g,On._punctuation).getRegex(),On.emStrong.rDelimUnd=io(On.emStrong.rDelimUnd,"g").replace(/punct/g,On._punctuation).getRegex(),On._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,On._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,On._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,On.autolink=io(On.autolink).replace("scheme",On._scheme).replace("email",On._email).getRegex(),On._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,On.tag=io(On.tag).replace("comment",On._comment).replace("attribute",On._attribute).getRegex(),On._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,On._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/,On._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,On.link=io(On.link).replace("label",On._label).replace("href",On._href).replace("title",On._title).getRegex(),On.reflink=io(On.reflink).replace("label",On._label).replace("ref",ti._label).getRegex(),On.nolink=io(On.nolink).replace("ref",ti._label).getRegex(),On.reflinkSearch=io(On.reflinkSearch,"g").replace("reflink",On.reflink).replace("nolink",On.nolink).getRegex(),On.normal={...On},On.pedantic={...On.normal,strong:{start:/^__|\*\*/,middle:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,endAst:/\*\*(?!\*)/g,endUnd:/__(?!_)/g},em:{start:/^_|\*/,middle:/^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,endAst:/\*(?!\*)/g,endUnd:/_(?!_)/g},link:io(/^!?\[(label)\]\((.*?)\)/).replace("label",On._label).getRegex(),reflink:io(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",On._label).getRegex()},On.gfm={...On.normal,escape:io(On.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\l+" ".repeat(c.length));t;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some(a=>!!(i=a.call({lexer:this},t,e))&&(t=t.substring(i.raw.length),e.push(i),!0)))){if(i=this.tokenizer.space(t)){t=t.substring(i.raw.length),1===i.raw.length&&e.length>0?e[e.length-1].raw+="\n":e.push(i);continue}if(i=this.tokenizer.code(t)){t=t.substring(i.raw.length),r=e[e.length-1],!r||"paragraph"!==r.type&&"text"!==r.type?e.push(i):(r.raw+="\n"+i.raw,r.text+="\n"+i.text,this.inlineQueue[this.inlineQueue.length-1].src=r.text);continue}if(i=this.tokenizer.fences(t)){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.heading(t)){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.hr(t)){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.blockquote(t)){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.list(t)){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.html(t)){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.def(t)){t=t.substring(i.raw.length),r=e[e.length-1],!r||"paragraph"!==r.type&&"text"!==r.type?this.tokens.links[i.tag]||(this.tokens.links[i.tag]={href:i.href,title:i.title}):(r.raw+="\n"+i.raw,r.text+="\n"+i.raw,this.inlineQueue[this.inlineQueue.length-1].src=r.text);continue}if(i=this.tokenizer.table(t)){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.lheading(t)){t=t.substring(i.raw.length),e.push(i);continue}if(o=t,this.options.extensions&&this.options.extensions.startBlock){let a=1/0;const l=t.slice(1);let c;this.options.extensions.startBlock.forEach(function(d){c=d.call({lexer:this},l),"number"==typeof c&&c>=0&&(a=Math.min(a,c))}),a<1/0&&a>=0&&(o=t.substring(0,a+1))}if(this.state.top&&(i=this.tokenizer.paragraph(o))){r=e[e.length-1],s&&"paragraph"===r.type?(r.raw+="\n"+i.raw,r.text+="\n"+i.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=r.text):e.push(i),s=o.length!==t.length,t=t.substring(i.raw.length);continue}if(i=this.tokenizer.text(t)){t=t.substring(i.raw.length),r=e[e.length-1],r&&"text"===r.type?(r.raw+="\n"+i.raw,r.text+="\n"+i.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=r.text):e.push(i);continue}if(t){const a="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(a);break}throw new Error(a)}}return this.state.top=!0,e}inline(t,e=[]){return this.inlineQueue.push({src:t,tokens:e}),e}inlineTokens(t,e=[]){let i,r,o,a,l,c,s=t;if(this.tokens.links){const d=Object.keys(this.tokens.links);if(d.length>0)for(;null!=(a=this.tokenizer.rules.inline.reflinkSearch.exec(s));)d.includes(a[0].slice(a[0].lastIndexOf("[")+1,-1))&&(s=s.slice(0,a.index)+"["+Oie("a",a[0].length-2)+"]"+s.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;null!=(a=this.tokenizer.rules.inline.blockSkip.exec(s));)s=s.slice(0,a.index)+"["+Oie("a",a[0].length-2)+"]"+s.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;null!=(a=this.tokenizer.rules.inline.escapedEmSt.exec(s));)s=s.slice(0,a.index+a[0].length-2)+"++"+s.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex),this.tokenizer.rules.inline.escapedEmSt.lastIndex--;for(;t;)if(l||(c=""),l=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some(d=>!!(i=d.call({lexer:this},t,e))&&(t=t.substring(i.raw.length),e.push(i),!0)))){if(i=this.tokenizer.escape(t)){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.tag(t)){t=t.substring(i.raw.length),r=e[e.length-1],r&&"text"===i.type&&"text"===r.type?(r.raw+=i.raw,r.text+=i.text):e.push(i);continue}if(i=this.tokenizer.link(t)){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.reflink(t,this.tokens.links)){t=t.substring(i.raw.length),r=e[e.length-1],r&&"text"===i.type&&"text"===r.type?(r.raw+=i.raw,r.text+=i.text):e.push(i);continue}if(i=this.tokenizer.emStrong(t,s,c)){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.codespan(t)){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.br(t)){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.del(t)){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.autolink(t,Uie)){t=t.substring(i.raw.length),e.push(i);continue}if(!this.state.inLink&&(i=this.tokenizer.url(t,Uie))){t=t.substring(i.raw.length),e.push(i);continue}if(o=t,this.options.extensions&&this.options.extensions.startInline){let d=1/0;const u=t.slice(1);let h;this.options.extensions.startInline.forEach(function(f){h=f.call({lexer:this},u),"number"==typeof h&&h>=0&&(d=Math.min(d,h))}),d<1/0&&d>=0&&(o=t.substring(0,d+1))}if(i=this.tokenizer.inlineText(o,uWe)){t=t.substring(i.raw.length),"_"!==i.raw.slice(-1)&&(c=i.raw.slice(-1)),l=!0,r=e[e.length-1],r&&"text"===r.type?(r.raw+=i.raw,r.text+=i.text):e.push(i);continue}if(t){const d="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(d);break}throw new Error(d)}}return e}}class uU{constructor(t){this.options=t||ng}code(t,e,i){const r=(e||"").match(/\S*/)[0];if(this.options.highlight){const o=this.options.highlight(t,r);null!=o&&o!==t&&(i=!0,t=o)}return t=t.replace(/\n$/,"")+"\n",r?'

    '+(i?t:ya(t,!0))+"
    \n":"
    "+(i?t:ya(t,!0))+"
    \n"}blockquote(t){return`
    \n${t}
    \n`}html(t){return t}heading(t,e,i,r){return this.options.headerIds?`${t}\n`:`${t}\n`}hr(){return this.options.xhtml?"
    \n":"
    \n"}list(t,e,i){const r=e?"ol":"ul";return"<"+r+(e&&1!==i?' start="'+i+'"':"")+">\n"+t+"\n"}listitem(t){return`
  • ${t}
  • \n`}checkbox(t){return" "}paragraph(t){return`

    ${t}

    \n`}table(t,e){return e&&(e=`${e}`),"\n\n"+t+"\n"+e+"
    \n"}tablerow(t){return`\n${t}\n`}tablecell(t,e){const i=e.header?"th":"td";return(e.align?`<${i} align="${e.align}">`:`<${i}>`)+t+`\n`}strong(t){return`${t}`}em(t){return`${t}`}codespan(t){return`${t}`}br(){return this.options.xhtml?"
    ":"
    "}del(t){return`${t}`}link(t,e,i){if(null===(t=Rie(this.options.sanitize,this.options.baseUrl,t)))return i;let r='",r}image(t,e,i){if(null===(t=Rie(this.options.sanitize,this.options.baseUrl,t)))return i;let r=`${i}":">",r}text(t){return t}}class Hie{strong(t){return t}em(t){return t}codespan(t){return t}del(t){return t}html(t){return t}text(t){return t}link(t,e,i){return""+i}image(t,e,i){return""+i}br(){return""}}class Vie{constructor(){this.seen={}}serialize(t){return t.toLowerCase().trim().replace(/<[!\/a-z].*?>/gi,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-")}getNextSafeSlug(t,e){let i=t,r=0;if(this.seen.hasOwnProperty(i)){r=this.seen[t];do{r++,i=t+"-"+r}while(this.seen.hasOwnProperty(i))}return e||(this.seen[t]=r,this.seen[i]=0),i}slug(t,e={}){const i=this.serialize(t);return this.getNextSafeSlug(i,e.dryrun)}}class qm{constructor(t){this.options=t||ng,this.options.renderer=this.options.renderer||new uU,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new Hie,this.slugger=new Vie}static parse(t,e){return new qm(e).parse(t)}static parseInline(t,e){return new qm(e).parseInline(t)}parse(t,e=!0){let r,o,s,a,l,c,d,u,h,f,A,y,_,b,M,C,E,I,V,i="";const R=t.length;for(r=0;r0&&"paragraph"===M.tokens[0].type?(M.tokens[0].text=I+" "+M.tokens[0].text,M.tokens[0].tokens&&M.tokens[0].tokens.length>0&&"text"===M.tokens[0].tokens[0].type&&(M.tokens[0].tokens[0].text=I+" "+M.tokens[0].tokens[0].text)):M.tokens.unshift({type:"text",text:I}):b+=I),b+=this.parse(M.tokens,_),h+=this.renderer.listitem(b,E,C);i+=this.renderer.list(h,A,y);continue;case"html":i+=this.renderer.html(f.text);continue;case"paragraph":i+=this.renderer.paragraph(this.parseInline(f.tokens));continue;case"text":for(h=f.tokens?this.parseInline(f.tokens):f.text;r+1{"function"==typeof i&&(r=i,i=null);const o={...i},s=function hWe(n,t,e){return i=>{if(i.message+="\nPlease report this to https://github.com/markedjs/marked.",n){const r="

    An error occurred:

    "+ya(i.message+"",!0)+"
    ";return t?Promise.resolve(r):e?void e(null,r):r}if(t)return Promise.reject(i);if(!e)throw i;e(i)}}((i={...ni.defaults,...o}).silent,i.async,r);if(typeof e>"u"||null===e)return s(new Error("marked(): input parameter is undefined or null"));if("string"!=typeof e)return s(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected"));if(function cWe(n){n&&n.sanitize&&!n.silent&&console.warn("marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options")}(i),i.hooks&&(i.hooks.options=i),r){const a=i.highlight;let l;try{i.hooks&&(e=i.hooks.preprocess(e)),l=n(e,i)}catch(u){return s(u)}const c=function(u){let h;if(!u)try{i.walkTokens&&ni.walkTokens(l,i.walkTokens),h=t(l,i),i.hooks&&(h=i.hooks.postprocess(h))}catch(f){u=f}return i.highlight=a,u?s(u):r(null,h)};if(!a||a.length<3||(delete i.highlight,!l.length))return c();let d=0;return ni.walkTokens(l,function(u){"code"===u.type&&(d++,setTimeout(()=>{a(u.text,u.lang,function(h,f){if(h)return c(h);null!=f&&f!==u.text&&(u.text=f,u.escaped=!0),d--,0===d&&c()})},0))}),void(0===d&&c())}if(i.async)return Promise.resolve(i.hooks?i.hooks.preprocess(e):e).then(a=>n(a,i)).then(a=>i.walkTokens?Promise.all(ni.walkTokens(a,i.walkTokens)).then(()=>a):a).then(a=>t(a,i)).then(a=>i.hooks?i.hooks.postprocess(a):a).catch(s);try{i.hooks&&(e=i.hooks.preprocess(e));const a=n(e,i);i.walkTokens&&ni.walkTokens(a,i.walkTokens);let l=t(a,i);return i.hooks&&(l=i.hooks.postprocess(l)),l}catch(a){return s(a)}}}function ni(n,t,e){return Qie(zm.lex,qm.parse)(n,t,e)}function fWe(n,t){if(1&n&&(P(0,"div")(1,"h2"),we(2),H(),xe(3,"ul",6),H()),2&n){const e=t.$implicit;U(2),Mr(e.key),U(),pe("innerHTML",e.value,TD)}}ni.options=ni.setOptions=function(n){return function KGe(n){ng=n}(ni.defaults={...ni.defaults,...n}),ni},ni.getDefaults=function Fie(){return{async:!1,baseUrl:null,breaks:!1,extensions:null,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,hooks:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1}},ni.defaults=ng,ni.use=function(...n){const t=ni.defaults.extensions||{renderers:{},childTokens:{}};n.forEach(e=>{const i={...e};if(i.async=ni.defaults.async||i.async||!1,e.extensions&&(e.extensions.forEach(r=>{if(!r.name)throw new Error("extension name required");if(r.renderer){const o=t.renderers[r.name];t.renderers[r.name]=o?function(...s){let a=r.renderer.apply(this,s);return!1===a&&(a=o.apply(this,s)),a}:r.renderer}if(r.tokenizer){if(!r.level||"block"!==r.level&&"inline"!==r.level)throw new Error("extension level must be 'block' or 'inline'");t[r.level]?t[r.level].unshift(r.tokenizer):t[r.level]=[r.tokenizer],r.start&&("block"===r.level?t.startBlock?t.startBlock.push(r.start):t.startBlock=[r.start]:"inline"===r.level&&(t.startInline?t.startInline.push(r.start):t.startInline=[r.start]))}r.childTokens&&(t.childTokens[r.name]=r.childTokens)}),i.extensions=t),e.renderer){const r=ni.defaults.renderer||new uU;for(const o in e.renderer){const s=r[o];r[o]=(...a)=>{let l=e.renderer[o].apply(r,a);return!1===l&&(l=s.apply(r,a)),l}}i.renderer=r}if(e.tokenizer){const r=ni.defaults.tokenizer||new dU;for(const o in e.tokenizer){const s=r[o];r[o]=(...a)=>{let l=e.tokenizer[o].apply(r,a);return!1===l&&(l=s.apply(r,a)),l}}i.tokenizer=r}if(e.hooks){const r=ni.defaults.hooks||new hU;for(const o in e.hooks){const s=r[o];r[o]=hU.passThroughHooks.has(o)?a=>{if(ni.defaults.async)return Promise.resolve(e.hooks[o].call(r,a)).then(c=>s.call(r,c));const l=e.hooks[o].call(r,a);return s.call(r,l)}:(...a)=>{let l=e.hooks[o].apply(r,a);return!1===l&&(l=s.apply(r,a)),l}}i.hooks=r}if(e.walkTokens){const r=ni.defaults.walkTokens;i.walkTokens=function(o){let s=[];return s.push(e.walkTokens.call(this,o)),r&&(s=s.concat(r.call(this,o))),s}}ni.setOptions(i)})},ni.walkTokens=function(n,t){let e=[];for(const i of n)switch(e=e.concat(t.call(ni,i)),i.type){case"table":for(const r of i.header)e=e.concat(ni.walkTokens(r.tokens,t));for(const r of i.rows)for(const o of r)e=e.concat(ni.walkTokens(o.tokens,t));break;case"list":e=e.concat(ni.walkTokens(i.items,t));break;default:ni.defaults.extensions&&ni.defaults.extensions.childTokens&&ni.defaults.extensions.childTokens[i.type]?ni.defaults.extensions.childTokens[i.type].forEach(function(r){e=e.concat(ni.walkTokens(i[r],t))}):i.tokens&&(e=e.concat(ni.walkTokens(i.tokens,t)))}return e},ni.parseInline=Qie(zm.lexInline,qm.parseInline),ni.Parser=qm,ni.parser=qm.parse,ni.Renderer=uU,ni.TextRenderer=Hie,ni.Lexer=zm,ni.lexer=zm.lex,ni.Tokenizer=dU,ni.Slugger=Vie,ni.Hooks=hU,ni.parse=ni;let mWe=(()=>{class n{constructor(e){this.data=e,this.changes=this.getChangelogChanges()}getChangelogChanges(){let i=ni.parse('# Change Log - Visualization\r\n\r\nAll notable changes to this project will be documented in this file.\r\n\r\nThe format is based on [Keep a Changelog](http://keepachangelog.com/)\r\nand this project adheres to [Semantic Versioning](http://semver.org/)\r\n\r\n## [unreleased] (Added \u{1f680} | Changed | Removed \u{1f5d1} | Fixed \u{1f41e} | Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb})\r\n\r\n## [1.128.0] - 2024-09-18\r\n\r\n### Added \u{1f680}\r\n\r\n- Add feature to zoom at the mouse cursor [#3693](https://github.com/MaibornWolff/codecharta/pull/3693)\r\n- Add a zoom slider under the cube, allowing to zoom in and out while always displaying the current zoom factor. [#3697](https://github.com/MaibornWolff/codecharta/pull/3697)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix issue where zooming out too much makes the map disappear and zooming in too much causes you to go through the map. [#3697](https://github.com/MaibornWolff/codecharta/pull/3697)\r\n- Camera perspective is correctly adopted from the custom configuration[#3698](https://github.com/MaibornWolff/codecharta/pull/3698)\r\n- Fix camera behavior when `Reset Camera when changing map` option is deactivated [#3699](https://github.com/MaibornWolff/codecharta/pull/3699)\r\n\r\n### Changed\r\n\r\n- Change OrbitControls to MapControls for improved map navigation [#3693](https://github.com/MaibornWolff/codecharta/pull/3693)\r\n- Remove unnecessary button that opened and closed the file explorer [#3647](https://github.com/MaibornWolff/codecharta/pull/3748)\r\n- Overhaul Focus and Unfocus functionality[#3706](https://github.com/MaibornWolff/codecharta/pull/3706)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Bump node version from 18 to 20 [#3690](https://github.com/MaibornWolff/codecharta/pull/3690)\r\n- Enabled view encapsulation for Global Configuration dialog, Ribbon Bar and File Panel [#3712](https://github.com/MaibornWolff/codecharta/pull/3712)\r\n- Enabled view encapsulation for Slider [#3713](https://github.com/MaibornWolff/codecharta/pull/3713)\r\n- Enabled view encapsulation for the Toolbar [#3717](https://github.com/MaibornWolff/codecharta/pull/3717)\r\n- Enabled view encapsulation for the Legend Panel [#3720](https://github.com/MaibornWolff/codecharta/pull/3720)\r\n- Enabled view encapsulation for the Attribute Side Bar [#3726](https://github.com/MaibornWolff/codecharta/pull/3726)\r\n- Enabled view encapsulation for Buttons [#3729](https://github.com/MaibornWolff/codecharta/pull/3729)\r\n- Enabled view encapsulation for the Export 3D Map Dialog [#3732](https://github.com/MaibornWolff/codecharta/pull/3732)\r\n- Enabled view encapsulation for Dialogs [#3736](https://github.com/MaibornWolff/codecharta/pull/3736)\r\n\r\n## [1.127.1] - 2024-08-12\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Revert [#3655](https://github.com/MaibornWolff/codecharta/pull/3665) as we implement new navigation methods\r\n\r\n## [1.127.0] - 2024-08-12\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Zooming doesn\'t affect the camera position [#3655](https://github.com/MaibornWolff/codecharta/pull/3665)\r\n- Fix the issue where the map disappears after excessive zooming out.[#3655](https://github.com/MaibornWolff/codecharta/pull/3665)\r\n- Fix visualization standalone electron build by bumping the version to 29 [#3681](https://github.com/MaibornWolff/codecharta/pull/3681)\r\n\r\n### Added \u{1f680}\r\n\r\n- Export multi-material 3MF for 3D printing of maps in color [#3616](https://github.com/MaibornWolff/codecharta/pull/3616)\r\n\r\n### Changed\r\n\r\n- IMPORTANT: The sonar complexity will no longer be renamed to MCC! [#3456](https://github.com/MaibornWolff/codecharta/pull/3606)\r\n\r\n## [1.126.0] - 2024-06-03\r\n\r\n### Added \u{1f680}\r\n\r\n- Overhaul the Suspicious Metrics menu [#3612](https://github.com/MaibornWolff/codecharta/pull/3612)\r\n\r\n## [1.125.0] - 2024-04-24\r\n\r\n### Added \u{1f680}\r\n\r\n- Add search bar for custom configs [#3529](https://github.com/MaibornWolff/codecharta/pull/3529)\r\n- Automatically reverse the metric direction for those where higher values indicate better codequality, such as `branch_coverage` [#3518](https://github.com/MaibornWolff/codecharta/pull/3518)\r\n- Display summary metrics for root node as default [#3525](https://github.com/MaibornWolff/codecharta/pull/3525)\r\n- Remove whitespace on screenshots [#3527](https://github.com/MaibornWolff/codecharta/pull/3527)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix small style issues [#3544](https://github.com/MaibornWolff/codecharta/pull/3544)\r\n- Fix key handling for selection metrics [#3546](https://github.com/MaibornWolff/codecharta/pull/3546)\r\n- Fix applying default metric templates to ensure options reset correctly [#3560](https://github.com/MaibornWolff/codecharta/pull/3560)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Update angular to v17\r\n\r\n## [1.124.1] - 2024-03-18\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix metrics being reset on excluding / flattening buildings [#3524](https://github.com/MaibornWolff/codecharta/pull/3524)\r\n- Take direction of attributes into account when creating the list with highest metrics [#3526](https://github.com/MaibornWolff/codecharta/pull/3526)\r\n\r\n## [1.124.0] - 2024-03-18\r\n\r\n### Added \u{1f680}\r\n\r\n- Display diagram of color distribution [#3511](https://github.com/MaibornWolff/codecharta/pull/3511)\r\n
    \r\n color-metric-diagram\r\n
    \r\n- Persist uploaded files and applied configuration accross page-reloads [#3486](https://github.com/MaibornWolff/codecharta/pull/3486)\r\n- Height, color, edge and area metric can be selected via query parameters [#3513](https://github.com/MaibornWolff/codecharta/pull/3513)\r\n- Capturing a screenshot of the map also captures the legend [#3520](https://github.com/MaibornWolff/codecharta/pull/3520)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Bump node version from 16 to 18 [#3452](https://github.com/MaibornWolff/codecharta/pull/3452)\r\n\r\n## [1.123.0] - 2024-02-26\r\n\r\n### Changed\r\n\r\n- CodeCharta Analysis and Visualization now have separate changelogs and releases [#3499](https://github.com/MaibornWolff/codecharta/pull/3499)\r\n\r\n### Added \u{1f680}\r\n\r\n- Highlight building on-click of file in explorer [#3488](https://github.com/MaibornWolff/codecharta/pull/3488)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix buildings inability to be completely red in delta mode [#3439](https://github.com/MaibornWolff/codecharta/pull/3439)\r\n- Fix edge preview in visualization [#3439](https://github.com/MaibornWolff/codecharta/pull/3439)\r\n- Fix edges start/end intersecting with building in delta mode [#3439](https://github.com/MaibornWolff/codecharta/pull/3439)\r\n- Fix style issues in the node/file explorer of visualization [#3439](https://github.com/MaibornWolff/codecharta/pull/3439)\r\n\r\n## [1.122.0] - 2024-01-16\r\n\r\n### Added \u{1f680}\r\n\r\n- File explorer can be pinned while analyzing the code-map [#3459](https://github.com/MaibornWolff/codecharta/pull/3459)\r\n- Validate input file during interactive parser configuration [#3460](https://github.com/MaibornWolff/codecharta/pull/3460)\r\n- Add functionality to screenshot legend [#3471](https://github.com/MaibornWolff/codecharta/pull/3471)\r\n\r\n### Changed\r\n\r\n- Multiple values for options need to be separated by comma [#3434](https://github.com/MaibornWolff/codecharta/pull/3434)\r\n- Changed the short-form of the `--no-issues` flag in the SourceCodeParser from `-i` to `-ni` [#3434](https://github.com/MaibornWolff/codecharta/pull/3434)\r\n- Clarify sonar user token question [#3445](https://github.com/MaibornWolff/codecharta/pull/3445)\r\n- Changed the `--user` flag to `--user-token` in SonarImporter [#3445](https://github.com/MaibornWolff/codecharta/pull/3445)\r\n- Changed the interactive dialog of `modify` to prompt user for single action to perform [#3448](https://github.com/MaibornWolff/codecharta/pull/3448)\r\n- Selected buildings now keep their label until they are unselected [#3465](https://github.com/MaibornWolff/codecharta/pull/3465)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix saving the number of top-labels in custom configs [#3461](https://github.com/MaibornWolff/codecharta/pull/3461)\r\n- Fix parsers crashing after printing output to stdout [#3442](https://github.com/MaibornWolff/codecharta/pull/3442)\r\n- Fix removal of nodes with identical names in `modify` [#3446](https://github.com/MaibornWolff/codecharta/pull/3446)\r\n- Fix the highlighting of very high risk metrics to highlight only matching files [#3454](https://github.com/MaibornWolff/codecharta/pull/3454)\r\n\r\n## [1.121.1] - 2023-12-08\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix github-pages not showing documentation [#3436](https://github.com/MaibornWolff/codecharta/pull/3436)\r\n\r\n## [1.121.0] - 2023-12-07\r\n\r\n### Added \u{1f680}\r\n\r\n- Add logging of absolute file paths of output files [#3414](https://github.com/MaibornWolff/codecharta/pull/3414)\r\n\r\n### Changed\r\n\r\n- Changed short form of parameter `--file-extensions` of RawTextParser from `-f` to `-fe` [#3405](https://github.com/MaibornWolff/codecharta/pull/3405)\r\n- Update readme and gh-pages for RawTextParser [#3405](https://github.com/MaibornWolff/codecharta/pull/3405)\r\n- Changed the `--format` flag for csv-output in SourceCodeParser from `table` to `csv` [#3414](https://github.com/MaibornWolff/codecharta/pull/3414)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix RawTextParser producing incorrect output when no (or multiple) file extensions were specified in interactive mode [#3405](https://github.com/MaibornWolff/codecharta/pull/3405)\r\n- Fix handling of empty inputs for the `--metrics`, `--exclude`, `--file-extensions` flags in the RawTextParser [#3415](https://github.com/MaibornWolff/codecharta/pull/3415)\r\n- Fix RawTextParser incorrectly setting max indentation level to a predefined value [#3419](https://github.com/MaibornWolff/codecharta/pull/3419)\r\n- Fix the csv-exporter so that it exports multiple projects instead of just one when multiple projects are specified [#3414](https://github.com/MaibornWolff/codecharta/pull/3414)\r\n- Fix file extensions of output files for merged projects [#3421](https://github.com/MaibornWolff/codecharta/pull/3421)\r\n- Fix the ability for users to accidentally pass invalid metrics to the RawTextParser without it crashing [#3424](https://github.com/MaibornWolff/codecharta/pull/3424)\r\n- Fix deselected buildings with green/red roof in delta mode do not reset their color roof [#3426](https://github.com/MaibornWolff/codecharta/pull/3426)\r\n- Fix parser hang issue in interactive mode caused by unintentional "enter" input after the last question [#3422](https://github.com/MaibornWolff/codecharta/pull/3422)\r\n\r\n### Chore \u200d\u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Upgraded to angular 16 [#3408](https://github.com/MaibornWolff/codecharta/pull/3408)\r\n\r\n## [1.120.1] - 2023-11-17\r\n\r\n### Removed \u{1f5d1}\r\n\r\n- Deprecated download button removed (functionality has been replaced by custom views) [#3398](https://github.com/MaibornWolff/codecharta/pull/3398)\r\n- Remove the \'new\' badges from the \'Custom Views\' and \'Suspicious Metrics\' features as these features are no longer new [#3393](https://github.com/MaibornWolff/codecharta/pull/3399)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix an issue with web demo on Safari showing a white screen and not loading [#3396](https://github.com/MaibornWolff/codecharta/pull/3396)\r\n- Fix the ability for users to skip the value for tab-width when configuring the rawtextparser and estimate its value [#3404](https://github.com/MaibornWolff/codecharta/pull/3404)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Add documentation for the installation requirements for metric-gardener [#3395](https://github.com/MaibornWolff/codecharta/pull/3395)\r\n- Add hints to README (visualization and package) about MacOS arm64 standalone execution [#3395](https://github.com/MaibornWolff/codecharta/pull/3395)\r\n\r\n## [1.120.0] - 2023-11-02\r\n\r\n### Added \u{1f680}\r\n\r\n- Only ask to merge results after parser suggestion execution when more than one parser was executed [#3384](https://github.com/MaibornWolff/codecharta/pull/3384)\r\n- Add the description of each parser to the list of suggested parsers [#3387](https://github.com/MaibornWolff/codecharta/pull/3387)\r\n\r\n### Changed\r\n\r\n- Adjust console output of metric gardener importer to no longer include one line for each processed node [#3386](https://github.com/MaibornWolff/codecharta/pull/3390)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix command not found issue for --version and --help in the analysis [#3377](https://github.com/MaibornWolff/codecharta/pull/3377)\r\n- Fix metric gardener importer getting stuck for large inputs [#3382](https://github.com/MaibornWolff/codecharta/pull/3382)\r\n- Update docs for ccsh to remove outdated parameters and unify the pages structure [#3333](https://github.com/MaibornWolff/codecharta/pull/3388)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Raise minimum required Java Version from 8 to 11 [#3359](https://github.com/MaibornWolff/codecharta/pull/3359)\r\n- Swap nw.js to electron for standalone execution [#3373](https://github.com/MaibornWolff/codecharta/pull/3373)\r\n\r\n## [1.119.1] - 2023-08-03\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix ccsh execution under windows via cmd-terminal [#3354](https://github.com/MaibornWolff/codecharta/pull/3354)\r\n\r\n## [1.119.0] - 2023-07-13\r\n\r\n### Added \u{1f680}\r\n\r\n- Add message outputting which parser is being configured during parser suggestions [#3335](https://github.com/MaibornWolff/codecharta/pull/3335)\r\n- Add basic validity checking for all input resources (files/folders, url for SonarImporter) [#3325](https://github.com/MaibornWolff/codecharta/pull/3325)\r\n- Automatically start specific interactive parser when calling parser without args [#3332](https://github.com/MaibornWolff/codecharta/pull/3332)\r\n\r\n## [1.118.0] - 2023-06-15\r\n\r\n### Added \u{1f680}\r\n\r\n- Add metric tooltips that display attribute descriptors and provide hyperlinks in the sidebar to the metric\'s documentation [#3273](https://github.com/MaibornWolff/codecharta/pull/3273)
    \r\n \r\n- Expand and restructure documentation regarding Docker usage [#3312](https://github.com/MaibornWolff/codecharta/pull/3312)\r\n- Add current working directories as hint or default value to interactive parser and parser suggestions when asking for input [#3319](https://github.com/MaibornWolff/codecharta/pull/3319)\r\n- Add helpful status messages when calculating parser suggestions [#3329](https://github.com/MaibornWolff/codecharta/pull/3329)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Speed up parser suggestions significantly [#3329](https://github.com/MaibornWolff/codecharta/pull/3329)\r\n- Fix color range reset not triggering on color metric change [#3311](https://github.com/MaibornWolff/codecharta/pull/3311)\r\n\r\n## [1.117.0] - 2023-05-19\r\n\r\n### Added \u{1f680}\r\n\r\n- Add support for parser suggestions to SVN-, MetricGardener-, RawText- and SourceCodeParser [#3287](https://github.com/MaibornWolff/codecharta/pull/3287)\r\n- Add semi automatic merging feature after executing multiple parsers [#3287](https://github.com/MaibornWolff/codecharta/pull/3287)\r\n- Expand developer documentation to include common problems and solutions for them [#3289](https://github.com/MaibornWolff/codecharta/pull/3289)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix entrypoint for analysis docker image [#3259](https://github.com/MaibornWolff/codecharta/pull/3259)\r\n- Show again delta of a building which have nothing in common in red or green [#3271](https://github.com/MaibornWolff/codecharta/pull/3271)\r\n- Always show description of suspicious metrics [#3285](https://github.com/MaibornWolff/codecharta/pull/3285)\r\n- Show suspicious metrics and risk profile documentation pages in navigation bar [#3290](https://github.com/MaibornWolff/codecharta/pull/3290)\r\n- Merge filter will now abort execution when an invalid file is specified as input [#3305](https://github.com/MaibornWolff/codecharta/pull/3305)\r\n- Fix formatting issues in docs turning `--` to `\u2013` [#3301](https://github.com/MaibornWolff/codecharta/pull/3301)\r\n\r\n### Changed\r\n\r\n- Adjusted documentation for parser suggestions [#3287](https://github.com/MaibornWolff/codecharta/pull/3287)\r\n- Make the size of the CodeCharta logo more suitable for any screen size and remove MaibornWolff logo [#3302](https://github.com/MaibornWolff/codecharta/pull/3302)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Replace custom Redux adapter through real NgRx [#3271](https://github.com/MaibornWolff/codecharta/pull/3271)\r\n\r\n## [1.116.0] - 2023-04-28\r\n\r\n### Added \u{1f680}\r\n\r\n- Add automatic parser suggestions to recommend usable parsers for a codebase (supports GitLogParser and SonarImporter) when running `ccsh` command [#3275](https://github.com/MaibornWolff/codecharta/pull/3275)
    \r\n ![image](https://user-images.githubusercontent.com/129938897/234309117-c9edd4e7-7c53-4ba7-b849-ec9c3f8f3215.png)\r\n- Add documentation subsections for interactive shell and parser suggestions\r\n\r\n### Changed\r\n\r\n- Changed default behavior when launching ccsh without arguments to parser suggestions [#3275](https://github.com/MaibornWolff/codecharta/pull/3275)\r\n- Old interactive parser selection now reachable by passing `-i` or `--interactive` as arguments [#3275](https://github.com/MaibornWolff/codecharta/pull/3275)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix suspicious metrics and risk profile docs not loading [#3272](https://github.com/MaibornWolff/codecharta/pull/3272)\r\n\r\n## [1.115.1] - 2023-04-06\r\n\r\n### Removed \u{1f5d1}\r\n\r\n- Support for Custom Views created before CodeCharta version 1.110.0 or older is no longer be maintained [#3265](https://github.com/MaibornWolff/codecharta/pull/3265)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix the disappearance of the suspicious metrics labels [#3263](https://github.com/MaibornWolff/codecharta/pull/3263)\r\n- Fix UI components that look different since version 1.115.0 [#3260](https://github.com/MaibornWolff/codecharta/pull/3260)\r\n- Show latest release notes in changelog dialog [#3264](https://github.com/MaibornWolff/codecharta/pull/3264)\r\n\r\n## [1.115.0] - 2023-03-30\r\n\r\n### Added \u{1f680}\r\n\r\n- Display the CodeCharta logo next to the MaibornWolff logo [#3226](https://github.com/MaibornWolff/codecharta/pull/3226)\r\n- Tooltip for primary and secondary metrics that displays AttributeDescriptor information in the sidebar [#3239](https://github.com/MaibornWolff/codecharta/pull/3239)
    \r\n ![image](https://user-images.githubusercontent.com/65733509/227218468-b7d1e1ae-b847-40ab-8513-f3762b8787bb.png)\r\n- Supports adding note to a custom view, provides a preview and an edit option for notes from the selection menu [#3234](https://github.com/MaibornWolff/codecharta/pull/3234)
    \r\n ![image](https://user-images.githubusercontent.com/72517530/226942610-9e08d39c-324d-4de3-81d0-4e5da4e589aa.png)\r\n ![image](https://user-images.githubusercontent.com/72517530/226943152-1bb339bb-c39f-4bf6-a32d-ee8476249f98.png)\r\n\r\n### Changed\r\n\r\n- The Suspicious metrics and Risk profile Feature is now also available outside the Experimental Feature Mode [#2963](https://github.com/MaibornWolff/codecharta/pull/2963)
    \r\n ![image](https://user-images.githubusercontent.com/47224279/222686442-05d4b83c-04d7-4275-b1eb-4339e8906130.jpg)\r\n- Made the background color a bit lighter [#3226](https://github.com/MaibornWolff/codecharta/pull/3226)\r\n- Saturate the distribution bar colors [#3226](https://github.com/MaibornWolff/codecharta/pull/3226)\r\n- Improve the layout of all metric menus [#3226](https://github.com/MaibornWolff/codecharta/pull/3226)\r\n- Improve the layout of the global configuration dialog [#3226](https://github.com/MaibornWolff/codecharta/pull/3226)\r\n- Improve the layout of the metric chooser panel [#3226](https://github.com/MaibornWolff/codecharta/pull/3226)\r\n- Change the primary color to match the color of the CodeCharta logo [#3226](https://github.com/MaibornWolff/codecharta/pull/3226)\r\n- Improve the docs for suspicious metrics and risk profile feature [#3238](https://github.com/MaibornWolff/codecharta/pull/3238)\r\n- Improve Custom Views Dialog [#3238](https://github.com/MaibornWolff/codecharta/pull/3248)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Unselecting a folder in Presentation Mode leads to console error [#3215](https://github.com/MaibornWolff/codecharta/pull/3215)\r\n- Fix Shrunken FileExplorer\'s file list on small displays [#3235](https://github.com/MaibornWolff/codecharta/pull/3235)\r\n- Fix various margin problems in the UI [#3226](https://github.com/MaibornWolff/codecharta/pull/3226)\r\n- Fix bumpy animations when moving/turning the map, hover buildings (showing labels and edges) [#3244](https://github.com/MaibornWolff/codecharta/pull/3244)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Upgrade all material UI components to MDC (not using the UI legacy components any more) [#3226](https://github.com/MaibornWolff/codecharta/pull/3226)\r\n\r\n## [1.114.0] - 2023-01-13\r\n\r\n### Added \u{1f680}\r\n\r\n- Add an option to hide floor labels under the Area Metric Options. This recalculates the map. [#3175](https://github.com/MaibornWolff/codecharta/pull/3175)\r\n\r\n### Removed \u{1f5d1}\r\n\r\n- Camera settings for custom views generated with version 1.101.1 and earlier are now ignored. [#3196](https://github.com/MaibornWolff/codecharta/pull/3196)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Reposition legend panel button again, when attribute sidebar is open [#3183](https://github.com/MaibornWolff/codecharta/pull/3183)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Add attribute descriptors (metric descriptions) to TokeiImporter and SVNlogParser [#3176](https://github.com/MaibornWolff/codecharta/pull/3176)\r\n\r\n## [1.113.0] - 2022-12-15\r\n\r\n### Changed\r\n\r\n- The Custom Views Feature is now also available outside the Experimental Feature Mode [#3079](https://github.com/MaibornWolff/codecharta/pull/3076)
    \r\n ![image](https://user-images.githubusercontent.com/72517530/204557970-0ba31f3b-5209-4707-a2d0-55cc45509f8a.png)\r\n- Please note that the functionality of downloading cc.json maps will no longer be supported from April 2023. Instead, use the Custom View feature to create and share configurations for different views of your map. [#3079](https://github.com/MaibornWolff/codecharta/pull/3076)\r\n- Change tooltips in the legend to show the metric description [#3162](https://github.com/MaibornWolff/codecharta/pull/3162)
    \r\n ![image](https://user-images.githubusercontent.com/27358421/205251507-100b1e1a-d86e-44f3-89cf-f32bf295aabd.png)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Improve metric titles by loading them from cc.json [#3162](https://github.com/MaibornWolff/codecharta/pull/3162)\r\n- Add attribute descriptors to SoureCodeParser [#3166](https://github.com/MaibornWolff/codecharta/pull/3166)\r\n\r\n## [1.112.1] - 2022-12-01\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Reverted PR [#3077](https://github.com/MaibornWolff/codecharta/pull/3077) that introduced a rendering bug, where buildings sizes were not proportional to their area value [#3159](https://github.com/MaibornWolff/codecharta/pull/3159)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Add attribute descriptors to SonarImporter [#3149](https://github.com/MaibornWolff/codecharta/pull/3149)\r\n- Add title field to attribute descriptors [#3158](https://github.com/MaibornWolff/codecharta/pull/3158)\r\n\r\n## [1.112.0] - 2022-11-25\r\n\r\n### Added \u{1f680}\r\n\r\n- New calculation algorithm for treeMap that accounts for paddings and floor labels [#3077](https://github.com/MaibornWolff/codecharta/pull/3077)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix ribbon-bar shadow moving down when search is expanded [#3138](https://github.com/MaibornWolff/codecharta/pull/3138)\r\n- Fix loading errors of maps containing no programming-language-info [#3144](https://github.com/MaibornWolff/codecharta/pull/3144)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Documentation for new treeMap calculation algorithm [#3077](https://github.com/MaibornWolff/codecharta/pull/3077)\r\n- Add attribute descriptors (metric descriptions) to some filters and importers [#3091](https://github.com/MaibornWolff/codecharta/pull/3091)\r\n\r\n## [1.111.0] - 2022-11-17\r\n\r\n### Added \u{1f680}\r\n\r\n- Add description to every Custom View [#3119](https://github.com/MaibornWolff/codecharta/pull/3119)
    \r\n ![image](https://user-images.githubusercontent.com/72517530/201381274-a9a913d5-8f9d-4da6-9f26-6476e194ce3b.png)\r\n- Highlight files and folders with no area metric or an area metric value of zero in the search panel [#3126](https://github.com/MaibornWolff/codecharta/pull/3126)\r\n\r\n### Changed\r\n\r\n- Be aware, that all Custom Views generated with version 1.110.0 or older will be unusable by April 2023 [#3119](https://github.com/MaibornWolff/codecharta/pull/3119)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix Node Context-Menu in Map Tree View opening multiple times [#3135](https://github.com/MaibornWolff/codecharta/pull/3135)\r\n- Fix crashing on focusing or hovering un-rendered buildings [#3123](https://github.com/MaibornWolff/codecharta/pull/3123)\r\n- Fix showing changelog entries in the dialog when a new version is available [#3123](https://github.com/MaibornWolff/codecharta/pull/3129)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Update supported latest browsers [#3125](https://github.com/MaibornWolff/codecharta/pull/3125)\r\n- Split e2e and unit test configs [#3128](https://github.com/MaibornWolff/codecharta/pull/3128)\r\n\r\n## [1.110.0] - 2022-11-04\r\n\r\n### Changed\r\n\r\n- Custom Views are now applicable even if maps or mode are different. Missing maps or map selection mode is displayed in the tooltip [#3090](https://github.com/MaibornWolff/codecharta/pull/3090)\r\n- Be aware, that all Custom Views generated with version 1.109.1 or older will be unusable by April 2023 [#3105](https://github.com/MaibornWolff/codecharta/pull/3105)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix broken link to Custom View documentation [#3101](https://github.com/MaibornWolff/codecharta/pull/3101)\r\n- Don\'t re-center map after every state change like changing area metric [#3109](https://github.com/MaibornWolff/codecharta/pull/3109)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Adjust Custom View API and maintain old Custom Views until April 2023 [#3105](https://github.com/MaibornWolff/codecharta/pull/3105)\r\n- Migrate codeMap.render.service, codeMap.label.service, codeMap.mouseEvent.service, codeMap.arrow.service, codeCharta.service, sharpnessMode.service, isLoadingFile.service, scaling.service and experimentalFeaturesEnabled.service to Angular [#3094](https://github.com/MaibornWolff/codecharta/pull/3094)\r\n- Extract tree map size into a const as this is never changed [3098](https://github.com/MaibornWolff/codecharta/pull/3098)\r\n- Migrate markedPackages.service, edges.service, blacklist.service, files.service and injector.service [3106](https://github.com/MaibornWolff/codecharta/pull/3106)\r\n- Refactor out `LoadInitialFileService` and fix with it loose Promise in tests [#3110](https://github.com/MaibornWolff/codecharta/pull/3110)\r\n- Migrate codeCharta.component, storeService.service and remove AngularJS dual boot from bootstrapping [#3114](https://github.com/MaibornWolff/codecharta/pull/3114)\r\n- Remove obsolete AngularJS dependencies [#3115](https://github.com/MaibornWolff/codecharta/pull/3115)\r\n\r\n## [1.109.1] - 2022-10-12\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix broken links on new GitHub Page \'Docker Containers\' [#3089](https://github.com/MaibornWolff/codecharta/pull/3089)\r\n\r\n## [1.109.0] - 2022-10-12\r\n\r\n### Added \u{1f680}\r\n\r\n- Add description and documentation to Custom View modal [#3085](https://github.com/MaibornWolff/codecharta/pull/3085)\r\n- Add a new button that links the height metric to the color metric so that the colour metric is automatically set to\r\n the selected height metric [#3058](https://github.com/MaibornWolff/codecharta/pull/3058)
    \r\n ![image](https://user-images.githubusercontent.com/72517530/193291144-fdc73a15-2087-47e2-845b-05c666aec71d.png)
    \r\n ![image](https://user-images.githubusercontent.com/72517530/194300920-60ce9fcd-0dd5-46ef-a90b-01d9a29205e6.png)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix interactive GitLogParser using wrong dialogue with repo-scan subcommand [#3073](https://github.com/MaibornWolff/codecharta/pull/3073)\r\n- Fix CodeCharta Analysis container exiting when detached [#3062](https://github.com/MaibornWolff/codecharta/pull/3062)\r\n- Fix CodeCharta Analysis container not coming with the sonar-scanner pre-installed [#3062](https://github.com/MaibornWolff/codecharta/pull/3062)\r\n- Rerender immediately after marking a folder with a color [#3067](https://github.com/MaibornWolff/codecharta/pull/3067)\r\n- Clicking the \'reset height metric settings\' button resets the number of top labels to the dynamic default value [#3066](https://github.com/MaibornWolff/codecharta/pull/3066)\r\n- Unfocus nodes when changing selected files, which prevents the app from crashing [#3072](https://github.com/MaibornWolff/codecharta/pull/3072)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Update Docker Publish Action in Release Pipeline [#3060](https://github.com/MaibornWolff/codecharta/pull/3060)\r\n- Write documentation for docker containers [#3063](https://github.com/MaibornWolff/codecharta/pull/3063)\r\n- Migrate isAttributeSideBarVisible.service, threeScene.service, threeCamera.service and threeStats.service to Angular [#3068](https://github.com/MaibornWolff/codecharta/pull/3068)\r\n- Migrate dialog.service to Angular [#3072](https://github.com/MaibornWolff/codecharta/pull/3072)\r\n- Add documentation for new treeMap algorithm [#3077](https://github.com/MaibornWolff/codecharta/pull/3077)\r\n- Migrate dialog.service to Angular [#3070](https://github.com/MaibornWolff/codecharta/pull/3070)\r\n- Migrate FocusedNodePathService, LayoutAlgorithmService, ThreeOrbitControlsService and ThreeViewerService to Angular [#3072](https://github.com/MaibornWolff/codecharta/pull/3072)\r\n- Migrate updateAttributeTypes.service to Angular [#3082](https://github.com/MaibornWolff/codecharta/pull/3082)\r\n\r\n## [1.108.1] - 2022-09-29\r\n\r\n## Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Update formatting in Docker Release Pipeline [#3059](https://github.com/MaibornWolff/codecharta/pull/3059)\r\n\r\n## [1.108.0] - 2022-09-28\r\n\r\n### Added \u{1f680}\r\n\r\n- Add new Analysis docker container, together with a docker-compose file that contains analysis, visualization and a\r\n SonarQube instance [#3057](https://github.com/MaibornWolff/codecharta/pull/3057)\r\n\r\n### Removed \u{1f5d1}\r\n\r\n- remove outdated Crococosmo, Understand and Jasome Importer from Analysis including its documentation [#3053](https://github.com/MaibornWolff/codecharta/pull/3053)\r\n\r\n## [1.107.0] - 2022-09-27\r\n\r\n### Added \u{1f680}\r\n\r\n- Add subcommand to GitLogParser to run necessary git commands automatically [#3041](https://github.com/MaibornWolff/codecharta/pull/3041)\r\n\r\n### Changed\r\n\r\n- Change default behaviour of GitLogParser to use new subcommands [#3041](https://github.com/MaibornWolff/codecharta/pull/3041)\r\n- Set default value for displaying labels 1 per 100 buildings with a maximum of 10 labels [#3046](https://github.com/MaibornWolff/codecharta/pull/3046)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Uncheck the box when \'reset invert height\' icon is clicked [#3048](https://github.com/MaibornWolff/codecharta/pull/3048)\r\n- Update ReadMe and GitHub pages for MetricGardener [#3045](https://github.com/MaibornWolff/codecharta/pull/3045)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate codeMap.component to Angular with minor internal improvements [#3049](https://github.com/MaibornWolff/codecharta/pull/3049)\r\n- Remove threeUpdateCycle.service [#3050](https://github.com/MaibornWolff/codecharta/pull/3050)\r\n- Migrate metricData.service, edgeMetric.service, nodeMetricData.service and edgeMetricData.service to Angular [#3051](https://github.com/MaibornWolff/codecharta/pull/3051)\r\n- Migrate threeRenderer.service to Angular [#3052](https://github.com/MaibornWolff/codecharta/pull/3052)\r\n\r\n## [1.106.1] - 2022-09-20\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- CC-JSON Files not loaded on Safari browser [#3042](https://github.com/MaibornWolff/codecharta/pull/3042)\r\n- Show loading spinners while loading a file [#2980](https://github.com/MaibornWolff/codecharta/pull/2980)\r\n- Prevent clicking on not opened metric options in ribbon bar [#3029](https://github.com/MaibornWolff/codecharta/pull/3029)\r\n- Set cursor to pointer on color settings panel of delta mode [#3029](https://github.com/MaibornWolff/codecharta/pull/3029)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Throttle rendering and migrate codeMap.preRender.service to Angular [#2980](https://github.com/MaibornWolff/codecharta/pull/2980)\r\n\r\n## [1.106.0] - 2022-09-13\r\n\r\n### Added \u{1f680}\r\n\r\n- Add option to CSVImporter to specify the path column name [#3026](https://github.com/MaibornWolff/codecharta/pull/3026)\r\n\r\n### Changed\r\n\r\n- Stop asking the user to compress a file when printing to stdOut [#3024](https://github.com/MaibornWolff/codecharta/pull/3024)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix anongit script using the wrong whitespace, causing gitlogparser to fail [#3030](https://github.com/MaibornWolff/codecharta/pull/3030)\r\n- Reshow suspicious metrics badge when calculated data has changed [#2997](https://github.com/MaibornWolff/codecharta/pull/2997)\r\n\r\n## [1.105.0] - 2022-09-06\r\n\r\n### Added \u{1f680}\r\n\r\n- Add an option to run MetricGardener before its parser if requested [#3015](https://github.com/MaibornWolff/codecharta/pull/3015)\r\n- Add missing documentation for MetricGardener importer [#3016](https://github.com/MaibornWolff/codecharta/pull/3016)\r\n\r\n### Changed\r\n\r\n- Increase the size of the close button to simplify closing the attribute sidebar [#3014](https://github.com/MaibornWolff/codecharta/pull/3014)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix console error when clicking switch button in delta mode [#3023](https://github.com/MaibornWolff/codecharta/pull/3023)\r\n- Fix broken images to new document pages about how using SonarQube [#3012](https://github.com/MaibornWolff/codecharta/pull/3012)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate tool bar component to Angular [#3020](https://github.com/MaibornWolff/codecharta/pull/3020)\r\n- Remove obsolete AngularJS IsPresentationModeService and ShowOnlyBuildingsWithEdgesService [#3005](https://github.com/MaibornWolff/codecharta/pull/3005)\r\n\r\n## [1.104.1] - 2022-08-31\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix broken links to new document pages about how using SonarQube [#3009](https://github.com/MaibornWolff/codecharta/pull/3009)\r\n\r\n## [1.104.0] - 2022-08-31\r\n\r\n### Added \u{1f680}\r\n\r\n- Copy-to-Clipboard-Button to paste the top 10 files with highest metric values [#2942](https://github.com/MaibornWolff/codecharta/pull/2942), [#2996](https://github.com/MaibornWolff/codecharta/pull/2995)
    \r\n ![image](https://user-images.githubusercontent.com/46388280/184089603-ecfa8e31-8241-42a2-9954-2de554347381.png)
    \r\n ![image](https://user-images.githubusercontent.com/46388280/184089577-5cd2eec0-5293-4083-b629-0e3c5621047c.png)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Correct file types now get appended to the name of the output file when using the interactive ccsh [#2914](https://github.com/MaibornWolff/codecharta/pull/2914)\r\n- Fix exit code handling and update integrationTest\'s golden_test.sh to cover all modules [#2988](https://github.com/MaibornWolff/codecharta/pull/2988)\r\n- Fix missing color pickers within edge metric options [#2993](https://github.com/MaibornWolff/codecharta/pull/2993)\r\n- Fix labels being displayed at an incorrect height and lines being disconnected from labels [#2991](https://github.com/MaibornWolff/codecharta/pull/2991)\r\n- Provides a list of metrics where no calculation could be performed in relation to a suspicion [#2996](https://github.com/MaibornWolff/codecharta/pull/2996)
    \r\n ![missing_values_suspicious_metrics](https://user-images.githubusercontent.com/31436472/187439165-77eda080-ceba-4bab-b077-4f6a2d6162b5.png)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate view cube component and its service to Angular [#2998](https://github.com/MaibornWolff/codecharta/pull/2998)\r\n\r\n## [1.104.0] - 2022-08-29\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate presentation mode button to Angular [#2938](https://github.com/MaibornWolff/codecharta/pull/2938)\r\n\r\n## [1.103.6] - 2022-08-17\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix bug in CompressionStreamHandler\'s input stream validation, that caused endless blocking reads from System.In [#2987](https://github.com/MaibornWolff/codecharta/pull/2987)\r\n\r\n## [1.103.5] - 2022-08-12\r\n\r\n### Changed\r\n\r\n- Update visualization readme file [#2932](https://github.com/MaibornWolff/codecharta/pull/2932)\r\n- Update the documentation for the usage of SonarQube [#2965](https://github.com/MaibornWolff/codecharta/pull/2965)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Add permission to upload-assets action [#2979](https://github.com/MaibornWolff/codecharta/pull/2979), [#2982](https://github.com/MaibornWolff/codecharta/pull/2982)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate download button to Angular [#2973](https://github.com/MaibornWolff/codecharta/pull/2973)\r\n\r\n## [1.103.3] - 2022-08-10\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Update Ubuntu images package list as part of the wine action [#2976](https://github.com/MaibornWolff/codecharta/pull/2976)\r\n\r\n## [1.103.2] - 2022-08-10\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Highlight buildings on hover of file extension bar [#2969](https://github.com/MaibornWolff/codecharta/pull/2969)\r\n- Fix of the npm visualization installation under MacOS by version bumping nwjs [#2974](https://github.com/MaibornWolff/codecharta/pull/2974)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate file extension bar to Angular [#2968](https://github.com/MaibornWolff/codecharta/pull/2968)\r\n\r\n## [1.103.1] - 2022-08-09\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Change release action script in order to show changelog in release notes [#2970](https://github.com/MaibornWolff/codecharta/pull/2970)\r\n\r\n## [1.103.0] - 2022-08-09\r\n\r\n### Changed\r\n\r\n- Update links to demo website [#2961](https://github.com/MaibornWolff/codecharta/pull/2961)\r\n\r\n### Added \u{1f680}\r\n\r\n- Show tooltip with explanation for some metrics [#2957](https://github.com/MaibornWolff/codecharta/pull/2957)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix installation instructions for Apple Silicon [#2956](https://github.com/MaibornWolff/codecharta/pull/2956)\r\n- Fix release tag [#2954](https://github.com/MaibornWolff/codecharta/pull/2954)\r\n- Prevent dark map on unhover [#2959](https://github.com/MaibornWolff/codecharta/pull/2959)\r\n- Zoom in/out time [#2959](https://github.com/MaibornWolff/codecharta/pull/2959)\r\n- Fix webpack build package being corrupt if zipped under linux by changing the compression path [#2934](https://github.com/MaibornWolff/codecharta/pull/2934)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Load metric templates lazily and migrate them to Angular [#2960](https://github.com/MaibornWolff/codecharta/pull/2960)\r\n\r\n## [1.102] - 2022-08-04\r\n\r\n### Changed\r\n\r\n- Changed storing format for camera position within custom views and scenarios. Loading of created custom views or scenarios in old format will stop working in 2023 [2880](https://github.com/MaibornWolff/codecharta/pull/2880)\r\n- Add error messages for the user to "Add Scenario Dialog" [#2928](https://github.com/MaibornWolff/codecharta/pull/2928)\r\n\r\n### Added \u{1f680}\r\n\r\n- Switch reference and comparison file by button click in delta mode [#2933](https://github.com/MaibornWolff/codecharta/pull/2933)\r\n ![image](https://user-images.githubusercontent.com/72517530/182630368-2d2b177d-8b4b-4850-8486-8d9afc7153c5.png)\r\n- Add display of changed files in delta mode (changed := metric values changed or list of applied metrics\r\n changed) [#2890](https://github.com/MaibornWolff/codecharta/pull/2890)\r\n ![image](https://user-images.githubusercontent.com/72517530/182631857-6192dea1-7a01-4684-90a6-d5da8615434a.png)\r\n- Load compressed files (cc.json.gz) via URL parameter [#2917](https://github.com/MaibornWolff/codecharta/pull/2917)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix SonarImporter requesting no metrics from SonarQube when the list of metrics was left empty [#2913](https://github.com/MaibornWolff/codecharta/pull/2913)\r\n- Exclude edge metrics from custom scenarios, when there are no edge metrics available. Before it was impossible to apply those custom configs [#2928](https://github.com/MaibornWolff/codecharta/pull/2928)\r\n- Fix of NoSuchMethodException due to a call of method `readNBytes()` that is not available in Java 9 with replacement call `read()` [#2930](https://github.com/MaibornWolff/codecharta/pull/2930)\r\n- Keep selected metrics when excluding buildings [#2935](https://github.com/MaibornWolff/codecharta/pull/2935)\r\n- Update UI correctly when toggling between standard and delta mode [#2937](https://github.com/MaibornWolff/codecharta/pull/2937)\r\n\r\n## [1.101.1] - 2022-07-27\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Modify build script for GitHub pages in order to provide zipped maps.\r\n\r\n## [1.101.0] - 2022-07-26\r\n\r\n### Added \u{1f680}\r\n\r\n- Transform a metric gardener json file into a code charta json file, that can be correctly visualized [#2675](https://github.com/MaibornWolff/codecharta/pull/2875)\r\n\r\n### Changed\r\n\r\n- Restore previous selected files when switching back from delta to standard mode [#2891](https://github.com/MaibornWolff/codecharta/pull/2891)\r\n- Add more metrics that can be preselected when opening a cc.json file [#2907](https://github.com/MaibornWolff/codecharta/pull/2907) [#2908](https://github.com/MaibornWolff/codecharta/pull/2908)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Let file selection always show what is actual rendered within the map [#2891](https://github.com/MaibornWolff/codecharta/pull/2891)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Improve performance by slightly delaying node-name popups and removing unused functionality [#2897](https://github.com/MaibornWolff/codecharta/pull/2897)\r\n\r\n## [1.100.0] - 2022-07-12\r\n\r\n### Added \u{1f680}\r\n\r\n- Add a description for the statements metric [#2883](https://github.com/MaibornWolff/codecharta/pull/2883)\r\n\r\n### Changed\r\n\r\n- Select matching metric combination based on available metrics [#2862](https://github.com/MaibornWolff/codecharta/pull/2862)\r\n- Unify UI of buttons in toolbar [#2857](https://github.com/MaibornWolff/codecharta/pull/2857)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix resetting of color range within color settings panel [#2877](https://github.com/MaibornWolff/codecharta/pull/2877)\r\n- Fix resetting of colors in delta mode within color settings panel [#2873](https://github.com/MaibornWolff/codecharta/pull/2873)\r\n- Restore global settings on page load again [#2878](https://github.com/MaibornWolff/codecharta/pull/2878)\r\n- Fix \'undefinded\' being displayed as a metric description when no description was available [#2883](https://github.com/MaibornWolff/codecharta/pull/2883)\r\n- Fix windows standalone builds [#2881](https://github.com/MaibornWolff/codecharta/pull/2881)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate color settings panel to Angular [#2873](https://github.com/MaibornWolff/codecharta/pull/2873)\r\n\r\n## [1.99.1] - 2022-06-22\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix packaging of standalone app for macOS and Windows [#2847](https://github.com/MaibornWolff/codecharta/pull/2847)\r\n- Fix dialogparser test of sourcecode parser[#2860](https://github.com/MaibornWolff/codecharta/pull/2860)\r\n\r\n## [1.99.0] - 2022-06-21\r\n\r\n### Added \u{1f680}\r\n\r\n- Add interactive dialog support for the remaining parsers [#2833](https://github.com/MaibornWolff/codecharta/pull/2833) [#2836](https://github.com/MaibornWolff/codecharta/pull/2836) [#2842](https://github.com/MaibornWolff/codecharta/pull/2842) [#2843](https://github.com/MaibornWolff/codecharta/pull/2843) [#2846](https://github.com/MaibornWolff/codecharta/pull/2846)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix analysis bug where importers would get stuck before file output [#2854](https://github.com/MaibornWolff/codecharta/pull/2854)\r\n- Use correct icon for height metric chooser again [#2851](https://github.com/MaibornWolff/codecharta/pull/2851)\r\n- Close height metric option instead of making it only invisible on close [#2853](https://github.com/MaibornWolff/codecharta/pull/2853)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate changelog dialog to Angular [#2849](https://github.com/MaibornWolff/codecharta/pull/2849)\r\n- Migrate node path panel to Angular [#2855](https://github.com/MaibornWolff/codecharta/pull/2855)\r\n\r\n## [1.98.0] - 2022-06-14\r\n\r\n### Added \u{1f680}\r\n\r\n- Add missing documentation for ccsh filters and csv exporter [#2831](https://github.com/MaibornWolff/codecharta/pull/2831)\r\n- Add support for compressed files to all analysis filters and to `check` validation [#2820](https://github.com/MaibornWolff/codecharta/pull/2820)\r\n\r\n### Changed\r\n\r\n- Update Readme file [#2837](https://github.com/MaibornWolff/codecharta/pull/2837)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Default selected metrics on file changes when default scenario is not applicable [#2828](https://github.com/MaibornWolff/codecharta/pull/2828)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Remove old references to single mode states and actions [#2574](https://github.com/MaibornWolff/codecharta/pull/2841)\r\n- Rename multiple mode references to standard [#2574](https://github.com/MaibornWolff/codecharta/pull/2848)\r\n\r\n## [1.97.0] - 2022-05-31\r\n\r\n### Added \u{1f680}\r\n\r\n- Add interactive dialog support for the parsers [#2737](https://github.com/MaibornWolff/codecharta/pull/2737) [#2822](https://github.com/MaibornWolff/codecharta/pull/2822)
    \r\n ![m](https://user-images.githubusercontent.com/48621967/161549546-1463914e-c223-4912-acb1-db4e357e76c5.png)\r\n\r\n### Changed\r\n\r\n- Hide color metric range-slider in color metric options of ribbon bar in delta mode instead of disabling it [#2797](https://github.com/MaibornWolff/codecharta/pull/2797)\r\n- Display max value of selected distribution metric in file extension bar [#2824](https://github.com/MaibornWolff/codecharta/pull/2824)\r\n- Display max value of selected metric in all metric chooser of ribbon bar [#2825](https://github.com/MaibornWolff/codecharta/pull/2825)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Handle invalid input of range-slider correctly [#2797](https://github.com/MaibornWolff/codecharta/pull/2797)\r\n- Use real color range min value instead of 0 and take color range min value into account for calculating initial first third of positive color [#2797](https://github.com/MaibornWolff/codecharta/pull/2797)\r\n- Fix range-slider in case of min value equal to max value [#2797](https://github.com/MaibornWolff/codecharta/pull/2797)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Track not only changes to color metric options by slider but also by related input field [#2797](https://github.com/MaibornWolff/codecharta/pull/2797)\r\n- Migrate center-map-button-component to Angular [#2809](https://github.com/MaibornWolff/codecharta/pull/2809)\r\n- Migrate the following components to Angular: globalSettingsButton.component, dialog.globalSettings.component, layoutSelection.component, sharpnessModeSelector.component, maxTreeMapFiles.component, maxTreeMapFiles.service, hideFlatBuildings.service, resetCameraIfNewFileIsLoaded.service [#2815](https://github.com/MaibornWolff/codecharta/pull/2815)\r\n- Migrate area-settings-panel-component to Angular [#2821](https://github.com/MaibornWolff/codecharta/pull/2821)\r\n\r\n## [1.96.0] - 2022-05-17\r\n\r\n### Changed\r\n\r\n- Remove all mentions of regular `.cc` `.json` `.gz` file extensions from file panel and sidebar [#2793](https://github.com/MaibornWolff/codecharta/pull/2793)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Update slider of area metric options correctly on changes of related input field [#2787](https://github.com/MaibornWolff/codecharta/pull/2787)\r\n- Limit length of labels in legend panel [#2804](https://github.com/MaibornWolff/codecharta/pull/2804)\r\n- Prevent invalid input for margin in area metric options to be submitted [#2799](https://github.com/MaibornWolff/codecharta/pull/2799)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Introduce custom angular material theme [#2784](https://github.com/MaibornWolff/codecharta/pull/2784)\r\n- Migrate height-settings-panel-component [#2790](https://github.com/MaibornWolff/codecharta/pull/2790)\r\n- Fully migrate custom-config-component [#2760](https://github.com/MaibornWolff/codecharta/pull/2760)\r\n\r\n## [1.95.2] - 2022-04-19\r\n\r\n### Changed\r\n\r\n- Restrict upload in custom views menu to custom views. Custom views uploaded in the custom views menu are now allowed to have an arbitrary file suffix [#2773](https://github.com/MaibornWolff/codecharta/pull/2773)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate reset-settings-button-component to Angular [#2774](https://github.com/MaibornWolff/codecharta/pull/2774)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Set files loaded via URL to multiple mode by default when delta mode is not selected [#2769](https://github.com/MaibornWolff/codecharta/pull/2769)\r\n\r\n## [1.95.1] - 2022-04-01\r\n\r\n### Changed\r\n\r\n- Display project name as file name (if not empty or blank) for loaded files via URL [#2767](https://github.com/MaibornWolff/codecharta/pull/2767)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fixes floor labels being drawn next to the map if margin was changed after map height is unequal to 1 [#2763](https://github.com/MaibornWolff/codecharta/pull/2763)\r\n- Fixes floor labels being stuck inside folder geometry when scaling [#2766](https://github.com/MaibornWolff/codecharta/pull/2766)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate metric-hovered-value-component to Angular [#2752](https://github.com/MaibornWolff/codecharta/pull/2752)\r\n\r\n## [1.95.0] - 2022-03-28\r\n\r\n### Added \u{1f680}\r\n\r\n- Focused gradient option for color metric. Only applies a gradient between the two set borders. [#2750](https://github.com/MaibornWolff/codecharta/pull/2750)\r\n\r\n### Changed\r\n\r\n- Mark SCMLogParserV2 as stable and deprecate SCMLogParser for Git [2725](https://github.com/MaibornWolff/codecharta/pull/2725)\r\n - Rename SCMLogParserV2 to GitLogParser\r\n - Rename SCMLogParser to SVNLogParser and remove git parsing\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Set initially correct attribute type of primary edge metric in attribute sidebar [#2731](https://github.com/MaibornWolff/codecharta/issues/2731)\r\n- Fix switching secondary metrics to median aggregation in attribute sidebar [#2630](https://github.com/MaibornWolff/codecharta/issues/2630)\r\n\r\n## [1.94.0] - 2022-03-21\r\n\r\n### Changed\r\n\r\n- Improve sonarimport help message [#2717](https://github.com/MaibornWolff/codecharta/pull/2717)\r\n- Remove blacklist entry on click of name as well [#2712](https://github.com/MaibornWolff/codecharta/pull/2712)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate add `custom config button` in ribbonbar to Angular [#2736](https://github.com/MaibornWolff/codecharta/pull/2736)\r\n\r\n## [1.93.0] - 2022-03-14\r\n\r\n### Added \u{1f680}\r\n\r\n- Show amount of added and removed files in attribute sidebar when delta mode is enabled and a folder is selected [#2701](https://github.com/MaibornWolff/codecharta/pull/2701/files)
    \r\n ![xs](https://user-images.githubusercontent.com/72517530/157468180-4e2d052b-63b8-4040-bb22-b633a24d3b8a.png)\r\n\r\n### Changed\r\n\r\n- Suspicious metrics and risk profile are calculated for all selected maps [#2721](https://github.com/MaibornWolff/codecharta/pull/2721)\r\n- Close search panel and ribbon bar dropdowns on every outside click [#2692](https://github.com/MaibornWolff/codecharta/issues/2692)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix GameObjects importer edge cases [#2705](https://github.com/MaibornWolff/codecharta/pull/2705)\r\n\r\n## [1.92.1] - 2022-03-07\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix removing maps with long file names [#2696](https://github.com/MaibornWolff/codecharta/pull/2697)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate search-bar-component to Angular [#2686](https://github.com/MaibornWolff/codecharta/pull/2686)\r\n\r\n## [1.92.0] - 2022-03-01\r\n\r\n### Changed\r\n\r\n- Design and add a new CodeChara Logo [#2682](https://github.com/MaibornWolff/codecharta/pull/2682)
    \r\n ![xs](https://user-images.githubusercontent.com/48621967/155682925-ecc9fe5d-77de-4927-9c6a-b1059ae9eead.png)\r\n- Risk profile is now calculated for every occurring programming languages in selected file(s)[#2679](https://github.com/MaibornWolff/codecharta/pull/2679)\r\n\r\n## [1.91.1] - 2022-02-25\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix loading of files without edge metric never finished [#2680](https://github.com/MaibornWolff/codecharta/issues/2680)\r\n\r\n## [1.91.0] - 2022-02-21\r\n\r\n### Changed\r\n\r\n- Refactor edge metric panel [#2670](https://github.com/MaibornWolff/codecharta/pull/2670)\r\n - Remove edge metric option \'none\'\r\n - By default, the first edge metric is enabled when map has edge metrics\r\n - Disable edge metric panel when loaded map has no edge metrics\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Improve loading times by reducing the size of JavaScript files [#2667](https://github.com/MaibornWolff/codecharta/pull/2667)\r\n- Fix loading of files without edge metric never finished [#2680](https://github.com/MaibornWolff/codecharta/issues/2680)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate loading gifs to Angular and remove now unused `isLoadingMap.service` [#2668](https://github.com/MaibornWolff/codecharta/pull/2668)\r\n\r\n## [1.90.0] - 2022-02-15\r\n\r\n### Added \u{1f680}\r\n\r\n- Parse and import GameObjects file structure into cc.json on upload [#2646](https://github.com/MaibornWolff/codecharta/pull/2646)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix flaky string comparison possibly due to puppeteer update [#2659](https://github.com/MaibornWolff/codecharta/pull/2659)\r\n- Fix show garbage bin next to the loaded maps [#2647](https://github.com/MaibornWolff/codecharta/pull/2647)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Run standalone version of CodeCharta in Node.js web target (and disable [#1314](https://github.com/MaibornWolff/codecharta/issues/1314)), so that local storage is available [#2637](https://github.com/MaibornWolff/codecharta/pull/2637)\r\n\r\n## [1.89.0] - 2022-02-07\r\n\r\n### Added \u{1f680}\r\n\r\n- Add area metric option to invert the amount of area, which is used for the nodes [#2626](https://github.com/MaibornWolff/codecharta/pull/2626)\r\n- Add button to clear search field [#2638](https://github.com/MaibornWolff/codecharta/pull/2638)
    \r\n ![xs](https://user-images.githubusercontent.com/48218172/151999974-3b8a7cca-52b2-4757-b3c0-e3b2e36ad237.png)\r\n\r\n### Changed\r\n\r\n- New buttons for selecting attribute types [#2631](https://github.com/MaibornWolff/codecharta/pull/2631)\r\n ![xs](https://user-images.githubusercontent.com/72517530/151762455-07e47bf5-18aa-4721-a60a-6dfee057e1e5.png)\r\n- Migrate context menu with slightly new layout touch to Angular. Migrated version prevents rendering outside of view [#1661](https://github.com/MaibornWolff/codecharta/issues/1661)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Remove delay of keeping a building highlight permanently [#2641](https://github.com/MaibornWolff/codecharta/issues/2641)\r\n\r\n## [1.88.0] - 2022-01-24\r\n\r\n### Changed\r\n\r\n- Rename custom configs to custom view [#2625](https://github.com/MaibornWolff/codecharta/pull/2625)\r\n- Combine single and multiple mode into standard mode [#2578](https://github.com/MaibornWolff/codecharta/pull/2578)\r\n ![xs](https://user-images.githubusercontent.com/72517530/150765617-2d66eb78-2c26-45c5-b63b-f84994ed88ab.png)\r\n- Improve file validation handling and provide more descriptive import messages [#2604](https://github.com/MaibornWolff/codecharta/pull/2604)\r\n ![xs](https://user-images.githubusercontent.com/48621967/150532207-f3b482ed-3a14-43c0-b1a3-80ac4c25d5e0.png)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix Image not shown in what is new dialog [#2610](https://github.com/MaibornWolff/codecharta/pull/2610)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n - Unfocus focused node only when map starts to load and not also when map has finished loading. This shouldn\'t change any behavior for the user [#2614](https://github.com/MaibornWolff/codecharta/pull/2614)\r\n\r\n## [1.87.1] - 2022-01-17\r\n\r\n### Changed\r\n\r\n- User-friendly renaming for display quality options [#2601](https://github.com/MaibornWolff/codecharta/pull/2601)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix color of selected building in delta mode [#2603](https://github.com/MaibornWolff/codecharta/pull/2603)\r\n- Fix link to news page when clicking \'Know more\' button changelog dialog [#2602](https://github.com/MaibornWolff/codecharta/pull/2602)\r\n- Fix Image not shown in what is new dialog [#2610](https://github.com/MaibornWolff/codecharta/pull/2610)\r\n\r\n## [1.87.0] - 2022-01-11\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate `unfocus-button-component` to Angular.\r\n\r\n### Changed\r\n\r\n- Remove suspicious metrics from custom map configurations [#2564](https://github.com/MaibornWolff/codecharta/pull/2564).\r\n- Add \'show/hide non-applicable CustomConfigs\' button to Custom Configs menu [#2591](https://github.com/MaibornWolff/codecharta/pull/2591).\r\n\r\n## [1.86.0] - 2021-12-20\r\n\r\n### Added \u{1f680}\r\n\r\n- Add 3D export feature for 3D printing [#2561](https://github.com/MaibornWolff/codecharta/pull/2561).
    \r\n ![xs](https://user-images.githubusercontent.com/48621967/146173663-e0ea177e-6ed8-4ddb-bd11-410415541e9f.png)\r\n ![l](https://user-images.githubusercontent.com/48621967/146174397-42a6e475-ed2f-47c0-ba9c-4f8304d53399.png)\r\n\r\n### Changed\r\n\r\n- Replace all color pickers in the context of ongoing Angular migration [#2560](https://github.com/MaibornWolff/codecharta/pull/2560).\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix showing names of custom configs properly [#2557](https://github.com/MaibornWolff/codecharta/pull/2557).\r\n- Fix minor memory leak in context menu for code map buildings [#2565](https://github.com/MaibornWolff/codecharta/issues/2565).\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Migrate legend panel to Angular [#2560](https://github.com/MaibornWolff/codecharta/pull/2560).\r\n\r\n## [1.85.0] - 2021-12-13\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix delta values of secondary metrics not shown in delta mode within attribute side bar [#2539](https://github.com/MaibornWolff/codecharta/issues/2539).\r\n- Use icon tag instead of font awesome icon [#2537](https://github.com/MaibornWolff/codecharta/pull/2537).\r\n- Rename text for placeholder of metric chooser [#2547](https://github.com/MaibornWolff/codecharta/pull/2547)\r\n- Fix attribute type selector of primary edge metric not shown [#2528](https://github.com/MaibornWolff/codecharta/issues/2528).\r\n- Identical files and files with identical file names but different hashes can be loaded [#2548](https://github.com/MaibornWolff/codecharta/pull/2548)\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Remove `secondaryMetrics` from store and remove `secondaryMetrics.service` as the data can be derived from selected node [#2527](https://github.com/MaibornWolff/codecharta/pull/2527).\r\n- Migrate `attribute-side-bar-component` to Angular [#2527](https://github.com/MaibornWolff/codecharta/pull/2527).\r\n- Switch from Webpack 4 Loaders to Asset Module to load icons properly with css-loader 6.x [#2542](https://github.com/MaibornWolff/codecharta/pull/2542).\r\n\r\n### Removed \u{1f5d1}\r\n\r\n- Remove notification dialog when deleting a custom config [#2553](https://github.com/MaibornWolff/codecharta/pull/2553)\r\n\r\n## [1.84.1] - 2021-11-29\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix compressed files not being loaded ([#2524](https://github.com/MaibornWolff/codecharta/pull/2525))\r\n\r\n## [1.84.0] - 2021-11-22\r\n\r\n### Changed\r\n\r\n- Improved the UI and usability of the Suspicious Metrics Feature ([#2376](https://github.com/MaibornWolff/codecharta/pull/2494))
    \r\n - The Metrics and the Analysis are now split in two menus
    \r\n ![xs](https://user-images.githubusercontent.com/48621967/141795078-bb856f53-1bc3-4c09-8be5-d031899835ae.png)\r\n - The Suspicious Metrics are now sorted with the Very High Risk on top
    \r\n ![m](https://user-images.githubusercontent.com/48621967/141793011-1bfc0e19-bd3a-4bd2-af70-c3dd472821b6.png)\r\n - The bar in the analysis shows the percentages
    \r\n ![m](https://user-images.githubusercontent.com/48621967/141791111-564778fa-b767-4ee4-b024-6856f1a79b4b.png)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix showing labels when weighted gradient on yellow buildings in color metric options are enabled ([#2511](https://github.com/MaibornWolff/codecharta/pull/2511))\r\n- Fix rounding of the sum of percentages in risk profile ([#2393](https://github.com/MaibornWolff/codecharta/pull/2516))\r\n- Fix legend panel not having a background ([#2422](https://github.com/MaibornWolff/codecharta/pull/2510))\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Remove `nodeSearch.service.ts` and `searchedNodePaths` from store as they can be derived from `searchPattern` ([#2495](https://github.com/MaibornWolff/codecharta/pull/2495)).\r\n- Refactor where metric data are calculated ([#2514](https://github.com/MaibornWolff/codecharta/pull/2514)).\r\n- Migrate `attribute-type-selector-component` to Angular ([#2519](https://github.com/MaibornWolff/codecharta/pull/2519)).\r\n\r\n## [1.83.1] - 2021-11-10\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix loading files from URL in Web Demo ([#2494](https://github.com/MaibornWolff/codecharta/pull/2494))\r\n\r\n## [1.83.0] - 2021-11-09\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix unwanted calculations of suspicious metrics when experimental features are disabled ([#2471](https://github.com/MaibornWolff/codecharta/pull/2471))\r\n- Fix UI issues in the configuration panel ([#2322](https://github.com/maibornwolff/codecharta/issues/2322))\r\n- Fix tooltip of sorting order button in map tree view showing wrong sorting order ([#2473](https://github.com/maibornwolff/codecharta/issues/2473))\r\n\r\n### Changed\r\n\r\n- Calculate MD5 checksum when generating .cc.json files ([#2411](https://github.com/MaibornWolff/codecharta/pull/2450))\r\n\r\n## [1.82.0] - 2021-10-18\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix what\'s new section including the last opened version ([#2447](https://github.com/MaibornWolff/codecharta/pull/2453))\r\n- Fix unfocus button text not showing correctly ([#2439](https://github.com/MaibornWolff/codecharta/pull/2439))\r\n\r\n### Changed\r\n\r\n- Folders in the Folder structure view of the top left come now always before any files, regardless of the sort order.\r\n\r\n## [1.81.0] - 2021-10-11\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix color picker not being usable ([#2439](https://github.com/MaibornWolff/codecharta/pull/2439))\r\n- Fix Changelog inconsistencies ([#2425](https://github.com/MaibornWolff/codecharta/pull/2425))
    \r\n ![xl](https://user-images.githubusercontent.com/48621967/135866024-ee06119a-1a62-4912-90df-ac3aa9216608.PNG)\r\n- Fix memory and performance issues related to drawing labels on floors/folders ([#2348](https://github.com/MaibornWolff/codecharta/issues/2348)).\r\n- Hides legend block if label description is not available and adds new metric descriptions ([#2377](https://github.com/maibornwolff/codecharta/issues/2377)).\r\n\r\n## [1.80.0] - 2021-10-04\r\n\r\n### Added \u{1f680}\r\n\r\n- Adds feature to display building colors as a gradients ([#2327](https://github.com/MaibornWolff/codecharta/issues/2327)).\r\n - "Weighted Gradient" only mixes colors in a small interval around the preset values.\r\n - "True Gradient" mixes colors from the 0 to the highest value, the two preset color range values determine the balance.\r\n - "Absolute" represents the old behaviour without gradients.
    \r\n ![l](https://user-images.githubusercontent.com/42114276/134924267-245c65c9-2893-43a8-9a0a-17e3182bf15a.JPG)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix broken file/node search #2389\r\n- Fix changelog inconsistencies ([#2425](https://github.com/MaibornWolff/codecharta/pull/2425))\r\n\r\n## [1.79.0] - 2021-09-20\r\n\r\n### Added \u{1f680}\r\n\r\n- Add metric descriptions to the frontend and show a translation next to the entry ([#2330](https://github.com/MaibornWolff/codecharta/issues/2330))
    \r\n \r\n- An option has been added to the global settings to enable copying screenshots to clipboard instead of saving them in a file ([#2326](https://github.com/MaibornWolff/codecharta/issues/2326))
    \r\n ![xl](https://user-images.githubusercontent.com/57844849/131342771-a3c637e3-8241-49aa-8d51-71e3a8d38aef.png)\r\n- Add changelog guidelines ([#2358](https://github.com/MaibornWolff/codecharta/pull/2358))\r\n- A changelog dialog with the latest additions to CodeCharta appears on version update ([#1315](https://github.com/MaibornWolff/codecharta/pull/2342))
    \r\n ![xl](https://user-images.githubusercontent.com/48621967/131360878-a8e1ef40-7f73-4de7-8b3f-4c8dc21448da.PNG)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Fix broken method call in screenshot feature.\r\n- Improve changelog entries.\r\n\r\n### Changed\r\n\r\n- Changing the background color and remove "outgoing" and "incoming" edges from the legend, if not applicable ([#2330](https://github.com/MaibornWolff/codecharta/issues/2330))\r\n- Improve the user experience for the AI Feature "Suspicious Metrics and Risk Profiles" and enable it for any programming language ([#2362](https://github.com/MaibornWolff/codecharta/pull/2362))
    \r\n ![m](https://user-images.githubusercontent.com/26900540/133250867-adf4583d-9d0e-4f81-b8a7-1407b93d9f40.png)\r\n\r\n## [1.78.0] - 2021-09-06\r\n\r\n### Added \u{1f680}\r\n\r\n- A changelog dialog with the latest additions to CodeCharta appears on version update ([#1315](https://github.com/MaibornWolff/codecharta/issues/1315))\r\n- Add documentation for SCMLogParserV2 ([#1349](https://github.com/maibornwolff/codecharta/issues/1349))\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Empty temporary label during hovering ([#2328](https://github.com/maibornwolff/codecharta/issues/2328))\r\n- Show the screenshot hotkey in the screenshot title ([#2323](https://github.com/maibornwolff/codecharta/issues/2323))\r\n- Improved rendering performance ([#2345](https://github.com/MaibornWolff/codecharta/pull/2345))\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Update GH-Pages and visualization dependencies ([#2356](https://github.com/maibornwolff/codecharta/issues/2356))\r\n\r\n## [1.77.0] - 2021-07-30\r\n\r\n### Added \u{1f680}\r\n\r\n- The "Color Metric Options" panel and "Legend" panel display the maximum value of the selected metric instead of infinite. ([#1520](https://github.com/maibornwolff/codecharta/issues/1520))\r\n- Mark color-section as unimportant in delta mode ([#769](https://github.com/maibornwolff/codecharta/issues/769))\r\n\r\n### Changed\r\n\r\n- Small ui improvements added. ([#1881](https://github.com/MaibornWolff/codecharta/issues/1881))\r\n- Numbers/Percentages always show in the distribution bar([#1540](https://github.com/MaibornWolff/codecharta/issues/1540))\r\n - Toggle between percentage and absolute numbers by clicking anywhere on the (expanded) distribution bar.\r\n - The old expanded distribution bar is now accessible through a button.\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- It is no longer possible to exclude all files on the map ([#901](https://github.com/MaibornWolff/codecharta/issues/901))\r\n\r\n## [1.76.0] - 2021-07-13\r\n\r\n### Added \u{1f680}\r\n\r\n- Custom metric scenarios which include the \'Color-Metric\' (rloc) will now also save any changes made to the color scheme.\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Performance improvements when loading new files. ([#1312](https://github.com/maibornwolff/codecharta/issues/1312))\r\n\r\n## [1.75.0] - 2021-07-05\r\n\r\n### Added \u{1f680}\r\n\r\n- Imported files are now compressed by default. Use the -nc parameter to uncompress the files. ([#1702](https://github.com/maibornwolff/codecharta/issues/1702))\r\n- Export the current view as a png image by using "Ctrl+Alt+S" or clicking the corresponding button ([#674](https://github.com/MaibornWolff/codecharta/issues/674))\r\n- Show only labels of buildings according to a chosen color ([#1347](https://github.com/MaibornWolff/codecharta/issues/1347))\r\n- New buttons to reset the color hex values and color metric thresholds separately ([#1613](https://github.com/MaibornWolff/codecharta/issues/1613))
    \r\n ![l](https://user-images.githubusercontent.com/50167165/121889295-5b071780-cd19-11eb-87ef-aba0ab0c6c09.png)\r\n\r\n### Changed\r\n\r\n- Metric aggregations now work as intended and are available from the sidebar when selecting folders ([#1953](https://github.com/MaibornWolff/codecharta/issues/1953))\r\n- Opening new files does no longer remove old ones.\r\n - Already loaded files can be individually removed.\r\n - The \'Multiple\' view will select the latest files.
    \r\n ![l](https://user-images.githubusercontent.com/50167165/123071234-c6856f00-d414-11eb-8326-e25f614e75d7.png)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- It is now possible to rotate the map by rotating the view cube ([#353](https://github.com/MaibornWolff/codecharta/issues/353))\r\n\r\n## [1.74.0] - 2021-05-31\r\n\r\n### Added \u{1f680}\r\n\r\n- SonarImport: SonarQube 8.8 support. Older versions are still supported.\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Only show labels for building included in the search\r\n- Color slider not initialized correctly ([#1592](https://github.com/MaibornWolff/codecharta/issues/1592))\r\n\r\n## [1.73.0] - 2021-05-10\r\n\r\n### Added \u{1f680}\r\n\r\n- Improve descriptions ([#1879](https://github.com/MaibornWolff/codecharta/issues/1879))\r\n

    \r\n ![m](https://user-images.githubusercontent.com/57844849/115393175-b2897b00-a1e1-11eb-8601-d2128f3469a3.png)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Excluding in delta mode is broken ([#1578](https://github.com/MaibornWolff/codecharta/issues/1578))\r\n (Inclusion and exclusion of files using wildcard searches in the flatten and exclude operations)\r\n- Fix labels and lines missing a connection in some cases([#1716](https://github.com/MaibornWolff/codecharta/issues/1716))\r\n- Ribbons resizing when expanding ([#1952](https://github.com/MaibornWolff/codecharta/issues/1952))\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Fix breaking changes with newest three-js version([#1877](https://github.com/MaibornWolff/codecharta/issues/1877))\r\n\r\n## [1.72.0] - 2021-04-22\r\n\r\n### Added \u{1f680}\r\n\r\n- Hints for Global Settings ([#1715](https://github.com/MaibornWolff/codecharta/issues/1715))\r\n- Indicate total nodes and excluded / flattened nodes in file explorer ([#1880](https://github.com/MaibornWolff/codecharta/issues/1880))\r\n- Add path to node context menu ([#1667](https://github.com/MaibornWolff/codecharta/issues/1667))\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Made the header semi responsive ([#1037](https://github.com/MaibornWolff/codecharta/issues/1037))\r\n\r\n## [1.71.2] - 2021-03-16\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- DevOps pipeline changes\r\n- Fixed web visualization in github\r\n\r\n## [1.71.1] - 2021-03-16\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- DevOps pipeline changes\r\n\r\n## [1.71.0] - 2021-03-16\r\n\r\n### Changed\r\n\r\n- Disable unready AI function\r\n- Fix linter errors\r\n- Fix editorconfig\r\n\r\n## [1.70.2] - 2021-03-12\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- DevOps pipeline changes\r\n- Project naming for Docker deployment\r\n\r\n## [1.70.1] - 2021-03-12\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- DevOps pipeline changes\r\n\r\n## [1.70.0] - 2021-03-09\r\n\r\n### Changed\r\n\r\n- Render on demand ([#1728](https://github.com/MaibornWolff/codecharta/issues/1728))\r\n\r\n### Fixed\r\n\r\n- Memory leaks\r\n\r\n## [1.69.0] - 2021-02-23\r\n\r\n### Added \u{1f680}\r\n\r\n- Added WebGL FXAA antialias & PixelRatio Options in order to achieve better resolution on high dpi displays(https://github.com/MaibornWolff/codecharta/pull/1551).

    \r\n ![option dialog](https://user-images.githubusercontent.com/74670211/106582136-f4404900-6543-11eb-8f5b-5e1ec47457c7.png)\r\n There are 4 available modes:\r\n - **standard mode**: the pixel density is only applied to the small cube with standard browser aliasing\r\n - **pixel ratio without aliasing**: no antialiasing is used\r\n - **pixel ration with FXAA**: Nvidia FXAA antialiasing shader is used as an alisaing technique. this has better perfromance the standard browser aliasing aliasing\r\n - **pixel ration with MSAA**: this is the best aliasing quality, slower then FXAA.\r\n- Added GPU Stats (only in dev mode)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Unfocus now respects the focus depth ([#1099](https://github.com/MaibornWolff/codecharta/issues/1099))\r\n- Track anonymous usage data also for older CodeCharta API versions and fix some minor bugs.\r\n\r\n## [1.68.0] - 2021-02-08\r\n\r\n### Added \u{1f680}\r\n\r\n- A new experimental feature has been added to track anonymous metadata of a currently loaded map.\r\n - Neither the map name nor file names will be tracked but anonymous metric values and statistics like (average, min, max).\r\n - The tracked data will not be sent to a server yet. Instead, it can be downloaded as a json file in the Global Settings for now.\r\n - It is planned to send the anonymous data to a server in the future, so that we can collect tracking data automatically.\r\n - ![example of new feature](https://user-images.githubusercontent.com/26900540/106896300-ac5f2480-66f1-11eb-8096-246d1733c0ee.png)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Errors occurred in delta mode if names of root folders were different\r\n- Switching maps in delta mode now shows the differences between the maps ([#1606](https://github.com/maibornwolff/codecharta/issues/1606))\r\n- Label over hovered building not shown for height Metric value of zero ([#1623](https://github.com/MaibornWolff/codecharta/issues/1623))\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- CodeChartaStorage class has been introduced to dynamically store values either on disk (standalone version) or in the localStorage (web version). This is the first step to solve [#684](https://github.com/MaibornWolff/codecharta/issues/684).\r\n\r\n## [1.67.0] - 2021-01-26\r\n\r\n### Added \u{1f680}\r\n\r\n- Allow opening files from local drive by double clicking on the buildings or clicking on their names ([#1314](https://github.com/MaibornWolff/codecharta/issues/1314))\r\n - Only available in the standalone version!\r\n - files are opened in associated third-party applications\r\n - web-links are opened in a browser window\r\n- Allow customized color in the node context menu ([#1556](https://github.com/MaibornWolff/codecharta/issues/1556)).\r\n\r\n [!example of new feature #1556](https://user-images.githubusercontent.com/3596742/104302048-a007f300-54c8-11eb-86c1-287483884783.png)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- fixed wrong max tree map visibility ([#1624](https://github.com/MaibornWolff/codecharta/issues/1624))\r\n- fixed incorrect label placement on delta maps that share no common nodes ([#1686](https://github.com/MaibornWolff/codecharta/issues/1686))\r\n\r\n## [1.66.0] - 2021-01-18\r\n\r\n### Added \u{1f680}\r\n\r\n- Allow color of buildings to be customizable in the ribbon bar and in the legend. Colors of edges are now customizable as well ([#1533](https://github.com/MaibornWolff/codecharta/issues/1533))

    \r\n ![example of new feature](https://user-images.githubusercontent.com/3596742/103547861-3c1c7380-4ea5-11eb-8df2-541caf65b9df.png)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Global settings not reverting to default ones ([#1632](https://github.com/MaibornWolff/codecharta/issues/1632))\r\n- Maximum treemap files shown in squarified node ([#1624](https://github.com/MaibornWolff/codecharta/issues/1624))\r\n- Wrong folder names and colors in legend when using the highlight folder feature ([#1555](https://github.com/MaibornWolff/codecharta/issues/1555))\r\n- Temporary labels are placed at the wrong height for scaled buildings ([#1618](https://github.com/MaibornWolff/codecharta/issues/1618))\r\n- Visible labels will disappear or placed lower for scaled buildings ([#1619](https://github.com/MaibornWolff/codecharta/issues/1619))\r\n- Unnecessary break line for secondary metrics ([#1093](https://github.com/MaibornWolff/codecharta/issues/1093))\r\n\r\n## [1.65.0] - 2020-12-23\r\n\r\n### Added \u{1f680}\r\n\r\n- Highlight label while hovering over building, draw a temporary label for hovered buildings that have none ([#1529](https://github.com/MaibornWolff/codecharta/issues/1529))\r\n- Integrated streetlayout ([#904](https://github.com/MaibornWolff/codecharta/issues/904))\r\n ![cc_street_ccv](https://user-images.githubusercontent.com/63230711/78872405-87eed900-7a49-11ea-984a-c0ef738779b9.png)\r\n In street layout file nodes are displayed as buildings and directories are displayed as streets. A street layout has the advantage of a more apparent directory structure and stable positioning of nodes after metric changes.\r\n two different Street layout are integrated : - StreetLayout : as described above. - TMStreet : a combination of street layout and squarified layout.\r\n\r\n### Changed\r\n\r\n- The button to see excluded buildings is now merged into the flattened button. Excluded and flattened buildings can now be seen by opening the building with the eye slash icon ([#1543](https://github.com/MaibornWolff/codecharta/issues/1543))\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Height scaling not applied to buildings ([#1595](https://github.com/MaibornWolff/codecharta/issues/1595)))\r\n- Fixed multiple label positioning/scaling bugs\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- e2e flaky test ([#1322](https://github.com/MaibornWolff/codecharta/issues/1322))\r\n\r\n## [1.64.0] - 2020-12-15\r\n\r\n### Added \u{1f680}\r\n\r\n- Download and upload Custom Configurations is now possible ([#1472](https://github.com/MaibornWolff/codecharta/issues/1472))\r\n\r\n - Open the Custom Configs menu in the toolbar on top of the map\r\n - Next to the `plus` Button you can see two new buttons: Upload and download.\r\n - Download: If you already have added Custom Configs you can download them by clicking the download button.\r\n - Custom Configs which are applicable for the currently selected map(s) will be downloaded as `.cc.config.json` files.\r\n - Upload: Click the upload button and specify your Custom Config file (`.cc.config.json`)\r\n - Already existing Custom Configs will be skipped.\r\n - Different Custom Configs with same names will be renamed.\r\n - Another way to upload your Custom Configs is to upload a `.cc.json` file together with one or multiple `.cc.config.json` files using the default `Load .cc.json map` button in the upper left corner.\r\n - The Configs are stored to the local storage of your browser.\r\n - If a limit of `768KB` is exceeded you will see a warning when trying to add a new Custom Config.\r\n - You can click the displayed "download and purge" button to download/backup at least 6 months old Configs and then purge them from the local storage to make space for new ones.\r\n - If we cannot purge any Configs, you might have to do that by your own by deleting specific Configs manually.\r\n\r\n### Changed\r\n\r\n- Increase possible margin size ([#1490](https://github.com/MaibornWolff/codecharta/pull/1490))\r\n - change displayed margin value from % to pixel\r\n - change dynamic margin value to a default margin value that should fit the map\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Re-enabled color selection for folders and on hover ([#1544](https://github.com/MaibornWolff/codecharta/pull/1544))\r\n- Labels do not take delta height into account ([#1523](https://github.com/MaibornWolff/codecharta/issues/1523))\r\n- The calculation of the map resolution scale factor was wrong ([#1491](https://github.com/MaibornWolff/codecharta/issues/1491))\r\n - The factor is used to decrease the map resolution especially for big maps to avoid performance issues.\r\n - Now only the selected maps will be considered for the calculation. Unselected maps will be skipped.\r\n\r\n## [1.63.0] - 2020-11-30\r\n\r\n### Added \u{1f680}\r\n\r\n- Add the folder name onto the floor on the first 3 layers to get a better overview of the map ([#1491](https://github.com/MaibornWolff/codecharta/issues/1491))\r\n- UX Improvements related to labels allowing for user interaction #1404\r\n - Labels can be hovered, hovering their corresponding node\r\n - Selecting a label will select the corresponding node\r\n - Hovering a label will remove its transparency and move towards the user:\r\n - If other labels obstruct the hovered label it will move to the front\r\n - Increased the transparency of other labels; this makes it easier to distinguish the hovered label\r\n - Increase the amount of labels to 250.\r\n- Show file count of folders in Attribute-Side-Bar ([#1255](https://github.com/MaibornWolff/codecharta/issues/1255)):\r\n ![img showing file count of folder](https://user-images.githubusercontent.com/3596742/100371884-be915800-3008-11eb-89f5-ed57c62680cc.png)\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Buildings are flattened when delta is active #824.\r\n- Selected Building now stays highlighted when map is rotated #1498\r\n\r\n## [1.62.0] - 2020-11-12\r\n\r\n### Added \u{1f680}\r\n\r\n- A new option in the Global Settings allows to enable/disable experimental features #1318\r\n - Click on the settings button in the upper right corner to open the Global Settings dialog.\r\n - Activate/Deactivate the new option "Enable Experimental Features"\r\n - The features will be shown/hidden accordingly\r\n- "CustomViews", the first experimental feature has been added #1318\r\n\r\n - It must be enabled by activating the new option in the Global Settings dialog as mentioned before.\r\n - You can save your current map configurations to replay/restore them later.\r\n - A saved CustomView can only be applied for it\'s original map.\r\n - This will enable you to be more efficient in analizing projects by switching between different CustomViews.\r\n\r\n- NodeContextMenu now contains option to keep buildings highlighted #1323\r\n\r\n- Fixed Folder algorithm supports nested (parent-child) Fixed Folders #1431\r\n 1. Define children of a Fixed Folder also as Fixed Folders by adding the `fixedPosition` attribute manually in `.cc.json`.\r\n 1. All children of a parent Fixed Folder must be fixed.\r\n 1. Read the how-to guide for further information: https://maibornwolff.github.io/codecharta/how-to/fixate_folders_with_a_custom_cc_json/\r\n\r\n### Changed\r\n\r\n- Improved search\r\n\r\n 1. Not providing any star in the search bar from now on expects the input to\r\n be a wildcard search. Thus, files are going to match paths that have\r\n leading or following characters. E.g., `oo` is going to match\r\n `/root/foobar`.\r\n 1. To use the explicit former search mode, wrap the search entry in quotes as\r\n in: `"oo"`. This would only match filenames that are exactly `oo`.\r\n 1. The search field accepts multiple search entries at once, separated by\r\n commata. `foo,bar` is going to search for both `*foo*` and `*bar*` and\r\n marks all matched files accordingly.\r\n 1. It is possible to invert the search with a leading exclamation mark as in\r\n `!foobar`. That will match any file that does not match `*foobar*`. It is\r\n only possible to invert the complete input, not individual search entries.\r\n 1. Whitespace handling changed to ignore leading whitespace.\r\n\r\n- Distribution metric #1188\r\n\r\n 1. set rloc to default distribution metric, showing language percentages for real lines of code, if available. Else set to unary to show language distribution over files\r\n\r\n- Improved file sorting in the file overview of the search bar\r\n - Numbers are sorted naturally\r\n - Characters are compared with their base character (e.g., `a` is now next to `\xe1`).\r\n- Label metric not shown by default anymore\r\n\r\n## [1.61.0] - 2020-10-30\r\n\r\n### Changed\r\n\r\n- Disable highlighting buildings during map movement #1432\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- File tree/flattened/excluded overlay visualization is buggy #1269\r\n- EdgePreview on Map broken when selecting zero #1276\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Schedules and merge retries of dependabot dependency updates changed\r\n\r\n## [1.60.2] - 2020-10-24\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Mouse cursor flickering #1170\r\n- Fix flipping map when clicking any option in the toolbar #1410\r\n- Fix edge metric not working correctly\r\n\r\n## [1.60.1] - 2020-10-20\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Issue with first start without an internet connection not working#1266\r\n- Issue with ribbon bar sizes for opened cards #1035\r\n\r\n## [1.60.0] - 2020-10-16\r\n\r\n### Added \u{1f680}\r\n\r\n- Parsing feedback with progressbar and probable ETA for parsers and SonarImporter #847\r\n- Mark node names and make the names clickable for nodes that have a link to them #1313\r\n- Indicate the metric name next to a shown value in a new line on labels #1035\r\n- Checkboxes to display metric names and values and to display node names on labels #1035\r\n- Mark node names and make the names clickable for nodes that have a link to them #1313\r\n\r\n### Changed\r\n\r\n- Label design #1035\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- First start without an internet connection of standalone not working #1266\r\n- Comparing a map in delta mode shows the correct differences\r\n- This mainly applies to maps compared with itself while it also fixes some other minor miscalculations\r\n- File extensions detection is improved\r\n- Zooming in and out the map will now close the node context menu #1324\r\n - Improved and simplified event handling in NodeContextMenu component\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Improved performance of multiple operations (e.g., delta mode).\r\n\r\n## [1.59.0] - 2020-10-09\r\n\r\n### Added \u{1f680}\r\n\r\n- New EXPERIMENTAL SCMLogParser version\r\n- Improved performance around 300% when parsing CodeCharta\r\n- Improved memory usage\r\n- Fixed issue with old parser creating incorrect nodes in CodeCharta #871\r\n- ATTENTION: the parser is experimental, therefore some potential issues might remain, e.g. potentially an unhandled edge case when parsing node\r\n- To use the new parser a reversed git log is needed, as well as a git file list, refer to `ccsh scmlogparserv2 -h` for additional information\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Color-Metric slider is set and activated in the map accordingly to the released sliderbutton #1319\r\n- Deselcting a building will instantly dehighlight the buildings which were connected through edges #890\r\n\r\n## [1.58.1] - 2020-10-02\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Showing wrong edges when hovering a building after selecting one #1137\r\n\r\n## [1.58.0] - 2020-10-02\r\n\r\n### Added \u{1f680}\r\n\r\n- Add active color metric to the top of the legend panel #1278\r\n- SourceCodeParser: Java 14 Support #1277\r\n\r\n## [1.57.4] - 2020-09-25\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Metric-Settings-Panels closed when clicking an option inside the panel #1258\r\n- Improve loading and rendering maps performance\r\n\r\n## [1.57.3] - 2020-09-18\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Improve overall performance for loading and rendering maps\r\n- Improve error messages when a file can\'t be loaded with the URL parameters\r\n\r\n## [1.57.2] - 2020-09-11\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- New API version 1.2 not set correctly in analysis\r\n\r\n## [1.57.1] - 2020-09-11\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Validation of unique filenames not checking for the complete path and instead throwing an error on duplicate filename\r\n\r\n## [1.57.0] - 2020-09-11\r\n\r\n### Added \u{1f680}\r\n\r\n- `fixedPosition` as a new property in the `cc.json` that allows to fixate folders in the map\r\n\r\n### Changed\r\n\r\n- `cc.json` version updated to `1.2`\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Compressed `cc.jsons (.gz) not marked as accepted when selecting a file in the file chooser\r\n\r\n### Docs \u{1f50e}\r\n\r\n- [How-To: Fixate Folders in the `cc.json`](https://maibornwolff.github.io//codecharta/how-to/fixate_folders_with_a_custom_cc_json/)\r\n- CC-Json-API changes\r\n\r\n## [1.56.0] - 2020-09-04\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Improve performance when switching to multiple or delta mode when edges are available\r\n- Scenario with EdgeMetric is only appliable when EdgeMetric is existing for the Map #1201\r\n- Starting standalone version results in infinite loading loop #1202\r\n- Expanded metric selection will close when clicking anywhere outside of that selection #1036\r\n\r\n## [1.55.0] - 2020-08-28\r\n\r\n### Added \u{1f680}\r\n\r\n- Cursor indicator for different mouse actions #1042\r\n\r\n### Changed\r\n\r\n- Edge-Metrics sorted by name now instead of number of incoming and outgoing edges\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Number of incoming and outgoing edges not visible when hovering over a node #1095\r\n- Highlighting buildings in multiple mode now works #956\r\n\r\n## [1.54.0] - 2020-08-21\r\n\r\n### Added \u{1f680}\r\n\r\n- Opening NodeContextMenu in the tree-view marks the node until it is closed #1068\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Missing Sonarcloud metrics in demo\r\n\r\n### Docs \u{1f50e}\r\n\r\n- Added note how to fix missing `sh` command issue when running integration tests on Windows\r\n\r\n## [1.53.0] - 2020-08-14\r\n\r\n### Changed\r\n\r\n- NodeContextMenu will show up when releasing the right-mouse-button now #1027\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- NodeContextMenu showing up after moving the mouse while holding right-mouse-button #1027\r\n\r\n## [1.52.0] - 2020-08-07\r\n\r\n### Added \u{1f680}\r\n\r\n- Support for Tokei 12 new JSON schema #1103\r\n\r\n### Changed\r\n\r\n- Rename master branch to main for a more inclusive naming #1117\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- After loading an invalid file the filechooser pops up again, so that the user can choose a valid file #1021\r\n- Quality gates on sonarcloud.io are red #879\r\n\r\n### Docs \u{1f50e}\r\n\r\n- Moved developer guides to our [gh-pages](https://maibornwolff.github.io/codecharta/) #986\r\n\r\n## [1.51.0] - 2020-07-24\r\n\r\n### Added \u{1f680}\r\n\r\n- File chooser now accept ".json" files only to avoid accidentally loading incorrect files #1094\r\n- Lots of tooltips #1030\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Blacklisting a building would sometimes not update the map #1098\r\n- Changes made after opening the filechooser and closing it won\'t be applied #875\r\n- Edge metric list not always updated correctly when loading a new file #1106\r\n\r\n## [1.50.0] - 2020-07-10\r\n\r\n### Added \u{1f680}\r\n\r\n- Line between scenario indicator and remove button #1069\r\n\r\n### Changed\r\n\r\n- Reduced transition time when opening or collapsing parts of the ribbon bar #1043\r\n- Search Panel will open now when clicking in the search field and collapse when clicking somewhere else #1071\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Opening the same file again will now reload the file and reset the application #1032\r\n- Improve render performance by persisting color conversions #1034\r\n- Sorting in tree-view not being applied #1040\r\n\r\n## [1.49.1] - 2020-07-03\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Improved performance significantly when switching between single, multiple and delta\r\n- Color-Range-Slider sometimes misbehaved when loading a new map or excluding buildings #926\r\n\r\n## [1.49.0] - 2020-06-19\r\n\r\n### Added \u{1f680}\r\n\r\n- Custom scenarios can be created and saved through the scenario menu #675\r\n- Importer and parser documentation can now be found on the github Website #954\r\n- Output of sourcemonitor can now be compressed with the compression flag\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- [Security] Bump angular from 1.7.9 to 1.8.0 in /visualization #995\r\n\r\n## [1.48.0] - 2020-06-12\r\n\r\n### Added \u{1f680}\r\n\r\n- Support of compressed cc.json files. Files can be compressed in the analysis #848\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Improved performance of several importers #846\r\n\r\n## [1.47.1] - 2020-05-08\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Attribute-Side-Bar being invisible\r\n\r\n## [1.47.0] - 2020-05-02\r\n\r\n### Added \u{1f680}\r\n\r\n- When hovering over a folder, all buildings inside it will be highlighted as well #694\r\n\r\n### Changed\r\n\r\n- Rename the button Show-Complete-Map button to Unfocus #642\r\n- Move the Unfocus button (visible when right-clicking a focused node) to the node-context-menu #948\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Generating a delta map with merged empty folders in between is now working correctly #730\r\n- Reduced time when opening a new file #932\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- [Security] Bump jquery from 3.4.0 to 3.5.0 in /visualization #944\r\n\r\n## [1.46.1] - 2020-04-24\r\n\r\n### Added \u{1f680}\r\n\r\n- Error dialogs in case of validation or api version issues #610\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Improved overall rendering performance of larger maps by roughly 40% #836\r\n\r\n## [1.45.5] - 2020-04-17\r\n\r\n### Added \u{1f680}\r\n\r\n- Median symbol for aggregated relative metrics #365\r\n- AttributeTypes for tokeiImporter and SCMLogParser #365\r\n- Ellipsis button in TreeView list when hovering a node to access context menu #780\r\n- Show gray eye-icon next to the ellipsis-button to indicate a flattened node #780\r\n- Attribute Type selector in the metric dropdowns for edges and nodes\r\n\r\n### Changed\r\n\r\n- Metrics with AttributeType relative are now aggregated using the median #365\r\n- Showing absolute number of files instead of relative number when hovering list item in TreeView #780\r\n- Clicking a hovered list item inside the TreeView opens folders #780\r\n- Color node name in gray when flattened #780\r\n\r\n### Removed \u{1f5d1}\r\n\r\n- Eye-icon in TreeView list to flatten a node #780\r\n- Option to focus a node when clicking the node name inside the TreeView #780\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Consistency of AttributeTypes representation #365\r\n- Wrong file description for tokeiimporter\r\n- Improved search performance #837\r\n\r\n## [1.44.0] - 2020-03-27\r\n\r\n### Added \u{1f680}\r\n\r\n- Dialog to select between different sorting options #388\r\n- Button to reverse the current selected sorting #388\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Show file selection in toolBar after excluding or hiding a node instead of an empty toolBar #896\r\n\r\n## [1.43.0] - 2020-03-20\r\n\r\n### Changed\r\n\r\n- Selectable metrics will only contain metrics from the visible maps\r\n- Closing the attribute-side-bar by clicking somewhere in the map will now be triggered on mouse up instead of mouse down\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Search-panel opening for a short duration when importing a new file\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Fix vulnerability with nokogiri <1.10.8\r\n\r\n## [1.42.3] - 2020-03-13\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Loading Gif not displayed when preparing to render a new map #857\r\n- Selecting zero files in Multiple mode will not trigger the 3D CodeMap creation\r\n- Metrics in the dropdown menu now show the correct max value for the visible maps #876\r\n\r\n## [1.42.2] - 2020-02-14\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Replaced non standard `[[` in sh scripts #849\r\n- Improved performance for loading a new file #836\r\n- Marked Packages are loaded from files #798\r\n\r\n## [1.42.1] - 2020-02-07\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- GC Overhead Limit (OutOfMemory Exception) during analysis of large SCMLogs fixed #845\r\n\r\n## [1.42.0] - 2020-01-31\r\n\r\n### Added \u{1f680}\r\n\r\n- Support for camel and kebab-case for ccsh arguments #772\r\n- RawTextParser for analysis #660\r\n- IndentationLevel as metric for RawTextParser #660\r\n- Show additional Pairing Rate of Selected Building, simultaneously to the currently hovered Buildings #736\r\n\r\n### Changed\r\n\r\n- Options of the ccsh are now consistently in kebab-case #772\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Path prefix handling in tokeiimporter #841\r\n\r\n## [1.41.8] - 2020-01-17\r\n\r\n### Removed \u{1f5d1}\r\n\r\n- Project name parameters in the ccsh #773\r\n\r\n## [1.41.6] - 2020-01-10\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Deployment\r\n\r\n## [1.41.1] - 2020-01-10\r\n\r\n### Fixed \u{1f41e}\r\n\r\n- Performance of loading maps with edges improved #823\r\n- Calculation of other Group for fileExtensionBar #768\r\n- Remove focus of UI elements when they are not visible anymore\r\n\r\n## [1.41.0] - 2019-12-06\r\n\r\n### Added \u{1f680}\r\n\r\n- Show the relative number of files a folder includes compared to the project in the TreeView #380\r\n- Show the number of files a folder includes in the TreeView when hovering #380\r\n- When the File Extension Bar is hovered, all buildings corresponding to that extension are highlighted #545\r\n- Toggle between percentage and absolute values when clicking the file extension details section #545\r\n- Sum hovered delta values for folders #781\r\n\r\n## [1.40.0] - 2019-11-22\r\n\r\n### Changed\r\n\r\n- Replaced Blacklist Hide with Flatten option #691\r\n- Flattened buildings are not hidden by default #691\r\n\r\n### Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}\r\n\r\n- Bump @types/three from 0.89.12 to 0.103.2 in /visualization #453\r\n- Bump angularjs-slider from 6.5.1 to 7.0.0 in /visualization #454\r\n- Bump webpack from 3.12.0 to 4.41.2 in /visualization #436\r\n- [Security] Bump angular from 1.7.7 to 1.7.9 in /visualization #800\r\n\r\n## [1.39.0] - 2019-11-15\r\n\r\n### Added\r\n\r\n- Progress indicator for SonarImporter #544\r\n\r\n### Changed\r\n\r\n- New style for hovered metric values #696\r\n- Redesigned slider labels in ribbonBar sections #696\r\n- Shortened ribbonBar sections #696\r\n\r\n### Fixed\r\n\r\n- Missing pictures and broken links in docs #785\r\n- SCMLogParser is now more resilient to unusual SVN commit messages #763\r\n\r\n## [1.38.1] - 2019-11-13\r\n\r\n### Added\r\n\r\n- New github-pages https://maibornwolff.github.io/codecharta/\r\n\r\n### Fixed\r\n\r\n- Sum symbol for hovered metric values only shows for folders #775\r\n\r\n## [1.38.0] - 2019-11-08\r\n\r\n### Added\r\n\r\n- Temporal coupling edges generated by SCMLogParser #622\r\n\r\n### Changed\r\n\r\n- Downloaded files are no longer formatted #679\r\n- Added highly and median coupled files metrics to non-churn metric list of SCMLogParser #622\r\n- Moved nodePathPanel to toolBar and updated style #607\r\n\r\n### Fixed\r\n\r\n- Removed attributes from downloaded files that should not be there #679\r\n\r\n## [1.37.0] - 2019-10-25\r\n\r\n### Added\r\n\r\n- Sidebar with information regarding the selected building #527\r\n- Sidebar closes when selected buildings is excluded #748\r\n\r\n### Changed\r\n\r\n- Animation to show or hide the legend panel #527\r\n\r\n### Removed\r\n\r\n- Expandable detail panel in lower left corner #527\r\n- Removed option to maximize/minimize detail panel #527\r\n\r\n### Fixed\r\n\r\n- Autofocus and label size for focused nodes #747\r\n- Selected buildings stays selected when settings are changed #748\r\n- IllegalStateException when scanning single file in SourceCodeParser #573\r\n- SourceCodeParser places files in the project root correctly into the hierarchy #574\r\n\r\n## [1.36.0] - 2019-10-18\r\n\r\n### Changed\r\n\r\n- Open and close the ribbonBar sections independently with an updated animation\r\n\r\n### Fixed\r\n\r\n- Camera is now resetted correctly, when unfocusing #634\r\n- Inputs of Color Range Slider now waits a second before it commits its values #676\r\n- Fixed root folder name in TreeView after new map after loading new map #649\r\n- Increased size of ribbonBar for big screens #644\r\n- File-Extension-Bar will not display excluded nodes anymore #725\r\n- Sanitize input for shelljs #600\r\n\r\n### Chore\r\n\r\n- Bump jacoco from 0.8.1 to 0.8.4 in /analysis\r\n\r\n## [1.35.0] - 2019-10-04\r\n\r\n### Added\r\n\r\n- Checkbox in global Settings for disabling camera reset, when new map is loaded #685\r\n- Pipe support for SourceCodeParser #716\r\n- Pipe support for SCMLogParser #717\r\n- Pipe support for SonarImporter #715\r\n\r\n### Fixed\r\n\r\n- Exclude and Hide options are disabled for empty and already existing search patterns #654\r\n\r\n## [1.34.0] - 2019-09-20\r\n\r\n### Added\r\n\r\n- Tokei Importer #538\r\n- Prominent Notice that we use Sonar-jar #713\r\n\r\n### Chore\r\n\r\n- Bump kotlin-reflect from 1.3.41 to 1.3.50 in /analysis\r\n- Bump json from 20180813 to 20190722 in /analysis\r\n- Bump rxjava from 2.2.9 to 2.2.12 in /analysis\r\n- Bump assertj-core from 3.12.2 to 3.13.2 in /analysis\r\n- Bump sonar-java-plugin from 5.12.1.17771 to 5.14.0.18788 in /analysis\r\n\r\n## [1.33.0] - 2019-09-10\r\n\r\n### Added\r\n\r\n- Edge Previews (Palm-Tree-Effect) #529\r\n- Dropdown to select Edge Metric, including Edge Counter #529\r\n- Edge Metric settings for Edge Height, Number of Previews & show only building with Edges #529\r\n\r\n### Changed\r\n\r\n- Edge Visualization to better distinguish between incoming and outgoing edges #529\r\n- Distribution metric is by default the same as area metric #689\r\n- MapTreeView below searchBar opens the first level by default #690\r\n- Focus metric search when opening metricChooser #693\r\n\r\n### Removed\r\n\r\n- Edge Options in Context menu #529\r\n\r\n### Fixed\r\n\r\n- SourceCodeParser now skips custom metrics for files, if the syntax tree cannot be created\r\n- Nodes with color metric equals 0 are colored correct again #677\r\n\r\n### Chore\r\n\r\n- [Security] Bump mixin-deep from 1.3.1 to 1.3.2 in /visualization\r\n\r\n## [1.32.0] - 2019-08-09\r\n\r\n### Added\r\n\r\n- Search for metrics and an indicator for the highest value in dropdown #575\r\n- Button to enable PresentationMode that uses Flashlight-Hovering #576\r\n- Clarifying information which file is which in the file bar when in delta mode #615\r\n\r\n### Changed\r\n\r\n- Replaced Scenario dropdown with button on the left of the metric sections #628\r\n\r\n## [1.31.0] - 2019-08-02\r\n\r\n### Added\r\n\r\n- New Metric in SourceCodeParser: Maximum-Nesting-Level #659\r\n\r\n### Fixed\r\n\r\n- Label hight adjustment now matches scaling of map #594\r\n- SCMLogParser now guesses the input file encoding #614\r\n\r\n## [1.30.0] - 2019-07-26\r\n\r\n### Added\r\n\r\n- New Search Bar #526\r\n- Number of Renames Metric to SCMLogParser #621\r\n- Age In Weeks Metric for SCMLogParser #620\r\n\r\n### Changed\r\n\r\n- ToolBar now shows partially cut-off controls if the window is too small #582\r\n- Position of the legendPanel was moved to the bottom-right corner #633\r\n- RibbonBar only opens the three metric section\r\n- Moved Scenario-select to the right in order to use less space\r\n- Moved loading-gif from ribbonBar to toolBar\r\n\r\n### Removed\r\n\r\n- RibbonBar toggle button\r\n\r\n### Fixed\r\n\r\n- FileExtensionBar height to not show a bottom-margin in Chrome\r\n- PointerEvents not being propagated when RibbonBar was extended\r\n- Reduced memory usage of SCMLogParser to avoid OutOfMemory Exception #631\r\n\r\n### Chore\r\n\r\n- [Security] Bump lodash.mergewith from 4.6.1 to 4.6.2 in /visualization\r\n- [Security] Bump lodash from 4.17.11 to 4.17.13 in /visualization\r\n- [Security] Bump fstream from 1.0.11 to 1.0.12 in /visualization\r\n\r\n## [1.29.0] - 2019-07-12\r\n\r\n### Changed\r\n\r\n- Moved Button to reset the map to the center next to the view-cube #606\r\n- Moved FileExtensionBar #527\r\n\r\n### Removed\r\n\r\n- Burger Menu / SideNav #526\r\n\r\n### Fixed\r\n\r\n- Colors in File-Extension-Bar will be displayed in MS Edge and Standlone now #584\r\n\r\n## [1.28.0] - 2019-06-28\r\n\r\n### Added\r\n\r\n- Releasing will now remind the developer to manually add the release notes #533\r\n- StructureModifier to remove and move nodes and set root of projects #547 / #181\r\n\r\n### Changed\r\n\r\n- More informative log messages regarding the success of project merging #547\r\n\r\n### Removed\r\n\r\n- Release Notes are not generated and added automatically to a release #533\r\n\r\n### Fixed\r\n\r\n- Margin will now be set correctly depending on whether dynamicMargin is enabled or not #602\r\n\r\n## [1.27.0] - 2019-06-25\r\n\r\n### Added\r\n\r\n- Automatically generates release notes from changelog and appends it to release #533\r\n- Adds global settings-menu with settings from options panel and weblinks #528\r\n\r\n### Changed\r\n\r\n- Moved File Settings from Ribbon Bar to new File Setting Bar #525\r\n- Rename sample file codemap-nodes #587\r\n- Hide checkbox to select white-positive-buildings in delta state #345\r\n\r\n### Removed\r\n\r\n- Removes Options panel from sidebar #528\r\n- Removes Weblinks panel from sidebar #528\r\n- Removed URL-parameter info from sidebar #525\r\n\r\n### Fixed\r\n\r\n- Unary Metric will no longer be auto-selected when a new map is loaded #579\r\n\r\n## [1.26.0] - 2019-06-14\r\n\r\n### Added\r\n\r\n- FileExtensionBar to show file-distribution of chosen metric #495\r\n- sum icon is now displayed on the left of the metric value #364\r\n- Added Pop-up dialog before downloading file to set filename and see what data will be stored #523\r\n\r\n### Fixed\r\n\r\n- Fix set default ColorRange when resetting color section #560\r\n\r\n## [1.25.1] - 2019-05-30\r\n\r\n### Added\r\n\r\n- SVN log parser keeps track of renaming of files for metric calculation #542\r\n\r\n### Fixed\r\n\r\n- Entries with renaming information in SVN logs are attributed to correct file #542\r\n- Unary metric will no longer be removed from the MetricChooser-Dropdown when a folder was excluded or hidden #548\r\n- Changing margin and then file or mode will no longer freeze the application #524\r\n\r\n### Chore\r\n\r\n- [Security] Bump tar from 2.2.1 to 2.2.2 in /visualization\r\n\r\n## [1.25.0] - 2019-05-17\r\n\r\n### Added\r\n\r\n- Added SonarJava to Source code parser #343\r\n- Added exclude and defaultExclude options to SourceCodeParser #508\r\n- Show loading-gif in ribbonBar when rerendering map\r\n\r\n### Changed\r\n\r\n- Using Sonar Plugins for Source code parser, giving the Sonar Metrics #343\r\n- Use debounced settings update instead of throttled\r\n- Filename of downloaded file now contains time #484\r\n\r\n### Fixed\r\n\r\n- Fixed issue with too long line in ccsh.bat #506\r\n- Prevent downloaded files from having multiple Timestamps #484\r\n- Do not show loadingGif when cancelling the fileChooser #498\r\n- Excluding a building now updates the maximum value of colorRange #355\r\n\r\n### Chore\r\n\r\n- Bump angular-material from 1.1.9 to 1.1.14 in /visualization\r\n- [Security] Bump jquery from 3.3.1 to 3.4.0 in /visualization\r\n\r\n## [1.24.0] - 2019-04-23\r\n\r\n### Removed\r\n\r\n- Settings as URL parameters #470\r\n\r\n### Fixed\r\n\r\n- Fixed issue with trailing slash in URL parameter of SonarImporter #356\r\n\r\n### Chore\r\n\r\n- Bump d3 from 4.13.0 to 5.9.2 in /visualization\r\n- Bump sinon from 4.5.0 to 7.3.1 in /visualization\r\n\r\n## [1.23.0] - 2019-03-22\r\n\r\n### Added\r\n\r\n- Project Name can be specified for merge filter #394\r\n\r\n### Changed\r\n\r\n- Throw a MergeException if project names do not match in MergeFilter #394\r\n\r\n### Fixed\r\n\r\n- Excluded buildings are no longer used for aggregated metric calculation #352\r\n\r\n### Chore\r\n\r\n- Bump browser-sync-webpack-plugin from 1.2.0 to 2.2.2 in /visualization\r\n- Bump @types/node from 8.10.19 to 11.11.3 in /visualization\r\n- Bump html-webpack-plugin from 2.30.1 to 3.2.0 in /visualization\r\n- Bump load-grunt-tasks from 3.5.2 to 4.0.0 in /visualization #444\r\n- Bump ajv from 5.5.2 to 6.10.0 in /visualization #447\r\n- Bump resolve-url-loader from 2.3.0 to 3.0.1 in /visualization #448\r\n\r\n## [1.22.0] - 2019-03-15\r\n\r\n### Added\r\n\r\n- Added buttons to select all/none/inversion of revisions/maps in multiple mode #391\r\n- Merge filter can merge all files of folders #392\r\n\r\n### Fixed\r\n\r\n- Fixed bug that code map was not re-loaded when changing from multiple to single revision mode #396\r\n- Fixed missing apiVersion in aggregated map #398\r\n- Input Fields of color sliders adjust width according to content #409\r\n\r\n### Chore\r\n\r\n- Bump nouislider from 11.1.0 to 13.1.1 in /visualization\r\n- Bump typescript from 2.7.2 to 3.3.3333 in /visualization\r\n- Bump @types/d3 from 4.13.0 to 5.7.1 in /visualization\r\n\r\n## [1.21.2] - 2019-02-26\r\n\r\n### Added\r\n\r\n- When entering Multiple Mode, all Maps/revisions are preselected\r\n\r\n### Fixed\r\n\r\n- Fixing non-existent metric aggregation on root-level when using multiple Files\r\n\r\n## [1.21.1] - 2019-02-22\r\n\r\n### Added\r\n\r\n- Hovering a node in the map also hovers it in the tree view #351\r\n\r\n### Fixed\r\n\r\n- Fixing sync between treeview hovering and map hovering #351\r\n- Folders can no longer be colored in the CodeMap or TreeView #359\r\n\r\n## [1.21.0] - 2019-02-16\r\n\r\n### Added\r\n\r\n- Color searched node names green in TreeView #225\r\n- Add option buttons (three dots) in TreeViewSearch to `Hide` or `Exclude` matching nodes #298\r\n- Show blacklist entry counter in blacklistPanel header #298\r\n- Option checkbox \'Hide Flattened Buildings\' #225\r\n- Hide/Flatten non-searched buildings #225\r\n- Hide/Flatten all buildings, if searchPattern can\'t find any matching nodes #225\r\n- Show maxValue of each metric in metricChooser select list #204\r\n- Colored color-slider inside the RibbonBar #318\r\n- Option to color positive buildings white #311\r\n- Clicking the ribbonBar section-titles toggles the ribbonBar #324\r\n- View-Cube displayed in top right corner #274\r\n- Adding prettier formatter\r\n- Adapt colorRange when changing colorMetric #330\r\n\r\n### Changed\r\n\r\n- Update TreeView filter with search field #225\r\n- Use \'gitignore\' style matching in TreeViewSearch #225\r\n- Reorder `Focus`, `Hide` and `Exclude` buttons in nodeContextMenu #298\r\n- Reorder sidebarPanels (BlacklistPanel beneath TreeViewSearchPanel) #298\r\n- Use `fa-ban`-icon as symbols for blacklistPanel (instead of `fa-list`) #298\r\n- Use `fa-ban`-icon as symbols for blacklistType `Exclude` (instead of `fa-times`) #298\r\n- Label size keeps readable for large maps or a high distance between camera and map #237\r\n- updated dependencies to fix vulnerabilities\r\n- Scenarios only update settings which exist in Scenario and not all #224\r\n- MergeFilter to merge unique blacklist entries #275\r\n- MergeFilter to only merge unique attributeType entries #275\r\n\r\n### Removed\r\n\r\n- Remove invertHeight checkbox in delta-view #306\r\n- Remove option to add blacklist entries from inside the blacklistPanel #298\r\n- Remove statistic functions in Experimental panel #308\r\n\r\n### Fixed\r\n\r\n- CodeMap does not move anymore when navigating in text-fields #307\r\n- Merge blacklist in multipleFile view and convert paths #275\r\n- Show logo in NW.js standalone application #233\r\n\r\n## [1.20.1] - 2018-12-19\r\n\r\nFixed release issues.\r\n\r\n## [1.20.0] - 2018-12-19\r\n\r\n### Added\r\n\r\n- button to unfocus node\r\n- NodeContextMenu: Option to only hide dependent edges\r\n- plop support\r\n\r\n### Changed\r\n\r\n- Renaming \'isolate node\' to \'focus node\'\r\n- Focusing a node does not remove the blacklist items of type Hide\r\n\r\n### Removed\r\n\r\n- NodeContextMenu: Option to \'show all\' nodes, which used to unhide all nodes\r\n\r\n### Fixed\r\n\r\n- Reshow hidden nodes from Treeview or Blacklist\r\n\r\n## [1.19.0] - 2018-11-02\r\n\r\n### Added\r\n\r\n- Deleted files in delta view use their previous area value in order to be visible #254\r\n\r\n### Fixed\r\n\r\n- Buildings in the delta view are not colored correctly #253\r\n- Reset Button in RibbonBar to reset \'Invert Colors\' #255\r\n- Remove lag of \'Invert Color\' checkboxes, when selecting single/delta mode #255\r\n\r\n## [1.18.1] - 2018-10-31\r\n\r\nFixed release issues\r\n\r\n## [1.18.0] - 2018-10-29\r\n\r\n### Added\r\n\r\n- Integration with Jasome through JasomeImporter #245\r\n- URL parameter \'mode\' with the values Single, Multiple or Delta\r\n- Blacklist to persist excluded or hidden nodes #205\r\n- Option to exclude nodes in nodeContextMenu #205\r\n- BlacklistPanel in SettingsSidebar to manage blacklist #205\r\n- Save-Button to download current CodeMap #205\r\n- Publishing visualization on Docker Hub #252\r\n\r\n### Changed\r\n\r\n- No longer fat jar of every subcomponent of analysis, baked into ccsh\r\n- Changed simple syserr write to logger call for analysis #243\r\n\r\n### Removed\r\n\r\n- URL parameter \'delta\' does not exist anymore\r\n\r\n### Fixed\r\n\r\n- Show delta of CodeMap when URL parameter mode=delta is set\r\n\r\n## [1.17.0] - 2018-09-28\r\n\r\n### Changed\r\n\r\n- Invert delta colors moved from color to heigh metric column in ribbon bar #220\r\n- Delta value now as kindOfMap shown #220\r\n- Aggreate maps as multiple rename #220\r\n\r\n### Fixed\r\n\r\n- Single/delta buttons now correctly activated when delta in ulr shown #220\r\n\r\n## [1.17.0] - 2018-09-21\r\n\r\n### Added\r\n\r\n- CodeMaatImport for temporal coupling dependencies #172\r\n- EdgeFilter to aggregate edge-attributes as node-attributes #222\r\n- Option to show and hide dependent edges from node-context-menu #218\r\n\r\n### Changed\r\n\r\n- MergeFilter merges edges #172\r\n\r\n## [1.16.2] - 2018-09-10\r\n\r\n### Fixed\r\n\r\n- missing event in firefox #232\r\n\r\n## [1.16.1] - 2018-08-31\r\n\r\n### Added\r\n\r\n- gitlab + dotnet manual\r\n\r\n## [1.16.0] - 2018-08-31\r\n\r\n### Added\r\n\r\n- add the option to add multiple files via url parameter (e.g. ?file=a&file=b...)\r\n\r\n## [1.15.1] - 2018-08-13\r\n\r\nFixed release issues\r\n\r\n## [1.15.0] - 2018-08-13\r\n\r\n### Added\r\n\r\n- e2e tests are running in CI Environment (headless)\r\n- pupeteer as e2e test framework\r\n- Show names of marked packages in legend\r\n- Added a source code importer that can analyse rloc,mcc for java source code\r\n- keep settings when the user changes a file\r\n- Added option to set white background\r\n\r\n### Removed\r\n\r\n- cypress\r\n\r\n## [1.14.2] - 2018-07-16\r\n\r\n### Changed\r\n\r\n- Changed folder detail metrics from mean to sum\r\n\r\n## [1.14.1] - 2018-07-13\r\n\r\nFixed release issues\r\n\r\n## [1.14.0] - 2018-07-13\r\n\r\n### Added\r\n\r\n- Added UnderstandImporter to Analysis\r\n- Packages can be highlighted in different colors #152\r\n- Adding a context menu with highlighting colors and convenience methods for the tree view and 3D view #155\r\n- Folders and files to highlight can be described in the cc.json #165\r\n- Dynamic/automatic margin computing de/activated by tick\r\n\r\n### Changed\r\n\r\n- Details panel: using the sum of the childrens metrics instead of the mean value\r\n\r\n### Fixed\r\n\r\n- Display buttons do not trigger map changes #185\r\n- Flickering surfaces when zooming out\r\n\r\n## [1.13.0] - 2018-06-08\r\n\r\n### Added\r\n\r\n- Layout switcher #141\r\n- Added CrococosmoImporter to Analysis\r\n- Added type, dirs, name to CSVExporter\r\n- Invert height of building checkbox\r\n- Aggregate multiple maps in visualization #110\r\n- Auto Focus selected map part\r\n- Timmer added to applySettings in SettingsService\r\n\r\n### Changed\r\n\r\n- Crococosmo xml files will now generate a cc.json file for each version\r\n- Suppressing ARIA warnings\r\n- Simplified gradle structure of analysis part\r\n- Deltas added in the metric quick access panel #138\r\n- Ticks and ResetValue Buttons call to onSettingsChange to avoid applySettings timer\r\n- compacting empty middle packages #150\r\n- Detail panel minimized by default\r\n\r\n### Fixed\r\n\r\n- filter by regex shows parent nodes #116\r\n- typo in scss file\r\n\r\n## [1.12.0] - 2018-04-27\r\n\r\n### Added\r\n\r\n- horizontal quick access metric chooser\r\n- Link behind filepath in detailPanel #84\r\n- Double click event-handler on Buildings #84\r\n- Detail Panel can be minimized and maximized\r\n- Settings option to minimize Detail Panel\r\n- cypress as an e2e test runner\r\n\r\n### Removed\r\n\r\n- metric details from legend\r\n- metric chooser from settings panel\r\n\r\n## [1.11.2] - 2018-04-13\r\n\r\n### Fixed\r\n\r\n- a sonar importer bug which prevented the importer to fetch the last page #122\r\n\r\n## [1.11.1] - 2018-04-11\r\n\r\nFixed release issues\r\n\r\n## [1.11.0] - 2018-04-11\r\n\r\n### Added\r\n\r\n- SASS support\r\n- simple regex filter\r\n- Reset Button\r\n- Dialog Service replaces console log calls and window.alert calls\r\n- linking tree view and map hover\r\n- auto fit scene button\r\n- anugularJS material\r\n- Scenarios are now filtered by compatibility for the given map\r\n- Link in visualization #84\r\n\r\n### Removed\r\n\r\n- materialize-css\r\n- grunt\r\n\r\n### Fixed\r\n\r\n- less flickering and artifacts\r\n\r\n## [1.10.0] - 2018-03-22\r\n\r\n### Changed\r\n\r\n- Clean up UI #86\r\n- Updated analysis dependencies\r\n\r\n### Fixed\r\n\r\n- Delta View shows Deltas of itself as non-trivial if nodes have same name #89: Compare deltas by path not name\r\n- Delta calculation performance boost #91\r\n- Problems when intermediate nodes missed metrics #92\r\n- removed unnecessary calculations\r\n- removed bug in SonarImporter that slowed up performance and missed out multiple metrics\r\n- minor bugs\r\n\r\n## [1.9.3] - 2018-02-23\r\n\r\n### Changed\r\n\r\n- sorting treeview by folders and names\r\n\r\n## [1.9.2] - 2018-02-20\r\n\r\n### Added\r\n\r\n- added preliminary CSVExporter for visualisation data\r\n\r\n### Changed\r\n\r\n- padding rendering\r\n- minimal building height is 1 to prevent clipping issues\r\n- fallback values for visualization when no metric is available (area = 1, height = 1, color = grey). Data in data structure will not be changed.\r\n\r\n## [1.9.1] - 2018-02-20\r\n\r\n### Fixed\r\n\r\n- detail panel bug fix\r\n\r\n## [1.9.0] - 2018-02-20\r\n\r\n### Changed\r\n\r\n- moved to unscoped npm packages\r\n\r\n## [1.8.2] - 2018-02-20\r\n\r\n### Changed\r\n\r\n- detail panel background is white now. better visibility\r\n\r\n## [1.8.1] - 2018-02-20\r\n\r\n### Changed\r\n\r\n- revision chooser moved to settings panel and uses now understandable dropdowns instead of links. Part of the #82 proposals\r\n\r\n## [1.8.0] - 2018-02-20\r\n\r\n### Added\r\n\r\n- Experimental dependency support\r\n- loading indicator\r\n- file path to detail panel\r\n- collapsible tree view and visibility/isolation per node toggles\r\n\r\n### Changed\r\n\r\n- added a ray-aabb intersection test before precise testing. Less time is spent in intersection methods.\r\n\r\n### Fixed\r\n\r\n- fixed a minor bug\r\n- canvas mouse event listener are now limited to the canvas dom element. UI events will not trigger the canvas listeners anymore\r\n- canvas mouse events distinguish now between click and drag. Dragging does not reset selection anymore\r\n- slider input #64\r\n- rz slider initialization bug\r\n- increasing test coverage\r\n- deltas where calculated on map loading even though, they were disabled\r\n\r\n## [1.7.2] - 2018-02-02\r\n\r\n### Fixed\r\n\r\n- url to homepage\r\n- analysis package\r\n\r\n## [1.7.1] - 2018-02-02\r\n\r\nFixed release issues\r\n\r\n## [1.7.0] - 2018-02-02\r\n\r\n### Changed\r\n\r\n- npm pachage scoped to @maibornwolff\r\n- Defined further scenarios via json file\r\n- Added description for metrics and scenarios\r\n- using fixed point values in detail panel (ui) to truncate infinite or long decimals\r\n- folders now use the mean attributes of their buildings(leaves)\r\n\r\n### Fixed\r\n\r\n- Bugfix: detail panel should be cleared before setting new details else old values may survive\r\n\r\n## [1.6.7] - 2018-02-01\r\n\r\nFixed release issues\r\n\r\n## [1.6.6] - 2018-02-01\r\n\r\n### Added\r\n\r\n- added anonymous git log generator anongit\r\n- browser demo shows codecharta-visualization sonar analysis\r\n\r\n### Changed\r\n\r\n- rewrote command line interface\r\n- linking ccsh to bin/ccsh will be deleted later\r\n\r\n### Fixed\r\n\r\n- No underscore for scenarios in tooltips #71\r\n\r\n## [1.6.5] - 2018-01-30\r\n\r\nFixed release issues\r\n\r\n## [1.6.4] - 2018-01-30\r\n\r\n### Fixed\r\n\r\n- fixed broken SonarImporter due to jdk9 migration\r\n\r\n## [1.6.3] - 2018-01-26\r\n\r\n### Added\r\n\r\n- added npm publish for analysis\r\n- simple release script for automatic changelog updates, commits, tags, version bumps\r\n\r\n## [1.6.2] - 2018-01-25\r\n\r\n### Added\r\n\r\n- added support for git log --raw and git log --numstat --raw\r\n- added support for git log --numstat and codechurn\r\n- added support for renames in SCMLogParser for git log --name-status\r\n- added support for renames in SCMLogParser for git log --numstat, git log --raw and git log --numstat --raw\r\n- added new SCM experimental metrics range_of_weeks_with_commits and successive_weeks_of_commits\r\n- the file origin of a node is displayed in the details now\r\n- sonarqube analysis on CI build\r\n- npm publish support in visualization\r\n\r\n### Changed\r\n\r\n- Deltas are no longer experimental\r\n- two selected delta maps now merge their nodes correctly. The map where\r\n a node was missing get\'s a copy of this node with metrics=0.\r\n File additions/deletions are therefore only visible when areaMetric is\r\n unary and deltas are activated.\r\n\r\n### Fixed\r\n\r\n- delta display bug for heights\r\n- going back from delta view now correctly removes deltas from node data\r\n- Delta shown although not in delta mode #60\r\n- Allow inversion of delta colors #57\r\n- npm binary error\r\n\r\n## [1.5.2] - 2018-01-04\r\n\r\n### Changed\r\n\r\n- scaling slider now has steps of 0.1. This allows the user to select precise values like 2.0\r\n- updated jdk to jdk9\r\n\r\n### Fixed\r\n\r\n- Opening the same file a second time does not work #53\r\n- added missing require declaration\r\n- added glsl loader in testing environment\r\n- Native Application support is bugged while building in Travis CI #48\r\n\r\n## [1.5.1] - 2017-11-14\r\n\r\n### Added\r\n\r\n- command line parameter to toggle "authors" attribute in SCMLogParser\r\n\r\n### Fixed\r\n\r\n- when passing a file through the "file" parameter in the URL, the map now renders correctly\r\n\r\n## [1.5.0] - 2017-10-24\r\n\r\n### Added\r\n\r\n- experimental delta functionality\r\n- loading multiple maps\r\n- experimental margin slider\r\n\r\n### Changed\r\n\r\n- faster rendering\r\n\r\n### Removed\r\n\r\n- nwjs packages and native apps due to a bug\r\n\r\n### Fixed\r\n\r\n- using color metric instead of height metric for color range slider ceil\r\n\r\n## [1.4.0] - 2017-09-14\r\n\r\n### Added\r\n\r\n- Typescript support\r\n- Browsersync\r\n- added advanced merging strategy "leaf" in MergeFilter\r\n- advanced merging with restructuring\r\n\r\n### Changed\r\n\r\n- Browserify replaced with Webpack\r\n- Better debugging\r\n- Karma instead of Mocha\r\n\r\n## [1.3.2] - 2017-08-18\r\n\r\n### Added\r\n\r\n- add slider controls for color thresholds #19\r\n- Added additional structuring in SonarImporter for multi-module projects\r\n- button to generate current url parameters\r\n- camera position is now a setting (e.g. in scenarios or url parameters)\r\n- margin slider: make it easier to find out to which package/folder a class belongs #20\r\n\r\n### Changed\r\n\r\n- better url parameter resolution (nested parameters are handled correctly)\r\n- changed hover color. Allows better distinction between hover and select\r\n\r\n### Removed\r\n\r\n- obsolete helper grid\r\n\r\n### Fixed\r\n\r\n- changing display or color settings resets scaling #18\r\n- scenario description #32\r\n- Scaling should not scale the labels #35\r\n\r\n## [1.3.1] - 2017-07-05\r\n\r\n### Fixed\r\n\r\n- Prevented override of URL-parameters by default scenario\r\n\r\n## [1.3.0] - 2017-07-05\r\n\r\n### Added\r\n\r\n- Adding simple merge functionality for multiple json files\r\n- Added CSVImporter\r\n- Added Translation for SonarQube metrics\r\n- Added descriptions for metrics\r\n\r\n### Changed\r\n\r\n- Changed uppercase metrics, e.g. RLOC, to lowercase metrics\r\n\r\n### Fixed\r\n\r\n- Simple cc.json does not display anything #17\r\n\r\n## [1.2.0] - 2017-06-19\r\n\r\n### Added\r\n\r\n- Adding Labels and UI\r\n- Support for links to source page of SonarQube in sonarimporter\r\n- Added SCMLogParser\r\n\r\n### Fixed\r\n\r\n- GitHub Issue: legend is wrong #21\r\n\r\n## [1.1.5] - 2017-05-31\r\n\r\n### Fixed\r\n\r\n- Wrong version numbers in analysis part\r\n\r\n## [1.1.4] - 2017-05-26\r\n\r\n### Added\r\n\r\n- Scenarios and default scenario\r\n- Translation API for Metrics\r\n- Metric tooltips in dropdown\r\n\r\n### Fixed\r\n\r\n- GitHub Issue: Sonarimporter crashes with null pointer exception when there is a component without path. #13\r\n\r\n## [1.1.3] - 2017-05-01\r\n\r\n### Added\r\n\r\n- Support for SonarQube Measures-API\r\n- Error logging for sonarqube errors\r\n\r\n### Changed\r\n\r\n- Standard Sonar metric is now complexity,ncloc,functions,duplicated_lines,classes,blocker_violations,generated_lines,bugs,commented_out_code_lines,lines,violations,comment_lines,duplicated_blocks\r\n\r\n## [1.1.2] - 2017-04-28\r\n\r\n### Added\r\n\r\n- Translation API for Metrics\r\n\r\n## [1.1.1] - 2017-04-07\r\n\r\n### Fixed\r\n\r\n- GitHub Issue: Flickering surfaces #3\r\n- GitHub Issue: Unable to install due to readlink error on macOS #4\r\n\r\n## [1.1.0] - 2017-03-27\r\n\r\n### Added\r\n\r\n- SourceMonitorImporter for importing projects from SourceMonitor.\r\n\r\n## [1.0.0] - 2017-03-17\r\n\r\n### Added\r\n\r\n- SonarImporter for importing projects from SonarQube.\r\n- ValidationTool for validating an existing json file.\r\n',{headerIds:!1}).split("\n");const r=this.findVersionLine(i,this.data.currentVersion),o=this.findVersionLine(i,this.data.previousVersion);i=i.slice(r,o+1);const s=["Added \u{1f680}","Fixed \u{1f41e}","Changed","Removed \u{1f5d1}","Chore \u{1f468}\u200d\u{1f4bb} \u{1f469}\u200d\u{1f4bb}"],a={};for(const l of s){const c=new RegExp(`

    ${l}

    `),d=this.getAllIndexes(i,c),u=[];for(const h of d){const f=h+2,A=this.findEndChangesLine(i,h);for(const y of i.slice(f,A))u.push(`${y}
    `)}u.length>0&&(a[l]=u.join("\n"))}return a}getAllIndexes(e,i){return e.reduce((r,o,s)=>(i.test(o)&&r.push(s),r),[])}findVersionLine(e,i){const r=new RegExp(`\\[${i}]`);return e.findIndex(o=>r.test(o))}findEndChangesLine(e,i){return i+e.slice(i+1).findIndex(r=>/

    /.test(r)||/

    /.test(r))}static{this.\u0275fac=function(i){return new(i||n)($(B1))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-change-log-dialog"]],decls:16,vars:5,consts:[["color","primary"],["mat-dialog-content",""],[1,"content"],["mat-dialog-actions",""],["href","https://maibornwolff.github.io/codecharta/news/","target","_blank","rel","noopener noreferrer"],["mat-button","","cdkFocusInitial","",3,"mat-dialog-close"],[3,"innerHTML"]],template:function(i,r){1&i&&(P(0,"mat-toolbar",0),we(1,"Changelog"),H(),P(2,"div",1)(3,"h1"),we(4,"What is new in CodeCharta?"),H(),P(5,"h2"),we(6),H(),P(7,"div",2),Rr(8,fWe,4,2,"div",null,Hr),$e(10,"keyvalue"),H()(),P(11,"div",3)(12,"a",4),we(13,"Know more"),H(),P(14,"button",5),we(15,"CLOSE"),H()()),2&i&&(U(6),lh("",r.data.previousVersion," \u2192 ",r.data.currentVersion,""),U(2),Lr(rt(10,3,r.changes)),U(6),pe("mat-dialog-close",!0))},dependencies:[vs,Mc,ud,Ec,UA,nE],encapsulation:2})}}return n})();function zie(n){const t=n.split(".");return{major:Number.parseInt(t[0])||0,minor:Number.parseInt(t[1])||0,patch:Number.parseInt(t[2])||0}}let qie=(()=>{class n{constructor(e){this.dialog=e,this.version=P1.rE}synchronizeLocalCodeChartaVersion(){const e=localStorage.getItem("codeChartaVersion");null!==e?function pWe(n,t){const e=zie(n),i=zie(t);return e.major===i.major&&e.minor===i.minor&&e.patch===i.patch?0:e.major>i.major?1:e.majori.minor?1:e.minori.patch?1:e.patch{class n{constructor(e,i,r,o,s){this.store=e,this.actions$=i,this.uploadFilesService=r,this.threeRendererService=o,this.codeMapRenderService=s,this.actionsRequiringRender$=this.actions$.pipe(La(...Gie)),this.renderCodeMap$=ho(()=>xh([this.store.select(Bc),this.actionsRequiringRender$]).pipe(Vi(([a])=>!!a.unifiedMapNode),function gWe(n,t=q0,e){const i=PP(n,t);return function AWe(n,t){return le((e,i)=>{const{leading:r=!0,trailing:o=!1}=t??{};let s=!1,a=null,l=null,c=!1;const d=()=>{l?.unsubscribe(),l=null,o&&(f(),c&&i.complete())},u=()=>{l=null,c&&i.complete()},h=A=>l=rs(n(A)).subscribe(Be(i,d,u)),f=()=>{if(s){s=!1;const A=a;a=null,i.next(A),!c&&h(A)}};e.subscribe(Be(i,A=>{s=!0,a=A,(!l||l.closed)&&(r?f():h(A))},()=>{c=!0,(!(o&&s&&l)||l.closed)&&i.complete()}))})}(()=>i,e)}(16.666666666666668,q0,{leading:!1,trailing:!0}),Dr(([a])=>{this.codeMapRenderService.render(a.unifiedMapNode),this.codeMapRenderService.scaleMap(),this.threeRendererService.render()}),Qw()),{dispatch:!1}),this.removeLoadingIndicatorAfterRender$=ho(()=>this.renderCodeMap$.pipe(Vi(()=>!this.uploadFilesService.isUploading),Dr(()=>{this.store.dispatch(Xp({value:!1})),this.store.dispatch($0({value:!1}))})),{dispatch:!1})}static{this.\u0275fac=function(i){return new(i||n)(ge(Xt),ge(sd),ge(ate),ge($i),ge(mJ))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac})}}return n})(),bWe=(()=>{class n{constructor(e,i,r,o){this.store=e,this.renderCodeMapEffect=i,this.threeMapControlsService=r,this.actions$=o,this.autoFitTo$=ho(()=>xh([this.store.select(tu),this.store.select(cne)]).pipe(I1(1),od(this.store.select(lne)),Vi(([,s])=>s),fh(()=>this.renderCodeMapEffect.renderCodeMap$.pipe(zo(1))),Dr(()=>{this.threeMapControlsService.autoFitTo()})),{dispatch:!1}),this.autoFitToWhenResetCameraIfNewFileIsLoadedSetToFalse$=ho(()=>this.actions$.pipe(La("StartWithGlobalOption:resetCameraIfNewFileIsLoadedSetToFalse"),Uw(),fh(()=>this.renderCodeMapEffect.renderCodeMap$.pipe(zo(1))),Dr(()=>{this.threeMapControlsService.autoFitTo()})),{dispatch:!1})}static{this.\u0275fac=function(i){return new(i||n)(ge(Xt),ge(Wie),ge(nc),ge(sd))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac})}}return n})(),vWe=(()=>{class n{constructor(e){this.store=e,this.linkHeightAndColorMetric$=ho(()=>xh([this.store.select(Pw),this.store.select(wN)]).pipe(Vi(([,i])=>i),Ge(([i])=>ld({value:i}))))}static{this.\u0275fac=function(i){return new(i||n)(ge(Xt))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac})}}return n})(),yWe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[gn,Xi]})}}return n})(),wWe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[gn,Xi]})}}return n})(),xWe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[gn,Xi]})}}return n})(),CWe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[gn,hie]})}}return n})(),MWe=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[gn,Xi,yWe,wWe,xWe,CWe]})}}return n})();const fU=Zt(Sie,J_,(n,t)=>n?t.get(n.nodeId):null);function EWe(n,t){if(1&n){const e=Pn();P(0,"button",1),We("click",function(){return Vt(e),Ot(He().flattenNode())}),xe(1,"img",2),we(2," FLATTEN "),H()}}function SWe(n,t){if(1&n){const e=Pn();P(0,"button",3),We("click",function(){return Vt(e),Ot(He().unFlattenNode())}),xe(1,"img",2),we(2," SHOW "),H()}}let TWe=(()=>{class n{constructor(e){this.store=e}flattenNode(){this.store.dispatch(oP({item:{path:this.codeMapNode.path,type:"flatten",nodeType:this.codeMapNode.type}}))}unFlattenNode(){this.store.dispatch(HE({item:{path:this.codeMapNode.path,type:"flatten",nodeType:this.codeMapNode.type}}))}static{this.\u0275fac=function(i){return new(i||n)($(Xt))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-flatten-buttons"]],inputs:{codeMapNode:"codeMapNode"},decls:2,vars:1,consts:[["mat-button","","title","Flatten node and children-nodes, but keep an empty space"],["mat-button","","title","Flatten node and children-nodes, but keep an empty space",3,"click"],["alt","flattenIcon","src","codeCharta/assets/flatten.png",1,"png-icon"],["mat-button","","title","Show node and children-nodes",3,"click"]],template:function(i,r){1&i&&At(0,EWe,3,0,"button",0)(1,SWe,3,0),2&i&&It(0,null!=r.codeMapNode&&r.codeMapNode.isFlattened?1:0)},dependencies:[vs],styles:["button[_ngcontent-%COMP%]{width:100%;text-align:left;margin:0;justify-content:left;line-height:30px;min-height:30px}button[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{min-width:15px}button[_ngcontent-%COMP%] .png-icon[_ngcontent-%COMP%]{width:17px;height:17px;margin:5px auto auto;padding:0;display:inline-block;background-repeat:no-repeat no-repeat;pointer-events:none}"]})}}return n})();const mU=Zt(tc,n=>n.focusedNodePath),$ie=Zt(mU,n=>n[0]);let IWe=(()=>{class n{transform(e,i){if(!e||!i)return{isNodeFocused:!1,isParentFocused:!1};const r=e===i.path;return{isNodeFocused:r,isParentFocused:!r&&i.path.startsWith(e)}}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=dr({name:"isNodeFocused",type:n,pure:!0})}}return n})();function FWe(n,t){if(1&n){const e=Pn();P(0,"button",1),We("click",function(){return Vt(e),Ot(He(2).handleFocusNodeClicked())}),xe(1,"i",2),we(2," FOCUS "),H()}}function DWe(n,t){if(1&n){const e=Pn();P(0,"button",5),We("click",function(){return Vt(e),Ot(He(3).handleUnfocusAllNodesClicked())}),xe(1,"i",2),we(2," UNFOCUS ALL "),H()}}function kWe(n,t){if(1&n){const e=Pn();P(0,"button",3),We("click",function(){return Vt(e),Ot(He(2).handleUnfocusNodeClicked())}),xe(1,"i",2),we(2),H(),At(3,DWe,3,0,"button",4),$e(4,"async")}if(2&n){const e=He(),i=He();U(2),cn(" ",e.isParentFocused?"UNFOCUS PARENT":"UNFOCUS"," "),U(),It(3,rt(4,2,i.hasPreviousFocusedNodePath$)?3:-1)}}function BWe(n,t){if(1&n&&At(0,FWe,3,0,"button",0)(1,kWe,5,4),2&n){const e=t;It(0,e.isNodeFocused?-1:0),U(),It(1,e.isNodeFocused||e.isParentFocused?1:-1)}}let PWe=(()=>{class n{constructor(e){this.store=e,this.currentFocusedNodePath$=this.store.select($ie),this.hasPreviousFocusedNodePath$=this.store.select(mU).pipe(Ge(i=>i.length>1))}handleFocusNodeClicked(){this.store.dispatch(OT({value:this.codeMapNode.path}))}handleUnfocusNodeClicked(){this.store.dispatch(NT())}handleUnfocusAllNodesClicked(){this.store.dispatch(jw())}static{this.\u0275fac=function(i){return new(i||n)($(Xt))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-focus-buttons"]],inputs:{codeMapNode:"codeMapNode"},decls:3,vars:6,consts:[["mat-button","","id","focus-button","title","Only show selected nodes with children-nodes"],["mat-button","","id","focus-button","title","Only show selected nodes with children-nodes",3,"click"],[1,"fa","fa-bullseye"],["mat-button","","aria-label","Remove Focus from node","title","Show previous focused node",3,"click"],["mat-button","","aria-label","Remove Focus from all nodes","title","Show complete map"],["mat-button","","aria-label","Remove Focus from all nodes","title","Show complete map",3,"click"]],template:function(i,r){if(1&i&&(At(0,BWe,2,2),$e(1,"async"),$e(2,"isNodeFocused")),2&i){let o;It(0,(o=Mo(2,3,rt(1,1,r.currentFocusedNodePath$),r.codeMapNode))?0:-1,o)}},dependencies:[vs,Yn,IWe],styles:["button[_ngcontent-%COMP%]{width:100%;text-align:left;margin:0;justify-content:left;line-height:30px;min-height:30px}button[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{min-width:15px}button[_ngcontent-%COMP%] .png-icon[_ngcontent-%COMP%]{width:17px;height:17px;margin:5px auto auto;padding:0;display:inline-block;background-repeat:no-repeat no-repeat;pointer-events:none}"]})}}return n})();function RWe(n,t){if(1&n){const e=Pn();P(0,"button",1),We("click",function(){return Vt(e),Ot(He().addNodeToConstantHighlight())}),xe(1,"i",2),we(2," KEEP HIGHLIGHT "),H()}}function LWe(n,t){if(1&n){const e=Pn();P(0,"button",3),We("click",function(){return Vt(e),Ot(He().removeNodeFromConstantHighlight())}),xe(1,"i",2),we(2," REMOVE HIGHLIGHT "),H()}}let OWe=(()=>{class n{constructor(e,i){this.threeSceneService=e,this.idToBuilding=i}ngOnChanges(e){e.codeMapNode&&(this.isHighlighted=this.calculateIsHighlighted())}addNodeToConstantHighlight(){this.threeSceneService.addNodeAndChildrenToConstantHighlight(this.codeMapNode)}removeNodeFromConstantHighlight(){this.threeSceneService.removeNodeAndChildrenFromConstantHighlight(this.codeMapNode)}calculateIsHighlighted(){if(!this.codeMapNode)return!1;const e=this.idToBuilding.get(this.codeMapNode.id);return!!e&&this.threeSceneService.getConstantHighlight().has(e.id)}static{this.\u0275fac=function(i){return new(i||n)($(Pc),$(Iw))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-highlight-buttons"]],inputs:{codeMapNode:"codeMapNode"},features:[wr],decls:2,vars:1,consts:[["mat-button","","title","Highlight node constantly"],["mat-button","","title","Highlight node constantly",3,"click"],[1,"fa","fa-cubes"],["mat-button","","title","Remove constant highlight",3,"click"]],template:function(i,r){1&i&&At(0,RWe,3,0,"button",0)(1,LWe,3,0),2&i&&It(0,r.isHighlighted?1:0)},dependencies:[vs],styles:["button[_ngcontent-%COMP%]{width:100%;text-align:left;margin:0;justify-content:left;line-height:30px;min-height:30px}button[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{min-width:15px}button[_ngcontent-%COMP%] .png-icon[_ngcontent-%COMP%]{width:17px;height:17px;margin:5px auto auto;padding:0;display:inline-block;background-repeat:no-repeat no-repeat;pointer-events:none}"]})}}return n})();const NWe=Zt(eb,n=>n.markingColors),UWe=Zt(fU,NWe,JY,(n,t,e)=>{if(null===n)return t.map(r=>({color:r,isMarked:!1}));const i=DJ(e,n.path);return t.map(r=>({color:r,isMarked:-1!==i&&r===e[i].color}))});function HWe(n,t){1&n&&xe(0,"i",5)}function VWe(n,t){if(1&n){const e=Pn();P(0,"button",4),We("click",function(){const r=Vt(e).$implicit,o=He(),s=He();return Ot(r.isMarked?s.unmarkFolder(o.path):s.markFolder(o.path,r.color))}),At(1,HWe,1,0,"i",5),H()}if(2&n){const e=t.$implicit;Hi("background-color",e.color),U(),It(1,e.isMarked?1:-1)}}function QWe(n,t){if(1&n){const e=Pn();P(0,"div",1),Rr(1,VWe,2,3,"button",2,Hr),$e(3,"async"),P(4,"cc-color-picker",3),We("onColorChange",function(r){const o=Vt(e);return Ot(He().markFolder(o.path,r))}),H()()}if(2&n){const e=He(),i=Po(3);U(),Lr(rt(3,2,e.markFolderItems$)),U(3),pe("hexColor","#ff0000")("triggerTemplate",i)}}function zWe(n,t){1&n&&xe(0,"div",6)}let qWe=(()=>{class n{constructor(e){this.store=e,this.markFolderItems$=this.store.select(UWe),this.codeMapNode$=this.store.select(fU)}markFolder(e,i){this.store.dispatch(f1({packages:[{path:e,color:i}]}))}unmarkFolder(e){this.store.dispatch(QE({path:e}))}static{this.\u0275fac=function(i){return new(i||n)($(Xt))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-mark-folder-row"]],decls:4,vars:3,consts:[["colorPickerTriggerTemplate",""],[1,"row"],["title","Colorize folder",1,"colorButton",3,"background-color"],[3,"onColorChange","hexColor","triggerTemplate"],["title","Colorize folder",1,"colorButton",3,"click"],[1,"fa","fa-times"],[1,"cc-color-picker-trigger","fa","fa-paint-brush"]],template:function(i,r){if(1&i&&(At(0,QWe,5,4,"div",1),$e(1,"async"),At(2,zWe,1,0,"ng-template",null,0,Qf)),2&i){let o;It(0,(o=rt(1,1,r.codeMapNode$))?0:-1,o)}},dependencies:[mZ,Yn],styles:["[_nghost-%COMP%] .row[_ngcontent-%COMP%]{display:flex}[_nghost-%COMP%] [_ngcontent-%COMP%]:hover{cursor:pointer}[_nghost-%COMP%] .colorButton[_ngcontent-%COMP%]{width:32px;height:32px}[_nghost-%COMP%] .colorButton[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{font-size:25px;display:block;color:red;text-shadow:-1px 0 white,0 1px white,1px 0 white,0 -1px white}[_nghost-%COMP%] cc-color-picker[_ngcontent-%COMP%]{width:32px;height:32px}[_nghost-%COMP%] cc-color-picker[_ngcontent-%COMP%] .cc-color-picker-trigger[_ngcontent-%COMP%]{font-size:25px;margin-top:8px}"]})}}return n})(),GWe=(()=>{class n{constructor(e){this.store=e}excludeNode(){this.store.dispatch(sP({items:[{path:this.codeMapNode.path,type:"exclude",nodeType:this.codeMapNode.type}]}))}static{this.\u0275fac=function(i){return new(i||n)($(Xt))}}static{this.\u0275cmp=vt({type:n,selectors:[["cc-exclude-button"]],inputs:{codeMapNode:"codeMapNode"},decls:3,vars:0,consts:[["mat-button","","id","exclude-button","title","Exclude node and children-nodes and reorder the CodeMap",3,"click"],[1,"fa","fa-ban"]],template:function(i,r){1&i&&(P(0,"button",0),We("click",function(){return r.excludeNode()}),xe(1,"i",1),we(2," EXCLUDE\n"),H())},dependencies:[vs],styles:["button[_ngcontent-%COMP%]{width:100%;text-align:left;margin:0;justify-content:left;line-height:30px;min-height:30px}button[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{min-width:15px}button[_ngcontent-%COMP%] .png-icon[_ngcontent-%COMP%]{width:17px;height:17px;margin:5px auto auto;padding:0;display:inline-block;background-repeat:no-repeat no-repeat;pointer-events:none}"]})}}return n})(),WWe=(()=>{class n{transform(e){return`${0===e.lastIndexOf("/")?"":"..."}${e.slice(e.lastIndexOf("/"))}`}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=dr({name:"lastPartOfNodePath",type:n,pure:!0})}}return n})();function $We(n,t){1&n&&(P(0,"div"),xe(1,"cc-mark-folder-row")(2,"mat-divider"),H())}function jWe(n,t){if(1&n&&(P(0,"mat-card",0),At(1,$We,3,0,"div"),P(2,"div",1)(3,"button",2),we(4),$e(5,"lastPartOfNodePath"),H(),xe(6,"cc-focus-buttons",3)(7,"cc-flatten-buttons",3)(8,"cc-highlight-buttons",3)(9,"cc-exclude-button",3),H()()),2&n){const e=t;U(),It(1,(null==e||null==e.children?null:e.children.length)>0?1:-1),U(2),ka("title",e.path),U(),cn(" ",rt(5,7,e.path)," "),U(2),pe("codeMapNode",e),U(),pe("codeMapNode",e),U(),pe("codeMapNode",e),U(),pe("codeMapNode",e)}}let XWe=(()=>{class n{constructor(e){this.store=e}ngOnInit(){this.codeMapNode$=this.store.select(fU)}static{this.\u0275fac=function(i){return new(i||n)($(Xt))}}static{this.\u0275cmp=vt({type:n,selectors:[["ng-component"]],decls:2,vars:3,consts:[["appearance","outlined","id","codemap-context-menu"],[1,"button-group"],["mat-button","","disabled","true",3,"title"],[3,"codeMapNode"]],template:function(i,r){if(1&i&&(At(0,jWe,10,9,"mat-card",0),$e(1,"async")),2&i){let o;It(0,(o=rt(1,1,r.codeMapNode$))?0:-1,o)}},dependencies:[vs,xO,Nw,TWe,PWe,OWe,qWe,GWe,Yn,WWe],styles:["#codemap-context-menu[_ngcontent-%COMP%]{padding:12px}#codemap-context-menu[_ngcontent-%COMP%] .button-group[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:6px;width:100%}"]})}}return n})(),KWe=(()=>{class n{constructor(e,i){this.overlay=e,this.store=i,this.overlayReference=null,this.close=()=>{document.removeEventListener("click",this.onLeftClickHideNodeContextMenu,!0),document.removeEventListener("mousedown",this.onRightClickHideNodeContextMenu,!0),document.getElementById("codeMap").removeEventListener("wheel",this.close,!0),this.store.dispatch(ib(null)),this.overlayReference&&this.resetOverlay()},this.onLeftClickHideNodeContextMenu=r=>{this.isEventFromColorPicker(r)||this.close()},this.onRightClickHideNodeContextMenu=r=>{2===r.button&&this.close()}}open(e,i){this.overlayReference&&this.resetOverlay();const r=this.overlay.position().flexibleConnectedTo({x:e,y:i}).withPositions([{originX:"end",originY:"bottom",overlayX:"start",overlayY:"top"}]);this.overlayReference=this.overlay.create({positionStrategy:r,scrollStrategy:this.overlay.scrollStrategies.close()}),this.overlayReference.attach(new C1(XWe)),this.overlayReference.overlayElement.addEventListener("contextmenu",o=>{o.preventDefault()}),document.addEventListener("click",this.onLeftClickHideNodeContextMenu,!1),document.addEventListener("mousedown",this.onRightClickHideNodeContextMenu,!0),document.getElementById("codeMap").addEventListener("wheel",this.close,!0)}resetOverlay(){this.overlayReference.dispose(),this.overlayReference=null}isEventFromColorPicker(e){return e.composedPath().some(r=>"CC-COLOR-PICKER"===r?.nodeName||"COLOR-CHROME"===r?.nodeName)}static{this.\u0275fac=function(i){return new(i||n)(ge(Rs),ge(Xt))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),YWe=(()=>{class n{constructor(e,i){this.actions$=e,this.nodeContextMenu=i,this.openNodeContextMenu$=ho(()=>this.actions$.pipe(La(ib),Dr(r=>{r.value&&this.nodeContextMenu.open(r.value.xPositionOfRightClickEvent,r.value.yPositionOfRightClickEvent)})),{dispatch:!1})}static{this.\u0275fac=function(i){return new(i||n)(ge(sd),ge(KWe))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac})}}return n})(),ZWe=(()=>{class n{constructor(e){this.store=e,this.resetSelectedEdgeMetricWhenItDoesntExistAnymore$=ho(()=>this.store.select(Gs).pipe(od(this.store.select(Xh)),Vi(([i,r])=>!i.edgeMetricData.some(o=>o.name===r)),Ge(([i])=>i.edgeMetricData[0]?.name),$y(),Ge(i=>gh({value:i}))))}static{this.\u0275fac=function(i){return new(i||n)(ge(Xt))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac})}}return n})();const t$e=[[VE,f1,QE,aP,nG,iG,nP,iP,tP,rP,oP,UE,HE],[Jy,d1,c1,CJ,VO,SJ,iN,ph,RE,LE,OE,u1,Z3,BE,o1,r1,n1,t1,V0,H0,Vw,em,PE,kE,DE,s1,a1,l1,J3,eP,e1],[Q0,NE,gh,Zd,z0,tm,_1,kJ,jw,OT,NT,_h,h1,ld,Ah],[...t2]].flat();let n$e=(()=>{class n{constructor(e,i){var r=this;this.actions$=e,this.state=i,this.saveCcState$=ho(()=>this.actions$.pipe(Vi(o=>o.type!==nb.type),La(...t$e),G0(500),Dr(B(function*(){const o=r.state.getValue();yield function p_e(n){return gP.apply(this,arguments)}(o)}))),{dispatch:!1})}static{this.\u0275fac=function(i){return new(i||n)(ge(sd),ge(jr))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac})}}return n})(),i$e=(()=>{class n{constructor(e){this.actions$=e,this.setIsLoadingFile$=ho(()=>this.actions$.pipe(La(...t2),Ge(()=>Xp({value:!0})))),this.setIsLoadingMap$=ho(()=>this.actions$.pipe(La(...Gie),Ge(()=>$0({value:!0}))))}static{this.\u0275fac=function(i){return new(i||n)(ge(sd))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac})}}return n})(),r$e=(()=>{class n{constructor(e){this.store=e,this.unfocusNodes$=ho(()=>this.store.select(tu).pipe(Ge(()=>jw())))}static{this.\u0275fac=function(i){return new(i||n)(ge(Xt))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac})}}return n})(),o$e=(()=>{class n{constructor(e){this.store=e,this.resetIsEdgeMetricVisible$=ho(()=>this.store.select(Xh).pipe(od(this.store.select(YN)),Vi(([,i])=>!i),Ge(()=>BE())))}static{this.\u0275fac=function(i){return new(i||n)(ge(Xt))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac})}}return n})();function s$e(n,t){const e=new Map;if(1===n.length)return n[0].settings.fileSettings.edges;for(const i of n)if(i.settings.fileSettings.edges)for(const r of i.settings.fileSettings.edges){const o={fromNodeName:t?Tw(i.fileMeta.fileName,r.fromNodeName):r.fromNodeName,toNodeName:t?Tw(i.fileMeta.fileName,r.toNodeName):r.toNodeName,attributes:nu(r.attributes),visible:r.visible},s=e.get(`${o.fromNodeName}|${o.toNodeName}`);if(void 0!==s)for(const a of Object.keys(o.attributes))s.attributes[a]=o.attributes[a];else e.set(`${o.fromNodeName}|${o.toNodeName}`,o)}return[...e.values()]}function a$e(n,t){if(1===n.length)return n[0].settings.fileSettings.markedPackages;const e=new Map;for(const i of n)if(i.settings.fileSettings.markedPackages)for(const r of i.settings.fileSettings.markedPackages){const o={path:t?_Y(i.fileMeta.fileName,r.path):r.path,color:r.color};e.set(`${o.path}|${o.color}`,o)}return[...e.values()]}function l$e(n,t){const e=new Map;if(1===n.length)return n[0].settings.fileSettings.blacklist;for(const i of n)if(i.settings.fileSettings.blacklist)for(const r of i.settings.fileSettings.blacklist){const o={path:t?_Y(i.fileMeta.fileName,r.path):r.path,type:r.type};e.set(`${o.path}|${o.type}`,o)}return[...e.values()]}function c$e(n){const t={},e={};for(const i of n){for(const r of Object.keys(i.nodes))t[r]||(t[r]=i.nodes[r]);for(const r of Object.keys(i.edges))e[r]||(e[r]=i.edges[r])}return{nodes:t,edges:e}}function d$e(n){const t={};for(const e of n)for(const i of Object.keys(e))t[i]||(t[i]=e[i]);return t}let u$e=(()=>{class n{constructor(e,i){this.actions$=e,this.state=i,this.updateFileSettings$=ho(()=>this.actions$.pipe(La(...t2),Ge(()=>{const r=this.state.getValue(),o=function y_e(n){return GE(n).map(t=>t.file)}(r.files),s=AG(r.files),a=tu(r).map(({file:c})=>c.settings.fileSettings.attributeTypes),l=tu(r).map(({file:c})=>c.settings.fileSettings.attributeDescriptors);return lb({value:{fileSettings:{edges:s$e(o,s),markedPackages:a$e(o,s),blacklist:l$e(o,s),attributeTypes:c$e(a),attributeDescriptors:d$e(l)}}})})))}static{this.\u0275fac=function(i){return new(i||n)(ge(sd),ge(jr))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac})}}return n})(),h$e=(()=>{class n{constructor(e,i){this.store=e,this.state=i,this.updateMapColors$=ho(()=>this.store.select(Sm).pipe(Ge(r=>{const o=this.state.getValue();if(1===o.fileSettings.attributeDescriptors[r]?.direction){const a=JSON.parse(ad(o.appSettings.mapColors)),l=a.negative;return a.negative=a.positive,a.positive=l,ph({value:a})}return ph({value:bu})})))}static{this.\u0275fac=function(i){return new(i||n)(ge(Xt),ge(jr))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac})}}return n})(),f$e=(()=>{class n{constructor(e,i){this.store=e,this.state=i,this.updateVisibleTopLabels$=ho(()=>this.store.select(tu).pipe(I5(),od(this.store.select(vT)),Ge(([[r,o],s])=>{const l=ad(r)===ad(o)?this.state.getValue().appSettings.amountOfTopLabels:pO(s);return em({value:l})})))}static{this.\u0275fac=function(i){return new(i||n)(ge(Xt),ge(jr))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac})}}return n})(),m$e=(()=>{class n{constructor(e,i){this.actions$=e,this.store=i,this.resetColorRange$=ho(()=>this.actions$.pipe(La(...t2),fh(()=>this.store.select($h).pipe(I1(1),zo(1))),Ge(r=>Zd({value:CT(r)})))),this.resetColorRangeOnColorMetricChange$=ho(()=>this.actions$.pipe(La(ld),fh(()=>this.store.select($h).pipe(zo(1))),Ge(r=>Zd({value:CT(r)}))))}static{this.\u0275fac=function(i){return new(i||n)(ge(sd),ge(Xt))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac})}}return n})(),p$e=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n})}static{this.\u0275inj=kt({imports:[gn,Xi]})}}return n})(),A$e=(()=>{class n{constructor(e,i,r){this.actions$=e,this.store=i,this.threeMapControlsService=r,this.focusNode$=ho(()=>this.actions$.pipe(La(OT),od(this.store.select($ie).pipe(dd(null),I5())),Dr(([,[o,s]])=>{o&&!PJ(s,o)?this.threeMapControlsService.unfocusNode(()=>{this.threeMapControlsService.focusNode(s)}):this.threeMapControlsService.focusNode(s)})),{dispatch:!1}),this.unfocus$=ho(()=>this.actions$.pipe(La(NT),od(this.store.select(mU)),Dr(([,o])=>{this.threeMapControlsService.unfocusNode(),0!==o.length&&this.threeMapControlsService.focusNode(o[0])})),{dispatch:!1}),this.unfocusAll$=ho(()=>this.actions$.pipe(La(jw),Dr(()=>{this.threeMapControlsService.unfocusNode()})),{dispatch:!1})}static{this.\u0275fac=function(i){return new(i||n)(ge(sd),ge(Xt),ge(nc))}}static{this.\u0275prov=Bt({token:n,factory:n.\u0275fac})}}return n})(),g$e=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=Rt({type:n,bootstrap:[H9e]})}static{this.\u0275inj=kt({providers:[qie,{provide:R9,useFactory:e=>()=>e.synchronizeLocalCodeChartaVersion(),deps:[qie],multi:!0}],imports:[_Q,JQ,F0e.forRoot(rOe,{metaReducers:[oOe]}),Z0e.forRoot([r$e,xie,YWe,Zqe,m$e,qHe,o$e,Wie,bWe,f$e,vWe,ZWe,u$e,i$e,n$e,cbe,h$e,A$e]),Xi,rd,Gy,p$e,jGe,MWe]})}}return n})();typeof window<"u"&&!window.__TEST_ENVIRONMENT__&&Jme().bootstrapModule(g$e)},7172:(ht,Fe,p)=>{"use strict";var Q=p(6685),B=p(5841),m=p(8493),z=p(2420),D=p(8861),F=p(7741),q=p(8930),T=p(2615),G=p(1677);ht.exports=ee,ee.prototype.validate=function Te(et,Lt){var Kt;if("string"==typeof et){if(!(Kt=this.getSchema(et)))throw new Error('no schema with key or ref "'+et+'"')}else{var In=this._addSchema(et);Kt=In.validate||this._compile(In)}var Yt=Kt(Lt);return!0!==Kt.$async&&(this.errors=Kt.errors),Yt},ee.prototype.compile=function qe(et,Lt){var Kt=this._addSchema(et,void 0,Lt);return Kt.validate||this._compile(Kt)},ee.prototype.addSchema=function De(et,Lt,Kt,In){if(Array.isArray(et)){for(var Yt=0;Yt{"use strict";var Fe=ht.exports=function(){this._cache={}};Fe.prototype.put=function(Q,B){this._cache[Q]=B},Fe.prototype.get=function(Q){return this._cache[Q]},Fe.prototype.del=function(Q){delete this._cache[Q]},Fe.prototype.clear=function(){this._cache={}}},4442:(ht,Fe,p)=>{"use strict";var Q=p(8892).MissingRef;ht.exports=function B(m,z,D){var F=this;if("function"!=typeof this._opts.loadSchema)throw new Error("options.loadSchema should be a function");"function"==typeof z&&(D=z,z=void 0);var q=T(m).then(function(){var N=F._addSchema(m,void 0,z);return N.validate||G(N)});return D&&q.then(function(N){D(null,N)},D),q;function T(N){var j=N.$schema;return j&&!F.getSchema(j)?B.call(F,{$ref:j},!0):Promise.resolve()}function G(N){try{return F._compile(N)}catch(L){if(L instanceof Q)return function j(L){var X=L.missingSchema;if(Te(X))throw new Error("Schema "+X+" is loaded but "+L.missingRef+" cannot be resolved");var te=F._loadingSchemas[X];return te||(te=F._loadingSchemas[X]=F._opts.loadSchema(X)).then(ee,ee),te.then(function(qe){if(!Te(X))return T(qe).then(function(){Te(X)||F.addSchema(qe,X,void 0,z)})}).then(function(){return G(N)});function ee(){delete F._loadingSchemas[X]}function Te(qe){return F._refs[qe]||F._schemas[qe]}}(L);throw L}}}},8892:(ht,Fe,p)=>{"use strict";var Q=p(5841);function m(D,F,q){this.message=q||m.message(D,F),this.missingRef=Q.url(D,F),this.missingSchema=Q.normalizeId(Q.fullPath(this.missingRef))}function z(D){return D.prototype=Object.create(Error.prototype),D.prototype.constructor=D,D}ht.exports={Validation:z(function B(D){this.message="validation failed",this.errors=D,this.ajv=this.validation=!0}),MissingRef:z(m)},m.message=function(D,F){return"can't resolve reference "+F+" from id "+D}},7741:(ht,Fe,p)=>{"use strict";var Q=p(1677),B=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,m=[0,31,28,31,30,31,30,31,31,30,31,30,31],z=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d(?::?\d\d)?)?$/i,D=/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,F=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,T=/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,G=/^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i,N=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,j=/^(?:\/(?:[^~/]|~0|~1)*)*$/,L=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,X=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;function te(Ve){return Q.copy(te[Ve="full"==Ve?"full":"fast"])}function Te(Ve){var st=Ve.match(B);if(!st)return!1;var ke=+st[2],he=+st[3];return ke>=1&&ke<=12&&he>=1&&he<=(2==ke&&function ee(Ve){return Ve%4==0&&(Ve%100!=0||Ve%400==0)}(+st[1])?29:m[ke])}function qe(Ve,st){var je=Ve.match(z);if(!je)return!1;var ke=je[1],he=je[2],Ue=je[3];return(ke<=23&&he<=59&&Ue<=59||23==ke&&59==he&&60==Ue)&&(!st||je[5])}ht.exports=te,te.fast={date:/^\d\d\d\d-[0-1]\d-[0-3]\d$/,time:/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,"date-time":/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,"uri-template":T,url:G,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,hostname:D,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:nt,uuid:N,"json-pointer":j,"json-pointer-uri-fragment":L,"relative-json-pointer":X},te.full={date:Te,time:qe,"date-time":function Je(Ve){var st=Ve.split(De);return 2==st.length&&Te(st[0])&&qe(st[1],!0)},uri:function Le(Ve){return tt.test(Ve)&&F.test(Ve)},"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":T,url:G,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:D,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:nt,uuid:N,"json-pointer":j,"json-pointer-uri-fragment":L,"relative-json-pointer":X};var De=/t|\s/i,tt=/\/|:/,gt=/[^\\]\\Z/;function nt(Ve){if(gt.test(Ve))return!1;try{return new RegExp(Ve),!0}catch{return!1}}},6685:(ht,Fe,p)=>{"use strict";var Q=p(5841),B=p(1677),m=p(8892),z=p(8861),D=p(604),F=B.ucs2length,q=p(362),T=m.Validation;function N(De,Je,tt){var Le=L.call(this,De,Je,tt);return Le>=0?{index:Le,compiling:!0}:(this._compilations[Le=this._compilations.length]={schema:De,root:Je,baseId:tt},{index:Le,compiling:!1})}function j(De,Je,tt){var Le=L.call(this,De,Je,tt);Le>=0&&this._compilations.splice(Le,1)}function L(De,Je,tt){for(var Le=0;Le{"use strict";var Q=p(5568),B=p(362),m=p(1677),z=p(2420),D=p(4331);function F(Le,gt,nt){var Ve=this._refs[nt];if("string"==typeof Ve){if(!this._refs[Ve])return F.call(this,Le,gt,Ve);Ve=this._refs[Ve]}if((Ve=Ve||this._schemas[nt])instanceof z)return L(Ve.schema,this._opts.inlineRefs)?Ve.schema:Ve.validate||this._compile(Ve);var je,ke,he,st=q.call(this,gt,nt);return st&&(je=st.schema,gt=st.root,he=st.baseId),je instanceof z?ke=je.validate||Le.call(this,je.schema,gt,void 0,he):void 0!==je&&(ke=L(je,this._opts.inlineRefs)?je:Le.call(this,je,gt,void 0,he)),ke}function q(Le,gt){var nt=Q.parse(gt),Ve=Te(nt),st=ee(this._getId(Le.schema));if(0===Object.keys(Le.schema).length||Ve!==st){var je=De(Ve),ke=this._refs[je];if("string"==typeof ke)return T.call(this,Le,ke,nt);if(ke instanceof z)ke.validate||this._compile(ke),Le=ke;else{if(!((ke=this._schemas[je])instanceof z))return;if(ke.validate||this._compile(ke),je==De(gt))return{schema:ke,root:Le,baseId:st};Le=ke}if(!Le.schema)return;st=ee(this._getId(Le.schema))}return N.call(this,nt,st,Le.schema,Le)}function T(Le,gt,nt){var Ve=q.call(this,Le,gt);if(Ve){var st=Ve.schema,je=Ve.baseId;Le=Ve.root;var ke=this._getId(st);return ke&&(je=Je(je,ke)),N.call(this,nt,je,st,Le)}}ht.exports=F,F.normalizeId=De,F.fullPath=ee,F.url=Je,F.ids=function tt(Le){var gt=De(this._getId(Le)),nt={"":gt},Ve={"":ee(gt,!1)},st={},je=this;return D(Le,{allKeys:!0},function(ke,he,Ue,it,Ne,pt,Et){if(""!==he){var Qt=je._getId(ke),Wt=nt[it],Sn=Ve[it]+"/"+Ne;if(void 0!==Et&&(Sn+="/"+("number"==typeof Et?Et:m.escapeFragment(Et))),"string"==typeof Qt){Qt=Wt=De(Wt?Q.resolve(Wt,Qt):Qt);var Nn=je._refs[Qt];if("string"==typeof Nn&&(Nn=je._refs[Nn]),Nn&&Nn.schema){if(!B(ke,Nn.schema))throw new Error('id "'+Qt+'" resolves to more than one schema')}else if(Qt!=De(Sn))if("#"==Qt[0]){if(st[Qt]&&!B(ke,st[Qt]))throw new Error('id "'+Qt+'" resolves to more than one schema');st[Qt]=ke}else je._refs[Qt]=Sn}nt[he]=Wt,Ve[he]=Sn}}),st},F.inlineRef=L,F.schema=q;var G=m.toHash(["properties","patternProperties","enum","dependencies","definitions"]);function N(Le,gt,nt,Ve){if(Le.fragment=Le.fragment||"","/"==Le.fragment.slice(0,1)){for(var st=Le.fragment.split("/"),je=1;je{"use strict";var Q=p(2956),B=p(1677).toHash;ht.exports=function(){var z=[{type:"number",rules:[{maximum:["exclusiveMaximum"]},{minimum:["exclusiveMinimum"]},"multipleOf","format"]},{type:"string",rules:["maxLength","minLength","pattern","format"]},{type:"array",rules:["maxItems","minItems","items","contains","uniqueItems"]},{type:"object",rules:["maxProperties","minProperties","required","dependencies","propertyNames",{properties:["additionalProperties","patternProperties"]}]},{rules:["$ref","const","enum","not","anyOf","oneOf","allOf","if"]}],D=["type","$comment"];return z.all=B(D),z.types=B(["number","integer","string","array","object","boolean","null"]),z.forEach(function(T){T.rules=T.rules.map(function(G){var N;if("object"==typeof G){var j=Object.keys(G)[0];N=G[j],G=j,N.forEach(function(X){D.push(X),z.all[X]=!0})}return D.push(G),z.all[G]={keyword:G,code:Q[G],implements:N}}),z.all.$comment={keyword:"$comment",code:Q.$comment},T.type&&(z.types[T.type]=T)}),z.keywords=B(D.concat(["$schema","$id","id","$data","$async","title","description","default","definitions","examples","readOnly","writeOnly","contentMediaType","contentEncoding","additionalItems","then","else"])),z.custom={},z}},2420:(ht,Fe,p)=>{"use strict";var Q=p(1677);ht.exports=function B(m){Q.copy(m,this)}},1132:ht=>{"use strict";ht.exports=function(p){for(var z,Q=0,B=p.length,m=0;m=55296&&z<=56319&&m{"use strict";function B(ke,he,Ue,it){var Ne=it?" !== ":" === ",pt=it?" || ":" && ",Et=it?"!":"",Qt=it?"":"!";switch(ke){case"null":return he+Ne+"null";case"array":return Et+"Array.isArray("+he+")";case"object":return"("+Et+he+pt+"typeof "+he+Ne+'"object"'+pt+Qt+"Array.isArray("+he+"))";case"integer":return"(typeof "+he+Ne+'"number"'+pt+Qt+"("+he+" % 1)"+pt+he+Ne+he+(Ue?pt+Et+"isFinite("+he+")":"")+")";case"number":return"(typeof "+he+Ne+'"'+ke+'"'+(Ue?pt+Et+"isFinite("+he+")":"")+")";default:return"typeof "+he+Ne+'"'+ke+'"'}}ht.exports={copy:function Q(ke,he){for(var Ue in he=he||{},ke)he[Ue]=ke[Ue];return he},checkDataType:B,checkDataTypes:function m(ke,he,Ue){if(1===ke.length)return B(ke[0],he,Ue,!0);var it="",Ne=F(ke);for(var pt in Ne.array&&Ne.object&&(it=Ne.null?"(":"(!"+he+" || ",it+="typeof "+he+' !== "object")',delete Ne.null,delete Ne.array,delete Ne.object),Ne.number&&delete Ne.integer,Ne)it+=(it?" && ":"")+B(pt,he,Ue,!0);return it},coerceToTypes:function D(ke,he){if(Array.isArray(he)){for(var Ue=[],it=0;it=he)throw new Error("Cannot access property/index "+it+" levels up, current level is "+he);return Ue[he-it]}if(it>he)throw new Error("Cannot access data "+it+" levels up, current level is "+he);if(pt="data"+(he-it||""),!Ne)return pt}for(var Qt=pt,Wt=Ne.split("/"),Sn=0;Sn{"use strict";var Fe=["multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","additionalItems","maxItems","minItems","uniqueItems","maxProperties","minProperties","required","additionalProperties","enum","format","const"];ht.exports=function(p,Q){for(var B=0;B{"use strict";var Q=p(8198);ht.exports={$id:"https://github.com/ajv-validator/ajv/blob/master/lib/definition_schema.js",definitions:{simpleTypes:Q.definitions.simpleTypes},type:"object",dependencies:{schema:["validate"],$data:["validate"],statements:["inline"],valid:{not:{required:["macro"]}}},properties:{type:Q.properties.type,schema:{type:"boolean"},statements:{type:"boolean"},dependencies:{type:"array",items:{type:"string"}},metaSchema:{type:"object"},modifying:{type:"boolean"},valid:{type:"boolean"},$data:{type:"boolean"},async:{type:"boolean"},errors:{anyOf:[{type:"boolean"},{const:"full"}]}}}},9402:ht=>{"use strict";ht.exports=function(p,Q,B){var L,m=" ",z=p.level,D=p.dataLevel,F=p.schema[Q],q=p.schemaPath+p.util.getProperty(Q),T=p.errSchemaPath+"/"+Q,G=!p.opts.allErrors,N="data"+(D||""),j=p.opts.$data&&F&&F.$data;j?(m+=" var schema"+z+" = "+p.util.getData(F.$data,D,p.dataPathArr)+"; ",L="schema"+z):L=F;var X="maximum"==Q,te=X?"exclusiveMaximum":"exclusiveMinimum",ee=p.schema[te],Te=p.opts.$data&&ee&&ee.$data,qe=X?"<":">",De=X?">":"<",Je=void 0;if(!j&&"number"!=typeof F&&void 0!==F)throw new Error(Q+" must be number");if(!Te&&void 0!==ee&&"number"!=typeof ee&&"boolean"!=typeof ee)throw new Error(te+" must be number or boolean");if(Te){var je,tt=p.util.getData(ee.$data,D,p.dataPathArr),Le="exclusive"+z,gt="exclType"+z,nt="exclIsNumber"+z,st="' + "+(Ve="op"+z)+" + '";m+=" var schemaExcl"+z+" = "+tt+"; ",Je=te,(je=je||[]).push(m+=" var "+Le+"; var "+gt+" = typeof "+(tt="schemaExcl"+z)+"; if ("+gt+" != 'boolean' && "+gt+" != 'undefined' && "+gt+" != 'number') { "),m="",!1!==p.createErrors?(m+=" { keyword: '"+(Je||"_exclusiveLimit")+"' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: {} ",!1!==p.opts.messages&&(m+=" , message: '"+te+" should be boolean' "),p.opts.verbose&&(m+=" , schema: validate.schema"+q+" , parentSchema: validate.schema"+p.schemaPath+" , data: "+N+" "),m+=" } "):m+=" {} ";var ke=m;m=je.pop(),m+=!p.compositeRule&&G?p.async?" throw new ValidationError(["+ke+"]); ":" validate.errors = ["+ke+"]; return false; ":" var err = "+ke+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",m+=" } else if ( ",j&&(m+=" ("+L+" !== undefined && typeof "+L+" != 'number') || "),m+=" "+gt+" == 'number' ? ( ("+Le+" = "+L+" === undefined || "+tt+" "+qe+"= "+L+") ? "+N+" "+De+"= "+tt+" : "+N+" "+De+" "+L+" ) : ( ("+Le+" = "+tt+" === true) ? "+N+" "+De+"= "+L+" : "+N+" "+De+" "+L+" ) || "+N+" !== "+N+") { var op"+z+" = "+Le+" ? '"+qe+"' : '"+qe+"='; ",void 0===F&&(Je=te,T=p.errSchemaPath+"/"+te,L=tt,j=Te)}else if(st=qe,(nt="number"==typeof ee)&&j){var Ve="'"+st+"'";m+=" if ( ",j&&(m+=" ("+L+" !== undefined && typeof "+L+" != 'number') || "),m+=" ( "+L+" === undefined || "+ee+" "+qe+"= "+L+" ? "+N+" "+De+"= "+ee+" : "+N+" "+De+" "+L+" ) || "+N+" !== "+N+") { "}else nt&&void 0===F?(Le=!0,Je=te,T=p.errSchemaPath+"/"+te,L=ee,De+="="):(nt&&(L=Math[X?"min":"max"](ee,F)),ee===(!nt||L)?(Le=!0,Je=te,T=p.errSchemaPath+"/"+te,De+="="):(Le=!1,st+="=")),Ve="'"+st+"'",m+=" if ( ",j&&(m+=" ("+L+" !== undefined && typeof "+L+" != 'number') || "),m+=" "+N+" "+De+" "+L+" || "+N+" !== "+N+") { ";return Je=Je||Q,(je=je||[]).push(m),m="",!1!==p.createErrors?(m+=" { keyword: '"+(Je||"_limit")+"' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { comparison: "+Ve+", limit: "+L+", exclusive: "+Le+" } ",!1!==p.opts.messages&&(m+=" , message: 'should be "+st+" ",m+=j?"' + "+L:L+"'"),p.opts.verbose&&(m+=" , schema: ",m+=j?"validate.schema"+q:""+F,m+=" , parentSchema: validate.schema"+p.schemaPath+" , data: "+N+" "),m+=" } "):m+=" {} ",ke=m,m=je.pop(),m+=!p.compositeRule&&G?p.async?" throw new ValidationError(["+ke+"]); ":" validate.errors = ["+ke+"]; return false; ":" var err = "+ke+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",m+=" } ",G&&(m+=" else { "),m}},3792:ht=>{"use strict";ht.exports=function(p,Q,B){var L,m=" ",z=p.level,D=p.dataLevel,F=p.schema[Q],q=p.schemaPath+p.util.getProperty(Q),T=p.errSchemaPath+"/"+Q,G=!p.opts.allErrors,N="data"+(D||""),j=p.opts.$data&&F&&F.$data;if(j?(m+=" var schema"+z+" = "+p.util.getData(F.$data,D,p.dataPathArr)+"; ",L="schema"+z):L=F,!j&&"number"!=typeof F)throw new Error(Q+" must be number");m+="if ( ",j&&(m+=" ("+L+" !== undefined && typeof "+L+" != 'number') || ");var te=Q,ee=ee||[];ee.push(m+=" "+N+".length "+("maxItems"==Q?">":"<")+" "+L+") { "),m="",!1!==p.createErrors?(m+=" { keyword: '"+(te||"_limitItems")+"' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { limit: "+L+" } ",!1!==p.opts.messages&&(m+=" , message: 'should NOT have ",m+="maxItems"==Q?"more":"fewer",m+=" than ",m+=j?"' + "+L+" + '":""+F,m+=" items' "),p.opts.verbose&&(m+=" , schema: ",m+=j?"validate.schema"+q:""+F,m+=" , parentSchema: validate.schema"+p.schemaPath+" , data: "+N+" "),m+=" } "):m+=" {} ";var Te=m;return m=ee.pop(),m+=!p.compositeRule&&G?p.async?" throw new ValidationError(["+Te+"]); ":" validate.errors = ["+Te+"]; return false; ":" var err = "+Te+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",m+="} ",G&&(m+=" else { "),m}},3226:ht=>{"use strict";ht.exports=function(p,Q,B){var L,m=" ",z=p.level,D=p.dataLevel,F=p.schema[Q],q=p.schemaPath+p.util.getProperty(Q),T=p.errSchemaPath+"/"+Q,G=!p.opts.allErrors,N="data"+(D||""),j=p.opts.$data&&F&&F.$data;if(j?(m+=" var schema"+z+" = "+p.util.getData(F.$data,D,p.dataPathArr)+"; ",L="schema"+z):L=F,!j&&"number"!=typeof F)throw new Error(Q+" must be number");m+="if ( ",j&&(m+=" ("+L+" !== undefined && typeof "+L+" != 'number') || "),m+=!1===p.opts.unicode?" "+N+".length ":" ucs2length("+N+") ";var te=Q,ee=ee||[];ee.push(m+=" "+("maxLength"==Q?">":"<")+" "+L+") { "),m="",!1!==p.createErrors?(m+=" { keyword: '"+(te||"_limitLength")+"' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { limit: "+L+" } ",!1!==p.opts.messages&&(m+=" , message: 'should NOT be ",m+="maxLength"==Q?"longer":"shorter",m+=" than ",m+=j?"' + "+L+" + '":""+F,m+=" characters' "),p.opts.verbose&&(m+=" , schema: ",m+=j?"validate.schema"+q:""+F,m+=" , parentSchema: validate.schema"+p.schemaPath+" , data: "+N+" "),m+=" } "):m+=" {} ";var Te=m;return m=ee.pop(),m+=!p.compositeRule&&G?p.async?" throw new ValidationError(["+Te+"]); ":" validate.errors = ["+Te+"]; return false; ":" var err = "+Te+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",m+="} ",G&&(m+=" else { "),m}},2119:ht=>{"use strict";ht.exports=function(p,Q,B){var L,m=" ",z=p.level,D=p.dataLevel,F=p.schema[Q],q=p.schemaPath+p.util.getProperty(Q),T=p.errSchemaPath+"/"+Q,G=!p.opts.allErrors,N="data"+(D||""),j=p.opts.$data&&F&&F.$data;if(j?(m+=" var schema"+z+" = "+p.util.getData(F.$data,D,p.dataPathArr)+"; ",L="schema"+z):L=F,!j&&"number"!=typeof F)throw new Error(Q+" must be number");m+="if ( ",j&&(m+=" ("+L+" !== undefined && typeof "+L+" != 'number') || ");var te=Q,ee=ee||[];ee.push(m+=" Object.keys("+N+").length "+("maxProperties"==Q?">":"<")+" "+L+") { "),m="",!1!==p.createErrors?(m+=" { keyword: '"+(te||"_limitProperties")+"' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { limit: "+L+" } ",!1!==p.opts.messages&&(m+=" , message: 'should NOT have ",m+="maxProperties"==Q?"more":"fewer",m+=" than ",m+=j?"' + "+L+" + '":""+F,m+=" properties' "),p.opts.verbose&&(m+=" , schema: ",m+=j?"validate.schema"+q:""+F,m+=" , parentSchema: validate.schema"+p.schemaPath+" , data: "+N+" "),m+=" } "):m+=" {} ";var Te=m;return m=ee.pop(),m+=!p.compositeRule&&G?p.async?" throw new ValidationError(["+Te+"]); ":" validate.errors = ["+Te+"]; return false; ":" var err = "+Te+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",m+="} ",G&&(m+=" else { "),m}},9218:ht=>{"use strict";ht.exports=function(p,Q,B){var m=" ",z=p.schema[Q],D=p.schemaPath+p.util.getProperty(Q),F=p.errSchemaPath+"/"+Q,q=!p.opts.allErrors,T=p.util.copy(p),G="";T.level++;var N="valid"+T.level,j=T.baseId,L=!0,X=z;if(X)for(var te,ee=-1,Te=X.length-1;ee0||!1===te:p.util.schemaHasRules(te,p.RULES.all))&&(L=!1,T.schema=te,T.schemaPath=D+"["+ee+"]",T.errSchemaPath=F+"/"+ee,m+=" "+p.validate(T)+" ",T.baseId=j,q&&(m+=" if ("+N+") { ",G+="}"));return q&&(m+=L?" if (true) { ":" "+G.slice(0,-1)+" "),m}},3883:ht=>{"use strict";ht.exports=function(p,Q,B){var m=" ",z=p.level,D=p.dataLevel,F=p.schema[Q],q=p.schemaPath+p.util.getProperty(Q),T=p.errSchemaPath+"/"+Q,G=!p.opts.allErrors,N="data"+(D||""),j="valid"+z,L="errs__"+z,X=p.util.copy(p),te="";X.level++;var ee="valid"+X.level;if(F.every(function(nt){return p.opts.strictKeywords?"object"==typeof nt&&Object.keys(nt).length>0||!1===nt:p.util.schemaHasRules(nt,p.RULES.all)})){var qe=X.baseId;m+=" var "+L+" = errors; var "+j+" = false; ";var De=p.compositeRule;p.compositeRule=X.compositeRule=!0;var Je=F;if(Je)for(var tt,Le=-1,gt=Je.length-1;Le{"use strict";ht.exports=function(p,Q,B){var m=" ",D=p.errSchemaPath+"/"+Q,q=p.util.toQuotedString(p.schema[Q]);return!0===p.opts.$comment?m+=" console.log("+q+");":"function"==typeof p.opts.$comment&&(m+=" self._opts.$comment("+q+", "+p.util.toQuotedString(D)+", validate.root.schema);"),m}},439:ht=>{"use strict";ht.exports=function(p,Q,B){var m=" ",z=p.level,D=p.dataLevel,F=p.schema[Q],q=p.schemaPath+p.util.getProperty(Q),T=p.errSchemaPath+"/"+Q,G=!p.opts.allErrors,N="data"+(D||""),j="valid"+z,L=p.opts.$data&&F&&F.$data;L&&(m+=" var schema"+z+" = "+p.util.getData(F.$data,D,p.dataPathArr)+"; "),L||(m+=" var schema"+z+" = validate.schema"+q+";");var te=te||[];te.push(m+="var "+j+" = equal("+N+", schema"+z+"); if (!"+j+") { "),m="",!1!==p.createErrors?(m+=" { keyword: 'const' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { allowedValue: schema"+z+" } ",!1!==p.opts.messages&&(m+=" , message: 'should be equal to constant' "),p.opts.verbose&&(m+=" , schema: validate.schema"+q+" , parentSchema: validate.schema"+p.schemaPath+" , data: "+N+" "),m+=" } "):m+=" {} ";var ee=m;return m=te.pop(),m+=!p.compositeRule&&G?p.async?" throw new ValidationError(["+ee+"]); ":" validate.errors = ["+ee+"]; return false; ":" var err = "+ee+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",m+=" }",G&&(m+=" else { "),m}},7939:ht=>{"use strict";ht.exports=function(p,Q,B){var m=" ",z=p.level,D=p.dataLevel,F=p.schema[Q],q=p.schemaPath+p.util.getProperty(Q),T=p.errSchemaPath+"/"+Q,G=!p.opts.allErrors,N="data"+(D||""),j="valid"+z,L="errs__"+z,X=p.util.copy(p);X.level++;var ee="valid"+X.level,Te="i"+z,qe=X.dataLevel=p.dataLevel+1,De="data"+qe,Je=p.baseId,tt=p.opts.strictKeywords?"object"==typeof F&&Object.keys(F).length>0||!1===F:p.util.schemaHasRules(F,p.RULES.all);if(m+="var "+L+" = errors;var "+j+";",tt){var Le=p.compositeRule;p.compositeRule=X.compositeRule=!0,X.schema=F,X.schemaPath=q,X.errSchemaPath=T,m+=" var "+ee+" = false; for (var "+Te+" = 0; "+Te+" < "+N+".length; "+Te+"++) { ",X.errorPath=p.util.getPathExpr(p.errorPath,Te,p.opts.jsonPointers,!0);var gt=N+"["+Te+"]";X.dataPathArr[qe]=Te;var nt=p.validate(X);X.baseId=Je,p.util.varOccurences(nt,De)<2?m+=" "+p.util.varReplace(nt,De,gt)+" ":m+=" var "+De+" = "+gt+"; "+nt+" ",m+=" if ("+ee+") break; } ",p.compositeRule=X.compositeRule=Le,m+=" if (!"+ee+") {"}else m+=" if ("+N+".length == 0) {";var Ve=Ve||[];Ve.push(m),m="",!1!==p.createErrors?(m+=" { keyword: 'contains' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: {} ",!1!==p.opts.messages&&(m+=" , message: 'should contain a valid item' "),p.opts.verbose&&(m+=" , schema: validate.schema"+q+" , parentSchema: validate.schema"+p.schemaPath+" , data: "+N+" "),m+=" } "):m+=" {} ";var st=m;return m=Ve.pop(),m+=!p.compositeRule&&G?p.async?" throw new ValidationError(["+st+"]); ":" validate.errors = ["+st+"]; return false; ":" var err = "+st+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",m+=" } else { ",tt&&(m+=" errors = "+L+"; if (vErrors !== null) { if ("+L+") vErrors.length = "+L+"; else vErrors = null; } "),p.opts.allErrors&&(m+=" } "),m}},5237:ht=>{"use strict";ht.exports=function(p,Q,B){var N,ee,m=" ",z=p.level,D=p.dataLevel,F=p.schema[Q],q=p.schemaPath+p.util.getProperty(Q),T=p.errSchemaPath+"/"+Q,G=!p.opts.allErrors,j="data"+(D||""),L="valid"+z,X="errs__"+z,te=p.opts.$data&&F&&F.$data;te?(m+=" var schema"+z+" = "+p.util.getData(F.$data,D,p.dataPathArr)+"; ",ee="schema"+z):ee=F;var tt,Le,gt,nt,Ve,Te=this,qe="definition"+z,De=Te.definition,Je="";if(te&&De.$data){var st=De.validateSchema;m+=" var "+qe+" = RULES.custom['"+Q+"'].definition; var "+(Ve="keywordValidate"+z)+" = "+qe+".validate;"}else{if(!(nt=p.useCustomRule(Te,F,p.schema,p)))return;ee="validate.schema"+q,Ve=nt.code,tt=De.compile,Le=De.inline,gt=De.macro}var je=Ve+".errors",ke="i"+z,he="ruleErr"+z,Ue=De.async;if(Ue&&!p.async)throw new Error("async keyword in sync schema");if(Le||gt||(m+=je+" = null;"),m+="var "+X+" = errors;var "+L+";",te&&De.$data&&(Je+="}",m+=" if ("+ee+" === undefined) { "+L+" = true; } else { ",st&&(Je+="}",m+=" "+L+" = "+qe+".validateSchema("+ee+"); if ("+L+") { ")),Le)m+=De.statements?" "+nt.validate+" ":" "+L+" = "+nt.validate+"; ";else if(gt){var it=p.util.copy(p);Je="",it.level++;var Ne="valid"+it.level;it.schema=nt.validate,it.schemaPath="";var pt=p.compositeRule;p.compositeRule=it.compositeRule=!0;var Et=p.validate(it).replace(/validate\.schema/g,Ve);p.compositeRule=it.compositeRule=pt,m+=" "+Et}else{(Qt=Qt||[]).push(m),m="",m+=" "+Ve+".call( ",m+=p.opts.passContext?"this":"self",m+=tt||!1===De.schema?" , "+j+" ":" , "+ee+" , "+j+" , validate.schema"+p.schemaPath+" ",m+=" , (dataPath || '')",'""'!=p.errorPath&&(m+=" + "+p.errorPath);var Wt=D?"data"+(D-1||""):"parentData",Sn=D?p.dataPathArr[D]:"parentDataProperty",Nn=m+=" , "+Wt+" , "+Sn+" , rootData ) ";m=Qt.pop(),!1===De.errors?(m+=" "+L+" = ",Ue&&(m+="await "),m+=Nn+"; "):m+=Ue?" var "+(je="customErrors"+z)+" = null; try { "+L+" = await "+Nn+"; } catch (e) { "+L+" = false; if (e instanceof ValidationError) "+je+" = e.errors; else throw e; } ":" "+je+" = null; "+L+" = "+Nn+"; "}if(De.modifying&&(m+=" if ("+Wt+") "+j+" = "+Wt+"["+Sn+"];"),m+=""+Je,De.valid)G&&(m+=" if (true) { ");else{var Qt;m+=" if ( ",void 0===De.valid?(m+=" !",m+=gt?""+Ne:""+L):m+=" "+!De.valid+" ",N=Te.keyword,(Qt=Qt||[]).push(m+=") { "),(Qt=Qt||[]).push(m=""),m="",!1!==p.createErrors?(m+=" { keyword: '"+(N||"custom")+"' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { keyword: '"+Te.keyword+"' } ",!1!==p.opts.messages&&(m+=" , message: 'should pass \""+Te.keyword+"\" keyword validation' "),p.opts.verbose&&(m+=" , schema: validate.schema"+q+" , parentSchema: validate.schema"+p.schemaPath+" , data: "+j+" "),m+=" } "):m+=" {} ";var pi=m;m=Qt.pop();var Xn=m+=!p.compositeRule&&G?p.async?" throw new ValidationError(["+pi+"]); ":" validate.errors = ["+pi+"]; return false; ":" var err = "+pi+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";m=Qt.pop(),Le?De.errors?"full"!=De.errors&&(m+=" for (var "+ke+"="+X+"; "+ke+"{"use strict";ht.exports=function(p,Q,B){var m=" ",z=p.level,D=p.dataLevel,F=p.schema[Q],q=p.schemaPath+p.util.getProperty(Q),T=p.errSchemaPath+"/"+Q,G=!p.opts.allErrors,N="data"+(D||""),j="errs__"+z,L=p.util.copy(p),X="";L.level++;var te="valid"+L.level,ee={},Te={},qe=p.opts.ownProperties;for(Le in F)if("__proto__"!=Le){var De=F[Le],Je=Array.isArray(De)?Te:ee;Je[Le]=De}m+="var "+j+" = errors;";var tt=p.errorPath;for(var Le in m+="var missing"+z+";",Te)if((Je=Te[Le]).length){if(m+=" if ( "+N+p.util.getProperty(Le)+" !== undefined ",qe&&(m+=" && Object.prototype.hasOwnProperty.call("+N+", '"+p.util.escapeQuotes(Le)+"') "),G){m+=" && ( ";var gt=Je;if(gt)for(var Ve=-1,st=gt.length-1;Ve0||!1===De:p.util.schemaHasRules(De,p.RULES.all))&&(m+=" "+te+" = true; if ( "+N+p.util.getProperty(Le)+" !== undefined ",qe&&(m+=" && Object.prototype.hasOwnProperty.call("+N+", '"+p.util.escapeQuotes(Le)+"') "),m+=") { ",L.schema=De,L.schemaPath=q+p.util.getProperty(Le),L.errSchemaPath=T+"/"+p.util.escapeFragment(Le),m+=" "+p.validate(L)+" ",L.baseId=Wt,m+=" } ",G&&(m+=" if ("+te+") { ",X+="}"));return G&&(m+=" "+X+" if ("+j+" == errors) {"),m}},4299:ht=>{"use strict";ht.exports=function(p,Q,B){var m=" ",z=p.level,D=p.dataLevel,F=p.schema[Q],q=p.schemaPath+p.util.getProperty(Q),T=p.errSchemaPath+"/"+Q,G=!p.opts.allErrors,N="data"+(D||""),j="valid"+z,L=p.opts.$data&&F&&F.$data;L&&(m+=" var schema"+z+" = "+p.util.getData(F.$data,D,p.dataPathArr)+"; ");var te="i"+z,ee="schema"+z;L||(m+=" var "+ee+" = validate.schema"+q+";"),m+="var "+j+";",L&&(m+=" if (schema"+z+" === undefined) "+j+" = true; else if (!Array.isArray(schema"+z+")) "+j+" = false; else {"),m+=j+" = false;for (var "+te+"=0; "+te+"<"+ee+".length; "+te+"++) if (equal("+N+", "+ee+"["+te+"])) { "+j+" = true; break; }",L&&(m+=" } ");var Te=Te||[];Te.push(m+=" if (!"+j+") { "),m="",!1!==p.createErrors?(m+=" { keyword: 'enum' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { allowedValues: schema"+z+" } ",!1!==p.opts.messages&&(m+=" , message: 'should be equal to one of the allowed values' "),p.opts.verbose&&(m+=" , schema: validate.schema"+q+" , parentSchema: validate.schema"+p.schemaPath+" , data: "+N+" "),m+=" } "):m+=" {} ";var qe=m;return m=Te.pop(),m+=!p.compositeRule&&G?p.async?" throw new ValidationError(["+qe+"]); ":" validate.errors = ["+qe+"]; return false; ":" var err = "+qe+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",m+=" }",G&&(m+=" else { "),m}},4097:ht=>{"use strict";ht.exports=function(p,Q,B){var m=" ",z=p.level,D=p.dataLevel,F=p.schema[Q],q=p.schemaPath+p.util.getProperty(Q),T=p.errSchemaPath+"/"+Q,G=!p.opts.allErrors,N="data"+(D||"");if(!1===p.opts.format)return G&&(m+=" if (true) { "),m;var L,j=p.opts.$data&&F&&F.$data;j?(m+=" var schema"+z+" = "+p.util.getData(F.$data,D,p.dataPathArr)+"; ",L="schema"+z):L=F;var X=p.opts.unknownFormats,te=Array.isArray(X);if(j)m+=" var "+(ee="format"+z)+" = formats["+L+"]; var "+(Te="isObject"+z)+" = typeof "+ee+" == 'object' && !("+ee+" instanceof RegExp) && "+ee+".validate; var "+(qe="formatType"+z)+" = "+Te+" && "+ee+".type || 'string'; if ("+Te+") { ",p.async&&(m+=" var async"+z+" = "+ee+".async; "),m+=" "+ee+" = "+ee+".validate; } if ( ",j&&(m+=" ("+L+" !== undefined && typeof "+L+" != 'string') || "),m+=" (","ignore"!=X&&(m+=" ("+L+" && !"+ee+" ",te&&(m+=" && self._opts.unknownFormats.indexOf("+L+") == -1 "),m+=") || "),m+=" ("+ee+" && "+qe+" == '"+B+"' && !(typeof "+ee+" == 'function' ? ",m+=p.async?" (async"+z+" ? await "+ee+"("+N+") : "+ee+"("+N+")) ":" "+ee+"("+N+") ",m+=" : "+ee+".test("+N+"))))) {";else{var ee;if(!(ee=p.formats[F])){if("ignore"==X)return p.logger.warn('unknown format "'+F+'" ignored in schema at path "'+p.errSchemaPath+'"'),G&&(m+=" if (true) { "),m;if(te&&X.indexOf(F)>=0)return G&&(m+=" if (true) { "),m;throw new Error('unknown format "'+F+'" is used in schema at path "'+p.errSchemaPath+'"')}var Te,qe=(Te="object"==typeof ee&&!(ee instanceof RegExp)&&ee.validate)&&ee.type||"string";if(Te){var De=!0===ee.async;ee=ee.validate}if(qe!=B)return G&&(m+=" if (true) { "),m;if(De){if(!p.async)throw new Error("async format in sync schema");m+=" if (!(await "+(Je="formats"+p.util.getProperty(F)+".validate")+"("+N+"))) { "}else{m+=" if (! ";var Je="formats"+p.util.getProperty(F);Te&&(Je+=".validate"),m+="function"==typeof ee?" "+Je+"("+N+") ":" "+Je+".test("+N+") ",m+=") { "}}var tt=tt||[];tt.push(m),m="",!1!==p.createErrors?(m+=" { keyword: 'format' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { format: ",m+=j?""+L:""+p.util.toQuotedString(F),m+=" } ",!1!==p.opts.messages&&(m+=" , message: 'should match format \"",m+=j?"' + "+L+" + '":""+p.util.escapeQuotes(F),m+="\"' "),p.opts.verbose&&(m+=" , schema: ",m+=j?"validate.schema"+q:""+p.util.toQuotedString(F),m+=" , parentSchema: validate.schema"+p.schemaPath+" , data: "+N+" "),m+=" } "):m+=" {} ";var Le=m;return m=tt.pop(),m+=!p.compositeRule&&G?p.async?" throw new ValidationError(["+Le+"]); ":" validate.errors = ["+Le+"]; return false; ":" var err = "+Le+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",m+=" } ",G&&(m+=" else { "),m}},2061:ht=>{"use strict";ht.exports=function(p,Q,B){var m=" ",z=p.level,D=p.dataLevel,F=p.schema[Q],q=p.schemaPath+p.util.getProperty(Q),T=p.errSchemaPath+"/"+Q,G=!p.opts.allErrors,N="data"+(D||""),j="valid"+z,L="errs__"+z,X=p.util.copy(p);X.level++;var te="valid"+X.level,ee=p.schema.then,Te=p.schema.else,qe=void 0!==ee&&(p.opts.strictKeywords?"object"==typeof ee&&Object.keys(ee).length>0||!1===ee:p.util.schemaHasRules(ee,p.RULES.all)),De=void 0!==Te&&(p.opts.strictKeywords?"object"==typeof Te&&Object.keys(Te).length>0||!1===Te:p.util.schemaHasRules(Te,p.RULES.all)),Je=X.baseId;if(qe||De){var tt;X.createErrors=!1,X.schema=F,X.schemaPath=q,X.errSchemaPath=T,m+=" var "+L+" = errors; var "+j+" = true; ";var Le=p.compositeRule;p.compositeRule=X.compositeRule=!0,m+=" "+p.validate(X)+" ",X.baseId=Je,X.createErrors=!0,m+=" errors = "+L+"; if (vErrors !== null) { if ("+L+") vErrors.length = "+L+"; else vErrors = null; } ",p.compositeRule=X.compositeRule=Le,qe?(m+=" if ("+te+") { ",X.schema=p.schema.then,X.schemaPath=p.schemaPath+".then",X.errSchemaPath=p.errSchemaPath+"/then",m+=" "+p.validate(X)+" ",X.baseId=Je,m+=" "+j+" = "+te+"; ",qe&&De?m+=" var "+(tt="ifClause"+z)+" = 'then'; ":tt="'then'",m+=" } ",De&&(m+=" else { ")):m+=" if (!"+te+") { ",De&&(X.schema=p.schema.else,X.schemaPath=p.schemaPath+".else",X.errSchemaPath=p.errSchemaPath+"/else",m+=" "+p.validate(X)+" ",X.baseId=Je,m+=" "+j+" = "+te+"; ",qe&&De?m+=" var "+(tt="ifClause"+z)+" = 'else'; ":tt="'else'",m+=" } "),m+=" if (!"+j+") { var err = ",!1!==p.createErrors?(m+=" { keyword: 'if' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { failingKeyword: "+tt+" } ",!1!==p.opts.messages&&(m+=" , message: 'should match \"' + "+tt+" + '\" schema' "),p.opts.verbose&&(m+=" , schema: validate.schema"+q+" , parentSchema: validate.schema"+p.schemaPath+" , data: "+N+" "),m+=" } "):m+=" {} ",m+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!p.compositeRule&&G&&(m+=p.async?" throw new ValidationError(vErrors); ":" validate.errors = vErrors; return false; "),m+=" } ",G&&(m+=" else { ")}else G&&(m+=" if (true) { ");return m}},2956:(ht,Fe,p)=>{"use strict";ht.exports={$ref:p(3953),allOf:p(9218),anyOf:p(3883),$comment:p(757),const:p(439),contains:p(7939),dependencies:p(3899),enum:p(4299),format:p(4097),if:p(2061),items:p(9240),maximum:p(9402),minimum:p(9402),maxItems:p(3792),minItems:p(3792),maxLength:p(3226),minLength:p(3226),maxProperties:p(2119),minProperties:p(2119),multipleOf:p(9095),not:p(8457),oneOf:p(7681),pattern:p(9438),properties:p(6319),propertyNames:p(6611),required:p(5051),uniqueItems:p(5329),validate:p(604)}},9240:ht=>{"use strict";ht.exports=function(p,Q,B){var m=" ",z=p.level,D=p.dataLevel,F=p.schema[Q],q=p.schemaPath+p.util.getProperty(Q),T=p.errSchemaPath+"/"+Q,G=!p.opts.allErrors,N="data"+(D||""),j="valid"+z,L="errs__"+z,X=p.util.copy(p),te="";X.level++;var ee="valid"+X.level,Te="i"+z,qe=X.dataLevel=p.dataLevel+1,De="data"+qe,Je=p.baseId;if(m+="var "+L+" = errors;var "+j+";",Array.isArray(F)){var tt=p.schema.additionalItems;if(!1===tt){m+=" "+j+" = "+N+".length <= "+F.length+"; ";var Le=T;T=p.errSchemaPath+"/additionalItems";var gt=gt||[];gt.push(m+=" if (!"+j+") { "),m="",!1!==p.createErrors?(m+=" { keyword: 'additionalItems' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { limit: "+F.length+" } ",!1!==p.opts.messages&&(m+=" , message: 'should NOT have more than "+F.length+" items' "),p.opts.verbose&&(m+=" , schema: false , parentSchema: validate.schema"+p.schemaPath+" , data: "+N+" "),m+=" } "):m+=" {} ";var nt=m;m=gt.pop(),m+=!p.compositeRule&&G?p.async?" throw new ValidationError(["+nt+"]); ":" validate.errors = ["+nt+"]; return false; ":" var err = "+nt+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",m+=" } ",T=Le,G&&(te+="}",m+=" else { ")}var Ve=F;if(Ve)for(var st,je=-1,ke=Ve.length-1;je0||!1===st:p.util.schemaHasRules(st,p.RULES.all)){m+=" "+ee+" = true; if ("+N+".length > "+je+") { ";var he=N+"["+je+"]";X.schema=st,X.schemaPath=q+"["+je+"]",X.errSchemaPath=T+"/"+je,X.errorPath=p.util.getPathExpr(p.errorPath,je,p.opts.jsonPointers,!0),X.dataPathArr[qe]=je;var Ue=p.validate(X);X.baseId=Je,p.util.varOccurences(Ue,De)<2?m+=" "+p.util.varReplace(Ue,De,he)+" ":m+=" var "+De+" = "+he+"; "+Ue+" ",m+=" } ",G&&(m+=" if ("+ee+") { ",te+="}")}"object"==typeof tt&&(p.opts.strictKeywords?"object"==typeof tt&&Object.keys(tt).length>0||!1===tt:p.util.schemaHasRules(tt,p.RULES.all))&&(X.schema=tt,X.schemaPath=p.schemaPath+".additionalItems",X.errSchemaPath=p.errSchemaPath+"/additionalItems",m+=" "+ee+" = true; if ("+N+".length > "+F.length+") { for (var "+Te+" = "+F.length+"; "+Te+" < "+N+".length; "+Te+"++) { ",X.errorPath=p.util.getPathExpr(p.errorPath,Te,p.opts.jsonPointers,!0),he=N+"["+Te+"]",X.dataPathArr[qe]=Te,Ue=p.validate(X),X.baseId=Je,p.util.varOccurences(Ue,De)<2?m+=" "+p.util.varReplace(Ue,De,he)+" ":m+=" var "+De+" = "+he+"; "+Ue+" ",G&&(m+=" if (!"+ee+") break; "),m+=" } } ",G&&(m+=" if ("+ee+") { ",te+="}"))}else(p.opts.strictKeywords?"object"==typeof F&&Object.keys(F).length>0||!1===F:p.util.schemaHasRules(F,p.RULES.all))&&(X.schema=F,X.schemaPath=q,X.errSchemaPath=T,m+=" for (var "+Te+" = 0; "+Te+" < "+N+".length; "+Te+"++) { ",X.errorPath=p.util.getPathExpr(p.errorPath,Te,p.opts.jsonPointers,!0),he=N+"["+Te+"]",X.dataPathArr[qe]=Te,Ue=p.validate(X),X.baseId=Je,p.util.varOccurences(Ue,De)<2?m+=" "+p.util.varReplace(Ue,De,he)+" ":m+=" var "+De+" = "+he+"; "+Ue+" ",G&&(m+=" if (!"+ee+") break; "),m+=" }");return G&&(m+=" "+te+" if ("+L+" == errors) {"),m}},9095:ht=>{"use strict";ht.exports=function(p,Q,B){var L,m=" ",z=p.level,D=p.dataLevel,F=p.schema[Q],q=p.schemaPath+p.util.getProperty(Q),T=p.errSchemaPath+"/"+Q,G=!p.opts.allErrors,N="data"+(D||""),j=p.opts.$data&&F&&F.$data;if(j?(m+=" var schema"+z+" = "+p.util.getData(F.$data,D,p.dataPathArr)+"; ",L="schema"+z):L=F,!j&&"number"!=typeof F)throw new Error(Q+" must be number");m+="var division"+z+";if (",j&&(m+=" "+L+" !== undefined && ( typeof "+L+" != 'number' || "),m+=" (division"+z+" = "+N+" / "+L+", ",m+=p.opts.multipleOfPrecision?" Math.abs(Math.round(division"+z+") - division"+z+") > 1e-"+p.opts.multipleOfPrecision+" ":" division"+z+" !== parseInt(division"+z+") ",m+=" ) ",j&&(m+=" ) ");var X=X||[];X.push(m+=" ) { "),m="",!1!==p.createErrors?(m+=" { keyword: 'multipleOf' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { multipleOf: "+L+" } ",!1!==p.opts.messages&&(m+=" , message: 'should be multiple of ",m+=j?"' + "+L:L+"'"),p.opts.verbose&&(m+=" , schema: ",m+=j?"validate.schema"+q:""+F,m+=" , parentSchema: validate.schema"+p.schemaPath+" , data: "+N+" "),m+=" } "):m+=" {} ";var te=m;return m=X.pop(),m+=!p.compositeRule&&G?p.async?" throw new ValidationError(["+te+"]); ":" validate.errors = ["+te+"]; return false; ":" var err = "+te+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",m+="} ",G&&(m+=" else { "),m}},8457:ht=>{"use strict";ht.exports=function(p,Q,B){var m=" ",z=p.level,D=p.dataLevel,F=p.schema[Q],q=p.schemaPath+p.util.getProperty(Q),T=p.errSchemaPath+"/"+Q,G=!p.opts.allErrors,N="data"+(D||""),j="errs__"+z,L=p.util.copy(p);L.level++;var X="valid"+L.level;if(p.opts.strictKeywords?"object"==typeof F&&Object.keys(F).length>0||!1===F:p.util.schemaHasRules(F,p.RULES.all)){L.schema=F,L.schemaPath=q,L.errSchemaPath=T,m+=" var "+j+" = errors; ";var ee,te=p.compositeRule;p.compositeRule=L.compositeRule=!0,L.createErrors=!1,L.opts.allErrors&&(ee=L.opts.allErrors,L.opts.allErrors=!1),m+=" "+p.validate(L)+" ",L.createErrors=!0,ee&&(L.opts.allErrors=ee),p.compositeRule=L.compositeRule=te;var Te=Te||[];Te.push(m+=" if ("+X+") { "),m="",!1!==p.createErrors?(m+=" { keyword: 'not' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: {} ",!1!==p.opts.messages&&(m+=" , message: 'should NOT be valid' "),p.opts.verbose&&(m+=" , schema: validate.schema"+q+" , parentSchema: validate.schema"+p.schemaPath+" , data: "+N+" "),m+=" } "):m+=" {} ";var qe=m;m=Te.pop(),m+=!p.compositeRule&&G?p.async?" throw new ValidationError(["+qe+"]); ":" validate.errors = ["+qe+"]; return false; ":" var err = "+qe+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",m+=" } else { errors = "+j+"; if (vErrors !== null) { if ("+j+") vErrors.length = "+j+"; else vErrors = null; } ",p.opts.allErrors&&(m+=" } ")}else m+=" var err = ",!1!==p.createErrors?(m+=" { keyword: 'not' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: {} ",!1!==p.opts.messages&&(m+=" , message: 'should NOT be valid' "),p.opts.verbose&&(m+=" , schema: validate.schema"+q+" , parentSchema: validate.schema"+p.schemaPath+" , data: "+N+" "),m+=" } "):m+=" {} ",m+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",G&&(m+=" if (false) { ");return m}},7681:ht=>{"use strict";ht.exports=function(p,Q,B){var m=" ",z=p.level,D=p.dataLevel,F=p.schema[Q],q=p.schemaPath+p.util.getProperty(Q),T=p.errSchemaPath+"/"+Q,G=!p.opts.allErrors,N="data"+(D||""),j="valid"+z,L="errs__"+z,X=p.util.copy(p),te="";X.level++;var ee="valid"+X.level,Te=X.baseId,qe="prevValid"+z,De="passingSchemas"+z;m+="var "+L+" = errors , "+qe+" = false , "+j+" = false , "+De+" = null; ";var Je=p.compositeRule;p.compositeRule=X.compositeRule=!0;var tt=F;if(tt)for(var Le,gt=-1,nt=tt.length-1;gt0||!1===Le:p.util.schemaHasRules(Le,p.RULES.all))?(X.schema=Le,X.schemaPath=q+"["+gt+"]",X.errSchemaPath=T+"/"+gt,m+=" "+p.validate(X)+" ",X.baseId=Te):m+=" var "+ee+" = true; ",gt&&(m+=" if ("+ee+" && "+qe+") { "+j+" = false; "+De+" = ["+De+", "+gt+"]; } else { ",te+="}"),m+=" if ("+ee+") { "+j+" = "+qe+" = true; "+De+" = "+gt+"; }";return p.compositeRule=X.compositeRule=Je,m+=te+"if (!"+j+") { var err = ",!1!==p.createErrors?(m+=" { keyword: 'oneOf' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { passingSchemas: "+De+" } ",!1!==p.opts.messages&&(m+=" , message: 'should match exactly one schema in oneOf' "),p.opts.verbose&&(m+=" , schema: validate.schema"+q+" , parentSchema: validate.schema"+p.schemaPath+" , data: "+N+" "),m+=" } "):m+=" {} ",m+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!p.compositeRule&&G&&(m+=p.async?" throw new ValidationError(vErrors); ":" validate.errors = vErrors; return false; "),m+="} else { errors = "+L+"; if (vErrors !== null) { if ("+L+") vErrors.length = "+L+"; else vErrors = null; }",p.opts.allErrors&&(m+=" } "),m}},9438:ht=>{"use strict";ht.exports=function(p,Q,B){var L,m=" ",z=p.level,D=p.dataLevel,F=p.schema[Q],q=p.schemaPath+p.util.getProperty(Q),T=p.errSchemaPath+"/"+Q,G=!p.opts.allErrors,N="data"+(D||""),j=p.opts.$data&&F&&F.$data;j?(m+=" var schema"+z+" = "+p.util.getData(F.$data,D,p.dataPathArr)+"; ",L="schema"+z):L=F;var X=j?"(new RegExp("+L+"))":p.usePattern(F);m+="if ( ",j&&(m+=" ("+L+" !== undefined && typeof "+L+" != 'string') || ");var te=te||[];te.push(m+=" !"+X+".test("+N+") ) { "),m="",!1!==p.createErrors?(m+=" { keyword: 'pattern' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { pattern: ",m+=j?""+L:""+p.util.toQuotedString(F),m+=" } ",!1!==p.opts.messages&&(m+=" , message: 'should match pattern \"",m+=j?"' + "+L+" + '":""+p.util.escapeQuotes(F),m+="\"' "),p.opts.verbose&&(m+=" , schema: ",m+=j?"validate.schema"+q:""+p.util.toQuotedString(F),m+=" , parentSchema: validate.schema"+p.schemaPath+" , data: "+N+" "),m+=" } "):m+=" {} ";var ee=m;return m=te.pop(),m+=!p.compositeRule&&G?p.async?" throw new ValidationError(["+ee+"]); ":" validate.errors = ["+ee+"]; return false; ":" var err = "+ee+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",m+="} ",G&&(m+=" else { "),m}},6319:ht=>{"use strict";ht.exports=function(p,Q,B){var m=" ",z=p.level,D=p.dataLevel,F=p.schema[Q],q=p.schemaPath+p.util.getProperty(Q),T=p.errSchemaPath+"/"+Q,G=!p.opts.allErrors,N="data"+(D||""),j="errs__"+z,L=p.util.copy(p),X="";L.level++;var te="valid"+L.level,ee="key"+z,Te="idx"+z,qe=L.dataLevel=p.dataLevel+1,De="data"+qe,Je="dataProperties"+z,tt=Object.keys(F||{}).filter(Et),Le=p.schema.patternProperties||{},gt=Object.keys(Le).filter(Et),nt=p.schema.additionalProperties,Ve=tt.length||gt.length,st=!1===nt,je="object"==typeof nt&&Object.keys(nt).length,ke=p.opts.removeAdditional,he=st||je||ke,Ue=p.opts.ownProperties,it=p.baseId,Ne=p.schema.required;if(Ne&&(!p.opts.$data||!Ne.$data)&&Ne.length8)m+=" || validate.schema"+q+".hasOwnProperty("+ee+") ";else{var Qt=tt;if(Qt)for(var Sn=-1,Nn=Qt.length-1;Sn0||!1===ii:p.util.schemaHasRules(ii,p.RULES.all)){var No=p.util.getProperty(Wt),xo=(ln=N+No,Di&&void 0!==ii.default);if(L.schema=ii,L.schemaPath=q+No,L.errSchemaPath=T+"/"+p.util.escapeFragment(Wt),L.errorPath=p.util.getPath(p.errorPath,Wt,p.opts.jsonPointers),L.dataPathArr[qe]=p.util.toQuotedString(Wt),tn=p.validate(L),L.baseId=it,p.util.varOccurences(tn,De)<2){tn=p.util.varReplace(tn,De,ln);var Ki=ln}else Ki=De,m+=" var "+De+" = "+ln+"; ";if(xo)m+=" "+tn+" ";else{if(pt&&pt[Wt]){m+=" if ( "+Ki+" === undefined ",Ue&&(m+=" || ! Object.prototype.hasOwnProperty.call("+N+", '"+p.util.escapeQuotes(Wt)+"') "),m+=") { "+te+" = false; ",li=p.errorPath,Lt=T;var Kt,Er=p.util.escapeQuotes(Wt);p.opts._errorDataPathProperty&&(p.errorPath=p.util.getPath(li,Wt,p.opts.jsonPointers)),T=p.errSchemaPath+"/required",(Kt=Kt||[]).push(m),m="",!1!==p.createErrors?(m+=" { keyword: 'required' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { missingProperty: '"+Er+"' } ",!1!==p.opts.messages&&(m+=" , message: '",m+=p.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+Er+"\\'",m+="' "),p.opts.verbose&&(m+=" , schema: validate.schema"+q+" , parentSchema: validate.schema"+p.schemaPath+" , data: "+N+" "),m+=" } "):m+=" {} ",In=m,m=Kt.pop(),m+=!p.compositeRule&&G?p.async?" throw new ValidationError(["+In+"]); ":" validate.errors = ["+In+"]; return false; ":" var err = "+In+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",T=Lt,p.errorPath=li,m+=" } else { "}else G?(m+=" if ( "+Ki+" === undefined ",Ue&&(m+=" || ! Object.prototype.hasOwnProperty.call("+N+", '"+p.util.escapeQuotes(Wt)+"') "),m+=") { "+te+" = true; } else { "):(m+=" if ("+Ki+" !== undefined ",Ue&&(m+=" && Object.prototype.hasOwnProperty.call("+N+", '"+p.util.escapeQuotes(Wt)+"') "),m+=" ) { ");m+=" "+tn+" } "}}G&&(m+=" if ("+te+") { ",X+="}")}}if(gt.length){var Ao=gt;if(Ao)for(var Xn,ja=-1,lf=Ao.length-1;ja0||!1===ii:p.util.schemaHasRules(ii,p.RULES.all))&&(L.schema=ii,L.schemaPath=p.schemaPath+".patternProperties"+p.util.getProperty(Xn),L.errSchemaPath=p.errSchemaPath+"/patternProperties/"+p.util.escapeFragment(Xn),m+=Ue?" "+Je+" = "+Je+" || Object.keys("+N+"); for (var "+Te+"=0; "+Te+"<"+Je+".length; "+Te+"++) { var "+ee+" = "+Je+"["+Te+"]; ":" for (var "+ee+" in "+N+") { ",m+=" if ("+p.usePattern(Xn)+".test("+ee+")) { ",L.errorPath=p.util.getPathExpr(p.errorPath,ee,p.opts.jsonPointers),ln=N+"["+ee+"]",L.dataPathArr[qe]=ee,tn=p.validate(L),L.baseId=it,p.util.varOccurences(tn,De)<2?m+=" "+p.util.varReplace(tn,De,ln)+" ":m+=" var "+De+" = "+ln+"; "+tn+" ",G&&(m+=" if (!"+te+") break; "),m+=" } ",G&&(m+=" else "+te+" = true; "),m+=" } ",G&&(m+=" if ("+te+") { ",X+="}"))}return G&&(m+=" "+X+" if ("+j+" == errors) {"),m}},6611:ht=>{"use strict";ht.exports=function(p,Q,B){var m=" ",z=p.level,D=p.dataLevel,F=p.schema[Q],q=p.schemaPath+p.util.getProperty(Q),T=p.errSchemaPath+"/"+Q,G=!p.opts.allErrors,N="data"+(D||""),j="errs__"+z,L=p.util.copy(p);L.level++;var te="valid"+L.level;if(m+="var "+j+" = errors;",p.opts.strictKeywords?"object"==typeof F&&Object.keys(F).length>0||!1===F:p.util.schemaHasRules(F,p.RULES.all)){L.schema=F,L.schemaPath=q,L.errSchemaPath=T;var ee="key"+z,Te="idx"+z,qe="i"+z,De="' + "+ee+" + '",tt="data"+(L.dataLevel=p.dataLevel+1),Le="dataProperties"+z,gt=p.opts.ownProperties,nt=p.baseId;gt&&(m+=" var "+Le+" = undefined; "),m+=gt?" "+Le+" = "+Le+" || Object.keys("+N+"); for (var "+Te+"=0; "+Te+"<"+Le+".length; "+Te+"++) { var "+ee+" = "+Le+"["+Te+"]; ":" for (var "+ee+" in "+N+") { ",m+=" var startErrs"+z+" = errors; ";var Ve=ee,st=p.compositeRule;p.compositeRule=L.compositeRule=!0;var je=p.validate(L);L.baseId=nt,p.util.varOccurences(je,tt)<2?m+=" "+p.util.varReplace(je,tt,Ve)+" ":m+=" var "+tt+" = "+Ve+"; "+je+" ",p.compositeRule=L.compositeRule=st,m+=" if (!"+te+") { for (var "+qe+"=startErrs"+z+"; "+qe+"{"use strict";ht.exports=function(p,Q,B){var j,L,m=" ",D=p.dataLevel,F=p.schema[Q],q=p.errSchemaPath+"/"+Q,T=!p.opts.allErrors,G="data"+(D||""),N="valid"+p.level;if("#"==F||"#/"==F)p.isRoot?(j=p.async,L="validate"):(j=!0===p.root.schema.$async,L="root.refVal[0]");else{var X=p.resolveRef(p.baseId,F,p.isRoot);if(void 0===X){var te=p.MissingRefError.message(p.baseId,F);if("fail"==p.opts.missingRefs){p.logger.error(te),(ee=ee||[]).push(m),m="",!1!==p.createErrors?(m+=" { keyword: '$ref' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(q)+" , params: { ref: '"+p.util.escapeQuotes(F)+"' } ",!1!==p.opts.messages&&(m+=" , message: 'can\\'t resolve reference "+p.util.escapeQuotes(F)+"' "),p.opts.verbose&&(m+=" , schema: "+p.util.toQuotedString(F)+" , parentSchema: validate.schema"+p.schemaPath+" , data: "+G+" "),m+=" } "):m+=" {} ";var Te=m;m=ee.pop(),m+=!p.compositeRule&&T?p.async?" throw new ValidationError(["+Te+"]); ":" validate.errors = ["+Te+"]; return false; ":" var err = "+Te+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",T&&(m+=" if (false) { ")}else{if("ignore"!=p.opts.missingRefs)throw new p.MissingRefError(p.baseId,F,te);p.logger.warn(te),T&&(m+=" if (true) { ")}}else if(X.inline){var qe=p.util.copy(p);qe.level++;var De="valid"+qe.level;qe.schema=X.schema,qe.schemaPath="",qe.errSchemaPath=F,m+=" "+p.validate(qe).replace(/validate\.schema/g,X.code)+" ",T&&(m+=" if ("+De+") { ")}else j=!0===X.$async||p.async&&!1!==X.$async,L=X.code}if(L){var ee;(ee=ee||[]).push(m),m="",m+=p.opts.passContext?" "+L+".call(this, ":" "+L+"( ",m+=" "+G+", (dataPath || '')",'""'!=p.errorPath&&(m+=" + "+p.errorPath);var gt=m+=" , "+(D?"data"+(D-1||""):"parentData")+" , "+(D?p.dataPathArr[D]:"parentDataProperty")+", rootData) ";if(m=ee.pop(),j){if(!p.async)throw new Error("async schema referenced by sync schema");T&&(m+=" var "+N+"; "),m+=" try { await "+gt+"; ",T&&(m+=" "+N+" = true; "),m+=" } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ",T&&(m+=" "+N+" = false; "),m+=" } ",T&&(m+=" if ("+N+") { ")}else m+=" if (!"+gt+") { if (vErrors === null) vErrors = "+L+".errors; else vErrors = vErrors.concat("+L+".errors); errors = vErrors.length; } ",T&&(m+=" else { ")}return m}},5051:ht=>{"use strict";ht.exports=function(p,Q,B){var m=" ",z=p.level,D=p.dataLevel,F=p.schema[Q],q=p.schemaPath+p.util.getProperty(Q),T=p.errSchemaPath+"/"+Q,G=!p.opts.allErrors,N="data"+(D||""),j="valid"+z,L=p.opts.$data&&F&&F.$data;L&&(m+=" var schema"+z+" = "+p.util.getData(F.$data,D,p.dataPathArr)+"; ");var te="schema"+z;if(!L)if(F.length0||!1===tt:p.util.schemaHasRules(tt,p.RULES.all))||(ee[ee.length]=qe)}}else ee=F;if(L||ee.length){var Le=p.errorPath,gt=L||ee.length>=p.opts.loopRequired,nt=p.opts.ownProperties;if(G)if(m+=" var missing"+z+"; ",gt){L||(m+=" var "+te+" = validate.schema"+q+"; ");var je="' + "+(st="schema"+z+"["+(Ve="i"+z)+"]")+" + '";p.opts._errorDataPathProperty&&(p.errorPath=p.util.getPathExpr(Le,st,p.opts.jsonPointers)),m+=" var "+j+" = true; ",L&&(m+=" if (schema"+z+" === undefined) "+j+" = true; else if (!Array.isArray(schema"+z+")) "+j+" = false; else {"),m+=" for (var "+Ve+" = 0; "+Ve+" < "+te+".length; "+Ve+"++) { "+j+" = "+N+"["+te+"["+Ve+"]] !== undefined ",nt&&(m+=" && Object.prototype.hasOwnProperty.call("+N+", "+te+"["+Ve+"]) "),m+="; if (!"+j+") break; } ",L&&(m+=" } "),(ke=ke||[]).push(m+=" if (!"+j+") { "),m="",!1!==p.createErrors?(m+=" { keyword: 'required' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { missingProperty: '"+je+"' } ",!1!==p.opts.messages&&(m+=" , message: '",m+=p.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+je+"\\'",m+="' "),p.opts.verbose&&(m+=" , schema: validate.schema"+q+" , parentSchema: validate.schema"+p.schemaPath+" , data: "+N+" "),m+=" } "):m+=" {} ";var he=m;m=ke.pop(),m+=!p.compositeRule&&G?p.async?" throw new ValidationError(["+he+"]); ":" validate.errors = ["+he+"]; return false; ":" var err = "+he+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",m+=" } else { "}else{m+=" if ( ";var ke,Ue=ee;if(Ue)for(var Ve=-1,Ne=Ue.length-1;Ve{"use strict";ht.exports=function(p,Q,B){var X,m=" ",z=p.level,D=p.dataLevel,F=p.schema[Q],q=p.schemaPath+p.util.getProperty(Q),T=p.errSchemaPath+"/"+Q,G=!p.opts.allErrors,N="data"+(D||""),j="valid"+z,L=p.opts.$data&&F&&F.$data;if(L?(m+=" var schema"+z+" = "+p.util.getData(F.$data,D,p.dataPathArr)+"; ",X="schema"+z):X=F,(F||L)&&!1!==p.opts.uniqueItems){L&&(m+=" var "+j+"; if ("+X+" === false || "+X+" === undefined) "+j+" = true; else if (typeof "+X+" != 'boolean') "+j+" = false; else { "),m+=" var i = "+N+".length , "+j+" = true , j; if (i > 1) { ";var te=p.schema.items&&p.schema.items.type,ee=Array.isArray(te);!te||"object"==te||"array"==te||ee&&(te.indexOf("object")>=0||te.indexOf("array")>=0)?m+=" outer: for (;i--;) { for (j = i; j--;) { if (equal("+N+"[i], "+N+"[j])) { "+j+" = false; break outer; } } } ":(m+=" var itemIndices = {}, item; for (;i--;) { var item = "+N+"[i]; ",m+=" if ("+p.util["checkDataType"+(ee?"s":"")](te,"item",p.opts.strictNumbers,!0)+") continue; ",ee&&(m+=" if (typeof item == 'string') item = '\"' + item; "),m+=" if (typeof itemIndices[item] == 'number') { "+j+" = false; j = itemIndices[item]; break; } itemIndices[item] = i; } "),m+=" } ",L&&(m+=" } ");var qe=qe||[];qe.push(m+=" if (!"+j+") { "),m="",!1!==p.createErrors?(m+=" { keyword: 'uniqueItems' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(T)+" , params: { i: i, j: j } ",!1!==p.opts.messages&&(m+=" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' "),p.opts.verbose&&(m+=" , schema: ",m+=L?"validate.schema"+q:""+F,m+=" , parentSchema: validate.schema"+p.schemaPath+" , data: "+N+" "),m+=" } "):m+=" {} ";var De=m;m=qe.pop(),m+=!p.compositeRule&&G?p.async?" throw new ValidationError(["+De+"]); ":" validate.errors = ["+De+"]; return false; ":" var err = "+De+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",m+=" } ",G&&(m+=" else { ")}else G&&(m+=" if (true) { ");return m}},604:ht=>{"use strict";ht.exports=function(p,Q,B){var m="",z=!0===p.schema.$async,D=p.util.schemaHasRulesExcept(p.schema,p.RULES.all,"$ref"),F=p.self._getId(p.schema);if(p.opts.strictKeywords){var q=p.util.schemaUnknownRules(p.schema,p.RULES.keywords);if(q){var T="unknown keyword: "+q;if("log"!==p.opts.strictKeywords)throw new Error(T);p.logger.warn(T)}}if(p.isTop&&(m+=" var validate = ",z&&(p.async=!0,m+="async "),m+="function(data, dataPath, parentData, parentDataProperty, rootData) { 'use strict'; ",F&&(p.opts.sourceCode||p.opts.processCode)&&(m+=" /*# sourceURL="+F+" */ ")),"boolean"==typeof p.schema||!D&&!p.schema.$ref){var G=p.level,N=p.dataLevel,j=p.schema[Q="false schema"],L=p.schemaPath+p.util.getProperty(Q),X=p.errSchemaPath+"/"+Q,tt=!p.opts.allErrors,te="data"+(N||""),Je="valid"+G;if(!1===p.schema){p.isTop?tt=!0:m+=" var "+Je+" = false; ",(ee=ee||[]).push(m),m="",!1!==p.createErrors?(m+=" { keyword: 'false schema' , dataPath: (dataPath || '') + "+p.errorPath+" , schemaPath: "+p.util.toQuotedString(X)+" , params: {} ",!1!==p.opts.messages&&(m+=" , message: 'boolean schema is false' "),p.opts.verbose&&(m+=" , schema: false , parentSchema: validate.schema"+p.schemaPath+" , data: "+te+" "),m+=" } "):m+=" {} ";var Te=m;m=ee.pop(),m+=!p.compositeRule&&tt?p.async?" throw new ValidationError(["+Te+"]); ":" validate.errors = ["+Te+"]; return false; ":" var err = "+Te+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}else m+=p.isTop?z?" return data; ":" validate.errors = null; return true; ":" var "+Je+" = true; ";return p.isTop&&(m+=" }; return validate; "),m}if(p.isTop){var qe=p.isTop;if(G=p.level=0,N=p.dataLevel=0,te="data",p.rootId=p.resolve.fullPath(p.self._getId(p.root.schema)),p.baseId=p.baseId||p.rootId,delete p.isTop,p.dataPathArr=[""],void 0!==p.schema.default&&p.opts.useDefaults&&p.opts.strictDefaults){var De="default is ignored in the schema root";if("log"!==p.opts.strictDefaults)throw new Error(De);p.logger.warn(De)}m+=" var vErrors = null; ",m+=" var errors = 0; ",m+=" if (rootData === undefined) rootData = data; "}else{if(G=p.level,te="data"+((N=p.dataLevel)||""),F&&(p.baseId=p.resolve.url(p.baseId,F)),z&&!p.async)throw new Error("async schema in sync schema");m+=" var errs_"+G+" = errors;"}Je="valid"+G,tt=!p.opts.allErrors;var Le="",gt="",Ve=p.schema.type,st=Array.isArray(Ve);if(Ve&&p.opts.nullable&&!0===p.schema.nullable&&(st?-1==Ve.indexOf("null")&&(Ve=Ve.concat("null")):"null"!=Ve&&(Ve=[Ve,"null"],st=!0)),st&&1==Ve.length&&(Ve=Ve[0],st=!1),p.schema.$ref&&D){if("fail"==p.opts.extendRefs)throw new Error('$ref: validation keywords used in schema at path "'+p.errSchemaPath+'" (see option extendRefs)');!0!==p.opts.extendRefs&&(D=!1,p.logger.warn('$ref: keywords ignored in schema at path "'+p.errSchemaPath+'"'))}if(p.schema.$comment&&p.opts.$comment&&(m+=" "+p.RULES.all.$comment.code(p,"$comment")),Ve){if(p.opts.coerceTypes)var je=p.util.coerceToTypes(p.opts.coerceTypes,Ve);var ke=p.RULES.types[Ve];if(je||st||!0===ke||ke&&!ii(ke)){if(L=p.schemaPath+".type",X=p.errSchemaPath+"/type",L=p.schemaPath+".type",X=p.errSchemaPath+"/type",m+=" if ("+p.util[st?"checkDataTypes":"checkDataType"](Ve,te,p.opts.strictNumbers,!0)+") { ",je){var Ue="dataType"+G,it="coerced"+G;m+=" var "+Ue+" = typeof "+te+"; var "+it+" = undefined; ","array"==p.opts.coerceTypes&&(m+=" if ("+Ue+" == 'object' && Array.isArray("+te+") && "+te+".length == 1) { "+te+" = "+te+"[0]; "+Ue+" = typeof "+te+"; if ("+p.util.checkDataType(p.schema.type,te,p.opts.strictNumbers)+") "+it+" = "+te+"; } "),m+=" if ("+it+" !== undefined) ; ";var Ne=je;if(Ne)for(var pt,Et=-1,Qt=Ne.length-1;Et{"use strict";var Q=/^[a-z_$][a-z0-9_$-]*$/i,B=p(5237),m=p(8606);ht.exports={add:function z(T,G){var N=this.RULES;if(N.keywords[T])throw new Error("Keyword "+T+" is already defined");if(!Q.test(T))throw new Error("Keyword "+T+" is not a valid identifier");if(G){this.validateKeyword(G,!0);var j=G.type;if(Array.isArray(j))for(var L=0;L{var Fe={utf8:{stringToBytes:function(p){return Fe.bin.stringToBytes(unescape(encodeURIComponent(p)))},bytesToString:function(p){return decodeURIComponent(escape(Fe.bin.bytesToString(p)))}},bin:{stringToBytes:function(p){for(var Q=[],B=0;B{const Q=p(4605),B={};for(const D of Object.keys(Q))B[Q[D]]=D;const m={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};ht.exports=m;for(const D of Object.keys(m)){if(!("channels"in m[D]))throw new Error("missing channels property: "+D);if(!("labels"in m[D]))throw new Error("missing channel labels property: "+D);if(m[D].labels.length!==m[D].channels)throw new Error("channel and label counts mismatch: "+D);const{channels:F,labels:q}=m[D];delete m[D].channels,delete m[D].labels,Object.defineProperty(m[D],"channels",{value:F}),Object.defineProperty(m[D],"labels",{value:q})}function z(D,F){return(D[0]-F[0])**2+(D[1]-F[1])**2+(D[2]-F[2])**2}m.rgb.hsl=function(D){const F=D[0]/255,q=D[1]/255,T=D[2]/255,G=Math.min(F,q,T),N=Math.max(F,q,T),j=N-G;let L,X;N===G?L=0:F===N?L=(q-T)/j:q===N?L=2+(T-F)/j:T===N&&(L=4+(F-q)/j),L=Math.min(60*L,360),L<0&&(L+=360);const te=(G+N)/2;return X=N===G?0:te<=.5?j/(N+G):j/(2-N-G),[L,100*X,100*te]},m.rgb.hsv=function(D){let F,q,T,G,N;const j=D[0]/255,L=D[1]/255,X=D[2]/255,te=Math.max(j,L,X),ee=te-Math.min(j,L,X),Te=function(qe){return(te-qe)/6/ee+.5};return 0===ee?(G=0,N=0):(N=ee/te,F=Te(j),q=Te(L),T=Te(X),j===te?G=T-q:L===te?G=1/3+F-T:X===te&&(G=2/3+q-F),G<0?G+=1:G>1&&(G-=1)),[360*G,100*N,100*te]},m.rgb.hwb=function(D){const F=D[0],q=D[1];let T=D[2];const G=m.rgb.hsl(D)[0],N=1/255*Math.min(F,Math.min(q,T));return T=1-1/255*Math.max(F,Math.max(q,T)),[G,100*N,100*T]},m.rgb.cmyk=function(D){const F=D[0]/255,q=D[1]/255,T=D[2]/255,G=Math.min(1-F,1-q,1-T);return[100*((1-F-G)/(1-G)||0),100*((1-q-G)/(1-G)||0),100*((1-T-G)/(1-G)||0),100*G]},m.rgb.keyword=function(D){const F=B[D];if(F)return F;let T,q=1/0;for(const G of Object.keys(Q)){const j=z(D,Q[G]);j.04045?((F+.055)/1.055)**2.4:F/12.92,q=q>.04045?((q+.055)/1.055)**2.4:q/12.92,T=T>.04045?((T+.055)/1.055)**2.4:T/12.92,[100*(.4124*F+.3576*q+.1805*T),100*(.2126*F+.7152*q+.0722*T),100*(.0193*F+.1192*q+.9505*T)]},m.rgb.lab=function(D){const F=m.rgb.xyz(D);let q=F[0],T=F[1],G=F[2];return q/=95.047,T/=100,G/=108.883,q=q>.008856?q**(1/3):7.787*q+16/116,T=T>.008856?T**(1/3):7.787*T+16/116,G=G>.008856?G**(1/3):7.787*G+16/116,[116*T-16,500*(q-T),200*(T-G)]},m.hsl.rgb=function(D){const F=D[0]/360,q=D[1]/100,T=D[2]/100;let G,N,j;if(0===q)return j=255*T,[j,j,j];G=T<.5?T*(1+q):T+q-T*q;const L=2*T-G,X=[0,0,0];for(let te=0;te<3;te++)N=F+1/3*-(te-1),N<0&&N++,N>1&&N--,j=6*N<1?L+6*(G-L)*N:2*N<1?G:3*N<2?L+(G-L)*(2/3-N)*6:L,X[te]=255*j;return X},m.hsl.hsv=function(D){const F=D[0];let q=D[1]/100,T=D[2]/100,G=q;const N=Math.max(T,.01);return T*=2,q*=T<=1?T:2-T,G*=N<=1?N:2-N,[F,100*(0===T?2*G/(N+G):2*q/(T+q)),(T+q)/2*100]},m.hsv.rgb=function(D){const F=D[0]/60,q=D[1]/100;let T=D[2]/100;const G=Math.floor(F)%6,N=F-Math.floor(F),j=255*T*(1-q),L=255*T*(1-q*N),X=255*T*(1-q*(1-N));switch(T*=255,G){case 0:return[T,X,j];case 1:return[L,T,j];case 2:return[j,T,X];case 3:return[j,L,T];case 4:return[X,j,T];case 5:return[T,j,L]}},m.hsv.hsl=function(D){const F=D[0],q=D[1]/100,T=D[2]/100,G=Math.max(T,.01);let N,j;j=(2-q)*T;const L=(2-q)*G;return N=q*G,N/=L<=1?L:2-L,N=N||0,j/=2,[F,100*N,100*j]},m.hwb.rgb=function(D){const F=D[0]/360;let q=D[1]/100,T=D[2]/100;const G=q+T;let N;G>1&&(q/=G,T/=G);const j=Math.floor(6*F),L=1-T;N=6*F-j,1&j&&(N=1-N);const X=q+N*(L-q);let te,ee,Te;switch(j){default:case 6:case 0:te=L,ee=X,Te=q;break;case 1:te=X,ee=L,Te=q;break;case 2:te=q,ee=L,Te=X;break;case 3:te=q,ee=X,Te=L;break;case 4:te=X,ee=q,Te=L;break;case 5:te=L,ee=q,Te=X}return[255*te,255*ee,255*Te]},m.cmyk.rgb=function(D){const q=D[1]/100,T=D[2]/100,G=D[3]/100;return[255*(1-Math.min(1,D[0]/100*(1-G)+G)),255*(1-Math.min(1,q*(1-G)+G)),255*(1-Math.min(1,T*(1-G)+G))]},m.xyz.rgb=function(D){const F=D[0]/100,q=D[1]/100,T=D[2]/100;let G,N,j;return G=3.2406*F+-1.5372*q+-.4986*T,N=-.9689*F+1.8758*q+.0415*T,j=.0557*F+-.204*q+1.057*T,G=G>.0031308?1.055*G**(1/2.4)-.055:12.92*G,N=N>.0031308?1.055*N**(1/2.4)-.055:12.92*N,j=j>.0031308?1.055*j**(1/2.4)-.055:12.92*j,G=Math.min(Math.max(0,G),1),N=Math.min(Math.max(0,N),1),j=Math.min(Math.max(0,j),1),[255*G,255*N,255*j]},m.xyz.lab=function(D){let F=D[0],q=D[1],T=D[2];return F/=95.047,q/=100,T/=108.883,F=F>.008856?F**(1/3):7.787*F+16/116,q=q>.008856?q**(1/3):7.787*q+16/116,T=T>.008856?T**(1/3):7.787*T+16/116,[116*q-16,500*(F-q),200*(q-T)]},m.lab.xyz=function(D){let G,N,j;N=(D[0]+16)/116,G=D[1]/500+N,j=N-D[2]/200;const L=N**3,X=G**3,te=j**3;return N=L>.008856?L:(N-16/116)/7.787,G=X>.008856?X:(G-16/116)/7.787,j=te>.008856?te:(j-16/116)/7.787,G*=95.047,N*=100,j*=108.883,[G,N,j]},m.lab.lch=function(D){const F=D[0],q=D[1],T=D[2];let G;return G=360*Math.atan2(T,q)/2/Math.PI,G<0&&(G+=360),[F,Math.sqrt(q*q+T*T),G]},m.lch.lab=function(D){const q=D[1],G=D[2]/360*2*Math.PI;return[D[0],q*Math.cos(G),q*Math.sin(G)]},m.rgb.ansi16=function(D,F=null){const[q,T,G]=D;let N=null===F?m.rgb.hsv(D)[2]:F;if(N=Math.round(N/50),0===N)return 30;let j=30+(Math.round(G/255)<<2|Math.round(T/255)<<1|Math.round(q/255));return 2===N&&(j+=60),j},m.hsv.ansi16=function(D){return m.rgb.ansi16(m.hsv.rgb(D),D[2])},m.rgb.ansi256=function(D){const F=D[0],q=D[1],T=D[2];return F===q&&q===T?F<8?16:F>248?231:Math.round((F-8)/247*24)+232:16+36*Math.round(F/255*5)+6*Math.round(q/255*5)+Math.round(T/255*5)},m.ansi16.rgb=function(D){let F=D%10;if(0===F||7===F)return D>50&&(F+=3.5),F=F/10.5*255,[F,F,F];const q=.5*(1+~~(D>50));return[(1&F)*q*255,(F>>1&1)*q*255,(F>>2&1)*q*255]},m.ansi256.rgb=function(D){if(D>=232){const N=10*(D-232)+8;return[N,N,N]}let F;return D-=16,[Math.floor(D/36)/5*255,Math.floor((F=D%36)/6)/5*255,F%6/5*255]},m.rgb.hex=function(D){const q=(((255&Math.round(D[0]))<<16)+((255&Math.round(D[1]))<<8)+(255&Math.round(D[2]))).toString(16).toUpperCase();return"000000".substring(q.length)+q},m.hex.rgb=function(D){const F=D.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!F)return[0,0,0];let q=F[0];3===F[0].length&&(q=q.split("").map(L=>L+L).join(""));const T=parseInt(q,16);return[T>>16&255,T>>8&255,255&T]},m.rgb.hcg=function(D){const F=D[0]/255,q=D[1]/255,T=D[2]/255,G=Math.max(Math.max(F,q),T),N=Math.min(Math.min(F,q),T),j=G-N;let L,X;return L=j<1?N/(1-j):0,X=j<=0?0:G===F?(q-T)/j%6:G===q?2+(T-F)/j:4+(F-q)/j,X/=6,X%=1,[360*X,100*j,100*L]},m.hsl.hcg=function(D){const F=D[1]/100,q=D[2]/100,T=q<.5?2*F*q:2*F*(1-q);let G=0;return T<1&&(G=(q-.5*T)/(1-T)),[D[0],100*T,100*G]},m.hsv.hcg=function(D){const q=D[2]/100,T=D[1]/100*q;let G=0;return T<1&&(G=(q-T)/(1-T)),[D[0],100*T,100*G]},m.hcg.rgb=function(D){const q=D[1]/100,T=D[2]/100;if(0===q)return[255*T,255*T,255*T];const G=[0,0,0],N=D[0]/360%1*6,j=N%1,L=1-j;let X=0;switch(Math.floor(N)){case 0:G[0]=1,G[1]=j,G[2]=0;break;case 1:G[0]=L,G[1]=1,G[2]=0;break;case 2:G[0]=0,G[1]=1,G[2]=j;break;case 3:G[0]=0,G[1]=L,G[2]=1;break;case 4:G[0]=j,G[1]=0,G[2]=1;break;default:G[0]=1,G[1]=0,G[2]=L}return X=(1-q)*T,[255*(q*G[0]+X),255*(q*G[1]+X),255*(q*G[2]+X)]},m.hcg.hsv=function(D){const F=D[1]/100,T=F+D[2]/100*(1-F);let G=0;return T>0&&(G=F/T),[D[0],100*G,100*T]},m.hcg.hsl=function(D){const F=D[1]/100,T=D[2]/100*(1-F)+.5*F;let G=0;return T>0&&T<.5?G=F/(2*T):T>=.5&&T<1&&(G=F/(2*(1-T))),[D[0],100*G,100*T]},m.hcg.hwb=function(D){const F=D[1]/100,T=F+D[2]/100*(1-F);return[D[0],100*(T-F),100*(1-T)]},m.hwb.hcg=function(D){const T=1-D[2]/100,G=T-D[1]/100;let N=0;return G<1&&(N=(T-G)/(1-G)),[D[0],100*G,100*N]},m.apple.rgb=function(D){return[D[0]/65535*255,D[1]/65535*255,D[2]/65535*255]},m.rgb.apple=function(D){return[D[0]/255*65535,D[1]/255*65535,D[2]/255*65535]},m.gray.rgb=function(D){return[D[0]/100*255,D[0]/100*255,D[0]/100*255]},m.gray.hsl=function(D){return[0,0,D[0]]},m.gray.hsv=m.gray.hsl,m.gray.hwb=function(D){return[0,100,D[0]]},m.gray.cmyk=function(D){return[0,0,0,D[0]]},m.gray.lab=function(D){return[D[0],0,0]},m.gray.hex=function(D){const F=255&Math.round(D[0]/100*255),T=((F<<16)+(F<<8)+F).toString(16).toUpperCase();return"000000".substring(T.length)+T},m.rgb.gray=function(D){return[(D[0]+D[1]+D[2])/3/255*100]}},3205:(ht,Fe,p)=>{const Q=p(2348),B=p(8236),m={};Object.keys(Q).forEach(q=>{m[q]={},Object.defineProperty(m[q],"channels",{value:Q[q].channels}),Object.defineProperty(m[q],"labels",{value:Q[q].labels});const T=B(q);Object.keys(T).forEach(N=>{const j=T[N];m[q][N]=function F(q){const T=function(...G){const N=G[0];if(null==N)return N;N.length>1&&(G=N);const j=q(G);if("object"==typeof j)for(let L=j.length,X=0;X1&&(G=N),q(G))};return"conversion"in q&&(T.conversion=q.conversion),T}(j)})}),ht.exports=m},8236:(ht,Fe,p)=>{const Q=p(2348);function z(F,q){return function(T){return q(F(T))}}function D(F,q){const T=[q[F].parent,F];let G=Q[q[F].parent][F],N=q[F].parent;for(;q[N].parent;)T.unshift(q[N].parent),G=z(Q[q[N].parent][N],G),N=q[N].parent;return G.conversion=T,G}ht.exports=function(F){const q=function m(F){const q=function B(){const F={},q=Object.keys(Q);for(let T=q.length,G=0;G{"use strict";ht.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},9928:ht=>{var Fe,p;Fe="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",ht.exports=p={rotl:function(Q,B){return Q<>>32-B},rotr:function(Q,B){return Q<<32-B|Q>>>B},endian:function(Q){if(Q.constructor==Number)return 16711935&p.rotl(Q,8)|4278255360&p.rotl(Q,24);for(var B=0;B0;Q--)B.push(Math.floor(256*Math.random()));return B},bytesToWords:function(Q){for(var B=[],m=0,z=0;m>>5]|=Q[m]<<24-z%32;return B},wordsToBytes:function(Q){for(var B=[],m=0;m<32*Q.length;m+=8)B.push(Q[m>>>5]>>>24-m%32&255);return B},bytesToHex:function(Q){for(var B=[],m=0;m>>4).toString(16)),B.push((15&Q[m]).toString(16));return B.join("")},hexToBytes:function(Q){for(var B=[],m=0;m>>6*(3-D)&63):"=");return B.join("")},base64ToBytes:function(Q){Q=Q.replace(/[^A-Z0-9+\/]/gi,"");for(var B=[],m=0,z=0;m>>6-2*z);return B}}},243:ht=>{"use strict";var Fe={single_source_shortest_paths:function(p,Q,B){var m={},z={};z[Q]=0;var F,q,T,G,N,L,D=Fe.PriorityQueue.make();for(D.push(Q,0);!D.empty();)for(T in G=(F=D.pop()).cost,N=p[q=F.value]||{})N.hasOwnProperty(T)&&(L=G+N[T],(typeof z[T]>"u"||z[T]>L)&&(z[T]=L,D.push(T,L),m[T]=q));if(typeof B<"u"&&typeof z[B]>"u"){var ee=["Could not find a path from ",Q," to ",B,"."].join("");throw new Error(ee)}return m},extract_shortest_path_from_predecessor_list:function(p,Q){for(var B=[],m=Q;m;)B.push(m),m=p[m];return B.reverse(),B},find_path:function(p,Q,B){var m=Fe.single_source_shortest_paths(p,Q,B);return Fe.extract_shortest_path_from_predecessor_list(m,B)},PriorityQueue:{make:function(p){var m,Q=Fe.PriorityQueue,B={};for(m in p=p||{},Q)Q.hasOwnProperty(m)&&(B[m]=Q[m]);return B.queue=[],B.sorter=p.sorter||Q.default_sorter,B},default_sorter:function(p,Q){return p.cost-Q.cost},push:function(p,Q){this.queue.push({value:p,cost:Q}),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return 0===this.queue.length}}};ht.exports=Fe},3174:ht=>{"use strict";ht.exports=function(p){for(var Q=[],B=p.length,m=0;m=55296&&z<=56319&&B>m+1){var D=p.charCodeAt(m+1);D>=56320&&D<=57343&&(z=1024*(z-55296)+D-56320+65536,m+=1)}z<128?Q.push(z):z<2048?(Q.push(z>>6|192),Q.push(63&z|128)):z<55296||z>=57344&&z<65536?(Q.push(z>>12|224),Q.push(z>>6&63|128),Q.push(63&z|128)):z>=65536&&z<=1114111?(Q.push(z>>18|240),Q.push(z>>12&63|128),Q.push(z>>6&63|128),Q.push(63&z|128)):Q.push(239,191,189)}return new Uint8Array(Q).buffer}},362:ht=>{"use strict";ht.exports=function Fe(p,Q){if(p===Q)return!0;if(p&&Q&&"object"==typeof p&&"object"==typeof Q){if(p.constructor!==Q.constructor)return!1;var B,m,z;if(Array.isArray(p)){if((B=p.length)!=Q.length)return!1;for(m=B;0!=m--;)if(!Fe(p[m],Q[m]))return!1;return!0}if(p.constructor===RegExp)return p.source===Q.source&&p.flags===Q.flags;if(p.valueOf!==Object.prototype.valueOf)return p.valueOf()===Q.valueOf();if(p.toString!==Object.prototype.toString)return p.toString()===Q.toString();if((B=(z=Object.keys(p)).length)!==Object.keys(Q).length)return!1;for(m=B;0!=m--;)if(!Object.prototype.hasOwnProperty.call(Q,z[m]))return!1;for(m=B;0!=m--;){var D=z[m];if(!Fe(p[D],Q[D]))return!1}return!0}return p!=p&&Q!=Q}},8861:ht=>{"use strict";ht.exports=function(Fe,p){p||(p={}),"function"==typeof p&&(p={cmp:p});var Q="boolean"==typeof p.cycles&&p.cycles,B=p.cmp&&function(z){return function(D){return function(F,q){return z({key:F,value:D[F]},{key:q,value:D[q]})}}}(p.cmp),m=[];return function z(D){if(D&&D.toJSON&&"function"==typeof D.toJSON&&(D=D.toJSON()),void 0!==D){if("number"==typeof D)return isFinite(D)?""+D:"null";if("object"!=typeof D)return JSON.stringify(D);var F,q;if(Array.isArray(D)){for(q="[",F=0;F0&&O[O.length-1])&&(6===ze[0]||2===ze[0])){x=0;continue}if(3===ze[0]&&(!O||ze[1]>O[0]&&ze[1]=55296&&S<=56319&&x>10),Y%1024+56320),(S+1===x||w.length>16384)&&(O+=String.fromCharCode.apply(String,w),w.length=0)}return O},N="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",j=typeof Uint8Array>"u"?[]:new Uint8Array(256),L=0;L<64;L++)j[N.charCodeAt(L)]=L;for(var X="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",te=typeof Uint8Array>"u"?[]:new Uint8Array(256),ee=0;ee<64;ee++)te[X.charCodeAt(ee)]=ee;for(var Qt=function(v,g,x){return v.slice?v.slice(g,x):new Uint16Array(Array.prototype.slice.call(v,g,x))},Nn=function(){function v(g,x,w,S,O,Y){this.initialValue=g,this.errorValue=x,this.highStart=w,this.highValueIndex=S,this.index=O,this.data=Y}return v.prototype.get=function(g){var x;if(g>=0){if(g<55296||g>56319&&g<=65535)return this.data[x=((x=this.index[g>>5])<<2)+(31&g)];if(g<=65535)return this.data[x=((x=this.index[2048+(g-55296>>5)])<<2)+(31&g)];if(g>11)],this.data[x=((x=this.index[x+=g>>5&63])<<2)+(31&g)];if(g<=1114111)return this.data[this.highValueIndex]}return this.errorValue},v}(),pi="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Xn=typeof Uint8Array>"u"?[]:new Uint8Array(256),Fi=0;Fi<64;Fi++)Xn[pi.charCodeAt(Fi)]=Fi;var x,w,S,Y,de,Ji=10,ii=13,xo=15,Er=17,Ao=18,ja=19,lf=20,Du=21,Xs=22,Ks=24,jo=25,Al=26,cc=27,Td=28,dc=30,Nc=32,cf=33,ku=34,Wm=35,sa=37,Uc=38,Pu=39,Yi=40,uf=42,kb=[9001,65288],Li="\xd7",Oe=(x=function(v){var w,O,Y,de,ce,g=.75*v.length,x=v.length,S=0;"="===v[v.length-1]&&(g--,"="===v[v.length-2]&&g--);var ze=typeof ArrayBuffer<"u"&&typeof Uint8Array<"u"&&typeof Uint8Array.prototype.slice<"u"?new ArrayBuffer(g):new Array(g),Ze=Array.isArray(ze)?ze:new Uint8Array(ze);for(w=0;w>4,Ze[S++]=(15&Y)<<4|de>>2,Ze[S++]=(3&de)<<6|63&ce;return ze}("KwAAAAAAAAAACA4AUD0AADAgAAACAAAAAAAIABAAGABAAEgAUABYAGAAaABgAGgAYgBqAF8AZwBgAGgAcQB5AHUAfQCFAI0AlQCdAKIAqgCyALoAYABoAGAAaABgAGgAwgDKAGAAaADGAM4A0wDbAOEA6QDxAPkAAQEJAQ8BFwF1AH0AHAEkASwBNAE6AUIBQQFJAVEBWQFhAWgBcAF4ATAAgAGGAY4BlQGXAZ8BpwGvAbUBvQHFAc0B0wHbAeMB6wHxAfkBAQIJAvEBEQIZAiECKQIxAjgCQAJGAk4CVgJeAmQCbAJ0AnwCgQKJApECmQKgAqgCsAK4ArwCxAIwAMwC0wLbAjAA4wLrAvMC+AIAAwcDDwMwABcDHQMlAy0DNQN1AD0DQQNJA0kDSQNRA1EDVwNZA1kDdQB1AGEDdQBpA20DdQN1AHsDdQCBA4kDkQN1AHUAmQOhA3UAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AKYDrgN1AHUAtgO+A8YDzgPWAxcD3gPjA+sD8wN1AHUA+wMDBAkEdQANBBUEHQQlBCoEFwMyBDgEYABABBcDSARQBFgEYARoBDAAcAQzAXgEgASIBJAEdQCXBHUAnwSnBK4EtgS6BMIEyAR1AHUAdQB1AHUAdQCVANAEYABgAGAAYABgAGAAYABgANgEYADcBOQEYADsBPQE/AQEBQwFFAUcBSQFLAU0BWQEPAVEBUsFUwVbBWAAYgVgAGoFcgV6BYIFigWRBWAAmQWfBaYFYABgAGAAYABgAKoFYACxBbAFuQW6BcEFwQXHBcEFwQXPBdMF2wXjBeoF8gX6BQIGCgYSBhoGIgYqBjIGOgZgAD4GRgZMBmAAUwZaBmAAYABgAGAAYABgAGAAYABgAGAAYABgAGIGYABpBnAGYABgAGAAYABgAGAAYABgAGAAYAB4Bn8GhQZgAGAAYAB1AHcDFQSLBmAAYABgAJMGdQA9A3UAmwajBqsGqwaVALMGuwbDBjAAywbSBtIG1QbSBtIG0gbSBtIG0gbdBuMG6wbzBvsGAwcLBxMHAwcbByMHJwcsBywHMQcsB9IGOAdAB0gHTgfSBkgHVgfSBtIG0gbSBtIG0gbSBtIG0gbSBiwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdgAGAALAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdbB2MHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB2kH0gZwB64EdQB1AHUAdQB1AHUAdQB1AHUHfQdgAIUHjQd1AHUAlQedB2AAYAClB6sHYACzB7YHvgfGB3UAzgfWBzMB3gfmB1EB7gf1B/0HlQENAQUIDQh1ABUIHQglCBcDLQg1CD0IRQhNCEEDUwh1AHUAdQBbCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIcAh3CHoIMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIgggwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAALAcsBywHLAcsBywHLAcsBywHLAcsB4oILAcsB44I0gaWCJ4Ipgh1AHUAqgiyCHUAdQB1AHUAdQB1AHUAdQB1AHUAtwh8AXUAvwh1AMUIyQjRCNkI4AjoCHUAdQB1AO4I9gj+CAYJDgkTCS0HGwkjCYIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiAAIAAAAFAAYABgAGIAXwBgAHEAdQBFAJUAogCyAKAAYABgAEIA4ABGANMA4QDxAMEBDwE1AFwBLAE6AQEBUQF4QkhCmEKoQrhCgAHIQsAB0MLAAcABwAHAAeDC6ABoAHDCwMMAAcABwAHAAdDDGMMAAcAB6MM4wwjDWMNow3jDaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAEjDqABWw6bDqABpg6gAaABoAHcDvwOPA+gAaABfA/8DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DpcPAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcAB9cPKwkyCToJMAB1AHUAdQBCCUoJTQl1AFUJXAljCWcJawkwADAAMAAwAHMJdQB2CX4JdQCECYoJjgmWCXUAngkwAGAAYABxAHUApgn3A64JtAl1ALkJdQDACTAAMAAwADAAdQB1AHUAdQB1AHUAdQB1AHUAowYNBMUIMAAwADAAMADICcsJ0wnZCRUE4QkwAOkJ8An4CTAAMAB1AAAKvwh1AAgKDwoXCh8KdQAwACcKLgp1ADYKqAmICT4KRgowADAAdQB1AE4KMAB1AFYKdQBeCnUAZQowADAAMAAwADAAMAAwADAAMAAVBHUAbQowADAAdQC5CXUKMAAwAHwBxAijBogEMgF9CoQKiASMCpQKmgqIBKIKqgquCogEDQG2Cr4KxgrLCjAAMADTCtsKCgHjCusK8Qr5CgELMAAwADAAMAB1AIsECQsRC3UANAEZCzAAMAAwADAAMAB1ACELKQswAHUANAExCzkLdQBBC0kLMABRC1kLMAAwADAAMAAwADAAdQBhCzAAMAAwAGAAYABpC3ELdwt/CzAAMACHC4sLkwubC58Lpwt1AK4Ltgt1APsDMAAwADAAMAAwADAAMAAwAL4LwwvLC9IL1wvdCzAAMADlC+kL8Qv5C/8LSQswADAAMAAwADAAMAAwADAAMAAHDDAAMAAwADAAMAAODBYMHgx1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1ACYMMAAwADAAdQB1AHUALgx1AHUAdQB1AHUAdQA2DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AD4MdQBGDHUAdQB1AHUAdQB1AEkMdQB1AHUAdQB1AFAMMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQBYDHUAdQB1AF8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUA+wMVBGcMMAAwAHwBbwx1AHcMfwyHDI8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAYABgAJcMMAAwADAAdQB1AJ8MlQClDDAAMACtDCwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB7UMLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AA0EMAC9DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAsBywHLAcsBywHLAcsBywHLQcwAMEMyAwsBywHLAcsBywHLAcsBywHLAcsBywHzAwwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1ANQM2QzhDDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMABgAGAAYABgAGAAYABgAOkMYADxDGAA+AwADQYNYABhCWAAYAAODTAAMAAwADAAFg1gAGAAHg37AzAAMAAwADAAYABgACYNYAAsDTQNPA1gAEMNPg1LDWAAYABgAGAAYABgAGAAYABgAGAAUg1aDYsGVglhDV0NcQBnDW0NdQ15DWAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAlQCBDZUAiA2PDZcNMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAnw2nDTAAMAAwADAAMAAwAHUArw23DTAAMAAwADAAMAAwADAAMAAwADAAMAB1AL8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQDHDTAAYABgAM8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA1w11ANwNMAAwAD0B5A0wADAAMAAwADAAMADsDfQN/A0EDgwOFA4wABsOMAAwADAAMAAwADAAMAAwANIG0gbSBtIG0gbSBtIG0gYjDigOwQUuDsEFMw7SBjoO0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGQg5KDlIOVg7SBtIGXg5lDm0OdQ7SBtIGfQ6EDooOjQ6UDtIGmg6hDtIG0gaoDqwO0ga0DrwO0gZgAGAAYADEDmAAYAAkBtIGzA5gANIOYADaDokO0gbSBt8O5w7SBu8O0gb1DvwO0gZgAGAAxA7SBtIG0gbSBtIGYABgAGAAYAAED2AAsAUMD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHJA8sBywHLAcsBywHLAccDywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywPLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAc0D9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHPA/SBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gYUD0QPlQCVAJUAMAAwADAAMACVAJUAlQCVAJUAlQCVAEwPMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA//8EAAQABAAEAAQABAAEAAQABAANAAMAAQABAAIABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQACgATABcAHgAbABoAHgAXABYAEgAeABsAGAAPABgAHABLAEsASwBLAEsASwBLAEsASwBLABgAGAAeAB4AHgATAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABYAGwASAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWAA0AEQAeAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAFAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJABYAGgAbABsAGwAeAB0AHQAeAE8AFwAeAA0AHgAeABoAGwBPAE8ADgBQAB0AHQAdAE8ATwAXAE8ATwBPABYAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAFAATwBAAE8ATwBPAEAATwBQAFAATwBQAB4AHgAeAB4AHgAeAB0AHQAdAB0AHgAdAB4ADgBQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgBQAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAkACQAJAAkACQAJAAkABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAFAAHgAeAB4AKwArAFAAUABQAFAAGABQACsAKwArACsAHgAeAFAAHgBQAFAAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUAAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAYAA0AKwArAB4AHgAbACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAB4ABAAEAB4ABAAEABMABAArACsAKwArACsAKwArACsAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAKwArACsAKwBWAFYAVgBWAB4AHgArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AGgAaABoAGAAYAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQAEwAEACsAEwATAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABLAEsASwBLAEsASwBLAEsASwBLABoAGQAZAB4AUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABMAUAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABABQAFAABAAEAB4ABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUAAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAFAABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQAUABQAB4AHgAYABMAUAArACsABAAbABsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAFAABAAEAAQABAAEAFAABAAEAAQAUAAEAAQABAAEAAQAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArACsAHgArAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAUAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEAA0ADQBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUAArACsAKwBQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABABQACsAKwArACsAKwArACsAKwAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUAAaABoAUABQAFAAUABQAEwAHgAbAFAAHgAEACsAKwAEAAQABAArAFAAUABQAFAAUABQACsAKwArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQACsAUABQACsAKwAEACsABAAEAAQABAAEACsAKwArACsABAAEACsAKwAEAAQABAArACsAKwAEACsAKwArACsAKwArACsAUABQAFAAUAArAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLAAQABABQAFAAUAAEAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAArACsAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AGwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAKwArACsAKwArAAQABAAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAAQAUAArAFAAUABQAFAAUABQACsAKwArAFAAUABQACsAUABQAFAAUAArACsAKwBQAFAAKwBQACsAUABQACsAKwArAFAAUAArACsAKwBQAFAAUAArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArAAQABAAEAAQABAArACsAKwAEAAQABAArAAQABAAEAAQAKwArAFAAKwArACsAKwArACsABAArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAHgAeAB4AHgAeAB4AGwAeACsAKwArACsAKwAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAUABQAFAAKwArACsAKwArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwAOAFAAUABQAFAAUABQAFAAHgBQAAQABAAEAA4AUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAKwArAAQAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAKwArACsAKwArACsAUAArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABABQAB4AKwArACsAKwBQAFAAUAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQABoAUABQAFAAUABQAFAAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQACsAUAArACsAUABQAFAAUABQAFAAUAArACsAKwAEACsAKwArACsABAAEAAQABAAEAAQAKwAEACsABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArAAQABAAeACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAXAAqACoAKgAqACoAKgAqACsAKwArACsAGwBcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAeAEsASwBLAEsASwBLAEsASwBLAEsADQANACsAKwArACsAKwBcAFwAKwBcACsAXABcAFwAXABcACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAXAArAFwAXABcAFwAXABcAFwAXABcAFwAKgBcAFwAKgAqACoAKgAqACoAKgAqACoAXAArACsAXABcAFwAXABcACsAXAArACoAKgAqACoAKgAqACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwBcAFwAXABcAFAADgAOAA4ADgAeAA4ADgAJAA4ADgANAAkAEwATABMAEwATAAkAHgATAB4AHgAeAAQABAAeAB4AHgAeAB4AHgBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQAFAADQAEAB4ABAAeAAQAFgARABYAEQAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAAQABAAEAAQADQAEAAQAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAA0ADQAeAB4AHgAeAB4AHgAEAB4AHgAeAB4AHgAeACsAHgAeAA4ADgANAA4AHgAeAB4AHgAeAAkACQArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgBcAEsASwBLAEsASwBLAEsASwBLAEsADQANAB4AHgAeAB4AXABcAFwAXABcAFwAKgAqACoAKgBcAFwAXABcACoAKgAqAFwAKgAqACoAXABcACoAKgAqACoAKgAqACoAXABcAFwAKgAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqAFwAKgBLAEsASwBLAEsASwBLAEsASwBLACoAKgAqACoAKgAqAFAAUABQAFAAUABQACsAUAArACsAKwArACsAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAKwBQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsABAAEAAQAHgANAB4AHgAeAB4AHgAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUAArACsADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWABEAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQANAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAANAA0AKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUAArAAQABAArACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqAA0ADQAVAFwADQAeAA0AGwBcACoAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwAeAB4AEwATAA0ADQAOAB4AEwATAB4ABAAEAAQACQArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAHgArACsAKwATABMASwBLAEsASwBLAEsASwBLAEsASwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAXABcAFwAXABcACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAXAArACsAKwAqACoAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsAHgAeAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKwAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKwArAAQASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACoAKgAqACoAKgAqACoAXAAqACoAKgAqACoAKgArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABABQAFAAUABQAFAAUABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwANAA0AHgANAA0ADQANAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwAeAB4AHgAeAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArAA0ADQANAA0ADQBLAEsASwBLAEsASwBLAEsASwBLACsAKwArAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUAAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAAQAUABQAFAAUABQAFAABABQAFAABAAEAAQAUAArACsAKwArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQACsAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAFAAUABQACsAHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQACsAKwAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQACsAHgAeAB4AHgAeAB4AHgAOAB4AKwANAA0ADQANAA0ADQANAAkADQANAA0ACAAEAAsABAAEAA0ACQANAA0ADAAdAB0AHgAXABcAFgAXABcAFwAWABcAHQAdAB4AHgAUABQAFAANAAEAAQAEAAQABAAEAAQACQAaABoAGgAaABoAGgAaABoAHgAXABcAHQAVABUAHgAeAB4AHgAeAB4AGAAWABEAFQAVABUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ADQAeAA0ADQANAA0AHgANAA0ADQAHAB4AHgAeAB4AKwAEAAQABAAEAAQABAAEAAQABAAEAFAAUAArACsATwBQAFAAUABQAFAAHgAeAB4AFgARAE8AUABPAE8ATwBPAFAAUABQAFAAUAAeAB4AHgAWABEAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArABsAGwAbABsAGwAbABsAGgAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGgAbABsAGwAbABoAGwAbABoAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAHgAeAFAAGgAeAB0AHgBQAB4AGgAeAB4AHgAeAB4AHgAeAB4AHgBPAB4AUAAbAB4AHgBQAFAAUABQAFAAHgAeAB4AHQAdAB4AUAAeAFAAHgBQAB4AUABPAFAAUAAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgBQAFAAUABQAE8ATwBQAFAAUABQAFAATwBQAFAATwBQAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAUABQAFAATwBPAE8ATwBPAE8ATwBPAE8ATwBQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABPAB4AHgArACsAKwArAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHQAdAB4AHgAeAB0AHQAeAB4AHQAeAB4AHgAdAB4AHQAbABsAHgAdAB4AHgAeAB4AHQAeAB4AHQAdAB0AHQAeAB4AHQAeAB0AHgAdAB0AHQAdAB0AHQAeAB0AHgAeAB4AHgAeAB0AHQAdAB0AHgAeAB4AHgAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeAB0AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAeAB0AHQAdAB0AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAWABEAHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAWABEAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AHQAdAB0AHgAeAB0AHgAeAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlAB4AHQAdAB4AHgAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AJQAlAB0AHQAlAB4AJQAlACUAIAAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAdAB0AHQAeAB0AJQAdAB0AHgAdAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAdAB0AHQAdACUAHgAlACUAJQAdACUAJQAdAB0AHQAlACUAHQAdACUAHQAdACUAJQAlAB4AHQAeAB4AHgAeAB0AHQAlAB0AHQAdAB0AHQAdACUAJQAlACUAJQAdACUAJQAgACUAHQAdACUAJQAlACUAJQAlACUAJQAeAB4AHgAlACUAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AFwAXABcAFwAXABcAHgATABMAJQAeAB4AHgAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARABYAEQAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAEAAQABAAeAB4AKwArACsAKwArABMADQANAA0AUAATAA0AUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUAANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAA0ADQANAA0ADQANAA0ADQAeAA0AFgANAB4AHgAXABcAHgAeABcAFwAWABEAFgARABYAEQAWABEADQANAA0ADQATAFAADQANAB4ADQANAB4AHgAeAB4AHgAMAAwADQANAA0AHgANAA0AFgANAA0ADQANAA0ADQANAA0AHgANAB4ADQANAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArAA0AEQARACUAJQBHAFcAVwAWABEAFgARABYAEQAWABEAFgARACUAJQAWABEAFgARABYAEQAWABEAFQAWABEAEQAlAFcAVwBXAFcAVwBXAFcAVwBXAAQABAAEAAQABAAEACUAVwBXAFcAVwA2ACUAJQBXAFcAVwBHAEcAJQAlACUAKwBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBRAFcAUQBXAFEAVwBXAFcAVwBXAFcAUQBXAFcAVwBXAFcAVwBRAFEAKwArAAQABAAVABUARwBHAFcAFQBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBRAFcAVwBXAFcAVwBXAFEAUQBXAFcAVwBXABUAUQBHAEcAVwArACsAKwArACsAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwAlACUAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACsAKwArACsAKwArACsAKwArACsAKwArAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBPAE8ATwBPAE8ATwBPAE8AJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADQATAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABLAEsASwBLAEsASwBLAEsASwBLAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAABAAEAAQABAAeAAQABAAEAAQABAAEAAQABAAEAAQAHgBQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAeAA0ADQANAA0ADQArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAAQAUABQAFAABABQAFAAUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAeAB4AHgAeAAQAKwArACsAUABQAFAAUABQAFAAHgAeABoAHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADgAOABMAEwArACsAKwArACsAKwArACsABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwANAA0ASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUAAeAB4AHgBQAA4AUABQAAQAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArAB4AWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYACsAKwArAAQAHgAeAB4AHgAeAB4ADQANAA0AHgAeAB4AHgArAFAASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArAB4AHgBcAFwAXABcAFwAKgBcAFwAXABcAFwAXABcAFwAXABcAEsASwBLAEsASwBLAEsASwBLAEsAXABcAFwAXABcACsAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAFAAUABQAAQAUABQAFAAUABQAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAHgANAA0ADQBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAXAAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAKgAqACoAXABcACoAKgBcAFwAXABcAFwAKgAqAFwAKgBcACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcACoAKgBQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAA0ADQBQAFAAUAAEAAQAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQADQAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAVABVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBUAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVACsAKwArACsAKwArACsAKwArACsAKwArAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAKwArACsAKwBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAKwArACsAKwAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAKwArACsAKwArAFYABABWAFYAVgBWAFYAVgBWAFYAVgBWAB4AVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgArAFYAVgBWAFYAVgArAFYAKwBWAFYAKwBWAFYAKwBWAFYAVgBWAFYAVgBWAFYAVgBWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAEQAWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAaAB4AKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAGAARABEAGAAYABMAEwAWABEAFAArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACUAJQAlACUAJQAWABEAFgARABYAEQAWABEAFgARABYAEQAlACUAFgARACUAJQAlACUAJQAlACUAEQAlABEAKwAVABUAEwATACUAFgARABYAEQAWABEAJQAlACUAJQAlACUAJQAlACsAJQAbABoAJQArACsAKwArAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAcAKwATACUAJQAbABoAJQAlABYAEQAlACUAEQAlABEAJQBXAFcAVwBXAFcAVwBXAFcAVwBXABUAFQAlACUAJQATACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXABYAJQARACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAWACUAEQAlABYAEQARABYAEQARABUAVwBRAFEAUQBRAFEAUQBRAFEAUQBRAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcARwArACsAVwBXAFcAVwBXAFcAKwArAFcAVwBXAFcAVwBXACsAKwBXAFcAVwBXAFcAVwArACsAVwBXAFcAKwArACsAGgAbACUAJQAlABsAGwArAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAAQAB0AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsADQANAA0AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAA0AUABQAFAAUAArACsAKwArAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwArAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwBQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAUABQAFAAUABQAAQABAAEACsABAAEACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAKwBQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAA0ADQANAA0ADQANAA0ADQAeACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAArACsAKwArAFAAUABQAFAAUAANAA0ADQANAA0ADQAUACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsADQANAA0ADQANAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArAAQABAANACsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAB4AHgAeAB4AHgArACsAKwArACsAKwAEAAQABAAEAAQABAAEAA0ADQAeAB4AHgAeAB4AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsASwBLAEsASwBLAEsASwBLAEsASwANAA0ADQANAFAABAAEAFAAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAeAA4AUAArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAADQANAB4ADQAEAAQABAAEAB4ABAAEAEsASwBLAEsASwBLAEsASwBLAEsAUAAOAFAADQANAA0AKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAANAA0AHgANAA0AHgAEACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAA0AKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsABAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsABAAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAUAArACsAKwArACsAKwAEACsAKwArACsAKwBQAFAAUABQAFAABAAEACsAKwAEAAQABAAEAAQABAAEACsAKwArAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABABQAFAAUABQAA0ADQANAA0AHgBLAEsASwBLAEsASwBLAEsASwBLAA0ADQArAB4ABABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUAAeAFAAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABAAEAAQADgANAA0AEwATAB4AHgAeAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAFAAUABQAFAABAAEACsAKwAEAA0ADQAeAFAAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKwArACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBcAFwADQANAA0AKgBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAKwArAFAAKwArAFAAUABQAFAAUABQAFAAUAArAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQAKwAEAAQAKwArAAQABAAEAAQAUAAEAFAABAAEAA0ADQANACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABABQAA4AUAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAFAABAAEAAQABAAOAB4ADQANAA0ADQAOAB4ABAArACsAKwArACsAKwArACsAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAA0ADQANAFAADgAOAA4ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAAQABAAEAFAADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAOABMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAArACsAKwAEACsABAAEACsABAAEAAQABAAEAAQABABQAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAaABoAGgAaAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABIAEgAQwBDAEMAUABQAFAAUABDAFAAUABQAEgAQwBIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABDAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAJAAkACQAJAAkACQAJABYAEQArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwANAA0AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAANACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAA0ADQANAB4AHgAeAB4AHgAeAFAAUABQAFAADQAeACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAA0AHgAeACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAARwBHABUARwAJACsAKwArACsAKwArACsAKwArACsAKwAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUQBRAFEAKwArACsAKwArACsAKwArACsAKwArACsAKwBRAFEAUQBRACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAHgAEAAQADQAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQABAAEAAQABAAeAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQAHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAKwArAFAAKwArAFAAUAArACsAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUAArAFAAUABQAFAAUABQAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAHgAeAFAAUABQAFAAUAArAFAAKwArACsAUABQAFAAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeACsAKwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4ABAAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAHgAeAA0ADQANAA0AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArAAQABAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwBQAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArABsAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAB4AHgAeAB4ABAAEAAQABAAEAAQABABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArABYAFgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAGgBQAFAAUAAaAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUAArACsAKwArACsAKwBQACsAKwArACsAUAArAFAAKwBQACsAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUAArAFAAKwBQACsAUAArAFAAUAArAFAAKwArAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAKwBQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8AJQAlACUAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB4AHgAeACUAJQAlAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAlACUAJQAlACUAHgAlACUAJQAlACUAIAAgACAAJQAlACAAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACEAIQAhACEAIQAlACUAIAAgACUAJQAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAIAAlACUAJQAlACAAIAAgACUAIAAgACAAJQAlACUAJQAlACUAJQAgACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAlAB4AJQAeACUAJQAlACUAJQAgACUAJQAlACUAHgAlAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACAAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABcAFwAXABUAFQAVAB4AHgAeAB4AJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAgACUAJQAgACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAIAAgACUAJQAgACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACAAIAAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACAAIAAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAA=="),w=Array.isArray(x)?function(v){for(var g=v.length,x=[],w=0;w0;){var de=w[--O];if(Array.isArray(v)?-1!==v.indexOf(de):v===de)for(var ce=x;ce<=w.length;){var Y;if((Y=w[++ce])===g)return!0;if(Y!==Ji)break}if(de!==Ji)break}return!1},Ui=function(v,g){for(var x=v;x>=0;){var w=g[x];if(w!==Ji)return w;x--}return 0},ro=function(v,g,x,w,S){if(0===x[w])return Li;var O=w-1;if(Array.isArray(S)&&!0===S[O])return Li;var Y=O-1,de=O+1,ce=g[O],ze=Y>=0?g[Y]:0,Ze=g[de];if(2===ce&&3===Ze)return Li;if(-1!==Be.indexOf(ce))return"!";if(-1!==Be.indexOf(Ze)||-1!==wt.indexOf(Ze))return Li;if(8===Ui(O,g))return"\xf7";if(11===Oe.get(v[O])||(ce===Nc||ce===cf)&&11===Oe.get(v[de])||7===ce||7===Ze||9===ce||-1===[Ji,ii,xo].indexOf(ce)&&9===Ze||-1!==[Er,Ao,ja,Ks,Td].indexOf(Ze)||Ui(O,g)===Xs||Nr(23,Xs,O,g)||Nr([Er,Ao],Du,O,g)||Nr(12,12,O,g))return Li;if(ce===Ji)return"\xf7";if(23===ce||23===Ze)return Li;if(16===Ze||16===ce)return"\xf7";if(-1!==[ii,xo,Du].indexOf(Ze)||14===ce||36===ze&&-1!==dt.indexOf(ce)||ce===Td&&36===Ze||Ze===lf||-1!==le.indexOf(Ze)&&ce===jo||-1!==le.indexOf(ce)&&Ze===jo||ce===cc&&-1!==[sa,Nc,cf].indexOf(Ze)||-1!==[sa,Nc,cf].indexOf(ce)&&Ze===Al||-1!==le.indexOf(ce)&&-1!==Ge.indexOf(Ze)||-1!==Ge.indexOf(ce)&&-1!==le.indexOf(Ze)||-1!==[cc,Al].indexOf(ce)&&(Ze===jo||-1!==[Xs,xo].indexOf(Ze)&&g[de+1]===jo)||-1!==[Xs,xo].indexOf(ce)&&Ze===jo||ce===jo&&-1!==[jo,Td,Ks].indexOf(Ze))return Li;if(-1!==[jo,Td,Ks,Er,Ao].indexOf(Ze))for(var ct=O;ct>=0;){if((Mt=g[ct])===jo)return Li;if(-1===[Td,Ks].indexOf(Mt))break;ct--}if(-1!==[cc,Al].indexOf(Ze))for(ct=-1!==[Er,Ao].indexOf(ce)?Y:O;ct>=0;){var Mt;if((Mt=g[ct])===jo)return Li;if(-1===[Td,Ks].indexOf(Mt))break;ct--}if(Uc===ce&&-1!==[Uc,Pu,ku,Wm].indexOf(Ze)||-1!==[Pu,ku].indexOf(ce)&&-1!==[Pu,Yi].indexOf(Ze)||-1!==[Yi,Wm].indexOf(ce)&&Ze===Yi||-1!==Ai.indexOf(ce)&&-1!==[lf,Al].indexOf(Ze)||-1!==Ai.indexOf(Ze)&&ce===cc||-1!==le.indexOf(ce)&&-1!==le.indexOf(Ze)||ce===Ks&&-1!==le.indexOf(Ze)||-1!==le.concat(jo).indexOf(ce)&&Ze===Xs&&-1===kb.indexOf(v[de])||-1!==le.concat(jo).indexOf(Ze)&&ce===Ao)return Li;if(41===ce&&41===Ze){for(var xn=x[O],on=1;xn>0&&41===g[--xn];)on++;if(on%2!=0)return Li}return ce===Nc&&Ze===cf?Li:"\xf7"},Io=function(v,g){g||(g={lineBreak:"normal",wordBreak:"normal"});var x=function(v,g){void 0===g&&(g="strict");var x=[],w=[],S=[];return v.forEach(function(O,Y){var de=Oe.get(O);if(de>50?(S.push(!0),de-=50):S.push(!1),-1!==["normal","auto","loose"].indexOf(g)&&-1!==[8208,8211,12316,12448].indexOf(O))return w.push(Y),x.push(16);if(4===de||11===de){if(0===Y)return w.push(Y),x.push(dc);var ce=x[Y-1];return-1===En.indexOf(ce)?(w.push(w[Y-1]),x.push(ce)):(w.push(Y),x.push(dc))}return w.push(Y),31===de?x.push("strict"===g?Du:sa):de===uf||29===de?x.push(dc):43===de?x.push(O>=131072&&O<=196605||O>=196608&&O<=262141?sa:dc):void x.push(de)}),[w,x,S]}(v,g.lineBreak),w=x[0],S=x[1],O=x[2];return("break-all"===g.wordBreak||"break-word"===g.wordBreak)&&(S=S.map(function(de){return-1!==[jo,dc,uf].indexOf(de)?sa:de})),[w,S,"keep-all"===g.wordBreak?O.map(function(de,ce){return de&&v[ce]>=19968&&v[ce]<=40959}):void 0]},Ur=function(){function v(g,x,w,S){this.codePoints=g,this.required="!"===x,this.start=w,this.end=S}return v.prototype.slice=function(){return G.apply(void 0,this.codePoints.slice(this.start,this.end))},v}(),hs=function(v){return v>=48&&v<=57},Km=function(v){return hs(v)||v>=65&&v<=70||v>=97&&v<=102},gf=function(v){return 10===v||9===v||32===v},_f=function(v){return function(v){return function(v){return v>=97&&v<=122}(v)||function(v){return v>=65&&v<=90}(v)}(v)||function(v){return v>=128}(v)||95===v},Vb=function(v){return _f(v)||hs(v)||45===v},Hc=function(v){return v>=0&&v<=8||11===v||v>=14&&v<=31||127===v},Xa=function(v,g){return 92===v&&10!==g},Zm=function(v,g,x){return 45===v?_f(g)||Xa(g,x):!!_f(v)||!(92!==v||!Xa(v,g))},ci=function(v,g,x){return 43===v||45===v?!!hs(g)||46===g&&hs(x):hs(46===v?g:v)},br=function(v){var g=0,x=1;(43===v[g]||45===v[g])&&(45===v[g]&&(x=-1),g++);for(var w=[];hs(v[g]);)w.push(v[g++]);var S=w.length?parseInt(G.apply(void 0,w),10):0;46===v[g]&&g++;for(var O=[];hs(v[g]);)O.push(v[g++]);var Y=O.length,de=Y?parseInt(G.apply(void 0,O),10):0;(69===v[g]||101===v[g])&&g++;var ce=1;(43===v[g]||45===v[g])&&(45===v[g]&&(ce=-1),g++);for(var ze=[];hs(v[g]);)ze.push(v[g++]);var Ze=ze.length?parseInt(G.apply(void 0,ze),10):0;return x*(S+de*Math.pow(10,-Y))*Math.pow(10,ce*Ze)},wU={type:2},nF={type:3},iF={type:4},xU={type:13},rF={type:8},Qb={type:21},nr={type:9},zb={type:10},Bx={type:11},la={type:12},Px={type:14},qb={type:23},CU={type:1},Jm={type:25},Gb={type:24},cg={type:26},oF={type:27},sF={type:28},aF={type:29},Rx={type:31},Fd={type:32},Lx=function(){function v(){this._value=[]}return v.prototype.write=function(g){this._value=this._value.concat(T(g))},v.prototype.read=function(){for(var g=[],x=this.consumeToken();x!==Fd;)g.push(x),x=this.consumeToken();return g},v.prototype.consumeToken=function(){var g=this.consumeCodePoint();switch(g){case 34:return this.consumeStringToken(34);case 35:var x=this.peekCodePoint(0),w=this.peekCodePoint(1),S=this.peekCodePoint(2);if(Vb(x)||Xa(w,S)){var O=Zm(x,w,S)?2:1;return{type:5,value:this.consumeName(),flags:O}}break;case 36:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),xU;break;case 39:return this.consumeStringToken(39);case 40:return wU;case 41:return nF;case 42:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),Px;break;case 43:if(ci(g,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(g),this.consumeNumericToken();break;case 44:return iF;case 45:var de=g,ce=this.peekCodePoint(0),ze=this.peekCodePoint(1);if(ci(de,ce,ze))return this.reconsumeCodePoint(g),this.consumeNumericToken();if(Zm(de,ce,ze))return this.reconsumeCodePoint(g),this.consumeIdentLikeToken();if(45===ce&&62===ze)return this.consumeCodePoint(),this.consumeCodePoint(),Gb;break;case 46:if(ci(g,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(g),this.consumeNumericToken();break;case 47:if(42===this.peekCodePoint(0))for(this.consumeCodePoint();;){var Ze=this.consumeCodePoint();if(42===Ze&&47===(Ze=this.consumeCodePoint()))return this.consumeToken();if(-1===Ze)return this.consumeToken()}break;case 58:return cg;case 59:return oF;case 60:if(33===this.peekCodePoint(0)&&45===this.peekCodePoint(1)&&45===this.peekCodePoint(2))return this.consumeCodePoint(),this.consumeCodePoint(),Jm;break;case 64:var ct=this.peekCodePoint(0),Mt=this.peekCodePoint(1),xn=this.peekCodePoint(2);if(Zm(ct,Mt,xn))return{type:7,value:this.consumeName()};break;case 91:return sF;case 92:if(Xa(g,this.peekCodePoint(0)))return this.reconsumeCodePoint(g),this.consumeIdentLikeToken();break;case 93:return aF;case 61:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),rF;break;case 123:return Bx;case 125:return la;case 117:case 85:var on=this.peekCodePoint(0),mn=this.peekCodePoint(1);return 43===on&&(Km(mn)||63===mn)&&(this.consumeCodePoint(),this.consumeUnicodeRangeToken()),this.reconsumeCodePoint(g),this.consumeIdentLikeToken();case 124:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),nr;if(124===this.peekCodePoint(0))return this.consumeCodePoint(),Qb;break;case 126:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),zb;break;case-1:return Fd}return gf(g)?(this.consumeWhiteSpace(),Rx):hs(g)?(this.reconsumeCodePoint(g),this.consumeNumericToken()):_f(g)?(this.reconsumeCodePoint(g),this.consumeIdentLikeToken()):{type:6,value:G(g)}},v.prototype.consumeCodePoint=function(){var g=this._value.shift();return typeof g>"u"?-1:g},v.prototype.reconsumeCodePoint=function(g){this._value.unshift(g)},v.prototype.peekCodePoint=function(g){return g>=this._value.length?-1:this._value[g]},v.prototype.consumeUnicodeRangeToken=function(){for(var g=[],x=this.consumeCodePoint();Km(x)&&g.length<6;)g.push(x),x=this.consumeCodePoint();for(var w=!1;63===x&&g.length<6;)g.push(x),x=this.consumeCodePoint(),w=!0;if(w)return{type:30,start:parseInt(G.apply(void 0,g.map(function(ce){return 63===ce?48:ce})),16),end:parseInt(G.apply(void 0,g.map(function(ce){return 63===ce?70:ce})),16)};var Y=parseInt(G.apply(void 0,g),16);if(45===this.peekCodePoint(0)&&Km(this.peekCodePoint(1))){this.consumeCodePoint(),x=this.consumeCodePoint();for(var de=[];Km(x)&&de.length<6;)de.push(x),x=this.consumeCodePoint();return{type:30,start:Y,end:parseInt(G.apply(void 0,de),16)}}return{type:30,start:Y,end:Y}},v.prototype.consumeIdentLikeToken=function(){var g=this.consumeName();return"url"===g.toLowerCase()&&40===this.peekCodePoint(0)?(this.consumeCodePoint(),this.consumeUrlToken()):40===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:19,value:g}):{type:20,value:g}},v.prototype.consumeUrlToken=function(){var g=[];if(this.consumeWhiteSpace(),-1===this.peekCodePoint(0))return{type:22,value:""};var x=this.peekCodePoint(0);if(39===x||34===x){var w=this.consumeStringToken(this.consumeCodePoint());return 0===w.type&&(this.consumeWhiteSpace(),-1===this.peekCodePoint(0)||41===this.peekCodePoint(0))?(this.consumeCodePoint(),{type:22,value:w.value}):(this.consumeBadUrlRemnants(),qb)}for(;;){var S=this.consumeCodePoint();if(-1===S||41===S)return{type:22,value:G.apply(void 0,g)};if(gf(S))return this.consumeWhiteSpace(),-1===this.peekCodePoint(0)||41===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:22,value:G.apply(void 0,g)}):(this.consumeBadUrlRemnants(),qb);if(34===S||39===S||40===S||Hc(S))return this.consumeBadUrlRemnants(),qb;if(92===S){if(!Xa(S,this.peekCodePoint(0)))return this.consumeBadUrlRemnants(),qb;g.push(this.consumeEscapedCodePoint())}else g.push(S)}},v.prototype.consumeWhiteSpace=function(){for(;gf(this.peekCodePoint(0));)this.consumeCodePoint()},v.prototype.consumeBadUrlRemnants=function(){for(;;){var g=this.consumeCodePoint();if(41===g||-1===g)return;Xa(g,this.peekCodePoint(0))&&this.consumeEscapedCodePoint()}},v.prototype.consumeStringSlice=function(g){for(var w="";g>0;){var S=Math.min(5e4,g);w+=G.apply(void 0,this._value.splice(0,S)),g-=S}return this._value.shift(),w},v.prototype.consumeStringToken=function(g){for(var x="",w=0;;){var S=this._value[w];if(-1===S||void 0===S||S===g)return{type:0,value:x+=this.consumeStringSlice(w)};if(10===S)return this._value.splice(0,w),CU;if(92===S){var O=this._value[w+1];-1!==O&&void 0!==O&&(10===O?(x+=this.consumeStringSlice(w),w=-1,this._value.shift()):Xa(S,O)&&(x+=this.consumeStringSlice(w),x+=G(this.consumeEscapedCodePoint()),w=-1))}w++}},v.prototype.consumeNumber=function(){var g=[],x=4,w=this.peekCodePoint(0);for((43===w||45===w)&&g.push(this.consumeCodePoint());hs(this.peekCodePoint(0));)g.push(this.consumeCodePoint());w=this.peekCodePoint(0);var S=this.peekCodePoint(1);if(46===w&&hs(S))for(g.push(this.consumeCodePoint(),this.consumeCodePoint()),x=8;hs(this.peekCodePoint(0));)g.push(this.consumeCodePoint());w=this.peekCodePoint(0),S=this.peekCodePoint(1);var O=this.peekCodePoint(2);if((69===w||101===w)&&((43===S||45===S)&&hs(O)||hs(S)))for(g.push(this.consumeCodePoint(),this.consumeCodePoint()),x=8;hs(this.peekCodePoint(0));)g.push(this.consumeCodePoint());return[br(g),x]},v.prototype.consumeNumericToken=function(){var g=this.consumeNumber(),x=g[0],w=g[1],S=this.peekCodePoint(0),O=this.peekCodePoint(1),Y=this.peekCodePoint(2);return Zm(S,O,Y)?{type:15,number:x,flags:w,unit:this.consumeName()}:37===S?(this.consumeCodePoint(),{type:16,number:x,flags:w}):{type:17,number:x,flags:w}},v.prototype.consumeEscapedCodePoint=function(){var g=this.consumeCodePoint();if(Km(g)){for(var x=G(g);Km(this.peekCodePoint(0))&&x.length<6;)x+=G(this.consumeCodePoint());gf(this.peekCodePoint(0))&&this.consumeCodePoint();var w=parseInt(x,16);return 0===w||function(v){return v>=55296&&v<=57343}(w)||w>1114111?65533:w}return-1===g?65533:g},v.prototype.consumeName=function(){for(var g="";;){var x=this.consumeCodePoint();if(Vb(x))g+=G(x);else{if(!Xa(x,this.peekCodePoint(0)))return this.reconsumeCodePoint(x),g;g+=G(this.consumeEscapedCodePoint())}}},v}(),Vc=function(){function v(g){this._tokens=g}return v.create=function(g){var x=new Lx;return x.write(g),new v(x.read())},v.parseValue=function(g){return v.create(g).parseComponentValue()},v.parseValues=function(g){return v.create(g).parseComponentValues()},v.prototype.parseComponentValue=function(){for(var g=this.consumeToken();31===g.type;)g=this.consumeToken();if(32===g.type)throw new SyntaxError("Error parsing CSS component value, unexpected EOF");this.reconsumeToken(g);var x=this.consumeComponentValue();do{g=this.consumeToken()}while(31===g.type);if(32===g.type)return x;throw new SyntaxError("Error parsing CSS component value, multiple values found when expecting only one")},v.prototype.parseComponentValues=function(){for(var g=[];;){var x=this.consumeComponentValue();if(32===x.type)return g;g.push(x),g.push()}},v.prototype.consumeComponentValue=function(){var g=this.consumeToken();switch(g.type){case 11:case 28:case 2:return this.consumeSimpleBlock(g.type);case 19:return this.consumeFunction(g)}return g},v.prototype.consumeSimpleBlock=function(g){for(var x={type:g,values:[]},w=this.consumeToken();;){if(32===w.type||lF(w,g))return x;this.reconsumeToken(w),x.values.push(this.consumeComponentValue()),w=this.consumeToken()}},v.prototype.consumeFunction=function(g){for(var x={name:g.value,values:[],type:18};;){var w=this.consumeToken();if(32===w.type||3===w.type)return x;this.reconsumeToken(w),x.values.push(this.consumeComponentValue())}},v.prototype.consumeToken=function(){var g=this._tokens.shift();return typeof g>"u"?Fd:g},v.prototype.reconsumeToken=function(g){this._tokens.unshift(g)},v}(),ep=function(v){return 15===v.type},ge=function(v){return 17===v.type},Sr=function(v){return 20===v.type},qt=function(v){return 0===v.type},bf=function(v,g){return Sr(v)&&v.value===g},dg=function(v){return 31!==v.type},hc=function(v){return 31!==v.type&&4!==v.type},fc=function(v){var g=[],x=[];return v.forEach(function(w){if(4===w.type){if(0===x.length)throw new Error("Error parsing function args, zero tokens for arg");return g.push(x),void(x=[])}31!==w.type&&x.push(w)}),x.length&&g.push(x),g},lF=function(v,g){return 11===g&&12===v.type||28===g&&29===v.type||2===g&&3===v.type},Dd=function(v){return 17===v.type||15===v.type},Co=function(v){return 16===v.type||Dd(v)},Uu=function(v){return v.length>1?[v[0],v[1]]:[v[0]]},Ss={type:17,number:0,flags:4},vf={type:16,number:50,flags:4},kd={type:16,number:100,flags:4},wl=function(v,g,x){var w=v[0],S=v[1];return[qr(w,g),qr(typeof S<"u"?S:w,x)]},qr=function(v,g){if(16===v.type)return v.number/100*g;if(ep(v))switch(v.unit){case"rem":case"em":return 16*v.number;default:return v.number}return v.number},Vu_parse=function(v,g){if(15===g.type)switch(g.unit){case"deg":return Math.PI*g.number/180;case"grad":return Math.PI/200*g.number;case"rad":return g.number;case"turn":return 2*Math.PI*g.number}throw new Error("Unsupported angle type")},ug=function(v){return 15===v.type&&("deg"===v.unit||"grad"===v.unit||"rad"===v.unit||"turn"===v.unit)},cF=function(v){switch(v.filter(Sr).map(function(x){return x.value}).join(" ")){case"to bottom right":case"to right bottom":case"left top":case"top left":return[Ss,Ss];case"to top":case"bottom":return Ca(0);case"to bottom left":case"to left bottom":case"right top":case"top right":return[Ss,kd];case"to right":case"left":return Ca(90);case"to top left":case"to left top":case"right bottom":case"bottom right":return[kd,kd];case"to bottom":case"top":return Ca(180);case"to top right":case"to right top":case"left bottom":case"bottom left":return[kd,Ss];case"to left":case"right":return Ca(270)}return 0},Ca=function(v){return Math.PI*v/180},Qu_parse=function(v,g){if(18===g.type){var x=Bd[g.name];if(typeof x>"u")throw new Error('Attempting to parse an unsupported color function "'+g.name+'"');return x(v,g.values)}if(5===g.type){if(3===g.value.length){var w=g.value.substring(0,1),S=g.value.substring(1,2),O=g.value.substring(2,3);return Ma(parseInt(w+w,16),parseInt(S+S,16),parseInt(O+O,16),1)}if(4===g.value.length){w=g.value.substring(0,1),S=g.value.substring(1,2),O=g.value.substring(2,3);var Y=g.value.substring(3,4);return Ma(parseInt(w+w,16),parseInt(S+S,16),parseInt(O+O,16),parseInt(Y+Y,16)/255)}if(6===g.value.length)return w=g.value.substring(0,2),S=g.value.substring(2,4),O=g.value.substring(4,6),Ma(parseInt(w,16),parseInt(S,16),parseInt(O,16),1);if(8===g.value.length)return w=g.value.substring(0,2),S=g.value.substring(2,4),O=g.value.substring(4,6),Y=g.value.substring(6,8),Ma(parseInt(w,16),parseInt(S,16),parseInt(O,16),parseInt(Y,16)/255)}if(20===g.type){var de=xl[g.value.toUpperCase()];if(typeof de<"u")return de}return xl.TRANSPARENT},Uo=function(v){return!(255&v)},Ho=function(v){var g=255&v,x=255&v>>8,w=255&v>>16,S=255&v>>24;return g<255?"rgba("+S+","+w+","+x+","+g/255+")":"rgb("+S+","+w+","+x+")"},Ma=function(v,g,x,w){return(v<<24|g<<16|x<<8|Math.round(255*w))>>>0},dF=function(v,g){if(17===v.type)return v.number;if(16===v.type){var x=3===g?1:255;return 3===g?v.number/100*x:Math.round(v.number/100*x)}return 0},$b=function(v,g){var x=g.filter(hc);if(3===x.length){var w=x.map(dF);return Ma(w[0],w[1],w[2],1)}if(4===x.length){var de=x.map(dF);return Ma(de[0],de[1],de[2],de[3])}return 0};function Ka(v,g,x){return x<0&&(x+=1),x>=1&&(x-=1),x<1/6?(g-v)*x*6+v:x<.5?g:x<2/3?6*(g-v)*(2/3-x)+v:v}var cr=function(v,g){var x=g.filter(hc),w=x[0],S=x[1],O=x[2],Y=x[3],de=(17===w.type?Ca(w.number):Vu_parse(v,w))/(2*Math.PI),ce=Co(S)?S.number/100:0,ze=Co(O)?O.number/100:0,Ze=typeof Y<"u"&&Co(Y)?qr(Y,1):1;if(0===ce)return Ma(255*ze,255*ze,255*ze,1);var ct=ze<=.5?ze*(ce+1):ze+ce-ze*ce,Mt=2*ze-ct,xn=Ka(Mt,ct,de+1/3),on=Ka(Mt,ct,de),mn=Ka(Mt,ct,de-1/3);return Ma(255*xn,255*on,255*mn,Ze)},Bd={hsl:cr,hsla:cr,rgb:$b,rgba:$b},yf=function(v,g){return Qu_parse(v,Vc.create(g).parseComponentValue())},xl={ALICEBLUE:4042850303,ANTIQUEWHITE:4209760255,AQUA:16777215,AQUAMARINE:2147472639,AZURE:4043309055,BEIGE:4126530815,BISQUE:4293182719,BLACK:255,BLANCHEDALMOND:4293643775,BLUE:65535,BLUEVIOLET:2318131967,BROWN:2771004159,BURLYWOOD:3736635391,CADETBLUE:1604231423,CHARTREUSE:2147418367,CHOCOLATE:3530104575,CORAL:4286533887,CORNFLOWERBLUE:1687547391,CORNSILK:4294499583,CRIMSON:3692313855,CYAN:16777215,DARKBLUE:35839,DARKCYAN:9145343,DARKGOLDENROD:3095837695,DARKGRAY:2846468607,DARKGREEN:6553855,DARKGREY:2846468607,DARKKHAKI:3182914559,DARKMAGENTA:2332068863,DARKOLIVEGREEN:1433087999,DARKORANGE:4287365375,DARKORCHID:2570243327,DARKRED:2332033279,DARKSALMON:3918953215,DARKSEAGREEN:2411499519,DARKSLATEBLUE:1211993087,DARKSLATEGRAY:793726975,DARKSLATEGREY:793726975,DARKTURQUOISE:13554175,DARKVIOLET:2483082239,DEEPPINK:4279538687,DEEPSKYBLUE:12582911,DIMGRAY:1768516095,DIMGREY:1768516095,DODGERBLUE:512819199,FIREBRICK:2988581631,FLORALWHITE:4294635775,FORESTGREEN:579543807,FUCHSIA:4278255615,GAINSBORO:3705462015,GHOSTWHITE:4177068031,GOLD:4292280575,GOLDENROD:3668254975,GRAY:2155905279,GREEN:8388863,GREENYELLOW:2919182335,GREY:2155905279,HONEYDEW:4043305215,HOTPINK:4285117695,INDIANRED:3445382399,INDIGO:1258324735,IVORY:4294963455,KHAKI:4041641215,LAVENDER:3873897215,LAVENDERBLUSH:4293981695,LAWNGREEN:2096890111,LEMONCHIFFON:4294626815,LIGHTBLUE:2916673279,LIGHTCORAL:4034953471,LIGHTCYAN:3774873599,LIGHTGOLDENRODYELLOW:4210742015,LIGHTGRAY:3553874943,LIGHTGREEN:2431553791,LIGHTGREY:3553874943,LIGHTPINK:4290167295,LIGHTSALMON:4288707327,LIGHTSEAGREEN:548580095,LIGHTSKYBLUE:2278488831,LIGHTSLATEGRAY:2005441023,LIGHTSLATEGREY:2005441023,LIGHTSTEELBLUE:2965692159,LIGHTYELLOW:4294959359,LIME:16711935,LIMEGREEN:852308735,LINEN:4210091775,MAGENTA:4278255615,MAROON:2147483903,MEDIUMAQUAMARINE:1724754687,MEDIUMBLUE:52735,MEDIUMORCHID:3126187007,MEDIUMPURPLE:2473647103,MEDIUMSEAGREEN:1018393087,MEDIUMSLATEBLUE:2070474495,MEDIUMSPRINGGREEN:16423679,MEDIUMTURQUOISE:1221709055,MEDIUMVIOLETRED:3340076543,MIDNIGHTBLUE:421097727,MINTCREAM:4127193855,MISTYROSE:4293190143,MOCCASIN:4293178879,NAVAJOWHITE:4292783615,NAVY:33023,OLDLACE:4260751103,OLIVE:2155872511,OLIVEDRAB:1804477439,ORANGE:4289003775,ORANGERED:4282712319,ORCHID:3664828159,PALEGOLDENROD:4008225535,PALEGREEN:2566625535,PALETURQUOISE:2951671551,PALEVIOLETRED:3681588223,PAPAYAWHIP:4293907967,PEACHPUFF:4292524543,PERU:3448061951,PINK:4290825215,PLUM:3718307327,POWDERBLUE:2967529215,PURPLE:2147516671,REBECCAPURPLE:1714657791,RED:4278190335,ROSYBROWN:3163525119,ROYALBLUE:1097458175,SADDLEBROWN:2336560127,SALMON:4202722047,SANDYBROWN:4104413439,SEAGREEN:780883967,SEASHELL:4294307583,SIENNA:2689740287,SILVER:3233857791,SKYBLUE:2278484991,SLATEBLUE:1784335871,SLATEGRAY:1887473919,SLATEGREY:1887473919,SNOW:4294638335,SPRINGGREEN:16744447,STEELBLUE:1182971135,TAN:3535047935,TEAL:8421631,THISTLE:3636451583,TOMATO:4284696575,TRANSPARENT:0,TURQUOISE:1088475391,VIOLET:4001558271,WHEAT:4125012991,WHITE:4294967295,WHITESMOKE:4126537215,YELLOW:4294902015,YELLOWGREEN:2597139199},hg={name:"background-clip",initialValue:"border-box",prefix:!1,type:1,parse:function(v,g){return g.map(function(x){if(Sr(x))switch(x.value){case"padding-box":return 1;case"content-box":return 2}return 0})}},fg={name:"background-color",initialValue:"transparent",prefix:!1,type:3,format:"color"},ca=function(v,g){var x=Qu_parse(v,g[0]),w=g[1];return w&&Co(w)?{color:x,stop:w}:{color:x,stop:null}},Ct=function(v,g){var x=v[0],w=v[v.length-1];null===x.stop&&(x.stop=Ss),null===w.stop&&(w.stop=kd);for(var S=[],O=0,Y=0;YO?ce:O),O=ce}else S.push(null)}var ze=null;for(Y=0;YY.optimumDistance)?{optimumCorner:de,optimumDistance:Ze}:Y},{optimumDistance:S?1/0:-1/0,optimumCorner:null}).optimumCorner},ip=function(v,g){var x=Ca(180),w=[];return fc(g).forEach(function(S,O){if(0===O){var Y=S[0];if(20===Y.type&&-1!==["top","left","right","bottom"].indexOf(Y.value))return void(x=cF(S));if(ug(Y))return void(x=(Vu_parse(v,Y)+Ca(270))%Ca(360))}var de=ca(v,S);w.push(de)}),{angle:x,stops:w,type:1}},mg="closest-side",Nx="farthest-side",Ux="closest-corner",Za="farthest-corner",Kb="ellipse",Qx="contain",pg=function(v,g){var x=0,w=3,S=[],O=[];return fc(g).forEach(function(Y,de){var ce=!0;if(0===de?ce=Y.reduce(function(Ze,ct){if(Sr(ct))switch(ct.value){case"center":return O.push(vf),!1;case"top":case"left":return O.push(Ss),!1;case"right":case"bottom":return O.push(kd),!1}else if(Co(ct)||Dd(ct))return O.push(ct),!1;return Ze},ce):1===de&&(ce=Y.reduce(function(Ze,ct){if(Sr(ct))switch(ct.value){case"circle":return x=0,!1;case Kb:return x=1,!1;case Qx:case mg:return w=0,!1;case Nx:return w=1,!1;case Ux:return w=2,!1;case"cover":case Za:return w=3,!1}else if(Dd(ct)||Co(ct))return Array.isArray(w)||(w=[]),w.push(ct),!1;return Ze},ce)),ce){var ze=ca(v,Y);S.push(ze)}}),{size:w,shape:x,stops:S,position:O,type:2}},Yb_parse=function(v,g){if(22===g.type){var x={url:g.value,type:0};return v.cache.addImage(g.value),x}if(18===g.type){var w=vt[g.name];if(typeof w>"u")throw new Error('Attempting to parse an unsupported image function "'+g.name+'"');return w(v,g.values)}throw new Error("Unsupported image type "+g.type)};for(var vt={"linear-gradient":function(v,g){var x=Ca(180),w=[];return fc(g).forEach(function(S,O){if(0===O){var Y=S[0];if(20===Y.type&&"to"===Y.value)return void(x=cF(S));if(ug(Y))return void(x=Vu_parse(v,Y))}var de=ca(v,S);w.push(de)}),{angle:x,stops:w,type:1}},"-moz-linear-gradient":ip,"-ms-linear-gradient":ip,"-o-linear-gradient":ip,"-webkit-linear-gradient":ip,"radial-gradient":function(v,g){var x=0,w=3,S=[],O=[];return fc(g).forEach(function(Y,de){var ce=!0;if(0===de){var ze=!1;ce=Y.reduce(function(ct,Mt){if(ze)if(Sr(Mt))switch(Mt.value){case"center":return O.push(vf),ct;case"top":case"left":return O.push(Ss),ct;case"right":case"bottom":return O.push(kd),ct}else(Co(Mt)||Dd(Mt))&&O.push(Mt);else if(Sr(Mt))switch(Mt.value){case"circle":return x=0,!1;case Kb:return x=1,!1;case"at":return ze=!0,!1;case mg:return w=0,!1;case"cover":case Nx:return w=1,!1;case Qx:case Ux:return w=2,!1;case Za:return w=3,!1}else if(Dd(Mt)||Co(Mt))return Array.isArray(w)||(w=[]),w.push(Mt),!1;return ct},ce)}if(ce){var Ze=ca(v,Y);S.push(Ze)}}),{size:w,shape:x,stops:S,position:O,type:2}},"-moz-radial-gradient":pg,"-ms-radial-gradient":pg,"-o-radial-gradient":pg,"-webkit-radial-gradient":pg,"-webkit-gradient":function(v,g){var x=Ca(180),w=[],S=1;return fc(g).forEach(function(ce,ze){var Ze=ce[0];if(0===ze){if(Sr(Ze)&&"linear"===Ze.value)return void(S=1);if(Sr(Ze)&&"radial"===Ze.value)return void(S=2)}if(18===Ze.type)if("from"===Ze.name){var ct=Qu_parse(v,Ze.values[0]);w.push({stop:Ss,color:ct})}else if("to"===Ze.name)ct=Qu_parse(v,Ze.values[0]),w.push({stop:kd,color:ct});else if("color-stop"===Ze.name){var Mt=Ze.values.filter(hc);if(2===Mt.length){ct=Qu_parse(v,Mt[1]);var xn=Mt[0];ge(xn)&&w.push({stop:{type:16,number:100*xn.number,flags:xn.flags},color:ct})}}}),1===S?{angle:(x+Ca(180))%Ca(360),stops:w,type:S}:{size:3,shape:0,stops:w,position:[],type:S}}},AF={name:"background-image",initialValue:"none",type:1,prefix:!1,parse:function(v,g){if(0===g.length)return[];var x=g[0];return 20===x.type&&"none"===x.value?[]:g.filter(function(w){return hc(w)&&function pF(v){return!(20===v.type&&"none"===v.value||18===v.type&&!vt[v.name])}(w)}).map(function(w){return Yb_parse(v,w)})}},gF={name:"background-origin",initialValue:"border-box",prefix:!1,type:1,parse:function(v,g){return g.map(function(x){if(Sr(x))switch(x.value){case"padding-box":return 1;case"content-box":return 2}return 0})}},Rt={name:"background-position",initialValue:"0% 0%",type:1,prefix:!1,parse:function(v,g){return fc(g).map(function(x){return x.filter(Co)}).map(Uu)}},qx={name:"background-repeat",initialValue:"repeat",prefix:!1,type:1,parse:function(v,g){return fc(g).map(function(x){return x.filter(Sr).map(function(w){return w.value}).join(" ")}).map($t)}},$t=function(v){switch(v){case"no-repeat":return 1;case"repeat-x":case"repeat no-repeat":return 2;case"repeat-y":case"no-repeat repeat":return 3;default:return 0}},dr=function(v){return v.AUTO="auto",v.CONTAIN="contain",v.COVER="cover",v}(dr||{}),Oi={name:"background-size",initialValue:"0",prefix:!1,type:1,parse:function(v,g){return fc(g).map(function(x){return x.filter(Ko)})}},Ko=function(v){return Sr(v)||Co(v)},Vo=function(v){return{name:"border-"+v+"-color",initialValue:"transparent",prefix:!1,type:3,format:"color"}},zu=Vo("top"),Hs=Vo("right"),Gx=Vo("bottom"),Wx=Vo("left"),qu=function(v){return{name:"border-radius-"+v,initialValue:"0 0",prefix:!1,type:1,parse:function(g,x){return Uu(x.filter(Co))}}},_F=qu("top-left"),bF=qu("top-right"),rp=qu("bottom-right"),vF=qu("bottom-left"),wf=function(v){return{name:"border-"+v+"-style",initialValue:"solid",prefix:!1,type:2,parse:function(g,x){switch(x){case"none":return 0;case"dashed":return 2;case"dotted":return 3;case"double":return 4}return 1}}},$x=wf("top"),Ag=wf("right"),MU=wf("bottom"),Zb=wf("left"),gg=function(v){return{name:"border-"+v+"-width",initialValue:"0",type:0,prefix:!1,parse:function(g,x){return ep(x)?x.number:0}}},Jb=gg("top"),jx=gg("right"),Xx=gg("bottom"),Gu=gg("left"),yF={name:"color",initialValue:"transparent",prefix:!1,type:3,format:"color"},ev={name:"direction",initialValue:"ltr",prefix:!1,type:2,parse:function(v,g){return"rtl"===g?1:0}},_g={name:"display",initialValue:"inline-block",prefix:!1,type:1,parse:function(v,g){return g.filter(Sr).reduce(function(x,w){return x|wF(w.value)},0)}},wF=function(v){switch(v){case"block":case"-webkit-box":return 2;case"inline":return 4;case"run-in":return 8;case"flow":return 16;case"flow-root":return 32;case"table":return 64;case"flex":case"-webkit-flex":return 128;case"grid":case"-ms-grid":return 256;case"ruby":return 512;case"subgrid":return 1024;case"list-item":return 2048;case"table-row-group":return 4096;case"table-header-group":return 8192;case"table-footer-group":return 16384;case"table-row":return 32768;case"table-cell":return 65536;case"table-column-group":return 131072;case"table-column":return 262144;case"table-caption":return 524288;case"ruby-base":return 1048576;case"ruby-text":return 2097152;case"ruby-base-container":return 4194304;case"ruby-text-container":return 8388608;case"contents":return 16777216;case"inline-block":return 33554432;case"inline-list-item":return 67108864;case"inline-table":return 134217728;case"inline-flex":return 268435456;case"inline-grid":return 536870912}return 0},tv={name:"float",initialValue:"none",prefix:!1,type:2,parse:function(v,g){switch(g){case"left":return 1;case"right":return 2;case"inline-start":return 3;case"inline-end":return 4}return 0}},bg={name:"letter-spacing",initialValue:"0",prefix:!1,type:0,parse:function(v,g){return 20===g.type&&"normal"===g.value?0:17===g.type||15===g.type?g.number:0}},Ea=function(v){return v.NORMAL="normal",v.STRICT="strict",v}(Ea||{}),xf={name:"line-break",initialValue:"normal",prefix:!1,type:2,parse:function(v,g){return"strict"===g?Ea.STRICT:Ea.NORMAL}},nv={name:"line-height",initialValue:"normal",prefix:!1,type:4},Kx=function(v,g){return Sr(v)&&"normal"===v.value?1.2*g:17===v.type?g*v.number:Co(v)?qr(v,g):g},xF={name:"list-style-image",initialValue:"none",type:0,prefix:!1,parse:function(v,g){return 20===g.type&&"none"===g.value?null:Yb_parse(v,g)}},Yx={name:"list-style-position",initialValue:"outside",prefix:!1,type:2,parse:function(v,g){return"inside"===g?0:1}},Pd={name:"list-style-type",initialValue:"none",prefix:!1,type:2,parse:function(v,g){switch(g){case"disc":return 0;case"circle":return 1;case"square":return 2;case"decimal":return 3;case"cjk-decimal":return 4;case"decimal-leading-zero":return 5;case"lower-roman":return 6;case"upper-roman":return 7;case"lower-greek":return 8;case"lower-alpha":return 9;case"upper-alpha":return 10;case"arabic-indic":return 11;case"armenian":return 12;case"bengali":return 13;case"cambodian":return 14;case"cjk-earthly-branch":return 15;case"cjk-heavenly-stem":return 16;case"cjk-ideographic":return 17;case"devanagari":return 18;case"ethiopic-numeric":return 19;case"georgian":return 20;case"gujarati":return 21;case"gurmukhi":case"hebrew":return 22;case"hiragana":return 23;case"hiragana-iroha":return 24;case"japanese-formal":return 25;case"japanese-informal":return 26;case"kannada":return 27;case"katakana":return 28;case"katakana-iroha":return 29;case"khmer":return 30;case"korean-hangul-formal":return 31;case"korean-hanja-formal":return 32;case"korean-hanja-informal":return 33;case"lao":return 34;case"lower-armenian":return 35;case"malayalam":return 36;case"mongolian":return 37;case"myanmar":return 38;case"oriya":return 39;case"persian":return 40;case"simp-chinese-formal":return 41;case"simp-chinese-informal":return 42;case"tamil":return 43;case"telugu":return 44;case"thai":return 45;case"tibetan":return 46;case"trad-chinese-formal":return 47;case"trad-chinese-informal":return 48;case"upper-armenian":return 49;case"disclosure-open":return 50;case"disclosure-closed":return 51;default:return-1}}},vg=function(v){return{name:"margin-"+v,initialValue:"0",prefix:!1,type:4}},CF=vg("top"),MF=vg("right"),iv=vg("bottom"),rv=vg("left"),Zx={name:"overflow",initialValue:"visible",prefix:!1,type:1,parse:function(v,g){return g.filter(Sr).map(function(x){switch(x.value){case"hidden":return 1;case"scroll":return 2;case"clip":return 3;case"auto":return 4;default:return 0}})}},op={name:"overflow-wrap",initialValue:"normal",prefix:!1,type:2,parse:function(v,g){return"break-word"===g?"break-word":"normal"}},Qc=function(v){return{name:"padding-"+v,initialValue:"0",prefix:!1,type:3,format:"length-percentage"}},EF=Qc("top"),SF=Qc("right"),Yo=Qc("bottom"),Jx=Qc("left"),TF={name:"text-align",initialValue:"left",prefix:!1,type:2,parse:function(v,g){switch(g){case"right":return 2;case"center":case"justify":return 1;default:return 0}}},sp={name:"position",initialValue:"static",prefix:!1,type:2,parse:function(v,g){switch(g){case"relative":return 1;case"absolute":return 2;case"fixed":return 3;case"sticky":return 4}return 0}},IF={name:"text-shadow",initialValue:"none",type:1,prefix:!1,parse:function(v,g){return 1===g.length&&bf(g[0],"none")?[]:fc(g).map(function(x){for(var w={color:xl.TRANSPARENT,offsetX:Ss,offsetY:Ss,blur:Ss},S=0,O=0;O"u")throw new Error('Attempting to parse an unsupported transform function "'+g.name+'"');return x(g.values)}return null}},PF={matrix:function(v){var g=v.filter(function(x){return 17===x.type}).map(function(x){return x.number});return 6===g.length?g:null},matrix3d:function(v){var g=v.filter(function(ce){return 17===ce.type}).map(function(ce){return ce.number});return 16===g.length?[g[0],g[1],g[4],g[5],g[12],g[13]]:null}},yg={type:16,number:50,flags:4},wg=[yg,yg],so={name:"transform-origin",initialValue:"50% 50%",prefix:!0,type:1,parse:function(v,g){var x=g.filter(Co);return 2!==x.length?wg:[x[0],x[1]]}},rn={name:"visible",initialValue:"none",prefix:!1,type:2,parse:function(v,g){switch(g){case"hidden":return 1;case"collapse":return 2;default:return 0}}},qn=function(v){return v.NORMAL="normal",v.BREAK_ALL="break-all",v.KEEP_ALL="keep-all",v}(qn||{}),ko={name:"word-break",initialValue:"normal",prefix:!1,type:2,parse:function(v,g){switch(g){case"break-all":return qn.BREAK_ALL;case"keep-all":return qn.KEEP_ALL;default:return qn.NORMAL}}},Cl={name:"z-index",initialValue:"auto",prefix:!1,type:0,parse:function(v,g){if(20===g.type)return{auto:!0,order:0};if(ge(g))return{auto:!1,order:g.number};throw new Error("Invalid z-index number parsed")}},Ts={name:"time",parse:function(v,g){if(15===g.type)switch(g.unit.toLowerCase()){case"s":return 1e3*g.number;case"ms":return g.number}throw new Error("Unsupported time type")}},Sa={name:"opacity",initialValue:"1",type:0,prefix:!1,parse:function(v,g){return ge(g)?g.number:1}},Cf={name:"text-decoration-color",initialValue:"transparent",prefix:!1,type:3,format:"color"},Gr={name:"text-decoration-line",initialValue:"none",prefix:!1,type:1,parse:function(v,g){return g.filter(Sr).map(function(x){switch(x.value){case"underline":return 1;case"overline":return 2;case"line-through":return 3;case"none":return 4}return 0}).filter(function(x){return 0!==x})}},Is={name:"font-family",initialValue:"",prefix:!1,type:1,parse:function(v,g){var x=[],w=[];return g.forEach(function(S){switch(S.type){case 20:case 0:x.push(S.value);break;case 17:x.push(S.number.toString());break;case 4:w.push(x.join(" ")),x.length=0}}),x.length&&w.push(x.join(" ")),w.map(function(S){return-1===S.indexOf(" ")?S:"'"+S+"'"})}},Ml={name:"font-size",initialValue:"0",prefix:!1,type:3,format:"length"},ri={name:"font-weight",initialValue:"normal",type:0,prefix:!1,parse:function(v,g){return ge(g)?g.number:Sr(g)&&"bold"===g.value?700:400}},ap={name:"font-variant",initialValue:"none",type:1,prefix:!1,parse:function(v,g){return g.filter(Sr).map(function(x){return x.value})}},eC={name:"font-style",initialValue:"normal",prefix:!1,type:2,parse:function(v,g){switch(g){case"oblique":return"oblique";case"italic":return"italic";default:return"normal"}}},ao=function(v,g){return!!(v&g)},go={name:"content",initialValue:"none",type:1,prefix:!1,parse:function(v,g){if(0===g.length)return[];var x=g[0];return 20===x.type&&"none"===x.value?[]:g}},lp={name:"counter-increment",initialValue:"none",prefix:!0,type:1,parse:function(v,g){if(0===g.length)return null;var x=g[0];if(20===x.type&&"none"===x.value)return null;for(var w=[],S=g.filter(dg),O=0;O1?1:0],this.overflowWrap=yn(g,op,x.overflowWrap),this.paddingTop=yn(g,EF,x.paddingTop),this.paddingRight=yn(g,SF,x.paddingRight),this.paddingBottom=yn(g,Yo,x.paddingBottom),this.paddingLeft=yn(g,Jx,x.paddingLeft),this.paintOrder=yn(g,xg,x.paintOrder),this.position=yn(g,sp,x.position),this.textAlign=yn(g,TF,x.textAlign),this.textDecorationColor=yn(g,Cf,null!==(w=x.textDecorationColor)&&void 0!==w?w:x.color),this.textDecorationLine=yn(g,Gr,null!==(S=x.textDecorationLine)&&void 0!==S?S:x.textDecoration),this.textShadow=yn(g,IF,x.textShadow),this.textTransform=yn(g,FF,x.textTransform),this.transform=yn(g,DF,x.transform),this.transformOrigin=yn(g,so,x.transformOrigin),this.visibility=yn(g,rn,x.visibility),this.webkitTextStrokeColor=yn(g,Wu,x.webkitTextStrokeColor),this.webkitTextStrokeWidth=yn(g,gi,x.webkitTextStrokeWidth),this.wordBreak=yn(g,ko,x.wordBreak),this.zIndex=yn(g,Cl,x.zIndex)}return v.prototype.isVisible=function(){return this.display>0&&this.opacity>0&&0===this.visibility},v.prototype.isTransparent=function(){return Uo(this.backgroundColor)},v.prototype.isTransformed=function(){return null!==this.transform},v.prototype.isPositioned=function(){return 0!==this.position},v.prototype.isPositionedWithZIndex=function(){return this.isPositioned()&&!this.zIndex.auto},v.prototype.isFloating=function(){return 0!==this.float},v.prototype.isInlineLevel=function(){return ao(this.display,4)||ao(this.display,33554432)||ao(this.display,268435456)||ao(this.display,536870912)||ao(this.display,67108864)||ao(this.display,134217728)},v}(),dp=function(){return function v(g,x){this.content=yn(g,go,x.content),this.quotes=yn(g,cp,x.quotes)}}(),El=function(){return function v(g,x){this.counterIncrement=yn(g,lp,x.counterIncrement),this.counterReset=yn(g,Mf,x.counterReset)}}(),yn=function(v,g,x){var w=new Lx,S=null!==x&&typeof x<"u"?x.toString():g.initialValue;w.write(S);var O=new Vc(w.read());switch(g.type){case 2:var Y=O.parseComponentValue();return g.parse(v,Sr(Y)?Y.value:g.initialValue);case 0:return g.parse(v,O.parseComponentValue());case 1:return g.parse(v,O.parseComponentValues());case 4:return O.parseComponentValue();case 3:switch(g.format){case"angle":return Vu_parse(v,O.parseComponentValue());case"color":return Qu_parse(v,O.parseComponentValue());case"image":return Yb_parse(v,O.parseComponentValue());case"length":var de=O.parseComponentValue();return Dd(de)?de:Ss;case"length-percentage":var ce=O.parseComponentValue();return Co(ce)?ce:Ss;case"time":return Ts.parse(v,O.parseComponentValue())}}},up=function(v,g){var x=function(v){switch(v.getAttribute("data-html2canvas-debug")){case"all":return 1;case"clone":return 2;case"parse":return 3;case"render":return 4;default:return 0}}(v);return 1===x||g===x},Kr=function(){return function v(g,x){this.context=g,this.textNodes=[],this.elements=[],this.flags=0,up(x,3),this.styles=new sv(g,window.getComputedStyle(x,null)),Rg(x)&&(this.styles.animationDuration.some(function(w){return w>0})&&(x.style.animationDuration="0s"),null!==this.styles.transform&&(x.style.transform="none")),this.bounds=F(this.context,x),up(x,4)&&(this.flags|=16)}}(),Cg="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Sl=typeof Uint8Array>"u"?[]:new Uint8Array(256),$u=0;$u<64;$u++)Sl[Cg.charCodeAt($u)]=$u;for(var OF=function(v,g,x){return v.slice?v.slice(g,x):new Uint16Array(Array.prototype.slice.call(v,g,x))},iC=function(){function v(g,x,w,S,O,Y){this.initialValue=g,this.errorValue=x,this.highStart=w,this.highValueIndex=S,this.index=O,this.data=Y}return v.prototype.get=function(g){var x;if(g>=0){if(g<55296||g>56319&&g<=65535)return this.data[x=((x=this.index[g>>5])<<2)+(31&g)];if(g<=65535)return this.data[x=((x=this.index[2048+(g-55296>>5)])<<2)+(31&g)];if(g>11)],this.data[x=((x=this.index[x+=g>>5&63])<<2)+(31&g)];if(g<=1114111)return this.data[this.highValueIndex]}return this.errorValue},v}(),NF="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",LU=typeof Uint8Array>"u"?[]:new Uint8Array(256),lv=0;lv<64;lv++)LU[NF.charCodeAt(lv)]=lv;var rC=8,Tg=9,oC=11,Fg=12,lC=function(){for(var v=[],g=0;g>10),Y%1024+56320),(S+1===x||w.length>16384)&&(O+=String.fromCharCode.apply(String,w),w.length=0)}return O},HF=function(v,g){var x=function(v){var w,O,Y,de,ce,g=.75*v.length,x=v.length,S=0;"="===v[v.length-1]&&(g--,"="===v[v.length-2]&&g--);var ze=typeof ArrayBuffer<"u"&&typeof Uint8Array<"u"&&typeof Uint8Array.prototype.slice<"u"?new ArrayBuffer(g):new Array(g),Ze=Array.isArray(ze)?ze:new Uint8Array(ze);for(w=0;w>4,Ze[S++]=(15&Y)<<4|de>>2,Ze[S++]=(3&de)<<6|63&ce;return ze}(v),w=Array.isArray(x)?function(v){for(var g=v.length,x=[],w=0;w=55296&&S<=56319&&x=x)return{done:!0,value:null};for(var Y="\xd7";wY.x||Ze.y>Y.y;return Y=Ze,0===ze||ct});return v.body.removeChild(g),de}(document);return Object.defineProperty(fs,"SUPPORT_WORD_BREAKING",{value:v}),v},get SUPPORT_SVG_DRAWING(){var v=function(v){var g=new Image,x=v.createElement("canvas"),w=x.getContext("2d");if(!w)return!1;g.src="data:image/svg+xml,";try{w.drawImage(g,0,0),x.toDataURL()}catch{return!1}return!0}(document);return Object.defineProperty(fs,"SUPPORT_SVG_DRAWING",{value:v}),v},get SUPPORT_FOREIGNOBJECT_DRAWING(){var v="function"==typeof Array.from&&"function"==typeof window.fetch?function(v){var g=v.createElement("canvas"),x=100;g.width=x,g.height=x;var w=g.getContext("2d");if(!w)return Promise.reject(!1);w.fillStyle="rgb(0, 255, 0)",w.fillRect(0,0,x,x);var S=new Image,O=g.toDataURL();S.src=O;var Y=kg(x,x,0,0,S);return w.fillStyle="red",w.fillRect(0,0,x,x),dC(Y).then(function(de){w.drawImage(de,0,0);var ce=w.getImageData(0,0,x,x).data;w.fillStyle="red",w.fillRect(0,0,x,x);var ze=v.createElement("div");return ze.style.backgroundImage="url("+O+")",ze.style.height=x+"px",cC(ce)?dC(kg(x,x,0,0,ze)):Promise.reject(!1)}).then(function(de){return w.drawImage(de,0,0),cC(w.getImageData(0,0,x,x).data)}).catch(function(){return!1})}(document):Promise.resolve(!1);return Object.defineProperty(fs,"SUPPORT_FOREIGNOBJECT_DRAWING",{value:v}),v},get SUPPORT_CORS_IMAGES(){var v=typeof(new Image).crossOrigin<"u";return Object.defineProperty(fs,"SUPPORT_CORS_IMAGES",{value:v}),v},get SUPPORT_RESPONSE_TYPE(){var v="string"==typeof(new XMLHttpRequest).responseType;return Object.defineProperty(fs,"SUPPORT_RESPONSE_TYPE",{value:v}),v},get SUPPORT_CORS_XHR(){var v="withCredentials"in new XMLHttpRequest;return Object.defineProperty(fs,"SUPPORT_CORS_XHR",{value:v}),v},get SUPPORT_NATIVE_TEXT_SEGMENTATION(){var v=!!(typeof Intl<"u"&&Intl.Segmenter);return Object.defineProperty(fs,"SUPPORT_NATIVE_TEXT_SEGMENTATION",{value:v}),v}},Xu=function(){return function v(g,x){this.text=g,this.bounds=x}}(),pp=function(v,g){var x=g.ownerDocument;if(x){var w=x.createElement("html2canvaswrapper");w.appendChild(g.cloneNode(!0));var S=g.parentNode;if(S){S.replaceChild(w,g);var O=F(v,w);return w.firstChild&&S.replaceChild(w.firstChild,w),O}}return D.EMPTY},Ap=function(v,g,x){var w=v.ownerDocument;if(!w)throw new Error("Node has no owner document");var S=w.createRange();return S.setStart(v,g),S.setEnd(v,g+x),S},gp=function(v){if(fs.SUPPORT_NATIVE_TEXT_SEGMENTATION){var g=new Intl.Segmenter(void 0,{granularity:"grapheme"});return Array.from(g.segment(v)).map(function(x){return x.segment})}return function(v){for(var w,g=Zs(v),x=[];!(w=g.next()).done;)w.value&&x.push(w.value.slice());return x}(v)},oi=function(v,g){return 0!==g.letterSpacing?gp(v):function(v,g){if(fs.SUPPORT_NATIVE_TEXT_SEGMENTATION){var x=new Intl.Segmenter(void 0,{granularity:"word"});return Array.from(x.segment(v)).map(function(w){return w.segment})}return NU(v,g)}(v,g)},uC=[32,160,4961,65792,65793,4153,4241],NU=function(v,g){for(var S,x=function(v,g){var x=T(v),w=Io(x,g),S=w[0],O=w[1],Y=w[2],de=x.length,ce=0,ze=0;return{next:function(){if(ze>=de)return{done:!0,value:null};for(var Ze=Li;ze0)if(fs.SUPPORT_RANGE_BOUNDS){var ce=Ap(w,Y,de.length).getClientRects();if(ce.length>1){var ze=gp(de),Ze=0;ze.forEach(function(Mt){O.push(new Xu(Mt,D.fromDOMRectList(v,Ap(w,Ze+Y,Mt.length).getClientRects()))),Ze+=Mt.length})}else O.push(new Xu(de,D.fromDOMRectList(v,ce)))}else{var ct=w.splitText(de.length);O.push(new Xu(de,pp(v,w))),w=ct}else fs.SUPPORT_RANGE_BOUNDS||(w=w.splitText(de.length));Y+=de.length}),O}(g,this.text,w,x)}}(),qF=function(v,g){switch(g){case 1:return v.toLowerCase();case 3:return v.replace(GF,hC);case 2:return v.toUpperCase();default:return v}},GF=/(^|\s|:|-|\(|\))([a-z])/g,hC=function(v,g,x){return v.length>0?g+x.toUpperCase():v},Yu=function(v){function g(x,w){var S=v.call(this,x,w)||this;return S.src=w.currentSrc||w.src,S.intrinsicWidth=w.naturalWidth,S.intrinsicHeight=w.naturalHeight,S.context.cache.addImage(S.src),S}return p(g,v),g}(Kr),fC=function(v){function g(x,w){var S=v.call(this,x,w)||this;return S.canvas=w,S.intrinsicWidth=w.width,S.intrinsicHeight=w.height,S}return p(g,v),g}(Kr),mC=function(v){function g(x,w){var S=v.call(this,x,w)||this,O=new XMLSerializer,Y=F(x,w);return w.setAttribute("width",Y.width+"px"),w.setAttribute("height",Y.height+"px"),S.svg="data:image/svg+xml,"+encodeURIComponent(O.serializeToString(w)),S.intrinsicWidth=w.width.baseVal.value,S.intrinsicHeight=w.height.baseVal.value,S.context.cache.addImage(S.svg),S}return p(g,v),g}(Kr),pC=function(v){function g(x,w){var S=v.call(this,x,w)||this;return S.value=w.value,S}return p(g,v),g}(Kr),mv=function(v){function g(x,w){var S=v.call(this,x,w)||this;return S.start=w.start,S.reversed="boolean"==typeof w.reversed&&!0===w.reversed,S}return p(g,v),g}(Kr),WF=[{type:15,flags:0,unit:"px",number:3}],Pt=[{type:16,flags:0,number:50}],Ot="checkbox",gr="radio",AC="password",Tf=707406591,Ja=function(v){function g(x,w){var S=v.call(this,x,w)||this;switch(S.type=w.type.toLowerCase(),S.checked=w.checked,S.value=function(v){var g=v.type===AC?new Array(v.value.length+1).join("\u2022"):v.value;return 0===g.length?v.placeholder||"":g}(w),(S.type===Ot||S.type===gr)&&(S.styles.backgroundColor=3739148031,S.styles.borderTopColor=S.styles.borderRightColor=S.styles.borderBottomColor=S.styles.borderLeftColor=2779096575,S.styles.borderTopWidth=S.styles.borderRightWidth=S.styles.borderBottomWidth=S.styles.borderLeftWidth=1,S.styles.borderTopStyle=S.styles.borderRightStyle=S.styles.borderBottomStyle=S.styles.borderLeftStyle=1,S.styles.backgroundClip=[0],S.styles.backgroundOrigin=[0],S.bounds=function(v){return v.width>v.height?new D(v.left+(v.width-v.height)/2,v.top,v.height,v.height):v.width0)x.textNodes.push(new zF(v,S,x.styles));else if(If(S))if(Fs(S)&&S.assignedNodes)S.assignedNodes().forEach(function(de){return _p(v,de,x,w)});else{var Y=Qs(v,S);Y.styles.isVisible()&&(_C(S,Y,w)?Y.flags|=4:Dl(Y.styles)&&(Y.flags|=2),-1!==UU.indexOf(S.tagName)&&(Y.flags|=8),x.elements.push(Y),S.shadowRoot?_p(v,S.shadowRoot,Y,w):!Ff(S)&&!bp(S)&&!Ug(S)&&_p(v,S,Y,w))}},Qs=function(v,g){return Ng(g)?new Yu(v,g):bv(g)?new fC(v,g):bp(g)?new mC(v,g):$F(g)?new pC(v,g):pv(g)?new mv(v,g):Av(g)?new Ja(v,g):Ug(g)?new Bg(v,g):Ff(g)?new Pg(v,g):vv(g)?new gC(v,g):new Kr(v,g)},pc=function(v,g){var x=Qs(v,g);return x.flags|=4,_p(v,g,x,x),x},_C=function(v,g,x){return g.styles.isPositionedWithZIndex()||g.styles.opacity<1||g.styles.isTransformed()||_v(v)&&x.styles.isTransparent()},Dl=function(v){return v.isPositioned()||v.isFloating()},Ac=function(v){return v.nodeType===Node.TEXT_NODE},If=function(v){return v.nodeType===Node.ELEMENT_NODE},Rg=function(v){return If(v)&&typeof v.style<"u"&&!Lg(v)},Lg=function(v){return"object"==typeof v.className},$F=function(v){return"LI"===v.tagName},pv=function(v){return"OL"===v.tagName},Av=function(v){return"INPUT"===v.tagName},bp=function(v){return"svg"===v.tagName},_v=function(v){return"BODY"===v.tagName},bv=function(v){return"CANVAS"===v.tagName},Og=function(v){return"VIDEO"===v.tagName},Ng=function(v){return"IMG"===v.tagName},vv=function(v){return"IFRAME"===v.tagName},yv=function(v){return"STYLE"===v.tagName},Ff=function(v){return"TEXTAREA"===v.tagName},Ug=function(v){return"SELECT"===v.tagName},Fs=function(v){return"SLOT"===v.tagName},Ld=function(v){return v.tagName.indexOf("-")>0},Wr=function(){function v(){this.counters={}}return v.prototype.getCounterValue=function(g){var x=this.counters[g];return x&&x.length?x[x.length-1]:1},v.prototype.getCounterValues=function(g){return this.counters[g]||[]},v.prototype.pop=function(g){var x=this;g.forEach(function(w){return x.counters[w].pop()})},v.prototype.parse=function(g){var x=this,w=g.counterIncrement,S=g.counterReset,O=!0;null!==w&&w.forEach(function(de){var ce=x.counters[de.counter];ce&&0!==de.increment&&(O=!1,ce.length||ce.push(1),ce[Math.max(0,ce.length-1)]+=de.increment)});var Y=[];return O&&S.forEach(function(de){var ce=x.counters[de.counter];Y.push(de.counter),ce||(ce=x.counters[de.counter]=[]),ce.push(de.reset)}),Y},v}(),kl={integers:[1e3,900,500,400,100,90,50,40,10,9,5,4,1],values:["M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"]},vC={integers:[9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["\u0554","\u0553","\u0552","\u0551","\u0550","\u054f","\u054e","\u054d","\u054c","\u054b","\u054a","\u0549","\u0548","\u0547","\u0546","\u0545","\u0544","\u0543","\u0542","\u0541","\u0540","\u053f","\u053e","\u053d","\u053c","\u053b","\u053a","\u0539","\u0538","\u0537","\u0536","\u0535","\u0534","\u0533","\u0532","\u0531"]},Hg={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,400,300,200,100,90,80,70,60,50,40,30,20,19,18,17,16,15,10,9,8,7,6,5,4,3,2,1],values:["\u05d9\u05f3","\u05d8\u05f3","\u05d7\u05f3","\u05d6\u05f3","\u05d5\u05f3","\u05d4\u05f3","\u05d3\u05f3","\u05d2\u05f3","\u05d1\u05f3","\u05d0\u05f3","\u05ea","\u05e9","\u05e8","\u05e7","\u05e6","\u05e4","\u05e2","\u05e1","\u05e0","\u05de","\u05dc","\u05db","\u05d9\u05d8","\u05d9\u05d7","\u05d9\u05d6","\u05d8\u05d6","\u05d8\u05d5","\u05d9","\u05d8","\u05d7","\u05d6","\u05d5","\u05d4","\u05d3","\u05d2","\u05d1","\u05d0"]},jF={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["\u10f5","\u10f0","\u10ef","\u10f4","\u10ee","\u10ed","\u10ec","\u10eb","\u10ea","\u10e9","\u10e8","\u10e7","\u10e6","\u10e5","\u10e4","\u10f3","\u10e2","\u10e1","\u10e0","\u10df","\u10de","\u10dd","\u10f2","\u10dc","\u10db","\u10da","\u10d9","\u10d8","\u10d7","\u10f1","\u10d6","\u10d5","\u10d4","\u10d3","\u10d2","\u10d1","\u10d0"]},Zu=function(v,g,x,w,S,O){return vx?qc(v,S,O.length>0):w.integers.reduce(function(Y,de,ce){for(;v>=de;)v-=de,Y+=w.values[ce];return Y},"")+O},wv=function(v,g,x,w){var S="";do{x||v--,S=w(v)+S,v/=g}while(v*g>=g);return S},Yr=function(v,g,x,w,S){var O=x-g+1;return(v<0?"-":"")+(wv(Math.abs(v),O,w,function(Y){return G(Math.floor(Y%O)+g)})+S)},zs=function(v,g,x){void 0===x&&(x=". ");var w=g.length;return wv(Math.abs(v),w,!1,function(S){return g[Math.floor(S%w)]})+x},Rl=function(v,g,x,w,S,O){if(v<-9999||v>9999)return qc(v,4,S.length>0);var Y=Math.abs(v),de=S;if(0===Y)return g[0]+de;for(var ce=0;Y>0&&ce<=4;ce++){var ze=Y%10;0===ze&&ao(O,1)&&""!==de?de=g[ze]+de:ze>1||1===ze&&0===ce||1===ze&&1===ce&&ao(O,2)||1===ze&&1===ce&&ao(O,4)&&v>100||1===ze&&ce>1&&ao(O,8)?de=g[ze]+(ce>0?x[ce-1]:"")+de:1===ze&&ce>0&&(de=x[ce-1]+de),Y=Math.floor(Y/10)}return(v<0?w:"")+de},Nd="\ub9c8\uc774\ub108\uc2a4",qc=function(v,g,x){var w=x?". ":"",S=x?"\u3001":"",O=x?", ":"",Y=x?" ":"";switch(g){case 0:return"\u2022"+Y;case 1:return"\u25e6"+Y;case 2:return"\u25fe"+Y;case 5:var de=Yr(v,48,57,!0,w);return de.length<4?"0"+de:de;case 4:return zs(v,"\u3007\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d",S);case 6:return Zu(v,1,3999,kl,3,w).toLowerCase();case 7:return Zu(v,1,3999,kl,3,w);case 8:return Yr(v,945,969,!1,w);case 9:return Yr(v,97,122,!1,w);case 10:return Yr(v,65,90,!1,w);case 11:return Yr(v,1632,1641,!0,w);case 12:case 49:return Zu(v,1,9999,vC,3,w);case 35:return Zu(v,1,9999,vC,3,w).toLowerCase();case 13:return Yr(v,2534,2543,!0,w);case 14:case 30:return Yr(v,6112,6121,!0,w);case 15:return zs(v,"\u5b50\u4e11\u5bc5\u536f\u8fb0\u5df3\u5348\u672a\u7533\u9149\u620c\u4ea5",S);case 16:return zs(v,"\u7532\u4e59\u4e19\u4e01\u620a\u5df1\u5e9a\u8f9b\u58ec\u7678",S);case 17:case 48:return Rl(v,"\u96f6\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d","\u5341\u767e\u5343\u842c","\u8ca0",S,14);case 47:return Rl(v,"\u96f6\u58f9\u8cb3\u53c3\u8086\u4f0d\u9678\u67d2\u634c\u7396","\u62fe\u4f70\u4edf\u842c","\u8ca0",S,15);case 42:return Rl(v,"\u96f6\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d","\u5341\u767e\u5343\u842c","\u8d1f",S,14);case 41:return Rl(v,"\u96f6\u58f9\u8d30\u53c1\u8086\u4f0d\u9646\u67d2\u634c\u7396","\u62fe\u4f70\u4edf\u842c","\u8d1f",S,15);case 26:return Rl(v,"\u3007\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d","\u5341\u767e\u5343\u4e07","\u30de\u30a4\u30ca\u30b9",S,0);case 25:return Rl(v,"\u96f6\u58f1\u5f10\u53c2\u56db\u4f0d\u516d\u4e03\u516b\u4e5d","\u62fe\u767e\u5343\u4e07","\u30de\u30a4\u30ca\u30b9",S,7);case 31:return Rl(v,"\uc601\uc77c\uc774\uc0bc\uc0ac\uc624\uc721\uce60\ud314\uad6c","\uc2ed\ubc31\ucc9c\ub9cc",Nd,O,7);case 33:return Rl(v,"\u96f6\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d","\u5341\u767e\u5343\u842c",Nd,O,0);case 32:return Rl(v,"\u96f6\u58f9\u8cb3\u53c3\u56db\u4e94\u516d\u4e03\u516b\u4e5d","\u62fe\u767e\u5343",Nd,O,7);case 18:return Yr(v,2406,2415,!0,w);case 20:return Zu(v,1,19999,jF,3,w);case 21:return Yr(v,2790,2799,!0,w);case 22:return Yr(v,2662,2671,!0,w);case 22:return Zu(v,1,10999,Hg,3,w);case 23:return zs(v,"\u3042\u3044\u3046\u3048\u304a\u304b\u304d\u304f\u3051\u3053\u3055\u3057\u3059\u305b\u305d\u305f\u3061\u3064\u3066\u3068\u306a\u306b\u306c\u306d\u306e\u306f\u3072\u3075\u3078\u307b\u307e\u307f\u3080\u3081\u3082\u3084\u3086\u3088\u3089\u308a\u308b\u308c\u308d\u308f\u3090\u3091\u3092\u3093");case 24:return zs(v,"\u3044\u308d\u306f\u306b\u307b\u3078\u3068\u3061\u308a\u306c\u308b\u3092\u308f\u304b\u3088\u305f\u308c\u305d\u3064\u306d\u306a\u3089\u3080\u3046\u3090\u306e\u304a\u304f\u3084\u307e\u3051\u3075\u3053\u3048\u3066\u3042\u3055\u304d\u3086\u3081\u307f\u3057\u3091\u3072\u3082\u305b\u3059");case 27:return Yr(v,3302,3311,!0,w);case 28:return zs(v,"\u30a2\u30a4\u30a6\u30a8\u30aa\u30ab\u30ad\u30af\u30b1\u30b3\u30b5\u30b7\u30b9\u30bb\u30bd\u30bf\u30c1\u30c4\u30c6\u30c8\u30ca\u30cb\u30cc\u30cd\u30ce\u30cf\u30d2\u30d5\u30d8\u30db\u30de\u30df\u30e0\u30e1\u30e2\u30e4\u30e6\u30e8\u30e9\u30ea\u30eb\u30ec\u30ed\u30ef\u30f0\u30f1\u30f2\u30f3",S);case 29:return zs(v,"\u30a4\u30ed\u30cf\u30cb\u30db\u30d8\u30c8\u30c1\u30ea\u30cc\u30eb\u30f2\u30ef\u30ab\u30e8\u30bf\u30ec\u30bd\u30c4\u30cd\u30ca\u30e9\u30e0\u30a6\u30f0\u30ce\u30aa\u30af\u30e4\u30de\u30b1\u30d5\u30b3\u30a8\u30c6\u30a2\u30b5\u30ad\u30e6\u30e1\u30df\u30b7\u30f1\u30d2\u30e2\u30bb\u30b9",S);case 34:return Yr(v,3792,3801,!0,w);case 37:return Yr(v,6160,6169,!0,w);case 38:return Yr(v,4160,4169,!0,w);case 39:return Yr(v,2918,2927,!0,w);case 40:return Yr(v,1776,1785,!0,w);case 43:return Yr(v,3046,3055,!0,w);case 44:return Yr(v,3174,3183,!0,w);case 45:return Yr(v,3664,3673,!0,w);case 46:return Yr(v,3872,3881,!0,w);default:return Yr(v,48,57,!0,w)}},wC="data-html2canvas-ignore",Vg=function(){function v(g,x,w){if(this.context=g,this.options=w,this.scrolledElements=[],this.referenceElement=x,this.counters=new Wr,this.quoteDepth=0,!x.ownerDocument)throw new Error("Cloned element does not have an owner document");this.documentElement=this.cloneNode(x.ownerDocument.documentElement,!1)}return v.prototype.toIFrame=function(g,x){var w=this,S=XF(g,x);if(!S.contentWindow)return Promise.reject("Unable to find iframe window");var O=g.defaultView.pageXOffset,Y=g.defaultView.pageYOffset,de=S.contentWindow,ce=de.document,ze=VU(S).then(function(){return B(w,void 0,void 0,function(){var Ze,ct;return m(this,function(Mt){switch(Mt.label){case 0:return this.scrolledElements.forEach(Ev),de&&(de.scrollTo(x.left,x.top),/(iPad|iPhone|iPod)/g.test(navigator.userAgent)&&(de.scrollY!==x.top||de.scrollX!==x.left)&&(this.context.logger.warn("Unable to restore scroll position for cloned document"),this.context.windowBounds=this.context.windowBounds.add(de.scrollX-x.left,de.scrollY-x.top,0,0))),Ze=this.options.onclone,typeof(ct=this.clonedReferenceElement)>"u"?[2,Promise.reject("Error finding the "+this.referenceElement.nodeName+" in the cloned document")]:ce.fonts&&ce.fonts.ready?[4,ce.fonts.ready]:[3,2];case 1:Mt.sent(),Mt.label=2;case 2:return/(AppleWebKit)/g.test(navigator.userAgent)?[4,HU(ce)]:[3,4];case 3:Mt.sent(),Mt.label=4;case 4:return"function"==typeof Ze?[2,Promise.resolve().then(function(){return Ze(ce,ct)}).then(function(){return S})]:[2,S]}})})});return ce.open(),ce.write(YF(document.doctype)+""),vp(this.referenceElement.ownerDocument,O,Y),ce.replaceChild(ce.adoptNode(this.documentElement),ce.documentElement),ce.close(),ze},v.prototype.createElementClone=function(g){if(up(g,2),bv(g))return this.createCanvasClone(g);if(Og(g))return this.createVideoClone(g);if(yv(g))return this.createStyleClone(g);var x=g.cloneNode(!1);return Ng(x)&&(Ng(g)&&g.currentSrc&&g.currentSrc!==g.src&&(x.src=g.currentSrc,x.srcset=""),"lazy"===x.loading&&(x.loading="eager")),Ld(x)?this.createCustomElementClone(x):x},v.prototype.createCustomElementClone=function(g){var x=document.createElement("html2canvascustomelement");return Ju(g.style,x),x},v.prototype.createStyleClone=function(g){try{var x=g.sheet;if(x&&x.cssRules){var w=[].slice.call(x.cssRules,0).reduce(function(O,Y){return Y&&"string"==typeof Y.cssText?O+Y.cssText:O},""),S=g.cloneNode(!1);return S.textContent=w,S}}catch(O){if(this.context.logger.error("Unable to access cssRules property",O),"SecurityError"!==O.name)throw O}return g.cloneNode(!1)},v.prototype.createCanvasClone=function(g){var x;if(this.options.inlineImages&&g.ownerDocument){var w=g.ownerDocument.createElement("img");try{return w.src=g.toDataURL(),w}catch{this.context.logger.info("Unable to inline canvas contents, canvas is tainted",g)}}var S=g.cloneNode(!1);try{S.width=g.width,S.height=g.height;var O=g.getContext("2d"),Y=S.getContext("2d");if(Y)if(!this.options.allowTaint&&O)Y.putImageData(O.getImageData(0,0,g.width,g.height),0,0);else{var de=null!==(x=g.getContext("webgl2"))&&void 0!==x?x:g.getContext("webgl");if(de){var ce=de.getContextAttributes();!1===ce?.preserveDrawingBuffer&&this.context.logger.warn("Unable to clone WebGL context as it has preserveDrawingBuffer=false",g)}Y.drawImage(g,0,0)}return S}catch{this.context.logger.info("Unable to clone canvas as it is tainted",g)}return S},v.prototype.createVideoClone=function(g){var x=g.ownerDocument.createElement("canvas");x.width=g.offsetWidth,x.height=g.offsetHeight;var w=x.getContext("2d");try{return w&&(w.drawImage(g,0,0,x.width,x.height),this.options.allowTaint||w.getImageData(0,0,x.width,x.height)),x}catch{this.context.logger.info("Unable to clone video as it is tainted",g)}var S=g.ownerDocument.createElement("canvas");return S.width=g.offsetWidth,S.height=g.offsetHeight,S},v.prototype.appendChildNode=function(g,x,w){(!If(x)||!function(v){return"SCRIPT"===v.tagName}(x)&&!x.hasAttribute(wC)&&("function"!=typeof this.options.ignoreElements||!this.options.ignoreElements(x)))&&(!this.options.copyStyles||!If(x)||!yv(x))&&g.appendChild(this.cloneNode(x,w))},v.prototype.cloneChildNodes=function(g,x,w){for(var S=this,O=g.shadowRoot?g.shadowRoot.firstChild:g.firstChild;O;O=O.nextSibling)if(If(O)&&Fs(O)&&"function"==typeof O.assignedNodes){var Y=O.assignedNodes();Y.length&&Y.forEach(function(de){return S.appendChildNode(x,de,w)})}else this.appendChildNode(x,O,w)},v.prototype.cloneNode=function(g,x){if(Ac(g))return document.createTextNode(g.data);if(!g.ownerDocument)return g.cloneNode(!1);var w=g.ownerDocument.defaultView;if(w&&If(g)&&(Rg(g)||Lg(g))){var S=this.createElementClone(g);S.style.transitionProperty="none";var O=w.getComputedStyle(g),Y=w.getComputedStyle(g,":before"),de=w.getComputedStyle(g,":after");this.referenceElement===g&&Rg(S)&&(this.clonedReferenceElement=S),_v(S)&&gc(S);var ce=this.counters.parse(new El(this.context,O)),ze=this.resolvePseudoContent(g,S,Y,Qg.BEFORE);Ld(g)&&(x=!0),Og(g)||this.cloneChildNodes(g,S,x),ze&&S.insertBefore(ze,S.firstChild);var Ze=this.resolvePseudoContent(g,S,de,Qg.AFTER);return Ze&&S.appendChild(Ze),this.counters.pop(ce),(O&&(this.options.copyStyles||Lg(g))&&!vv(g)||x)&&Ju(O,S),(0!==g.scrollTop||0!==g.scrollLeft)&&this.scrolledElements.push([S,g.scrollLeft,g.scrollTop]),(Ff(g)||Ug(g))&&(Ff(S)||Ug(S))&&(S.value=g.value),S}return g.cloneNode(!1)},v.prototype.resolvePseudoContent=function(g,x,w,S){var O=this;if(w){var Y=w.content,de=x.ownerDocument;if(de&&Y&&"none"!==Y&&"-moz-alt-content"!==Y&&"none"!==w.display){this.counters.parse(new El(this.context,w));var ce=new dp(this.context,w),ze=de.createElement("html2canvaspseudoelement");Ju(w,ze),ce.content.forEach(function(ct){if(0===ct.type)ze.appendChild(de.createTextNode(ct.value));else if(22===ct.type){var Mt=de.createElement("img");Mt.src=ct.value,Mt.style.opacity="1",ze.appendChild(Mt)}else if(18===ct.type){if("attr"===ct.name){var xn=ct.values.filter(Sr);xn.length&&ze.appendChild(de.createTextNode(g.getAttribute(xn[0].value)||""))}else if("counter"===ct.name){var on=ct.values.filter(hc),jn=on[1];if((mn=on[0])&&Sr(mn)){var Fn=O.counters.getCounterValue(mn.value),Dn=jn&&Sr(jn)?Pd.parse(O.context,jn.value):3;ze.appendChild(de.createTextNode(qc(Fn,Dn,!1)))}}else if("counters"===ct.name){var mn,mr=ct.values.filter(hc),ki=mr[1];if(jn=mr[2],(mn=mr[0])&&Sr(mn)){var si=O.counters.getCounterValues(mn.value),Mn=jn&&Sr(jn)?Pd.parse(O.context,jn.value):3,ir=ki&&0===ki.type?ki.value:"",ur=si.map(function(da){return qc(da,Mn,!1)}).join(ir);ze.appendChild(de.createTextNode(ur))}}}else if(20===ct.type)switch(ct.value){case"open-quote":ze.appendChild(de.createTextNode(ov(ce.quotes,O.quoteDepth++,!0)));break;case"close-quote":ze.appendChild(de.createTextNode(ov(ce.quotes,--O.quoteDepth,!1)));break;default:ze.appendChild(de.createTextNode(ct.value))}}),ze.className=qg+" "+Gg;var Ze=S===Qg.BEFORE?" "+qg:" "+Gg;return Lg(x)?x.className.baseValue+=Ze:x.className+=Ze,ze}}},v.destroy=function(g){return!!g.parentNode&&(g.parentNode.removeChild(g),!0)},v}(),Qg=function(v){return v[v.BEFORE=0]="BEFORE",v[v.AFTER=1]="AFTER",v}(Qg||{}),XF=function(v,g){var x=v.createElement("iframe");return x.className="html2canvas-container",x.style.visibility="hidden",x.style.position="fixed",x.style.left="-10000px",x.style.top="0px",x.style.border="0",x.width=g.width.toString(),x.height=g.height.toString(),x.scrolling="no",x.setAttribute(wC,"true"),v.body.appendChild(x),x},KF=function(v){return new Promise(function(g){v.complete?g():v.src?(v.onload=g,v.onerror=g):g()})},HU=function(v){return Promise.all([].slice.call(v.images,0).map(KF))},VU=function(v){return new Promise(function(g,x){var w=v.contentWindow;if(!w)return x("No window assigned for iframe");var S=w.document;w.onload=v.onload=function(){w.onload=v.onload=null;var O=setInterval(function(){S.body.childNodes.length>0&&"complete"===S.readyState&&(clearInterval(O),g(v))},50)}})},Mv=["all","d","content"],Ju=function(v,g){for(var x=v.length-1;x>=0;x--){var w=v.item(x);-1===Mv.indexOf(w)&&g.style.setProperty(w,v.getPropertyValue(w))}return g},YF=function(v){var g="";return v&&(g+=""),g},vp=function(v,g,x){v&&v.defaultView&&(g!==v.defaultView.pageXOffset||x!==v.defaultView.pageYOffset)&&v.defaultView.scrollTo(g,x)},Ev=function(v){var g=v[0],w=v[2];g.scrollLeft=v[1],g.scrollTop=w},qg="___html2canvas___pseudoelement_before",Gg="___html2canvas___pseudoelement_after",xC='{\n content: "" !important;\n display: none !important;\n}',gc=function(v){ZF(v,"."+qg+":before"+xC+"\n ."+Gg+":after"+xC)},ZF=function(v,g){var x=v.ownerDocument;if(x){var w=x.createElement("style");w.textContent=g,v.appendChild(w)}},yp=function(){function v(){}return v.getOrigin=function(g){var x=v._link;return x?(x.href=g,x.href=x.href,x.protocol+x.hostname+x.port):"about:blank"},v.isSameOrigin=function(g){return v.getOrigin(g)===v._origin},v.setContext=function(g){v._link=g.document.createElement("a"),v._origin=v.getOrigin(g.location.href)},v._origin="about:blank",v}(),Sv=function(){function v(g,x){this.context=g,this._options=x,this._cache={}}return v.prototype.addImage=function(g){var x=Promise.resolve();return this.has(g)||(jg(g)||JF(g))&&(this._cache[g]=this.loadImage(g)).catch(function(){}),x},v.prototype.match=function(g){return this._cache[g]},v.prototype.loadImage=function(g){return B(this,void 0,void 0,function(){var x,w,S,O,Y=this;return m(this,function(de){switch(de.label){case 0:return x=yp.isSameOrigin(g),w=!$g(g)&&!0===this._options.useCORS&&fs.SUPPORT_CORS_IMAGES&&!x,S=!$g(g)&&!x&&!jg(g)&&"string"==typeof this._options.proxy&&fs.SUPPORT_CORS_XHR&&!w,x||!1!==this._options.allowTaint||$g(g)||jg(g)||S||w?(O=g,S?[4,this.proxy(O)]:[3,2]):[2];case 1:O=de.sent(),de.label=2;case 2:return this.context.logger.debug("Added image "+g.substring(0,256)),[4,new Promise(function(ce,ze){var Ze=new Image;Ze.onload=function(){return ce(Ze)},Ze.onerror=ze,(MC(O)||w)&&(Ze.crossOrigin="anonymous"),Ze.src=O,!0===Ze.complete&&setTimeout(function(){return ce(Ze)},500),Y._options.imageTimeout>0&&setTimeout(function(){return ze("Timed out ("+Y._options.imageTimeout+"ms) loading image")},Y._options.imageTimeout)})];case 3:return[2,de.sent()]}})})},v.prototype.has=function(g){return typeof this._cache[g]<"u"},v.prototype.keys=function(){return Promise.resolve(Object.keys(this._cache))},v.prototype.proxy=function(g){var x=this,w=this._options.proxy;if(!w)throw new Error("No proxy defined");var S=g.substring(0,256);return new Promise(function(O,Y){var de=fs.SUPPORT_RESPONSE_TYPE?"blob":"text",ce=new XMLHttpRequest;ce.onload=function(){if(200===ce.status)if("text"===de)O(ce.response);else{var ct=new FileReader;ct.addEventListener("load",function(){return O(ct.result)},!1),ct.addEventListener("error",function(Mt){return Y(Mt)},!1),ct.readAsDataURL(ce.response)}else Y("Failed to proxy resource "+S+" with status code "+ce.status)},ce.onerror=Y;var ze=w.indexOf("?")>-1?"&":"?";if(ce.open("GET",""+w+ze+"url="+encodeURIComponent(g)+"&responseType="+de),"text"!==de&&ce instanceof XMLHttpRequest&&(ce.responseType=de),x._options.imageTimeout){var Ze=x._options.imageTimeout;ce.timeout=Ze,ce.ontimeout=function(){return Y("Timed out ("+Ze+"ms) proxying "+S)}}ce.send()})},v}(),CC=/^data:image\/svg\+xml/i,Wg=/^data:image\/.*;base64,/i,Tv=/^data:image\/.*/i,JF=function(v){return fs.SUPPORT_SVG_DRAWING||!EC(v)},$g=function(v){return Tv.test(v)},MC=function(v){return Wg.test(v)},jg=function(v){return"blob"===v.substr(0,4)},EC=function(v){return"svg"===v.substr(-3).toLowerCase()||CC.test(v)},wn=function(){function v(g,x){this.type=0,this.x=g,this.y=x}return v.prototype.add=function(g,x){return new v(this.x+g,this.y+x)},v}(),Gc=function(v,g,x){return new wn(v.x+(g.x-v.x)*x,v.y+(g.y-v.y)*x)},_c=function(){function v(g,x,w,S){this.type=1,this.start=g,this.startControl=x,this.endControl=w,this.end=S}return v.prototype.subdivide=function(g,x){var w=Gc(this.start,this.startControl,g),S=Gc(this.startControl,this.endControl,g),O=Gc(this.endControl,this.end,g),Y=Gc(w,S,g),de=Gc(S,O,g),ce=Gc(Y,de,g);return x?new v(this.start,w,Y,ce):new v(ce,de,O,this.end)},v.prototype.add=function(g,x){return new v(this.start.add(g,x),this.startControl.add(g,x),this.endControl.add(g,x),this.end.add(g,x))},v.prototype.reverse=function(){return new v(this.end,this.endControl,this.startControl,this.start)},v}(),el=function(v){return 1===v.type},SC=function(){return function v(g){var x=g.styles,w=g.bounds,S=wl(x.borderTopLeftRadius,w.width,w.height),O=S[0],Y=S[1],de=wl(x.borderTopRightRadius,w.width,w.height),ce=de[0],ze=de[1],Ze=wl(x.borderBottomRightRadius,w.width,w.height),ct=Ze[0],Mt=Ze[1],xn=wl(x.borderBottomLeftRadius,w.width,w.height),on=xn[0],mn=xn[1],jn=[];jn.push((O+ce)/w.width),jn.push((on+ct)/w.width),jn.push((Y+mn)/w.height),jn.push((ze+Mt)/w.height);var Fn=Math.max.apply(Math,jn);Fn>1&&(O/=Fn,Y/=Fn,ce/=Fn,ze/=Fn,ct/=Fn,Mt/=Fn,on/=Fn,mn/=Fn);var Dn=w.width-ce,mr=w.height-Mt,ki=w.width-ct,si=w.height-mn,Mn=x.borderTopWidth,ir=x.borderRightWidth,ur=x.borderBottomWidth,di=x.borderLeftWidth,Qo=qr(x.paddingTop,g.bounds.width),da=qr(x.paddingRight,g.bounds.width),Fa=qr(x.paddingBottom,g.bounds.width),Pr=qr(x.paddingLeft,g.bounds.width);this.topLeftBorderDoubleOuterBox=O>0||Y>0?Tr(w.left+di/3,w.top+Mn/3,O-di/3,Y-Mn/3,Cr.TOP_LEFT):new wn(w.left+di/3,w.top+Mn/3),this.topRightBorderDoubleOuterBox=O>0||Y>0?Tr(w.left+Dn,w.top+Mn/3,ce-ir/3,ze-Mn/3,Cr.TOP_RIGHT):new wn(w.left+w.width-ir/3,w.top+Mn/3),this.bottomRightBorderDoubleOuterBox=ct>0||Mt>0?Tr(w.left+ki,w.top+mr,ct-ir/3,Mt-ur/3,Cr.BOTTOM_RIGHT):new wn(w.left+w.width-ir/3,w.top+w.height-ur/3),this.bottomLeftBorderDoubleOuterBox=on>0||mn>0?Tr(w.left+di/3,w.top+si,on-di/3,mn-ur/3,Cr.BOTTOM_LEFT):new wn(w.left+di/3,w.top+w.height-ur/3),this.topLeftBorderDoubleInnerBox=O>0||Y>0?Tr(w.left+2*di/3,w.top+2*Mn/3,O-2*di/3,Y-2*Mn/3,Cr.TOP_LEFT):new wn(w.left+2*di/3,w.top+2*Mn/3),this.topRightBorderDoubleInnerBox=O>0||Y>0?Tr(w.left+Dn,w.top+2*Mn/3,ce-2*ir/3,ze-2*Mn/3,Cr.TOP_RIGHT):new wn(w.left+w.width-2*ir/3,w.top+2*Mn/3),this.bottomRightBorderDoubleInnerBox=ct>0||Mt>0?Tr(w.left+ki,w.top+mr,ct-2*ir/3,Mt-2*ur/3,Cr.BOTTOM_RIGHT):new wn(w.left+w.width-2*ir/3,w.top+w.height-2*ur/3),this.bottomLeftBorderDoubleInnerBox=on>0||mn>0?Tr(w.left+2*di/3,w.top+si,on-2*di/3,mn-2*ur/3,Cr.BOTTOM_LEFT):new wn(w.left+2*di/3,w.top+w.height-2*ur/3),this.topLeftBorderStroke=O>0||Y>0?Tr(w.left+di/2,w.top+Mn/2,O-di/2,Y-Mn/2,Cr.TOP_LEFT):new wn(w.left+di/2,w.top+Mn/2),this.topRightBorderStroke=O>0||Y>0?Tr(w.left+Dn,w.top+Mn/2,ce-ir/2,ze-Mn/2,Cr.TOP_RIGHT):new wn(w.left+w.width-ir/2,w.top+Mn/2),this.bottomRightBorderStroke=ct>0||Mt>0?Tr(w.left+ki,w.top+mr,ct-ir/2,Mt-ur/2,Cr.BOTTOM_RIGHT):new wn(w.left+w.width-ir/2,w.top+w.height-ur/2),this.bottomLeftBorderStroke=on>0||mn>0?Tr(w.left+di/2,w.top+si,on-di/2,mn-ur/2,Cr.BOTTOM_LEFT):new wn(w.left+di/2,w.top+w.height-ur/2),this.topLeftBorderBox=O>0||Y>0?Tr(w.left,w.top,O,Y,Cr.TOP_LEFT):new wn(w.left,w.top),this.topRightBorderBox=ce>0||ze>0?Tr(w.left+Dn,w.top,ce,ze,Cr.TOP_RIGHT):new wn(w.left+w.width,w.top),this.bottomRightBorderBox=ct>0||Mt>0?Tr(w.left+ki,w.top+mr,ct,Mt,Cr.BOTTOM_RIGHT):new wn(w.left+w.width,w.top+w.height),this.bottomLeftBorderBox=on>0||mn>0?Tr(w.left,w.top+si,on,mn,Cr.BOTTOM_LEFT):new wn(w.left,w.top+w.height),this.topLeftPaddingBox=O>0||Y>0?Tr(w.left+di,w.top+Mn,Math.max(0,O-di),Math.max(0,Y-Mn),Cr.TOP_LEFT):new wn(w.left+di,w.top+Mn),this.topRightPaddingBox=ce>0||ze>0?Tr(w.left+Math.min(Dn,w.width-ir),w.top+Mn,Dn>w.width+ir?0:Math.max(0,ce-ir),Math.max(0,ze-Mn),Cr.TOP_RIGHT):new wn(w.left+w.width-ir,w.top+Mn),this.bottomRightPaddingBox=ct>0||Mt>0?Tr(w.left+Math.min(ki,w.width-di),w.top+Math.min(mr,w.height-ur),Math.max(0,ct-ir),Math.max(0,Mt-ur),Cr.BOTTOM_RIGHT):new wn(w.left+w.width-ir,w.top+w.height-ur),this.bottomLeftPaddingBox=on>0||mn>0?Tr(w.left+di,w.top+Math.min(si,w.height-ur),Math.max(0,on-di),Math.max(0,mn-ur),Cr.BOTTOM_LEFT):new wn(w.left+di,w.top+w.height-ur),this.topLeftContentBox=O>0||Y>0?Tr(w.left+di+Pr,w.top+Mn+Qo,Math.max(0,O-(di+Pr)),Math.max(0,Y-(Mn+Qo)),Cr.TOP_LEFT):new wn(w.left+di+Pr,w.top+Mn+Qo),this.topRightContentBox=ce>0||ze>0?Tr(w.left+Math.min(Dn,w.width+di+Pr),w.top+Mn+Qo,Dn>w.width+di+Pr?0:ce-di+Pr,ze-(Mn+Qo),Cr.TOP_RIGHT):new wn(w.left+w.width-(ir+da),w.top+Mn+Qo),this.bottomRightContentBox=ct>0||Mt>0?Tr(w.left+Math.min(ki,w.width-(di+Pr)),w.top+Math.min(mr,w.height+Mn+Qo),Math.max(0,ct-(ir+da)),Mt-(ur+Fa),Cr.BOTTOM_RIGHT):new wn(w.left+w.width-(ir+da),w.top+w.height-(ur+Fa)),this.bottomLeftContentBox=on>0||mn>0?Tr(w.left+di+Pr,w.top+si,Math.max(0,on-(di+Pr)),mn-(ur+Fa),Cr.BOTTOM_LEFT):new wn(w.left+di+Pr,w.top+w.height-(ur+Fa))}}(),Cr=function(v){return v[v.TOP_LEFT=0]="TOP_LEFT",v[v.TOP_RIGHT=1]="TOP_RIGHT",v[v.BOTTOM_RIGHT=2]="BOTTOM_RIGHT",v[v.BOTTOM_LEFT=3]="BOTTOM_LEFT",v}(Cr||{}),Tr=function(v,g,x,w,S){var O=(Math.sqrt(2)-1)/3*4,Y=x*O,de=w*O,ce=v+x,ze=g+w;switch(S){case Cr.TOP_LEFT:return new _c(new wn(v,ze),new wn(v,ze-de),new wn(ce-Y,g),new wn(ce,g));case Cr.TOP_RIGHT:return new _c(new wn(v,g),new wn(v+Y,g),new wn(ce,ze-de),new wn(ce,ze));case Cr.BOTTOM_RIGHT:return new _c(new wn(ce,g),new wn(ce,g+de),new wn(v+Y,ze),new wn(v,ze));default:return new _c(new wn(ce,ze),new wn(ce-Y,ze),new wn(v,g+de),new wn(v,g))}},Wc=function(v){return[v.topLeftBorderBox,v.topRightBorderBox,v.bottomRightBorderBox,v.bottomLeftBorderBox]},Xg=function(v){return[v.topLeftPaddingBox,v.topRightPaddingBox,v.bottomRightPaddingBox,v.bottomLeftPaddingBox]},Zr=function(){return function v(g,x,w){this.offsetX=g,this.offsetY=x,this.matrix=w,this.type=0,this.target=6}}(),kf=function(){return function v(g,x){this.path=g,this.target=x,this.type=1}}(),eD=function(){return function v(g){this.opacity=g,this.type=2,this.target=6}}(),Ll=function(v){return 1===v.type},Iv=function(v,g){return v.length===g.length&&v.some(function(x,w){return x===g[w]})},wp=function(){return function v(g){this.element=g,this.inlineLevel=[],this.nonInlineLevel=[],this.negativeZIndex=[],this.zeroOrAutoZIndexOrTransformedOrOpacity=[],this.positiveZIndex=[],this.nonPositionedFloats=[],this.nonPositionedInlineLevel=[]}}(),Dv=function(){function v(g,x){if(this.container=g,this.parent=x,this.effects=[],this.curves=new SC(this.container),this.container.styles.opacity<1&&this.effects.push(new eD(this.container.styles.opacity)),null!==this.container.styles.transform&&this.effects.push(new Zr(this.container.bounds.left+this.container.styles.transformOrigin[0].number,this.container.bounds.top+this.container.styles.transformOrigin[1].number,this.container.styles.transform)),0!==this.container.styles.overflowX){var Y=Wc(this.curves),de=Xg(this.curves);Iv(Y,de)?this.effects.push(new kf(Y,6)):(this.effects.push(new kf(Y,2)),this.effects.push(new kf(de,4)))}}return v.prototype.getEffects=function(g){for(var x=-1===[2,3].indexOf(this.container.styles.position),w=this.parent,S=this.effects.slice(0);w;){var O=w.effects.filter(function(ce){return!Ll(ce)});if(x||0!==w.container.styles.position||!w.parent){if(S.unshift.apply(S,O),x=-1===[2,3].indexOf(w.container.styles.position),0!==w.container.styles.overflowX){var Y=Wc(w.curves),de=Xg(w.curves);Iv(Y,de)||S.unshift(new kf(de,6))}}else S.unshift.apply(S,O);w=w.parent}return S.filter(function(ce){return ao(ce.target,g)})},v}(),kv=function(v,g,x,w){v.container.elements.forEach(function(S){var O=ao(S.flags,4),Y=ao(S.flags,2),de=new Dv(S,v);ao(S.styles.display,2048)&&w.push(de);var ce=ao(S.flags,8)?[]:w;if(O||Y){var ze=O||S.styles.isPositioned()?x:g,Ze=new wp(de);if(S.styles.isPositioned()||S.styles.opacity<1||S.styles.isTransformed()){var ct=S.styles.zIndex.order;if(ct<0){var Mt=0;ze.negativeZIndex.some(function(on,mn){return ct>on.element.container.styles.zIndex.order?(Mt=mn,!1):Mt>0}),ze.negativeZIndex.splice(Mt,0,Ze)}else if(ct>0){var xn=0;ze.positiveZIndex.some(function(on,mn){return ct>=on.element.container.styles.zIndex.order?(xn=mn+1,!1):xn>0}),ze.positiveZIndex.splice(xn,0,Ze)}else ze.zeroOrAutoZIndexOrTransformedOrOpacity.push(Ze)}else S.styles.isFloating()?ze.nonPositionedFloats.push(Ze):ze.nonPositionedInlineLevel.push(Ze);kv(de,Ze,O?Ze:x,ce)}else S.styles.isInlineLevel()?g.inlineLevel.push(de):g.nonInlineLevel.push(de),kv(de,g,x,ce);ao(S.flags,8)&&IC(S,ce)})},IC=function(v,g){for(var x=v instanceof mv?v.start:1,w=v instanceof mv&&v.reversed,S=0;S"u"?v[0]:x},Ud=function(v,g,x,w,S){var O=g[0],Y=g[1],de=x[0],ce=x[1];switch(v){case 2:return[new wn(Math.round(w.left),Math.round(w.top+Y)),new wn(Math.round(w.left+w.width),Math.round(w.top+Y)),new wn(Math.round(w.left+w.width),Math.round(ce+w.top+Y)),new wn(Math.round(w.left),Math.round(ce+w.top+Y))];case 3:return[new wn(Math.round(w.left+O),Math.round(w.top)),new wn(Math.round(w.left+O+de),Math.round(w.top)),new wn(Math.round(w.left+O+de),Math.round(w.height+w.top)),new wn(Math.round(w.left+O),Math.round(w.height+w.top))];case 1:return[new wn(Math.round(w.left+O),Math.round(w.top+Y)),new wn(Math.round(w.left+O+de),Math.round(w.top+Y)),new wn(Math.round(w.left+O+de),Math.round(w.top+Y+ce)),new wn(Math.round(w.left+O),Math.round(w.top+Y+ce))];default:return[new wn(Math.round(S.left),Math.round(S.top)),new wn(Math.round(S.left+S.width),Math.round(S.top)),new wn(Math.round(S.left+S.width),Math.round(S.height+S.top)),new wn(Math.round(S.left),Math.round(S.height+S.top))]}},DC="Hidden Text",kC=function(){function v(g){this._data={},this._document=g}return v.prototype.parseMetrics=function(g,x){var w=this._document.createElement("div"),S=this._document.createElement("img"),O=this._document.createElement("span"),Y=this._document.body;w.style.visibility="hidden",w.style.fontFamily=g,w.style.fontSize=x,w.style.margin="0",w.style.padding="0",w.style.whiteSpace="nowrap",Y.appendChild(w),S.src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",S.width=1,S.height=1,S.style.margin="0",S.style.padding="0",S.style.verticalAlign="baseline",O.style.fontFamily=g,O.style.fontSize=x,O.style.margin="0",O.style.padding="0",O.appendChild(this._document.createTextNode(DC)),w.appendChild(O),w.appendChild(S);var de=S.offsetTop-O.offsetTop+2;w.removeChild(O),w.appendChild(this._document.createTextNode(DC)),w.style.lineHeight="normal",S.style.verticalAlign="super";var ce=S.offsetTop-w.offsetTop+2;return Y.removeChild(w),{baseline:de,middle:ce}},v.prototype.getMetrics=function(g,x){var w=g+" "+x;return typeof this._data[w]>"u"&&(this._data[w]=this.parseMetrics(g,x)),this._data[w]},v}(),sD=function(){return function v(g,x){this.context=g,this.options=x}}(),GU=function(v){function g(x,w){var S=v.call(this,x,w)||this;return S._activeEffects=[],S.canvas=w.canvas?w.canvas:document.createElement("canvas"),S.ctx=S.canvas.getContext("2d"),w.canvas||(S.canvas.width=Math.floor(w.width*w.scale),S.canvas.height=Math.floor(w.height*w.scale),S.canvas.style.width=w.width+"px",S.canvas.style.height=w.height+"px"),S.fontMetrics=new kC(document),S.ctx.scale(S.options.scale,S.options.scale),S.ctx.translate(-w.x,-w.y),S.ctx.textBaseline="bottom",S._activeEffects=[],S.context.logger.debug("Canvas renderer initialized ("+w.width+"x"+w.height+") with scale "+w.scale),S}return p(g,v),g.prototype.applyEffects=function(x){for(var w=this;this._activeEffects.length;)this.popEffect();x.forEach(function(S){return w.applyEffect(S)})},g.prototype.applyEffect=function(x){this.ctx.save(),function(v){return 2===v.type}(x)&&(this.ctx.globalAlpha=x.opacity),function(v){return 0===v.type}(x)&&(this.ctx.translate(x.offsetX,x.offsetY),this.ctx.transform(x.matrix[0],x.matrix[1],x.matrix[2],x.matrix[3],x.matrix[4],x.matrix[5]),this.ctx.translate(-x.offsetX,-x.offsetY)),Ll(x)&&(this.path(x.path),this.ctx.clip()),this._activeEffects.push(x)},g.prototype.popEffect=function(){this._activeEffects.pop(),this.ctx.restore()},g.prototype.renderStack=function(x){return B(this,void 0,void 0,function(){return m(this,function(S){switch(S.label){case 0:return x.element.container.styles.isVisible()?[4,this.renderStackContent(x)]:[3,2];case 1:S.sent(),S.label=2;case 2:return[2]}})})},g.prototype.renderNode=function(x){return B(this,void 0,void 0,function(){return m(this,function(w){switch(w.label){case 0:return ao(x.container.flags,16),x.container.styles.isVisible()?[4,this.renderNodeBackgroundAndBorders(x)]:[3,3];case 1:return w.sent(),[4,this.renderNodeContent(x)];case 2:w.sent(),w.label=3;case 3:return[2]}})})},g.prototype.renderTextWithLetterSpacing=function(x,w,S){var O=this;0===w?this.ctx.fillText(x.text,x.bounds.left,x.bounds.top+S):gp(x.text).reduce(function(de,ce){return O.ctx.fillText(ce,de,x.bounds.top+S),de+O.ctx.measureText(ce).width},x.bounds.left)},g.prototype.createFontStyle=function(x){var w=x.fontVariant.filter(function(Y){return"normal"===Y||"small-caps"===Y}).join(""),S=Vn(x.fontFamily).join(", "),O=ep(x.fontSize)?""+x.fontSize.number+x.fontSize.unit:x.fontSize.number+"px";return[[x.fontStyle,w,x.fontWeight,O,S].join(" "),S,O]},g.prototype.renderTextNode=function(x,w){return B(this,void 0,void 0,function(){var S,Y,de,ce,ze,Ze,ct,Mt=this;return m(this,function(xn){return S=this.createFontStyle(w),Y=S[1],de=S[2],this.ctx.font=S[0],this.ctx.direction=1===w.direction?"rtl":"ltr",this.ctx.textAlign="left",this.ctx.textBaseline="alphabetic",ce=this.fontMetrics.getMetrics(Y,de),ze=ce.baseline,Ze=ce.middle,ct=w.paintOrder,x.textBounds.forEach(function(on){ct.forEach(function(mn){switch(mn){case 0:Mt.ctx.fillStyle=Ho(w.color),Mt.renderTextWithLetterSpacing(on,w.letterSpacing,ze);var jn=w.textShadow;jn.length&&on.text.trim().length&&(jn.slice(0).reverse().forEach(function(Fn){Mt.ctx.shadowColor=Ho(Fn.color),Mt.ctx.shadowOffsetX=Fn.offsetX.number*Mt.options.scale,Mt.ctx.shadowOffsetY=Fn.offsetY.number*Mt.options.scale,Mt.ctx.shadowBlur=Fn.blur.number,Mt.renderTextWithLetterSpacing(on,w.letterSpacing,ze)}),Mt.ctx.shadowColor="",Mt.ctx.shadowOffsetX=0,Mt.ctx.shadowOffsetY=0,Mt.ctx.shadowBlur=0),w.textDecorationLine.length&&(Mt.ctx.fillStyle=Ho(w.textDecorationColor||w.color),w.textDecorationLine.forEach(function(Fn){switch(Fn){case 1:Mt.ctx.fillRect(on.bounds.left,Math.round(on.bounds.top+ze),on.bounds.width,1);break;case 2:Mt.ctx.fillRect(on.bounds.left,Math.round(on.bounds.top),on.bounds.width,1);break;case 3:Mt.ctx.fillRect(on.bounds.left,Math.ceil(on.bounds.top+Ze),on.bounds.width,1)}}));break;case 1:w.webkitTextStrokeWidth&&on.text.trim().length&&(Mt.ctx.strokeStyle=Ho(w.webkitTextStrokeColor),Mt.ctx.lineWidth=w.webkitTextStrokeWidth,Mt.ctx.lineJoin=window.chrome?"miter":"round",Mt.ctx.strokeText(on.text,on.bounds.left,on.bounds.top+ze)),Mt.ctx.strokeStyle="",Mt.ctx.lineWidth=0,Mt.ctx.lineJoin="miter"}})}),[2]})})},g.prototype.renderReplacedElement=function(x,w,S){if(S&&x.intrinsicWidth>0&&x.intrinsicHeight>0){var O=xp(x),Y=Xg(w);this.path(Y),this.ctx.save(),this.ctx.clip(),this.ctx.drawImage(S,0,0,x.intrinsicWidth,x.intrinsicHeight,O.left,O.top,O.width,O.height),this.ctx.restore()}},g.prototype.renderNodeContent=function(x){return B(this,void 0,void 0,function(){var w,S,O,Y,de,Ze,ct,Mt,on,mn,jn,Fn,Dn,mr,ki,si;return m(this,function(Mn){switch(Mn.label){case 0:this.applyEffects(x.getEffects(4)),S=x.curves,O=(w=x.container).styles,Y=0,de=w.textNodes,Mn.label=1;case 1:return Y0&&jc>0&&(Vd=O.ctx.createRadialGradient(da+Js,Fa+Ds,0,da+Js,Fa+Ds,Nl),Ct(Ze.stops,2*Nl).forEach(function(Zg){return Vd.addColorStop(Zg.stop,Ho(Zg.color))}),O.path(Qo),O.ctx.fillStyle=Vd,Nl!==jc?(nh=x.bounds.left+.5*x.bounds.width,Xc=x.bounds.top+.5*x.bounds.height,Kc=1/(ih=jc/Nl),O.ctx.save(),O.ctx.translate(nh,Xc),O.ctx.transform(1,0,0,ih,0,0),O.ctx.translate(-nh,-Xc),O.ctx.fillRect(da,Kc*(Fa-Xc)+Xc,Pr,ms*Kc),O.ctx.restore()):O.ctx.fill())):(on=Yg(x,w,[null,null,null]),Qo=on[0],Js=on[1],Ds=on[2],mn=jb(Ze.angle,Pr=on[3],ms=on[4]),jn=mn[0],Fn=mn[1],Dn=mn[2],mr=mn[3],ki=mn[4],(si=document.createElement("canvas")).width=Pr,si.height=ms,Mn=si.getContext("2d"),ir=Mn.createLinearGradient(Fn,mr,Dn,ki),Ct(Ze.stops,jn).forEach(function(Zg){return ir.addColorStop(Zg.stop,Ho(Zg.color))}),Mn.fillStyle=ir,Mn.fillRect(0,0,Pr,ms),Pr>0&&ms>0&&(ur=O.ctx.createPattern(si,"repeat"),O.renderRepeat(Qo,ur,Js,Ds))),rh.label=6;case 6:return w--,[2]}})},O=this,Y=0,de=x.styles.backgroundImage.slice(0).reverse(),ze.label=1;case 1:return Y0?2!==Ze.style?[3,5]:[4,this.renderDashedDottedBorder(Ze.color,Ze.width,de,x.curves,2)]:[3,11]:[3,13];case 4:return Mt.sent(),[3,11];case 5:return 3!==Ze.style?[3,7]:[4,this.renderDashedDottedBorder(Ze.color,Ze.width,de,x.curves,3)];case 6:return Mt.sent(),[3,11];case 7:return 4!==Ze.style?[3,9]:[4,this.renderDoubleBorder(Ze.color,Ze.width,de,x.curves)];case 8:return Mt.sent(),[3,11];case 9:return[4,this.renderSolidBorder(Ze.color,de,x.curves)];case 10:Mt.sent(),Mt.label=11;case 11:de++,Mt.label=12;case 12:return ce++,[3,3];case 13:return[2]}})})},g.prototype.renderDashedDottedBorder=function(x,w,S,O,Y){return B(this,void 0,void 0,function(){var de,ce,ze,Ze,ct,Mt,xn,on,mn,jn,Fn,Dn,mr,ki,si,Mn;return m(this,function(ir){return this.ctx.save(),de=function(v,g){switch(g){case 0:return Kg(v.topLeftBorderStroke,v.topRightBorderStroke);case 1:return Kg(v.topRightBorderStroke,v.bottomRightBorderStroke);case 2:return Kg(v.bottomRightBorderStroke,v.bottomLeftBorderStroke);default:return Kg(v.bottomLeftBorderStroke,v.topLeftBorderStroke)}}(O,S),ce=Bv(O,S),2===Y&&(this.path(ce),this.ctx.clip()),el(ce[0])?(ze=ce[0].start.x,Ze=ce[0].start.y):(ze=ce[0].x,Ze=ce[0].y),el(ce[1])?(ct=ce[1].end.x,Mt=ce[1].end.y):(ct=ce[1].x,Mt=ce[1].y),xn=0===S||2===S?Math.abs(ze-ct):Math.abs(Ze-Mt),this.ctx.beginPath(),this.formatPath(3===Y?de:ce.slice(0,2)),on=w<3?3*w:2*w,mn=w<3?2*w:w,3===Y&&(on=w,mn=w),jn=!0,xn<=2*on?jn=!1:xn<=2*on+mn?(on*=Fn=xn/(2*on+mn),mn*=Fn):(Dn=Math.floor((xn+mn)/(on+mn)),mr=(xn-Dn*on)/(Dn-1),mn=(ki=(xn-(Dn+1)*on)/Dn)<=0||Math.abs(mn-mr){function Fe(Ne){return Array.isArray(Ne)?Ne:[Ne]}const m=/^\s+$/,z=/(?:[^\\]|^)\\$/,D=/^\\!/,F=/^\\#/,q=/\r?\n/g,T=/^\.*\/|^\.+$/;let N="node-ignore";typeof Symbol<"u"&&(N=Symbol.for("node-ignore"));const j=N,X=/([0-z])-([0-z])/g,te=()=>!1,qe=[[/^\uFEFF/,()=>""],[/\\?\s+$/,Ne=>0===Ne.indexOf("\\")?" ":""],[/\\\s/g,()=>" "],[/[\\$.|*+(){^]/g,Ne=>`\\${Ne}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(Ne,pt,Et)=>pt+6pt+Et.replace(/\\\*/g,"[^\\/]*")],[/\\\\\\(?=[$.|*+(){^])/g,()=>"\\"],[/\\\\/g,()=>"\\"],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(Ne,pt,Et,Qt,Wt)=>"\\"===pt?`\\[${Et}${(Ne=>{const{length:pt}=Ne;return Ne.slice(0,pt-pt%2)})(Qt)}${Wt}`:"]"===Wt&&Qt.length%2==0?`[${(Ne=>Ne.replace(X,(pt,Et,Qt)=>Et.charCodeAt(0)<=Qt.charCodeAt(0)?pt:""))(Et)}${Qt}]`:"[]"],[/(?:[^*])$/,Ne=>/\/$/.test(Ne)?`${Ne}$`:`${Ne}(?=$|\\/$)`],[/(\^|\\\/)?\\\*$/,(Ne,pt)=>(pt?`${pt}[^/]+`:"[^/]*")+"(?=$|\\/$)"]],De=Object.create(null),tt=Ne=>"string"==typeof Ne;class nt{constructor(pt,Et,Qt,Wt){this.origin=pt,this.pattern=Et,this.negative=Qt,this.regex=Wt}}const st=(Ne,pt)=>{throw new pt(Ne)},je=(Ne,pt,Et)=>tt(Ne)?Ne?!je.isNotRelative(Ne)||Et(`path should be a \`path.relative()\`d string, but got "${pt}"`,RangeError):Et("path must not be empty",TypeError):Et(`path must be a string, but got \`${pt}\``,TypeError),ke=Ne=>T.test(Ne);je.isNotRelative=ke,je.convert=Ne=>Ne;class he{constructor({ignorecase:pt=!0,ignoreCase:Et=pt,allowRelativePaths:Qt=!1}={}){((Ne,pt,Et)=>{Object.defineProperty(this,pt,{value:!0})})(0,j),this._rules=[],this._ignoreCase=Et,this._allowRelativePaths=Qt,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(pt){if(pt&&pt[j])return this._rules=this._rules.concat(pt._rules),void(this._added=!0);if((Ne=pt)&&tt(Ne)&&!m.test(Ne)&&!z.test(Ne)&&0!==Ne.indexOf("#")){const Et=((Ne,pt)=>{const Et=Ne;let Qt=!1;0===Ne.indexOf("!")&&(Qt=!0,Ne=Ne.substr(1));const Wt=((Ne,pt)=>{let Et=De[Ne];return Et||(Et=qe.reduce((Qt,Wt)=>Qt.replace(Wt[0],Wt[1].bind(Ne)),Ne),De[Ne]=Et),pt?new RegExp(Et,"i"):new RegExp(Et)})(Ne=Ne.replace(D,"!").replace(F,"#"),pt);return new nt(Et,Ne,Qt,Wt)})(pt,this._ignoreCase);this._added=!0,this._rules.push(Et)}var Ne}add(pt){return this._added=!1,Fe(tt(pt)?(Ne=pt,Ne.split(q)):pt).forEach(this._addPattern,this),this._added&&this._initCache(),this;var Ne}addPattern(pt){return this.add(pt)}_testOne(pt,Et){let Qt=!1,Wt=!1;return this._rules.forEach(Sn=>{const{negative:Nn}=Sn;Wt===Nn&&Qt!==Wt||Nn&&!Qt&&!Wt&&!Et||Sn.regex.test(pt)&&(Qt=!Nn,Wt=Nn)}),{ignored:Qt,unignored:Wt}}_test(pt,Et,Qt,Wt){const Sn=pt&&je.convert(pt);return je(Sn,pt,this._allowRelativePaths?te:st),this._t(Sn,Et,Qt,Wt)}_t(pt,Et,Qt,Wt){if(pt in Et)return Et[pt];if(Wt||(Wt=pt.split("/")),Wt.pop(),!Wt.length)return Et[pt]=this._testOne(pt,Qt);const Sn=this._t(Wt.join("/")+"/",Et,Qt,Wt);return Et[pt]=Sn.ignored?Sn:this._testOne(pt,Qt)}ignores(pt){return this._test(pt,this._ignoreCache,!1).ignored}createFilter(){return pt=>!this.ignores(pt)}filter(pt){return Fe(pt).filter(this.createFilter())}test(pt){return this._test(pt,this._testCache,!0)}}const Ue=Ne=>new he(Ne);if(Ue.isPathValid=Ne=>je(Ne&&je.convert(Ne),Ne,te),Ue.default=Ue,ht.exports=Ue,typeof process<"u"&&(process.env&&process.env.IGNORE_TEST_WIN32||"win32"===process.platform)){je.convert=Et=>/^\\\\\?\\/.test(Et)||/["<>|\u0000-\u001F]+/u.test(Et)?Et:Et.replace(/\\/g,"/");const pt=/^[a-z]:\//i;je.isNotRelative=Et=>pt.test(Et)||ke(Et)}},8749:ht=>{function Fe(Q){return!!Q.constructor&&"function"==typeof Q.constructor.isBuffer&&Q.constructor.isBuffer(Q)}ht.exports=function(Q){return null!=Q&&(Fe(Q)||function p(Q){return"function"==typeof Q.readFloatLE&&"function"==typeof Q.slice&&Fe(Q.slice(0,0))}(Q)||!!Q._isBuffer)}},4331:ht=>{"use strict";var Fe=ht.exports=function(B,m,z){"function"==typeof m&&(z=m,m={}),p(m,"function"==typeof(z=m.cb||z)?z:z.pre||function(){},z.post||function(){},B,"",B)};function p(B,m,z,D,F,q,T,G,N,j){if(D&&"object"==typeof D&&!Array.isArray(D)){for(var L in m(D,F,q,T,G,N,j),D){var X=D[L];if(Array.isArray(X)){if(L in Fe.arrayKeywords)for(var te=0;te{var Q,B,m,z,D;Q=p(9928),B=p(7468).utf8,m=p(8749),z=p(7468).bin,(D=function(F,q){F.constructor==String?F=q&&"binary"===q.encoding?z.stringToBytes(F):B.stringToBytes(F):m(F)?F=Array.prototype.slice.call(F,0):!Array.isArray(F)&&F.constructor!==Uint8Array&&(F=F.toString());for(var T=Q.bytesToWords(F),G=8*F.length,N=1732584193,j=-271733879,L=-1732584194,X=271733878,te=0;te>>24)|4278255360&(T[te]<<24|T[te]>>>8);T[G>>>5]|=128<>>9<<4)]=G;var ee=D._ff,Te=D._gg,qe=D._hh,De=D._ii;for(te=0;te>>0,j=j+tt>>>0,L=L+Le>>>0,X=X+gt>>>0}return Q.endian([N,j,L,X])})._ff=function(F,q,T,G,N,j,L){var X=F+(q&T|~q&G)+(N>>>0)+L;return(X<>>32-j)+q},D._gg=function(F,q,T,G,N,j,L){var X=F+(q&G|T&~G)+(N>>>0)+L;return(X<>>32-j)+q},D._hh=function(F,q,T,G,N,j,L){var X=F+(q^T^G)+(N>>>0)+L;return(X<>>32-j)+q},D._ii=function(F,q,T,G,N,j,L){var X=F+(T^(q|~G))+(N>>>0)+L;return(X<>>32-j)+q},D._blocksize=16,D._digestsize=16,ht.exports=function(F,q){if(null==F)throw new Error("Illegal argument "+F);var T=Q.wordsToBytes(D(F,q));return q&&q.asBytes?T:q&&q.asString?z.bytesToString(T):Q.bytesToHex(T)}},8314:(ht,Fe,p)=>{const B=p(2836),m=p(9460),z=p(7030),D=p(6511);function F(q,T,G,N,j){const L=[].slice.call(arguments,1),X=L.length,te="function"==typeof L[X-1];if(!te&&!B())throw new Error("Callback required as last argument");if(!te){if(X<1)throw new Error("Too few arguments provided");return 1===X?(G=T,T=N=void 0):2===X&&!T.getContext&&(N=G,G=T,T=void 0),new Promise(function(ee,Te){try{const qe=m.create(G,N);ee(q(qe,T,N))}catch(qe){Te(qe)}})}if(X<2)throw new Error("Too few arguments provided");2===X?(j=G,G=T,T=N=void 0):3===X&&(T.getContext&&typeof j>"u"?(j=N,N=void 0):(j=N,N=G,G=T,T=void 0));try{const ee=m.create(G,N);j(null,q(ee,T,N))}catch(ee){j(ee)}}Fe.mo=F.bind(null,z.render),F.bind(null,z.renderToDataURL),F.bind(null,function(q,T,G){return D.render(q,G)})},2836:ht=>{ht.exports=function(){return"function"==typeof Promise&&Promise.prototype&&Promise.prototype.then}},6214:(ht,Fe,p)=>{const Q=p(9089).getSymbolSize;Fe.getRowColCoords=function(m){if(1===m)return[];const z=Math.floor(m/7)+2,D=Q(m),F=145===D?26:2*Math.ceil((D-13)/(2*z-2)),q=[D-7];for(let T=1;T{const Q=p(4058),B=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function m(z){this.mode=Q.ALPHANUMERIC,this.data=z}m.getBitsLength=function(D){return 11*Math.floor(D/2)+D%2*6},m.prototype.getLength=function(){return this.data.length},m.prototype.getBitsLength=function(){return m.getBitsLength(this.data.length)},m.prototype.write=function(D){let F;for(F=0;F+2<=this.data.length;F+=2){let q=45*B.indexOf(this.data[F]);q+=B.indexOf(this.data[F+1]),D.put(q,11)}this.data.length%2&&D.put(B.indexOf(this.data[F]),6)},ht.exports=m},4662:ht=>{function Fe(){this.buffer=[],this.length=0}Fe.prototype={get:function(p){const Q=Math.floor(p/8);return 1==(this.buffer[Q]>>>7-p%8&1)},put:function(p,Q){for(let B=0;B>>Q-B-1&1))},getLengthInBits:function(){return this.length},putBit:function(p){const Q=Math.floor(this.length/8);this.buffer.length<=Q&&this.buffer.push(0),p&&(this.buffer[Q]|=128>>>this.length%8),this.length++}},ht.exports=Fe},5941:ht=>{function Fe(p){if(!p||p<1)throw new Error("BitMatrix size must be defined and greater than 0");this.size=p,this.data=new Uint8Array(p*p),this.reservedBit=new Uint8Array(p*p)}Fe.prototype.set=function(p,Q,B,m){const z=p*this.size+Q;this.data[z]=B,m&&(this.reservedBit[z]=!0)},Fe.prototype.get=function(p,Q){return this.data[p*this.size+Q]},Fe.prototype.xor=function(p,Q,B){this.data[p*this.size+Q]^=B},Fe.prototype.isReserved=function(p,Q){return this.reservedBit[p*this.size+Q]},ht.exports=Fe},4969:(ht,Fe,p)=>{const Q=p(3174),B=p(4058);function m(z){this.mode=B.BYTE,"string"==typeof z&&(z=Q(z)),this.data=new Uint8Array(z)}m.getBitsLength=function(D){return 8*D},m.prototype.getLength=function(){return this.data.length},m.prototype.getBitsLength=function(){return m.getBitsLength(this.data.length)},m.prototype.write=function(z){for(let D=0,F=this.data.length;D{const Q=p(7424),B=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],m=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];Fe.getBlocksCount=function(D,F){switch(F){case Q.L:return B[4*(D-1)+0];case Q.M:return B[4*(D-1)+1];case Q.Q:return B[4*(D-1)+2];case Q.H:return B[4*(D-1)+3];default:return}},Fe.getTotalCodewordsCount=function(D,F){switch(F){case Q.L:return m[4*(D-1)+0];case Q.M:return m[4*(D-1)+1];case Q.Q:return m[4*(D-1)+2];case Q.H:return m[4*(D-1)+3];default:return}}},7424:(ht,Fe)=>{Fe.L={bit:1},Fe.M={bit:0},Fe.Q={bit:3},Fe.H={bit:2},Fe.isValid=function(B){return B&&typeof B.bit<"u"&&B.bit>=0&&B.bit<4},Fe.from=function(B,m){if(Fe.isValid(B))return B;try{return function p(Q){if("string"!=typeof Q)throw new Error("Param is not a string");switch(Q.toLowerCase()){case"l":case"low":return Fe.L;case"m":case"medium":return Fe.M;case"q":case"quartile":return Fe.Q;case"h":case"high":return Fe.H;default:throw new Error("Unknown EC Level: "+Q)}}(B)}catch{return m}}},6269:(ht,Fe,p)=>{const Q=p(9089).getSymbolSize;Fe.getPositions=function(z){const D=Q(z);return[[0,0],[D-7,0],[0,D-7]]}},6254:(ht,Fe,p)=>{const Q=p(9089),z=Q.getBCHDigit(1335);Fe.getEncodedBits=function(F,q){const T=F.bit<<3|q;let G=T<<10;for(;Q.getBCHDigit(G)-z>=0;)G^=1335<{const p=new Uint8Array(512),Q=new Uint8Array(256);(function(){let m=1;for(let z=0;z<255;z++)p[z]=m,Q[m]=z,m<<=1,256&m&&(m^=285);for(let z=255;z<512;z++)p[z]=p[z-255]})(),Fe.log=function(m){if(m<1)throw new Error("log("+m+")");return Q[m]},Fe.exp=function(m){return p[m]},Fe.mul=function(m,z){return 0===m||0===z?0:p[Q[m]+Q[z]]}},3264:(ht,Fe,p)=>{const Q=p(4058),B=p(9089);function m(z){this.mode=Q.KANJI,this.data=z}m.getBitsLength=function(D){return 13*D},m.prototype.getLength=function(){return this.data.length},m.prototype.getBitsLength=function(){return m.getBitsLength(this.data.length)},m.prototype.write=function(z){let D;for(D=0;D=33088&&F<=40956)F-=33088;else{if(!(F>=57408&&F<=60351))throw new Error("Invalid SJIS character: "+this.data[D]+"\nMake sure your charset is UTF-8");F-=49472}F=192*(F>>>8&255)+(255&F),z.put(F,13)}},ht.exports=m},3361:(ht,Fe)=>{Fe.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};function Q(B,m,z){switch(B){case Fe.Patterns.PATTERN000:return(m+z)%2==0;case Fe.Patterns.PATTERN001:return m%2==0;case Fe.Patterns.PATTERN010:return z%3==0;case Fe.Patterns.PATTERN011:return(m+z)%3==0;case Fe.Patterns.PATTERN100:return(Math.floor(m/2)+Math.floor(z/3))%2==0;case Fe.Patterns.PATTERN101:return m*z%2+m*z%3==0;case Fe.Patterns.PATTERN110:return(m*z%2+m*z%3)%2==0;case Fe.Patterns.PATTERN111:return(m*z%3+(m+z)%2)%2==0;default:throw new Error("bad maskPattern:"+B)}}Fe.isValid=function(m){return null!=m&&""!==m&&!isNaN(m)&&m>=0&&m<=7},Fe.from=function(m){return Fe.isValid(m)?parseInt(m,10):void 0},Fe.getPenaltyN1=function(m){const z=m.size;let D=0,F=0,q=0,T=null,G=null;for(let N=0;N=5&&(D+=F-5+3),T=L,F=1),L=m.get(j,N),L===G?q++:(q>=5&&(D+=q-5+3),G=L,q=1)}F>=5&&(D+=F-5+3),q>=5&&(D+=q-5+3)}return D},Fe.getPenaltyN2=function(m){const z=m.size;let D=0;for(let F=0;F=10&&(1488===F||93===F)&&D++,q=q<<1&2047|m.get(G,T),G>=10&&(1488===q||93===q)&&D++}return 40*D},Fe.getPenaltyN4=function(m){let z=0;const D=m.data.length;for(let q=0;q{const Q=p(377),B=p(9359);Fe.NUMERIC={id:"Numeric",bit:1,ccBits:[10,12,14]},Fe.ALPHANUMERIC={id:"Alphanumeric",bit:2,ccBits:[9,11,13]},Fe.BYTE={id:"Byte",bit:4,ccBits:[8,16,16]},Fe.KANJI={id:"Kanji",bit:8,ccBits:[8,10,12]},Fe.MIXED={bit:-1},Fe.getCharCountIndicator=function(D,F){if(!D.ccBits)throw new Error("Invalid mode: "+D);if(!Q.isValid(F))throw new Error("Invalid version: "+F);return F>=1&&F<10?D.ccBits[0]:F<27?D.ccBits[1]:D.ccBits[2]},Fe.getBestModeForData=function(D){return B.testNumeric(D)?Fe.NUMERIC:B.testAlphanumeric(D)?Fe.ALPHANUMERIC:B.testKanji(D)?Fe.KANJI:Fe.BYTE},Fe.toString=function(D){if(D&&D.id)return D.id;throw new Error("Invalid mode")},Fe.isValid=function(D){return D&&D.bit&&D.ccBits},Fe.from=function(D,F){if(Fe.isValid(D))return D;try{return function m(z){if("string"!=typeof z)throw new Error("Param is not a string");switch(z.toLowerCase()){case"numeric":return Fe.NUMERIC;case"alphanumeric":return Fe.ALPHANUMERIC;case"kanji":return Fe.KANJI;case"byte":return Fe.BYTE;default:throw new Error("Unknown mode: "+z)}}(D)}catch{return F}}},6628:(ht,Fe,p)=>{const Q=p(4058);function B(m){this.mode=Q.NUMERIC,this.data=m.toString()}B.getBitsLength=function(z){return 10*Math.floor(z/3)+(z%3?z%3*3+1:0)},B.prototype.getLength=function(){return this.data.length},B.prototype.getBitsLength=function(){return B.getBitsLength(this.data.length)},B.prototype.write=function(z){let D,F,q;for(D=0;D+3<=this.data.length;D+=3)F=this.data.substr(D,3),q=parseInt(F,10),z.put(q,10);const T=this.data.length-D;T>0&&(F=this.data.substr(D),q=parseInt(F,10),z.put(q,3*T+1))},ht.exports=B},1744:(ht,Fe,p)=>{const Q=p(6686);Fe.mul=function(m,z){const D=new Uint8Array(m.length+z.length-1);for(let F=0;F=0;){const F=D[0];for(let T=0;T{const Q=p(9089),B=p(7424),m=p(4662),z=p(5941),D=p(6214),F=p(6269),q=p(3361),T=p(3677),G=p(6289),N=p(1252),j=p(6254),L=p(4058),X=p(2868);function De(nt,Ve,st){const je=nt.size,ke=j.getEncodedBits(Ve,st);let he,Ue;for(he=0;he<15;he++)Ue=1==(ke>>he&1),nt.set(he<6?he:he<8?he+1:je-15+he,8,Ue,!0),nt.set(8,he<8?je-he-1:he<9?15-he-1+1:15-he-1,Ue,!0);nt.set(je-8,8,1,!0)}function gt(nt,Ve,st,je){let ke;if(Array.isArray(nt))ke=X.fromArray(nt);else{if("string"!=typeof nt)throw new Error("Invalid data");{let pt=Ve;if(!pt){const Et=X.rawSplit(nt);pt=N.getBestVersionForData(Et,st)}ke=X.fromString(nt,pt||40)}}const he=N.getBestVersionForData(ke,st);if(!he)throw new Error("The amount of data is too big to be stored in a QR Code");if(Ve){if(Ve=0&&it<=6&&(0===Ne||6===Ne)||Ne>=0&&Ne<=6&&(0===it||6===it)||it>=2&&it<=4&&Ne>=2&&Ne<=4,!0)}}(Ne,Ve),function ee(nt){const Ve=nt.size;for(let st=8;st=7&&function qe(nt,Ve){const st=nt.size,je=N.getEncodedBits(Ve);let ke,he,Ue;for(let it=0;it<18;it++)ke=Math.floor(it/3),he=it%3+st-8-3,Ue=1==(je>>it&1),nt.set(ke,he,Ue,!0),nt.set(he,ke,Ue,!0)}(Ne,Ve),function Je(nt,Ve){const st=nt.size;let je=-1,ke=st-1,he=7,Ue=0;for(let it=st-1;it>0;it-=2)for(6===it&&it--;;){for(let Ne=0;Ne<2;Ne++)if(!nt.isReserved(ke,it-Ne)){let pt=!1;Ue>>he&1)),nt.set(ke,it-Ne,pt),he--,-1===he&&(Ue++,he=7)}if(ke+=je,ke<0||st<=ke){ke-=je,je=-je;break}}}(Ne,Ue),isNaN(je)&&(je=q.getBestMask(Ne,De.bind(null,Ne,st))),q.applyMask(je,Ne),De(Ne,st,je),{modules:Ne,version:Ve,errorCorrectionLevel:st,maskPattern:je,segments:ke}}Fe.create=function(Ve,st){if(typeof Ve>"u"||""===Ve)throw new Error("No input text");let ke,he,je=B.M;return typeof st<"u"&&(je=B.from(st.errorCorrectionLevel,B.M),ke=N.from(st.version),he=q.from(st.maskPattern),st.toSJISFunc&&Q.setToSJISFunction(st.toSJISFunc)),gt(Ve,ke,je,he)}},6289:(ht,Fe,p)=>{const Q=p(1744);function B(m){this.genPoly=void 0,this.degree=m,this.degree&&this.initialize(this.degree)}B.prototype.initialize=function(z){this.degree=z,this.genPoly=Q.generateECPolynomial(this.degree)},B.prototype.encode=function(z){if(!this.genPoly)throw new Error("Encoder not initialized");const D=new Uint8Array(z.length+this.degree);D.set(z);const F=Q.mod(D,this.genPoly),q=this.degree-F.length;if(q>0){const T=new Uint8Array(this.degree);return T.set(F,q),T}return F},ht.exports=B},9359:(ht,Fe)=>{const p="[0-9]+";let B="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+";B=B.replace(/u/g,"\\u");const m="(?:(?![A-Z0-9 $%*+\\-./:]|"+B+")(?:.|[\r\n]))+";Fe.KANJI=new RegExp(B,"g"),Fe.BYTE_KANJI=new RegExp("[^A-Z0-9 $%*+\\-./:]+","g"),Fe.BYTE=new RegExp(m,"g"),Fe.NUMERIC=new RegExp(p,"g"),Fe.ALPHANUMERIC=new RegExp("[A-Z $%*+\\-./:]+","g");const z=new RegExp("^"+B+"$"),D=new RegExp("^"+p+"$"),F=new RegExp("^[A-Z0-9 $%*+\\-./:]+$");Fe.testKanji=function(T){return z.test(T)},Fe.testNumeric=function(T){return D.test(T)},Fe.testAlphanumeric=function(T){return F.test(T)}},2868:(ht,Fe,p)=>{const Q=p(4058),B=p(6628),m=p(1018),z=p(4969),D=p(3264),F=p(9359),q=p(9089),T=p(243);function G(qe){return unescape(encodeURIComponent(qe)).length}function N(qe,De,Je){const tt=[];let Le;for(;null!==(Le=qe.exec(Je));)tt.push({data:Le[0],index:Le.index,mode:De,length:Le[0].length});return tt}function j(qe){const De=N(F.NUMERIC,Q.NUMERIC,qe),Je=N(F.ALPHANUMERIC,Q.ALPHANUMERIC,qe);let tt,Le;return q.isKanjiModeEnabled()?(tt=N(F.BYTE,Q.BYTE,qe),Le=N(F.KANJI,Q.KANJI,qe)):(tt=N(F.BYTE_KANJI,Q.BYTE,qe),Le=[]),De.concat(Je,tt,Le).sort(function(nt,Ve){return nt.index-Ve.index}).map(function(nt){return{data:nt.data,mode:nt.mode,length:nt.length}})}function L(qe,De){switch(De){case Q.NUMERIC:return B.getBitsLength(qe);case Q.ALPHANUMERIC:return m.getBitsLength(qe);case Q.KANJI:return D.getBitsLength(qe);case Q.BYTE:return z.getBitsLength(qe)}}function Te(qe,De){let Je;const tt=Q.getBestModeForData(qe);if(Je=Q.from(De,tt),Je!==Q.BYTE&&Je.bit=0?De[De.length-1]:null;return tt&&tt.mode===Je.mode?(De[De.length-1].data+=Je.data,De):(De.push(Je),De)},[])}(Ve))},Fe.rawSplit=function(De){return Fe.fromArray(j(De,q.isKanjiModeEnabled()))}},9089:(ht,Fe)=>{let p;const Q=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];Fe.getSymbolSize=function(m){if(!m)throw new Error('"version" cannot be null or undefined');if(m<1||m>40)throw new Error('"version" should be in range from 1 to 40');return 4*m+17},Fe.getSymbolTotalCodewords=function(m){return Q[m]},Fe.getBCHDigit=function(B){let m=0;for(;0!==B;)m++,B>>>=1;return m},Fe.setToSJISFunction=function(m){if("function"!=typeof m)throw new Error('"toSJISFunc" is not a valid function.');p=m},Fe.isKanjiModeEnabled=function(){return typeof p<"u"},Fe.toSJIS=function(m){return p(m)}},377:(ht,Fe)=>{Fe.isValid=function(Q){return!isNaN(Q)&&Q>=1&&Q<=40}},1252:(ht,Fe,p)=>{const Q=p(9089),B=p(3677),m=p(7424),z=p(4058),D=p(377),q=Q.getBCHDigit(7973);function G(L,X){return z.getCharCountIndicator(L,X)+4}function N(L,X){let te=0;return L.forEach(function(ee){const Te=G(ee.mode,X);te+=Te+ee.getBitsLength()}),te}Fe.from=function(X,te){return D.isValid(X)?parseInt(X,10):te},Fe.getCapacity=function(X,te,ee){if(!D.isValid(X))throw new Error("Invalid QR Code version");typeof ee>"u"&&(ee=z.BYTE);const De=8*(Q.getSymbolTotalCodewords(X)-B.getTotalCodewordsCount(X,te));if(ee===z.MIXED)return De;const Je=De-G(ee,X);switch(ee){case z.NUMERIC:return Math.floor(Je/10*3);case z.ALPHANUMERIC:return Math.floor(Je/11*2);case z.KANJI:return Math.floor(Je/13);default:return Math.floor(Je/8)}},Fe.getBestVersionForData=function(X,te){let ee;const Te=m.from(te,m.M);if(Array.isArray(X)){if(X.length>1)return function j(L,X){for(let te=1;te<=40;te++)if(N(L,te)<=Fe.getCapacity(te,X,z.MIXED))return te}(X,Te);if(0===X.length)return 1;ee=X[0]}else ee=X;return function T(L,X,te){for(let ee=1;ee<=40;ee++)if(X<=Fe.getCapacity(ee,te,L))return ee}(ee.mode,ee.getLength(),Te)},Fe.getEncodedBits=function(X){if(!D.isValid(X)||X<7)throw new Error("Invalid QR Code version");let te=X<<12;for(;Q.getBCHDigit(te)-q>=0;)te^=7973<{const Q=p(7077);Fe.render=function(D,F,q){let T=q,G=F;typeof T>"u"&&(!F||!F.getContext)&&(T=F,F=void 0),F||(G=function m(){try{return document.createElement("canvas")}catch{throw new Error("You need to specify a canvas element")}}()),T=Q.getOptions(T);const N=Q.getImageWidth(D.modules.size,T),j=G.getContext("2d"),L=j.createImageData(N,N);return Q.qrToImageData(L.data,D,T),function B(z,D,F){z.clearRect(0,0,D.width,D.height),D.style||(D.style={}),D.height=F,D.width=F,D.style.height=F+"px",D.style.width=F+"px"}(j,G,N),j.putImageData(L,0,0),G},Fe.renderToDataURL=function(D,F,q){let T=q;return typeof T>"u"&&(!F||!F.getContext)&&(T=F,F=void 0),T||(T={}),Fe.render(D,F,T).toDataURL(T.type||"image/png",(T.rendererOpts||{}).quality)}},6511:(ht,Fe,p)=>{const Q=p(7077);function B(D,F){const q=D.a/255,T=F+'="'+D.hex+'"';return q<1?T+" "+F+'-opacity="'+q.toFixed(2).slice(1)+'"':T}function m(D,F,q){let T=D+F;return typeof q<"u"&&(T+=" "+q),T}Fe.render=function(F,q,T){const G=Q.getOptions(q),N=F.modules.size,j=F.modules.data,L=N+2*G.margin,X=G.color.light.a?"':"",te="0&&X>0&&D[L-1]||(T+=N?m("M",X+q,.5+te+q):m("m",G,0),G=0,N=!1),X+1',qe=''+X+te+"\n";return"function"==typeof T&&T(null,qe),qe}},7077:(ht,Fe)=>{function p(Q){if("number"==typeof Q&&(Q=Q.toString()),"string"!=typeof Q)throw new Error("Color should be defined as hex string");let B=Q.slice().replace("#","").split("");if(B.length<3||5===B.length||B.length>8)throw new Error("Invalid hex color: "+Q);(3===B.length||4===B.length)&&(B=Array.prototype.concat.apply([],B.map(function(z){return[z,z]}))),6===B.length&&B.push("F","F");const m=parseInt(B.join(""),16);return{r:m>>24&255,g:m>>16&255,b:m>>8&255,a:255&m,hex:"#"+B.slice(0,6).join("")}}Fe.getOptions=function(B){B||(B={}),B.color||(B.color={});const z=B.width&&B.width>=21?B.width:void 0;return{width:z,scale:z?4:B.scale||4,margin:typeof B.margin>"u"||null===B.margin||B.margin<0?4:B.margin,color:{dark:p(B.color.dark||"#000000ff"),light:p(B.color.light||"#ffffffff")},type:B.type,rendererOpts:B.rendererOpts||{}}},Fe.getScale=function(B,m){return m.width&&m.width>=B+2*m.margin?m.width/(B+2*m.margin):m.scale},Fe.getImageWidth=function(B,m){const z=Fe.getScale(B,m);return Math.floor((B+2*m.margin)*z)},Fe.qrToImageData=function(B,m,z){const D=m.modules.size,F=m.modules.data,q=Fe.getScale(D,z),T=Math.floor((D+2*z.margin)*q),G=z.margin*q,N=[z.color.light,z.color.dark];for(let j=0;j=G&&L>=G&&j{"use strict";const{hasOwnProperty:p}=Object.prototype,Q=te();Q.configure=te,Q.stringify=Q,Q.default=Q,Fe.stringify=Q,Fe.configure=te,ht.exports=Q;const B=/[\u0000-\u001f\u0022\u005c\ud800-\udfff]|[\ud800-\udbff](?![\udc00-\udfff])|(?:[^\ud800-\udbff]|^)[\udc00-\udfff]/;function m(ee){return ee.length<5e3&&!B.test(ee)?`"${ee}"`:JSON.stringify(ee)}function z(ee){if(ee.length>200)return ee.sort();for(let Te=1;Teqe;)ee[De]=ee[De-1],De--;ee[De]=qe}return ee}const D=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Object.getPrototypeOf(new Int8Array)),Symbol.toStringTag).get;function F(ee){return void 0!==D.call(ee)&&0!==ee.length}function q(ee,Te,qe){ee.length= 1`)}return void 0===qe?1/0:qe}function j(ee){return 1===ee?"1 item":`${ee} items`}function te(ee){const Te=function X(ee){if(p.call(ee,"strict")){const Te=ee.strict;if("boolean"!=typeof Te)throw new TypeError('The "strict" argument must be of type boolean');if(Te)return qe=>{let De="Object can not safely be stringified. Received type "+typeof qe;throw"function"!=typeof qe&&(De+=` (${qe.toString()})`),new Error(De)}}}(ee={...ee});Te&&(void 0===ee.bigint&&(ee.bigint=!1),"circularValue"in ee||(ee.circularValue=Error));const qe=function T(ee){if(p.call(ee,"circularValue")){const Te=ee.circularValue;if("string"==typeof Te)return`"${Te}"`;if(null==Te)return Te;if(Te===Error||Te===TypeError)return{toString(){throw new TypeError("Converting circular structure to JSON")}};throw new TypeError('The "circularValue" argument must be of type string or the value null or undefined')}return'"[Circular]"'}(ee),De=G(ee,"bigint"),Je=G(ee,"deterministic"),tt=N(ee,"maximumDepth"),Le=N(ee,"maximumBreadth");function gt(ke,he,Ue,it,Ne,pt){let Et=he[ke];switch("object"==typeof Et&&null!==Et&&"function"==typeof Et.toJSON&&(Et=Et.toJSON(ke)),Et=it.call(he,ke,Et),typeof Et){case"string":return m(Et);case"object":{if(null===Et)return"null";if(-1!==Ue.indexOf(Et))return qe;let Qt="",Wt=",";const Sn=pt;if(Array.isArray(Et)){if(0===Et.length)return"[]";if(ttLe&&(Qt+=`${Wt}"... ${j(Et.length-Le-1)} not stringified"`),""!==Ne&&(Qt+=`\n${Sn}`),Ue.pop(),`[${Qt}]`}let Nn=Object.keys(Et);const pi=Nn.length;if(0===pi)return"{}";if(ttLe&&(Qt+=`${Fi}"...":${Xn}"${j(pi-Le)} not stringified"`,Fi=Wt),""!==Ne&&Fi.length>1&&(Qt=`\n${pt}${Qt}\n${Sn}`),Ue.pop(),`{${Qt}}`}case"number":return isFinite(Et)?String(Et):Te?Te(Et):"null";case"boolean":return!0===Et?"true":"false";case"undefined":return;case"bigint":if(De)return String(Et);default:return Te?Te(Et):void 0}}function nt(ke,he,Ue,it,Ne,pt){switch("object"==typeof he&&null!==he&&"function"==typeof he.toJSON&&(he=he.toJSON(ke)),typeof he){case"string":return m(he);case"object":{if(null===he)return"null";if(-1!==Ue.indexOf(he))return qe;const Et=pt;let Qt="",Wt=",";if(Array.isArray(he)){if(0===he.length)return"[]";if(ttLe&&(Qt+=`${Wt}"... ${j(he.length-Le-1)} not stringified"`),""!==Ne&&(Qt+=`\n${Et}`),Ue.pop(),`[${Qt}]`}Ue.push(he);let Sn="";""!==Ne&&(Wt=`,\n${pt+=Ne}`,Sn=" ");let Nn="";for(const pi of it){const Xn=nt(pi,he[pi],Ue,it,Ne,pt);void 0!==Xn&&(Qt+=`${Nn}${m(pi)}:${Sn}${Xn}`,Nn=Wt)}return""!==Ne&&Nn.length>1&&(Qt=`\n${pt}${Qt}\n${Et}`),Ue.pop(),`{${Qt}}`}case"number":return isFinite(he)?String(he):Te?Te(he):"null";case"boolean":return!0===he?"true":"false";case"undefined":return;case"bigint":if(De)return String(he);default:return Te?Te(he):void 0}}function Ve(ke,he,Ue,it,Ne){switch(typeof he){case"string":return m(he);case"object":{if(null===he)return"null";if("function"==typeof he.toJSON){if("object"!=typeof(he=he.toJSON(ke)))return Ve(ke,he,Ue,it,Ne);if(null===he)return"null"}if(-1!==Ue.indexOf(he))return qe;const pt=Ne;if(Array.isArray(he)){if(0===he.length)return"[]";if(ttLe&&(Xn+=`${Fi}"... ${j(he.length-Le-1)} not stringified"`),Xn+=`\n${pt}`,Ue.pop(),`[${Xn}]`}let Et=Object.keys(he);const Qt=Et.length;if(0===Qt)return"{}";if(ttLe&&(Sn+=`${Nn}"...": "${j(Qt-Le)} not stringified"`,Nn=Wt),""!==Nn&&(Sn=`\n${Ne}${Sn}\n${pt}`),Ue.pop(),`{${Sn}}`}case"number":return isFinite(he)?String(he):Te?Te(he):"null";case"boolean":return!0===he?"true":"false";case"undefined":return;case"bigint":if(De)return String(he);default:return Te?Te(he):void 0}}function st(ke,he,Ue){switch(typeof he){case"string":return m(he);case"object":{if(null===he)return"null";if("function"==typeof he.toJSON){if("object"!=typeof(he=he.toJSON(ke)))return st(ke,he,Ue);if(null===he)return"null"}if(-1!==Ue.indexOf(he))return qe;let it="";if(Array.isArray(he)){if(0===he.length)return"[]";if(ttLe&&(it+=`,"... ${j(he.length-Le-1)} not stringified"`),Ue.pop(),`[${it}]`}let Ne=Object.keys(he);const pt=Ne.length;if(0===pt)return"{}";if(ttLe&&(it+=`${Et}"...":"${j(pt-Le)} not stringified"`),Ue.pop(),`{${it}}`}case"number":return isFinite(he)?String(he):Te?Te(he):"null";case"boolean":return!0===he?"true":"false";case"undefined":return;case"bigint":if(De)return String(he);default:return Te?Te(he):void 0}}return function je(ke,he,Ue){if(arguments.length>1){let it="";if("number"==typeof Ue?it=" ".repeat(Math.min(Ue,10)):"string"==typeof Ue&&(it=Ue.slice(0,10)),null!=he){if("function"==typeof he)return gt("",{"":ke},[],he,it,"");if(Array.isArray(he))return nt("",ke,[],function L(ee){const Te=new Set;for(const qe of ee)("string"==typeof qe||"number"==typeof qe)&&Te.add(String(qe));return Te}(he),it,"")}if(0!==it.length)return Ve("",ke,[],it,"")}return st("",ke,[])}}},5568:function(ht,Fe){!function(p){"use strict";function Q(){for(var Oe=arguments.length,le=Array(Oe),Be=0;Be1){le[0]=le[0].slice(0,-1);for(var wt=le.length-1,Ge=1;Ge= 0x80 (not a basic code point)","invalid-input":"Invalid input"},je=Math.floor,ke=String.fromCharCode;function he(Oe){throw new RangeError(Ve[Oe])}function it(Oe,le){var Be=Oe.split("@"),wt="";return Be.length>1&&(wt=Be[0]+"@",Oe=Be[1]),wt+function Ue(Oe,le){for(var Be=[],wt=Oe.length;wt--;)Be[wt]=le(Oe[wt]);return Be}((Oe=Oe.replace(nt,".")).split("."),le).join(".")}function Ne(Oe){for(var le=[],Be=0,wt=Oe.length;Be=55296&&Ge<=56319&&Be>1,le+=je(le/Be);le>455;Ge+=X)le=je(le/35);return je(Ge+36*le/(le+38))},Sn=function(le){var Be=[],wt=le.length,Ge=0,En=128,Ai=72,dt=le.lastIndexOf("-");dt<0&&(dt=0);for(var qi=0;qi=128&&he("not-basic"),Be.push(le.charCodeAt(qi));for(var Nr=dt>0?dt+1:0;Nr=wt&&he("invalid-input");var Ur=Et(le.charCodeAt(Nr++));(Ur>=X||Ur>je((L-Ge)/ro))&&he("overflow"),Ge+=Ur*ro;var Si=Io<=Ai?1:Io>=Ai+26?26:Io-Ai;if(Urje(L/yr)&&he("overflow"),ro*=yr}var er=Be.length+1;Ai=Wt(Ge-Ui,er,0==Ui),je(Ge/er)>L-En&&he("overflow"),En+=je(Ge/er),Ge%=er,Be.splice(Ge++,0,En)}return String.fromCodePoint.apply(String,Be)},Nn=function(le){var Be=[],wt=(le=Ne(le)).length,Ge=128,En=0,Ai=72,dt=!0,qi=!1,Nr=void 0;try{for(var ro,Ui=le[Symbol.iterator]();!(dt=(ro=Ui.next()).done);dt=!0){var Io=ro.value;Io<128&&Be.push(ke(Io))}}catch(Do){qi=!0,Nr=Do}finally{try{!dt&&Ui.return&&Ui.return()}finally{if(qi)throw Nr}}var Ur=Be.length,Si=Ur;for(Ur&&Be.push("-");Si=Ge&&dsje((L-En)/wi)&&he("overflow"),En+=(yr-Ge)*wi,Ge=yr;var gl=!0,_l=!1,xi=void 0;try{for(var oo,Ru=le[Symbol.iterator]();!(gl=(oo=Ru.next()).done);gl=!0){var Id=oo.value;if(IdL&&he("overflow"),Id==Ge){for(var uc=En,bl=X;;bl+=X){var Jn=bl<=Ai?1:bl>=Ai+26?26:bl-Ai;if(uc>6|192).toString(16).toUpperCase()+"%"+(63&le|128).toString(16).toUpperCase():"%"+(le>>12|224).toString(16).toUpperCase()+"%"+(le>>6&63|128).toString(16).toUpperCase()+"%"+(63&le|128).toString(16).toUpperCase()}function et(Oe){for(var le="",Be=0,wt=Oe.length;Be=194&&Ge<224){if(wt-Be>=6){var En=parseInt(Oe.substr(Be+4,2),16);le+=String.fromCharCode((31&Ge)<<6|63&En)}else le+=Oe.substr(Be,6);Be+=6}else if(Ge>=224){if(wt-Be>=9){var Ai=parseInt(Oe.substr(Be+4,2),16),dt=parseInt(Oe.substr(Be+7,2),16);le+=String.fromCharCode((15&Ge)<<12|(63&Ai)<<6|63&dt)}else le+=Oe.substr(Be,9);Be+=9}else le+=Oe.substr(Be,3),Be+=3}return le}function Lt(Oe,le){function Be(wt){var Ge=et(wt);return Ge.match(le.UNRESERVED)?Ge:wt}return Oe.scheme&&(Oe.scheme=String(Oe.scheme).replace(le.PCT_ENCODED,Be).toLowerCase().replace(le.NOT_SCHEME,"")),void 0!==Oe.userinfo&&(Oe.userinfo=String(Oe.userinfo).replace(le.PCT_ENCODED,Be).replace(le.NOT_USERINFO,li).replace(le.PCT_ENCODED,z)),void 0!==Oe.host&&(Oe.host=String(Oe.host).replace(le.PCT_ENCODED,Be).toLowerCase().replace(le.NOT_HOST,li).replace(le.PCT_ENCODED,z)),void 0!==Oe.path&&(Oe.path=String(Oe.path).replace(le.PCT_ENCODED,Be).replace(Oe.scheme?le.NOT_PATH:le.NOT_PATH_NOSCHEME,li).replace(le.PCT_ENCODED,z)),void 0!==Oe.query&&(Oe.query=String(Oe.query).replace(le.PCT_ENCODED,Be).replace(le.NOT_QUERY,li).replace(le.PCT_ENCODED,z)),void 0!==Oe.fragment&&(Oe.fragment=String(Oe.fragment).replace(le.PCT_ENCODED,Be).replace(le.NOT_FRAGMENT,li).replace(le.PCT_ENCODED,z)),Oe}function Kt(Oe){return Oe.replace(/^0*(.*)/,"$1")||"0"}function In(Oe,le){var Be=Oe.match(le.IPV4ADDRESS)||[],Ge=N(Be,2)[1];return Ge?Ge.split(".").map(Kt).join("."):Oe}function Yt(Oe,le){var Be=Oe.match(le.IPV6ADDRESS)||[],wt=N(Be,3),Ge=wt[1],En=wt[2];if(Ge){for(var Ai=Ge.toLowerCase().split("::").reverse(),dt=N(Ai,2),qi=dt[0],Nr=dt[1],Ui=Nr?Nr.split(":").map(Kt):[],ro=qi.split(":").map(Kt),Io=le.IPV4ADDRESS.test(ro[ro.length-1]),Ur=Io?7:8,Si=ro.length-Ur,yr=Array(Ur),er=0;er1){var tr=yr.slice(0,Es.index),ds=yr.slice(Es.index+Es.length);Xo=tr.join(":")+"::"+ds.join(":")}else Xo=yr.join(":");return En&&(Xo+="%"+En),Xo}return Oe}var ln=/^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i,tn=void 0==="".match(/(){0}/)[1];function Di(Oe){var le=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},Be={},wt=!1!==le.iri?G:T;"suffix"===le.reference&&(Oe=(le.scheme?le.scheme+":":"")+"//"+Oe);var Ge=Oe.match(ln);if(Ge){tn?(Be.scheme=Ge[1],Be.userinfo=Ge[3],Be.host=Ge[4],Be.port=parseInt(Ge[5],10),Be.path=Ge[6]||"",Be.query=Ge[7],Be.fragment=Ge[8],isNaN(Be.port)&&(Be.port=Ge[5])):(Be.scheme=Ge[1]||void 0,Be.userinfo=-1!==Oe.indexOf("@")?Ge[3]:void 0,Be.host=-1!==Oe.indexOf("//")?Ge[4]:void 0,Be.port=parseInt(Ge[5],10),Be.path=Ge[6]||"",Be.query=-1!==Oe.indexOf("?")?Ge[7]:void 0,Be.fragment=-1!==Oe.indexOf("#")?Ge[8]:void 0,isNaN(Be.port)&&(Be.port=Oe.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/)?Ge[4]:void 0)),Be.host&&(Be.host=Yt(In(Be.host,wt),wt)),Be.reference=void 0!==Be.scheme||void 0!==Be.userinfo||void 0!==Be.host||void 0!==Be.port||Be.path||void 0!==Be.query?void 0===Be.scheme?"relative":void 0===Be.fragment?"absolute":"uri":"same-document",le.reference&&"suffix"!==le.reference&&le.reference!==Be.reference&&(Be.error=Be.error||"URI is not a "+le.reference+" reference.");var En=Ri[(le.scheme||Be.scheme||"").toLowerCase()];if(le.unicodeSupport||En&&En.unicodeSupport)Lt(Be,wt);else{if(Be.host&&(le.domainHost||En&&En.domainHost))try{Be.host=Fi.toASCII(Be.host.replace(wt.PCT_ENCODED,et).toLowerCase())}catch(Ai){Be.error=Be.error||"Host's domain name can not be converted to ASCII via punycode: "+Ai}Lt(Be,T)}En&&En.parse&&En.parse(Be,le)}else Be.error=Be.error||"URI can not be parsed.";return Be}var vr=/^\.\.?\//,Kn=/^\/\.(\/|$)/,ii=/^\/\.\.(\/|$)/,No=/^\/?(?:.|\n)*?(?=\/|$)/;function xo(Oe){for(var le=[];Oe.length;)if(Oe.match(vr))Oe=Oe.replace(vr,"");else if(Oe.match(Kn))Oe=Oe.replace(Kn,"/");else if(Oe.match(ii))Oe=Oe.replace(ii,"/"),le.pop();else if("."===Oe||".."===Oe)Oe="";else{var Be=Oe.match(No);if(!Be)throw new Error("Unexpected dot segment condition");var wt=Be[0];Oe=Oe.slice(wt.length),le.push(wt)}return le.join("")}function Ki(Oe){var le=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},Be=le.iri?G:T,wt=[],Ge=Ri[(le.scheme||Oe.scheme||"").toLowerCase()];if(Ge&&Ge.serialize&&Ge.serialize(Oe,le),Oe.host&&!Be.IPV6ADDRESS.test(Oe.host)&&(le.domainHost||Ge&&Ge.domainHost))try{Oe.host=le.iri?Fi.toUnicode(Oe.host):Fi.toASCII(Oe.host.replace(Be.PCT_ENCODED,et).toLowerCase())}catch(dt){Oe.error=Oe.error||"Host's domain name can not be converted to "+(le.iri?"Unicode":"ASCII")+" via punycode: "+dt}Lt(Oe,Be),"suffix"!==le.reference&&Oe.scheme&&(wt.push(Oe.scheme),wt.push(":"));var En=function Ji(Oe,le){var Be=!1!==le.iri?G:T,wt=[];return void 0!==Oe.userinfo&&(wt.push(Oe.userinfo),wt.push("@")),void 0!==Oe.host&&wt.push(Yt(In(String(Oe.host),Be),Be).replace(Be.IPV6ADDRESS,function(Ge,En,Ai){return"["+En+(Ai?"%25"+Ai:"")+"]"})),("number"==typeof Oe.port||"string"==typeof Oe.port)&&(wt.push(":"),wt.push(String(Oe.port))),wt.length?wt.join(""):void 0}(Oe,le);if(void 0!==En&&("suffix"!==le.reference&&wt.push("//"),wt.push(En),Oe.path&&"/"!==Oe.path.charAt(0)&&wt.push("/")),void 0!==Oe.path){var Ai=Oe.path;!le.absolutePath&&(!Ge||!Ge.absolutePath)&&(Ai=xo(Ai)),void 0===En&&(Ai=Ai.replace(/^\/\//,"/%2F")),wt.push(Ai)}return void 0!==Oe.query&&(wt.push("?"),wt.push(Oe.query)),void 0!==Oe.fragment&&(wt.push("#"),wt.push(Oe.fragment)),wt.join("")}function Er(Oe,le){var Be=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},Ge={};return arguments[3]||(Oe=Di(Ki(Oe,Be),Be),le=Di(Ki(le,Be),Be)),!(Be=Be||{}).tolerant&&le.scheme?(Ge.scheme=le.scheme,Ge.userinfo=le.userinfo,Ge.host=le.host,Ge.port=le.port,Ge.path=xo(le.path||""),Ge.query=le.query):(void 0!==le.userinfo||void 0!==le.host||void 0!==le.port?(Ge.userinfo=le.userinfo,Ge.host=le.host,Ge.port=le.port,Ge.path=xo(le.path||""),Ge.query=le.query):(le.path?("/"===le.path.charAt(0)?Ge.path=xo(le.path):(Ge.path=void 0===Oe.userinfo&&void 0===Oe.host&&void 0===Oe.port||Oe.path?Oe.path?Oe.path.slice(0,Oe.path.lastIndexOf("/")+1)+le.path:le.path:"/"+le.path,Ge.path=xo(Ge.path)),Ge.query=le.query):(Ge.path=Oe.path,Ge.query=void 0!==le.query?le.query:Oe.query),Ge.userinfo=Oe.userinfo,Ge.host=Oe.host,Ge.port=Oe.port),Ge.scheme=Oe.scheme),Ge.fragment=le.fragment,Ge}function Xs(Oe,le){return Oe&&Oe.toString().replace(le&&le.iri?G.PCT_ENCODED:T.PCT_ENCODED,et)}var pl={scheme:"http",domainHost:!0,parse:function(le,Be){return le.host||(le.error=le.error||"HTTP URIs must have a host."),le},serialize:function(le,Be){var wt="https"===String(le.scheme).toLowerCase();return(le.port===(wt?443:80)||""===le.port)&&(le.port=void 0),le.path||(le.path="/"),le}},Ks={scheme:"https",domainHost:pl.domainHost,parse:pl.parse,serialize:pl.serialize};function jo(Oe){return"boolean"==typeof Oe.secure?Oe.secure:"wss"===String(Oe.scheme).toLowerCase()}var Al={scheme:"ws",domainHost:!0,parse:function(le,Be){var wt=le;return wt.secure=jo(wt),wt.resourceName=(wt.path||"/")+(wt.query?"?"+wt.query:""),wt.path=void 0,wt.query=void 0,wt},serialize:function(le,Be){if((le.port===(jo(le)?443:80)||""===le.port)&&(le.port=void 0),"boolean"==typeof le.secure&&(le.scheme=le.secure?"wss":"ws",le.secure=void 0),le.resourceName){var wt=le.resourceName.split("?"),Ge=N(wt,2),En=Ge[0],Ai=Ge[1];le.path=En&&"/"!==En?En:void 0,le.query=Ai,le.resourceName=void 0}return le.fragment=void 0,le}},cc={scheme:"wss",domainHost:Al.domainHost,parse:Al.parse,serialize:Al.serialize},Td={},dc="[A-Za-z0-9\\-\\.\\_\\~\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]",Ms="[0-9A-Fa-f]",Nc=B(B("%[EFef]"+Ms+"%"+Ms+Ms+"%"+Ms+Ms)+"|"+B("%[89A-Fa-f]"+Ms+"%"+Ms+Ms)+"|"+B("%"+Ms+Ms)),Wm=Q("[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]",'[\\"\\\\]'),sa=new RegExp(dc,"g"),Uc=new RegExp(Nc,"g"),Pu=new RegExp(Q("[^]","[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]","[\\.]",'[\\"]',Wm),"g"),Yi=new RegExp(Q("[^]",dc,"[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]"),"g"),df=Yi;function uf(Oe){var le=et(Oe);return le.match(sa)?le:Oe}var og={scheme:"mailto",parse:function(le,Be){var wt=le,Ge=wt.to=wt.path?wt.path.split(","):[];if(wt.path=void 0,wt.query){for(var En=!1,Ai={},dt=wt.query.split("&"),qi=0,Nr=dt.length;qi{ht.exports="varying highp float vDelta;\nvarying vec2 vUV;\nvarying vec4 vOutgoingDiffuseColor;\nvarying vec4 vOutgoingDiffuseDeltaColor;\nvarying vec3 vWorldNormal;\n\nbool normalPointingUp(const in vec3 normal)\n{\n return normal.y > 0.9;\n}\n\nvoid main() {\n const float minDelta = 0.001;\n bool isTop = normalPointingUp(vWorldNormal);\n \n if (abs(vDelta) > minDelta && (vUV.y > 1.0 - abs(vDelta) || isTop))\n {\n gl_FragColor = vOutgoingDiffuseDeltaColor;\n } else {\n gl_FragColor = vOutgoingDiffuseColor;\n }\n}\n"},1812:ht=>{ht.exports="#define saturate(a) clamp( a, 0.0, 1.0)\n#define RECIPROCAL_PI 0.31830988618\n#define PI 3.14159265359\n\nattribute vec3 color;\nattribute vec3 deltaColor;\nattribute highp float delta;\nattribute lowp float isHeight;\n\nvarying vec3 vWorldNormal;\nvarying highp float vDelta;\nvarying vec2 vUV;\nvarying vec4 vOutgoingDiffuseColor;\nvarying vec4 vOutgoingDiffuseDeltaColor;\n\nuniform vec3 ambientLightColor;\n\nstruct DirectionalLight {\n vec3 direction;\n vec3 color;\n};\nuniform DirectionalLight directionalLights[NUM_DIR_LIGHTS];\n\nstruct IncidentLight {\n vec3 color;\n vec3 direction;\n};\n\nstruct ReflectedLight {\n vec3 directDiffuse;\n vec3 directSpecular;\n vec3 indirectDiffuse;\n vec3 indirectSpecular;\n};\n\nvoid getDirectionalDirectLightIrradiance(const in DirectionalLight directionalLight,out IncidentLight directLight) {\n directLight.color = directionalLight.color;\n directLight.direction = directionalLight.direction;\n}\n\nvec3 BRDF_Diffuse_Lambert (const in vec3 diffuseColor) {\n return RECIPROCAL_PI * diffuseColor;\n}\n\nvec3 getAmbientLightIrradiance() {\n return ambientLightColor*PI;\n}\n\nvec3 getBaseOutgoingLight(const vec3 lightFront) {\n ReflectedLight reflectedLight = ReflectedLight(vec3(0.0), vec3(0.0), vec3(0.0), vec3(0.0));\n reflectedLight.indirectDiffuse = getAmbientLightIrradiance();\n reflectedLight.directDiffuse = lightFront;\n return (reflectedLight.directDiffuse + reflectedLight.indirectDiffuse);\n}\n\n// better to calc the colors in vertex as no color interpolation is used, performance improvements will be noticeable \n// once frustum or occlusion culling is properly used\n\nvoid main() \n{\n vec3 adjustedHeightPos = position;\n \n // height position will be adjusted based on camera position in order to prevent \n // z-fighting in different zoom levels when position is positive.\n // preferred multiplication over if branching of the isHeight variable \n // the same line could be written this way : \n //\n // adjustedHeightPos = position\n // if (isHeight>0.5 && cameraPosition.y>0) {\n // adjustedHeightPos.y = position.y + cameraPosition.y/1000.\n // } \n // \n \n adjustedHeightPos.y = position.y + (isHeight*max(0.,cameraPosition.y/1000.));\n\n\tvec4 modelViewPosition = modelViewMatrix * vec4(adjustedHeightPos, 1.0);\n\tgl_Position = projectionMatrix * modelViewPosition;\n\n vec3 worldNormal = vWorldNormal = normalize((modelMatrix * vec4(normal, 0.0)).xyz);\n vec3 normal= normalize(normalMatrix * normal);\n vec3 lightFront = vec3(0.0);\n\n vUV = uv;\n vDelta = abs(delta);\n\n for (int i=0; i < 2; ++i)\n {\n IncidentLight directLight;\n\n getDirectionalDirectLightIrradiance(directionalLights[i],directLight);\n float dotNL = dot(normal, directLight.direction);\n vec3 directLightColor_Diffuse = PI * directLight.color; \n lightFront += saturate(dotNL) * directLightColor_Diffuse;\n }\n\n vec3 baseOutgoingLight = getBaseOutgoingLight(lightFront);\n \n vOutgoingDiffuseColor = vec4(BRDF_Diffuse_Lambert(color.rgb)*baseOutgoingLight,1.0);\n vOutgoingDiffuseDeltaColor = vec4(BRDF_Diffuse_Lambert(deltaColor)*baseOutgoingLight,1.0);\n}\n"},6655:ht=>{ht.exports='precision highp float;\n\t\t\nuniform sampler2D tDiffuse;\nuniform vec2 resolution;\n\t\t\nvarying vec2 vUv;\n\t\t\n// FXAA 3.11 implementation by NVIDIA, ported to WebGL by Agost Biro (biro@archilogic.com)\n\n//----------------------------------------------------------------------------------\n// File: es3-kepler\\FXAA\\assets\\shaders/FXAA_DefaultES.frag\n// SDK Version: v3.00\n// Email: gameworks@nvidia.com\n// Site: http://developer.nvidia.com/\n//\n// Copyright (c) 2014-2015, NVIDIA CORPORATION. All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions\n// are met:\n// * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// * Redistributions in binary form must reproduce the above copyright\n// notice, this list of conditions and the following disclaimer in the\n// documentation and/or other materials provided with the distribution.\n// * Neither the name of NVIDIA CORPORATION nor the names of its\n// contributors may be used to endorse or promote products derived\n// from this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS\\\\ AND ANY\n// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR\n// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\n// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\n// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY\n// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n//\n//----------------------------------------------------------------------------------\n\t\t\n#define FXAA_PC 1\n#define FXAA_GLSL_100 1\n#define FXAA_QUALITY_PRESET 15\n#define FXAA_GATHER4_ALPHA 0\n#define FXAA_GREEN_AS_LUMA 1\n#define FXAA_EARLY_EXIT 1\n\n/*--------------------------------------------------------------------------*/\n#ifndef FXAA_GLSL_120\n #define FXAA_GLSL_120 0\n#endif\n/*--------------------------------------------------------------------------*/\n#ifndef FXAA_GLSL_130\n #define FXAA_GLSL_130 0\n#endif\n/*--------------------------------------------------------------------------*/\n#ifndef FXAA_HLSL_3\n #define FXAA_HLSL_3 0\n#endif\n/*--------------------------------------------------------------------------*/\n#ifndef FXAA_HLSL_4\n #define FXAA_HLSL_4 0\n#endif\n/*--------------------------------------------------------------------------*/\n#ifndef FXAA_HLSL_5\n #define FXAA_HLSL_5 0\n#endif\n/*==========================================================================*/\n#ifndef FXAA_GREEN_AS_LUMA\n //\n // For those using non-linear color,\n // and either not able to get luma in alpha, or not wanting to,\n // this enables FXAA to run using green as a proxy for luma.\n // So with this enabled, no need to pack luma in alpha.\n //\n // This will turn off AA on anything which lacks some amount of green.\n // Pure red and blue or combination of only R and B, will get no AA.\n //\n // Might want to lower the settings for both,\n // fxaaConsoleEdgeThresholdMin\n // fxaaQualityEdgeThresholdMin\n // In order to insure AA does not get turned off on colors\n // which contain a minor amount of green.\n //\n // 1 = On.\n // 0 = Off.\n //\n #define FXAA_GREEN_AS_LUMA 0\n#endif\n/*--------------------------------------------------------------------------*/\n#ifndef FXAA_EARLY_EXIT\n //\n // Controls algorithm\\s early exit path.\n // On PS3 turning this ON adds 2 cycles to the shader.\n // On 360 turning this OFF adds 10ths of a millisecond to the shader.\n // Turning this off on console will result in a more blurry image.\n // So this defaults to on.\n //\n // 1 = On.\n // 0 = Off.\n //\n #define FXAA_EARLY_EXIT 1\n#endif\n/*--------------------------------------------------------------------------*/\n#ifndef FXAA_DISCARD\n //\n // Only valid for PC OpenGL currently.\n // Probably will not work when FXAA_GREEN_AS_LUMA = 1.\n //\n // 1 = Use discard on pixels which don\\t need AA.\n // For APIs which enable concurrent TEX+ROP from same surface.\n // 0 = Return unchanged color on pixels which don\\t need AA.\n //\n #define FXAA_DISCARD 0\n#endif\n/*--------------------------------------------------------------------------*/\n#ifndef FXAA_FAST_PIXEL_OFFSET\n //\n // Used for GLSL 120 only.\n //\n // 1 = GL API supports fast pixel offsets\n // 0 = do not use fast pixel offsets\n //\n #ifdef GL_EXT_gpu_shader4\n #define FXAA_FAST_PIXEL_OFFSET 1\n #endif\n #ifdef GL_NV_gpu_shader5\n #define FXAA_FAST_PIXEL_OFFSET 1\n #endif\n #ifdef GL_ARB_gpu_shader5\n #define FXAA_FAST_PIXEL_OFFSET 1\n #endif\n #ifndef FXAA_FAST_PIXEL_OFFSET\n #define FXAA_FAST_PIXEL_OFFSET 0\n #endif\n#endif\n/*--------------------------------------------------------------------------*/\n#ifndef FXAA_GATHER4_ALPHA\n //\n // 1 = API supports gather4 on alpha channel.\n // 0 = API does not support gather4 on alpha channel.\n //\n #if (FXAA_HLSL_5 == 1)\n #define FXAA_GATHER4_ALPHA 1\n #endif\n #ifdef GL_ARB_gpu_shader5\n #define FXAA_GATHER4_ALPHA 1\n #endif\n #ifdef GL_NV_gpu_shader5\n #define FXAA_GATHER4_ALPHA 1\n #endif\n #ifndef FXAA_GATHER4_ALPHA\n #define FXAA_GATHER4_ALPHA 0\n #endif\n#endif\n\n\n/*============================================================================\n FXAA QUALITY - TUNING KNOBS\n------------------------------------------------------------------------------\nNOTE the other tuning knobs are now in the shader function inputs!\n============================================================================*/\n#ifndef FXAA_QUALITY_PRESET\n //\n // Choose the quality preset.\n // This needs to be compiled into the shader as it effects code.\n // Best option to include multiple presets is to\n // in each shader define the preset, then include this file.\n //\n // OPTIONS\n // -----------------------------------------------------------------------\n // 10 to 15 - default medium dither (10=fastest, 15=highest quality)\n // 20 to 29 - less dither, more expensive (20=fastest, 29=highest quality)\n // 39 - no dither, very expensive\n //\n // NOTES\n // -----------------------------------------------------------------------\n // 12 = slightly faster then FXAA 3.9 and higher edge quality (default)\n // 13 = about same speed as FXAA 3.9 and better than 12\n // 23 = closest to FXAA 3.9 visually and performance wise\n // _ = the lowest digit is directly related to performance\n // _ = the highest digit is directly related to style\n //\n #define FXAA_QUALITY_PRESET 12\n#endif\n\n\n/*============================================================================\n\n FXAA QUALITY - PRESETS\n\n============================================================================*/\n\n/*============================================================================\n FXAA QUALITY - MEDIUM DITHER PRESETS\n============================================================================*/\n#if (FXAA_QUALITY_PRESET == 10)\n #define FXAA_QUALITY_PS 3\n #define FXAA_QUALITY_P0 1.5\n #define FXAA_QUALITY_P1 3.0\n #define FXAA_QUALITY_P2 12.0\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_QUALITY_PRESET == 11)\n #define FXAA_QUALITY_PS 4\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.5\n #define FXAA_QUALITY_P2 3.0\n #define FXAA_QUALITY_P3 12.0\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_QUALITY_PRESET == 12)\n #define FXAA_QUALITY_PS 5\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.5\n #define FXAA_QUALITY_P2 2.0\n #define FXAA_QUALITY_P3 4.0\n #define FXAA_QUALITY_P4 12.0\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_QUALITY_PRESET == 13)\n #define FXAA_QUALITY_PS 6\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.5\n #define FXAA_QUALITY_P2 2.0\n #define FXAA_QUALITY_P3 2.0\n #define FXAA_QUALITY_P4 4.0\n #define FXAA_QUALITY_P5 12.0\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_QUALITY_PRESET == 14)\n #define FXAA_QUALITY_PS 7\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.5\n #define FXAA_QUALITY_P2 2.0\n #define FXAA_QUALITY_P3 2.0\n #define FXAA_QUALITY_P4 2.0\n #define FXAA_QUALITY_P5 4.0\n #define FXAA_QUALITY_P6 12.0\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_QUALITY_PRESET == 15)\n #define FXAA_QUALITY_PS 8\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.5\n #define FXAA_QUALITY_P2 2.0\n #define FXAA_QUALITY_P3 2.0\n #define FXAA_QUALITY_P4 2.0\n #define FXAA_QUALITY_P5 2.0\n #define FXAA_QUALITY_P6 4.0\n #define FXAA_QUALITY_P7 12.0\n#endif\n\n/*============================================================================\n FXAA QUALITY - LOW DITHER PRESETS\n============================================================================*/\n#if (FXAA_QUALITY_PRESET == 20)\n #define FXAA_QUALITY_PS 3\n #define FXAA_QUALITY_P0 1.5\n #define FXAA_QUALITY_P1 2.0\n #define FXAA_QUALITY_P2 8.0\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_QUALITY_PRESET == 21)\n #define FXAA_QUALITY_PS 4\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.5\n #define FXAA_QUALITY_P2 2.0\n #define FXAA_QUALITY_P3 8.0\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_QUALITY_PRESET == 22)\n #define FXAA_QUALITY_PS 5\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.5\n #define FXAA_QUALITY_P2 2.0\n #define FXAA_QUALITY_P3 2.0\n #define FXAA_QUALITY_P4 8.0\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_QUALITY_PRESET == 23)\n #define FXAA_QUALITY_PS 6\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.5\n #define FXAA_QUALITY_P2 2.0\n #define FXAA_QUALITY_P3 2.0\n #define FXAA_QUALITY_P4 2.0\n #define FXAA_QUALITY_P5 8.0\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_QUALITY_PRESET == 24)\n #define FXAA_QUALITY_PS 7\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.5\n #define FXAA_QUALITY_P2 2.0\n #define FXAA_QUALITY_P3 2.0\n #define FXAA_QUALITY_P4 2.0\n #define FXAA_QUALITY_P5 3.0\n #define FXAA_QUALITY_P6 8.0\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_QUALITY_PRESET == 25)\n #define FXAA_QUALITY_PS 8\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.5\n #define FXAA_QUALITY_P2 2.0\n #define FXAA_QUALITY_P3 2.0\n #define FXAA_QUALITY_P4 2.0\n #define FXAA_QUALITY_P5 2.0\n #define FXAA_QUALITY_P6 4.0\n #define FXAA_QUALITY_P7 8.0\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_QUALITY_PRESET == 26)\n #define FXAA_QUALITY_PS 9\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.5\n #define FXAA_QUALITY_P2 2.0\n #define FXAA_QUALITY_P3 2.0\n #define FXAA_QUALITY_P4 2.0\n #define FXAA_QUALITY_P5 2.0\n #define FXAA_QUALITY_P6 2.0\n #define FXAA_QUALITY_P7 4.0\n #define FXAA_QUALITY_P8 8.0\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_QUALITY_PRESET == 27)\n #define FXAA_QUALITY_PS 10\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.5\n #define FXAA_QUALITY_P2 2.0\n #define FXAA_QUALITY_P3 2.0\n #define FXAA_QUALITY_P4 2.0\n #define FXAA_QUALITY_P5 2.0\n #define FXAA_QUALITY_P6 2.0\n #define FXAA_QUALITY_P7 2.0\n #define FXAA_QUALITY_P8 4.0\n #define FXAA_QUALITY_P9 8.0\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_QUALITY_PRESET == 28)\n #define FXAA_QUALITY_PS 11\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.5\n #define FXAA_QUALITY_P2 2.0\n #define FXAA_QUALITY_P3 2.0\n #define FXAA_QUALITY_P4 2.0\n #define FXAA_QUALITY_P5 2.0\n #define FXAA_QUALITY_P6 2.0\n #define FXAA_QUALITY_P7 2.0\n #define FXAA_QUALITY_P8 2.0\n #define FXAA_QUALITY_P9 4.0\n #define FXAA_QUALITY_P10 8.0\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_QUALITY_PRESET == 29)\n #define FXAA_QUALITY_PS 12\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.5\n #define FXAA_QUALITY_P2 2.0\n #define FXAA_QUALITY_P3 2.0\n #define FXAA_QUALITY_P4 2.0\n #define FXAA_QUALITY_P5 2.0\n #define FXAA_QUALITY_P6 2.0\n #define FXAA_QUALITY_P7 2.0\n #define FXAA_QUALITY_P8 2.0\n #define FXAA_QUALITY_P9 2.0\n #define FXAA_QUALITY_P10 4.0\n #define FXAA_QUALITY_P11 8.0\n#endif\n\n/*============================================================================\n FXAA QUALITY - EXTREME QUALITY\n============================================================================*/\n#if (FXAA_QUALITY_PRESET == 39)\n #define FXAA_QUALITY_PS 12\n #define FXAA_QUALITY_P0 1.0\n #define FXAA_QUALITY_P1 1.0\n #define FXAA_QUALITY_P2 1.0\n #define FXAA_QUALITY_P3 1.0\n #define FXAA_QUALITY_P4 1.0\n #define FXAA_QUALITY_P5 1.5\n #define FXAA_QUALITY_P6 2.0\n #define FXAA_QUALITY_P7 2.0\n #define FXAA_QUALITY_P8 2.0\n #define FXAA_QUALITY_P9 2.0\n #define FXAA_QUALITY_P10 4.0\n #define FXAA_QUALITY_P11 8.0\n#endif\n\n\n\n/*============================================================================\n\n API PORTING\n\n============================================================================*/\n#if (FXAA_GLSL_100 == 1) || (FXAA_GLSL_120 == 1) || (FXAA_GLSL_130 == 1)\n #define FxaaBool bool\n #define FxaaDiscard discard\n #define FxaaFloat float\n #define FxaaFloat2 vec2\n #define FxaaFloat3 vec3\n #define FxaaFloat4 vec4\n #define FxaaHalf float\n #define FxaaHalf2 vec2\n #define FxaaHalf3 vec3\n #define FxaaHalf4 vec4\n #define FxaaInt2 ivec2\n #define FxaaSat(x) clamp(x, 0.0, 1.0)\n #define FxaaTex sampler2D\n#else\n #define FxaaBool bool\n #define FxaaDiscard clip(-1)\n #define FxaaFloat float\n #define FxaaFloat2 float2\n #define FxaaFloat3 float3\n #define FxaaFloat4 float4\n #define FxaaHalf half\n #define FxaaHalf2 half2\n #define FxaaHalf3 half3\n #define FxaaHalf4 half4\n #define FxaaSat(x) saturate(x)\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_GLSL_100 == 1)\n #define FxaaTexTop(t, p) texture2D(t, p, 0.0)\n #define FxaaTexOff(t, p, o, r) texture2D(t, p + (o * r), 0.0)\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_GLSL_120 == 1)\n // Requires,\n // #version 120\n // And at least,\n // #extension GL_EXT_gpu_shader4 : enable\n // (or set FXAA_FAST_PIXEL_OFFSET 1 to work like DX9)\n #define FxaaTexTop(t, p) texture2DLod(t, p, 0.0)\n #if (FXAA_FAST_PIXEL_OFFSET == 1)\n #define FxaaTexOff(t, p, o, r) texture2DLodOffset(t, p, 0.0, o)\n #else\n #define FxaaTexOff(t, p, o, r) texture2DLod(t, p + (o * r), 0.0)\n #endif\n #if (FXAA_GATHER4_ALPHA == 1)\n // use #extension GL_ARB_gpu_shader5 : enable\n #define FxaaTexAlpha4(t, p) textureGather(t, p, 3)\n #define FxaaTexOffAlpha4(t, p, o) textureGatherOffset(t, p, o, 3)\n #define FxaaTexGreen4(t, p) textureGather(t, p, 1)\n #define FxaaTexOffGreen4(t, p, o) textureGatherOffset(t, p, o, 1)\n #endif\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_GLSL_130 == 1)\n // Requires "#version 130" or better\n #define FxaaTexTop(t, p) textureLod(t, p, 0.0)\n #define FxaaTexOff(t, p, o, r) textureLodOffset(t, p, 0.0, o)\n #if (FXAA_GATHER4_ALPHA == 1)\n // use #extension GL_ARB_gpu_shader5 : enable\n #define FxaaTexAlpha4(t, p) textureGather(t, p, 3)\n #define FxaaTexOffAlpha4(t, p, o) textureGatherOffset(t, p, o, 3)\n #define FxaaTexGreen4(t, p) textureGather(t, p, 1)\n #define FxaaTexOffGreen4(t, p, o) textureGatherOffset(t, p, o, 1)\n #endif\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_HLSL_3 == 1)\n #define FxaaInt2 float2\n #define FxaaTex sampler2D\n #define FxaaTexTop(t, p) tex2Dlod(t, float4(p, 0.0, 0.0))\n #define FxaaTexOff(t, p, o, r) tex2Dlod(t, float4(p + (o * r), 0, 0))\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_HLSL_4 == 1)\n #define FxaaInt2 int2\n struct FxaaTex { SamplerState smpl; Texture2D tex; };\n #define FxaaTexTop(t, p) t.tex.SampleLevel(t.smpl, p, 0.0)\n #define FxaaTexOff(t, p, o, r) t.tex.SampleLevel(t.smpl, p, 0.0, o)\n#endif\n/*--------------------------------------------------------------------------*/\n#if (FXAA_HLSL_5 == 1)\n #define FxaaInt2 int2\n struct FxaaTex { SamplerState smpl; Texture2D tex; };\n #define FxaaTexTop(t, p) t.tex.SampleLevel(t.smpl, p, 0.0)\n #define FxaaTexOff(t, p, o, r) t.tex.SampleLevel(t.smpl, p, 0.0, o)\n #define FxaaTexAlpha4(t, p) t.tex.GatherAlpha(t.smpl, p)\n #define FxaaTexOffAlpha4(t, p, o) t.tex.GatherAlpha(t.smpl, p, o)\n #define FxaaTexGreen4(t, p) t.tex.GatherGreen(t.smpl, p)\n #define FxaaTexOffGreen4(t, p, o) t.tex.GatherGreen(t.smpl, p, o)\n#endif\n\n\n/*============================================================================\n GREEN AS LUMA OPTION SUPPORT FUNCTION\n============================================================================*/\n#if (FXAA_GREEN_AS_LUMA == 0)\n FxaaFloat FxaaLuma(FxaaFloat4 rgba) { return rgba.w; }\n#else\n FxaaFloat FxaaLuma(FxaaFloat4 rgba) { return rgba.y; }\n#endif\n\n/*============================================================================\n\n FXAA3 QUALITY - PC\n\n============================================================================*/\n#if (FXAA_PC == 1)\n/*--------------------------------------------------------------------------*/\nFxaaFloat4 FxaaPixelShader(\n //\n // Use noperspective interpolation here (turn off perspective interpolation).\n // {xy} = center of pixel\n FxaaFloat2 pos,\n //\n // Used only for FXAA Console, and not used on the 360 version.\n // Use noperspective interpolation here (turn off perspective interpolation).\n // {xy_} = upper left of pixel\n // {_zw} = lower right of pixel\n FxaaFloat4 fxaaConsolePosPos,\n //\n // Input color texture.\n // {rgb_} = color in linear or perceptual color space\n // if (FXAA_GREEN_AS_LUMA == 0)\n // {__a} = luma in perceptual color space (not linear)\n FxaaTex tex,\n //\n // Only used on the optimized 360 version of FXAA Console.\n // For everything but 360, just use the same input here as for "tex".\n // For 360, same texture, just alias with a 2nd sampler.\n // This sampler needs to have an exponent bias of -1.\n FxaaTex fxaaConsole360TexExpBiasNegOne,\n //\n // Only used on the optimized 360 version of FXAA Console.\n // For everything but 360, just use the same input here as for "tex".\n // For 360, same texture, just alias with a 3nd sampler.\n // This sampler needs to have an exponent bias of -2.\n FxaaTex fxaaConsole360TexExpBiasNegTwo,\n //\n // Only used on FXAA Quality.\n // This must be from a constant/uniform.\n // {x_} = 1.0/screenWidthInPixels\n // {_y} = 1.0/screenHeightInPixels\n FxaaFloat2 fxaaQualityRcpFrame,\n //\n // Only used on FXAA Console.\n // This must be from a constant/uniform.\n // This effects sub-pixel AA quality and inversely sharpness.\n // Where N ranges between,\n // N = 0.50 (default)\n // N = 0.33 (sharper)\n // {x__} = -N/screenWidthInPixels\n // {_y_} = -N/screenHeightInPixels\n // {_z_} = N/screenWidthInPixels\n // {__w} = N/screenHeightInPixels\n FxaaFloat4 fxaaConsoleRcpFrameOpt,\n //\n // Only used on FXAA Console.\n // Not used on 360, but used on PS3 and PC.\n // This must be from a constant/uniform.\n // {x__} = -2.0/screenWidthInPixels\n // {_y_} = -2.0/screenHeightInPixels\n // {_z_} = 2.0/screenWidthInPixels\n // {__w} = 2.0/screenHeightInPixels\n FxaaFloat4 fxaaConsoleRcpFrameOpt2,\n //\n // Only used on FXAA Console.\n // Only used on 360 in place of fxaaConsoleRcpFrameOpt2.\n // This must be from a constant/uniform.\n // {x__} = 8.0/screenWidthInPixels\n // {_y_} = 8.0/screenHeightInPixels\n // {_z_} = -4.0/screenWidthInPixels\n // {__w} = -4.0/screenHeightInPixels\n FxaaFloat4 fxaaConsole360RcpFrameOpt2,\n //\n // Only used on FXAA Quality.\n // This used to be the FXAA_QUALITY_SUBPIX define.\n // It is here now to allow easier tuning.\n // Choose the amount of sub-pixel aliasing removal.\n // This can effect sharpness.\n // 1.00 - upper limit (softer)\n // 0.75 - default amount of filtering\n // 0.50 - lower limit (sharper, less sub-pixel aliasing removal)\n // 0.25 - almost off\n // 0.00 - completely off\n FxaaFloat fxaaQualitySubpix,\n //\n // Only used on FXAA Quality.\n // This used to be the FXAA_QUALITY_EDGE_THRESHOLD define.\n // It is here now to allow easier tuning.\n // The minimum amount of local contrast required to apply algorithm.\n // 0.333 - too little (faster)\n // 0.250 - low quality\n // 0.166 - default\n // 0.125 - high quality\n // 0.063 - overkill (slower)\n FxaaFloat fxaaQualityEdgeThreshold,\n //\n // Only used on FXAA Quality.\n // This used to be the FXAA_QUALITY_EDGE_THRESHOLD_MIN define.\n // It is here now to allow easier tuning.\n // Trims the algorithm from processing darks.\n // 0.0833 - upper limit (default, the start of visible unfiltered edges)\n // 0.0625 - high quality (faster)\n // 0.0312 - visible limit (slower)\n // Special notes when using FXAA_GREEN_AS_LUMA,\n // Likely want to set this to zero.\n // As colors that are mostly not-green\n // will appear very dark in the green channel!\n // Tune by looking at mostly non-green content,\n // then start at zero and increase until aliasing is a problem.\n FxaaFloat fxaaQualityEdgeThresholdMin,\n //\n // Only used on FXAA Console.\n // This used to be the FXAA_CONSOLE_EDGE_SHARPNESS define.\n // It is here now to allow easier tuning.\n // This does not effect PS3, as this needs to be compiled in.\n // Use FXAA_CONSOLE_PS3_EDGE_SHARPNESS for PS3.\n // Due to the PS3 being ALU bound,\n // there are only three safe values here: 2 and 4 and 8.\n // These options use the shaders ability to a free *|/ by 2|4|8.\n // For all other platforms can be a non-power of two.\n // 8.0 is sharper (default!!!)\n // 4.0 is softer\n // 2.0 is really soft (good only for vector graphics inputs)\n FxaaFloat fxaaConsoleEdgeSharpness,\n //\n // Only used on FXAA Console.\n // This used to be the FXAA_CONSOLE_EDGE_THRESHOLD define.\n // It is here now to allow easier tuning.\n // This does not effect PS3, as this needs to be compiled in.\n // Use FXAA_CONSOLE_PS3_EDGE_THRESHOLD for PS3.\n // Due to the PS3 being ALU bound,\n // there are only two safe values here: 1/4 and 1/8.\n // These options use the shaders ability to a free *|/ by 2|4|8.\n // The console setting has a different mapping than the quality setting.\n // Other platforms can use other values.\n // 0.125 leaves less aliasing, but is softer (default!!!)\n // 0.25 leaves more aliasing, and is sharper\n FxaaFloat fxaaConsoleEdgeThreshold,\n //\n // Only used on FXAA Console.\n // This used to be the FXAA_CONSOLE_EDGE_THRESHOLD_MIN define.\n // It is here now to allow easier tuning.\n // Trims the algorithm from processing darks.\n // The console setting has a different mapping than the quality setting.\n // This only applies when FXAA_EARLY_EXIT is 1.\n // This does not apply to PS3,\n // PS3 was simplified to avoid more shader instructions.\n // 0.06 - faster but more aliasing in darks\n // 0.05 - default\n // 0.04 - slower and less aliasing in darks\n // Special notes when using FXAA_GREEN_AS_LUMA,\n // Likely want to set this to zero.\n // As colors that are mostly not-green\n // will appear very dark in the green channel!\n // Tune by looking at mostly non-green content,\n // then start at zero and increase until aliasing is a problem.\n FxaaFloat fxaaConsoleEdgeThresholdMin,\n //\n // Extra constants for 360 FXAA Console only.\n // Use zeros or anything else for other platforms.\n // These must be in physical constant registers and NOT immediates.\n // Immediates will result in compiler un-optimizing.\n // {xyzw} = float4(1.0, -1.0, 0.25, -0.25)\n FxaaFloat4 fxaaConsole360ConstDir\n) {\n/*--------------------------------------------------------------------------*/\n FxaaFloat2 posM;\n posM.x = pos.x;\n posM.y = pos.y;\n #if (FXAA_GATHER4_ALPHA == 1)\n #if (FXAA_DISCARD == 0)\n FxaaFloat4 rgbyM = FxaaTexTop(tex, posM);\n #if (FXAA_GREEN_AS_LUMA == 0)\n #define lumaM rgbyM.w\n #else\n #define lumaM rgbyM.y\n #endif\n #endif\n #if (FXAA_GREEN_AS_LUMA == 0)\n FxaaFloat4 luma4A = FxaaTexAlpha4(tex, posM);\n FxaaFloat4 luma4B = FxaaTexOffAlpha4(tex, posM, FxaaInt2(-1, -1));\n #else\n FxaaFloat4 luma4A = FxaaTexGreen4(tex, posM);\n FxaaFloat4 luma4B = FxaaTexOffGreen4(tex, posM, FxaaInt2(-1, -1));\n #endif\n #if (FXAA_DISCARD == 1)\n #define lumaM luma4A.w\n #endif\n #define lumaE luma4A.z\n #define lumaS luma4A.x\n #define lumaSE luma4A.y\n #define lumaNW luma4B.w\n #define lumaN luma4B.z\n #define lumaW luma4B.x\n #else\n FxaaFloat4 rgbyM = FxaaTexTop(tex, posM);\n #if (FXAA_GREEN_AS_LUMA == 0)\n #define lumaM rgbyM.w\n #else\n #define lumaM rgbyM.y\n #endif\n #if (FXAA_GLSL_100 == 1)\n FxaaFloat lumaS = FxaaLuma(FxaaTexOff(tex, posM, FxaaFloat2( 0.0, 1.0), fxaaQualityRcpFrame.xy));\n FxaaFloat lumaE = FxaaLuma(FxaaTexOff(tex, posM, FxaaFloat2( 1.0, 0.0), fxaaQualityRcpFrame.xy));\n FxaaFloat lumaN = FxaaLuma(FxaaTexOff(tex, posM, FxaaFloat2( 0.0,-1.0), fxaaQualityRcpFrame.xy));\n FxaaFloat lumaW = FxaaLuma(FxaaTexOff(tex, posM, FxaaFloat2(-1.0, 0.0), fxaaQualityRcpFrame.xy));\n #else\n FxaaFloat lumaS = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 0, 1), fxaaQualityRcpFrame.xy));\n FxaaFloat lumaE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1, 0), fxaaQualityRcpFrame.xy));\n FxaaFloat lumaN = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 0,-1), fxaaQualityRcpFrame.xy));\n FxaaFloat lumaW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 0), fxaaQualityRcpFrame.xy));\n #endif\n #endif\n/*--------------------------------------------------------------------------*/\n FxaaFloat maxSM = max(lumaS, lumaM);\n FxaaFloat minSM = min(lumaS, lumaM);\n FxaaFloat maxESM = max(lumaE, maxSM);\n FxaaFloat minESM = min(lumaE, minSM);\n FxaaFloat maxWN = max(lumaN, lumaW);\n FxaaFloat minWN = min(lumaN, lumaW);\n FxaaFloat rangeMax = max(maxWN, maxESM);\n FxaaFloat rangeMin = min(minWN, minESM);\n FxaaFloat rangeMaxScaled = rangeMax * fxaaQualityEdgeThreshold;\n FxaaFloat range = rangeMax - rangeMin;\n FxaaFloat rangeMaxClamped = max(fxaaQualityEdgeThresholdMin, rangeMaxScaled);\n FxaaBool earlyExit = range < rangeMaxClamped;\n/*--------------------------------------------------------------------------*/\n if(earlyExit)\n #if (FXAA_DISCARD == 1)\n FxaaDiscard;\n #else\n return rgbyM;\n #endif\n/*--------------------------------------------------------------------------*/\n #if (FXAA_GATHER4_ALPHA == 0)\n #if (FXAA_GLSL_100 == 1)\n FxaaFloat lumaNW = FxaaLuma(FxaaTexOff(tex, posM, FxaaFloat2(-1.0,-1.0), fxaaQualityRcpFrame.xy));\n FxaaFloat lumaSE = FxaaLuma(FxaaTexOff(tex, posM, FxaaFloat2( 1.0, 1.0), fxaaQualityRcpFrame.xy));\n FxaaFloat lumaNE = FxaaLuma(FxaaTexOff(tex, posM, FxaaFloat2( 1.0,-1.0), fxaaQualityRcpFrame.xy));\n FxaaFloat lumaSW = FxaaLuma(FxaaTexOff(tex, posM, FxaaFloat2(-1.0, 1.0), fxaaQualityRcpFrame.xy));\n #else\n FxaaFloat lumaNW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1,-1), fxaaQualityRcpFrame.xy));\n FxaaFloat lumaSE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1, 1), fxaaQualityRcpFrame.xy));\n FxaaFloat lumaNE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1,-1), fxaaQualityRcpFrame.xy));\n FxaaFloat lumaSW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 1), fxaaQualityRcpFrame.xy));\n #endif\n #else\n FxaaFloat lumaNE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(1, -1), fxaaQualityRcpFrame.xy));\n FxaaFloat lumaSW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 1), fxaaQualityRcpFrame.xy));\n #endif\n/*--------------------------------------------------------------------------*/\n FxaaFloat lumaNS = lumaN + lumaS;\n FxaaFloat lumaWE = lumaW + lumaE;\n FxaaFloat subpixRcpRange = 1.0/range;\n FxaaFloat subpixNSWE = lumaNS + lumaWE;\n FxaaFloat edgeHorz1 = (-2.0 * lumaM) + lumaNS;\n FxaaFloat edgeVert1 = (-2.0 * lumaM) + lumaWE;\n/*--------------------------------------------------------------------------*/\n FxaaFloat lumaNESE = lumaNE + lumaSE;\n FxaaFloat lumaNWNE = lumaNW + lumaNE;\n FxaaFloat edgeHorz2 = (-2.0 * lumaE) + lumaNESE;\n FxaaFloat edgeVert2 = (-2.0 * lumaN) + lumaNWNE;\n/*--------------------------------------------------------------------------*/\n FxaaFloat lumaNWSW = lumaNW + lumaSW;\n FxaaFloat lumaSWSE = lumaSW + lumaSE;\n FxaaFloat edgeHorz4 = (abs(edgeHorz1) * 2.0) + abs(edgeHorz2);\n FxaaFloat edgeVert4 = (abs(edgeVert1) * 2.0) + abs(edgeVert2);\n FxaaFloat edgeHorz3 = (-2.0 * lumaW) + lumaNWSW;\n FxaaFloat edgeVert3 = (-2.0 * lumaS) + lumaSWSE;\n FxaaFloat edgeHorz = abs(edgeHorz3) + edgeHorz4;\n FxaaFloat edgeVert = abs(edgeVert3) + edgeVert4;\n/*--------------------------------------------------------------------------*/\n FxaaFloat subpixNWSWNESE = lumaNWSW + lumaNESE;\n FxaaFloat lengthSign = fxaaQualityRcpFrame.x;\n FxaaBool horzSpan = edgeHorz >= edgeVert;\n FxaaFloat subpixA = subpixNSWE * 2.0 + subpixNWSWNESE;\n/*--------------------------------------------------------------------------*/\n if(!horzSpan) lumaN = lumaW;\n if(!horzSpan) lumaS = lumaE;\n if(horzSpan) lengthSign = fxaaQualityRcpFrame.y;\n FxaaFloat subpixB = (subpixA * (1.0/12.0)) - lumaM;\n/*--------------------------------------------------------------------------*/\n FxaaFloat gradientN = lumaN - lumaM;\n FxaaFloat gradientS = lumaS - lumaM;\n FxaaFloat lumaNN = lumaN + lumaM;\n FxaaFloat lumaSS = lumaS + lumaM;\n FxaaBool pairN = abs(gradientN) >= abs(gradientS);\n FxaaFloat gradient = max(abs(gradientN), abs(gradientS));\n if(pairN) lengthSign = -lengthSign;\n FxaaFloat subpixC = FxaaSat(abs(subpixB) * subpixRcpRange);\n/*--------------------------------------------------------------------------*/\n FxaaFloat2 posB;\n posB.x = posM.x;\n posB.y = posM.y;\n FxaaFloat2 offNP;\n offNP.x = (!horzSpan) ? 0.0 : fxaaQualityRcpFrame.x;\n offNP.y = ( horzSpan) ? 0.0 : fxaaQualityRcpFrame.y;\n if(!horzSpan) posB.x += lengthSign * 0.5;\n if( horzSpan) posB.y += lengthSign * 0.5;\n/*--------------------------------------------------------------------------*/\n FxaaFloat2 posN;\n posN.x = posB.x - offNP.x * FXAA_QUALITY_P0;\n posN.y = posB.y - offNP.y * FXAA_QUALITY_P0;\n FxaaFloat2 posP;\n posP.x = posB.x + offNP.x * FXAA_QUALITY_P0;\n posP.y = posB.y + offNP.y * FXAA_QUALITY_P0;\n FxaaFloat subpixD = ((-2.0)*subpixC) + 3.0;\n FxaaFloat lumaEndN = FxaaLuma(FxaaTexTop(tex, posN));\n FxaaFloat subpixE = subpixC * subpixC;\n FxaaFloat lumaEndP = FxaaLuma(FxaaTexTop(tex, posP));\n/*--------------------------------------------------------------------------*/\n if(!pairN) lumaNN = lumaSS;\n FxaaFloat gradientScaled = gradient * 1.0/4.0;\n FxaaFloat lumaMM = lumaM - lumaNN * 0.5;\n FxaaFloat subpixF = subpixD * subpixE;\n FxaaBool lumaMLTZero = lumaMM < 0.0;\n/*--------------------------------------------------------------------------*/\n lumaEndN -= lumaNN * 0.5;\n lumaEndP -= lumaNN * 0.5;\n FxaaBool doneN = abs(lumaEndN) >= gradientScaled;\n FxaaBool doneP = abs(lumaEndP) >= gradientScaled;\n if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P1;\n if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P1;\n FxaaBool doneNP = (!doneN) || (!doneP);\n if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P1;\n if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P1;\n/*--------------------------------------------------------------------------*/\n if(doneNP) {\n if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\n if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\n if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\n if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\n doneN = abs(lumaEndN) >= gradientScaled;\n doneP = abs(lumaEndP) >= gradientScaled;\n if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P2;\n if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P2;\n doneNP = (!doneN) || (!doneP);\n if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P2;\n if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P2;\n/*--------------------------------------------------------------------------*/\n #if (FXAA_QUALITY_PS > 3)\n if(doneNP) {\n if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\n if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\n if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\n if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\n doneN = abs(lumaEndN) >= gradientScaled;\n doneP = abs(lumaEndP) >= gradientScaled;\n if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P3;\n if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P3;\n doneNP = (!doneN) || (!doneP);\n if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P3;\n if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P3;\n/*--------------------------------------------------------------------------*/\n #if (FXAA_QUALITY_PS > 4)\n if(doneNP) {\n if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\n if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\n if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\n if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\n doneN = abs(lumaEndN) >= gradientScaled;\n doneP = abs(lumaEndP) >= gradientScaled;\n if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P4;\n if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P4;\n doneNP = (!doneN) || (!doneP);\n if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P4;\n if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P4;\n/*--------------------------------------------------------------------------*/\n #if (FXAA_QUALITY_PS > 5)\n if(doneNP) {\n if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\n if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\n if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\n if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\n doneN = abs(lumaEndN) >= gradientScaled;\n doneP = abs(lumaEndP) >= gradientScaled;\n if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P5;\n if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P5;\n doneNP = (!doneN) || (!doneP);\n if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P5;\n if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P5;\n/*--------------------------------------------------------------------------*/\n #if (FXAA_QUALITY_PS > 6)\n if(doneNP) {\n if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\n if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\n if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\n if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\n doneN = abs(lumaEndN) >= gradientScaled;\n doneP = abs(lumaEndP) >= gradientScaled;\n if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P6;\n if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P6;\n doneNP = (!doneN) || (!doneP);\n if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P6;\n if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P6;\n/*--------------------------------------------------------------------------*/\n #if (FXAA_QUALITY_PS > 7)\n if(doneNP) {\n if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\n if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\n if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\n if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\n doneN = abs(lumaEndN) >= gradientScaled;\n doneP = abs(lumaEndP) >= gradientScaled;\n if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P7;\n if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P7;\n doneNP = (!doneN) || (!doneP);\n if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P7;\n if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P7;\n/*--------------------------------------------------------------------------*/\n #if (FXAA_QUALITY_PS > 8)\n if(doneNP) {\n if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\n if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\n if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\n if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\n doneN = abs(lumaEndN) >= gradientScaled;\n doneP = abs(lumaEndP) >= gradientScaled;\n if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P8;\n if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P8;\n doneNP = (!doneN) || (!doneP);\n if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P8;\n if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P8;\n/*--------------------------------------------------------------------------*/\n #if (FXAA_QUALITY_PS > 9)\n if(doneNP) {\n if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\n if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\n if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\n if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\n doneN = abs(lumaEndN) >= gradientScaled;\n doneP = abs(lumaEndP) >= gradientScaled;\n if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P9;\n if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P9;\n doneNP = (!doneN) || (!doneP);\n if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P9;\n if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P9;\n/*--------------------------------------------------------------------------*/\n #if (FXAA_QUALITY_PS > 10)\n if(doneNP) {\n if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\n if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\n if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\n if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\n doneN = abs(lumaEndN) >= gradientScaled;\n doneP = abs(lumaEndP) >= gradientScaled;\n if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P10;\n if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P10;\n doneNP = (!doneN) || (!doneP);\n if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P10;\n if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P10;\n/*--------------------------------------------------------------------------*/\n #if (FXAA_QUALITY_PS > 11)\n if(doneNP) {\n if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\n if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\n if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\n if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\n doneN = abs(lumaEndN) >= gradientScaled;\n doneP = abs(lumaEndP) >= gradientScaled;\n if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P11;\n if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P11;\n doneNP = (!doneN) || (!doneP);\n if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P11;\n if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P11;\n/*--------------------------------------------------------------------------*/\n #if (FXAA_QUALITY_PS > 12)\n if(doneNP) {\n if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\n if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\n if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\n if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\n doneN = abs(lumaEndN) >= gradientScaled;\n doneP = abs(lumaEndP) >= gradientScaled;\n if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P12;\n if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P12;\n doneNP = (!doneN) || (!doneP);\n if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P12;\n if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P12;\n/*--------------------------------------------------------------------------*/\n }\n #endif\n/*--------------------------------------------------------------------------*/\n }\n #endif\n/*--------------------------------------------------------------------------*/\n }\n #endif\n/*--------------------------------------------------------------------------*/\n }\n #endif\n/*--------------------------------------------------------------------------*/\n }\n #endif\n/*--------------------------------------------------------------------------*/\n }\n #endif\n/*--------------------------------------------------------------------------*/\n }\n #endif\n/*--------------------------------------------------------------------------*/\n }\n #endif\n/*--------------------------------------------------------------------------*/\n }\n #endif\n/*--------------------------------------------------------------------------*/\n }\n #endif\n/*--------------------------------------------------------------------------*/\n }\n/*--------------------------------------------------------------------------*/\n FxaaFloat dstN = posM.x - posN.x;\n FxaaFloat dstP = posP.x - posM.x;\n if(!horzSpan) dstN = posM.y - posN.y;\n if(!horzSpan) dstP = posP.y - posM.y;\n/*--------------------------------------------------------------------------*/\n FxaaBool goodSpanN = (lumaEndN < 0.0) != lumaMLTZero;\n FxaaFloat spanLength = (dstP + dstN);\n FxaaBool goodSpanP = (lumaEndP < 0.0) != lumaMLTZero;\n FxaaFloat spanLengthRcp = 1.0/spanLength;\n/*--------------------------------------------------------------------------*/\n FxaaBool directionN = dstN < dstP;\n FxaaFloat dst = min(dstN, dstP);\n FxaaBool goodSpan = directionN ? goodSpanN : goodSpanP;\n FxaaFloat subpixG = subpixF * subpixF;\n FxaaFloat pixelOffset = (dst * (-spanLengthRcp)) + 0.5;\n FxaaFloat subpixH = subpixG * fxaaQualitySubpix;\n/*--------------------------------------------------------------------------*/\n FxaaFloat pixelOffsetGood = goodSpan ? pixelOffset : 0.0;\n FxaaFloat pixelOffsetSubpix = max(pixelOffsetGood, subpixH);\n if(!horzSpan) posM.x += pixelOffsetSubpix * lengthSign;\n if( horzSpan) posM.y += pixelOffsetSubpix * lengthSign;\n #if (FXAA_DISCARD == 1)\n return FxaaTexTop(tex, posM);\n #else\n return FxaaFloat4(FxaaTexTop(tex, posM).xyz, lumaM);\n #endif\n}\n/*==========================================================================*/\n#endif\n\nvoid main() {\n gl_FragColor = FxaaPixelShader(\n vUv,\n vec4(0.0),\n tDiffuse,\n tDiffuse,\n tDiffuse,\n resolution,\n vec4(0.0),\n vec4(0.0),\n vec4(0.0),\n 0.75,\n 0.166,\n 0.0833,\n 0.0,\n 0.0,\n 0.0,\n vec4(0.0)\n );\n\n // TODO avoid querying texture twice for same texel\n gl_FragColor.a = texture2D(tDiffuse, vUv).a;\n}\n'},889:ht=>{ht.exports="varying vec2 vUv;\n\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}\n"},3420:ht=>{"use strict";ht.exports=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#","description":"Meta-schema for $data reference (JSON Schema extension proposal)","type":"object","required":["$data"],"properties":{"$data":{"type":"string","anyOf":[{"format":"relative-json-pointer"},{"format":"json-pointer"}]}},"additionalProperties":false}')},8198:ht=>{"use strict";ht.exports=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema#","$id":"http://json-schema.org/draft-07/schema#","title":"Core schema meta-schema","definitions":{"schemaArray":{"type":"array","minItems":1,"items":{"$ref":"#"}},"nonNegativeInteger":{"type":"integer","minimum":0},"nonNegativeIntegerDefault0":{"allOf":[{"$ref":"#/definitions/nonNegativeInteger"},{"default":0}]},"simpleTypes":{"enum":["array","boolean","integer","null","number","object","string"]},"stringArray":{"type":"array","items":{"type":"string"},"uniqueItems":true,"default":[]}},"type":["object","boolean"],"properties":{"$id":{"type":"string","format":"uri-reference"},"$schema":{"type":"string","format":"uri"},"$ref":{"type":"string","format":"uri-reference"},"$comment":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"default":true,"readOnly":{"type":"boolean","default":false},"examples":{"type":"array","items":true},"multipleOf":{"type":"number","exclusiveMinimum":0},"maximum":{"type":"number"},"exclusiveMaximum":{"type":"number"},"minimum":{"type":"number"},"exclusiveMinimum":{"type":"number"},"maxLength":{"$ref":"#/definitions/nonNegativeInteger"},"minLength":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"pattern":{"type":"string","format":"regex"},"additionalItems":{"$ref":"#"},"items":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/schemaArray"}],"default":true},"maxItems":{"$ref":"#/definitions/nonNegativeInteger"},"minItems":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"uniqueItems":{"type":"boolean","default":false},"contains":{"$ref":"#"},"maxProperties":{"$ref":"#/definitions/nonNegativeInteger"},"minProperties":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"required":{"$ref":"#/definitions/stringArray"},"additionalProperties":{"$ref":"#"},"definitions":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"properties":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"patternProperties":{"type":"object","additionalProperties":{"$ref":"#"},"propertyNames":{"format":"regex"},"default":{}},"dependencies":{"type":"object","additionalProperties":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/stringArray"}]}},"propertyNames":{"$ref":"#"},"const":true,"enum":{"type":"array","items":true,"minItems":1,"uniqueItems":true},"type":{"anyOf":[{"$ref":"#/definitions/simpleTypes"},{"type":"array","items":{"$ref":"#/definitions/simpleTypes"},"minItems":1,"uniqueItems":true}]},"format":{"type":"string"},"contentMediaType":{"type":"string"},"contentEncoding":{"type":"string"},"if":{"$ref":"#"},"then":{"$ref":"#"},"else":{"$ref":"#"},"allOf":{"$ref":"#/definitions/schemaArray"},"anyOf":{"$ref":"#/definitions/schemaArray"},"oneOf":{"$ref":"#/definitions/schemaArray"},"not":{"$ref":"#"}},"default":true}')}},ht=>{ht(ht.s=4970)}]); \ No newline at end of file diff --git a/gh-pages/visualization/app/package.json b/gh-pages/visualization/app/package.json index 13c2a4ec3c..2fdfa18602 100644 --- a/gh-pages/visualization/app/package.json +++ b/gh-pages/visualization/app/package.json @@ -10,9 +10,9 @@ "url": "https://github.com/MaibornWolff/codecharta.git" }, "name": "codecharta-visualization", - "version": "1.127.1", + "version": "1.128.0", "engines": { - "node": ">=18" + "node": ">=20" }, "description": "MaibornWolff CodeCharta", "files": [ @@ -74,6 +74,7 @@ "@angular/platform-browser-dynamic": "^17.3.3", "@ngrx/effects": "^17.1.1", "@ngrx/store": "^17.1.1", + "@ngrx/store-devtools": "^17.1.1", "@types/d3": "^7.4.3", "ajv": "^6.12.6", "color-convert": "^2.0.1", @@ -98,7 +99,7 @@ "rxjs": "^7.5.1", "safe-stable-stringify": "^2.4.3", "shelljs": "^0.8.4", - "three": "^0.126.1", + "three": "^0.156.0", "three-orbit-controls": "^82.1.0", "typescript-json-schema": "0.63.0", "zone.js": "^0.14.4" @@ -119,7 +120,7 @@ "@types/expect-puppeteer": "^5.0.2", "@types/jest-environment-puppeteer": "^5.0.3", "@types/node": "^18.0.0", - "@types/three": "^0.126.0", + "@types/three": "^0.156.0", "@typescript-eslint/eslint-plugin": "^5.44.0", "@typescript-eslint/parser": "^5.44.0", "bestzip": "^2.2.0", diff --git a/gh-pages/visualization/app/runtime.6e68b8c922a41154.js b/gh-pages/visualization/app/runtime.6e68b8c922a41154.js new file mode 100644 index 0000000000..198a089710 --- /dev/null +++ b/gh-pages/visualization/app/runtime.6e68b8c922a41154.js @@ -0,0 +1 @@ +(()=>{"use strict";var e,i={},_={};function n(e){var a=_[e];if(void 0!==a)return a.exports;var r=_[e]={exports:{}};return i[e].call(r.exports,r,r.exports,n),r.exports}n.m=i,e=[],n.O=(a,r,u,t)=>{if(!r){var s=1/0;for(l=0;l=t)&&Object.keys(n.O).every(d=>n.O[d](r[f]))?r.splice(f--,1):(c=!1,t0&&e[l-1][2]>t;l--)e[l]=e[l-1];e[l]=[r,u,t]},n.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return n.d(a,{a}),a},n.d=(e,a)=>{for(var r in a)n.o(a,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:a[r]})},n.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),(()=>{var e={121:0};n.O.j=u=>0===e[u];var a=(u,t)=>{var f,o,[l,s,c]=t,v=0;if(l.some(b=>0!==e[b])){for(f in s)n.o(s,f)&&(n.m[f]=s[f]);if(c)var p=c(n)}for(u&&u(t);v{"use strict";var e,v={},d={};function a(e){var n=d[e];if(void 0!==n)return n.exports;var r=d[e]={exports:{}};return v[e].call(r.exports,r,r.exports,a),r.exports}a.m=v,e=[],a.O=(n,r,u,l)=>{if(!r){var i=1/0;for(t=0;t=l)&&Object.keys(a.O).every(p=>a.O[p](r[o]))?r.splice(o--,1):(c=!1,l0&&e[t-1][2]>l;t--)e[t]=e[t-1];e[t]=[r,u,l]},a.n=e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return a.d(n,{a:n}),n},a.d=(e,n)=>{for(var r in n)a.o(n,r)&&!a.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},a.o=(e,n)=>Object.prototype.hasOwnProperty.call(e,n),a.r=e=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e={121:0};a.O.j=u=>0===e[u];var n=(u,l)=>{var o,f,[t,i,c]=l,s=0;if(t.some(_=>0!==e[_])){for(o in i)a.o(i,o)&&(a.m[o]=i[o]);if(c)var b=c(a)}for(u&&u(l);sli{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eeeeee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{animation:fa-spin 2s infinite linear}.fa-pulse{animation:fa-spin 1s infinite steps(8)}@keyframes fa-spin{0%{transform:rotate(0)}to{transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";transform:scaleX(-1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";transform:scaleY(-1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-vcard:before,.fa-address-card:before{content:"\f2bb"}.fa-vcard-o:before,.fa-address-card-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.mat-ripple{overflow:hidden;position:relative}.mat-ripple:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0,0,.2,1);transform:scale3d(0,0,0);background-color:var(--mat-ripple-color, rgba(0, 0, 0, .1))}.cdk-high-contrast-active .mat-ripple-element{display:none}.cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none;left:0}[dir=rtl] .cdk-visually-hidden{left:auto;right:0}.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop{position:absolute;inset:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:#00000052}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}textarea.cdk-textarea-autosize{resize:none}textarea.cdk-textarea-autosize-measuring{padding:2px 0!important;box-sizing:content-box!important;height:auto!important;overflow:hidden!important}textarea.cdk-textarea-autosize-measuring-firefox{padding:2px 0!important;box-sizing:content-box!important;height:0!important}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}.mat-focus-indicator{position:relative}.mat-focus-indicator:before{inset:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-focus-indicator-display, none);border:var(--mat-focus-indicator-border-width, 3px) var(--mat-focus-indicator-border-style, solid) var(--mat-focus-indicator-border-color, transparent);border-radius:var(--mat-focus-indicator-border-radius, 4px)}.mat-focus-indicator:focus:before{content:""}.cdk-high-contrast-active{--mat-focus-indicator-display: block}.mat-mdc-focus-indicator{position:relative}.mat-mdc-focus-indicator:before{inset:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-mdc-focus-indicator-display, none);border:var(--mat-mdc-focus-indicator-border-width, 3px) var(--mat-mdc-focus-indicator-border-style, solid) var(--mat-mdc-focus-indicator-border-color, transparent);border-radius:var(--mat-mdc-focus-indicator-border-radius, 4px)}.mat-mdc-focus-indicator:focus:before{content:""}.cdk-high-contrast-active{--mat-mdc-focus-indicator-display: block}.mat-app-background{background-color:var(--mat-app-background-color, transparent);color:var(--mat-app-text-color, inherit)}:root{--mat-dialog-container-min-width: 500px;--mat-dialog-actions-alignment: flex-end;--mat-toolbar-container-background-color: #1b9cfc;--mat-toolbar-container-text-color: #fff;--exceed-local-storage-message-text-color: #b02929;--exceed-local-storage-button-text-color: #ffffff;--exceed-local-storage-button-background-color: #b02929}:root .mat-mdc-checkbox.mat-accent{--mdc-checkbox-selected-checkmark-color: #fff !important}html{--mat-ripple-color: rgba(0, 0, 0, .1)}html,.mat-accent{--mat-option-selected-state-label-text-color: #1b9cfc;--mat-option-label-text-color: rgba(0, 0, 0, .87);--mat-option-hover-state-layer-color: rgba(0, 0, 0, .04);--mat-option-focus-state-layer-color: rgba(0, 0, 0, .04);--mat-option-selected-state-layer-color: rgba(0, 0, 0, .04)}.mat-warn{--mat-option-selected-state-label-text-color: #f44336;--mat-option-label-text-color: rgba(0, 0, 0, .87);--mat-option-hover-state-layer-color: rgba(0, 0, 0, .04);--mat-option-focus-state-layer-color: rgba(0, 0, 0, .04);--mat-option-selected-state-layer-color: rgba(0, 0, 0, .04)}html{--mat-optgroup-label-text-color: rgba(0, 0, 0, .87)}.mat-primary,html,.mat-accent{--mat-full-pseudo-checkbox-selected-icon-color: #1b9cfc;--mat-full-pseudo-checkbox-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-full-pseudo-checkbox-disabled-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-disabled-unselected-icon-color: #b0b0b0;--mat-full-pseudo-checkbox-disabled-selected-icon-color: #b0b0b0;--mat-minimal-pseudo-checkbox-selected-checkmark-color: #1b9cfc;--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: #b0b0b0}.mat-warn{--mat-full-pseudo-checkbox-selected-icon-color: #f44336;--mat-full-pseudo-checkbox-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-full-pseudo-checkbox-disabled-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-disabled-unselected-icon-color: #b0b0b0;--mat-full-pseudo-checkbox-disabled-selected-icon-color: #b0b0b0;--mat-minimal-pseudo-checkbox-selected-checkmark-color: #f44336;--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: #b0b0b0}html{--mat-app-background-color: #fafafa;--mat-app-text-color: rgba(0, 0, 0, .87)}.mat-elevation-z0,.mat-mdc-elevation-specific.mat-elevation-z0{box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.mat-elevation-z1,.mat-mdc-elevation-specific.mat-elevation-z1{box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f}.mat-elevation-z2,.mat-mdc-elevation-specific.mat-elevation-z2{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.mat-elevation-z3,.mat-mdc-elevation-specific.mat-elevation-z3{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}.mat-elevation-z4,.mat-mdc-elevation-specific.mat-elevation-z4{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.mat-elevation-z5,.mat-mdc-elevation-specific.mat-elevation-z5{box-shadow:0 3px 5px -1px #0003,0 5px 8px #00000024,0 1px 14px #0000001f}.mat-elevation-z6,.mat-mdc-elevation-specific.mat-elevation-z6{box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.mat-elevation-z7,.mat-mdc-elevation-specific.mat-elevation-z7{box-shadow:0 4px 5px -2px #0003,0 7px 10px 1px #00000024,0 2px 16px 1px #0000001f}.mat-elevation-z8,.mat-mdc-elevation-specific.mat-elevation-z8{box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.mat-elevation-z9,.mat-mdc-elevation-specific.mat-elevation-z9{box-shadow:0 5px 6px -3px #0003,0 9px 12px 1px #00000024,0 3px 16px 2px #0000001f}.mat-elevation-z10,.mat-mdc-elevation-specific.mat-elevation-z10{box-shadow:0 6px 6px -3px #0003,0 10px 14px 1px #00000024,0 4px 18px 3px #0000001f}.mat-elevation-z11,.mat-mdc-elevation-specific.mat-elevation-z11{box-shadow:0 6px 7px -4px #0003,0 11px 15px 1px #00000024,0 4px 20px 3px #0000001f}.mat-elevation-z12,.mat-mdc-elevation-specific.mat-elevation-z12{box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.mat-elevation-z13,.mat-mdc-elevation-specific.mat-elevation-z13{box-shadow:0 7px 8px -4px #0003,0 13px 19px 2px #00000024,0 5px 24px 4px #0000001f}.mat-elevation-z14,.mat-mdc-elevation-specific.mat-elevation-z14{box-shadow:0 7px 9px -4px #0003,0 14px 21px 2px #00000024,0 5px 26px 4px #0000001f}.mat-elevation-z15,.mat-mdc-elevation-specific.mat-elevation-z15{box-shadow:0 8px 9px -5px #0003,0 15px 22px 2px #00000024,0 6px 28px 5px #0000001f}.mat-elevation-z16,.mat-mdc-elevation-specific.mat-elevation-z16{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.mat-elevation-z17,.mat-mdc-elevation-specific.mat-elevation-z17{box-shadow:0 8px 11px -5px #0003,0 17px 26px 2px #00000024,0 6px 32px 5px #0000001f}.mat-elevation-z18,.mat-mdc-elevation-specific.mat-elevation-z18{box-shadow:0 9px 11px -5px #0003,0 18px 28px 2px #00000024,0 7px 34px 6px #0000001f}.mat-elevation-z19,.mat-mdc-elevation-specific.mat-elevation-z19{box-shadow:0 9px 12px -6px #0003,0 19px 29px 2px #00000024,0 7px 36px 6px #0000001f}.mat-elevation-z20,.mat-mdc-elevation-specific.mat-elevation-z20{box-shadow:0 10px 13px -6px #0003,0 20px 31px 3px #00000024,0 8px 38px 7px #0000001f}.mat-elevation-z21,.mat-mdc-elevation-specific.mat-elevation-z21{box-shadow:0 10px 13px -6px #0003,0 21px 33px 3px #00000024,0 8px 40px 7px #0000001f}.mat-elevation-z22,.mat-mdc-elevation-specific.mat-elevation-z22{box-shadow:0 10px 14px -6px #0003,0 22px 35px 3px #00000024,0 8px 42px 7px #0000001f}.mat-elevation-z23,.mat-mdc-elevation-specific.mat-elevation-z23{box-shadow:0 11px 14px -7px #0003,0 23px 36px 3px #00000024,0 9px 44px 8px #0000001f}.mat-elevation-z24,.mat-mdc-elevation-specific.mat-elevation-z24{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.mat-theme-loaded-marker{display:none}html{--mdc-text-button-container-shape: 4px;--mdc-text-button-keep-touch-target: false;--mdc-filled-button-container-shape: 4px;--mdc-filled-button-keep-touch-target: false;--mdc-protected-button-container-shape: 4px;--mdc-protected-button-keep-touch-target: false;--mdc-outlined-button-keep-touch-target: false;--mdc-outlined-button-outline-width: 1px;--mdc-outlined-button-container-shape: 4px;--mat-text-button-horizontal-padding: 8px;--mat-text-button-with-icon-horizontal-padding: 8px;--mat-text-button-icon-spacing: 8px;--mat-text-button-icon-offset: 0;--mat-filled-button-horizontal-padding: 16px;--mat-filled-button-icon-spacing: 8px;--mat-filled-button-icon-offset: -4px;--mat-protected-button-horizontal-padding: 16px;--mat-protected-button-icon-spacing: 8px;--mat-protected-button-icon-offset: -4px;--mat-outlined-button-horizontal-padding: 15px;--mat-outlined-button-icon-spacing: 8px;--mat-outlined-button-icon-offset: -4px}html{--mdc-text-button-label-text-color: black;--mdc-text-button-disabled-label-text-color: rgba(0, 0, 0, .38);--mat-text-button-state-layer-color: black;--mat-text-button-disabled-state-layer-color: black;--mat-text-button-ripple-color: rgba(0, 0, 0, .1);--mat-text-button-hover-state-layer-opacity: .04;--mat-text-button-focus-state-layer-opacity: .12;--mat-text-button-pressed-state-layer-opacity: .12;--mdc-filled-button-container-color: white;--mdc-filled-button-label-text-color: black;--mdc-filled-button-disabled-container-color: rgba(0, 0, 0, .12);--mdc-filled-button-disabled-label-text-color: rgba(0, 0, 0, .38);--mat-filled-button-state-layer-color: black;--mat-filled-button-disabled-state-layer-color: black;--mat-filled-button-ripple-color: rgba(0, 0, 0, .1);--mat-filled-button-hover-state-layer-opacity: .04;--mat-filled-button-focus-state-layer-opacity: .12;--mat-filled-button-pressed-state-layer-opacity: .12;--mdc-protected-button-container-color: white;--mdc-protected-button-label-text-color: black;--mdc-protected-button-disabled-container-color: rgba(0, 0, 0, .12);--mdc-protected-button-disabled-label-text-color: rgba(0, 0, 0, .38);--mdc-protected-button-container-elevation-shadow: 0px 3px 1px -2px rgba(0, 0, 0, .2), 0px 2px 2px 0px rgba(0, 0, 0, .14), 0px 1px 5px 0px rgba(0, 0, 0, .12);--mdc-protected-button-disabled-container-elevation-shadow: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mdc-protected-button-focus-container-elevation-shadow: 0px 2px 4px -1px rgba(0, 0, 0, .2), 0px 4px 5px 0px rgba(0, 0, 0, .14), 0px 1px 10px 0px rgba(0, 0, 0, .12);--mdc-protected-button-hover-container-elevation-shadow: 0px 2px 4px -1px rgba(0, 0, 0, .2), 0px 4px 5px 0px rgba(0, 0, 0, .14), 0px 1px 10px 0px rgba(0, 0, 0, .12);--mdc-protected-button-pressed-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mdc-protected-button-container-shadow-color: #000;--mat-protected-button-state-layer-color: black;--mat-protected-button-disabled-state-layer-color: black;--mat-protected-button-ripple-color: rgba(0, 0, 0, .1);--mat-protected-button-hover-state-layer-opacity: .04;--mat-protected-button-focus-state-layer-opacity: .12;--mat-protected-button-pressed-state-layer-opacity: .12;--mdc-outlined-button-disabled-outline-color: rgba(0, 0, 0, .12);--mdc-outlined-button-disabled-label-text-color: rgba(0, 0, 0, .38);--mdc-outlined-button-label-text-color: black;--mdc-outlined-button-outline-color: rgba(0, 0, 0, .12);--mat-outlined-button-state-layer-color: black;--mat-outlined-button-disabled-state-layer-color: black;--mat-outlined-button-ripple-color: rgba(0, 0, 0, .1);--mat-outlined-button-hover-state-layer-opacity: .04;--mat-outlined-button-focus-state-layer-opacity: .12;--mat-outlined-button-pressed-state-layer-opacity: .12}.mat-mdc-button.mat-primary,.mat-mdc-button.mat-accent{--mdc-text-button-label-text-color: #1b9cfc;--mat-text-button-state-layer-color: #1b9cfc;--mat-text-button-ripple-color: rgba(27, 156, 252, .1)}.mat-mdc-button.mat-warn{--mdc-text-button-label-text-color: #f44336;--mat-text-button-state-layer-color: #f44336;--mat-text-button-ripple-color: rgba(244, 67, 54, .1)}.mat-mdc-unelevated-button.mat-primary,.mat-mdc-unelevated-button.mat-accent{--mdc-filled-button-container-color: #1b9cfc;--mdc-filled-button-label-text-color: white;--mat-filled-button-state-layer-color: white;--mat-filled-button-ripple-color: rgba(255, 255, 255, .1)}.mat-mdc-unelevated-button.mat-warn{--mdc-filled-button-container-color: #f44336;--mdc-filled-button-label-text-color: white;--mat-filled-button-state-layer-color: white;--mat-filled-button-ripple-color: rgba(255, 255, 255, .1)}.mat-mdc-raised-button.mat-primary,.mat-mdc-raised-button.mat-accent{--mdc-protected-button-container-color: #1b9cfc;--mdc-protected-button-label-text-color: white;--mat-protected-button-state-layer-color: white;--mat-protected-button-ripple-color: rgba(255, 255, 255, .1)}.mat-mdc-raised-button.mat-warn{--mdc-protected-button-container-color: #f44336;--mdc-protected-button-label-text-color: white;--mat-protected-button-state-layer-color: white;--mat-protected-button-ripple-color: rgba(255, 255, 255, .1)}.mat-mdc-outlined-button.mat-primary,.mat-mdc-outlined-button.mat-accent{--mdc-outlined-button-label-text-color: #1b9cfc;--mdc-outlined-button-outline-color: rgba(0, 0, 0, .12);--mat-outlined-button-state-layer-color: #1b9cfc;--mat-outlined-button-ripple-color: rgba(27, 156, 252, .1)}.mat-mdc-outlined-button.mat-warn{--mdc-outlined-button-label-text-color: #f44336;--mdc-outlined-button-outline-color: rgba(0, 0, 0, .12);--mat-outlined-button-state-layer-color: #f44336;--mat-outlined-button-ripple-color: rgba(244, 67, 54, .1)}html{--mdc-text-button-container-height: 36px;--mdc-filled-button-container-height: 36px;--mdc-outlined-button-container-height: 36px;--mdc-protected-button-container-height: 36px;--mat-text-button-touch-target-display: block;--mat-filled-button-touch-target-display: block;--mat-protected-button-touch-target-display: block;--mat-outlined-button-touch-target-display: block}html{--mat-legacy-button-toggle-height: 36px;--mat-legacy-button-toggle-shape: 2px;--mat-legacy-button-toggle-focus-state-layer-opacity: 1;--mat-standard-button-toggle-shape: 4px;--mat-standard-button-toggle-hover-state-layer-opacity: .04;--mat-standard-button-toggle-focus-state-layer-opacity: .12}html{--mat-legacy-button-toggle-text-color: rgba(0, 0, 0, .38);--mat-legacy-button-toggle-state-layer-color: rgba(0, 0, 0, .12);--mat-legacy-button-toggle-selected-state-text-color: rgba(0, 0, 0, .54);--mat-legacy-button-toggle-selected-state-background-color: #e0e0e0;--mat-legacy-button-toggle-disabled-state-text-color: rgba(0, 0, 0, .26);--mat-legacy-button-toggle-disabled-state-background-color: #eeeeee;--mat-legacy-button-toggle-disabled-selected-state-background-color: #bdbdbd;--mat-standard-button-toggle-text-color: rgba(0, 0, 0, .87);--mat-standard-button-toggle-background-color: white;--mat-standard-button-toggle-state-layer-color: black;--mat-standard-button-toggle-selected-state-background-color: #e0e0e0;--mat-standard-button-toggle-selected-state-text-color: rgba(0, 0, 0, .87);--mat-standard-button-toggle-disabled-state-text-color: rgba(0, 0, 0, .26);--mat-standard-button-toggle-disabled-state-background-color: white;--mat-standard-button-toggle-disabled-selected-state-text-color: rgba(0, 0, 0, .87);--mat-standard-button-toggle-disabled-selected-state-background-color: #bdbdbd;--mat-standard-button-toggle-divider-color: #e0e0e0}html{--mat-standard-button-toggle-height: 48px}html{--mdc-circular-progress-active-indicator-width: 4px;--mdc-circular-progress-size: 48px}html,html .mat-accent{--mdc-circular-progress-active-indicator-color: #1b9cfc}html .mat-warn{--mdc-circular-progress-active-indicator-color: #f44336}html{--mdc-elevated-card-container-shape: 4px;--mdc-outlined-card-container-shape: 4px;--mdc-outlined-card-outline-width: 1px}html{--mdc-elevated-card-container-color: white;--mdc-elevated-card-container-elevation: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mdc-outlined-card-container-color: white;--mdc-outlined-card-outline-color: rgba(0, 0, 0, .12);--mdc-outlined-card-container-elevation: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-card-subtitle-text-color: rgba(0, 0, 0, .54)}html{--mat-select-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12)}html,html .mat-mdc-form-field.mat-accent{--mat-select-panel-background-color: white;--mat-select-enabled-trigger-text-color: rgba(0, 0, 0, .87);--mat-select-disabled-trigger-text-color: rgba(0, 0, 0, .38);--mat-select-placeholder-text-color: rgba(0, 0, 0, .6);--mat-select-enabled-arrow-color: rgba(0, 0, 0, .54);--mat-select-disabled-arrow-color: rgba(0, 0, 0, .38);--mat-select-focused-arrow-color: rgba(27, 156, 252, .87);--mat-select-invalid-arrow-color: rgba(244, 67, 54, .87)}html .mat-mdc-form-field.mat-warn{--mat-select-panel-background-color: white;--mat-select-enabled-trigger-text-color: rgba(0, 0, 0, .87);--mat-select-disabled-trigger-text-color: rgba(0, 0, 0, .38);--mat-select-placeholder-text-color: rgba(0, 0, 0, .6);--mat-select-enabled-arrow-color: rgba(0, 0, 0, .54);--mat-select-disabled-arrow-color: rgba(0, 0, 0, .38);--mat-select-focused-arrow-color: rgba(244, 67, 54, .87);--mat-select-invalid-arrow-color: rgba(244, 67, 54, .87)}html{--mat-select-arrow-transform: translateY(-8px)}html{--mat-menu-container-shape: 4px;--mat-menu-divider-bottom-spacing: 0;--mat-menu-divider-top-spacing: 0;--mat-menu-item-spacing: 16px;--mat-menu-item-icon-size: 24px;--mat-menu-item-leading-spacing: 16px;--mat-menu-item-trailing-spacing: 16px;--mat-menu-item-with-icon-leading-spacing: 16px;--mat-menu-item-with-icon-trailing-spacing: 16px}html{--mat-menu-item-label-text-color: rgba(0, 0, 0, .87);--mat-menu-item-icon-color: rgba(0, 0, 0, .87);--mat-menu-item-hover-state-layer-color: rgba(0, 0, 0, .04);--mat-menu-item-focus-state-layer-color: rgba(0, 0, 0, .04);--mat-menu-container-color: white;--mat-menu-divider-color: rgba(0, 0, 0, .12)}html{--mdc-dialog-container-elevation-shadow: 0px 11px 15px -7px rgba(0, 0, 0, .2), 0px 24px 38px 3px rgba(0, 0, 0, .14), 0px 9px 46px 8px rgba(0, 0, 0, .12);--mdc-dialog-container-shadow-color: #000;--mdc-dialog-container-shape: 4px;--mat-dialog-container-max-width: 80vw;--mat-dialog-container-small-max-width: 80vw;--mat-dialog-container-min-width: 0;--mat-dialog-actions-alignment: start;--mat-dialog-actions-padding: 8px;--mat-dialog-content-padding: 20px 24px;--mat-dialog-with-actions-content-padding: 20px 24px;--mat-dialog-headline-padding: 0 24px 9px}html{--mdc-dialog-container-color: white;--mdc-dialog-subhead-color: rgba(0, 0, 0, .87);--mdc-dialog-supporting-text-color: rgba(0, 0, 0, .6)}html{--mdc-plain-tooltip-container-shape: 4px;--mdc-plain-tooltip-supporting-text-line-height: 16px}html{--mdc-plain-tooltip-container-color: #616161;--mdc-plain-tooltip-supporting-text-color: #fff}html{--mdc-checkbox-disabled-selected-checkmark-color: #fff;--mdc-checkbox-selected-focus-state-layer-opacity: .16;--mdc-checkbox-selected-hover-state-layer-opacity: .04;--mdc-checkbox-selected-pressed-state-layer-opacity: .16;--mdc-checkbox-unselected-focus-state-layer-opacity: .16;--mdc-checkbox-unselected-hover-state-layer-opacity: .04;--mdc-checkbox-unselected-pressed-state-layer-opacity: .16}html{--mdc-checkbox-disabled-selected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-disabled-unselected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-selected-checkmark-color: white;--mdc-checkbox-selected-focus-icon-color: #1b9cfc;--mdc-checkbox-selected-hover-icon-color: #1b9cfc;--mdc-checkbox-selected-icon-color: #1b9cfc;--mdc-checkbox-selected-pressed-icon-color: #1b9cfc;--mdc-checkbox-unselected-focus-icon-color: #212121;--mdc-checkbox-unselected-hover-icon-color: #212121;--mdc-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-unselected-pressed-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-selected-focus-state-layer-color: #1b9cfc;--mdc-checkbox-selected-hover-state-layer-color: #1b9cfc;--mdc-checkbox-selected-pressed-state-layer-color: #1b9cfc;--mdc-checkbox-unselected-focus-state-layer-color: black;--mdc-checkbox-unselected-hover-state-layer-color: black;--mdc-checkbox-unselected-pressed-state-layer-color: black;--mat-checkbox-disabled-label-color: rgba(0, 0, 0, .38)}.mat-mdc-checkbox{--mdc-form-field-label-text-color: rgba(0, 0, 0, .87)}.mat-mdc-checkbox.mat-primary{--mdc-checkbox-disabled-selected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-disabled-unselected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-selected-checkmark-color: white;--mdc-checkbox-selected-focus-icon-color: #1b9cfc;--mdc-checkbox-selected-hover-icon-color: #1b9cfc;--mdc-checkbox-selected-icon-color: #1b9cfc;--mdc-checkbox-selected-pressed-icon-color: #1b9cfc;--mdc-checkbox-unselected-focus-icon-color: #212121;--mdc-checkbox-unselected-hover-icon-color: #212121;--mdc-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-unselected-pressed-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-selected-focus-state-layer-color: #1b9cfc;--mdc-checkbox-selected-hover-state-layer-color: #1b9cfc;--mdc-checkbox-selected-pressed-state-layer-color: #1b9cfc;--mdc-checkbox-unselected-focus-state-layer-color: black;--mdc-checkbox-unselected-hover-state-layer-color: black;--mdc-checkbox-unselected-pressed-state-layer-color: black}.mat-mdc-checkbox.mat-warn{--mdc-checkbox-disabled-selected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-disabled-unselected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-selected-checkmark-color: white;--mdc-checkbox-selected-focus-icon-color: #f44336;--mdc-checkbox-selected-hover-icon-color: #f44336;--mdc-checkbox-selected-icon-color: #f44336;--mdc-checkbox-selected-pressed-icon-color: #f44336;--mdc-checkbox-unselected-focus-icon-color: #212121;--mdc-checkbox-unselected-hover-icon-color: #212121;--mdc-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-unselected-pressed-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-selected-focus-state-layer-color: #f44336;--mdc-checkbox-selected-hover-state-layer-color: #f44336;--mdc-checkbox-selected-pressed-state-layer-color: #f44336;--mdc-checkbox-unselected-focus-state-layer-color: black;--mdc-checkbox-unselected-hover-state-layer-color: black;--mdc-checkbox-unselected-pressed-state-layer-color: black}html{--mdc-checkbox-state-layer-size: 40px;--mat-checkbox-touch-target-display: block}html{--mat-toolbar-container-background-color: whitesmoke;--mat-toolbar-container-text-color: rgba(0, 0, 0, .87)}.mat-toolbar.mat-primary,.mat-toolbar.mat-accent{--mat-toolbar-container-background-color: #1b9cfc;--mat-toolbar-container-text-color: white}.mat-toolbar.mat-warn{--mat-toolbar-container-background-color: #f44336;--mat-toolbar-container-text-color: white}html{--mat-toolbar-standard-height: 64px;--mat-toolbar-mobile-height: 56px}html{--mdc-filled-text-field-active-indicator-height: 1px;--mdc-filled-text-field-focus-active-indicator-height: 2px;--mdc-filled-text-field-container-shape: 4px;--mdc-outlined-text-field-outline-width: 1px;--mdc-outlined-text-field-focus-outline-width: 2px;--mdc-outlined-text-field-container-shape: 4px}html{--mdc-filled-text-field-caret-color: #1b9cfc;--mdc-filled-text-field-focus-active-indicator-color: #1b9cfc;--mdc-filled-text-field-focus-label-text-color: rgba(27, 156, 252, .87);--mdc-filled-text-field-container-color: whitesmoke;--mdc-filled-text-field-disabled-container-color: #fafafa;--mdc-filled-text-field-label-text-color: rgba(0, 0, 0, .6);--mdc-filled-text-field-hover-label-text-color: rgba(0, 0, 0, .6);--mdc-filled-text-field-disabled-label-text-color: rgba(0, 0, 0, .38);--mdc-filled-text-field-input-text-color: rgba(0, 0, 0, .87);--mdc-filled-text-field-disabled-input-text-color: rgba(0, 0, 0, .38);--mdc-filled-text-field-input-text-placeholder-color: rgba(0, 0, 0, .6);--mdc-filled-text-field-error-hover-label-text-color: #f44336;--mdc-filled-text-field-error-focus-label-text-color: #f44336;--mdc-filled-text-field-error-label-text-color: #f44336;--mdc-filled-text-field-error-caret-color: #f44336;--mdc-filled-text-field-active-indicator-color: rgba(0, 0, 0, .42);--mdc-filled-text-field-disabled-active-indicator-color: rgba(0, 0, 0, .06);--mdc-filled-text-field-hover-active-indicator-color: rgba(0, 0, 0, .87);--mdc-filled-text-field-error-active-indicator-color: #f44336;--mdc-filled-text-field-error-focus-active-indicator-color: #f44336;--mdc-filled-text-field-error-hover-active-indicator-color: #f44336;--mdc-outlined-text-field-caret-color: #1b9cfc;--mdc-outlined-text-field-focus-outline-color: #1b9cfc;--mdc-outlined-text-field-focus-label-text-color: rgba(27, 156, 252, .87);--mdc-outlined-text-field-label-text-color: rgba(0, 0, 0, .6);--mdc-outlined-text-field-hover-label-text-color: rgba(0, 0, 0, .6);--mdc-outlined-text-field-disabled-label-text-color: rgba(0, 0, 0, .38);--mdc-outlined-text-field-input-text-color: rgba(0, 0, 0, .87);--mdc-outlined-text-field-disabled-input-text-color: rgba(0, 0, 0, .38);--mdc-outlined-text-field-input-text-placeholder-color: rgba(0, 0, 0, .6);--mdc-outlined-text-field-error-caret-color: #f44336;--mdc-outlined-text-field-error-focus-label-text-color: #f44336;--mdc-outlined-text-field-error-label-text-color: #f44336;--mdc-outlined-text-field-error-hover-label-text-color: #f44336;--mdc-outlined-text-field-outline-color: rgba(0, 0, 0, .38);--mdc-outlined-text-field-disabled-outline-color: rgba(0, 0, 0, .06);--mdc-outlined-text-field-hover-outline-color: rgba(0, 0, 0, .87);--mdc-outlined-text-field-error-focus-outline-color: #f44336;--mdc-outlined-text-field-error-hover-outline-color: #f44336;--mdc-outlined-text-field-error-outline-color: #f44336;--mat-form-field-focus-select-arrow-color: rgba(27, 156, 252, .87);--mat-form-field-disabled-input-text-placeholder-color: rgba(0, 0, 0, .38);--mat-form-field-state-layer-color: rgba(0, 0, 0, .87);--mat-form-field-error-text-color: #f44336;--mat-form-field-select-option-text-color: inherit;--mat-form-field-select-disabled-option-text-color: GrayText;--mat-form-field-leading-icon-color: unset;--mat-form-field-disabled-leading-icon-color: unset;--mat-form-field-trailing-icon-color: unset;--mat-form-field-disabled-trailing-icon-color: unset;--mat-form-field-error-focus-trailing-icon-color: unset;--mat-form-field-error-hover-trailing-icon-color: unset;--mat-form-field-error-trailing-icon-color: unset;--mat-form-field-enabled-select-arrow-color: rgba(0, 0, 0, .54);--mat-form-field-disabled-select-arrow-color: rgba(0, 0, 0, .38);--mat-form-field-hover-state-layer-opacity: .04;--mat-form-field-focus-state-layer-opacity: .08}.mat-mdc-form-field.mat-accent{--mdc-filled-text-field-caret-color: #1b9cfc;--mdc-filled-text-field-focus-active-indicator-color: #1b9cfc;--mdc-filled-text-field-focus-label-text-color: rgba(27, 156, 252, .87);--mdc-outlined-text-field-caret-color: #1b9cfc;--mdc-outlined-text-field-focus-outline-color: #1b9cfc;--mdc-outlined-text-field-focus-label-text-color: rgba(27, 156, 252, .87);--mat-form-field-focus-select-arrow-color: rgba(27, 156, 252, .87)}.mat-mdc-form-field.mat-warn{--mdc-filled-text-field-caret-color: #f44336;--mdc-filled-text-field-focus-active-indicator-color: #f44336;--mdc-filled-text-field-focus-label-text-color: rgba(244, 67, 54, .87);--mdc-outlined-text-field-caret-color: #f44336;--mdc-outlined-text-field-focus-outline-color: #f44336;--mdc-outlined-text-field-focus-label-text-color: rgba(244, 67, 54, .87);--mat-form-field-focus-select-arrow-color: rgba(244, 67, 54, .87)}html{--mat-form-field-container-height: 56px;--mat-form-field-filled-label-display: block;--mat-form-field-container-vertical-padding: 16px;--mat-form-field-filled-with-label-container-padding-top: 24px;--mat-form-field-filled-with-label-container-padding-bottom: 8px}html{--mdc-list-list-item-container-shape: 0;--mdc-list-list-item-leading-avatar-shape: 50%;--mdc-list-list-item-container-color: transparent;--mdc-list-list-item-selected-container-color: transparent;--mdc-list-list-item-leading-avatar-color: transparent;--mdc-list-list-item-leading-icon-size: 24px;--mdc-list-list-item-leading-avatar-size: 40px;--mdc-list-list-item-trailing-icon-size: 24px;--mdc-list-list-item-disabled-state-layer-color: transparent;--mdc-list-list-item-disabled-state-layer-opacity: 0;--mdc-list-list-item-disabled-label-text-opacity: .38;--mdc-list-list-item-disabled-leading-icon-opacity: .38;--mdc-list-list-item-disabled-trailing-icon-opacity: .38;--mat-list-active-indicator-color: transparent;--mat-list-active-indicator-shape: 0}html{--mdc-list-list-item-label-text-color: rgba(0, 0, 0, .87);--mdc-list-list-item-supporting-text-color: rgba(0, 0, 0, .54);--mdc-list-list-item-leading-icon-color: rgba(0, 0, 0, .38);--mdc-list-list-item-trailing-supporting-text-color: rgba(0, 0, 0, .38);--mdc-list-list-item-trailing-icon-color: rgba(0, 0, 0, .38);--mdc-list-list-item-selected-trailing-icon-color: rgba(0, 0, 0, .38);--mdc-list-list-item-disabled-label-text-color: black;--mdc-list-list-item-disabled-leading-icon-color: black;--mdc-list-list-item-disabled-trailing-icon-color: black;--mdc-list-list-item-hover-label-text-color: rgba(0, 0, 0, .87);--mdc-list-list-item-hover-leading-icon-color: rgba(0, 0, 0, .38);--mdc-list-list-item-hover-trailing-icon-color: rgba(0, 0, 0, .38);--mdc-list-list-item-focus-label-text-color: rgba(0, 0, 0, .87);--mdc-list-list-item-hover-state-layer-color: black;--mdc-list-list-item-hover-state-layer-opacity: .04;--mdc-list-list-item-focus-state-layer-color: black;--mdc-list-list-item-focus-state-layer-opacity: .12}.mdc-list-item__start,.mdc-list-item__end,.mat-accent .mdc-list-item__start,.mat-accent .mdc-list-item__end{--mdc-radio-disabled-selected-icon-color: black;--mdc-radio-disabled-unselected-icon-color: black;--mdc-radio-unselected-hover-icon-color: #212121;--mdc-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .54);--mdc-radio-selected-focus-icon-color: #1b9cfc;--mdc-radio-selected-hover-icon-color: #1b9cfc;--mdc-radio-selected-icon-color: #1b9cfc;--mdc-radio-selected-pressed-icon-color: #1b9cfc}.mat-warn .mdc-list-item__start,.mat-warn .mdc-list-item__end{--mdc-radio-disabled-selected-icon-color: black;--mdc-radio-disabled-unselected-icon-color: black;--mdc-radio-unselected-hover-icon-color: #212121;--mdc-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .54);--mdc-radio-selected-focus-icon-color: #f44336;--mdc-radio-selected-hover-icon-color: #f44336;--mdc-radio-selected-icon-color: #f44336;--mdc-radio-selected-pressed-icon-color: #f44336}.mat-mdc-list-option,.mat-mdc-list-option.mat-accent{--mdc-checkbox-disabled-selected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-disabled-unselected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-selected-checkmark-color: white;--mdc-checkbox-selected-focus-icon-color: #1b9cfc;--mdc-checkbox-selected-hover-icon-color: #1b9cfc;--mdc-checkbox-selected-icon-color: #1b9cfc;--mdc-checkbox-selected-pressed-icon-color: #1b9cfc;--mdc-checkbox-unselected-focus-icon-color: #212121;--mdc-checkbox-unselected-hover-icon-color: #212121;--mdc-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-unselected-pressed-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-selected-focus-state-layer-color: #1b9cfc;--mdc-checkbox-selected-hover-state-layer-color: #1b9cfc;--mdc-checkbox-selected-pressed-state-layer-color: #1b9cfc;--mdc-checkbox-unselected-focus-state-layer-color: black;--mdc-checkbox-unselected-hover-state-layer-color: black;--mdc-checkbox-unselected-pressed-state-layer-color: black}.mat-mdc-list-option.mat-warn{--mdc-checkbox-disabled-selected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-disabled-unselected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-selected-checkmark-color: white;--mdc-checkbox-selected-focus-icon-color: #f44336;--mdc-checkbox-selected-hover-icon-color: #f44336;--mdc-checkbox-selected-icon-color: #f44336;--mdc-checkbox-selected-pressed-icon-color: #f44336;--mdc-checkbox-unselected-focus-icon-color: #212121;--mdc-checkbox-unselected-hover-icon-color: #212121;--mdc-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-unselected-pressed-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-selected-focus-state-layer-color: #f44336;--mdc-checkbox-selected-hover-state-layer-color: #f44336;--mdc-checkbox-selected-pressed-state-layer-color: #f44336;--mdc-checkbox-unselected-focus-state-layer-color: black;--mdc-checkbox-unselected-hover-state-layer-color: black;--mdc-checkbox-unselected-pressed-state-layer-color: black}.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--selected .mdc-list-item__primary-text,.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--activated .mdc-list-item__primary-text,.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--selected.mdc-list-item--with-leading-icon .mdc-list-item__start,.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--activated.mdc-list-item--with-leading-icon .mdc-list-item__start{color:#1b9cfc}.mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__start,.mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__content,.mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__end{opacity:1}html{--mdc-list-list-item-one-line-container-height: 48px;--mdc-list-list-item-two-line-container-height: 64px;--mdc-list-list-item-three-line-container-height: 88px;--mat-list-list-item-leading-icon-start-space: 16px;--mat-list-list-item-leading-icon-end-space: 32px}.mdc-list-item__start,.mdc-list-item__end{--mdc-radio-state-layer-size: 40px}.mat-mdc-list-item.mdc-list-item--with-leading-avatar.mdc-list-item--with-one-line,.mat-mdc-list-item.mdc-list-item--with-leading-checkbox.mdc-list-item--with-one-line,.mat-mdc-list-item.mdc-list-item--with-leading-icon.mdc-list-item--with-one-line{height:56px}.mat-mdc-list-item.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines,.mat-mdc-list-item.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines,.mat-mdc-list-item.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines{height:72px}html{--mat-divider-width: 1px}html{--mat-divider-color: rgba(0, 0, 0, .12)}html{--mat-slider-value-indicator-width: auto;--mat-slider-value-indicator-height: 32px;--mat-slider-value-indicator-caret-display: block;--mat-slider-value-indicator-border-radius: 4px;--mat-slider-value-indicator-padding: 0 12px;--mat-slider-value-indicator-text-transform: none;--mat-slider-value-indicator-container-transform: translateX(-50%);--mdc-slider-active-track-height: 6px;--mdc-slider-active-track-shape: 9999px;--mdc-slider-handle-height: 20px;--mdc-slider-handle-shape: 50%;--mdc-slider-handle-width: 20px;--mdc-slider-inactive-track-height: 4px;--mdc-slider-inactive-track-shape: 9999px;--mdc-slider-with-overlap-handle-outline-width: 1px;--mdc-slider-with-tick-marks-active-container-opacity: .6;--mdc-slider-with-tick-marks-container-shape: 50%;--mdc-slider-with-tick-marks-container-size: 2px;--mdc-slider-with-tick-marks-inactive-container-opacity: .6}html{--mdc-slider-handle-color: #1b9cfc;--mdc-slider-focus-handle-color: #1b9cfc;--mdc-slider-hover-handle-color: #1b9cfc;--mdc-slider-active-track-color: #1b9cfc;--mdc-slider-inactive-track-color: #1b9cfc;--mdc-slider-with-tick-marks-inactive-container-color: #1b9cfc;--mdc-slider-with-tick-marks-active-container-color: white;--mdc-slider-disabled-active-track-color: #000;--mdc-slider-disabled-handle-color: #000;--mdc-slider-disabled-inactive-track-color: #000;--mdc-slider-label-container-color: #000;--mdc-slider-label-label-text-color: #fff;--mdc-slider-with-overlap-handle-outline-color: #fff;--mdc-slider-with-tick-marks-disabled-container-color: #000;--mdc-slider-handle-elevation: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-slider-ripple-color: #1b9cfc;--mat-slider-hover-state-layer-color: rgba(27, 156, 252, .05);--mat-slider-focus-state-layer-color: rgba(27, 156, 252, .2);--mat-slider-value-indicator-opacity: .6}html .mat-accent{--mat-slider-ripple-color: #1b9cfc;--mat-slider-hover-state-layer-color: rgba(27, 156, 252, .05);--mat-slider-focus-state-layer-color: rgba(27, 156, 252, .2);--mdc-slider-handle-color: #1b9cfc;--mdc-slider-focus-handle-color: #1b9cfc;--mdc-slider-hover-handle-color: #1b9cfc;--mdc-slider-active-track-color: #1b9cfc;--mdc-slider-inactive-track-color: #1b9cfc;--mdc-slider-with-tick-marks-inactive-container-color: #1b9cfc;--mdc-slider-with-tick-marks-active-container-color: white}html .mat-warn{--mat-slider-ripple-color: #f44336;--mat-slider-hover-state-layer-color: rgba(244, 67, 54, .05);--mat-slider-focus-state-layer-color: rgba(244, 67, 54, .2);--mdc-slider-handle-color: #f44336;--mdc-slider-focus-handle-color: #f44336;--mdc-slider-hover-handle-color: #f44336;--mdc-slider-active-track-color: #f44336;--mdc-slider-inactive-track-color: #f44336;--mdc-slider-with-tick-marks-inactive-container-color: #f44336;--mdc-slider-with-tick-marks-active-container-color: white}html{--mdc-switch-disabled-selected-icon-opacity: .38;--mdc-switch-disabled-track-opacity: .12;--mdc-switch-disabled-unselected-icon-opacity: .38;--mdc-switch-handle-height: 20px;--mdc-switch-handle-shape: 10px;--mdc-switch-handle-width: 20px;--mdc-switch-selected-icon-size: 18px;--mdc-switch-track-height: 14px;--mdc-switch-track-shape: 7px;--mdc-switch-track-width: 36px;--mdc-switch-unselected-icon-size: 18px;--mdc-switch-selected-focus-state-layer-opacity: .12;--mdc-switch-selected-hover-state-layer-opacity: .04;--mdc-switch-selected-pressed-state-layer-opacity: .1;--mdc-switch-unselected-focus-state-layer-opacity: .12;--mdc-switch-unselected-hover-state-layer-opacity: .04;--mdc-switch-unselected-pressed-state-layer-opacity: .1;--mat-switch-disabled-selected-handle-opacity: .38;--mat-switch-disabled-unselected-handle-opacity: .38;--mat-switch-unselected-handle-size: 20px;--mat-switch-selected-handle-size: 20px;--mat-switch-pressed-handle-size: 20px;--mat-switch-with-icon-handle-size: 20px;--mat-switch-selected-handle-horizontal-margin: 0;--mat-switch-selected-with-icon-handle-horizontal-margin: 0;--mat-switch-selected-pressed-handle-horizontal-margin: 0;--mat-switch-unselected-handle-horizontal-margin: 0;--mat-switch-unselected-with-icon-handle-horizontal-margin: 0;--mat-switch-unselected-pressed-handle-horizontal-margin: 0;--mat-switch-visible-track-opacity: 1;--mat-switch-hidden-track-opacity: 1;--mat-switch-visible-track-transition: transform 75ms 0ms cubic-bezier(0, 0, .2, 1);--mat-switch-hidden-track-transition: transform 75ms 0ms cubic-bezier(.4, 0, .6, 1);--mat-switch-track-outline-width: 1px;--mat-switch-track-outline-color: transparent;--mat-switch-selected-track-outline-width: 1px;--mat-switch-disabled-unselected-track-outline-width: 1px;--mat-switch-disabled-unselected-track-outline-color: transparent}html{--mdc-switch-selected-focus-state-layer-color: #038ff8;--mdc-switch-selected-handle-color: #038ff8;--mdc-switch-selected-hover-state-layer-color: #038ff8;--mdc-switch-selected-pressed-state-layer-color: #038ff8;--mdc-switch-selected-focus-handle-color: #0368b5;--mdc-switch-selected-hover-handle-color: #0368b5;--mdc-switch-selected-pressed-handle-color: #0368b5;--mdc-switch-selected-focus-track-color: #55b5fc;--mdc-switch-selected-hover-track-color: #55b5fc;--mdc-switch-selected-pressed-track-color: #55b5fc;--mdc-switch-selected-track-color: #55b5fc;--mdc-switch-disabled-selected-handle-color: #424242;--mdc-switch-disabled-selected-icon-color: #fff;--mdc-switch-disabled-selected-track-color: #424242;--mdc-switch-disabled-unselected-handle-color: #424242;--mdc-switch-disabled-unselected-icon-color: #fff;--mdc-switch-disabled-unselected-track-color: #424242;--mdc-switch-handle-surface-color: var(--mdc-theme-surface, #fff);--mdc-switch-handle-elevation-shadow: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mdc-switch-handle-shadow-color: black;--mdc-switch-disabled-handle-elevation-shadow: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mdc-switch-selected-icon-color: #fff;--mdc-switch-unselected-focus-handle-color: #212121;--mdc-switch-unselected-focus-state-layer-color: #424242;--mdc-switch-unselected-focus-track-color: #e0e0e0;--mdc-switch-unselected-handle-color: #616161;--mdc-switch-unselected-hover-handle-color: #212121;--mdc-switch-unselected-hover-state-layer-color: #424242;--mdc-switch-unselected-hover-track-color: #e0e0e0;--mdc-switch-unselected-icon-color: #fff;--mdc-switch-unselected-pressed-handle-color: #212121;--mdc-switch-unselected-pressed-state-layer-color: #424242;--mdc-switch-unselected-pressed-track-color: #e0e0e0;--mdc-switch-unselected-track-color: #e0e0e0;--mdc-switch-disabled-label-text-color: rgba(0, 0, 0, .38)}html .mat-mdc-slide-toggle{--mdc-form-field-label-text-color: rgba(0, 0, 0, .87)}html .mat-mdc-slide-toggle.mat-accent{--mdc-switch-selected-focus-state-layer-color: #038ff8;--mdc-switch-selected-handle-color: #038ff8;--mdc-switch-selected-hover-state-layer-color: #038ff8;--mdc-switch-selected-pressed-state-layer-color: #038ff8;--mdc-switch-selected-focus-handle-color: #0368b5;--mdc-switch-selected-hover-handle-color: #0368b5;--mdc-switch-selected-pressed-handle-color: #0368b5;--mdc-switch-selected-focus-track-color: #55b5fc;--mdc-switch-selected-hover-track-color: #55b5fc;--mdc-switch-selected-pressed-track-color: #55b5fc;--mdc-switch-selected-track-color: #55b5fc}html .mat-mdc-slide-toggle.mat-warn{--mdc-switch-selected-focus-state-layer-color: #e53935;--mdc-switch-selected-handle-color: #e53935;--mdc-switch-selected-hover-state-layer-color: #e53935;--mdc-switch-selected-pressed-state-layer-color: #e53935;--mdc-switch-selected-focus-handle-color: #b71c1c;--mdc-switch-selected-hover-handle-color: #b71c1c;--mdc-switch-selected-pressed-handle-color: #b71c1c;--mdc-switch-selected-focus-track-color: #e57373;--mdc-switch-selected-hover-track-color: #e57373;--mdc-switch-selected-pressed-track-color: #e57373;--mdc-switch-selected-track-color: #e57373}html{--mdc-switch-state-layer-size: 40px}.mat-mdc-menu-content button{margin:unset}.mat-mdc-menu-content .menu-header{font-size:9pt;height:20px;line-height:20px}.mat-mdc-menu-content .mat-mdc-menu-item{font-size:16px}mat-dialog-content mat-form-field{width:100%}mat-dialog-container .cc-dialog.suspicious-metric-dialog .title{font-size:20px;font-weight:700;text-align:center}mat-dialog-container .cc-dialog.suspicious-metric-dialog .info-text{font-size:14px;padding-bottom:0;color:#000}mat-dialog-container mat-dialog-actions{--mdc-filled-button-label-text-color: #1b9cfc;--mdc-text-button-label-text-color: #1b9cfc;--mdc-filled-button-container-color: var(--mdc-filled-text-field-container-color);--mdc-filled-button-disabled-container-color: var(--mdc-filled-text-field-container-color)}*,*:before,*:after{-ms-box-sizing:border-box;-o-box-sizing:border-box;box-sizing:border-box}html,body{overflow-y:hidden;overflow-x:hidden;font-family:Roboto,Helvetica Neue,sans-serif;-webkit-user-select:none;-o-user-select:none;user-select:none;width:100%;height:100%;margin:0;padding:0}button{border:0;margin:6px 8px;cursor:pointer}@font-face{font-family:Material Icons;font-style:normal;font-weight:400;font-display:block;src:url(material-icons.59322316b3fd6063.woff2) format("woff2"),url(material-icons.4ad034d2c499d9b6.woff) format("woff")}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:"liga"}@font-face{font-family:Material Icons Outlined;font-style:normal;font-weight:400;font-display:block;src:url(material-icons-outlined.f86cb7b0aa53f0fe.woff2) format("woff2"),url(material-icons-outlined.78a93b2079680a08.woff) format("woff")}.material-icons-outlined{font-family:Material Icons Outlined;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:"liga"}@font-face{font-family:Material Icons Round;font-style:normal;font-weight:400;font-display:block;src:url(material-icons-round.b10ec9db5b7fbc74.woff2) format("woff2"),url(material-icons-round.92dc7ca2f4c591e7.woff) format("woff")}.material-icons-round{font-family:Material Icons Round;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:"liga"}@font-face{font-family:Material Icons Sharp;font-style:normal;font-weight:400;font-display:block;src:url(material-icons-sharp.3885863ee4746422.woff2) format("woff2"),url(material-icons-sharp.a71cb2bf66c604de.woff) format("woff")}.material-icons-sharp{font-family:Material Icons Sharp;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:"liga"}@font-face{font-family:Material Icons Two Tone;font-style:normal;font-weight:400;font-display:block;src:url(material-icons-two-tone.675bd578bd14533e.woff2) format("woff2"),url(material-icons-two-tone.588d63134de807a7.woff) format("woff")}.material-icons-two-tone{font-family:Material Icons Two Tone;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:"liga"} diff --git a/gh-pages/visualization/app/styles.e0f6aac8213a8ff5.css b/gh-pages/visualization/app/styles.e0f6aac8213a8ff5.css new file mode 100644 index 0000000000..99dc80a746 --- /dev/null +++ b/gh-pages/visualization/app/styles.e0f6aac8213a8ff5.css @@ -0,0 +1,4 @@ +/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:FontAwesome;src:url(fontawesome-webfont.2b13baa7dd4f54c9.eot?v=4.7.0);src:url(fontawesome-webfont.2b13baa7dd4f54c9.eot?#iefix&v=4.7.0) format("embedded-opentype"),url(fontawesome-webfont.e9955780856cf8aa.woff2?v=4.7.0) format("woff2"),url(fontawesome-webfont.cf011583fb81df9f.woff?v=4.7.0) format("woff"),url(fontawesome-webfont.8a7cb27d142e3e19.ttf?v=4.7.0) format("truetype"),url(fontawesome-webfont.da909aa098b0ee2d.svg?v=4.7.0#fontawesomeregular) format("svg");font-weight:400;font-style:normal}.fa{display:inline-block;font: 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eeeeee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{animation:fa-spin 2s infinite linear}.fa-pulse{animation:fa-spin 1s infinite steps(8)}@keyframes fa-spin{0%{transform:rotate(0)}to{transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";transform:scaleX(-1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";transform:scaleY(-1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-vcard:before,.fa-address-card:before{content:"\f2bb"}.fa-vcard-o:before,.fa-address-card-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.mat-ripple{overflow:hidden;position:relative}.mat-ripple:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0,0,.2,1);transform:scale3d(0,0,0);background-color:var(--mat-ripple-color, rgba(0, 0, 0, .1))}.cdk-high-contrast-active .mat-ripple-element{display:none}.cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none;left:0}[dir=rtl] .cdk-visually-hidden{left:auto;right:0}.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop{position:absolute;inset:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:#00000052}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}textarea.cdk-textarea-autosize{resize:none}textarea.cdk-textarea-autosize-measuring{padding:2px 0!important;box-sizing:content-box!important;height:auto!important;overflow:hidden!important}textarea.cdk-textarea-autosize-measuring-firefox{padding:2px 0!important;box-sizing:content-box!important;height:0!important}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}.mat-focus-indicator{position:relative}.mat-focus-indicator:before{inset:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-focus-indicator-display, none);border:var(--mat-focus-indicator-border-width, 3px) var(--mat-focus-indicator-border-style, solid) var(--mat-focus-indicator-border-color, transparent);border-radius:var(--mat-focus-indicator-border-radius, 4px)}.mat-focus-indicator:focus:before{content:""}.cdk-high-contrast-active{--mat-focus-indicator-display: block}.mat-mdc-focus-indicator{position:relative}.mat-mdc-focus-indicator:before{inset:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-mdc-focus-indicator-display, none);border:var(--mat-mdc-focus-indicator-border-width, 3px) var(--mat-mdc-focus-indicator-border-style, solid) var(--mat-mdc-focus-indicator-border-color, transparent);border-radius:var(--mat-mdc-focus-indicator-border-radius, 4px)}.mat-mdc-focus-indicator:focus:before{content:""}.cdk-high-contrast-active{--mat-mdc-focus-indicator-display: block}.mat-app-background{background-color:var(--mat-app-background-color, transparent);color:var(--mat-app-text-color, inherit)}:root{--mat-dialog-container-min-width: 500px;--mat-dialog-actions-alignment: flex-end;--mat-toolbar-container-background-color: #1b9cfc;--mat-toolbar-container-text-color: #fff;--mat-text-button-horizontal-padding: 8px}:root .mat-mdc-checkbox.mat-accent{--mdc-checkbox-selected-checkmark-color: #fff !important}html{--mat-ripple-color: rgba(0, 0, 0, .1)}html,.mat-accent{--mat-option-selected-state-label-text-color: #1b9cfc;--mat-option-label-text-color: rgba(0, 0, 0, .87);--mat-option-hover-state-layer-color: rgba(0, 0, 0, .04);--mat-option-focus-state-layer-color: rgba(0, 0, 0, .04);--mat-option-selected-state-layer-color: rgba(0, 0, 0, .04)}.mat-warn{--mat-option-selected-state-label-text-color: #f44336;--mat-option-label-text-color: rgba(0, 0, 0, .87);--mat-option-hover-state-layer-color: rgba(0, 0, 0, .04);--mat-option-focus-state-layer-color: rgba(0, 0, 0, .04);--mat-option-selected-state-layer-color: rgba(0, 0, 0, .04)}html{--mat-optgroup-label-text-color: rgba(0, 0, 0, .87)}.mat-primary,html,.mat-accent{--mat-full-pseudo-checkbox-selected-icon-color: #1b9cfc;--mat-full-pseudo-checkbox-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-full-pseudo-checkbox-disabled-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-disabled-unselected-icon-color: #b0b0b0;--mat-full-pseudo-checkbox-disabled-selected-icon-color: #b0b0b0;--mat-minimal-pseudo-checkbox-selected-checkmark-color: #1b9cfc;--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: #b0b0b0}.mat-warn{--mat-full-pseudo-checkbox-selected-icon-color: #f44336;--mat-full-pseudo-checkbox-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-full-pseudo-checkbox-disabled-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-disabled-unselected-icon-color: #b0b0b0;--mat-full-pseudo-checkbox-disabled-selected-icon-color: #b0b0b0;--mat-minimal-pseudo-checkbox-selected-checkmark-color: #f44336;--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: #b0b0b0}html{--mat-app-background-color: #fafafa;--mat-app-text-color: rgba(0, 0, 0, .87)}.mat-elevation-z0,.mat-mdc-elevation-specific.mat-elevation-z0{box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.mat-elevation-z1,.mat-mdc-elevation-specific.mat-elevation-z1{box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f}.mat-elevation-z2,.mat-mdc-elevation-specific.mat-elevation-z2{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.mat-elevation-z3,.mat-mdc-elevation-specific.mat-elevation-z3{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}.mat-elevation-z4,.mat-mdc-elevation-specific.mat-elevation-z4{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.mat-elevation-z5,.mat-mdc-elevation-specific.mat-elevation-z5{box-shadow:0 3px 5px -1px #0003,0 5px 8px #00000024,0 1px 14px #0000001f}.mat-elevation-z6,.mat-mdc-elevation-specific.mat-elevation-z6{box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.mat-elevation-z7,.mat-mdc-elevation-specific.mat-elevation-z7{box-shadow:0 4px 5px -2px #0003,0 7px 10px 1px #00000024,0 2px 16px 1px #0000001f}.mat-elevation-z8,.mat-mdc-elevation-specific.mat-elevation-z8{box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.mat-elevation-z9,.mat-mdc-elevation-specific.mat-elevation-z9{box-shadow:0 5px 6px -3px #0003,0 9px 12px 1px #00000024,0 3px 16px 2px #0000001f}.mat-elevation-z10,.mat-mdc-elevation-specific.mat-elevation-z10{box-shadow:0 6px 6px -3px #0003,0 10px 14px 1px #00000024,0 4px 18px 3px #0000001f}.mat-elevation-z11,.mat-mdc-elevation-specific.mat-elevation-z11{box-shadow:0 6px 7px -4px #0003,0 11px 15px 1px #00000024,0 4px 20px 3px #0000001f}.mat-elevation-z12,.mat-mdc-elevation-specific.mat-elevation-z12{box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.mat-elevation-z13,.mat-mdc-elevation-specific.mat-elevation-z13{box-shadow:0 7px 8px -4px #0003,0 13px 19px 2px #00000024,0 5px 24px 4px #0000001f}.mat-elevation-z14,.mat-mdc-elevation-specific.mat-elevation-z14{box-shadow:0 7px 9px -4px #0003,0 14px 21px 2px #00000024,0 5px 26px 4px #0000001f}.mat-elevation-z15,.mat-mdc-elevation-specific.mat-elevation-z15{box-shadow:0 8px 9px -5px #0003,0 15px 22px 2px #00000024,0 6px 28px 5px #0000001f}.mat-elevation-z16,.mat-mdc-elevation-specific.mat-elevation-z16{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.mat-elevation-z17,.mat-mdc-elevation-specific.mat-elevation-z17{box-shadow:0 8px 11px -5px #0003,0 17px 26px 2px #00000024,0 6px 32px 5px #0000001f}.mat-elevation-z18,.mat-mdc-elevation-specific.mat-elevation-z18{box-shadow:0 9px 11px -5px #0003,0 18px 28px 2px #00000024,0 7px 34px 6px #0000001f}.mat-elevation-z19,.mat-mdc-elevation-specific.mat-elevation-z19{box-shadow:0 9px 12px -6px #0003,0 19px 29px 2px #00000024,0 7px 36px 6px #0000001f}.mat-elevation-z20,.mat-mdc-elevation-specific.mat-elevation-z20{box-shadow:0 10px 13px -6px #0003,0 20px 31px 3px #00000024,0 8px 38px 7px #0000001f}.mat-elevation-z21,.mat-mdc-elevation-specific.mat-elevation-z21{box-shadow:0 10px 13px -6px #0003,0 21px 33px 3px #00000024,0 8px 40px 7px #0000001f}.mat-elevation-z22,.mat-mdc-elevation-specific.mat-elevation-z22{box-shadow:0 10px 14px -6px #0003,0 22px 35px 3px #00000024,0 8px 42px 7px #0000001f}.mat-elevation-z23,.mat-mdc-elevation-specific.mat-elevation-z23{box-shadow:0 11px 14px -7px #0003,0 23px 36px 3px #00000024,0 9px 44px 8px #0000001f}.mat-elevation-z24,.mat-mdc-elevation-specific.mat-elevation-z24{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.mat-theme-loaded-marker{display:none}html{--mdc-text-button-container-shape: 4px;--mdc-text-button-keep-touch-target: false;--mdc-filled-button-container-shape: 4px;--mdc-filled-button-keep-touch-target: false;--mdc-protected-button-container-shape: 4px;--mdc-protected-button-keep-touch-target: false;--mdc-outlined-button-keep-touch-target: false;--mdc-outlined-button-outline-width: 1px;--mdc-outlined-button-container-shape: 4px;--mat-text-button-horizontal-padding: 8px;--mat-text-button-with-icon-horizontal-padding: 8px;--mat-text-button-icon-spacing: 8px;--mat-text-button-icon-offset: 0;--mat-filled-button-horizontal-padding: 16px;--mat-filled-button-icon-spacing: 8px;--mat-filled-button-icon-offset: -4px;--mat-protected-button-horizontal-padding: 16px;--mat-protected-button-icon-spacing: 8px;--mat-protected-button-icon-offset: -4px;--mat-outlined-button-horizontal-padding: 15px;--mat-outlined-button-icon-spacing: 8px;--mat-outlined-button-icon-offset: -4px}html{--mdc-text-button-label-text-color: black;--mdc-text-button-disabled-label-text-color: rgba(0, 0, 0, .38);--mat-text-button-state-layer-color: black;--mat-text-button-disabled-state-layer-color: black;--mat-text-button-ripple-color: rgba(0, 0, 0, .1);--mat-text-button-hover-state-layer-opacity: .04;--mat-text-button-focus-state-layer-opacity: .12;--mat-text-button-pressed-state-layer-opacity: .12;--mdc-filled-button-container-color: white;--mdc-filled-button-label-text-color: black;--mdc-filled-button-disabled-container-color: rgba(0, 0, 0, .12);--mdc-filled-button-disabled-label-text-color: rgba(0, 0, 0, .38);--mat-filled-button-state-layer-color: black;--mat-filled-button-disabled-state-layer-color: black;--mat-filled-button-ripple-color: rgba(0, 0, 0, .1);--mat-filled-button-hover-state-layer-opacity: .04;--mat-filled-button-focus-state-layer-opacity: .12;--mat-filled-button-pressed-state-layer-opacity: .12;--mdc-protected-button-container-color: white;--mdc-protected-button-label-text-color: black;--mdc-protected-button-disabled-container-color: rgba(0, 0, 0, .12);--mdc-protected-button-disabled-label-text-color: rgba(0, 0, 0, .38);--mdc-protected-button-container-elevation-shadow: 0px 3px 1px -2px rgba(0, 0, 0, .2), 0px 2px 2px 0px rgba(0, 0, 0, .14), 0px 1px 5px 0px rgba(0, 0, 0, .12);--mdc-protected-button-disabled-container-elevation-shadow: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mdc-protected-button-focus-container-elevation-shadow: 0px 2px 4px -1px rgba(0, 0, 0, .2), 0px 4px 5px 0px rgba(0, 0, 0, .14), 0px 1px 10px 0px rgba(0, 0, 0, .12);--mdc-protected-button-hover-container-elevation-shadow: 0px 2px 4px -1px rgba(0, 0, 0, .2), 0px 4px 5px 0px rgba(0, 0, 0, .14), 0px 1px 10px 0px rgba(0, 0, 0, .12);--mdc-protected-button-pressed-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mdc-protected-button-container-shadow-color: #000;--mat-protected-button-state-layer-color: black;--mat-protected-button-disabled-state-layer-color: black;--mat-protected-button-ripple-color: rgba(0, 0, 0, .1);--mat-protected-button-hover-state-layer-opacity: .04;--mat-protected-button-focus-state-layer-opacity: .12;--mat-protected-button-pressed-state-layer-opacity: .12;--mdc-outlined-button-disabled-outline-color: rgba(0, 0, 0, .12);--mdc-outlined-button-disabled-label-text-color: rgba(0, 0, 0, .38);--mdc-outlined-button-label-text-color: black;--mdc-outlined-button-outline-color: rgba(0, 0, 0, .12);--mat-outlined-button-state-layer-color: black;--mat-outlined-button-disabled-state-layer-color: black;--mat-outlined-button-ripple-color: rgba(0, 0, 0, .1);--mat-outlined-button-hover-state-layer-opacity: .04;--mat-outlined-button-focus-state-layer-opacity: .12;--mat-outlined-button-pressed-state-layer-opacity: .12}.mat-mdc-button.mat-primary,.mat-mdc-button.mat-accent{--mdc-text-button-label-text-color: #1b9cfc;--mat-text-button-state-layer-color: #1b9cfc;--mat-text-button-ripple-color: rgba(27, 156, 252, .1)}.mat-mdc-button.mat-warn{--mdc-text-button-label-text-color: #f44336;--mat-text-button-state-layer-color: #f44336;--mat-text-button-ripple-color: rgba(244, 67, 54, .1)}.mat-mdc-unelevated-button.mat-primary,.mat-mdc-unelevated-button.mat-accent{--mdc-filled-button-container-color: #1b9cfc;--mdc-filled-button-label-text-color: white;--mat-filled-button-state-layer-color: white;--mat-filled-button-ripple-color: rgba(255, 255, 255, .1)}.mat-mdc-unelevated-button.mat-warn{--mdc-filled-button-container-color: #f44336;--mdc-filled-button-label-text-color: white;--mat-filled-button-state-layer-color: white;--mat-filled-button-ripple-color: rgba(255, 255, 255, .1)}.mat-mdc-raised-button.mat-primary,.mat-mdc-raised-button.mat-accent{--mdc-protected-button-container-color: #1b9cfc;--mdc-protected-button-label-text-color: white;--mat-protected-button-state-layer-color: white;--mat-protected-button-ripple-color: rgba(255, 255, 255, .1)}.mat-mdc-raised-button.mat-warn{--mdc-protected-button-container-color: #f44336;--mdc-protected-button-label-text-color: white;--mat-protected-button-state-layer-color: white;--mat-protected-button-ripple-color: rgba(255, 255, 255, .1)}.mat-mdc-outlined-button.mat-primary,.mat-mdc-outlined-button.mat-accent{--mdc-outlined-button-label-text-color: #1b9cfc;--mdc-outlined-button-outline-color: rgba(0, 0, 0, .12);--mat-outlined-button-state-layer-color: #1b9cfc;--mat-outlined-button-ripple-color: rgba(27, 156, 252, .1)}.mat-mdc-outlined-button.mat-warn{--mdc-outlined-button-label-text-color: #f44336;--mdc-outlined-button-outline-color: rgba(0, 0, 0, .12);--mat-outlined-button-state-layer-color: #f44336;--mat-outlined-button-ripple-color: rgba(244, 67, 54, .1)}html{--mdc-text-button-container-height: 36px;--mdc-filled-button-container-height: 36px;--mdc-outlined-button-container-height: 36px;--mdc-protected-button-container-height: 36px;--mat-text-button-touch-target-display: block;--mat-filled-button-touch-target-display: block;--mat-protected-button-touch-target-display: block;--mat-outlined-button-touch-target-display: block}html{--mat-legacy-button-toggle-height: 36px;--mat-legacy-button-toggle-shape: 2px;--mat-legacy-button-toggle-focus-state-layer-opacity: 1;--mat-standard-button-toggle-shape: 4px;--mat-standard-button-toggle-hover-state-layer-opacity: .04;--mat-standard-button-toggle-focus-state-layer-opacity: .12}html{--mat-legacy-button-toggle-text-color: rgba(0, 0, 0, .38);--mat-legacy-button-toggle-state-layer-color: rgba(0, 0, 0, .12);--mat-legacy-button-toggle-selected-state-text-color: rgba(0, 0, 0, .54);--mat-legacy-button-toggle-selected-state-background-color: #e0e0e0;--mat-legacy-button-toggle-disabled-state-text-color: rgba(0, 0, 0, .26);--mat-legacy-button-toggle-disabled-state-background-color: #eeeeee;--mat-legacy-button-toggle-disabled-selected-state-background-color: #bdbdbd;--mat-standard-button-toggle-text-color: rgba(0, 0, 0, .87);--mat-standard-button-toggle-background-color: white;--mat-standard-button-toggle-state-layer-color: black;--mat-standard-button-toggle-selected-state-background-color: #e0e0e0;--mat-standard-button-toggle-selected-state-text-color: rgba(0, 0, 0, .87);--mat-standard-button-toggle-disabled-state-text-color: rgba(0, 0, 0, .26);--mat-standard-button-toggle-disabled-state-background-color: white;--mat-standard-button-toggle-disabled-selected-state-text-color: rgba(0, 0, 0, .87);--mat-standard-button-toggle-disabled-selected-state-background-color: #bdbdbd;--mat-standard-button-toggle-divider-color: #e0e0e0}html{--mat-standard-button-toggle-height: 48px}html{--mdc-circular-progress-active-indicator-width: 4px;--mdc-circular-progress-size: 48px}html,html .mat-accent{--mdc-circular-progress-active-indicator-color: #1b9cfc}html .mat-warn{--mdc-circular-progress-active-indicator-color: #f44336}html{--mdc-elevated-card-container-shape: 4px;--mdc-outlined-card-container-shape: 4px;--mdc-outlined-card-outline-width: 1px}html{--mdc-elevated-card-container-color: white;--mdc-elevated-card-container-elevation: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mdc-outlined-card-container-color: white;--mdc-outlined-card-outline-color: rgba(0, 0, 0, .12);--mdc-outlined-card-container-elevation: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-card-subtitle-text-color: rgba(0, 0, 0, .54)}html{--mat-select-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12)}html,html .mat-mdc-form-field.mat-accent{--mat-select-panel-background-color: white;--mat-select-enabled-trigger-text-color: rgba(0, 0, 0, .87);--mat-select-disabled-trigger-text-color: rgba(0, 0, 0, .38);--mat-select-placeholder-text-color: rgba(0, 0, 0, .6);--mat-select-enabled-arrow-color: rgba(0, 0, 0, .54);--mat-select-disabled-arrow-color: rgba(0, 0, 0, .38);--mat-select-focused-arrow-color: rgba(27, 156, 252, .87);--mat-select-invalid-arrow-color: rgba(244, 67, 54, .87)}html .mat-mdc-form-field.mat-warn{--mat-select-panel-background-color: white;--mat-select-enabled-trigger-text-color: rgba(0, 0, 0, .87);--mat-select-disabled-trigger-text-color: rgba(0, 0, 0, .38);--mat-select-placeholder-text-color: rgba(0, 0, 0, .6);--mat-select-enabled-arrow-color: rgba(0, 0, 0, .54);--mat-select-disabled-arrow-color: rgba(0, 0, 0, .38);--mat-select-focused-arrow-color: rgba(244, 67, 54, .87);--mat-select-invalid-arrow-color: rgba(244, 67, 54, .87)}html{--mat-select-arrow-transform: translateY(-8px)}html{--mat-menu-container-shape: 4px;--mat-menu-divider-bottom-spacing: 0;--mat-menu-divider-top-spacing: 0;--mat-menu-item-spacing: 16px;--mat-menu-item-icon-size: 24px;--mat-menu-item-leading-spacing: 16px;--mat-menu-item-trailing-spacing: 16px;--mat-menu-item-with-icon-leading-spacing: 16px;--mat-menu-item-with-icon-trailing-spacing: 16px}html{--mat-menu-item-label-text-color: rgba(0, 0, 0, .87);--mat-menu-item-icon-color: rgba(0, 0, 0, .87);--mat-menu-item-hover-state-layer-color: rgba(0, 0, 0, .04);--mat-menu-item-focus-state-layer-color: rgba(0, 0, 0, .04);--mat-menu-container-color: white;--mat-menu-divider-color: rgba(0, 0, 0, .12)}html{--mdc-dialog-container-elevation-shadow: 0px 11px 15px -7px rgba(0, 0, 0, .2), 0px 24px 38px 3px rgba(0, 0, 0, .14), 0px 9px 46px 8px rgba(0, 0, 0, .12);--mdc-dialog-container-shadow-color: #000;--mdc-dialog-container-shape: 4px;--mat-dialog-container-max-width: 80vw;--mat-dialog-container-small-max-width: 80vw;--mat-dialog-container-min-width: 0;--mat-dialog-actions-alignment: start;--mat-dialog-actions-padding: 8px;--mat-dialog-content-padding: 20px 24px;--mat-dialog-with-actions-content-padding: 20px 24px;--mat-dialog-headline-padding: 0 24px 9px}html{--mdc-dialog-container-color: white;--mdc-dialog-subhead-color: rgba(0, 0, 0, .87);--mdc-dialog-supporting-text-color: rgba(0, 0, 0, .6)}html{--mdc-plain-tooltip-container-shape: 4px;--mdc-plain-tooltip-supporting-text-line-height: 16px}html{--mdc-plain-tooltip-container-color: #616161;--mdc-plain-tooltip-supporting-text-color: #fff}html{--mdc-checkbox-disabled-selected-checkmark-color: #fff;--mdc-checkbox-selected-focus-state-layer-opacity: .16;--mdc-checkbox-selected-hover-state-layer-opacity: .04;--mdc-checkbox-selected-pressed-state-layer-opacity: .16;--mdc-checkbox-unselected-focus-state-layer-opacity: .16;--mdc-checkbox-unselected-hover-state-layer-opacity: .04;--mdc-checkbox-unselected-pressed-state-layer-opacity: .16}html{--mdc-checkbox-disabled-selected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-disabled-unselected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-selected-checkmark-color: white;--mdc-checkbox-selected-focus-icon-color: #1b9cfc;--mdc-checkbox-selected-hover-icon-color: #1b9cfc;--mdc-checkbox-selected-icon-color: #1b9cfc;--mdc-checkbox-selected-pressed-icon-color: #1b9cfc;--mdc-checkbox-unselected-focus-icon-color: #212121;--mdc-checkbox-unselected-hover-icon-color: #212121;--mdc-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-unselected-pressed-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-selected-focus-state-layer-color: #1b9cfc;--mdc-checkbox-selected-hover-state-layer-color: #1b9cfc;--mdc-checkbox-selected-pressed-state-layer-color: #1b9cfc;--mdc-checkbox-unselected-focus-state-layer-color: black;--mdc-checkbox-unselected-hover-state-layer-color: black;--mdc-checkbox-unselected-pressed-state-layer-color: black;--mat-checkbox-disabled-label-color: rgba(0, 0, 0, .38)}.mat-mdc-checkbox{--mdc-form-field-label-text-color: rgba(0, 0, 0, .87)}.mat-mdc-checkbox.mat-primary{--mdc-checkbox-disabled-selected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-disabled-unselected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-selected-checkmark-color: white;--mdc-checkbox-selected-focus-icon-color: #1b9cfc;--mdc-checkbox-selected-hover-icon-color: #1b9cfc;--mdc-checkbox-selected-icon-color: #1b9cfc;--mdc-checkbox-selected-pressed-icon-color: #1b9cfc;--mdc-checkbox-unselected-focus-icon-color: #212121;--mdc-checkbox-unselected-hover-icon-color: #212121;--mdc-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-unselected-pressed-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-selected-focus-state-layer-color: #1b9cfc;--mdc-checkbox-selected-hover-state-layer-color: #1b9cfc;--mdc-checkbox-selected-pressed-state-layer-color: #1b9cfc;--mdc-checkbox-unselected-focus-state-layer-color: black;--mdc-checkbox-unselected-hover-state-layer-color: black;--mdc-checkbox-unselected-pressed-state-layer-color: black}.mat-mdc-checkbox.mat-warn{--mdc-checkbox-disabled-selected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-disabled-unselected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-selected-checkmark-color: white;--mdc-checkbox-selected-focus-icon-color: #f44336;--mdc-checkbox-selected-hover-icon-color: #f44336;--mdc-checkbox-selected-icon-color: #f44336;--mdc-checkbox-selected-pressed-icon-color: #f44336;--mdc-checkbox-unselected-focus-icon-color: #212121;--mdc-checkbox-unselected-hover-icon-color: #212121;--mdc-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-unselected-pressed-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-selected-focus-state-layer-color: #f44336;--mdc-checkbox-selected-hover-state-layer-color: #f44336;--mdc-checkbox-selected-pressed-state-layer-color: #f44336;--mdc-checkbox-unselected-focus-state-layer-color: black;--mdc-checkbox-unselected-hover-state-layer-color: black;--mdc-checkbox-unselected-pressed-state-layer-color: black}html{--mdc-checkbox-state-layer-size: 40px;--mat-checkbox-touch-target-display: block}html{--mat-toolbar-container-background-color: whitesmoke;--mat-toolbar-container-text-color: rgba(0, 0, 0, .87)}.mat-toolbar.mat-primary,.mat-toolbar.mat-accent{--mat-toolbar-container-background-color: #1b9cfc;--mat-toolbar-container-text-color: white}.mat-toolbar.mat-warn{--mat-toolbar-container-background-color: #f44336;--mat-toolbar-container-text-color: white}html{--mat-toolbar-standard-height: 64px;--mat-toolbar-mobile-height: 56px}html{--mdc-filled-text-field-active-indicator-height: 1px;--mdc-filled-text-field-focus-active-indicator-height: 2px;--mdc-filled-text-field-container-shape: 4px;--mdc-outlined-text-field-outline-width: 1px;--mdc-outlined-text-field-focus-outline-width: 2px;--mdc-outlined-text-field-container-shape: 4px}html{--mdc-filled-text-field-caret-color: #1b9cfc;--mdc-filled-text-field-focus-active-indicator-color: #1b9cfc;--mdc-filled-text-field-focus-label-text-color: rgba(27, 156, 252, .87);--mdc-filled-text-field-container-color: whitesmoke;--mdc-filled-text-field-disabled-container-color: #fafafa;--mdc-filled-text-field-label-text-color: rgba(0, 0, 0, .6);--mdc-filled-text-field-hover-label-text-color: rgba(0, 0, 0, .6);--mdc-filled-text-field-disabled-label-text-color: rgba(0, 0, 0, .38);--mdc-filled-text-field-input-text-color: rgba(0, 0, 0, .87);--mdc-filled-text-field-disabled-input-text-color: rgba(0, 0, 0, .38);--mdc-filled-text-field-input-text-placeholder-color: rgba(0, 0, 0, .6);--mdc-filled-text-field-error-hover-label-text-color: #f44336;--mdc-filled-text-field-error-focus-label-text-color: #f44336;--mdc-filled-text-field-error-label-text-color: #f44336;--mdc-filled-text-field-error-caret-color: #f44336;--mdc-filled-text-field-active-indicator-color: rgba(0, 0, 0, .42);--mdc-filled-text-field-disabled-active-indicator-color: rgba(0, 0, 0, .06);--mdc-filled-text-field-hover-active-indicator-color: rgba(0, 0, 0, .87);--mdc-filled-text-field-error-active-indicator-color: #f44336;--mdc-filled-text-field-error-focus-active-indicator-color: #f44336;--mdc-filled-text-field-error-hover-active-indicator-color: #f44336;--mdc-outlined-text-field-caret-color: #1b9cfc;--mdc-outlined-text-field-focus-outline-color: #1b9cfc;--mdc-outlined-text-field-focus-label-text-color: rgba(27, 156, 252, .87);--mdc-outlined-text-field-label-text-color: rgba(0, 0, 0, .6);--mdc-outlined-text-field-hover-label-text-color: rgba(0, 0, 0, .6);--mdc-outlined-text-field-disabled-label-text-color: rgba(0, 0, 0, .38);--mdc-outlined-text-field-input-text-color: rgba(0, 0, 0, .87);--mdc-outlined-text-field-disabled-input-text-color: rgba(0, 0, 0, .38);--mdc-outlined-text-field-input-text-placeholder-color: rgba(0, 0, 0, .6);--mdc-outlined-text-field-error-caret-color: #f44336;--mdc-outlined-text-field-error-focus-label-text-color: #f44336;--mdc-outlined-text-field-error-label-text-color: #f44336;--mdc-outlined-text-field-error-hover-label-text-color: #f44336;--mdc-outlined-text-field-outline-color: rgba(0, 0, 0, .38);--mdc-outlined-text-field-disabled-outline-color: rgba(0, 0, 0, .06);--mdc-outlined-text-field-hover-outline-color: rgba(0, 0, 0, .87);--mdc-outlined-text-field-error-focus-outline-color: #f44336;--mdc-outlined-text-field-error-hover-outline-color: #f44336;--mdc-outlined-text-field-error-outline-color: #f44336;--mat-form-field-focus-select-arrow-color: rgba(27, 156, 252, .87);--mat-form-field-disabled-input-text-placeholder-color: rgba(0, 0, 0, .38);--mat-form-field-state-layer-color: rgba(0, 0, 0, .87);--mat-form-field-error-text-color: #f44336;--mat-form-field-select-option-text-color: inherit;--mat-form-field-select-disabled-option-text-color: GrayText;--mat-form-field-leading-icon-color: unset;--mat-form-field-disabled-leading-icon-color: unset;--mat-form-field-trailing-icon-color: unset;--mat-form-field-disabled-trailing-icon-color: unset;--mat-form-field-error-focus-trailing-icon-color: unset;--mat-form-field-error-hover-trailing-icon-color: unset;--mat-form-field-error-trailing-icon-color: unset;--mat-form-field-enabled-select-arrow-color: rgba(0, 0, 0, .54);--mat-form-field-disabled-select-arrow-color: rgba(0, 0, 0, .38);--mat-form-field-hover-state-layer-opacity: .04;--mat-form-field-focus-state-layer-opacity: .08}.mat-mdc-form-field.mat-accent{--mdc-filled-text-field-caret-color: #1b9cfc;--mdc-filled-text-field-focus-active-indicator-color: #1b9cfc;--mdc-filled-text-field-focus-label-text-color: rgba(27, 156, 252, .87);--mdc-outlined-text-field-caret-color: #1b9cfc;--mdc-outlined-text-field-focus-outline-color: #1b9cfc;--mdc-outlined-text-field-focus-label-text-color: rgba(27, 156, 252, .87);--mat-form-field-focus-select-arrow-color: rgba(27, 156, 252, .87)}.mat-mdc-form-field.mat-warn{--mdc-filled-text-field-caret-color: #f44336;--mdc-filled-text-field-focus-active-indicator-color: #f44336;--mdc-filled-text-field-focus-label-text-color: rgba(244, 67, 54, .87);--mdc-outlined-text-field-caret-color: #f44336;--mdc-outlined-text-field-focus-outline-color: #f44336;--mdc-outlined-text-field-focus-label-text-color: rgba(244, 67, 54, .87);--mat-form-field-focus-select-arrow-color: rgba(244, 67, 54, .87)}html{--mat-form-field-container-height: 56px;--mat-form-field-filled-label-display: block;--mat-form-field-container-vertical-padding: 16px;--mat-form-field-filled-with-label-container-padding-top: 24px;--mat-form-field-filled-with-label-container-padding-bottom: 8px}html{--mdc-list-list-item-container-shape: 0;--mdc-list-list-item-leading-avatar-shape: 50%;--mdc-list-list-item-container-color: transparent;--mdc-list-list-item-selected-container-color: transparent;--mdc-list-list-item-leading-avatar-color: transparent;--mdc-list-list-item-leading-icon-size: 24px;--mdc-list-list-item-leading-avatar-size: 40px;--mdc-list-list-item-trailing-icon-size: 24px;--mdc-list-list-item-disabled-state-layer-color: transparent;--mdc-list-list-item-disabled-state-layer-opacity: 0;--mdc-list-list-item-disabled-label-text-opacity: .38;--mdc-list-list-item-disabled-leading-icon-opacity: .38;--mdc-list-list-item-disabled-trailing-icon-opacity: .38;--mat-list-active-indicator-color: transparent;--mat-list-active-indicator-shape: 0}html{--mdc-list-list-item-label-text-color: rgba(0, 0, 0, .87);--mdc-list-list-item-supporting-text-color: rgba(0, 0, 0, .54);--mdc-list-list-item-leading-icon-color: rgba(0, 0, 0, .38);--mdc-list-list-item-trailing-supporting-text-color: rgba(0, 0, 0, .38);--mdc-list-list-item-trailing-icon-color: rgba(0, 0, 0, .38);--mdc-list-list-item-selected-trailing-icon-color: rgba(0, 0, 0, .38);--mdc-list-list-item-disabled-label-text-color: black;--mdc-list-list-item-disabled-leading-icon-color: black;--mdc-list-list-item-disabled-trailing-icon-color: black;--mdc-list-list-item-hover-label-text-color: rgba(0, 0, 0, .87);--mdc-list-list-item-hover-leading-icon-color: rgba(0, 0, 0, .38);--mdc-list-list-item-hover-trailing-icon-color: rgba(0, 0, 0, .38);--mdc-list-list-item-focus-label-text-color: rgba(0, 0, 0, .87);--mdc-list-list-item-hover-state-layer-color: black;--mdc-list-list-item-hover-state-layer-opacity: .04;--mdc-list-list-item-focus-state-layer-color: black;--mdc-list-list-item-focus-state-layer-opacity: .12}.mdc-list-item__start,.mdc-list-item__end,.mat-accent .mdc-list-item__start,.mat-accent .mdc-list-item__end{--mdc-radio-disabled-selected-icon-color: black;--mdc-radio-disabled-unselected-icon-color: black;--mdc-radio-unselected-hover-icon-color: #212121;--mdc-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .54);--mdc-radio-selected-focus-icon-color: #1b9cfc;--mdc-radio-selected-hover-icon-color: #1b9cfc;--mdc-radio-selected-icon-color: #1b9cfc;--mdc-radio-selected-pressed-icon-color: #1b9cfc}.mat-warn .mdc-list-item__start,.mat-warn .mdc-list-item__end{--mdc-radio-disabled-selected-icon-color: black;--mdc-radio-disabled-unselected-icon-color: black;--mdc-radio-unselected-hover-icon-color: #212121;--mdc-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .54);--mdc-radio-selected-focus-icon-color: #f44336;--mdc-radio-selected-hover-icon-color: #f44336;--mdc-radio-selected-icon-color: #f44336;--mdc-radio-selected-pressed-icon-color: #f44336}.mat-mdc-list-option,.mat-mdc-list-option.mat-accent{--mdc-checkbox-disabled-selected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-disabled-unselected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-selected-checkmark-color: white;--mdc-checkbox-selected-focus-icon-color: #1b9cfc;--mdc-checkbox-selected-hover-icon-color: #1b9cfc;--mdc-checkbox-selected-icon-color: #1b9cfc;--mdc-checkbox-selected-pressed-icon-color: #1b9cfc;--mdc-checkbox-unselected-focus-icon-color: #212121;--mdc-checkbox-unselected-hover-icon-color: #212121;--mdc-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-unselected-pressed-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-selected-focus-state-layer-color: #1b9cfc;--mdc-checkbox-selected-hover-state-layer-color: #1b9cfc;--mdc-checkbox-selected-pressed-state-layer-color: #1b9cfc;--mdc-checkbox-unselected-focus-state-layer-color: black;--mdc-checkbox-unselected-hover-state-layer-color: black;--mdc-checkbox-unselected-pressed-state-layer-color: black}.mat-mdc-list-option.mat-warn{--mdc-checkbox-disabled-selected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-disabled-unselected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-selected-checkmark-color: white;--mdc-checkbox-selected-focus-icon-color: #f44336;--mdc-checkbox-selected-hover-icon-color: #f44336;--mdc-checkbox-selected-icon-color: #f44336;--mdc-checkbox-selected-pressed-icon-color: #f44336;--mdc-checkbox-unselected-focus-icon-color: #212121;--mdc-checkbox-unselected-hover-icon-color: #212121;--mdc-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-unselected-pressed-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-selected-focus-state-layer-color: #f44336;--mdc-checkbox-selected-hover-state-layer-color: #f44336;--mdc-checkbox-selected-pressed-state-layer-color: #f44336;--mdc-checkbox-unselected-focus-state-layer-color: black;--mdc-checkbox-unselected-hover-state-layer-color: black;--mdc-checkbox-unselected-pressed-state-layer-color: black}.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--selected .mdc-list-item__primary-text,.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--activated .mdc-list-item__primary-text,.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--selected.mdc-list-item--with-leading-icon .mdc-list-item__start,.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--activated.mdc-list-item--with-leading-icon .mdc-list-item__start{color:#1b9cfc}.mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__start,.mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__content,.mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__end{opacity:1}html{--mdc-list-list-item-one-line-container-height: 48px;--mdc-list-list-item-two-line-container-height: 64px;--mdc-list-list-item-three-line-container-height: 88px;--mat-list-list-item-leading-icon-start-space: 16px;--mat-list-list-item-leading-icon-end-space: 32px}.mdc-list-item__start,.mdc-list-item__end{--mdc-radio-state-layer-size: 40px}.mat-mdc-list-item.mdc-list-item--with-leading-avatar.mdc-list-item--with-one-line,.mat-mdc-list-item.mdc-list-item--with-leading-checkbox.mdc-list-item--with-one-line,.mat-mdc-list-item.mdc-list-item--with-leading-icon.mdc-list-item--with-one-line{height:56px}.mat-mdc-list-item.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines,.mat-mdc-list-item.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines,.mat-mdc-list-item.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines{height:72px}html{--mat-divider-width: 1px}html{--mat-divider-color: rgba(0, 0, 0, .12)}html{--mat-slider-value-indicator-width: auto;--mat-slider-value-indicator-height: 32px;--mat-slider-value-indicator-caret-display: block;--mat-slider-value-indicator-border-radius: 4px;--mat-slider-value-indicator-padding: 0 12px;--mat-slider-value-indicator-text-transform: none;--mat-slider-value-indicator-container-transform: translateX(-50%);--mdc-slider-active-track-height: 6px;--mdc-slider-active-track-shape: 9999px;--mdc-slider-handle-height: 20px;--mdc-slider-handle-shape: 50%;--mdc-slider-handle-width: 20px;--mdc-slider-inactive-track-height: 4px;--mdc-slider-inactive-track-shape: 9999px;--mdc-slider-with-overlap-handle-outline-width: 1px;--mdc-slider-with-tick-marks-active-container-opacity: .6;--mdc-slider-with-tick-marks-container-shape: 50%;--mdc-slider-with-tick-marks-container-size: 2px;--mdc-slider-with-tick-marks-inactive-container-opacity: .6}html{--mdc-slider-handle-color: #1b9cfc;--mdc-slider-focus-handle-color: #1b9cfc;--mdc-slider-hover-handle-color: #1b9cfc;--mdc-slider-active-track-color: #1b9cfc;--mdc-slider-inactive-track-color: #1b9cfc;--mdc-slider-with-tick-marks-inactive-container-color: #1b9cfc;--mdc-slider-with-tick-marks-active-container-color: white;--mdc-slider-disabled-active-track-color: #000;--mdc-slider-disabled-handle-color: #000;--mdc-slider-disabled-inactive-track-color: #000;--mdc-slider-label-container-color: #000;--mdc-slider-label-label-text-color: #fff;--mdc-slider-with-overlap-handle-outline-color: #fff;--mdc-slider-with-tick-marks-disabled-container-color: #000;--mdc-slider-handle-elevation: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-slider-ripple-color: #1b9cfc;--mat-slider-hover-state-layer-color: rgba(27, 156, 252, .05);--mat-slider-focus-state-layer-color: rgba(27, 156, 252, .2);--mat-slider-value-indicator-opacity: .6}html .mat-accent{--mat-slider-ripple-color: #1b9cfc;--mat-slider-hover-state-layer-color: rgba(27, 156, 252, .05);--mat-slider-focus-state-layer-color: rgba(27, 156, 252, .2);--mdc-slider-handle-color: #1b9cfc;--mdc-slider-focus-handle-color: #1b9cfc;--mdc-slider-hover-handle-color: #1b9cfc;--mdc-slider-active-track-color: #1b9cfc;--mdc-slider-inactive-track-color: #1b9cfc;--mdc-slider-with-tick-marks-inactive-container-color: #1b9cfc;--mdc-slider-with-tick-marks-active-container-color: white}html .mat-warn{--mat-slider-ripple-color: #f44336;--mat-slider-hover-state-layer-color: rgba(244, 67, 54, .05);--mat-slider-focus-state-layer-color: rgba(244, 67, 54, .2);--mdc-slider-handle-color: #f44336;--mdc-slider-focus-handle-color: #f44336;--mdc-slider-hover-handle-color: #f44336;--mdc-slider-active-track-color: #f44336;--mdc-slider-inactive-track-color: #f44336;--mdc-slider-with-tick-marks-inactive-container-color: #f44336;--mdc-slider-with-tick-marks-active-container-color: white}html{--mdc-switch-disabled-selected-icon-opacity: .38;--mdc-switch-disabled-track-opacity: .12;--mdc-switch-disabled-unselected-icon-opacity: .38;--mdc-switch-handle-height: 20px;--mdc-switch-handle-shape: 10px;--mdc-switch-handle-width: 20px;--mdc-switch-selected-icon-size: 18px;--mdc-switch-track-height: 14px;--mdc-switch-track-shape: 7px;--mdc-switch-track-width: 36px;--mdc-switch-unselected-icon-size: 18px;--mdc-switch-selected-focus-state-layer-opacity: .12;--mdc-switch-selected-hover-state-layer-opacity: .04;--mdc-switch-selected-pressed-state-layer-opacity: .1;--mdc-switch-unselected-focus-state-layer-opacity: .12;--mdc-switch-unselected-hover-state-layer-opacity: .04;--mdc-switch-unselected-pressed-state-layer-opacity: .1;--mat-switch-disabled-selected-handle-opacity: .38;--mat-switch-disabled-unselected-handle-opacity: .38;--mat-switch-unselected-handle-size: 20px;--mat-switch-selected-handle-size: 20px;--mat-switch-pressed-handle-size: 20px;--mat-switch-with-icon-handle-size: 20px;--mat-switch-selected-handle-horizontal-margin: 0;--mat-switch-selected-with-icon-handle-horizontal-margin: 0;--mat-switch-selected-pressed-handle-horizontal-margin: 0;--mat-switch-unselected-handle-horizontal-margin: 0;--mat-switch-unselected-with-icon-handle-horizontal-margin: 0;--mat-switch-unselected-pressed-handle-horizontal-margin: 0;--mat-switch-visible-track-opacity: 1;--mat-switch-hidden-track-opacity: 1;--mat-switch-visible-track-transition: transform 75ms 0ms cubic-bezier(0, 0, .2, 1);--mat-switch-hidden-track-transition: transform 75ms 0ms cubic-bezier(.4, 0, .6, 1);--mat-switch-track-outline-width: 1px;--mat-switch-track-outline-color: transparent;--mat-switch-selected-track-outline-width: 1px;--mat-switch-disabled-unselected-track-outline-width: 1px;--mat-switch-disabled-unselected-track-outline-color: transparent}html{--mdc-switch-selected-focus-state-layer-color: #038ff8;--mdc-switch-selected-handle-color: #038ff8;--mdc-switch-selected-hover-state-layer-color: #038ff8;--mdc-switch-selected-pressed-state-layer-color: #038ff8;--mdc-switch-selected-focus-handle-color: #0368b5;--mdc-switch-selected-hover-handle-color: #0368b5;--mdc-switch-selected-pressed-handle-color: #0368b5;--mdc-switch-selected-focus-track-color: #55b5fc;--mdc-switch-selected-hover-track-color: #55b5fc;--mdc-switch-selected-pressed-track-color: #55b5fc;--mdc-switch-selected-track-color: #55b5fc;--mdc-switch-disabled-selected-handle-color: #424242;--mdc-switch-disabled-selected-icon-color: #fff;--mdc-switch-disabled-selected-track-color: #424242;--mdc-switch-disabled-unselected-handle-color: #424242;--mdc-switch-disabled-unselected-icon-color: #fff;--mdc-switch-disabled-unselected-track-color: #424242;--mdc-switch-handle-surface-color: var(--mdc-theme-surface, #fff);--mdc-switch-handle-elevation-shadow: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mdc-switch-handle-shadow-color: black;--mdc-switch-disabled-handle-elevation-shadow: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mdc-switch-selected-icon-color: #fff;--mdc-switch-unselected-focus-handle-color: #212121;--mdc-switch-unselected-focus-state-layer-color: #424242;--mdc-switch-unselected-focus-track-color: #e0e0e0;--mdc-switch-unselected-handle-color: #616161;--mdc-switch-unselected-hover-handle-color: #212121;--mdc-switch-unselected-hover-state-layer-color: #424242;--mdc-switch-unselected-hover-track-color: #e0e0e0;--mdc-switch-unselected-icon-color: #fff;--mdc-switch-unselected-pressed-handle-color: #212121;--mdc-switch-unselected-pressed-state-layer-color: #424242;--mdc-switch-unselected-pressed-track-color: #e0e0e0;--mdc-switch-unselected-track-color: #e0e0e0;--mdc-switch-disabled-label-text-color: rgba(0, 0, 0, .38)}html .mat-mdc-slide-toggle{--mdc-form-field-label-text-color: rgba(0, 0, 0, .87)}html .mat-mdc-slide-toggle.mat-accent{--mdc-switch-selected-focus-state-layer-color: #038ff8;--mdc-switch-selected-handle-color: #038ff8;--mdc-switch-selected-hover-state-layer-color: #038ff8;--mdc-switch-selected-pressed-state-layer-color: #038ff8;--mdc-switch-selected-focus-handle-color: #0368b5;--mdc-switch-selected-hover-handle-color: #0368b5;--mdc-switch-selected-pressed-handle-color: #0368b5;--mdc-switch-selected-focus-track-color: #55b5fc;--mdc-switch-selected-hover-track-color: #55b5fc;--mdc-switch-selected-pressed-track-color: #55b5fc;--mdc-switch-selected-track-color: #55b5fc}html .mat-mdc-slide-toggle.mat-warn{--mdc-switch-selected-focus-state-layer-color: #e53935;--mdc-switch-selected-handle-color: #e53935;--mdc-switch-selected-hover-state-layer-color: #e53935;--mdc-switch-selected-pressed-state-layer-color: #e53935;--mdc-switch-selected-focus-handle-color: #b71c1c;--mdc-switch-selected-hover-handle-color: #b71c1c;--mdc-switch-selected-pressed-handle-color: #b71c1c;--mdc-switch-selected-focus-track-color: #e57373;--mdc-switch-selected-hover-track-color: #e57373;--mdc-switch-selected-pressed-track-color: #e57373;--mdc-switch-selected-track-color: #e57373}html{--mdc-switch-state-layer-size: 40px}.mat-mdc-menu-content button{margin:unset}.mat-mdc-menu-content .menu-header{font-size:9pt;height:20px;line-height:20px}.mat-mdc-menu-content .mat-mdc-menu-item{font-size:16px}mat-dialog-content mat-form-field{width:100%}mat-dialog-container .cc-dialog.suspicious-metric-dialog .title{font-size:20px;font-weight:700;text-align:center}mat-dialog-container .cc-dialog.suspicious-metric-dialog .info-text{font-size:14px;padding-bottom:0;color:#000}mat-dialog-container mat-dialog-actions{--mdc-filled-button-label-text-color: #1b9cfc;--mdc-text-button-label-text-color: #1b9cfc;--mdc-filled-button-container-color: var(--mdc-filled-text-field-container-color);--mdc-filled-button-disabled-container-color: var(--mdc-filled-text-field-container-color)}mat-dialog-container mat-dialog-actions.mat-mdc-dialog-actions.cc-add-custom-config:has(cc-download-and-purge-configs){max-width:600px}.cdk-overlay-pane:has(.cc-sorting-option){width:auto!important;min-width:210px}.cdk-overlay-pane:has(.cc-metric-chooser){width:300px!important}.cdk-overlay-pane:has(.cc-metric-chooser) .mat-mdc-select-panel{overflow:visible;max-height:none}.cdk-overlay-pane:has(.cc-metric-chooser) .cc-metric-chooser .cc-metric-chooser-search-field{width:100%;font-size:14px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-overlay-pane:has(.cc-metric-chooser) .cc-metric-chooser .cc-metric-chooser-search-field .search-icon{color:#1b9cfc;margin-left:8px;font-size:18px}.cdk-overlay-pane:has(.cc-metric-chooser) .cc-metric-chooser .cc-metric-chooser-search-field .mat-mdc-form-field-subscript-wrapper.mat-mdc-form-field-bottom-align{display:none}.cdk-overlay-pane:has(.cc-metric-chooser) .cc-metric-chooser .cc-metric-chooser-search-field .mat-mdc-form-field-infix{margin-left:6px;display:flex}.cdk-overlay-pane:has(.cc-metric-chooser) .cc-metric-chooser .cc-metric-chooser-option-container{font-size:16px;max-height:230px;overflow:auto}.cdk-overlay-pane:has(.cc-metric-chooser) .cc-metric-chooser .cc-metric-chooser-option-container mat-option .metric-max-value{color:#ccc}.cdk-overlay-pane:has(.cc-metric-chooser) .cc-metric-chooser .cc-metric-chooser-option-container mat-option .metric-subtitle{color:#999;font-size:11px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.cdk-overlay-pane:has(.cc-file-select){width:300px!important}.cdk-overlay-pane:has(.cc-file-select) .mat-mdc-option .mdc-list-item__primary-text{flex:1;display:flex;justify-content:space-between;align-items:center}.cdk-overlay-pane:has(.cc-file-select) .cc-file-selection-actions{display:flex}.cdk-overlay-pane:has(.cc-file-select) .cc-file-selection-actions button.cc-file-select-action-button{width:100%;font-size:16px;margin:0;background-color:transparent;padding:15px 10px}.cdk-overlay-pane:has(.cc-file-select) .cc-file-selection-actions button.cc-file-select-action-button:hover{background-color:#0000000d;color:#1b9cfc}.cdk-overlay-pane .mat-mdc-select-panel{padding:0}.cc-slider-container{display:flex;flex-direction:column}.cc-slider-container .label{margin-left:10px;color:#000000de}.cc-slider-container .slider-with-input{display:flex;align-items:center}.cc-slider-container mat-slider{margin:0 12px;flex:2}.cc-slider-container mat-form-field{flex:1;height:32px}.cc-slider-container .mat-mdc-form-field-subscript-wrapper.mat-mdc-form-field-bottom-align{display:none}.cc-slider-container .mat-mdc-text-field-wrapper{padding:0 12px}.cc-slider-container .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex{align-self:center}.cc-slider-container .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-infix{padding:0;min-height:28px}.cc-slider-container .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-infix .mat-mdc-input-element{min-height:inherit}mat-slide-toggle.mat-mdc-slide-toggle.cc-presentation-mode-button div.mdc-form-field{font-size:10pt;flex-direction:row-reverse;gap:12px}mat-slide-toggle.mat-mdc-slide-toggle.cc-presentation-mode-button div.mdc-form-field .mdc-label{text-wrap:nowrap}color-chrome .chrome-hue{margin-top:10px}.mat-mdc-menu-panel.cc-color-picker-menu .mat-mdc-menu-content{padding:0}cc-attribute-type-selector .mat-button-toggle-appearance-standard .mat-button-toggle-label-content{display:flex;align-items:center;height:100%}cc-attribute-type-selector button{align-items:center;height:100%}cc-attribute-type-selector button:hover{background-color:#0000000d;color:#1b9cfc}cc-attribute-type-selector .mat-button-toggle-standalone.mat-button-toggle-appearance-standard:not([class*=mat-elevation-z]),cc-attribute-type-selector .mat-button-toggle-group-appearance-standard:not([class*=mat-elevation-z]){height:22px;border:.5px solid darkgrey}.cdk-overlay-pane.cc-custom-config-list{width:850px!important}.cdk-overlay-pane.cc-custom-config-list .mat-mdc-dialog-content{padding:16px;max-height:90vh}.cdk-overlay-pane.cc-custom-config-list .cc-custom-configs-search-field{width:100%;font-size:14px}.cdk-overlay-pane.cc-custom-config-list .cc-custom-configs-search-field .custom-config-search-icon{color:gray;margin-left:8px;font-size:18px}.cdk-overlay-pane.cc-custom-config-list .cc-custom-configs-search-field .clear-icon{position:absolute;right:0;margin:0;height:24px;width:24px;display:flex;justify-content:center;align-items:center;top:0}.cdk-overlay-pane.cc-custom-config-list .cc-custom-configs-search-field .mat-mdc-form-field-subscript-wrapper.mat-mdc-form-field-bottom-align{display:none}.cdk-overlay-pane.cc-custom-config-list .cc-custom-configs-search-field .mat-mdc-form-field-infix{margin-left:6px;display:flex}.cdk-overlay-pane.cc-custom-config-list .mat-mdc-list-base{padding:0}.cdk-overlay-pane.cc-custom-config-list .mat-mdc-list-item{height:max-content}.cdk-overlay-pane.cc-custom-config-list cc-custom-config-item-group .mat-expansion-panel-spacing{margin:0}.cdk-overlay-pane.cc-custom-config-list cc-custom-config-item-group .mat-expansion-panel-body{padding:0 16px}.cdk-overlay-pane.cc-custom-config-list cc-custom-config-item-group .mat-expansion-panel-header:not([aria-disabled=true]){border-bottom:1px solid black;padding:15px 2px}.cdk-overlay-pane.cc-custom-config-list cc-custom-config-item-group .mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:none}.cdk-overlay-pane.cc-custom-config-list cc-custom-config-item-group.non-applicable-group .mat-expansion-panel-header-title{color:#0000004d}.cdk-overlay-pane.cc-custom-config-list cc-custom-config-item-group .mdc-list-item__content{width:100%;border-bottom:1px solid #000000;padding:0 5px}.cdk-overlay-pane.cc-custom-config-list cc-custom-config-item-group .mdc-list-item__content .mdc-list-item__primary-text{display:flex;flex-direction:column;width:100%}.cdk-overlay-pane.cc-custom-config-list cc-custom-config-item-group .mdc-list-item__content:hover{background-color:#0000000a}.cc-export-3D-map-dialog .mat-mdc-dialog-container{width:36vw;min-width:600px;max-height:95vh}.cc-export-3D-map-dialog .mat-mdc-dialog-container .cc-export-3D-map-dialog-content{display:flex;flex-direction:column;padding:16px;gap:16px;overflow-y:auto;max-height:calc(70vh - 200px);flex-grow:1}.cc-export-3D-map-dialog .mat-mdc-dialog-container .cc-manual-visibility-content{display:flex;flex-direction:column;gap:16px;margin-top:16px}.cc-export-3D-map-dialog .mat-mdc-dialog-container .cc-manual-visibility-content mat-form-field{display:flex;flex-direction:column}.cc-export-3D-map-dialog .mat-mdc-dialog-container mat-slider{width:95%}.cc-export-3D-map-dialog .mat-mdc-dialog-container mat-form-field{margin-bottom:-24px}.cc-changelog-dialog .mat-mdc-dialog-container [mat-dialog-content]{padding:8px 24px 0;margin-top:10px;color:#000}.cc-changelog-dialog .mat-mdc-dialog-container [mat-dialog-content] img[alt$=xs]{height:32px}.cc-changelog-dialog .mat-mdc-dialog-container [mat-dialog-content] img[alt$=s]{height:64px}.cc-changelog-dialog .mat-mdc-dialog-container [mat-dialog-content] img[alt$=m]{height:256px}.cc-changelog-dialog .mat-mdc-dialog-container [mat-dialog-content] img[alt$=l]{height:350px}.cc-changelog-dialog .mat-mdc-dialog-container [mat-dialog-content] img[alt$=xl]{height:512px}.cc-changelog-dialog .mat-mdc-dialog-container [mat-dialog-actions]{justify-content:flex-end}.cc-changelog-dialog .mat-mdc-dialog-container [mat-dialog-actions] a{color:#1b9cfc}.cc-changelog-dialog .mat-mdc-dialog-container [mat-dialog-actions] button{margin:0 8px}.cc-confirm-reset-map-dialog .mat-mdc-dialog-container mat-toolbar.header{background-color:#1b9cfc}.cc-confirm-reset-map-dialog .mat-mdc-dialog-container mat-toolbar.header h2{color:#fff}.cc-confirm-reset-map-dialog .mat-mdc-dialog-container .mat-mdc-dialog-actions{margin:0;padding:0 8px;position:relative;display:flex;justify-content:right}.cc-confirm-reset-map-dialog .mat-mdc-dialog-container .mat-mdc-dialog-actions .mat-mdc-button{padding:0 8px;margin:8px 0 8px 8px;color:#1b9cfc;background-color:#8a848414;bottom:0}.cc-confirmation-dialog .mat-mdc-dialog-container .confirmation-message{padding:10px}.cc-confirmation-dialog .mat-mdc-dialog-container .mat-mdc-dialog-actions{justify-content:flex-end}.cc-confirmation-dialog .mat-mdc-dialog-container .mat-mdc-dialog-actions .mat-mdc-button{background-color:#8a848414}.cc-confirmation-dialog .mat-mdc-dialog-container .mat-mdc-dialog-actions .mat-mdc-button.submit-button{color:#009688}*,*:before,*:after{-ms-box-sizing:border-box;-o-box-sizing:border-box;box-sizing:border-box}html,body{overflow-y:hidden;overflow-x:hidden;font-family:Roboto,Helvetica Neue,sans-serif;-webkit-user-select:none;-o-user-select:none;user-select:none;width:100%;height:100%;margin:0;padding:0}button{border:0;margin:6px 8px;cursor:pointer}@font-face{font-family:Material Icons;font-style:normal;font-weight:400;font-display:block;src:url(material-icons.59322316b3fd6063.woff2) format("woff2"),url(material-icons.4ad034d2c499d9b6.woff) format("woff")}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:"liga"}@font-face{font-family:Material Icons Outlined;font-style:normal;font-weight:400;font-display:block;src:url(material-icons-outlined.f86cb7b0aa53f0fe.woff2) format("woff2"),url(material-icons-outlined.78a93b2079680a08.woff) format("woff")}.material-icons-outlined{font-family:Material Icons Outlined;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:"liga"}@font-face{font-family:Material Icons Round;font-style:normal;font-weight:400;font-display:block;src:url(material-icons-round.b10ec9db5b7fbc74.woff2) format("woff2"),url(material-icons-round.92dc7ca2f4c591e7.woff) format("woff")}.material-icons-round{font-family:Material Icons Round;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:"liga"}@font-face{font-family:Material Icons Sharp;font-style:normal;font-weight:400;font-display:block;src:url(material-icons-sharp.3885863ee4746422.woff2) format("woff2"),url(material-icons-sharp.a71cb2bf66c604de.woff) format("woff")}.material-icons-sharp{font-family:Material Icons Sharp;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:"liga"}@font-face{font-family:Material Icons Two Tone;font-style:normal;font-weight:400;font-display:block;src:url(material-icons-two-tone.675bd578bd14533e.woff2) format("woff2"),url(material-icons-two-tone.588d63134de807a7.woff) format("woff")}.material-icons-two-tone{font-family:Material Icons Two Tone;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:"liga"} diff --git a/visualization/CHANGELOG.md b/visualization/CHANGELOG.md index 8e91d5021f..c85b9de267 100644 --- a/visualization/CHANGELOG.md +++ b/visualization/CHANGELOG.md @@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/) ## [unreleased] (Added 🚀 | Changed | Removed 🗑 | Fixed 🐞 | Chore 👨‍💻 👩‍💻) +## [1.128.0] - 2024-09-18 + ### Added 🚀 - Add feature to zoom at the mouse cursor [#3693](https://github.com/MaibornWolff/codecharta/pull/3693) diff --git a/visualization/package-lock.json b/visualization/package-lock.json index 2100a30a9c..f46c210595 100644 --- a/visualization/package-lock.json +++ b/visualization/package-lock.json @@ -1,12 +1,12 @@ { "name": "codecharta-visualization", - "version": "1.127.1", + "version": "1.128.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "codecharta-visualization", - "version": "1.127.1", + "version": "1.128.0", "license": "BSD-3-Clause", "dependencies": { "@angular/animations": "^17.3.3", diff --git a/visualization/package.json b/visualization/package.json index fffd3ff9ea..2fdfa18602 100644 --- a/visualization/package.json +++ b/visualization/package.json @@ -10,7 +10,7 @@ "url": "https://github.com/MaibornWolff/codecharta.git" }, "name": "codecharta-visualization", - "version": "1.127.1", + "version": "1.128.0", "engines": { "node": ">=20" },